dxskininfo.pas

来自「胜天进销存源码,国产优秀的进销存」· PAS 代码 · 共 1,197 行 · 第 1/4 页

PAS
1,197
字号

{********************************************************************}
{                                                                    }
{           Developer Express Visual Component Library               }
{           Express Cross Platform Library classes                   }
{                                                                    }
{           Copyright (c) 2000-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 EXPRESSCROSSPLATFORMLIBRARY 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 dxSkinInfo;

interface

uses
  Windows, Classes, Graphics, SysUtils, cxClasses, cxGraphics, cxLookAndFeels,
  cxGeometry, cxLookAndFeelPainters, dxSkinsCore, dxSkinsStrs;

type

  { TdxSkinScrollInfo }

  TdxSkinScrollInfo = class(TObject)
  private
    FElement: TdxSkinElement;
    FImageIndex: Integer;
  public
    constructor Create(AElement: TdxSkinElement; AImageIndex: Integer;
      APart: TcxScrollBarPart);
    function Draw(DC: HDC; const R: TRect; AImageIndex: Integer;
      AState: TdxSkinElementState): Boolean;
    property Element: TdxSkinElement read FElement;
    property ImageIndex: Integer read FImageIndex;
  end;

  TdxSkinFormIcon = (sfiMenu, sfiHelp, sfiMinimize, sfiMaximize, sfiRestore, sfiClose);
  TdxSkinFormIcons = set of TdxSkinFormIcon;

  { TdxSkinInfo }

  TdxSkinInfo = class(TcxIUnknownObject, IdxSkinChangeListener, IdxSkinInfo)
  private
    FSkin: TdxSkin;
    procedure SetSkin(ASkin: TdxSkin);
  protected
    Group_Bars: TdxSkinControlGroup;
    Group_Common: TdxSkinControlGroup;
    Group_Docking: TdxSkinControlGroup;
    Group_Editors: TdxSkinControlGroup;
    Group_Form: TdxSkinControlGroup;
    Group_Grid: TdxSkinControlGroup;
    Group_NavBar: TdxSkinControlGroup;
    Group_NavPane: TdxSkinControlGroup;
    Group_Ribbon: TdxSkinControlGroup;
    Group_Scheduler: TdxSkinControlGroup;
    Group_Tabs: TdxSkinControlGroup;
    Group_VGrid: TdxSkinControlGroup;
    //
    CardViewSeparator: TdxSkinElement;
    ClockElements: array[Boolean] of TdxSkinElement;
    CheckboxElement: TdxSkinElement;
    EditButtonElements: array [Boolean] of TdxSkinElement;
    EditButtonGlyphs: array [TcxEditBtnKind] of TdxSkinElement;
    GridGroupByBox: TdxSkinElement;
    GridGroupRow: TdxSkinElement;
    GridLine: TdxSkinElement;
    GridFixedLine: TdxSkinElement;
    IndicatorImages: TdxSkinElement;
    NavigatorGlyphs: TdxSkinElement;
    NavigatorGlyphsVert: TdxSkinElement;
    RadioGroupButton: TdxSkinElement;
    Splitter: array[Boolean] of TdxSkinElement;
    TrackBarThumb: array[Boolean, TcxTrackBarTicksAlign] of TdxSkinElement;
    TrackBarTrack: array[Boolean] of TdxSkinElement;
    VGridCategory: TdxSkinElement;
    VGridLine: array[Boolean] of TdxSkinElement;
    // Colors
    ContentEvenColor: TdxSkinColor;
    ContentOddColor: TdxSkinColor;
    ContentTextColor: TdxSkinColor;
    HeaderBackgroundColor: TdxSkinColor;
    HeaderBackgroundTextColor: TdxSkinColor;
    SelectionColor: TdxSkinColor;
    SelectionTextColor: TdxSkinColor;
    // ExpandButton
    ExpandButton: TdxSkinElement;
    // Footer
    FooterCell, FooterPanel: TdxSkinElement;
    // header
    Header, HeaderSpecial: TdxSkinElement;
    // filter
    FilterButtons: array[Boolean] of TdxSkinElement;
    FilterPanel: TdxSkinElement;
    // Scheduler3
    SchedulerNavigationButtons: array[Boolean] of TdxSkinElement;
    SchedulerNavigationButtonsArrow: array[Boolean] of TdxSkinElement;
    //
    procedure CheckItem(AItem: TObject; const AMessage: string; var ACheckedItem);
    function CreateBlankElement(AGroup: TdxSkinControlGroup; const AName: string): TdxSkinElement;
    function CreateBlankGroup(const AName: string): TdxSkinControlGroup;
    function GetColorByName(AGroup: TdxSkinPersistent; const AName: string): TdxSkinColor;
    function GetIntPropertyByName(AGroup: TdxSkinPersistent; const AName: string): TdxSkinIntegerProperty;
    function GetElementColorProperty(AElement: TdxSkinPersistent; const APropName: string): TColor;
    function GetElementIntProperty(AElement: TdxSkinPersistent; const APropName: string;
      ADefValue: Integer = 0): Integer;
    function GetGroupByName(const AName: string): TdxSkinControlGroup;
    function GetElementByName(AGroup: TdxSkinControlGroup; const AName: string;
      ACreateIfEmpty: Boolean = True): TdxSkinElement;
    procedure InitializeGroups;
    procedure InitializeBarElements;
    procedure InitializeButtonElements;
    procedure InitializeCheckboxElements;
    procedure InitializeClockElements;
    procedure InitializeColors;
    procedure InitializeDockControlElements;
    procedure InitializeEditButtonElements;
    procedure InitializeFilterElements;
    procedure InitializeFooterElements;
    procedure InitializeFormElements;
    procedure InitializeGridElements;
    procedure InitializeGroupBoxElements;
    procedure InitializeHeaderElements;
    procedure InitializeIndicatorImages;
    procedure InitializeNavBarElements;
    procedure InitializeNavigatorElements;
    procedure InitializePageControlElements;
    procedure InitializeProgressBarElements;
    procedure InitializeRadioGroupElements;
    procedure InitializeRibbonColors;
    procedure InitializeRibbonElements;
    procedure InitializeRibbonProperties;
    procedure InitializeSchedulerElements;
    procedure InitializeScrollBarElements;
    procedure InitializeSizeGripElements;
    procedure InitializeSplitterElements;
    procedure InitializeToolTipElements;
    procedure InitializeTrackBarElements;
    procedure InitializeSkinInfo; virtual;

    procedure FinalizeScrollBarElements;
    procedure FinalizeSkinInfo; virtual;
    { IdxSkinInfo }
    function GetSkin: TdxSkin;
    { IdxSkinChangeListener }
    procedure SkinChanged(Sender: TdxSkin); virtual;
  public
    // Button
    ButtonDisabled: TdxSkinColor;
    ButtonElements: TdxSkinElement;
    // Colors
    ContainerBorderColor: TdxSkinColor;
    ContainerHighlightBorderColor: TdxSkinColor;
    ContentColor: TdxSkinColor;
    EditorBackgroundColors: array[Boolean] of TdxSkinColor;
    EditorTextColors: array[Boolean] of TdxSkinColor;
    // ProgressBar
    ProgressBarElements: array[Boolean, Boolean] of TdxSkinElement;
    // ScrollBars
    ScrollBar_Elements: array[Boolean, TcxScrollBarPart] of TdxSkinScrollInfo;
    // GroupBox
    GroupBoxCaptionElements: array[TcxGroupBoxCaptionPosition] of TdxSkinElement;
    GroupBoxClient: TdxSkinElement;
    GroupBoxElements: array[TcxGroupBoxCaptionPosition] of TdxSkinElement;
    // DockControl
    DockControlBorder: TdxSkinElement;
    DockControlCaption: TdxSkinElement;
    DockControlCaptionNonFocusedTextColor: TColor;
    DockControlHideBar: TdxSkinElement;
    DockControlHideBarLeft: TdxSkinElement;
    DockControlHideBarRight: TdxSkinElement;
    DockControlHideBarBottom: TdxSkinElement;
    DockControlHideBarButtons: TdxSkinElement;
    DockControlHideBarTextColor: TdxSkinColor;
    DockControlIndents: array[0..2] of Integer;
    DockControlTabHeader: TdxSkinElement;
    DockControlTabHeaderBackground: TdxSkinElement;
    DockControlTabHeaderLine: TdxSkinElement;
    DockControlTabTextColor: array[Boolean] of TdxSkinColor;
    DockControlWindowButton: TdxSkinElement;
    DockControlWindowButtonGlyphs: TdxSkinElement;
    // PageControl
    LayoutControlColor: TdxSkinColor;
    PageControlButtonHorz: TdxSkinElement;
    PageControlButtonVert: TdxSkinElement;
    PageControlHeader: TdxSkinElement;
    PageControlIndents: array[0..5] of Integer;
    PageControlPane: TdxSkinElement;
    TabTextColor: TdxSkinColor;
    TabTextColorActive: TdxSkinColor;
    TabTextColorDisabled: TdxSkinColor;
    TabTextColorHot: TdxSkinColor;
    // NavBar
    NavBarBackgroundColor: TdxSkinElement;
    NavBarGroupButtons: array [Boolean] of TdxSkinElement;
    NavBarGroupClient: TdxSkinElement;
    NavBarGroupHeader: TdxSkinElement;
    NavBarItem: TdxSkinElement;
    NavPaneCaptionFontSize: TdxSkinIntegerProperty;
    NavPaneCaptionHeight: TdxSkinIntegerProperty;
    NavPaneCollapseButton: TdxSkinElement;
    NavPaneCollapsedGroupClient: TdxSkinElement;
    NavPaneExpandButton: TdxSkinElement;
    NavPaneFormBorder: TdxSkinElement;
    NavPaneFormSizeGrip: TdxSkinElement;
    NavPaneGroupButton: array[Boolean] of TdxSkinElement;
    NavPaneGroupCaption: TdxSkinElement;
    NavPaneGroupClient: TdxSkinElement;
    NavPaneItem: TdxSkinElement;
    NavPaneOverflowPanel: TdxSkinElement;
    NavPaneOverflowPanelExpandedItem: TdxSkinElement;
    NavPaneOverflowPanelItem: TdxSkinElement;
    NavPaneScrollButtons: array[Boolean] of TdxSkinElement;
    NavPaneSelectedItem: TdxSkinElement;
    NavPaneSplitter: TdxSkinElement;
    // Form
    FormBorderWidths: array[Boolean] of TRect; 
    FormCaptionDelta: Integer;
    FormContent: TdxSkinElement;
    FormFrames: array[Boolean, TcxBorder] of TdxSkinElement;
    FormIcons: array[Boolean, TdxSkinFormIcon] of TdxSkinElement;
    FormInactiveColor: TdxSkinColor;
    FormStatusBar: TdxSkinElement;
    FormTextShadowColor: TdxSkinColor;
    SizeGrip: TdxSkinElement;
    // Scheduler
    SchedulerAllDayArea: array[Boolean] of TdxSkinElement;
    SchedulerAppointment: array[Boolean] of TdxSkinElement;
    SchedulerAppointmentBorder: TdxSkinColor;
    SchedulerAppointmentBorderSize: TdxSkinIntegerProperty;
    SchedulerAppointmentMask: TdxSkinElement;
    SchedulerAppointmentShadow: array[Boolean] of TdxSkinElement;
    SchedulerCurrentTimeIndicator: TdxSkinElement;
    SchedulerMoreButton: TdxSkinElement;
    SchedulerNavigatorColor: TdxSkinColor;
    SchedulerTimeGridCurrentTimeIndicator: TdxSkinElement;
    SchedulerTimeGridHeader: array[Boolean] of TdxSkinElement;
    SchedulerTimeLine: TdxSkinElement;
    SchedulerTimeRuler: TdxSkinElement;
    // Bars
    Bar: TdxSkinElement;
    BarCustomize: TdxSkinElement;
    BarCustomizeVertical: TdxSkinElement;
    BarDisabledTextColor: TdxSkinColor;
    BarDrag: TdxSkinElement;
    BarDragVertical: TdxSkinElement;
    BarSeparator: TdxSkinElement;
    BarVertical: TdxSkinElement;
    BarVerticalSeparator: TdxSkinElement;
    Dock: TdxSkinElement;
    FloatingBar: TdxSkinElement;
    LinkBorderPainter: TdxSkinElement;
    LinkSelected: TdxSkinElement;
    MainMenu: TdxSkinElement;
    MainMenuCustomize: TdxSkinElement;
    MainMenuDrag: TdxSkinElement;
    MainMenuLinkSelected: TdxSkinElement;
    MainMenuVertical: TdxSkinElement;
    PopupMenu: TdxSkinElement;
    PopupMenuCheck: TdxSkinElement;
    PopupMenuExpandButton: TdxSkinElement;
    PopupMenuLinkSelected: TdxSkinElement;
    PopupMenuSeparator: TdxSkinElement;
    PopupMenuSideStrip: TdxSkinElement;
    PopupMenuSideStripNonRecent: TdxSkinElement;
    PopupMenuSplitButton: TdxSkinElement;
    PopupMenuSplitButton2: TdxSkinElement;
    ScreenTipItem: TdxSkinColor;
    ScreenTipSeparator: TdxSkinElement;
    ScreenTipTitleItem: TdxSkinColor;
    ScreenTipWindow: TdxSkinElement;
    //
    RibbonApplicationButton: TdxSkinElement;
    RibbonApplicationMenuBorders: array[Boolean] of TdxSkinElement;
    RibbonButtonArrow: TdxSkinElement;

⌨️ 快捷键说明

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