📄 dxribbongallery.pas
字号:
procedure CalcDrawParams(AFull: Boolean = True); override;
procedure ControlActivate(Immediately: Boolean); override;
procedure ControlClick(AByMouse: Boolean; AKey: Char = #0); override;
procedure CreateSubMenuControl; override;
procedure DoCreateSubMenuControl; override;
procedure DoPaint(ARect: TRect; PaintType: TdxBarPaintType); override;
procedure FilterCaptionChanged;
function GetAccessibilityHelperClass: TdxBarAccessibilityHelperClass; override;
function GetGroups: TdxRibbonGalleryGroups;
function GetSubMenuControl: TdxBarSubMenuControl; override;
function GetViewInfoClass: TdxBarItemControlViewInfoClass; override;
function GetVisibleGroupCount: Integer;
function HasSubMenu: Boolean; override;
function IsDestroyOnClick: Boolean; override;
function IsEnabledScrollBar: Boolean;
function IsHiddenForCustomization: Boolean; override;
function IsNeedScrollBar: Boolean; virtual;
function IsValidPainter: Boolean;
procedure MouseDown(Button: TMouseButton; Shift: TShiftState; X, Y: Integer); override;
procedure MouseLeave; override;
procedure MouseMove(Shift: TShiftState; X, Y: Integer); override;
procedure MouseUp(Button: TMouseButton; Shift: TShiftState; X, Y: Integer); override;
procedure DoScrollBarScroll(Sender: TObject; ScrollCode: TScrollCode; var ScrollPos: Integer);
procedure DoScrollBarMouseMove(Sender: TObject; Shift: TShiftState;
X, Y: Integer);
procedure ScrollBarSetup;
procedure SetScrollBarPosition(APosition: Integer); virtual;
property Collapsed: Boolean read GetCollapsed write SetCollapsed;
property Controller: TdxRibbonGalleryController read FController;
property LockCalcParts: Boolean read FLockCalcParts write FLockCalcParts;
property ScrollBar: TdxRibbonGalleryScrollBar read FScrollBar;
property SizeChanged: Boolean read FSizeChanged write FSizeChanged;
public
constructor Create(AItemLink: TdxBarItemLink); override;
destructor Destroy; override;
property ClientHeight: Integer read GetClientHeight;
property ClientWidth: Integer read GetClientWidth;
property Item: TdxRibbonGalleryItem read GetItem;
property ViewInfo: TdxRibbonGalleryControlViewInfo read GetViewInfo;
end;
{ TdxRibbonGalleryGroupElementViewInfo }
TdxRibbonGalleryGroupElementViewInfo = class
private
FBounds: TRect;
FOwner: TdxRibbonGalleryGroupViewInfo;
protected
function GetCaption: string; virtual; abstract;
function GetFont: TFont; virtual;
function GetGalleryItemControl: TdxRibbonGalleryControl;
function GetTextFlags(AnAlignment: TAlignment): Integer;
public
constructor Create(AOwner: TdxRibbonGalleryGroupViewInfo);
procedure Calculate(const ABounds: TRect); virtual;
procedure Paint(ACanvas: TcxCanvas); virtual;
property Bounds: TRect read FBounds;
property Caption: string read GetCaption;
property Font: TFont read GetFont;
property Owner: TdxRibbonGalleryGroupViewInfo read FOwner;
end;
{ TdxRibbonGalleryGroupHeaderViewInfo }
TdxRibbonGalleryGroupHeaderViewInfo = class(TdxRibbonGalleryGroupElementViewInfo)
private
FTextBounds: TRect;
function IsVisible: Boolean;
protected
function GetCaption: string; override;
function GetHeight(AWidth: Integer; AWithSpaceAfterHeader: Boolean): Integer;
function GetTextBounds: TRect; virtual;
public
procedure Calculate(const ABounds: TRect); override;
procedure Paint(ACanvas: TcxCanvas); override;
property TextBounds: TRect read FTextBounds;
end;
{ TdxRibbonGalleryGroupItemViewInfo }
TdxRibbonGalleryGroupItemViewInfo = class(TdxRibbonGalleryGroupElementViewInfo)
private
FCaptionBounds: TRect;
FCaptionWidth: Integer;
FDescriptionBounds: TRect;
FDescriptionLength: Integer;
// FDescriptionRect: TRect;
FDescriptionRowCount: Integer;
FDescriptionSize: TSize;
FGroupItem: TdxRibbonGalleryGroupItem;
FImageBounds: TRect;
FPredefinedItemSize: TSize;
procedure CheckCaptionFontStyle(AFont: TFont);
function GetDescriptionLenght: Integer;
function GetDescriptionRect: TRect;
function GetDowned: Boolean;
function GetHotGroupItem: TdxRibbonGalleryGroupItem;
function GetHorizontalImageIndent: Integer;
function GetImagePlace: TSize;
function GetIsItemPullHighlighting: Boolean;
function GetItemSize: TSize;
function GetOptions: TdxRibbonGalleryGroupOptions;
function GetPainter: TdxBarSkinnedPainter;
function GetRectConsiderBounds(const ARect: TRect): TRect;
function GetSelected: Boolean;
function GetVerticalImageIndent: Integer;
function IsCaptionVisible: Boolean;
function IsDescriptionVisible: Boolean;
function IsImageVisible: Boolean;
function IsInplaceGallery: Boolean;
function IsMergeItemsImages: Boolean;
function IsThisGroupItem(AGroupItem: TdxRibbonGalleryGroupItem): Boolean;
function ItemHeightWithoutImage: Integer;
function ItemWidthWithoutImage: Integer;
protected
procedure DrawItemText(ACanvas: TcxCanvas); virtual;
function GetCaption: string; override;
function GetCaptionHeight: Integer; virtual;
function GetCaptionWidth: Integer; virtual;
function GetDescription: string; virtual;
function GetDescriptionHeight: Integer; virtual;
function GetDescriptionWidth: Integer; virtual;
function GetHotTracked: Boolean;
function GetSpaceBetweenItemCaptionAndDescription: Integer; virtual;
function GetSpaceBetweenItemImageAndText: Integer; virtual;
function GetImageSize: TSize; virtual;
function GetUnsizedImageSize: TSize; virtual;
function GetCaptionBounds: TRect; virtual;
function GetDescriptionBounds: TRect; virtual;
function GetImageBounds: TRect; virtual;
function GetTextLeft: Integer; virtual;
function GetTextRight: Integer; virtual;
function GetTextTop: Integer; virtual;
function IsBoldCaption: Boolean; virtual;
procedure SetPredefinedItemSize(const AValue: TSize);
property HorizontalImageIndent: Integer read GetHorizontalImageIndent;
property HotGroupItem: TdxRibbonGalleryGroupItem read GetHotGroupItem;
property IsItemPullHighlighting: Boolean read GetIsItemPullHighlighting;
property ItemSize: TSize read GetItemSize;
property Options: TdxRibbonGalleryGroupOptions read GetOptions;
property Painter: TdxBarSkinnedPainter read GetPainter;
property VerticalImageIndent: Integer read GetVerticalImageIndent;
public
constructor Create(AOwner: TdxRibbonGalleryGroupViewInfo; AGroupItem: TdxRibbonGalleryGroupItem);
procedure Calculate(const ABounds: TRect); override;
procedure Paint(ACanvas: TcxCanvas); override;
property Description: string read GetDescription;
property GroupItem: TdxRibbonGalleryGroupItem read FGroupItem;
end;
{ TdxRibbonGalleryGroupViewInfo }
TdxRibbonGalleryGroupRepaintPart = (ggrpAll, ggrpBefore, ggrpAfter, ggrpBetween);
TdxRibbonGalleryGroupViewInfo = class
private
FBounds: TRect;
FGroup: TdxRibbonGalleryGroup;
FHeader: TdxRibbonGalleryGroupHeaderViewInfo;
FItems: TcxObjectList;
FItemSize: TSize;
FOwner: TdxRibbonGalleryControlViewInfo;
function GetFirstItemInGroupRow(ARowIndex, AColumnCount: Integer): Integer;
function GetFont: TFont;
function GetItem(Index: Integer): TdxRibbonGalleryGroupItemViewInfo;
function GetItemCount: Integer;
function GetItemSize: TSize;
function GetOptions: TdxRibbonGalleryGroupOptions;
function GetPainter: TdxBarSkinnedPainter;
protected
function CalculateItemSize(const APredefinedItemSize: TSize): TSize;
procedure ClearItems;
procedure CreateGroupItem(AItemIndex: Integer; const ABounds: TRect);
function GetColumnCount(AWidth: Integer): Integer; virtual;
function GetColumnCountInRow(ARow: Integer; AGroupWidth: Integer): Integer; virtual;
function GetColumnLeft(AColumnIndex: Integer; AGroupLeft: Integer): Integer; virtual;
function GetColumnWidth: Integer;
function GetGroupWidth: Integer;
function GetHeaderBounds(AGroupBounds: TRect): TRect;
function GetItemColumn(AIndex: Integer; AGroupWidth: Integer): Integer;
function GetItemIndex(ARow, AColumn: Integer; AGroupWidth: Integer): Integer;
function GetItemRow(AGroupItemIndex: Integer; AGroupWidth: Integer): Integer;
function GetLastItemInGroupRow(ARowIndex, AColumnCount: Integer): Integer;
function GetRowCount(AGroupWidth: Integer): Integer;
function GetRowHeight: Integer;
function GetRowTop(ARowIndex: Integer; AGroupTop: Integer; AGroupWidth: Integer): Integer; virtual;
function GetSpaceBetweenItems(IsAflat: Boolean): Integer;
procedure RepaintChainOfItems(AnItemIndex: Integer; IsHotTrack: Boolean;
ACanvas: TcxCanvas; APart: TdxRibbonGalleryGroupRepaintPart = ggrpAll;
AnItemIndex2: Integer = 0);
procedure SetBounds(const ABounds: TRect);
property Font: TFont read GetFont;
property Options: TdxRibbonGalleryGroupOptions read GetOptions;
property Painter: TdxBarSkinnedPainter read GetPainter;
public
constructor Create(AOwner: TdxRibbonGalleryControlViewInfo;
AGroup: TdxRibbonGalleryGroup; const AItemSize: TSize);
destructor Destroy; override;
procedure Calculate(AGroupTop, AGroupBottom: Integer; const AControlClientRect: TRect);
function GetHeight(AWidth: Integer): Integer;
procedure Paint(ACanvas: TcxCanvas);
property Bounds: TRect read FBounds;
property Group: TdxRibbonGalleryGroup read FGroup;
property Header: TdxRibbonGalleryGroupHeaderViewInfo read FHeader;
property ItemCount: Integer read GetItemCount;
property Items[Index: Integer]: TdxRibbonGalleryGroupItemViewInfo read GetItem;
property ItemSize: TSize read FItemSize;
property Owner: TdxRibbonGalleryControlViewInfo read FOwner;
end;
{ TdxRibbonGalleryControlViewInfo }
TdxRibbonGalleryControlViewInfo = class(TdxBarItemControlViewInfo)
private
FDontDisplayHotTrackedGroupItem: Integer;
FDontDisplayGroupHeaderWhenHotTrackingGroupItem: Integer;
FDownedGroupItem: TdxRibbonGalleryGroupItem;
FGlobalItemSize: TSize;
FGroupItemStoredSizes: array of TSize;
FHotGroupItem: TdxRibbonGalleryGroupItem;
FLayoutOffset: Integer;
function GetGroupCount: Integer;
function GetGroups(Index: Integer): TdxRibbonGalleryGroupViewInfo;
function GetGroupItemSize(AGroupIndex: Integer): TSize;
procedure CalculateGlobalItemSize;
function GetControl: TdxRibbonGalleryControl;
function GetGalleryBounds: TRect;
function GetGalleryItem: TdxRibbonGalleryItem;
function GetGalleryOptions: TdxRibbonGalleryOptions;
function GetGallerySize: TSize;
function GetPainter: TdxBarSkinnedPainter;
function GetScrollBarBounds: TRect;
function GetScrollBarWidth: Integer;
procedure DrawGroupItem(const AGroupItem: TdxRibbonGalleryGroupItem);
procedure RepaintChainOfGroups(ANewItem, AOldItem: TdxRibbonGalleryGroupItem);
protected
FGroups: TcxObjectList;
procedure DisplayGroupItem(AGroupItem: TdxRibbonGalleryGroupItem); virtual;
procedure DrawBackground(const R: TRect); virtual; abstract;
procedure DrawSelectedGroupItem(ASelectedGroupItem, AOldSelectedGroupItem: TdxRibbonGalleryGroupItem);
procedure GalleryChanged;
function GetAbsoluteGroupTop(AGroupIndex: Integer;
AWidth: Integer): Integer;
function GetControlBounds: TRect; virtual;
function GetGalleryHeight(AWidth: Integer): Integer; virtual;
function GetGalleryMargins: TRect; virtual; abstract;
function GetGroupItemCount(ALastGroupIndex: Integer): Integer;
function GetHeight(AWidth: Integer): Integer; virtual;
function GetLayoutWidth(AColumnCount: Integer; out AGroupItemWidthIsNull: Boolean): Integer; virtual; abstract;
function GetMaxGroupItemSize: TSize; virtual;
function GetGroupItem(X, Y: Integer): TdxRibbonGalleryGroupItem;
function GetGroupItemStoredSize(AGroupIndex: Integer): TSize;
function GetGroupItemViewInfo(AGroupItem: TdxRibbonGalleryGroupItem): TdxRibbonGalleryGroupItemViewInfo;
function GetLeftLayoutIndent: Integer; virtual;
function GetMinSize: TSize; virtual; abstract;
function GetNextButtonEnabled: Boolean;
function GetPreviousButtonEnabled: Boolean;
function GetRightLayoutIndent: Integer; virtual;
function GetVisibleGroupIndex(AStartGroupIndex: Integer; AIncreaseIndex: Boolean): Integer;
function GetVisibleNotEmptyGroupIndex(AStartGroupIndex: Integer; AIncreaseIndex: Boolean): Integer;
function InternalGetScrollBarWidth: Integer; virtual; abstract;
function IsGroupHeaderVisible: Boolean; virtual;
function IsGroupItemAtThisPlace(X, Y: Integer): Boolean;
function IsInRibbon: Boolean; virtual;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -