mirror of
https://gitlab.com/freepascal.org/lazarus/lazarus.git
synced 2025-08-07 21:16:10 +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
|
||||
OnChange = cbHideSelectionChange
|
||||
end
|
||||
object rbHideSelModeLaz: TRadioButton
|
||||
object rbHideSelModeGray: TRadioButton
|
||||
AnchorSideLeft.Control = cbHideSelection
|
||||
AnchorSideLeft.Side = asrBottom
|
||||
AnchorSideTop.Control = cbHideSelection
|
||||
Left = 113
|
||||
Height = 19
|
||||
Top = 0
|
||||
Width = 56
|
||||
Width = 91
|
||||
BorderSpacing.Left = 20
|
||||
Caption = 'like Laz'
|
||||
Caption = 'gray selection'
|
||||
Checked = True
|
||||
TabOrder = 7
|
||||
TabStop = True
|
||||
OnChange = rbHideSelModeLazChange
|
||||
OnChange = rbHideSelModeGrayChange
|
||||
end
|
||||
object rbHideSelModeDelphi: TRadioButton
|
||||
AnchorSideLeft.Control = rbHideSelModeLaz
|
||||
object rbHideSelModeHide: TRadioButton
|
||||
AnchorSideLeft.Control = rbHideSelModeGray
|
||||
AnchorSideLeft.Side = asrBottom
|
||||
AnchorSideTop.Control = cbHideSelection
|
||||
Left = 179
|
||||
Left = 214
|
||||
Height = 19
|
||||
Top = 0
|
||||
Width = 73
|
||||
Width = 41
|
||||
BorderSpacing.Left = 10
|
||||
Caption = 'like Delphi'
|
||||
Caption = 'hide'
|
||||
TabOrder = 6
|
||||
OnChange = rbHideSelModeLazChange
|
||||
OnChange = rbHideSelModeGrayChange
|
||||
end
|
||||
end
|
||||
end
|
||||
|
@ -24,8 +24,8 @@ type
|
||||
lbTask: TListBox;
|
||||
Panel1: TPanel;
|
||||
Panel2: TPanel;
|
||||
rbHideSelModeLaz: TRadioButton;
|
||||
rbHideSelModeDelphi: TRadioButton;
|
||||
rbHideSelModeGray: TRadioButton;
|
||||
rbHideSelModeHide: TRadioButton;
|
||||
Splitter1: TSplitter;
|
||||
TreeView: TTreeView;
|
||||
procedure btnToggleEnabledDisabledClick(Sender: TObject);
|
||||
@ -57,7 +57,7 @@ type
|
||||
// The top-level nodes are painted with bold font
|
||||
procedure BoldTopLevel_CustomDrawItem(Sender: TCustomTreeView;
|
||||
Node: TTreeNode; State: TCustomDrawState; var DefaultDraw: Boolean);
|
||||
procedure rbHideSelModeLazChange(Sender: TObject);
|
||||
procedure rbHideSelModeGrayChange(Sender: TObject);
|
||||
|
||||
// Nodes as rounded rectangles
|
||||
procedure RoundedRectNodes_AdvancedCustomDrawItem(Sender: TCustomTreeView;
|
||||
@ -332,6 +332,8 @@ begin
|
||||
// PrePaint stage would force us to paint everything by ourselves.
|
||||
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;
|
||||
Node: TTreeNode; State: TCustomDrawState; Stage: TCustomDrawStage;
|
||||
var PaintImages, DefaultDraw: Boolean);
|
||||
@ -426,13 +428,13 @@ begin
|
||||
Sender.Canvas.Font.Style := [];
|
||||
end;
|
||||
|
||||
procedure TMainForm.rbHideSelModeLazChange(Sender: TObject);
|
||||
procedure TMainForm.rbHideSelModeGrayChange(Sender: TObject);
|
||||
begin
|
||||
{$IF LCL_FullVersion >= 4990000}
|
||||
if rbHideSelModeLaz.Checked then
|
||||
TreeView.HideSelectionMode := hsmLaz
|
||||
if rbHideSelModeGray.Checked then
|
||||
TreeView.HideSelectionMode := hsmGray
|
||||
else
|
||||
TreeView.HideSelectionMode := hsmDelphi;
|
||||
TreeView.HideSelectionMode := hsmHide;
|
||||
TreeView.Invalidate;
|
||||
{$IFEND}
|
||||
end;
|
||||
@ -473,7 +475,9 @@ begin
|
||||
Sender.Canvas.Brush.Color := clBtnFace;
|
||||
Sender.Canvas.Pen.Color := clSilver;
|
||||
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
|
||||
Sender.Canvas.Brush.Style := bsClear;
|
||||
|
@ -3422,7 +3422,7 @@ type
|
||||
tvimAsPrevSibling
|
||||
);
|
||||
|
||||
THideSelectionMode = (hsmLaz, hsmDelphi);
|
||||
THideSelectionMode = (hsmGray, hsmHide);
|
||||
|
||||
TCustomTreeView = class(TCustomControl)
|
||||
private
|
||||
@ -3836,6 +3836,7 @@ type
|
||||
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)
|
||||
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
|
||||
property TabStop default true;
|
||||
end;
|
||||
|
@ -6892,7 +6892,7 @@ end;
|
||||
setting. }
|
||||
function TCustomTreeView.SelectionIsHidden: Boolean;
|
||||
begin
|
||||
Result := (not Focused) and HideSelection and (FHideSelectionMode = hsmDelphi);
|
||||
Result := (not Focused) and HideSelection and (FHideSelectionMode = hsmHide);
|
||||
end;
|
||||
|
||||
procedure TCustomTreeView.MoveToNextNode(ASelect: Boolean);
|
||||
|
Loading…
Reference in New Issue
Block a user