struct CCL::IThemePainter

Overview

A theme painter provides drawing methods for theme elements. More…

#include <itheme.h>

struct IThemePainter: public CCL::IUnknown
{
    // methods

    virtual tresult CCL_API drawElement (
        IGraphics& graphics,
        RectRef rect,
        ThemeElementID id,
        ThemeElementState state
    ) = 0;

    virtual tresult CCL_API drawBestMatchingFrame (
        IGraphics& graphics,
        IImage* image,
        RectRef rect,
        const ImageMode* mode = nullptr,
        ColorRef contextColor = 0,
        tbool scaleAlways = false
    ) const = 0;

    virtual tresult CCL_API drawFrameCentered (
        IGraphics& graphics,
        IImage* image,
        RectRef rect,
        const ImageMode* mode = nullptr,
        ColorRef contextColor = 0
    ) const = 0;
};

Inherited Members

public:
    // methods

    virtual tresult CCL_API queryInterface (UIDRef iid, void** ptr) = 0;
    virtual unsigned int CCL_API retain () = 0;
    virtual unsigned int CCL_API release () = 0;

Detailed Documentation

A theme painter provides drawing methods for theme elements.

Methods

virtual tresult CCL_API drawElement (
    IGraphics& graphics,
    RectRef rect,
    ThemeElementID id,
    ThemeElementState state
) = 0

Draw theme element.

For matching text color, use ThemeElements::kPushButtonTextColor.

virtual tresult CCL_API drawBestMatchingFrame (
    IGraphics& graphics,
    IImage* image,
    RectRef rect,
    const ImageMode* mode = nullptr,
    ColorRef contextColor = 0,
    tbool scaleAlways = false
) const = 0

Draws the frame with the best matching resolution (with contextColor if applicable) from a MultiImage with frames of different sizes.

virtual tresult CCL_API drawFrameCentered (
    IGraphics& graphics,
    IImage* image,
    RectRef rect,
    const ImageMode* mode = nullptr,
    ColorRef contextColor = 0
) const = 0

Draws current frame of MultiImage centered (with contextColor if applicable)