// This is the SIP interface definition for TQDragObject, TQImageDrag,
// TQStoredDrag, TQTextDrag, TQUriDrag, TQUrlDrag, TQColorDrag.
//
// 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>TQColorDrag (TQt v2.1+)</Title>
<Para>
<Literal>TQColorDrag</Literal> is fully implemented.
</Para>
</Sect2>

<Sect2><Title>TQDragObject</Title>
<Para>
<Literal>TQDragObject</Literal> is fully implemented.
</Para>
</Sect2>

<Sect2><Title>TQImageDrag</Title>
<Para>
<Literal>TQImageDrag</Literal> is fully implemented.
</Para>
</Sect2>

<Sect2><Title>TQStoredDrag</Title>
<Para>
<Literal>TQStoredDrag</Literal> is fully implemented.
</Para>
</Sect2>

<Sect2><Title>TQTextDrag</Title>
<Para>
<Literal>TQTextDrag</Literal> is fully implemented.
</Para>
</Sect2>

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

<Sect2><Title>TQUrlDrag (TQt v1.x)</Title>
<Para>
<Literal>TQUrlDrag</Literal> is fully implemented.
</Para>
</Sect2>
%End


%If (- TQt_2_00)

class TQDragObject : TQObject
{
%TypeHeaderCode
#include <tqdragobject.h>
%End

public:
	enum DragMode {
		DragDefault,
		DragCopy,
		DragMove,
		DragCopyOrMove
	};

	TQDragObject(TQWidget * /TransferThis/ = 0,const char * = 0);

	bool drag();
	bool dragMove();
	void dragCopy();
	virtual bool provides(const char *) const;
	virtual const char *format(int) const = 0;
	virtual TQByteArray encodedData(const char *) const = 0;
	void setPixmap(TQPixmap);
	void setPixmap(TQPixmap,TQPoint);
	TQPixmap pixmap() const;
	TQPoint pixmapHotSpot() const;
	TQWidget *source();

protected:
	virtual bool drag(DragMode);
};

%End

%If (TQt_2_00 -)

class TQDragObject : TQObject, TQMimeSource
{
%TypeHeaderCode
#include <tqdragobject.h>
%End

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

%If (TQt_DRAGANDDROP)
	bool drag();
	bool dragMove();
	void dragCopy();
%If (TQt_3_0_0 -)
	void dragLink();
%End

	virtual void setPixmap(TQPixmap);
%If (- TQt_3_0_0)
	virtual void setPixmap(TQPixmap,TQPoint);
%End
%If (TQt_3_0_0 -)
	virtual void setPixmap(TQPixmap,const TQPoint &);
%End
	TQPixmap pixmap() const;
	TQPoint pixmapHotSpot() const;
%End

	TQWidget *source();
	static TQWidget *target();

	static void setTarget(TQWidget *);

%If (TQt_DRAGANDDROP)
%If (- TQt_3_0_0)
	enum DragMode {
		DragDefault,
		DragCopy,
		DragMove,
		DragCopyOrMove
	};
%End
%If (TQt_3_0_0 -)
	enum DragMode {
		DragDefault,
		DragCopy,
		DragMove,
		DragLink,
		DragCopyOrMove
	};
%End
%End

protected:
%If (TQt_DRAGANDDROP)
	virtual bool drag(DragMode);
%End

private:
%If (TQt_3_1_0 -)
	TQDragObject(const TQDragObject &);
%End
};

%End


class TQStoredDrag : TQDragObject
{
%TypeHeaderCode
#include <tqdragobject.h>
%End

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

%If (- TQt_2_00)
	void setEncodedData(const TQByteArray&);
%End
%If (TQt_2_00 -)
	virtual void setEncodedData(const TQByteArray&);
%End

	const char *format(int) const;
	virtual TQByteArray encodedData(const char *) const;

private:
%If (TQt_3_1_0 -)
	TQStoredDrag(const TQStoredDrag &);
%End
};


%If (- TQt_2_00)

class TQTextDrag : TQStoredDrag
{
%TypeHeaderCode
#include <tqdragobject.h>
%End

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

