#ifndef QSCROLLVIEW_H_
#define QSCROLLVIEW_H_
#include "KWQFrame.h"
#ifdef __OBJC__
@class NSView;
#else
class NSView;
#endif
class QScrollView : public QFrame {
public:
enum ScrollBarMode { Auto, AlwaysOff, AlwaysOn };
QScrollView(QWidget *parent = 0, const char *name = 0, int flags = 0) { }
QWidget *viewport() const;
int visibleWidth() const;
int visibleHeight() const;
int contentsWidth() const;
int contentsHeight() const;
int contentsX() const;
int contentsY() const;
int scrollXOffset() const;
int scrollYOffset() const;
void scrollBy(int dx, int dy);
void scrollPointRecursively(int dx, int dy);
void setContentsPos(int x, int y);
virtual void setVScrollBarMode(ScrollBarMode vMode);
virtual void setHScrollBarMode(ScrollBarMode hMode);
virtual void setScrollBarsMode(ScrollBarMode mode);
void suppressScrollBars(bool suppressed, bool repaintOnUnsuppress=false);
ScrollBarMode vScrollBarMode() const;
ScrollBarMode hScrollBarMode() const;
bool hasVerticalScrollBar() const;
bool hasHorizontalScrollBar() const;
void addChild(QWidget *child, int x = 0, int y = 0);
void removeChild(QWidget *child);
int childX(QWidget *child);
int childY(QWidget *child);
virtual void resizeContents(int w, int h);
void updateContents(int x, int y, int w, int h, bool now=false);
void updateContents(const QRect &r, bool now=false);
void repaintContents(int x, int y, int w, int h, bool erase = true);
QPoint contentsToViewport(const QPoint &);
void contentsToViewport(int x, int y, int& vx, int& vy);
void viewportToContents(int vx, int vy, int& x, int& y);
QWidget *clipper() const { return 0; }
void enableClipper(bool) { }
void setStaticBackground(bool);
void resizeEvent(QResizeEvent *);
NSView *getDocumentView() const;
private:
virtual bool isQScrollView() const;
};
#endif