// This is the SIP interface definition for TQStyleSheet and TQStyleSheetItem.
//
// Copyright (c) 2007
// 	Riverbank Computing Limited <info@riverbankcomputing.co.uk>
// 
// This file is part of PyTQt.
// 
// This copy of PyTQt 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.
// 
// PyTQt 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
// PyTQt; 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>TQStyleSheet (TQt v2+)</Title>
<Para>
<Literal>TQStyleSheet</Literal> is fully implemented.
</Para>
</Sect2>

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


class TQStyleSheetItem : TQt
{
%TypeHeaderCode
#include <tqstylesheet.h>
%End

public:
	TQStyleSheetItem(TQStyleSheet * /TransferThis/,const TQString &);

	TQString name() const;

	TQStyleSheet *styleSheet();
//	const TQStyleSheet *styleSheet() const;

	enum AdditionalStyleValues {
		Undefined
	};

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

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

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

	enum VerticalAlignment {
		VAlignBaseline,
		VAlignSub,
		VAlignSuper
	};

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

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

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

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

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

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

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

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

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

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

	bool fontStrikeOut() const;
	void setFontStrikeOut(bool);
	bool definesFontStrikeOut() const;

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

	enum WhiteSpaceMode {
		WhiteSpaceNormal,
		WhiteSpacePre,
		WhiteSpaceNoWrap
	};

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

	enum Margin {
		MarginLeft,
		MarginRight,
		MarginTop,
		MarginBottom,
		MarginFirstLine,
		MarginAll,
		MarginVertical,
		MarginHorizontal
	};

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

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

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

	TQString contexts() const;
	void setContexts(const TQString &);
	bool allowedInContext(const TQStyleSheetItem *) const;

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

	void setLineSpacing(int);
	int lineSpacing() const;
};


class TQStyleSheet : TQObject
{
%TypeHeaderCode
#include <tqstylesheet.h>
%End

public:
	TQStyleSheet(TQObject * /TransferThis/ = 0,const char * = 0);

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

	TQStyleSheetItem *item(const TQString &);
//	const TQStyleSheetItem *item(const TQString &) const;

	void insert(TQStyleSheetItem *);

//	virtual TQTextCustomItem *tag(const TQString &,
//				     const TQMap<TQString,TQString> &,
//				     const TQString &,
//				     const TQMimeSourceFactory &,bool,
//				     TQTextDocument *) const;

	static TQString escape(const TQString &);
	static TQString convertFromPlainText(const TQString &,
					    TQStyleSheetItem::WhiteSpaceMode = TQStyleSheetItem::WhiteSpacePre);
	static bool mightBeRichText(const TQString &);

	virtual void scaleFont(TQFont &,int) const;
	virtual void error(const TQString &) const;

private:
	TQStyleSheet(const TQStyleSheet &);
};
