#ifndef BINDINGS_H
#define BINDINGS_H

#include <qobject.h>

class QImage;
class QTextStream;

namespace KJSEmbed {

/**
 * QObject Binding for QImage.
 */
class Bind_QImage : public QObject
{
    Q_OBJECT
    Q_PROPERTY( int width READ width )
    Q_PROPERTY( int height READ height )

public:
    Bind_QImage();
    Bind_QImage( QImage *img );
    ~Bind_QImage();

    int width() const;
    int height() const;

public slots:
    bool load( const QString &filename );
    bool save( const QString &filename );
    void smoothScale( int w, int h );

private:
    QImage *img;
};

/**
 * QObject Binding for QTextStream.
 */
class Bind_QTextStream : public QObject
{
    Q_OBJECT
    Q_PROPERTY( bool writable READ isReadable )
    Q_PROPERTY( bool readable READ isWritable )
    Q_PROPERTY( QString current READ current )

public:
    Bind_QTextStream( QTextStream *ts );
    ~Bind_QTextStream();

    bool isReadable() const;
    bool isWritable() const;

    QString current() const;

public slots:
    void print( const QString &msg );
    void println( const QString &msg );
    void readAll();
    void readLine();
    void flush();

private:
    QTextStream *ts;
};


}; // namespace

#endif // BINDINGS_H
