// This is the SIP interface definition for TQMenuData, TQCustomMenuItem and
// TQMenuItem.
//
// 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>TQMenuData</Title>
<FuncSynopsis>
        <FuncDef>TQMenuItem *<Function>findItem</Function></FuncDef>
        <ParamDef>int <Parameter>id</Parameter></ParamDef>
        <ParamDef>TQMenuData **<Parameter>parent</Parameter></ParamDef>
</FuncSynopsis>
<Para>
Not implemented.
</Para>
</Sect2>

<Sect2><Title>TQCustomMenuItem (TQt v2.1+)</Title>
<Para>
<Literal>TQCustomMenuItem</Literal> is fully implemented.
</Para>
</Sect2>

<Sect2><Title>TQMenuItem</Title>
<Para>
<Literal>TQMenuItem</Literal> is an internal TQt class.
</Para>
</Sect2>
%End


%If (TQt_3_0_0 -)

// Even though this is an internal class, uic for TQt v3.1.0 generates code that
// uses it.
class TQMenuItem
{
%TypeHeaderCode
#include <tqmenudata.h>
%End

public:
	TQMenuItem();

	void setText(const TQString &);

private:
	TQMenuItem(const TQMenuItem &);
};

%End


%If (- TQt_3_0_0)

class TQMenuItem;

%End


class TQMenuData
{
%TypeHeaderCode
#include <tqmenudata.h>
%End

public:
	TQMenuData();

	uint count();

%If (- TQt_2_00)
	int insertItem(const char *,SIP_RXOBJ_CON,SIP_SLOT_CON(int),int = 0);
	int insertItem(const TQPixmap &,SIP_RXOBJ_CON,SIP_SLOT_CON(int),int = 0);
	int insertItem(const TQPixmap &,const char *,SIP_RXOBJ_CON,
		       SIP_SLOT_CON(int),int = 0);
	int insertItem(const char *,SIP_RXOBJ_CON,SIP_SLOT_CON(int),int,int,
		       int = -1);
	int insertItem(const TQPixmap &,SIP_RXOBJ_CON,SIP_SLOT_CON(int),int,int,
		       int = -1);
	int insertItem(const TQPixmap&,const char *,SIP_RXOBJ_CON,SIP_SLOT_CON(int),
		       int,int,int = -1);
%End
%If (TQt_2_00 - TQt_3_0_0)
	int insertItem(const TQString &,SIP_RXOBJ_CON,SIP_SLOT_CON(int),int = 0,
		       int = -1,int = -1);
	int insertItem(const TQIconSet &,const TQString &,SIP_RXOBJ_CON,
		       SIP_SLOT_CON(int),int = 0,int = -1,int = -1);
	int insertItem(const TQPixmap &,SIP_RXOBJ_CON,SIP_SLOT_CON(int),int = 0,
		       int = -1,int = -1);
	int insertItem(const TQIconSet &,const TQPixmap &,SIP_RXOBJ_CON,
		       SIP_SLOT_CON(int),int = 0,int = -1,int = -1);
%End
%If (TQt_3_0_0 -)
	int insertItem(const TQString &,SIP_RXOBJ_CON,SIP_SLOT_CON(int),
		       const TQKeySequence & = TQKeySequence(0),int = -1,
		       int = -1);
	int insertItem(const TQIconSet &,const TQString &,SIP_RXOBJ_CON,
		       SIP_SLOT_CON(int),
		       const TQKeySequence & = TQKeySequence(0),int = -1,
		       int = -1);
	int insertItem(const TQPixmap &,SIP_RXOBJ_CON,SIP_SLOT_CON(int),
		       const TQKeySequence & = TQKeySequence(0),int = -1,
		       int = -1);
	int insertItem(const TQIconSet &,const TQPixmap &,SIP_RXOBJ_CON,
		       SIP_SLOT_CON(int),
		       const TQKeySequence & = TQKeySequence(0),int = -1,
		       int = -1);
%End

%If (- TQt_2_00)
	int insertItem(const char *,int = -1,int = -1);
	int insertItem(const char *,TQPopupMenu *,int = -1,int = -1);
	int insertItem(const TQPixmap &,const char *,int = -1,int = -1);
	int insertItem(const TQPixmap &,const char *,TQPopupMenu *,int = -1,
		       int = -1);
%End
%If (TQt_2_00 -)
	int insertItem(const TQString &,int = -1,int = -1);
	int insertItem(const TQIconSet &,const TQString &,int = -1,int = -1);

