cxlookandfeelpainters.pas
来自「胜天进销存源码,国产优秀的进销存」· PAS 代码 · 共 1,181 行 · 第 1/5 页
PAS
1,181 行
{********************************************************************}
{ }
{ Developer Express Visual Component Library }
{ ExpressCommonLibrary }
{ }
{ Copyright (c) 1998-2008 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 EXPRESSCOMMONLIBRARY 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 cxLookAndFeelPainters;
{$I cxVer.inc}
interface
uses
Windows, dxUxTheme, dxThemeManager, dxOffice11,
{$IFDEF DELPHI6}
Types,
{$ENDIF}
Classes, Graphics, Controls, ImgList, cxClasses, cxGraphics, cxGeometry;
const
cxTextOffset = 2;
cxHeaderTextOffset = cxTextOffset;
cxArrowLeftBasePointIndex = 0;
cxArrowTopPointIndex = 1;
cxArrowRightBasePointIndex = 2;
cxStdThumbnailMinimalSize = 8;
type
TcxLookAndFeelStyle = (lfsFlat, lfsStandard, lfsUltraFlat,
lfsNative, lfsOffice11);
TcxArrowDirection = (adUp, adDown, adLeft, adRight);
TcxArrowPoints = array[0..2] of TPoint;
TcxEditBtnKind = (cxbkCloseBtn, cxbkComboBtn, cxbkEditorBtn, cxbkEllipsisBtn,
cxbkSpinUpBtn, cxbkSpinDownBtn, cxbkSpinLeftBtn, cxbkSpinRightBtn);
TcxButtonState = (cxbsDefault, cxbsNormal, cxbsHot, cxbsPressed, cxbsDisabled);
TcxCheckBoxState = (cbsUnchecked, cbsChecked, cbsGrayed);
TcxGroupBoxCaptionPosition = (cxgpTop, cxgpBottom, cxgpLeft, cxgpRight, cxgpCenter);
TcxHeaderArrows = (haNone, haLeft, haRight, haBoth);
TcxIndicatorKind = (ikNone, ikArrow, ikEdit, ikInsert, ikMultiDot, ikMultiArrow, ikFilter);
TcxNeighbor = (nLeft, nTop, nRight, nBottom);
TcxNeighbors = set of TcxNeighbor;
TcxScrollBarPart = (sbpNone, sbpLineUp, sbpLineDown, sbpThumbnail,
sbpPageUp, sbpPageDown);
TcxPopupBorderStyle = (pbsNone, pbsUltraFlat, pbsFlat, pbs3D);
TcxTrackBarTicksAlign = (tbtaUp, tbtaDown, tbtaBoth);
TcxDrawBackgroundEvent = function(ACanvas: TcxCanvas; const ABounds: TRect): Boolean of object;
TcxCustomLookAndFeelPainterClass = class of TcxCustomLookAndFeelPainter;
IcxLookAndFeelPainterListener = interface
['{7665EF58-2C4B-48B9-E1BE-BD5E135CA88F}']
procedure PainterChanged(APainter: TcxCustomLookAndFeelPainterClass);
end;
TcxCustomLookAndFeelPainter = class
protected
class procedure DrawBackground(ACanvas: TcxCanvas; const ARect: TRect;
ATransparent: Boolean; ABackgroundColor: TColor; const ABackgroundBitmap: TBitmap); virtual;
class procedure DrawButtonArrow(ACanvas: TcxCanvas; const R: TRect; AColor: TColor); virtual;
class procedure DrawContent(ACanvas: TcxCanvas; const ABounds, ATextAreaBounds: TRect; AState: Integer;
AAlignmentHorz: TAlignment; AAlignmentVert: TcxAlignmentVert; AMultiLine, AShowEndEllipsis: Boolean;
const AText: string; AFont: TFont; ATextColor, ABkColor: TColor;
AOnDrawBackground: TcxDrawBackgroundEvent = nil; AIsFooter: Boolean = False); virtual;
class procedure DrawExpandButtonCross(ACanvas: TcxCanvas; const R: TRect;
AExpanded: Boolean; AColor: TColor);
class procedure DrawGroupExpandButtonMark(ACanvas: TcxCanvas; const R: TRect;
AExpanded: Boolean; AState: TcxButtonState);
class procedure DrawMonthHeaderArrows(ACanvas: TcxCanvas; const ABounds: TRect;
AArrows: TcxHeaderArrows; ASideWidth: Integer; AColor: TColor);
class procedure DrawSortingArrow(ACanvas: TcxCanvas; const R: TRect;
AColor1, AColor2: TColor; AAscendingSorting: Boolean);
class procedure DrawSchedulerNavigationButtonContent(ACanvas: TcxCanvas;
const ARect: TRect; const AArrowRect: TRect; AIsNextButton: Boolean;
AState: TcxButtonState); virtual;
class function FooterCellContentBounds(const ABounds: TRect): TRect; virtual;
class function FooterCellTextAreaBounds(const ABounds: TRect): TRect; virtual;
class function GetArrowDirection(AHorizontal: Boolean; APart: TcxScrollBarPart): TcxArrowDirection;
public
class function LookAndFeelStyle: TcxLookAndFeelStyle; virtual;
// colors
class function DefaultContentColor: TColor; virtual;
class function DefaultContentEvenColor: TColor; virtual;
class function DefaultContentOddColor: TColor; virtual;
class function DefaultContentTextColor: TColor; virtual;
class function DefaultEditorBackgroundColor(AIsDisabled: Boolean): TColor; virtual;
class function DefaultEditorTextColor(AIsDisabled: Boolean): TColor; virtual;
class function DefaultFilterBoxColor: TColor; virtual;
class function DefaultFilterBoxTextColor: TColor; virtual;
class function DefaultFixedSeparatorColor: TColor; virtual;
class function DefaultFooterColor: TColor; virtual;
class function DefaultFooterTextColor: TColor; virtual;
class function DefaultGridDetailsSiteColor: TColor; virtual;
class function DefaultGridLineColor: TColor; virtual;
class function DefaultGroupByBoxColor: TColor; virtual;
class function DefaultGroupByBoxTextColor: TColor; virtual;
class function DefaultGroupColor: TColor; virtual;
class function DefaultGroupTextColor: TColor; virtual;
class function DefaultHeaderBackgroundColor: TColor; virtual;
class function DefaultHeaderBackgroundTextColor: TColor; virtual;
class function DefaultHeaderColor: TColor; virtual;
class function DefaultHeaderTextColor: TColor; virtual;
class function DefaultHyperlinkTextColor: TColor; virtual;
class function DefaultInactiveColor: TColor; virtual;
class function DefaultInactiveTextColor: TColor; virtual;
class function DefaultPreviewTextColor: TColor; virtual;
class function DefaultRecordSeparatorColor: TColor; virtual;
class function DefaultSizeGripAreaColor: TColor; virtual;
class function DefaultVGridCategoryColor: TColor; virtual;
class function DefaultVGridCategoryTextColor: TColor; virtual;
class function DefaultVGridLineColor: TColor; virtual;
class function DefaultVGridBandLineColor: TColor; virtual;
class function DefaultDateNavigatorHeaderColor: TColor; virtual;
class function DefaultDateNavigatorSelectionColor: TColor; virtual;
class function DefaultDateNavigatorSelectionTextColor: TColor; virtual;
class function DefaultSchedulerBackgroundColor: TColor; virtual;
class function DefaultSchedulerTextColor: TColor; virtual;
class function DefaultSchedulerBorderColor: TColor; virtual;
class function DefaultSchedulerControlColor: TColor; virtual;
class function DefaultSchedulerNavigatorColor: TColor; virtual;
class function DefaultSchedulerViewContentColor: TColor; virtual;
class function DefaultSchedulerViewSelectedTextColor: TColor; virtual;
class function DefaultSchedulerViewTextColor: TColor; virtual;
class function DefaultSelectionColor: TColor; virtual;
class function DefaultSelectionTextColor: TColor; virtual;
class function DefaultSeparatorColor: TColor; virtual;
class function DefaultTabColor: TColor; virtual;
class function DefaultTabTextColor: TColor; virtual;
class function DefaultTabsBackgroundColor: TColor; virtual;
class function DefaultTimeGridMajorScaleColor: TColor; virtual;
class function DefaultTimeGridMajorScaleTextColor: TColor; virtual;
class function DefaultTimeGridMinorScaleColor: TColor; virtual;
class function DefaultTimeGridMinorScaleTextColor: TColor; virtual;
class function DefaultTimeGridSelectionBarColor: TColor; virtual;
class function DefaultChartDiagramValueBorderColor: TColor; virtual;
class function DefaultChartDiagramValueCaptionTextColor: TColor; virtual;
class function DefaultChartHistogramAxisColor: TColor; virtual;
class function DefaultChartHistogramGridLineColor: TColor; virtual;
class function DefaultChartHistogramPlotColor: TColor; virtual;
class function DefaultChartPieDiagramSeriesSiteBorderColor: TColor; virtual;
class function DefaultChartPieDiagramSeriesSiteCaptionColor: TColor; virtual;
class function DefaultChartPieDiagramSeriesSiteCaptionTextColor: TColor; virtual;
class function DefaultChartToolBoxDataLevelInfoBorderColor: TColor; virtual;
class function DefaultChartToolBoxItemSeparatorColor: TColor; virtual;
// arrow
class procedure CalculateArrowPoints(R: TRect; var P: TcxArrowPoints; AArrowDirection: TcxArrowDirection; AProportional: Boolean; AArrowSize: Integer = 0);
class procedure DrawArrow(ACanvas: TcxCanvas; const R: TRect; AArrowDirection: TcxArrowDirection; AColor: TColor); overload; virtual;
class procedure DrawArrow(ACanvas: TcxCanvas; const R: TRect; AState: TcxButtonState; AArrowDirection: TcxArrowDirection; ADrawBorder: Boolean = True); overload; virtual;
class procedure DrawArrowBorder(ACanvas: TcxCanvas; const R: TRect; AState: TcxButtonState); virtual;
class procedure DrawScrollBarArrow(ACanvas: TcxCanvas; R: TRect; AState: TcxButtonState; AArrowDirection: TcxArrowDirection); virtual;
// border
class function BorderSize: Integer; virtual;
class procedure DrawBorder(ACanvas: TcxCanvas; R: TRect); virtual;
// buttons
class function AdjustGroupButtonDisplayRect(const R: TRect; AButtonCount, AButtonIndex: Integer): TRect; virtual;
class function ButtonBorderSize(AState: TcxButtonState = cxbsNormal): Integer; virtual; // abstract;
class function ButtonColor(AState: TcxButtonState): TColor; virtual;
class function ButtonFocusRect(ACanvas: TcxCanvas; R: TRect): TRect; virtual;
class function ButtonGroupBorderSizes(AButtonCount, AButtonIndex: Integer): TRect; virtual;
class function ButtonTextOffset: Integer; virtual; // abstract;
class function ButtonTextShift: Integer; virtual; // abstract;
class function ButtonSymbolColor(AState: TcxButtonState;
ADefaultColor: TColor = clDefault): TColor; virtual;
class function ButtonSymbolState(AState: TcxButtonState): TcxButtonState; virtual;
class procedure DrawButton(ACanvas: TcxCanvas; R: TRect; const ACaption: string;
AState: TcxButtonState; ADrawBorder: Boolean = True; AColor: TColor = clDefault;
ATextColor: TColor = clDefault; AWordWrap: Boolean = False); virtual;
class procedure DrawButtonCross(ACanvas: TcxCanvas; const R: TRect; AColor: TColor;
AState: TcxButtonState);
class procedure DrawButtonInGroup(ACanvas: TcxCanvas; R: TRect;
AState: TcxButtonState; AButtonCount, AButtonIndex: Integer;
ABackgroundColor: TColor); virtual;
class procedure DrawButtonBorder(ACanvas: TcxCanvas; R: TRect; AState: TcxButtonState); virtual; // abstract;
class procedure DrawButtonGroupBorder(ACanvas: TcxCanvas; R: TRect; AInplace, ASelected: Boolean); virtual;
class procedure DrawExpandButton(ACanvas: TcxCanvas; const R: TRect; AExpanded: Boolean; AColor: TColor = clDefault); virtual; // abstract;
class function DrawExpandButtonFirst: Boolean; virtual;
class procedure DrawGroupExpandButton(ACanvas: TcxCanvas; const R: TRect; AExpanded: Boolean; AState: TcxButtonState); virtual; // abstract
class procedure DrawSmallExpandButton(ACanvas: TcxCanvas; R: TRect; AExpanded: Boolean;
ABorderColor: TColor; AColor: TColor = clDefault); virtual;
class function ExpandButtonSize: Integer; virtual; // abstract;
class function GroupExpandButtonSize: Integer; virtual; // abstract;
class function IsButtonHotTrack: Boolean; virtual; // abstract;
class function IsPointOverGroupExpandButton(const R: TRect; const P: TPoint): Boolean; virtual;
class function SmallExpandButtonSize: Integer; virtual;
// checkbox
class function CheckBorderSize: Integer; virtual;
class function CheckButtonColor(AState: TcxButtonState): TColor; virtual;
class function CheckButtonSize: TSize; virtual;
class procedure DrawCheck(ACanvas: TcxCanvas; const R: TRect; AState: TcxButtonState;
AChecked: Boolean; AColor: TColor); virtual;
class procedure DrawCheckBorder(ACanvas: TcxCanvas; R: TRect; AState: TcxButtonState); virtual; // abstract;
class procedure DrawCheckButton(ACanvas: TcxCanvas; R: TRect; AState: TcxButtonState;
AChecked: Boolean); overload; virtual;
class procedure DrawCheckButton(ACanvas: TcxCanvas; R: TRect; AState: TcxButtonState;
ACheckState: TcxCheckBoxState); overload; virtual;
// RadioButton
class procedure DrawRadioButton(ACanvas: TcxCanvas; X, Y: Integer;
AButtonState: TcxButtonState; AChecked, AFocused: Boolean;
ABrushColor: TColor; AIsDesigning: Boolean = False); virtual;
class function RadioButtonSize: TSize; virtual;
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?