#ifndef PROXYSTYLE_H
#define PROXYSTYLE_H

#include <qstyle.h>

class ProxyStyle : public QStyle
{
	public:
		explicit ProxyStyle(const QString & style);
		~ProxyStyle();
	
		void polish ( QWidget * );
		void unPolish ( QWidget * );
		void polish ( QApplication * );
		void unPolish ( QApplication * );
		void polish ( QPalette & );
		void polishPopupMenu ( QPopupMenu * );
		QRect itemRect ( QPainter * p, const QRect & r, int flags, bool enabled, const QPixmap * pixmap, const QString & text, int len = -1 ) const;
		void drawItem ( QPainter * p, const QRect & r, int flags, const QColorGroup & g, bool enabled, const QPixmap * pixmap, const QString & text, int len = -1, const QColor * penColor = 0 ) const;
		void drawPrimitive ( PrimitiveElement pe, QPainter * p, const QRect & r, const QColorGroup & cg, SFlags flags = Style_Default, const QStyleOption & opt = QStyleOption::Default ) const;
		void drawControl ( ControlElement element, QPainter * p, const QWidget * widget, const QRect & r, const QColorGroup & cg, SFlags how = Style_Default, const QStyleOption & opt = QStyleOption::Default ) const;
		void drawControlMask ( ControlElement element, QPainter * p, const QWidget * widget, const QRect & r, const QStyleOption & opt = QStyleOption::Default ) const;
		QRect subRect ( SubRect subrect, const QWidget * widget ) const;
		void drawComplexControl ( ComplexControl control, QPainter * p, const QWidget * widget, const QRect & r, const QColorGroup & cg, SFlags how = Style_Default, SCFlags sub = SC_All, SCFlags subActive = SC_None, const QStyleOption & opt = QStyleOption::Default ) const;
		void drawComplexControlMask ( ComplexControl control, QPainter * p, const QWidget * widget, const QRect & r, const QStyleOption & opt = QStyleOption::Default ) const;
		QRect querySubControlMetrics ( ComplexControl control, const QWidget * widget, SubControl subcontrol, const QStyleOption & opt = QStyleOption::Default ) const;
		SubControl querySubControl ( ComplexControl control, const QWidget * widget, const QPoint & pos, const QStyleOption & opt = QStyleOption::Default ) const;
		int pixelMetric ( PixelMetric metric, const QWidget * widget = 0 ) const;
		QSize sizeFromContents ( ContentsType contents, const QWidget * widget, const QSize & contentsSize, const QStyleOption & opt = QStyleOption::Default ) const;
		int styleHint ( StyleHint stylehint, const QWidget * widget = 0, const QStyleOption & opt = QStyleOption::Default, QStyleHintReturn * returnData = 0 ) const;
		QPixmap stylePixmap ( StylePixmap stylepixmap, const QWidget * widget = 0, const QStyleOption & opt = QStyleOption::Default ) const;
	
	private:
		QStyle *style;
};

#endif // PROXYSTYLE_H
