⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 dxribbon.pas

📁 胜天进销存源码,国产优秀的进销存
💻 PAS
📖 第 1 页 / 共 5 页
字号:
    function GetViewInfoClass: TdxRibbonGroupsDockControlViewInfoClass; virtual;
    function IsMultiRow: Boolean; override;
    procedure MakeRectFullyVisible(const R: TRect); virtual;
    procedure Paint; override;
    procedure SetSize; override;
    procedure ShowCustomizePopup; override;
    procedure UpdateGroupPositions;
    procedure VisibleChanged; override;

    property Ribbon: TdxCustomRibbon read GetRibbon;
    property ViewInfo: TdxRibbonGroupsDockControlViewInfo read FViewInfo;
  public
    constructor Create(ATab: TdxRibbonTab); reintroduce; virtual;
    destructor Destroy; override;
    procedure SetBounds(ALeft, ATop, AWidth, AHeight: Integer); override;

    property Tab: TdxRibbonTab read FTab;
  end;

  { TdxRibbonGroupsDockControlViewInfo }

  TdxRibbonGroupsDockControlViewInfo = class
  private
    FPrevGroupCollapsedStates: array of Boolean;
    FScrollButtons: TdxRibbonScrollButtons;
    FScrollPosition: Integer;
    procedure CheckGroupCollapsedStates;
    function GetFirstGroupPosition: Integer;
    function GetGroupCount: Integer;
    function GetGroupViewInfo(AIndex: Integer): TdxRibbonGroupBarControlViewInfo;
    function IsValidToolbar(AToolbar: TdxBar): Boolean;
    procedure SaveGroupCollapsedStates;
    function TotalGroupsWidth: Integer;
    function TryPlaceGroups(AMaxContentWidth: Integer): Boolean;
  protected
    FDockControl: TdxRibbonGroupsDockControl;
    procedure CalculateGroupsScrollInfo(AMaxContentWidth: Integer); virtual;
    procedure InternalScrollGroups(ADelta: Integer; AMaxContentWidth: Integer); virtual;
  public
    constructor Create(ADockControl: TdxRibbonGroupsDockControl); virtual;
    procedure Calculate(const ABoundsRect: TRect); virtual;
    procedure ResetScrollInfo;
    procedure ScrollGroups(AScrollLeft: Boolean; AMaxContentWidth: Integer); virtual;
    property DockControl: TdxRibbonGroupsDockControl read FDockControl;
    property FirstGroupPosition: Integer read GetFirstGroupPosition;
    property GroupCount: Integer read GetGroupCount;
    property GroupViewInfos[AIndex: Integer]: TdxRibbonGroupBarControlViewInfo read GetGroupViewInfo;
    property ScrollButtons: TdxRibbonScrollButtons read FScrollButtons;
  end;

  { TdxRibbonTabGroupsPopupWindow }

  TdxRibbonTabGroupsPopupWindow = class(TcxCustomPopupWindow)
  private
    FRibbon: TdxCustomRibbon;
    FShadow: TdxBarShadow;
    function GetBounds: TRect;
    function GetGroupsDockControlSite: TdxRibbonGroupsDockControlSite;
    procedure WMNCPaint(var Message: TMessage); message WM_NCPAINT;
    procedure WMSize(var Message: TWMSize); message WM_SIZE;
  protected
    function CalculatePosition: TPoint; override;
    procedure CalculateSize; override;
    procedure CreateParams(var Params: TCreateParams); override;
    procedure Deactivate; override;
    procedure DoClosed; override;
    procedure DoShowed; override;
    procedure DoShowing; override;
    procedure KeyDown(var Key: Word; Shift: TShiftState); override;
    procedure KeyPress(var Key: Char); override;
    function NeedIgnoreMouseMessageAfterCloseUp(AWnd: THandle; AMsg: Cardinal;
      AShift: TShiftState; const APos: TPoint): Boolean; override;
    procedure HandleNavigationKey(AKey: Word);
    procedure SetGroupsDockControlSite;
  public
    constructor Create(ARibbon: TdxCustomRibbon); reintroduce; virtual;
    destructor Destroy; override;
    property GroupsDockControlSite: TdxRibbonGroupsDockControlSite
      read GetGroupsDockControlSite;
    property Ribbon: TdxCustomRibbon read FRibbon;
  end;

  { TdxRibbonCustomBarControl }

  TdxRibbonPopupMenuItem = (rpmiItems, rpmiMoreCommands, rpmiQATPosition,
    rpmiQATAddRemoveItem, rpmiMinimizeRibbon);
  TdxRibbonPopupMenuItems = set of TdxRibbonPopupMenuItem;

  TdxRibbonCustomBarControl = class(TdxBarControl)
  private
    function GetQuickAccessToolbar: TdxRibbonQuickAccessToolbar;
    procedure WMNCHitTest(var Message: TWMNCHitTest); message WM_NCHITTEST;
  protected
    function AllowQuickCustomizing: Boolean; override;
    function CanAlignControl(AControl: TdxBarItemControl): Boolean; override;
    function CanMoving: Boolean; override;
    function GetBehaviorOptions: TdxBarBehaviorOptions; override;
    function GetEditFont: TFont; override;
    function GetFont: TFont; override;
    function GetFullItemRect(Item: TdxBarItemControl): TRect; override;
    function GetIsMainMenu: Boolean; override;
    function GetMultiLine: Boolean; override;
    function GetRibbon: TdxCustomRibbon; virtual; abstract;
    function HasCloseButton: Boolean; override;
    function MarkExists: Boolean; override;
    function NotHandleMouseMove(ACheckLastMousePos: Boolean = True): Boolean; override;
    function RealMDIButtonsOnBar: Boolean; override;
    //
    function ClickAtHeader: Boolean; virtual;
    procedure DoPopupMenuClick(Sender: TObject); virtual;
    function GetPopupMenuItems: TdxRibbonPopupMenuItems; virtual;
    procedure InitCustomizationPopup(AItemLinks: TdxBarItemLinks); override;
    procedure PopupMenuClick(Sender: TObject);
    procedure ShowPopup(AItem: TdxBarItemControl); override;
    //
    property QuickAccessToolbar: TdxRibbonQuickAccessToolbar read GetQuickAccessToolbar;
  public
    constructor CreateEx(AOwner: TComponent; ABar: TdxBar); override;
    property Ribbon: TdxCustomRibbon read GetRibbon;
  end;

  { TdxRibbonQuickAccessBarControl }

  TdxRibbonQuickAccessBarControl = class(TdxRibbonCustomBarControl)
  private
    FBitmap: TcxBitmap;
    FDefaultGlyph: TBitmap;
    FIsWindowCreation: Boolean;
    FInternalItems: TComponentList;
    function GetSeparatorWidth(AItemControl: TdxBarItemControl): Integer;
    function GetViewInfo: TdxRibbonQuickAccessBarControlViewInfo;
    procedure WMPaint(var Message: TWMPaint); message WM_PAINT;
  {$IFNDEF DELPHI7}
    procedure WMPrintClient(var Message: TWMPrintClient); message WM_PRINTCLIENT;
  {$ENDIF}
  protected
    function AllItemsVisible: Boolean;
    procedure CalcControlsPositions; override;
    function CanHideAllItemsInSingleLine: Boolean; override;
    procedure CreateWnd; override;
    procedure DoPaintItem(AControl: TdxBarItemControl; ACanvas: TcxCanvas; const AItemRect: TRect); override;
    function GetAccessibilityHelperClass: TdxBarAccessibilityHelperClass; override;
    function GetClientOffset: TRect; virtual;
    function GetDefaultItemGlyph: TBitmap; override;
    function GetItemControlDefaultViewLevel(
      AItemControl: TdxBarItemControl): TdxBarItemViewLevel; override;
    function GetMarkAccessibilityHelperClass: TdxBarAccessibilityHelperClass; override;
    function GetMarkSize: Integer; override;
    function GetMinHeight(AStyle: TdxBarDockingStyle): Integer; override;
    function GetMinWidth(AStyle: TdxBarDockingStyle): Integer; override;
    function GetPopupMenuItems: TdxRibbonPopupMenuItems; override;
    function GetQuickControlClass: TdxBarControlClass; override;
    function GetRibbon: TdxCustomRibbon; override;
    function GetSize(AMaxWidth: Integer): TSize;
    function GetSizeForWidth(AStyle: TdxBarDockingStyle; AWidth: Integer): TPoint; override;
    function GetViewInfoClass: TCustomdxBarControlViewInfoClass; override;

    function AllowQuickCustomizing: Boolean; override;
    procedure InitQuickCustomizeItemLinks(AQuickControlItemLinks: TdxBarItemLinks); override;
    procedure InitAddRemoveSubItemPopup(AItemLinks: TdxBarItemLinks); override;

    procedure InitCustomizationPopup(AItemLinks: TdxBarItemLinks); override;
    function MarkExists: Boolean; override;
    procedure RemoveItemFromQAT;
    procedure ShowPopup(AItem: TdxBarItemControl); override;
    procedure UpdateDefaultGlyph(AGlyph: TBitmap); virtual;
    procedure UpdateDoubleBuffered; override;

    property ViewInfo: TdxRibbonQuickAccessBarControlViewInfo read GetViewInfo;
  public
    constructor CreateEx(AOwner: TComponent; ABar: TdxBar); override;
    destructor Destroy; override;
    function IsOnGlass: Boolean; override;
  end;

  { TdxRibbonQuickAccessBarControlViewInfo }

  TdxRibbonQuickAccessBarControlViewInfo = class(TdxBarControlViewInfo)
  protected
    function CanShowSeparators: Boolean; override;
    function IsLastVisibleItemControl(AItemControl: TdxBarItemControl): Boolean; override;
  end;

  { TdxRibbonQuickAccessItemControlPainter }

  TdxRibbonQuickAccessPainter = class(TdxRibbonBarPainter)
  protected
    procedure BarDrawMarkBackground(ABarControl: TdxBarControl; DC: HDC;
      ItemRect: TRect; AToolbarBrush: HBRUSH); override;
    procedure DrawGroupButtonControl(ADrawParams: TdxBarButtonLikeControlDrawParams;
      const ARect: TRect); virtual;
    procedure DrawToolbarContentPart(ABarControl: TdxBarControl; ACanvas: TcxCanvas); override;
    function MarkButtonWidth: Integer; virtual;
  public
    function BarMarkRect(ABarControl: TdxBarControl): TRect; override;
    function BarMarkItemRect(ABarControl: TdxBarControl): TRect; override;
    procedure ComboControlDrawArrowButton(
      const ADrawParams: TdxBarEditLikeControlDrawParams; ARect: TRect; AInClientArea: Boolean); override;
    function GetToolbarContentOffsets(ABar: TdxBar;
      ADockingStyle: TdxBarDockingStyle; AHasSizeGrip: Boolean): TRect; override;
    function MarkButtonOffset: Integer; virtual;
    function MarkSizeX(ABarControl: TdxBarControl): Integer; override;
  end;

  { TdxRibbonQuickAccessDockControl }

  TdxRibbonQuickAccessDockControl = class(TdxCustomRibbonDockControl)
  private
    FPainter: TdxRibbonQuickAccessPainter;
    FRibbon: TdxCustomRibbon;
  protected
    procedure CalcLayout; override;
    function GetDockedBarControlClass: TdxBarControlClass; override;
    function GetPainter: TdxBarPainter; override;
    procedure VisibleChanged; override;
  public
    constructor Create(AOwner: TdxCustomRibbon); reintroduce; virtual;
    destructor Destroy; override;
    property Ribbon: TdxCustomRibbon read FRibbon;
  end;

  { TdxRibbonQuickAccessBarControlDesignHelper }

  TdxRibbonQuickAccessBarControlDesignHelper = class(TCustomdxBarControlDesignHelper)
  public
    class procedure GetEditors(AEditors: TList); override;
    class function GetForbiddenActions: TdxBarCustomizationActions; override;
  end;

  { TdxRibbonQuickAccessPopupBarControl }

  TdxRibbonQuickAccessPopupBarControl = class(TdxRibbonQuickAccessBarControl)
  private
    FPainter: TdxBarPainter;
    function GetQuickAccessBarControl: TdxRibbonQuickAccessBarControl;
    function GetMarkLink: TdxBarItemLink;
    function GetMarkSubItem: TCustomdxBarSubItem;
  protected
    function GetClientOffset: TRect; override;
    function GetPainter: TdxBarPainter; override;
    function GetRibbon: TdxCustomRibbon; override;
    function GetSizeForPopup: TSize; override;
    function HasShadow: Boolean; override;
    function IsPopup: Boolean; override;
    property QuickAccessBarControl: TdxRibbonQuickAccessBarControl
      read GetQuickAccessBarControl;
  public
    constructor CreateEx(AOwner: TComponent; ABar: TdxBar); override;
    destructor Destroy; override;
    procedure CloseUp; override;
    procedure Popup(const AOwnerRect: TRect); override;
  end;

  { TdxRibbonQuickAccessPopupItemControlPainter }

  TdxRibbonQuickAccessPopupPainter = class(TdxRibbonQuickAccessPainter)
  protected
    procedure DrawQuickAccessPopupSubItem(DC: HDC; const ARect: TRect;
      AState: Integer); virtual;
    procedure DrawToolbarContentPart(ABarControl: TdxBarControl; ACanvas: TcxCanvas); override;
  public
    function MarkButtonOffset: Integer; override;
    function MarkSizeX(ABarControl: TdxBarControl): Integer; override;
  end;

  { TdxRibbonQuickAccessPopupSubItem }

  TdxRibbonQuickAccessPopupSubItem = class(TdxBarSubItem)
  protected
    function CreateBarControl: TCustomdxBarControl; override;
  end;

  TdxRibbonQuickAccessPopupSubMenuControl = class(TdxBarSubMenuControl)
  protected
    procedure ShowPopup(AItem: TdxBarItemControl); override;
  end;

  { TdxRibbonQuickAccessPopupSubItemControl }

  TdxRibbonQuickAccessPopupSubItemControl = class(TdxBarSubItemControl)
  protected
    procedure DoCloseUp(AHadSubMenuControl: Boolean); override;
    procedure DoPaint(ARect: TRect; PaintType: TdxBarPaintType); override;
    function GetDefaultWidth: Integer; override;
  end;

  { TdxRibbonQuickAccessPopupSubItemButton }

  TdxRibbonQuickAccessPopupSubItemButton = class(TdxBarButton)
  public
    procedure DoClick; override;
  end;

  { TdxRibbonQuickAccessPopupSubItemButtonControl }

  TdxRibbonQuickAccessPopupSubItemButtonControl = class(TdxBarButtonControl)
  end;

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -