jvclLaz/JvTabBar: Introduce constants for default colors.

git-svn-id: https://svn.code.sf.net/p/lazarus-ccr/svn@9773 8e941d3f-bd1b-0410-a28a-d453659cc2b4
This commit is contained in:
wp_xxyyzz 2025-06-06 22:05:55 +00:00
parent 2e09439858
commit b66ade7a3d
2 changed files with 52 additions and 35 deletions

View File

@ -17,6 +17,7 @@ object MainForm: TMainForm
CloseButton = False
PageListTabLink = True
PageList = JvPageList
Painter = JvModernTabBarPainter
Images = ImageList1
Tabs = <
item
@ -831,7 +832,7 @@ object MainForm: TMainForm
Left = 54
Height = 25
Top = 36
Width = 70
Width = 71
AutoSize = True
BorderSpacing.Top = 4
BorderSpacing.Bottom = 8
@ -843,6 +844,7 @@ object MainForm: TMainForm
end
end
object JvModernTabBarPainter: TJvModernTabBarPainter
HotTrackColor = clSkyBlue
Font.Color = clWindowText
DisabledFont.Color = clGrayText
SelectedFont.Color = clWindowText
@ -850,6 +852,7 @@ object MainForm: TMainForm
Top = 248
end
object JvTabBarXPPainter: TJvTabBarXPPainter
HotTrackColor = clFuchsia
Font.Color = clWindowText
DisabledFont.Color = clGrayText
SelectedFont.Color = clWindowText

View File

