// This is the SIP interface definition for QWindowsStyle.
//
// Copyright (c) 2007
// 	Riverbank Computing Limited <info@riverbankcomputing.co.uk>
// 
// This file is part of PyQt.
// 
// This copy of PyQt is free software; you can redistribute it and/or modify it
// under the terms of the GNU General Public License as published by the Free
// Software Foundation; either version 2, or (at your option) any later
// version.
// 
// PyQt is supplied in the hope that it will be useful, but WITHOUT ANY
// WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
// FOR A PARTICULAR PURPOSE.  See the GNU General Public License for more
// details.
// 
// You should have received a copy of the GNU General Public License along with
// PyQt; see the file LICENSE.  If not, write to the Free Software Foundation,
// Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
 
 
%ExportedDoc
<Sect2><Title>QWindowsStyle (Qt v2+)</Title>
<FuncSynopsis>
	<FuncDef>void <Function>getButtonShift</Function></FuncDef>
	<ParamDef>int &<Parameter>x</Parameter></ParamDef>
	<ParamDef>int &<Parameter>y</Parameter></ParamDef>
</FuncSynopsis>
<Para>
This takes no parameters and returns a tuple of the <Literal>x</Literal> and
<Literal>y</Literal> values.  (Qt v2)
</Para>

<FuncSynopsis>
	<FuncDef>void <Function>scrollBarMetrics</Function></FuncDef>
	<ParamDef>const QTabBar *<Parameter>sb</Parameter></ParamDef>
	<ParamDef>int &<Parameter>sliderMin</Parameter></ParamDef>
	<ParamDef>int &<Parameter>sliderMax</Parameter></ParamDef>
	<ParamDef>int &<Parameter>sliderLength</Parameter></ParamDef>
	<ParamDef>int &<Parameter>buttonDim</Parameter></ParamDef>
</FuncSynopsis>
<Para>
This takes only the <Literal>sb</Literal> parameter and returns a tuple of the
<Literal>sliderMin</Literal>, <Literal>sliderMax</Literal>,
<Literal>sliderLength</Literal> and <Literal>buttonDim</Literal> values.
(Qt v2)
</Para>

<FuncSynopsis>
	<FuncDef>void <Function>tabbarMetrics</Function></FuncDef>
	<ParamDef>const QTabBar *<Parameter>t</Parameter></ParamDef>
	<ParamDef>int &<Parameter>hframe</Parameter></ParamDef>
	<ParamDef>int &<Parameter>vframe</Parameter></ParamDef>
	<ParamDef>int &<Parameter>overlap</Parameter></ParamDef>
</FuncSynopsis>
<Para>
This takes only the <Literal>t</Literal> parameter and returns a tuple of the
<Literal>hframe</Literal>, <Literal>vframe</Literal> and
<Literal>overlap</Literal> values.  (Qt v2)
</Para>
</Sect2>
%End
 
 
%If (Qt_STYLE_WINDOWS)
%If (Qt_2_00 -)

class QWindowsStyle : QCommonStyle
{
%TypeHeaderCode
#include <qwindowsstyle.h>
%End

public:
	QWindowsStyle();

%If (Qt_3_3_0 -)
	void polish(QApplication *);
	void unPolish(QApplication *);

	void polish(QWidget *);
	void unPolish(QWidget *);

	void polish(QPalette &);
%End

%If (- Qt_3_0_0)
	void drawButton(QPainter *,int,int,int,int,const QColorGroup &,
			bool = 0,const QBrush * = 0);
	void drawBevelButton(QPainter *,int,int,int,int,const QColorGroup &,
			     bool = 0,const QBrush * = 0);
	void drawFocusRect(QPainter *,const QRect &,const QColorGroup &,
			   const QColor * = 0,bool = 0);
	void drawPushButton(QPushButton *,QPainter *);

	void getButtonShift(int &,int &);

