// This is the SIP interface definition for QStyleSheet and QStyleSheetItem.
//
// 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>QStyleSheet (Qt v2+)</Title>
<Para>
<Literal>QStyleSheet</Literal> is fully implemented.
</Para>
</Sect2>

<Sect2><Title>QStyleSheetItem (Qt v2+)</Title>
<Para>
<Literal>QStyleSheetItem</Literal> is fully implemented.
</Para>
</Sect2>
%End


%If (Qt_2_00 -)

class QStyleSheetItem : Qt
{
%TypeHeaderCode
#include <qstylesheet.h>
%End

public:
	QStyleSheetItem(QStyleSheet * /TransferThis/,const QString &);

	QString name() const;

	QStyleSheet *styleSheet();
//	const QStyleSheet *styleSheet() const;

	enum AdditionalStyleValues {
		Undefined
	};

	enum DisplayMode {
		DisplayBlock,
		DisplayInline,
		DisplayListItem,
		DisplayNone
	};

	DisplayMode displayMode() const;
	void setDisplayMode(DisplayMode);

	int alignment() const;
	void setAlignment(int);

%If (Qt_3_0_0 -)
	enum VerticalAlignment {
		VAlignBaseline,
		VAlignSub,
		VAlignSuper
	};

	VerticalAlignment verticalAlignment() const;
	void setVerticalAlignment(VerticalAlignment);
%End

	int fontWeight() const;
	void setFontWeight(int);

	int logicalFontSize() const;
	void setLogicalFontSize(int);

	int logicalFontSizeStep() const;
	void setLogicalFontSizeStep(int);

	int fontSize() const;
	void setFontSize(int);

	QString fontFamily() const;
	void setFontFamily(const QString &);

	int numberOfColumns() const;
	void setNumberOfColumns(int);

	QColor color() const;
	void setColor(const QColor &);

	bool fontItalic() const;
	void setFontItalic(bool);
	bool definesFontItalic() const;

	bool fontUnderline() const;
	void setFontUnderline(bool);
	bool definesFontUnderline() const;

%If (Qt_3_0_5 -)
	bool fontStrikeOut() const;
	void setFontStrikeOut(bool);
	bool definesFontStrikeOut() const;
%End

	bool isAnchor() const;
	void setAnchor(bool);

%If (- Qt_2_1_0)
	enum WhiteSpaceMode {
		WhiteSpaceNormal,
		WhiteSpacePre
	};
%End
%If (Qt_2_1_0 -)
	enum WhiteSpaceMode {
		WhiteSpaceNormal,
		WhiteSpacePre,
		WhiteSpaceNoWrap
	};
%End

	WhiteSpaceMode whiteSpaceMode() const;
	void setWhiteSpaceMode(WhiteSpaceMode);

%If (- Qt_3_0_0)
	enum Margin {
		MarginLeft,
		MarginRight,
		MarginTop,
		MarginBottom,
		MarginAll,
		MarginVertical,
		MarginHorizontal
	};
%End
%If (Qt_3_0_0 -)
	enum Margin {
		MarginLeft,
		MarginRight,
		MarginTop,
		MarginBottom,
		MarginFirstLine,
		MarginAll,
		MarginVertical,
		MarginHorizontal
	};
%End

	int margin(Margin) const;
	void setMargin(Margin,int);

	enum ListStyle {
		ListDisc,
		ListCircle,
		ListSquare,
		ListDecimal,
		ListLowerAlpha,
		ListUpperAlpha
	};

	ListStyle listStyle() const;
	void setListStyle(ListStyle);

	QString contexts() const;
	void setContexts(const QString &);
	bool allowedInContext(const QStyleSheetItem *) const;

	bool selfNesting() const;
	void setSelfNesting(bool);

%If (Qt_3_0_0 -)
	void setLineSpacing(int);
	int lineSpacing() const;
%End
};


class QStyleSheet : QObject
{
%TypeHeaderCode
#include <qstylesheet.h>
%End

public:
	QStyleSheet(QObject * /TransferThis/ = 0,const char * = 0);

	static QStyleSheet *defaultSheet();
	static void setDefaultSheet(QStyleSheet *);

	QStyleSheetItem *item(const QString &);
//	const QStyleSheetItem *item(const QString &) const;

	void insert(QStyleSheetItem *);

%If (- Qt_3_0_0)
//	virtual QTextNode *tag(const QString &,const QMap<QString,QString> &,
//			       const QString &,const QMimeSourceFactory &,
//			       bool = 0) const;
%End
%If (Qt_3_0_0 -)
//	virtual QTextCustomItem *tag(const QString &,
//				     const QMap<QString,QString> &,
//				     const QString &,
//				     const QMimeSourceFactory &,bool,
//				     QTextDocument *) const;
%End

%If (Qt_3_0_0 -)
	static QString escape(const QString &);
	static QString convertFromPlainText(const QString &,
					    QStyleSheetItem::WhiteSpaceMode = QStyleSheetItem::WhiteSpacePre);
%End
%If (- Qt_3_0_0)
	static QString convertFromPlainText(const QString &);
%End
	static bool mightBeRichText(const QString &);

	virtual void scaleFont(QFont &,int) const;
	virtual void error(const QString &) const;

private:
%If (Qt_3_1_0 -)
	QStyleSheet(const QStyleSheet &);
%End
};

%End
