/***************************************************************************
  
  fix_style.h
  
  (c) Benoît Minisini <benoit.minisini@gambas-basic.org>

  This program 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.
  
  This program is distributed 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 this program; if not, write to the Free Software
  Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
  MA 02110-1301, USA.
  
***************************************************************************/

#ifndef __FIX_STYLE_H
#define __FIX_STYLE_H

#include <QProxyStyle>
#include <QFontMetrics>

class FixStyle : public QProxyStyle
{
public:
	
	void drawControl(ControlElement, const QStyleOption *, QPainter *, const QWidget *) const;
};

class FixBreezeStyle : public FixStyle
{
public:
		
	QRect subElementRect(SubElement, const QStyleOption*, const QWidget*) const;
	
	//void drawComplexControl(ComplexControl, const QStyleOptionComplex*, QPainter*, const QWidget*) const;
	void drawPrimitive(PrimitiveElement, const QStyleOption*, QPainter*, const QWidget*) const;
	void drawControl(ControlElement, const QStyleOption *, QPainter *, const QWidget *) const;

	QRect visualRect(const QStyleOption* opt, const QRect& subRect) const
	{ return QProxyStyle::visualRect(opt->direction, opt->rect, subRect); }
	
	QRect centerRect(const QRect &rect, int width, int height) const
	{ return QRect(rect.left() + (rect.width() - width)/2, rect.top() + (rect.height() - height)/2, width, height); }

	int pixelMetric(PixelMetric, const QStyleOption *, const QWidget *) const;

private:
	static QFontMetrics *fm;
	static void fixFontMetrics(QStyleOption *);
};


#endif

 