	void setText(const char *);
	static bool canDecode(TQDragMoveEvent *);
	static bool decode(TQDropEvent *,TQString &);
};

%End

%If (TQt_2_00 -)

class TQTextDrag : TQDragObject
{
%TypeHeaderCode
#include <tqdragobject.h>
%End

public:
	TQTextDrag(const TQString &,TQWidget * /TransferThis/ = 0,
		  const char * = 0);
	TQTextDrag(TQWidget * /TransferThis/ = 0,const char * = 0);

	virtual void setText(const TQString &);
	virtual void setSubtype(const TQCString &);

	const char *format(int) const;
	virtual TQByteArray encodedData(const char *) const;

	static bool canDecode(const TQMimeSource *);
	static bool decode(const TQMimeSource *,TQString &);
	static bool decode(const TQMimeSource *,TQString &,TQCString &);

private:
%If (TQt_3_1_0 -)
	TQTextDrag(const TQTextDrag &);
%End
};

%End


class TQImageDrag : TQDragObject
{
%TypeHeaderCode
#include <tqdragobject.h>
%End

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

%If (- TQt_2_00)
	void setImage(TQImage);
%End
%If (TQt_2_00 -)
	virtual void setImage(TQImage);
%End

	const char *format(int) const;
	virtual TQByteArray encodedData(const char *) const;

%If (- TQt_2_00)
	static bool canDecode(TQDragMoveEvent *);
	static bool decode(TQDropEvent *,TQImage &);
	static bool decode(TQDropEvent *,TQPixmap &);
%End
%If (TQt_2_00 -)
	static bool canDecode(const TQMimeSource *);
	static bool decode(const TQMimeSource *,TQImage &);
	static bool decode(const TQMimeSource *,TQPixmap &);
%End

private:
%If (TQt_3_1_0 -)
	TQImageDrag(const TQImageDrag &);
%End
};


%If (- TQt_2_00)

class TQUrlDrag : TQStoredDrag
{
%TypeHeaderCode
#include <tqdragobject.h>
%End

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

	void setUrls(TQStrList);
	static TQString urlToLocalFile(const char *);
	static bool canDecode(TQDragMoveEvent *);
	static bool decode(TQDropEvent *,TQStrList &);
	static bool decodeLocalFiles(TQDropEvent *,TQStrList &);
};

%End

%If (TQt_2_00 -)

class TQUriDrag : TQStoredDrag
{
%TypeHeaderCode
#include <tqdragobject.h>
%End

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

%If (- TQt_3_0_0)
	void setFilenames(TQStringList);
	void setUnicodeUris(TQStringList);
%End
%If (TQt_3_0_0 -)
	void setFileNames(const TQStringList &);
	void setUnicodeUris(const TQStringList &);
%End
	virtual void setUris(TQStrList);

	static TQString uriToLocalFile(const char *);
	static TQCString localFileToUri(const TQString &);
	static TQString uriToUnicodeUri(const char *);
	static TQCString unicodeUriToUri(const TQString &);
	static bool canDecode(const TQMimeSource *);
	static bool decode(const TQMimeSource *,TQStrList &);
	static bool decodeToUnicodeUris(const TQMimeSource *,TQStringList &);
	static bool decodeLocalFiles(const TQMimeSource *,TQStringList &);

private:
%If (TQt_3_1_0 -)
	TQUriDrag(const TQUriDrag &);
%End
};

%End


%If (TQt_2_1_0 -)

class TQColorDrag : TQStoredDrag
{
%TypeHeaderCode
#include <tqdragobject.h>
%End

public:
	TQColorDrag(const TQColor &,TQWidget * /TransferThis/ = 0,
		   const char * = 0);
	TQColorDrag(TQWidget * /TransferThis/ = 0,const char * = 0);

	void setColor(const TQColor &);
 
	static bool canDecode(TQMimeSource *);
	static bool decode(TQMimeSource *,TQColor &);

private:
%If (TQt_3_1_0 -)
	TQColorDrag(const TQColorDrag &);
%End
};

%End
