mirror of
https://gitlab.com/freepascal.org/lazarus/lazarus.git
synced 2025-08-09 20:15:58 +02:00
LCL/TreeView: Rename HideSelectionMode options from (hsmLaz, hsmDelphi) to (hsmGray, hsmHide) and deprecate them. Update the customdrawing demo.
This commit is contained in:
parent
20d22eae2a
commit
b8d68ac49e
@ -188,33 +188,33 @@ object MainForm: TMainForm
|
|||||||
TabOrder = 0
|
TabOrder = 0
|
||||||
OnChange = cbHideSelectionChange
|
OnChange = cbHideSelectionChange
|
||||||
end
|
end
|
||||||
object rbHideSelModeLaz: TRadioButton
|
object rbHideSelModeGray: TRadioButton
|
||||||
AnchorSideLeft.Control = cbHideSelection
|
AnchorSideLeft.Control = cbHideSelection
|
||||||
AnchorSideLeft.Side = asrBottom
|
AnchorSideLeft.Side = asrBottom
|
||||||
AnchorSideTop.Control = cbHideSelection
|
AnchorSideTop.Control = cbHideSelection
|
||||||
Left = 113
|
Left = 113
|
||||||
Height = 19
|
Height = 19
|
||||||
Top = 0
|
Top = 0
|
||||||
Width = 56
|
Width = 91
|
||||||
BorderSpacing.Left = 20
|
BorderSpacing.Left = 20
|
||||||
Caption = 'like Laz'
|
Caption = 'gray selection'
|
||||||
Checked = True
|
Checked = True
|
||||||
TabOrder = 7
|
TabOrder = 7
|
||||||
TabStop = True
|
TabStop = True
|
||||||
OnChange = rbHideSelModeLazChange
|
OnChange = rbHideSelModeGrayChange
|
||||||
end
|
end
|
||||||
object rbHideSelModeDelphi: TRadioButton
|
object rbHideSelModeHide: TRadioButton
|
||||||
AnchorSideLeft.Control = rbHideSelModeLaz
|
AnchorSideLeft.Control = rbHideSelModeGray
|
||||||
AnchorSideLeft.Side = asrBottom
|
AnchorSideLeft.Side = asrBottom
|
||||||
AnchorSideTop.Control = cbHideSelection
|
AnchorSideTop.Control = cbHideSelection
|
||||||
Left = 179
|
Left = 214
|
||||||
Height = 19
|
Height = 19
|
||||||
Top = 0
|
Top = 0
|
||||||
Width = 73
|
Width = 41
|
||||||
BorderSpacing.Left = 10
|
BorderSpacing.Left = 10
|
||||||
Caption = 'like Delphi'
|
Caption = 'hide'
|
||||||
TabOrder = 6
|
TabOrder = 6
|
||||||
OnChange = rbHideSelModeLazChange
|
OnChange = rbHideSelModeGrayChange
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
@ -24,8 +24,8 @@ type
|
|||||||
lbTask: TListBox;
|
lbTask: TListBox;
|
||||||
Panel1: TPanel;
|
Panel1: TPanel;
|
||||||
Panel2: TPanel;
|
Panel2: TPanel;
|
||||||
rbHideSelModeLaz: TRadioButton;
|
rbHideSelModeGray: TRadioButton;
|
||||||
rbHideSelModeDelphi: TRadioButton;
|
rbHideSelModeHide: TRadioButton;
|
||||||
Splitter1: TSplitter;
|
Splitter1: TSplitter;
|
||||||
TreeView: TTreeView;
|
TreeView: TTreeView;
|
||||||
procedure btnToggleEnabledDisabledClick(Sender: TObject);
|
procedure btnToggleEnabledDisabledClick(Sender: TObject);
|
||||||
@ -57,7 +57,7 @@ type
|
|||||||
// The top-level nodes are painted with bold font
|
// The top-level nodes are painted with bold font
|
||||||
procedure BoldTopLevel_CustomDrawItem(Sender: TCustomTreeView;
|
procedure BoldTopLevel_CustomDrawItem(Sender: TCustomTreeView;
|
||||||
Node: TTreeNode; State: TCustomDrawState; var DefaultDraw: Boolean);
|
Node: TTreeNode; State: TCustomDrawState; var DefaultDraw: Boolean);
|
||||||
procedure rbHideSelModeLazChange(Sender: TObject);
|
procedure rbHideSelModeGrayChange(Sender: TObject);
|
||||||
|
|
||||||
// Nodes as rounded rectangles
|
// Nodes as rounded rectangles
|
||||||
procedure RoundedRectNodes_AdvancedCustomDrawItem(Sender: TCustomTreeView;
|
procedure RoundedRectNodes_AdvancedCustomDrawItem(Sender: TCustomTreeView;
|
||||||
@ -332,6 +332,8 @@ begin
|
|||||||
// PrePaint stage would force us to paint everything by ourselves.
|
// PrePaint stage would force us to paint everything by ourselves.
|
||||||
end;
|
end;
|
||||||
|
|
||||||
|
// Note that this handler ignores the settings of the rbHideSelMode* radiobuttons
|
||||||
|
// See BackgroundImage_AdvancedCustomDrawItem how this could be handled.
|
||||||
procedure TMainForm.BackgroundGradient_AdvancedCustomDrawItem(Sender: TCustomTreeView;
|
procedure TMainForm.BackgroundGradient_AdvancedCustomDrawItem(Sender: TCustomTreeView;
|
||||||
Node: TTreeNode; State: TCustomDrawState; Stage: TCustomDrawStage;
|
Node: TTreeNode; State: TCustomDrawState; Stage: TCustomDrawStage;
|
||||||
var PaintImages, DefaultDraw: Boolean);
|
var PaintImages, DefaultDraw: Boolean);
|
||||||
@ -426,13 +428,13 @@ begin
|
|||||||
Sender.Canvas.Font.Style := [];
|
Sender.Canvas.Font.Style := [];
|
||||||
end;
|
end;
|
||||||
|
|
||||||
procedure TMainForm.rbHideSelModeLazChange(Sender: TObject);
|
procedure TMainForm.rbHideSelModeGrayChange(Sender: TObject);
|
||||||
begin
|
begin
|
||||||
{$IF LCL_FullVersion >= 4990000}
|
{$IF LCL_FullVersion >= 4990000}
|
||||||
if rbHideSelModeLaz.Checked then
|
if rbHideSelModeGray.Checked then
|
||||||
TreeView.HideSelectionMode := hsmLaz
|
TreeView.HideSelectionMode := hsmGray
|
||||||
else
|
else
|
||||||
TreeView.HideSelectionMode := hsmDelphi;
|
TreeView.HideSelectionMode := hsmHide;
|
||||||
TreeView.Invalidate;
|
TreeView.Invalidate;
|
||||||
{$IFEND}
|
{$IFEND}
|
||||||
end;
|
end;
|
||||||
@ -473,7 +475,9 @@ begin
|
|||||||
Sender.Canvas.Brush.Color := clBtnFace;
|
Sender.Canvas.Brush.Color := clBtnFace;
|
||||||
Sender.Canvas.Pen.Color := clSilver;
|
Sender.Canvas.Pen.Color := clSilver;
|
||||||
end;
|
end;
|
||||||
Sender.Canvas.RoundRect(R, 12, 12);
|
// Draw the node background as rounded rectangle, but only if node is enabled.
|
||||||
|
if not (cdsDisabled in State) then
|
||||||
|
Sender.Canvas.RoundRect(R, 12, 12);
|
||||||
|
|
||||||
// Avoid default drawing of the node background
|
// Avoid default drawing of the node background
|
||||||
Sender.Canvas.Brush.Style := bsClear;
|
Sender.Canvas.Brush.Style := bsClear;
|
||||||
|
@ -3422,7 +3422,7 @@ type
|
|||||||
tvimAsPrevSibling
|
tvimAsPrevSibling
|
||||||
);
|
);
|
||||||
|
|
||||||
THideSelectionMode = (hsmLaz, hsmDelphi);
|
THideSelectionMode = (hsmGray, hsmHide);
|
||||||
|
|
||||||
TCustomTreeView = class(TCustomControl)
|
TCustomTreeView = class(TCustomControl)
|
||||||
private
|
private
|
||||||
@ -3836,6 +3836,7 @@ type
|
|||||||
property TreeLinePenStyle: TPenStyle read FTreeLinePenStyle write FTreeLinePenStyle default psPattern;
|
property TreeLinePenStyle: TPenStyle read FTreeLinePenStyle write FTreeLinePenStyle default psPattern;
|
||||||
// When HideSelection is false, switches between Lazarus (sel nodes gray) and Delphi mode (sel nodes hidden)
|
// When HideSelection is false, switches between Lazarus (sel nodes gray) and Delphi mode (sel nodes hidden)
|
||||||
property HideSelectionMode: THideSelectionMode read FHideSelectionMode write FHideSelectionMode;
|
property HideSelectionMode: THideSelectionMode read FHideSelectionMode write FHideSelectionMode;
|
||||||
|
deprecated 'Use HideSelection=false to show selection for the non-focused treeview'; // To be removed in v5.99
|
||||||
published
|
published
|
||||||
property TabStop default true;
|
property TabStop default true;
|
||||||
end;
|
end;
|
||||||
|
@ -6892,7 +6892,7 @@ end;
|
|||||||
setting. }
|
setting. }
|
||||||
function TCustomTreeView.SelectionIsHidden: Boolean;
|
function TCustomTreeView.SelectionIsHidden: Boolean;
|
||||||
begin
|
begin
|
||||||
Result := (not Focused) and HideSelection and (FHideSelectionMode = hsmDelphi);
|
Result := (not Focused) and HideSelection and (FHideSelectionMode = hsmHide);
|
||||||
end;
|
end;
|
||||||
|
|
||||||
procedure TCustomTreeView.MoveToNextNode(ASelect: Boolean);
|
procedure TCustomTreeView.MoveToNextNode(ASelect: Boolean);
|
||||||
|
Loading…
Reference in New Issue
Block a user