📄 dxribbon.pas
字号:
TcxComponentCollectionItem,
{$IFNDEF DELPHI6}
IUnknown,
{$ENDIF}
IdxBarSelectableItem,
IdxFadingObject
)
private
FCaption: string;
FDesignSelectionHelper: IdxBarSelectableItem;
FDockControl: TdxRibbonGroupsDockControl;
FFadingElementData: IdxFadingElementData;
FGroups: TdxRibbonTabGroups;
FIAccessibilityHelper: IdxBarAccessibilityHelper;
FKeyTip: string;
FLastIndex: Integer;
FLocked: Boolean;
FRibbon: TdxCustomRibbon;
FVisible: Boolean;
function GetActive: Boolean;
function GetFocused: Boolean;
function GetHighlighted: Boolean;
function GetIAccessibilityHelper: IdxBarAccessibilityHelper;
function GetIsDestroying: Boolean;
function GetViewInfo: TdxRibbonTabViewInfo;
function GetVisibleIndex: Integer;
procedure SetActive(Value: Boolean);
procedure SetCaption(const Value: string);
procedure SetHighlighted(Value: Boolean);
procedure SetRibbon(Value: TdxCustomRibbon);
procedure SetGroups(const Value: TdxRibbonTabGroups);
procedure SetVisible(Value: Boolean);
protected
//IdxFadingObject
procedure IdxFadingObject.DrawFadeImage = FadingDrawFadeImage;
procedure IdxFadingObject.GetFadingParams = FadingGetFadingParams;
procedure FadingBegin(AData: IdxFadingElementData);
function CanFade: Boolean;
procedure FadingDrawFadeImage;
procedure FadingEnd;
procedure FadingGetFadingParams(
out AFadeOutImage, AFadeInImage: TcxBitmap;
var AFadeInAnimationFrameCount, AFadeInAnimationFrameDelay: Integer;
var AFadeOutAnimationFrameCount, AFadeOutAnimationFrameDelay: Integer);
//inherited
function GetCollectionFromParent(AParent: TComponent): TcxComponentCollection; override;
function GetDisplayName: string; override;
procedure Loaded; override;
procedure Notification(AComponent: TComponent; Operation: TOperation); override;
procedure SetName(const Value: TComponentName); override;
//methods
procedure Activate; virtual;
procedure CheckGroupToolbarsDockControl;
procedure Deactivate; virtual;
function GetAccessibilityHelperClass: TdxBarAccessibilityHelperClass; virtual;
function GetDockControlBounds: TRect; virtual;
function GetGroupClass: TdxRibbonTabGroupClass; virtual;
procedure ScrollDockControlGroups(AScrollLeft, AOnTimer: Boolean);
procedure UpdateBarManager(ABarManager: TdxBarManager);
procedure UpdateColorScheme; virtual;
procedure UpdateDockControl;
procedure UpdateDockControlBounds;
procedure UpdateGroupsFont;
property DesignSelectionHelper: IdxBarSelectableItem
read FDesignSelectionHelper implements IdxBarSelectableItem;
property Focused: Boolean read GetFocused;
property Highlighted: Boolean read GetHighlighted write SetHighlighted;
property IsDestroying: Boolean read GetIsDestroying;
property LastIndex: Integer read FLastIndex;
property Locked: Boolean read FLocked;
property ViewInfo: TdxRibbonTabViewInfo read GetViewInfo;
public
constructor Create(AOwner: TComponent); override;
destructor Destroy; override;
procedure Assign(Source: TPersistent); override;
procedure AddToolBar(AToolBar: TdxBar);
procedure Invalidate;
procedure MakeVisible;
property DockControl: TdxRibbonGroupsDockControl read FDockControl;
property IAccessibilityHelper: IdxBarAccessibilityHelper read GetIAccessibilityHelper;
property Ribbon: TdxCustomRibbon read FRibbon write SetRibbon;
published
property Active: Boolean read GetActive write SetActive default False;//stored False;
property Caption: string read FCaption write SetCaption;
property Groups: TdxRibbonTabGroups read FGroups write SetGroups;
property KeyTip: string read FKeyTip write FKeyTip;
property Visible: Boolean read FVisible write SetVisible default True;
property VisibleIndex: Integer read GetVisibleIndex;
end;
TdxRibbonTabCollection = class(TcxComponentCollection)
private
FIAccessibilityHelper: IdxBarAccessibilityHelper;
FOwner: TdxCustomRibbon;
function GetIAccessibilityHelper: IdxBarAccessibilityHelper;
function GetItem(Index: Integer): TdxRibbonTab;
procedure SetItem(Index: Integer; const Value: TdxRibbonTab);
protected
function GetAccessibilityHelperClass: TdxBarAccessibilityHelperClass; virtual;
procedure Notify(AItem: TcxComponentCollectionItem;
AAction: TcxComponentCollectionNotification); override;
procedure SetItemName(AItem: TcxComponentCollectionItem); override;
procedure Update(AItem: TcxComponentCollectionItem;
AAction: TcxComponentCollectionNotification); override;
procedure UpdateBarManager(ABarManager: TdxBarManager);
property IAccessibilityHelper: IdxBarAccessibilityHelper read GetIAccessibilityHelper;
property Owner: TdxCustomRibbon read FOwner;
public
constructor Create(AOwner: TdxCustomRibbon); reintroduce;
destructor Destroy; override;
function Add: TdxRibbonTab;
function Insert(AIndex: Integer): TdxRibbonTab;
property Items[Index: Integer]: TdxRibbonTab read GetItem write SetItem; default;
end;
{ TdxRibbonFonts }
TdxRibbonAssignedFont = (afTabHeader, afGroup, afGroupHeader);
TdxRibbonAssignedFonts = set of TdxRibbonAssignedFont;
TdxRibbonFonts = class(TPersistent)
private
FAssignedFonts: TdxRibbonAssignedFonts;
FDocumentNameColor: TColor;
FCaptionFont: TFont;
FFont: TFont;
FFonts: array[TdxRibbonAssignedFont] of TFont;
FLocked: Boolean;
FRibbon: TdxCustomRibbon;
procedure FontChanged(Sender: TObject);
function GetDefaultCaptionTextColor(AIsActive: Boolean): TColor;
function GetFont(const Index: Integer): TFont;
function IsFontStored(const Index: Integer): Boolean;
procedure SetAssignedFonts(const Value: TdxRibbonAssignedFonts);
procedure SetDocumentNameColor(const Value: TColor);
procedure SetFont(const Index: Integer; const Value: TFont);
procedure UpdateGroupsFont;
protected
procedure Invalidate;
procedure UpdateDefaultFont(I: TdxRibbonAssignedFont);
procedure UpdateFonts;
property Locked: Boolean read FLocked;
public
constructor Create(AOwner: TdxCustomRibbon); virtual;
destructor Destroy; override;
procedure Assign(Source: TPersistent); override;
function GetFormCaptionFont(AIsActive: Boolean): TFont; virtual;
function GetGroupFont: TFont; virtual;
function GetGroupHeaderFont: TFont; virtual;
function GetTabHeaderFont(AState: Integer): TFont; virtual;
property Ribbon: TdxCustomRibbon read FRibbon;
published
property AssignedFonts: TdxRibbonAssignedFonts
read FAssignedFonts write SetAssignedFonts default [];
property DocumentNameColor: TColor
read FDocumentNameColor write SetDocumentNameColor default clDefault;
property Group: TFont index Ord(afGroup)
read GetFont write SetFont stored IsFontStored;
property GroupHeader: TFont index Ord(afGroupHeader)
read GetFont write SetFont stored IsFontStored;
property TabHeader: TFont index Ord(afTabHeader)
read GetFont write SetFont stored IsFontStored;
end;
{ TdxRibbonPopupMenu }
TdxRibbonPopupMenu = class(TdxBarPopupMenu)
private
FRibbon: TdxCustomRibbon;
procedure CheckAssignRibbon;
procedure SetRibbon(Value: TdxCustomRibbon);
protected
function CreateBarControl: TCustomdxBarControl; override;
function GetControlClass: TCustomdxBarControlClass; override;
procedure Notification(AComponent: TComponent; Operation: TOperation); override;
public
constructor Create(AOwner: TComponent); override;
published
property Ribbon: TdxCustomRibbon read FRibbon write SetRibbon;
end;
{ TdxRibbonPopupMenuControl }
TdxRibbonPopupMenuControl = class(TdxBarSubMenuControl)
protected
function GetBehaviorOptions: TdxBarBehaviorOptions; override;
end;
{ TdxBarApplicationMenu }
TdxBarApplicationMenu = class(TdxBarCustomApplicationMenu)
protected
function GetControlClass: TCustomdxBarControlClass; override;
published
property BackgroundBitmap;
property BarManager;
property BarSize;
property Buttons;
property ExtraPane;
property ExtraPaneEvents;
property Font;
property ItemLinks;
property ItemOptions;
property UseOwnFont;
property OnCloseUp;
property OnPaintBar;
property OnPopup;
// obsolette
property ExtraPaneWidthRatio stored False;
property ExtraPaneSize stored False;
property ExtraPaneItems stored False;
property ExtraPaneHeader stored False;
property OnExtraPaneItemClick stored False;
end;
TdxRibbonApplicationMenuControl = class(TdxBarApplicationMenuControl)
private
function GetRibbon: TdxCustomRibbon;
procedure DoPopupMenuClick(Sender: TObject);
procedure WMNCHitTest(var Message: TWMNCHitTest); message WM_NCHITTEST;
protected
function GetBehaviorOptions: TdxBarBehaviorOptions; override;
procedure InitCustomizationPopup(AItemLinks: TdxBarItemLinks); override;
function GetPopupMenuItems: TdxRibbonPopupMenuItems;
procedure PopupMenuClick(Sender: TObject);
property Ribbon: TdxCustomRibbon read GetRibbon;
end;
{ TdxRibbonController }
TdxRibbonController = class(TcxIUnknownObject, IdxBarHintKeeper)
private
FHintInfo: TdxRibbonHitInfo;
FHotObject: TdxRibbonHitTest;
FPressedObject: TdxRibbonHitTest;
FRibbon: TdxCustomRibbon;
FScrollKind: TdxRibbonHitTest;
FScrollTimer: TTimer;
procedure CancelScroll;
function CanProcessDesignTime: Boolean;
procedure ClearHintInfo;
procedure CreateTimer;
function GetViewInfo: TdxRibbonViewInfo;
procedure Invalidate(AOld, ANew: TdxRibbonHitTest);
procedure InvalidateScrollButtons;
procedure InvalidateButtons;
procedure OnTimer(Sender: TObject);
procedure StartScroll(AScrollKind: TdxRibbonHitTest);
procedure SetHintInfo(const Value: TdxRibbonHitInfo);
procedure SetHotObject(const Value: TdxRibbonHitTest);
procedure SetPressedObject(const Value: TdxRibbonHitTest);
protected
// IdxBarHintKeeper
function DoHint(var ANeedDeactivate: Boolean; out AHintText: string; out AShortCut: string): Boolean;
function CreateHintViewInfo(const AHintText, AShortCut: string): TdxBarCustomHintViewInfo;
function GetEnabled: Boolean;
function GetHintPosition(const ACursorPos: TPoint; AHeight: Integer): TPoint;
procedure CancelHint;
procedure CancelMode; virtual;
procedure CheckButtonsMouseUp(X: Integer; Y: Integer);
procedure DesignTabMenuClick(Sender: TObject);
procedure DoScroll(AOnTimer: Boolean);
procedure HideHint; virtual;
procedure InitTabDesignMenu(AItemLinks: TdxBarItemLinks); virtual;
function IsApplicationMenuDropped: Boolean;
function IsNeedShowHint(AObject: TdxRibbonHitTest): Boolean; virtual;
function IsOwnerForHintObject(AObject: TdxRibbonHitTest): Boolean; virtual;
procedure KeyDown(var Key: Word; Shift: TShiftState); virtual;
procedure KeyPress(var Key: Char); virtual;
procedure KeyUp(var Key: Word; Shift: TShiftState); virtual;
procedure MouseDown(Button: TMouseButton; Shift: TShiftState; X, Y: Integer); virtual;
procedure MouseLeave; virtual;
procedure MouseMove(Shift: TShiftState; X, Y: Integer); virtual;
procedure MouseUp(Button: TMouseButton; Shift: TShiftState; X, Y: Integer); virtual;
function MouseWheelDown(Shift: TShiftState; MousePos: TPoint): Boolean; virtual;
function MouseWheelUp(Shift: TShiftState; MousePos: TPoint): Boolean; virtual;
function NotHandleMouseMove(P: TPoint): Boolean; virtual;
procedure ProcessTabClick(ATab: TdxRibbonTab; Button: TMouseButton; Shift: TShiftState);
procedure ScrollGroups(AScrollLeft, AOnTimer: Boolean);
procedure ScrollTabs(AScrollLeft, AOnTimer: Boolean);
procedure ShowTabDesignMenu; virtual;
property HintInfo: TdxRibbonHitInfo read FHintInfo write SetHintInfo;
property HotObject: TdxRibbonHitTest read FHotObject write SetHotObject;
property PressedObject: TdxRibbonHitTest read FPressedObject write SetPressedObject;
public
constructor
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -