// 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;

	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)
	const TQMetaProperty *property(int,bool = 0) const;
	int findProperty(const char *,bool = 0) const;
	int numProperties(bool = 0) const;

	TQStrList propertyNames(bool = 0) const;
%End

private:
	TQMetaObject(const TQMetaObject &);
};


%If (TQt_PROPERTIES)

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

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

	bool writable() const;
	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;

	bool designable(TQObject * = 0) const;
	bool scriptable(TQObject * = 0) const;
	bool stored(TQObject * = 0) const;

	bool reset(TQObject *) const;
};

%End