	int insertItem(const TQString &,TQPopupMenu *,int = -1,int = -1);
	int insertItem(const TQIconSet &,const TQString &,TQPopupMenu *,int = -1,
		       int = -1);
%End

	int insertItem(const TQPixmap &,int = -1,int = -1);
%If (TQt_2_00 -)
	int insertItem(const TQIconSet &,const TQPixmap &,int = -1,int = -1);
%End
	int insertItem(const TQPixmap &,TQPopupMenu *,int = -1,int = -1);
%If (TQt_2_00 -)
	int insertItem(const TQIconSet &,const TQPixmap &,TQPopupMenu *,int = -1,
		       int = -1);
%End

%If (TQt_2_1_0 -)
	int insertItem(TQWidget * /Transfer/,int = -1,int = -1);
	int insertItem(const TQIconSet &,TQCustomMenuItem * /Transfer/,int = -1,
		       int = -1);
	int insertItem(TQCustomMenuItem * /Transfer/,int = -1,int = -1);
%End

%If (TQt_2_1_0 -)
	int insertSeparator(int = -1);
%End
%If (- TQt_2_1_0)
	void insertSeparator(int = -1);
%End

	void removeItem(int);
	void removeItemAt(int);
	void clear();

%If (- TQt_3_0_0)
	int accel(int) const;
	void setAccel(int,int);
%End
%If (TQt_3_0_0 -)
	TQKeySequence accel(int) const;
	void setAccel(const TQKeySequence &,int);
%End

%If (- TQt_2_00)
	const char *text(int) const;
%End
%If (TQt_2_00 -)
	TQIconSet *iconSet(int) const;
	TQString text(int) const;
%End
	TQPixmap *pixmap(int) const;

%If (TQt_2_00 -)
	void setWhatsThis(int,const TQString &);
	TQString whatsThis(int) const;
%End

%If (- TQt_2_00)
	void changeItem(const char *,int);
	void changeItem(const TQPixmap &,int);
	void changeItem(const TQPixmap &,const char *,int);
%End
%If (TQt_2_00 -)
	void changeItem(int,const TQString &);
	void changeItem(int,const TQPixmap &);
	void changeItem(int,const TQIconSet &,const TQString &);
	void changeItem(int,const TQIconSet &,const TQPixmap &);
%End

%If (TQt_3_0_0 -)
	bool isItemActive(int) const;
%End

	bool isItemEnabled(int) const;
	void setItemEnabled(int,bool);

	bool isItemChecked(int) const;
	void setItemChecked(int,bool);

%If (TQt_3_1_0 -)
	bool isItemVisible(int) const;
	void setItemVisible(int,bool);
%End

	virtual void updateItem(int);

	int indexOf(int) const;
	int idAt(int) const;
%If (- TQt_2_00)
	void setId(int,int);
%End
%If (TQt_2_00 -)
	virtual void setId(int,int);
%End

	bool connectItem(int,SIP_RXOBJ_CON,SIP_SLOT_CON(int));
	bool disconnectItem(int,SIP_RXOBJ_DIS,SIP_SLOT_DIS(int));

%If (TQt_2_1_0 -)
	bool setItemParameter(int,int);
	int itemParameter(int) const;
%End

	TQMenuItem *findItem(int) const;
//	TQMenuItem *findItem(int,TQMenuData **) const;
%If (TQt_3_0_0 -)
//	Not documented in the TQt3 API (the similar findPopup() was internal in
//	TQt2).
//	TQMenuItem *findItem(TQPopupMenu *,int * = 0) const;
%End

%If (TQt_2_2_0 - TQt_3_0_0)
	void activateItemAt(int);
%End
%If (TQt_3_0_0 -)
	virtual void activateItemAt(int);
%End

protected:
	virtual void menuContentsChanged();
	virtual void menuStateChanged();
	virtual void menuInsPopup(TQPopupMenu *);
	virtual void menuDelPopup(TQPopupMenu *);
%If (- TQt_3_0_0)
//	Documented as internal in the TQt2 API.
//	TQMenuItem *findPopup(TQPopupMenu *,int * = 0);
%End

private:
	TQMenuData(const TQMenuData &);
};


%If (TQt_2_1_0 -)

class TQCustomMenuItem : TQt
{
%TypeHeaderCode
#include <tqmenudata.h>
%End

public:
	TQCustomMenuItem();

	virtual bool fullSpan() const;
	virtual bool isSeparator() const;
	virtual void setFont(const TQFont &);
	virtual void paint(TQPainter *,const TQColorGroup &,bool,bool,int,int,
			   int,int) = 0;
	virtual TQSize sizeHint() = 0;
};

%End