	void drawPanel(QPainter *,int,int,int,int,const QColorGroup &,
		       bool = 0,int = 1,const QBrush * = 0);
	void drawPopupPanel(QPainter *,int,int,int,int,const QColorGroup &,
			    int = 2,const QBrush * = 0);
	void drawArrow(QPainter *,ArrowType,bool,int,int,int,int,
		       const QColorGroup &,bool,const QBrush * = 0);
	QSize indicatorSize() const;
	void drawIndicator(QPainter *,int,int,int,int,const QColorGroup &,
			   int,bool = 0,bool = 1);
	QSize exclusiveIndicatorSize() const;
	void drawExclusiveIndicator(QPainter *,int,int,int,int,
				    const QColorGroup &,bool,bool = 0,bool = 1);
	void drawExclusiveIndicatorMask(QPainter *,int,int,int,int,bool);
	void drawComboButton(QPainter *,int,int,int,int,const QColorGroup &,
			     bool = 0,bool = 0,bool = 1,const QBrush * = 0);
	QRect comboButtonRect(int,int,int,int);
	QRect comboButtonFocusRect(int,int,int,int);

	void tabbarMetrics(const QTabBar *,int &,int &,int &);

	void drawTab(QPainter *,const QTabBar *,QTab *,bool);
	void drawTabMask(QPainter *,const QTabBar *,QTab *,bool);

	void scrollBarMetrics(const QScrollBar *,int &,int &,int &,int &);

	void drawScrollBarControls(QPainter *,const QScrollBar *,int,uint,uint);
	int sliderLength() const;
	void drawSlider(QPainter *,int,int,int,int,const QColorGroup &,
			Orientation,bool,bool);
	void drawSliderMask(QPainter *,int,int,int,int,Orientation,bool,bool);
	void drawSliderGroove(QPainter *,int,int,int,int,const QColorGroup &,
			      QCOORD,Orientation);
	int maximumSliderDragDistance() const;
	int splitterWidth() const;
	void drawSplitter(QPainter *,int,int,int,int,const QColorGroup &,
			  Orientation);
	void drawCheckMark(QPainter *,int,int,int,int,const QColorGroup &,bool,
			   bool);
	void polishPopupMenu(QPopupMenu *);
	int extraPopupMenuItemWidth(bool,int,QMenuItem *,const QFontMetrics &);
	int popupMenuItemHeight(bool,QMenuItem *,const QFontMetrics &);
	void drawPopupMenuItem(QPainter *,bool,int,int,QMenuItem *,
			       const QPalette &,bool,bool,int,int,int,int);
%End
%If (Qt_3_0_0 -)
	virtual void polishPopupMenu(QPopupMenu *);
 
	void drawPrimitive(PrimitiveElement,QPainter *,const QRect &,
			   const QColorGroup &,SFlags = Style_Default,
			   const QStyleOption & = QStyleOption()) const;
 
	void drawControl(ControlElement,QPainter *,const QWidget *,
			 const QRect &,const QColorGroup &,
			 SFlags = Style_Default,
			 const QStyleOption & = QStyleOption()) const;
 
	void drawComplexControl(ComplexControl,QPainter *,const QWidget *,
				const QRect &,const QColorGroup &,
				SFlags = Style_Default,SCFlags = SC_All,
				SCFlags = SC_None,
				const QStyleOption & = QStyleOption()) const;
 
	int pixelMetric(PixelMetric,const QWidget * = 0) const;
 
	QSize sizeFromContents(ContentsType,const QWidget *,const QSize &,
			       const QStyleOption & = QStyleOption()) const; 

	int styleHint(StyleHint,const QWidget *,
		      const QStyleOption & = QStyleOption(),
		      QStyleHintReturn * = 0) const;
 
	QPixmap stylePixmap(StylePixmap,const QWidget * = 0,
			    const QStyleOption & = QStyleOption()) const;
%End

%If (Qt_3_1_0 -)
	QRect subRect(SubRect,const QWidget *) const;
%End

protected:
%If (- Qt_3_0_0)
	void drawWinShades(QPainter *,int,int,int,int,const QColor &,
			   const QColor &,const QColor &,const QColor &,
			   const QBrush *);
%End

private:
%If (Qt_3_0_0 -)
	QWindowsStyle(const QWindowsStyle &);
%End
};

%End
%End
