Download Now

    Reference TTheme

    Declared in Codebot.Graphics.pas on line 382

    TTheme draws themed elements of controls. Select a control, surface, state, and font before drawing, then call Deselect.
      TTheme = class
      public
        { The control being drawn }
        Control: TControl;
        { The surface being drawn on }
        Surface: ISurface;
        { The font of the control being drawn }
        Font: IFont;
        { The draw state of the element being drawn }
        State: TDrawState;
        { Select a control, surface, state, and font for drawing }
        class procedure Select(Control: TControl; Surface: ISurface; State: TDrawState; Font: TFont); overload;
        { Change the draw state }
        class procedure Select(State: TDrawState); overload;
        { Temporarily use a theme by name until Deselect is called }
        class procedure Select(ThemeName: string); overload;
        { Clear the selection and restore the original theme }
        class procedure Deselect;
        { The display name of the theme }
        class function Name: string;
        { Draw a button }
        class procedure DrawButton(const Rect: TRectI); virtual; abstract;
        { Draw a thin flat button }
        class procedure DrawButtonThin(const Rect: TRectI); virtual; abstract;
        { Draw a splitter }
        class procedure DrawSplit(const Rect: TRectI; Orientation: TThemeOrientation); virtual; abstract;
        { Measure a thin slider thumb }
        class function MeasureThumbThin(Orientation: TThemeOrientation): TPointI; virtual; abstract;
        { Draw a thin slider thumb }
        class procedure DrawThumbThin(const Rect: TRectI; Orientation: TThemeOrientation); virtual; abstract;
        { Measure a control border }
        class function MeasureBorder: TPointI; virtual; abstract;
        { Draw a control border }
        class procedure DrawBorder(const Rect: TRectI); virtual; abstract;
        { Measure an edit border }
        class function MeasureEditBorder: TPointI; virtual; abstract;
        { Draw an edit border }
        class procedure DrawEditBorder(const Rect: TRectI); virtual; abstract;
        { Draw a header column with a sort indicator }
        class procedure DrawHeaderColumn(const Rect: TRectI; Sort: TSortingOrder = soNone); virtual; abstract;
        { Draw a form header }
        class procedure DrawHeader(Height: Integer = DefaulHeaderHeight); virtual; abstract;
        { Draw a shadow below a form header }
        class procedure DrawHeaderShadow(Top: Integer = 0); virtual; abstract;
        { Draw a form footer }
        class procedure DrawFooter(Height: Integer = DefaultFooterHeight); virtual; abstract;
        { Draw a size grip in a form footer }
        class procedure DrawFooterGrip; virtual; abstract;
        { Selected is true when a control, surface, and font are selected }
        class property Selected: Boolean read GetSelected;
      end;

    See also

    IFont in Codebot.Graphics.Types.pas
    ISurface in Codebot.Graphics.Types.pas
    TDrawState in Codebot.Graphics.Types.pas
    TPointI in Codebot.Graphics.Types.pas
    TRectI in Codebot.Graphics.Types.pas
    TSortingOrder in Codebot.System.pas