/*!
    \headerfile QskPainterCommand.h
    \brief Attributes of a QPainter operation.

    It is used by QskGraphic to record and replay paint operations

    \sa QskGraphic::commands()
*/

class QskPainterCommand
{
/*!
    \fn QskPainterCommand()

        Construct an invalid command

    \fn QskPainterCommand( const QPainterPath &path )
        Constructor for path paint operation

    \fn QskPainterCommand( const QRectF &rect, 
            const QPixmap &pixmap, const QRectF& subRect )

        Constructor for Pixmap paint operation

        \param rect Target rectangle
        \param pixmap Pixmap
        \param subRect Rectangle inside the pixmap

        \sa QPainter::drawPixmap()

    \fn QskPainterCommand( const QRectF &rect, const QImage &image, 
            const QRectF& subRect, Qt::ImageConversionFlags flags )

        Constructor for Image paint operation

        \param rect Target rectangle
        \param image Image
        \param subRect Rectangle inside the image
        \param flags Conversion flags

        \sa QPainter::drawImage()

    \fn QskPainterCommand( const QPaintEngineState &state )

        Constructor for State paint operation

        \param state Paint engine state

    \fn QskPainterCommand( const QskPainterCommand &other )

        Copy constructor

        \param other Command to be copied

    \fn ~QskPainterCommand()
        Destructor

    \fn QskPainterCommand &operator=( const QskPainterCommand &other )

        Assignment operator

        \param other Command to be copied
        \return Modified command

    \fn QPainterPath *path()
        \return Painter path to be painted

    \fn PixmapData* pixmapData()
        \return Attributes how to paint a QPixmap

    \fn ImageData* imageData()
        \return Attributes how to paint a QImage

    \fn StateData* stateData()
        \return Attributes of a state change
*/
};
