// This is the SIP interface definition for TQMetaObject and TQMetaProperty.
//
// 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>TQMetaObject</Title>
<FuncSynopsis>
	<FuncDef>int <Function>numClassInfo</Function> const</FuncDef>
	<ParamDef>bool <Parameter>super</Parameter> = FALSE</ParamDef>
</FuncSynopsis>
<Para>
Not implemented.
</Para>

<FuncSynopsis>
	<FuncDef>const TQClassInfo *<Function>classInfo</Function> const</FuncDef>
	<ParamDef>bool <Parameter>super</Parameter> = FALSE</ParamDef>
</FuncSynopsis>
<Para>
Not implemented.
</Para>
</Sect2>

<Sect2><Title>TQMetaProperty</Title>
<Para>
<Literal>TQMetaProperty</Literal> is fully implemented.
</Para>
</Sect2>
%End


class TQMetaObject
{
%TypeHeaderCode
#include <tqmetaobject.h>
%End

public:
	const char *className() const;
	const char *superClassName() const;
	TQMetaObject *superClass() const;

%If (TQt_2_1_0 -)
	bool inherits(const char *) const;

	int numSlots(bool = 0) const;
	int numSignals(bool = 0) const;

	TQStrList slotNames(bool = 0) const;
	TQStrList signalNames(bool = 0) const;

	//int numClassInfo(bool = 0) const;
	//TQClassInfo *classInfo(int,bool = 0) const;
	const char *classInfo(const char *,bool = 0) const;

%If (TQt_PROPERTIES)
%If (TQt_3_0_0 -)
	const TQMetaProperty *property(int,bool = 0) const;
	int findProperty(const char *,bool = 0) const;
	int numProperties(bool = 0) const;
%End
%If (- TQt_3_0_0)
	const TQMetaProperty *property(const char *,bool = 0) const;
%End

	TQStrList propertyNames(bool = 0) const;
%End
%End

private:
	TQMetaObject(const TQMetaObject &);
};


%If (TQt_PROPERTIES)
%If (TQt_2_1_0 -)

class TQMetaProperty
{
%TypeHeaderCode
#include <tqmetaobject.h>
%End

public:
	const char *type() const;
	const char *name() const;

%If (TQt_2_2_0 -)
	bool writable() const;
%End
%If (- TQt_3_0_0)
	bool writeable() const;
%End
	bool isValid() const;

	bool isSetType() const;
	bool isEnumType() const;
	TQStrList enumKeys() const;

	int keyToValue(const char *) const;
	const char *valueToKey(int) const;
	int keysToValue(const TQStrList &) const;
	TQStrList valueToKeys(int) const;

%If (TQt_3_1_0 -)
	bool designable(TQObject * = 0) const;
	bool scriptable(TQObject * = 0) const;
	bool stored(TQObject * = 0) const;
%End
%If (TQt_3_0_0 - TQt_3_1_0)
	bool designable(TQObject *) const;
	bool scriptable(TQObject *) const;
	bool stored(TQObject *) const;
%End

%If (TQt_3_0_0 -)
	bool reset(TQObject *) const;
%End

%If (- TQt_3_0_0)
	bool stored(TQObject *) const;
	bool designable() const;

	enum Specification {
		Unspecified,
		Class,
		Reference,
		Pointer,
		ConstCharStar
	};

	enum Flags {
		UnresolvedEnum,
		UnresolvedSet,
		UnresolvedEnumOrSet,
		UnresolvedStored,
		UnresolvedDesignable,
		NotDesignable,
		NotStored,
%If (TQt_2_2_0 -)
		StdSet,
%End
	};

	bool testFlags(uint) const;
	void setFlags(uint);
	void clearFlags(uint);
%End
};

%End
%End