@ -163,10 +163,22 @@ type
TJvModernTabBarPainter = class(TJvTabBarPainter)
private
const
DEFAULT_BORDER_COLOR = clSilver;
DEFAULT_COLOR = clWindow;
DEFAULT_CLOSE_COLOR = clWhite;
DEFAULT_CLOSE_COLOR_SELECTED = $F4F4F4;
DEFAULT_CLOSE_CROSS_COLOR = $5D5D5D;
DEFAULT_CLOSE_CROSS_COLOR_DISABLED = $ADADAD;
DEFAULT_CLOSE_CROSS_COLOR_SELECTED = clBlack;
DEFAULT_CLOSE_RECT_COLOR = $868686;
DEFAULT_CLOSE_RECT_COLOR_DISABLED = $D6D6D6;
DEFAULT_CONTROL_DIVIDE_COLOR = clBlack;
DEFAULT_DIVIDER_COLOR = $99A8AC;
DEFAULT_HOTTRACK_COLOR = $99A8AC;
DEFAULT_MODIFIED_CROSS_COLOR = clRed;
DEFAULT_MOVE_DIVIDER_COLOR = clBlack;
DEFAULT_SCROLLBTN_HOTTRACK_COLOR = clHighlight;
DEFAULT_SCROLLBTN_HOT_COLOR = clHighlight;
DEFAULT_TAB_COLOR = clBtnFace;
private
FFont: TFont;
FDisabledFont: TFont;
@ -186,7 +198,7 @@ type
FDividerColor: TColor;
FMoveDividerColor: TColor;
FHotTrackColor: TColor;
FScrollBtnHotTrackColor: TColor;
FScrollBtnHotColor: TColor;
FTabHeight: Integer;
FTabWidth: Integer;
procedure SetCloseRectColorDisabled(const Value: TColor);
@ -207,7 +219,7 @@ type
procedure FontChanged(Sender: TObject);
procedure SetDividerColor(const Value: TColor);
procedure SetCloseCrossColorSelected(const Value: TColor);
procedure SetScrollBtnHotTrackColor(const Value: TColor);
procedure SetScrollBtnHotColor(const Value: TColor);
procedure SetTabHeight(Value: Integer);
procedure SetTabWidth(Value: Integer);
protected
@ -227,22 +239,22 @@ type
constructor Create(AOwner: TComponent); override;
destructor Destroy; override;
published
property TabColor: TColor read FTabColor write SetTabColor default clBtnFace;
property Color: TColor read FColor write SetColor default clWindow;
property BorderColor: TColor read FBorderColor write SetBorderColor default clSilver;
property ControlDivideColor: TColor read FControlDivideColor write SetControlDivideColor default clBlack;
property ModifiedCrossColor: TColor read FModifiedCrossColor write SetModifiedCrossColor default clRed;
property CloseColorSelected: TColor read FCloseColorSelected write SetCloseColorSelected default $F4F4F4;
property CloseColor: TColor read FCloseColor write SetCloseColor default clWhite;
property CloseCrossColorSelected: TColor read FCloseCrossColorSelected write SetCloseCrossColorSelected default clBlack;
property CloseCrossColor: TColor read FCloseCrossColor write SetCloseCrossColor default $5D5D5D;
property CloseCrossColorDisabled: TColor read FCloseCrossColorDisabled write SetCloseCrossColorDisabled default $ADADAD;
property CloseRectColor: TColor read FCloseRectColor write SetCloseRectColor default $868686;
property CloseRectColorDisabled: TColor read FCloseRectColorDisabled write SetCloseRectColorDisabled default $D6D6D6;
property BorderColor: TColor read FBorderColor write SetBorderColor default DEFAULT_BORDER_COLOR;
property Color: TColor read FColor write SetColor default DEFAULT_COLOR;
property ControlDivideColor: TColor read FControlDivideColor write SetControlDivideColor default DEFAULT_CONTROL_DIVIDE_COLOR;
property ModifiedCrossColor: TColor read FModifiedCrossColor write SetModifiedCrossColor default DEFAULT_MODIFIED_CROSS_COLOR;
property CloseColorSelected: TColor read FCloseColorSelected write SetCloseColorSelected default DEFAULT_CLOSE_COLOR_SELECTED;
property CloseColor: TColor read FCloseColor write SetCloseColor default DEFAULT_CLOSE_COLOR;
property CloseCrossColorSelected: TColor read FCloseCrossColorSelected write SetCloseCrossColorSelected default DEFAULT_CLOSE_CROSS_COLOR_SELECTED;
property CloseCrossColor: TColor read FCloseCrossColor write SetCloseCrossColor default DEFAULT_CLOSE_CROSS_COLOR;
property CloseCrossColorDisabled: TColor read FCloseCrossColorDisabled write SetCloseCrossColorDisabled default DEFAULT_CLOSE_CROSS_COLOR_DISABLED;
property CloseRectColor: TColor read FCloseRectColor write SetCloseRectColor default DEFAULT_CLOSE_RECT_COLOR;
property CloseRectColorDisabled: TColor read FCloseRectColorDisabled write SetCloseRectColorDisabled default DEFAULT_CLOSE_RECT_COLOR_DISABLED;
property DividerColor: TColor read FDividerColor write SetDividerColor default DEFAULT_DIVIDER_COLOR;
property HotTrackColor: TColor read FHotTrackColor write SetHotTrackColor default DEFAULT_HOTTRACK_COLOR;
property MoveDividerColor: TColor read FMoveDividerColor write FMoveDividerColor default DEFAULT_MOVE_DIVIDER_COLOR;
property ScrollBtnHotTrackColor: TColor read FScrollBtnHotTrackColor write SetScrollBtnHotTrackColor default DEFAULT_SCROLLBTN_HOTTRACK_COLOR;
property ScrollBtnHotColor: TColor read FScrollBtnHotColor write SetScrollBtnHotColor default DEFAULT_SCROLLBTN_HOT_COLOR;
property TabColor: TColor read FTabColor write SetTabColor default DEFAULT_TAB_COLOR;
property TabHeight: Integer read FTabHeight write SetTabHeight default 0;
property TabWidth: Integer read FTabWidth write SetTabWidth default 0;
property Font: TFont read FFont write SetFont;
@ -2443,23 +2455,23 @@ begin
FDisabledFont.OnChange := @FontChanged;
FSelectedFont.OnChange := @FontChanged;
FTabColor := clBtnFace;
FColor := clWindow;
FBorderColor := clSilver;
FControlDivideColor := clBlack;
FTabColor := DEFAULT_TAB_COLOR;
FColor := DEFAULT_COLOR;
FBorderColor := DEFAULT_BORDER_COLOR;
FControlDivideColor := DEFAULT_CONTROL_DIVIDE_COLOR;
FModifiedCrossColor := clRed;
FCloseColorSelected := $F4F4F4;
FCloseColor := clWhite;
FCloseCrossColorSelected := clBlack;
FCloseCrossColor := $5D5D5D;
FCloseCrossColorDisabled := $ADADAD;
FCloseRectColor := $868686;
FCloseRectColorDisabled := $D6D6D6;
FModifiedCrossColor := DEFAULT_MODIFIED_CROSS_COLOR;
FCloseColorSelected := DEFAULT_CLOSE_COLOR_SELECTED;
FCloseColor := DEFAULT_CLOSE_COLOR;
FCloseCrossColorSelected := DEFAULT_CLOSE_CROSS_COLOR_SELECTED;
FCloseCrossColor := DEFAULT_CLOSE_CROSS_COLOR;
FCloseCrossColorDisabled := DEFAULT_CLOSE_CROSS_COLOR_DISABLED;
FCloseRectColor := DEFAULT_CLOSE_RECT_COLOR;
FCloseRectColorDisabled := DEFAULT_CLOSE_RECT_COLOR_DISABLED;
FDividerColor := DEFAULT_DIVIDER_COLOR;
FMoveDividerColor := DEFAULT_MOVE_DIVIDER_COLOR;
FHotTrackColor := DEFAULT_HOTTRACK_COLOR;
FScrollBtnHotTrackColor := DEFAULT_SCROLLBTN_HOTTRACK_COLOR;
FScrollBtnHotColor := DEFAULT_SCROLLBTN_HOT_COLOR;
end;
destructor TJvModernTabBarPainter.Destroy;
@ -2606,9 +2618,9 @@ begin
end
else
if Hot then
ACanvas.Brush.Color := FScrollBtnHotTrackColor
ACanvas.Brush.Color := FScrollBtnHotColor
else
ACanvas.Brush.Color := clWindowText;
ACanvas.Brush.Color := TabBar.Color;
ACanvas.Pen.Color := ACanvas.Brush.Color;
ACanvas.Polygon(Pts);
@ -2690,11 +2702,13 @@ begin
y := R.Bottom;
MoveTo(R.Left, y);
LineTo(R.Right - 1 - 1, y);
Pen.Width := 1;
end;
inc(R.Left, LeftMargin);
dec(R.Right, RightMargin);
// Paint "close" button
if Tab.TabBar.CloseButton then
begin
CloseR := GetCloseRect(Canvas, Tab, ATabRect);
@ -2981,11 +2995,11 @@ begin
end;
end;
procedure TJvModernTabBarPainter.SetScrollBtnHotTrackColor(const Value: TColor);
procedure TJvModernTabBarPainter.SetScrollBtnHotColor(const Value: TColor);
begin
if Value <> FScrollBtnHotTrackColor then
if Value <> FScrollBtnHotColor then
begin
FScrollBtnHotTrackColor := Value;
FScrollBtnHotColor := Value;
Changed;
end;
end;