// This is the SIP interface definition for TQTab and TQTabBar.
//
// 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>TQTab</Title>
<Para>
<Literal>TQTab</Literal> is fully implemented.
</Para>
</Sect2>

<Sect2><Title>TQTabBar</Title>
<FuncSynopsis>
        <FuncDef>TQList&lt;TQTab&gt; <Function>tabList</Function></FuncDef>
        <ParamDef></ParamDef>
</FuncSynopsis>
<Para>
This returns a list of <Literal>TQTab</Literal> instances.
</Para>
</Sect2>
%End


%If (TQt_3_0_0 -)

class TQTab : TQt
{
%TypeHeaderCode
#include <tqtabbar.h>
%End

public:
	TQTab();
	TQTab(const TQString &);
	TQTab(const TQIconSet &,const TQString & = TQString::null);
	virtual ~TQTab();

	void setText(const TQString &);
	TQString text() const;
	void setIconSet(const TQIconSet &);
	TQIconSet *iconSet() const;
	void setRect(const TQRect &);
	TQRect rect() const;
	void setEnabled(bool);
	bool isEnabled() const;
	void setIdentifier(int);
	int identifier() const;
};

%End

%If (- TQt_3_0_0)

class TQTab
{
%TypeHeaderCode
#include <tqtabbar.h>
%End

public:
	TQTab();
%If (TQt_2_1_0 -)
	TQTab(const TQString &);
	TQTab(const TQIconSet &,const TQString & = TQString::null);
%End
	virtual ~TQTab();

	TQString label;
	TQRect r;
	bool enabled;
	int id;
	TQIconSet *iconset;
};

%End


class TQTabBar : TQWidget
{
%TypeHeaderCode
#include <tqtabbar.h>
%End

public:
	TQTabBar(TQWidget * /TransferThis/ = 0,const char * = 0);

	enum Shape {
		RoundedAbove,
		RoundedBelow,
		TriangularAbove,
		TriangularBelow
	};

	Shape shape() const;
%If (- TQt_2_00)
	void setShape(Shape);
%End
%If (TQt_2_00 -)
	virtual void setShape(Shape);
%End

	void show();

	virtual int addTab(TQTab * /Transfer/);
%If (TQt_2_00 -)
	virtual int insertTab(TQTab * /Transfer/,int = -1);
	virtual void removeTab(TQTab *);
%End

%If (- TQt_2_00)
	void setTabEnabled(int,bool);
%End
%If (TQt_2_00 -)
	virtual void setTabEnabled(int,bool);
%End
	bool isTabEnabled(int) const;

	TQSize sizeHint() const;
%If (TQt_2_2_0 -)
	TQSize minimumSizeHint() const;
%End
%If (TQt_2_00 -)
	TQSizePolicy sizePolicy() const;
%End

	int currentTab() const;
	int keyboardFocusTab() const;

%If (- TQt_3_0_0)
	TQTab *tab(int);
%End
%If (TQt_3_0_0 -)
	TQTab *tab(int) const;
	TQTab *tabAt(int) const;
	int indexOf(int) const;
%End
%If (TQt_2_2_0 -)
	int count() const;
%End

%If (TQt_2_00 -)
	virtual void layoutTabs();
%End
%If (TQt_3_0_0 -)
	virtual TQTab *selectTab(const TQPoint &) const;
 
	void removeToolTip(int);
	void setToolTip(int,const TQString &);
	TQString toolTip(int) const;
%End

public slots:
%If (- TQt_2_00)
	void setCurrentTab(int);
	void setCurrentTab(TQTab *);
%End
%If (TQt_2_00 -)
	virtual void setCurrentTab(int);
	virtual void setCurrentTab(TQTab *);
%End

signals:
	void selected(int);
%If (TQt_3_2_0 -)
	void layoutChanged();
%End

protected:
	virtual void paint(TQPainter *,TQTab *,bool) const;
%If (TQt_2_00 -)
	virtual void paintLabel(TQPainter *,const TQRect &,TQTab *,bool) const;
%End

%If (- TQt_3_0_0)
	virtual TQTab *selectTab(const TQPoint &) const;
%End
%If (TQt_2_00 - TQt_3_0_0)
	void updateMask();
%End

%If (TQt_2_1_0 -)
	void focusInEvent(TQFocusEvent *);
	void focusOutEvent(TQFocusEvent *);

	void resizeEvent(TQResizeEvent *);
%End
	void paintEvent(TQPaintEvent *);
	void mousePressEvent(TQMouseEvent *);
%If (TQt_3_0_0 -)
	void mouseMoveEvent(TQMouseEvent *);
%End
	void mouseReleaseEvent(TQMouseEvent *);
	void keyPressEvent(TQKeyEvent *);
%If (TQt_2_1_0 -)
	void styleChange(TQStyle &);
%End
%If (TQt_3_0_0 -)
	void fontChange(const TQFont &);
%End

%If (TQt_3_1_0 -)
	bool event(TQEvent *);
%End

	SIP_PYLIST tabList() [TQList<TQTab> *()];
%MethodCode
		if ((sipRes = PyList_New(0)) == NULL)
			sipIsErr = 1;
		else
		{
			TQList<TQTab> *tl;
			TQTab *tab;

			Py_BEGIN_ALLOW_THREADS
			tl = sipCpp -> sipProtect_tabList();
			Py_END_ALLOW_THREADS

			// Convert the list.
			for (TQListIterator<TQTab> it(*tl); (tab = it.current()) != NULL; ++it)
			{
				PyObject *inst = sipBuildResult(&sipIsErr,"C",tab,sipClass_TQTab,NULL);

				if (sipIsErr)
					break;

				int rc = PyList_Append(sipRes,inst);

				Py_DECREF(inst);

				if (rc < 0)
				{
					sipIsErr = 1;
					break;
				}
			}

			if (sipIsErr)
            {
				Py_DECREF(sipRes);
            }
		}
%End

private:
%If (TQt_2_1_0 -)
	TQTabBar(const TQTabBar &);
%End
};
