git-svn-id: https://192.168.0.254/svn/Componentes.Terceros.DevExpressVCL@55 05c56307-c608-d34a-929d-697000501d7a
750 lines
25 KiB
ObjectPascal
750 lines
25 KiB
ObjectPascal
{*******************************************************************}
|
|
{ }
|
|
{ Developer Express Visual Component Library }
|
|
{ ExpressNavBar }
|
|
{ }
|
|
{ Copyright (c) 2002-2009 Developer Express Inc. }
|
|
{ ALL RIGHTS RESERVED }
|
|
{ }
|
|
{ The entire contents of this file is protected by U.S. and }
|
|
{ International Copyright Laws. Unauthorized reproduction, }
|
|
{ reverse-engineering, and distribution of all or any portion of }
|
|
{ the code contained in this file is strictly prohibited and may }
|
|
{ result in severe civil and criminal penalties and will be }
|
|
{ prosecuted to the maximum extent possible under the law. }
|
|
{ }
|
|
{ RESTRICTIONS }
|
|
{ }
|
|
{ THIS SOURCE CODE AND ALL RESULTING INTERMEDIATE FILES }
|
|
{ (DCU, OBJ, DLL, ETC.) ARE CONFIDENTIAL AND PROPRIETARY TRADE }
|
|
{ SECRETS OF DEVELOPER EXPRESS INC. THE REGISTERED DEVELOPER IS }
|
|
{ LICENSED TO DISTRIBUTE THE EXPRESSNAVBAR AND ALL ACCOMPANYING }
|
|
{ VCL CONTROLS AS PART OF AN EXECUTABLE PROGRAM ONLY. }
|
|
{ }
|
|
{ THE SOURCE CODE CONTAINED WITHIN THIS FILE AND ALL RELATED }
|
|
{ FILES OR ANY PORTION OF ITS CONTENTS SHALL AT NO TIME BE }
|
|
{ COPIED, TRANSFERRED, SOLD, DISTRIBUTED, OR OTHERWISE MADE }
|
|
{ AVAILABLE TO OTHER INDIVIDUALS WITHOUT EXPRESS WRITTEN CONSENT }
|
|
{ AND PERMISSION FROM DEVELOPER EXPRESS INC. }
|
|
{ }
|
|
{ CONSULT THE END USER LICENSE AGREEMENT FOR INFORMATION ON }
|
|
{ ADDITIONAL RESTRICTIONS. }
|
|
{ }
|
|
{*******************************************************************}
|
|
|
|
unit dxNavBarExplorerViews;
|
|
|
|
{$I cxVer.inc}
|
|
|
|
interface
|
|
|
|
uses
|
|
Windows, Graphics, dxNavBar, dxNavBarBase, dxNavBarCollns, dxNavBarStyles;
|
|
|
|
type
|
|
TdxNavBarExplorerBarViewInfo = class(TdxNavBarViewInfo)
|
|
protected
|
|
class function GetGroupBorderWidth: Integer; override;
|
|
class function GetGroupCaptionHeightAddon: Integer; override;
|
|
class function GetGroupCaptionSignSize: Integer; override;
|
|
class function GetGroupSeparatorWidth: Integer; override;
|
|
class function GetGroupHorizontalEdge: Integer; override;
|
|
|
|
function CanHasActiveGroup: Boolean; override;
|
|
function CanHasSpecialGroup: Boolean; override;
|
|
function CanHasImageInGroupCaption: Boolean; override;
|
|
function CanHasSignInGroupCaption: Boolean; override;
|
|
function CanHasGroupViewAsIconView: Boolean; override;
|
|
function CanHasGroupWithNoCaption: Boolean; override;
|
|
function CanHasVisibleItemsInGroup(AGroup: TdxNavBarGroup): Boolean; override;
|
|
public
|
|
procedure CreateInfo; override;
|
|
procedure CalculateBounds; override;
|
|
procedure CorrectScrollInfo; virtual;
|
|
|
|
procedure AssignDefaultBackgroundStyle; override;
|
|
procedure AssignDefaultGroupBackgroundStyle; override;
|
|
procedure AssignDefaultGroupHeaderStyle; override;
|
|
procedure AssignDefaultGroupHeaderActiveStyle; override;
|
|
procedure AssignDefaultItemStyle; override;
|
|
procedure AssignDefaultItemDisabledStyle; override;
|
|
procedure AssignDefaultItemHotTrackedStyle; override;
|
|
|
|
procedure DoGroupActivate(AGroup: TdxNavBarGroup); override;
|
|
procedure DoGroupDeactivate(AGroup: TdxNavBarGroup); override;
|
|
function IsGroupActive(AGroup: TdxNavBarGroup): Boolean; override;
|
|
procedure MakeLinkVisible(ALink: TdxNavBarItemLink); override;
|
|
procedure MakeGroupVisible(AGroup: TdxNavBarGroup); override;
|
|
end;
|
|
|
|
TdxNavBarExplorerBarPainter = class(TdxNavBarPainter)
|
|
protected
|
|
function CreateViewInfo: TdxNavBarViewInfo; override;
|
|
|
|
class function BackgroundPainterClass: TdxBaseBackgroundPainterClass; override;
|
|
class function ButtonPainterClass: TdxBaseButtonPainterClass; override;
|
|
class function DropTargetGroupPainterClass: TdxBaseDropTargetGroupPainterClass; override;
|
|
class function DropTargetLinkPainterClass: TdxBaseDropTargetLinkPainterClass; override;
|
|
class function GroupBackgroundPainterClass: TdxBaseGroupBackgroundPainterClass; override;
|
|
class function GroupBorderPainterClass: TdxBaseGroupBorderPainterClass; override;
|
|
class function ImagePainterClass: TdxBaseImagePainterClass; override;
|
|
class function SignPainterClass: TdxBaseSignPainterClass; override;
|
|
end;
|
|
|
|
TdxNavBarUltraFlatExplorerBarPainter = class(TdxNavBarExplorerBarPainter)
|
|
protected
|
|
class function SelectionPainterClass: TdxBaseSelectionPainterClass; override;
|
|
end;
|
|
|
|
TdxNavBarAdvExplorerBarLinkViewInfo = class(TdxNavBarLinkViewInfo)
|
|
public
|
|
function FontColor: TColor; override;
|
|
end;
|
|
|
|
TdxNavBarAdvExplorerBarGroupViewInfo = class(TdxNavBarGroupViewInfo)
|
|
private
|
|
function IsDefaultBgColor: Boolean;
|
|
function IsDefaultCaptionColor: Boolean;
|
|
public
|
|
function BorderColor: TColor; override;
|
|
function BgBackColor: TColor; override;
|
|
function BgBackColor2: TColor; override;
|
|
function BgAlphaBlend: Byte; override;
|
|
function BgAlphaBlend2: Byte; override;
|
|
function BgGradientMode: TdxBarStyleGradientMode; override;
|
|
function CaptionBackColor: TColor; override;
|
|
function CaptionBackColor2: TColor; override;
|
|
function CaptionAlphaBlend: Byte; override;
|
|
function CaptionAlphaBlend2: Byte; override;
|
|
function CaptionGradientMode: TdxBarStyleGradientMode; override;
|
|
function CaptionFontColor: TColor; override;
|
|
function CaptionSignColor: TColor; override;
|
|
end;
|
|
|
|
TdxNavBarAdvExplorerBarViewInfo = class(TdxNavBarExplorerBarViewInfo)
|
|
private
|
|
function IsDefaultBgColor: Boolean;
|
|
protected
|
|
procedure CreateColors; override;
|
|
procedure RefreshColors; override;
|
|
procedure ReleaseColors; override;
|
|
|
|
class function GetGroupCaptionHeightAddon: Integer; override;
|
|
class function GetGroupCaptionSignSize: Integer; override;
|
|
public
|
|
function BgBackColor: TColor; override;
|
|
function BgBackColor2: TColor; override;
|
|
function BgAlphaBlend: Byte; override;
|
|
function BgAlphaBlend2: Byte; override;
|
|
function BgGradientMode: TdxBarStyleGradientMode; override;
|
|
|
|
procedure AssignDefaultBackgroundStyle; override;
|
|
procedure AssignDefaultGroupBackgroundStyle; override;
|
|
procedure AssignDefaultGroupHeaderStyle; override;
|
|
procedure AssignDefaultGroupHeaderActiveStyle; override;
|
|
procedure AssignDefaultItemStyle; override;
|
|
procedure AssignDefaultItemDisabledStyle; override;
|
|
end;
|
|
|
|
TdxNavBarAdvExplorerBarPainter = class(TdxNavBarExplorerBarPainter)
|
|
protected
|
|
function CreateViewInfo: TdxNavBarViewInfo; override;
|
|
function CreateGroupViewInfo(AViewInfo: TdxNavBarViewInfo; AGroup: TdxNavBarGroup;
|
|
ACaptionVisible, AItemsVisible: Boolean): TdxNavBarGroupViewInfo; override;
|
|
function CreateLinkViewInfo(AViewInfo: TdxNavBarGroupViewInfo; ALink: TdxNavBarItemLink;
|
|
ACaptionVisible, AImageVisisble: Boolean): TdxNavBarLinkViewInfo; override;
|
|
|
|
class function ButtonPainterClass: TdxBaseButtonPainterClass; override;
|
|
class function SignPainterClass: TdxBaseSignPainterClass; override;
|
|
end;
|
|
|
|
implementation
|
|
|
|
uses
|
|
CommCtrl, ImgList,
|
|
dxNavBarViewsFact, dxNavBarGraphics, dxNavBarConsts;
|
|
|
|
function GetColor(ANormalColor, AHotColor: TColor;
|
|
AState: TdxNavBarObjectStates): TColor;
|
|
begin
|
|
if sDisabled in AState then
|
|
Result := LightLightColor(ANormalColor)
|
|
else
|
|
if AState * [sHotTracked, sPressed, sSelected] <> [] then
|
|
Result := AHotColor
|
|
else
|
|
Result := ANormalColor;
|
|
end;
|
|
|
|
{ TdxNavBarExplorerBarViewInfo }
|
|
|
|
class function TdxNavBarExplorerBarViewInfo.GetGroupBorderWidth: Integer;
|
|
begin
|
|
Result := 1;
|
|
end;
|
|
|
|
class function TdxNavBarExplorerBarViewInfo.GetGroupCaptionHeightAddon: Integer;
|
|
begin
|
|
Result := 12;
|
|
end;
|
|
|
|
class function TdxNavBarExplorerBarViewInfo.GetGroupCaptionSignSize: Integer;
|
|
begin
|
|
Result := 18;
|
|
end;
|
|
|
|
class function TdxNavBarExplorerBarViewInfo.GetGroupSeparatorWidth: Integer;
|
|
begin
|
|
Result := 4;
|
|
end;
|
|
|
|
class function TdxNavBarExplorerBarViewInfo.GetGroupHorizontalEdge: Integer;
|
|
begin
|
|
Result := 10;
|
|
end;
|
|
|
|
function TdxNavBarExplorerBarViewInfo.CanHasActiveGroup: Boolean;
|
|
begin
|
|
Result := False;
|
|
end;
|
|
|
|
function TdxNavBarExplorerBarViewInfo.CanHasSpecialGroup: Boolean;
|
|
begin
|
|
Result := True;
|
|
end;
|
|
|
|
function TdxNavBarExplorerBarViewInfo.CanHasImageInGroupCaption: Boolean;
|
|
begin
|
|
Result := True;
|
|
end;
|
|
|
|
function TdxNavBarExplorerBarViewInfo.CanHasSignInGroupCaption: Boolean;
|
|
begin
|
|
Result := True;
|
|
end;
|
|
|
|
function TdxNavBarExplorerBarViewInfo.CanHasGroupViewAsIconView: Boolean;
|
|
begin
|
|
Result := False;
|
|
end;
|
|
|
|
function TdxNavBarExplorerBarViewInfo.CanHasGroupWithNoCaption: Boolean;
|
|
begin
|
|
Result := True;
|
|
end;
|
|
|
|
function TdxNavBarExplorerBarViewInfo.CanHasVisibleItemsInGroup(AGroup: TdxNavBarGroup): Boolean;
|
|
begin
|
|
Result := AGroup.Expanded;
|
|
end;
|
|
|
|
procedure TdxNavBarExplorerBarViewInfo.CreateInfo;
|
|
var
|
|
I: Integer;
|
|
begin
|
|
ClearGroups;
|
|
for I := 0 to NavBar.Groups.Count - 1 do
|
|
if NavBar.Groups[I].Visible then
|
|
AddGroup(Self, NavBar.Groups[I], True, True);
|
|
end;
|
|
|
|
procedure TdxNavBarExplorerBarViewInfo.CalculateBounds;
|
|
begin
|
|
inherited;
|
|
CorrectScrollInfo;
|
|
AdjustControlsBounds;
|
|
end;
|
|
|
|
procedure TdxNavBarExplorerBarViewInfo.CorrectScrollInfo;
|
|
var
|
|
I, AHeight: Integer;
|
|
ADelta: Double;
|
|
AOldVisible: Boolean;
|
|
AMin, AMax, APageSize: Integer;
|
|
begin
|
|
AOldVisible := NavBar.ScrollBar.Visible;
|
|
if GroupCount > 0 then
|
|
begin
|
|
AHeight := Groups[GroupCount - 1].Rect.Bottom + GetSpaceBetweenGroups;
|
|
if AHeight > ClientHeight then
|
|
begin
|
|
ADelta := (ClientHeight * NavBar.ScrollBar.Height) / AHeight;
|
|
APageSize := Round(ADelta);
|
|
AMin := 0;
|
|
AMax := AHeight - ClientHeight + Round(ADelta);
|
|
|
|
NavBar.ScrollBar.SmallChange := GetGroupCaptionSignSize;
|
|
NavBar.ScrollBar.SetScrollParams(AMin, AMax, NavBar.ScrollBar.Position, APageSize);
|
|
NavBar.ScrollBar.Visible := True;
|
|
end
|
|
else
|
|
NavBar.ScrollBar.Visible := False;
|
|
end
|
|
else
|
|
NavBar.ScrollBar.Visible := False;
|
|
|
|
if AOldVisible = NavBar.ScrollBar.Visible then
|
|
begin
|
|
for I := 0 to GroupCount - 1 do
|
|
Groups[I].CorrectBounds(0, - NavBar.ScrollPosition);
|
|
end
|
|
else CalculateBounds;
|
|
end;
|
|
|
|
procedure TdxNavBarExplorerBarViewInfo.AssignDefaultBackgroundStyle;
|
|
begin
|
|
NavBar.DefaultStyles.Background.ResetValues;
|
|
NavBar.DefaultStyles.Background.BackColor := clWindow;
|
|
NavBar.DefaultStyles.Background.BackColor2 := clWindow;
|
|
end;
|
|
|
|
procedure TdxNavBarExplorerBarViewInfo.AssignDefaultGroupBackgroundStyle;
|
|
begin
|
|
NavBar.DefaultStyles.GroupBackground.ResetValues;
|
|
NavBar.DefaultStyles.GroupBackground.BackColor := clWindow;
|
|
NavBar.DefaultStyles.GroupBackground.BackColor2 := clWindow;
|
|
end;
|
|
|
|
procedure TdxNavBarExplorerBarViewInfo.AssignDefaultGroupHeaderStyle;
|
|
begin
|
|
NavBar.DefaultStyles.GroupHeader.ResetValues;
|
|
NavBar.DefaultStyles.GroupHeader.BackColor := clBtnFace;
|
|
NavBar.DefaultStyles.GroupHeader.BackColor2 := clBtnFace;
|
|
NavBar.DefaultStyles.GroupHeader.Font.Color := clBtnText;
|
|
NavBar.DefaultStyles.GroupHeader.Font.Style := [fsBold];
|
|
end;
|
|
|
|
procedure TdxNavBarExplorerBarViewInfo.AssignDefaultGroupHeaderActiveStyle;
|
|
begin
|
|
NavBar.DefaultStyles.GroupHeaderActive.Assign(NavBar.DefaultStyles.GroupHeader);
|
|
NavBar.DefaultStyles.GroupHeaderActive.BackColor := clActiveCaption;
|
|
NavBar.DefaultStyles.GroupHeaderActive.BackColor2 := clActiveCaption;
|
|
NavBar.DefaultStyles.GroupHeaderActive.Font.Color := clCaptionText;
|
|
end;
|
|
|
|
procedure TdxNavBarExplorerBarViewInfo.AssignDefaultItemStyle;
|
|
begin
|
|
NavBar.DefaultStyles.Item.ResetValues;
|
|
NavBar.DefaultStyles.Item.Font.Color := clWindowText;
|
|
NavBar.DefaultStyles.Item.HAlignment := haCenter;
|
|
end;
|
|
|
|
procedure TdxNavBarExplorerBarViewInfo.AssignDefaultItemDisabledStyle;
|
|
begin
|
|
NavBar.DefaultStyles.ItemDisabled.Assign(NavBar.DefaultStyles.Item);
|
|
NavBar.DefaultStyles.ItemDisabled.Font.Color := clGrayText;
|
|
end;
|
|
|
|
procedure TdxNavBarExplorerBarViewInfo.AssignDefaultItemHotTrackedStyle;
|
|
begin
|
|
NavBar.DefaultStyles.ItemHotTracked.Assign(NavBar.DefaultStyles.Item);
|
|
NavBar.DefaultStyles.ItemHotTracked.Font.Style := NavBar.DefaultStyles.ItemHotTracked.Font.Style + [fsUnderline];
|
|
end;
|
|
|
|
procedure TdxNavBarExplorerBarViewInfo.DoGroupActivate(AGroup: TdxNavBarGroup);
|
|
begin
|
|
if AGroup.Expandable and not AGroup.Expanded then
|
|
AGroup.Expanded := True;
|
|
end;
|
|
|
|
procedure TdxNavBarExplorerBarViewInfo.DoGroupDeactivate(AGroup: TdxNavBarGroup);
|
|
begin
|
|
if AGroup.Expandable and AGroup.Expanded then
|
|
AGroup.Expanded := False;
|
|
end;
|
|
|
|
function TdxNavBarExplorerBarViewInfo.IsGroupActive(AGroup: TdxNavBarGroup): Boolean;
|
|
begin
|
|
Result := AGroup.Expanded;
|
|
end;
|
|
|
|
procedure TdxNavBarExplorerBarViewInfo.MakeLinkVisible(ALink: TdxNavBarItemLink);
|
|
var
|
|
AGroupViewInfo: TdxNavBarGroupViewInfo;
|
|
ALinkViewInfo: TdxNavBarLinkViewInfo;
|
|
begin
|
|
if not ALink.Group.Expanded then
|
|
begin
|
|
ALink.Group.Expanded := True;
|
|
CreateInfo;
|
|
CalculateBounds;
|
|
end;
|
|
AGroupViewInfo := GetGroupViewInfoByGroup(ALink.Group);
|
|
if AGroupViewInfo <> nil then
|
|
begin
|
|
ALinkViewInfo := AGroupViewInfo.GetLinkViewInfoByLink(ALink);
|
|
if ALinkViewInfo <> nil then
|
|
begin
|
|
NavBar.ScrollBar.Position := NavBar.ScrollBar.Position + ALinkViewInfo.Rect.Top - 2;
|
|
NavBar.InvalidateAll(doRecreate);
|
|
end;
|
|
end;
|
|
end;
|
|
|
|
procedure TdxNavBarExplorerBarViewInfo.MakeGroupVisible(AGroup: TdxNavBarGroup);
|
|
var
|
|
AGroupViewInfo: TdxNavBarGroupViewInfo;
|
|
begin
|
|
if not AGroup.Expanded then
|
|
begin
|
|
AGroup.Expanded := True;
|
|
CreateInfo;
|
|
CalculateBounds;
|
|
end;
|
|
AGroupViewInfo := GetGroupViewInfoByGroup(AGroup);
|
|
if AGroupViewInfo <> nil then
|
|
begin
|
|
NavBar.ScrollBar.Position := NavBar.ScrollBar.Position + AGroupViewInfo.Rect.Top - 2;
|
|
NavBar.InvalidateAll(doRecreate);
|
|
end;
|
|
end;
|
|
|
|
{ TdxNavBarExplorerBarPainter }
|
|
|
|
function TdxNavBarExplorerBarPainter.CreateViewInfo: TdxNavBarViewInfo;
|
|
begin
|
|
Result := TdxNavBarExplorerBarViewInfo.Create(Self);
|
|
end;
|
|
|
|
class function TdxNavBarExplorerBarPainter.BackgroundPainterClass: TdxBaseBackgroundPainterClass;
|
|
begin
|
|
Result := TdxNavBarBackgroundPainter;
|
|
end;
|
|
|
|
class function TdxNavBarExplorerBarPainter.ButtonPainterClass: TdxBaseButtonPainterClass;
|
|
begin
|
|
Result := TdxNavBarExplorerButtonPainter;
|
|
end;
|
|
|
|
class function TdxNavBarExplorerBarPainter.DropTargetGroupPainterClass: TdxBaseDropTargetGroupPainterClass;
|
|
begin
|
|
Result := TdxNavBarDropTargetGroupPainter;
|
|
end;
|
|
|
|
class function TdxNavBarExplorerBarPainter.DropTargetLinkPainterClass: TdxBaseDropTargetLinkPainterClass;
|
|
begin
|
|
Result := TdxNavBarDropTargetLinkPainter;
|
|
end;
|
|
|
|
class function TdxNavBarExplorerBarPainter.GroupBackgroundPainterClass: TdxBaseGroupBackgroundPainterClass;
|
|
begin
|
|
Result := TdxNavBarGroupBackgroundPainter;
|
|
end;
|
|
|
|
class function TdxNavBarExplorerBarPainter.GroupBorderPainterClass: TdxBaseGroupBorderPainterClass;
|
|
begin
|
|
Result := TdxNavBarExplorerBarBorderPainter;
|
|
end;
|
|
|
|
class function TdxNavBarExplorerBarPainter.ImagePainterClass: TdxBaseImagePainterClass;
|
|
begin
|
|
Result := TdxNavBarImagePainter;
|
|
end;
|
|
|
|
class function TdxNavBarExplorerBarPainter.SignPainterClass: TdxBaseSignPainterClass;
|
|
begin
|
|
Result := TdxNavBarExplorerBarSignPainter;
|
|
end;
|
|
|
|
{ TdxNavBarUltraFlatExplorerBarPainter }
|
|
|
|
class function TdxNavBarUltraFlatExplorerBarPainter.SelectionPainterClass: TdxBaseSelectionPainterClass;
|
|
begin
|
|
Result := TdxNavBarUltraFlatSelectionPainter;
|
|
end;
|
|
|
|
{ TdxNavBarAdvExplorerBarLinkViewInfo }
|
|
|
|
function TdxNavBarAdvExplorerBarLinkViewInfo.FontColor: TColor;
|
|
begin
|
|
Result := Font.Color;
|
|
if Result = clNone then
|
|
Result := GetColor(dxAdvExplorerBarFontColor, dxAdvExplorerBarFontHotColor, State);
|
|
end;
|
|
|
|
{ TdxNavBarAdvExplorerBarGroupViewInfo }
|
|
|
|
function TdxNavBarAdvExplorerBarGroupViewInfo.BorderColor: TColor;
|
|
begin
|
|
if not IsDefaultCaptionColor then
|
|
Result := inherited BorderColor
|
|
else if BgBackColor <> clWhite then
|
|
Result := clWhite
|
|
else Result := LightLightColor(clHighlight);
|
|
end;
|
|
|
|
function TdxNavBarAdvExplorerBarGroupViewInfo.BgAlphaBlend: Byte;
|
|
begin
|
|
if IsDefaultBgColor then
|
|
Result := 255
|
|
else Result := inherited BgAlphaBlend;
|
|
end;
|
|
|
|
function TdxNavBarAdvExplorerBarGroupViewInfo.BgAlphaBlend2: Byte;
|
|
begin
|
|
if IsDefaultBgColor then
|
|
Result := 255
|
|
else Result := inherited BgAlphaBlend2;
|
|
end;
|
|
|
|
function TdxNavBarAdvExplorerBarGroupViewInfo.BgBackColor: TColor;
|
|
begin
|
|
if IsDefaultBgColor then
|
|
Result := dxAdvExplorerBarGroupBackgroundColor
|
|
else
|
|
Result := inherited BgBackColor;
|
|
end;
|
|
|
|
function TdxNavBarAdvExplorerBarGroupViewInfo.BgBackColor2: TColor;
|
|
begin
|
|
if IsDefaultBgColor then
|
|
Result := dxAdvExplorerBarGroupBackgroundColor
|
|
else
|
|
Result := inherited BgBackColor2;
|
|
end;
|
|
|
|
function TdxNavBarAdvExplorerBarGroupViewInfo.BgGradientMode: TdxBarStyleGradientMode;
|
|
begin
|
|
if IsDefaultBgColor then
|
|
Result := gmHorizontal
|
|
else Result := inherited BgGradientMode;
|
|
end;
|
|
|
|
function TdxNavBarAdvExplorerBarGroupViewInfo.CaptionAlphaBlend: Byte;
|
|
begin
|
|
if IsDefaultCaptionColor then
|
|
Result := 255
|
|
else Result := inherited CaptionAlphaBlend;
|
|
end;
|
|
|
|
function TdxNavBarAdvExplorerBarGroupViewInfo.CaptionAlphaBlend2: Byte;
|
|
begin
|
|
if IsDefaultCaptionColor then
|
|
Result := 255
|
|
else Result := inherited CaptionAlphaBlend2;
|
|
end;
|
|
|
|
function TdxNavBarAdvExplorerBarGroupViewInfo.CaptionBackColor: TColor;
|
|
begin
|
|
if not IsDefaultCaptionColor then
|
|
Result := inherited CaptionBackColor
|
|
else
|
|
if sSpecial in State then
|
|
Result := dxAdvExplorerBarSpecialGroupCaptionColor1
|
|
else
|
|
Result := dxAdvExplorerBarGroupCaptionColor1;
|
|
end;
|
|
|
|
function TdxNavBarAdvExplorerBarGroupViewInfo.CaptionBackColor2: TColor;
|
|
begin
|
|
if not IsDefaultCaptionColor then
|
|
Result := inherited CaptionBackColor2
|
|
else
|
|
if sSpecial in State then
|
|
Result := dxAdvExplorerBarSpecialGroupCaptionColor2
|
|
else
|
|
Result := dxAdvExplorerBarGroupCaptionColor2;
|
|
end;
|
|
|
|
function TdxNavBarAdvExplorerBarGroupViewInfo.CaptionFontColor: TColor;
|
|
begin
|
|
Result := CaptionFont.Color;
|
|
if Result = clNone then
|
|
if sSpecial in State then
|
|
Result := GetColor(dxAdvExplorerBarSpecialGroupFontColor,
|
|
dxAdvExplorerBarSpecialGroupFontHotColor, State)
|
|
else
|
|
Result := GetColor(dxAdvExplorerBarGroupFontColor,
|
|
dxAdvExplorerBarGroupFontHotColor, State);
|
|
end;
|
|
|
|
function TdxNavBarAdvExplorerBarGroupViewInfo.CaptionSignColor: TColor;
|
|
begin
|
|
if sSpecial in State then
|
|
begin
|
|
if not IsDefaultCaptionColor then
|
|
Result := CaptionBackColor2
|
|
else
|
|
Result := GetColor(dxAdvExplorerBarSpecialGroupCaptionSignColor,
|
|
dxAdvExplorerBarSpecialGroupCaptionSignHotColor, State)
|
|
end
|
|
else
|
|
begin
|
|
if CaptionFont.Color = clNone then
|
|
Result := GetColor(dxAdvExplorerBarGroupCaptionSignColor,
|
|
dxAdvExplorerBarGroupCaptionSignHotColor, State)
|
|
else
|
|
Result := CaptionFontColor;
|
|
end;
|
|
end;
|
|
|
|
function TdxNavBarAdvExplorerBarGroupViewInfo.CaptionGradientMode: TdxBarStyleGradientMode;
|
|
begin
|
|
if IsDefaultCaptionColor then
|
|
Result := gmHorizontal
|
|
else Result := inherited CaptionGradientMode;
|
|
end;
|
|
|
|
function TdxNavBarAdvExplorerBarGroupViewInfo.IsDefaultBgColor: Boolean;
|
|
begin
|
|
Result := (inherited BgBackColor = clNone) or (inherited BgBackColor2 = clNone);
|
|
end;
|
|
|
|
function TdxNavBarAdvExplorerBarGroupViewInfo.IsDefaultCaptionColor: Boolean;
|
|
begin
|
|
Result := (inherited CaptionBackColor = clNone) or (inherited CaptionBackColor2 = clNone);
|
|
end;
|
|
|
|
{ TdxNavAdvBarExplorerBarViewInfo }
|
|
|
|
function TdxNavBarAdvExplorerBarViewInfo.BgAlphaBlend: Byte;
|
|
begin
|
|
if IsDefaultBgColor then
|
|
Result := 255
|
|
else Result := inherited BgAlphaBlend;
|
|
end;
|
|
|
|
function TdxNavBarAdvExplorerBarViewInfo.BgAlphaBlend2: Byte;
|
|
begin
|
|
if IsDefaultBgColor then
|
|
Result := 255
|
|
else Result := inherited BgAlphaBlend2;
|
|
end;
|
|
|
|
function TdxNavBarAdvExplorerBarViewInfo.BgBackColor: TColor;
|
|
begin
|
|
if IsDefaultBgColor then
|
|
Result := dxAdvExplorerBarBackgroundColor1
|
|
else
|
|
Result := inherited BgBackColor;
|
|
end;
|
|
|
|
function TdxNavBarAdvExplorerBarViewInfo.BgBackColor2: TColor;
|
|
begin
|
|
if IsDefaultBgColor then
|
|
Result := dxAdvExplorerBarBackgroundColor2
|
|
else
|
|
Result := inherited BgBackColor2;
|
|
end;
|
|
|
|
function TdxNavBarAdvExplorerBarViewInfo.BgGradientMode: TdxBarStyleGradientMode;
|
|
begin
|
|
if IsDefaultBgColor then
|
|
Result := gmVertical//gmHorizontal
|
|
else Result := inherited BgGradientMode;
|
|
end;
|
|
|
|
procedure TdxNavBarAdvExplorerBarViewInfo.AssignDefaultBackgroundStyle;
|
|
begin
|
|
NavBar.DefaultStyles.Background.ResetValues;
|
|
NavBar.DefaultStyles.Background.BackColor := clNone;
|
|
NavBar.DefaultStyles.Background.BackColor2 := clNone;
|
|
end;
|
|
|
|
procedure TdxNavBarAdvExplorerBarViewInfo.AssignDefaultGroupBackgroundStyle;
|
|
begin
|
|
NavBar.DefaultStyles.GroupBackground.ResetValues;
|
|
NavBar.DefaultStyles.GroupBackground.BackColor := clNone;
|
|
NavBar.DefaultStyles.GroupBackground.BackColor2 := clNone;
|
|
end;
|
|
|
|
procedure TdxNavBarAdvExplorerBarViewInfo.AssignDefaultGroupHeaderActiveStyle;
|
|
begin
|
|
NavBar.DefaultStyles.GroupHeaderActive.Assign(NavBar.DefaultStyles.GroupHeader);
|
|
NavBar.DefaultStyles.GroupHeaderActive.BackColor := clNone;
|
|
NavBar.DefaultStyles.GroupHeaderActive.BackColor2 := clNone;
|
|
NavBar.DefaultStyles.GroupHeaderActive.Font.Color := clNone;
|
|
end;
|
|
|
|
procedure TdxNavBarAdvExplorerBarViewInfo.AssignDefaultGroupHeaderStyle;
|
|
begin
|
|
NavBar.DefaultStyles.GroupHeader.ResetValues;
|
|
NavBar.DefaultStyles.GroupHeader.BackColor := clNone;
|
|
NavBar.DefaultStyles.GroupHeader.BackColor2 := clNone;
|
|
NavBar.DefaultStyles.GroupHeader.Font.Color := clNone;
|
|
NavBar.DefaultStyles.GroupHeader.Font.Style := [fsBold];
|
|
end;
|
|
|
|
procedure TdxNavBarAdvExplorerBarViewInfo.AssignDefaultItemStyle;
|
|
begin
|
|
NavBar.DefaultStyles.Item.ResetValues;
|
|
NavBar.DefaultStyles.Item.Font.Color := clNone;
|
|
NavBar.DefaultStyles.Item.HAlignment := haCenter;
|
|
end;
|
|
|
|
procedure TdxNavBarAdvExplorerBarViewInfo.AssignDefaultItemDisabledStyle;
|
|
begin
|
|
NavBar.DefaultStyles.ItemDisabled.Assign(NavBar.DefaultStyles.Item);
|
|
end;
|
|
|
|
procedure TdxNavBarAdvExplorerBarViewInfo.CreateColors;
|
|
begin
|
|
CreateAdvExplorerBarColors;
|
|
end;
|
|
|
|
procedure TdxNavBarAdvExplorerBarViewInfo.RefreshColors;
|
|
begin
|
|
RefreshAdvExplorerBarColors;
|
|
end;
|
|
|
|
procedure TdxNavBarAdvExplorerBarViewInfo.ReleaseColors;
|
|
begin
|
|
ReleaseAdvExplorerBarColors;
|
|
end;
|
|
|
|
class function TdxNavBarAdvExplorerBarViewInfo.GetGroupCaptionHeightAddon: Integer;
|
|
begin
|
|
Result := 12;
|
|
end;
|
|
|
|
class function TdxNavBarAdvExplorerBarViewInfo.GetGroupCaptionSignSize: Integer;
|
|
begin
|
|
Result := 22;
|
|
end;
|
|
|
|
function TdxNavBarAdvExplorerBarViewInfo.IsDefaultBgColor: Boolean;
|
|
begin
|
|
Result := (inherited BgBackColor = clNone) or (inherited BgBackColor2 = clNone);
|
|
end;
|
|
|
|
{ TdxNavBarAdvExplorerBarPainter }
|
|
|
|
function TdxNavBarAdvExplorerBarPainter.CreateViewInfo: TdxNavBarViewInfo;
|
|
begin
|
|
Result := TdxNavBarAdvExplorerBarViewInfo.Create(Self);
|
|
end;
|
|
|
|
class function TdxNavBarAdvExplorerBarPainter.ButtonPainterClass: TdxBaseButtonPainterClass;
|
|
begin
|
|
Result := TdxNavBarAdvExplorerButtonPainter;
|
|
end;
|
|
|
|
function TdxNavBarAdvExplorerBarPainter.CreateGroupViewInfo(AViewInfo: TdxNavBarViewInfo; AGroup: TdxNavBarGroup;
|
|
ACaptionVisible, AItemsVisible: Boolean): TdxNavBarGroupViewInfo;
|
|
begin
|
|
Result := TdxNavBarAdvExplorerBarGroupViewInfo.Create(AViewInfo, AGroup, ACaptionVisible, AItemsVisible);
|
|
end;
|
|
|
|
function TdxNavBarAdvExplorerBarPainter.CreateLinkViewInfo(AViewInfo: TdxNavBarGroupViewInfo; ALink: TdxNavBarItemLink;
|
|
ACaptionVisible, AImageVisisble: Boolean): TdxNavBarLinkViewInfo;
|
|
begin
|
|
Result := TdxNavBarAdvExplorerBarLinkViewInfo.Create(AViewInfo, ALink, ACaptionVisible, AImageVisisble);
|
|
end;
|
|
|
|
class function TdxNavBarAdvExplorerBarPainter.SignPainterClass: TdxBaseSignPainterClass;
|
|
begin
|
|
Result := TdxNavBarAdvExplorerBarSignPainter;
|
|
end;
|
|
|
|
initialization
|
|
RegisterView(dxNavBarExplorerBarView, 'ExplorerBarView', TdxNavBarExplorerBarPainter);
|
|
RegisterView(dxNavBarUltraFlatExplorerView, 'UltraFlatExplorerBarView', TdxNavBarUltraFlatExplorerBarPainter);
|
|
RegisterView(dxNavBarAdvExplorerBarView, 'AdvExplorerBarView', TdxNavBarAdvExplorerBarPainter);
|
|
|
|
finalization
|
|
UnRegisterView(dxNavBarExplorerBarView);
|
|
UnRegisterView(dxNavBarUltraFlatExplorerView);
|
|
UnRegisterView(dxNavBarAdvExplorerBarView);
|
|
|
|
end.
|