summaryrefslogtreecommitdiffstats
path: root/src/kernel/qdragobject.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/kernel/qdragobject.h')
-rw-r--r--src/kernel/qdragobject.h279
1 files changed, 279 insertions, 0 deletions
diff --git a/src/kernel/qdragobject.h b/src/kernel/qdragobject.h
new file mode 100644
index 000000000..84b0291be
--- /dev/null
+++ b/src/kernel/qdragobject.h
@@ -0,0 +1,279 @@
+/****************************************************************************
+**
+** Definition of TQDragObject
+**
+** Copyright (C) 1992-2008 Trolltech ASA. All rights reserved.
+**
+** This file is part of the kernel module of the TQt GUI Toolkit.
+**
+** This file may be used under the terms of the GNU General
+** Public License versions 2.0 or 3.0 as published by the Free
+** Software Foundation and appearing in the files LICENSE.GPL2
+** and LICENSE.GPL3 included in the packaging of this file.
+** Alternatively you may (at your option) use any later version
+** of the GNU General Public License if such license has been
+** publicly approved by Trolltech ASA (or its successors, if any)
+** and the KDE Free TQt Foundation.
+**
+** Please review the following information to ensure GNU General
+** Public Licensing retquirements will be met:
+** http://trolltech.com/products/qt/licenses/licensing/opensource/.
+** If you are unsure which license is appropriate for your use, please
+** review the following information:
+** http://trolltech.com/products/qt/licenses/licensing/licensingoverview
+** or contact the sales department at [email protected].
+**
+** This file may be used under the terms of the Q Public License as
+** defined by Trolltech ASA and appearing in the file LICENSE.TQPL
+** included in the packaging of this file. Licensees holding valid TQt
+** Commercial licenses may use this file in accordance with the TQt
+** Commercial License Agreement provided with the Software.
+**
+** This file is provided "AS IS" with NO WARRANTY OF ANY KIND,
+** INCLUDING THE WARRANTIES OF DESIGN, MERCHANTABILITY AND FITNESS FOR
+** A PARTICULAR PURPOSE. Trolltech reserves all rights not granted
+** herein.
+**
+**********************************************************************/
+
+#ifndef TQDRAGOBJECT_H
+#define TQDRAGOBJECT_H
+
+class TQWidget;
+class TQTextDragPrivate;
+class TQDragObjectData;
+class TQStoredDragData;
+class TQImageDragData;
+
+#ifndef QT_H
+#include "qobject.h"
+#include "qimage.h"
+#include "qstrlist.h"
+#include "qcolor.h"
+#endif // QT_H
+
+#ifndef QT_NO_MIME
+
+class Q_EXPORT TQDragObject: public TQObject, public TQMimeSource {
+ Q_OBJECT
+public:
+ TQDragObject( TQWidget * dragSource = 0, const char * name = 0 );
+ virtual ~TQDragObject();
+
+#ifndef QT_NO_DRAGANDDROP
+ bool drag();
+ bool dragMove();
+ void dragCopy();
+ void dragLink();
+
+ virtual void setPixmap(TQPixmap);
+ virtual void setPixmap(TQPixmap, const TQPoint& hotspot);
+ TQPixmap pixmap() const;
+ TQPoint pixmapHotSpot() const;
+#endif
+
+ TQWidget * source();
+ static TQWidget * target();
+
+ static void setTarget(TQWidget*);
+
+#ifndef QT_NO_DRAGANDDROP
+ enum DragMode { DragDefault, DragCopy, DragMove, DragLink, DragCopyOrMove };
+
+protected:
+ virtual bool drag(DragMode);
+#endif
+
+private:
+ TQDragObjectData * d;
+#if defined(Q_DISABLE_COPY) // Disabled copy constructor and operator=
+ TQDragObject( const TQDragObject & );
+ TQDragObject &operator=( const TQDragObject & );
+#endif
+};
+
+class Q_EXPORT TQStoredDrag: public TQDragObject {
+ Q_OBJECT
+ TQStoredDragData * d;
+
+public:
+ TQStoredDrag( const char * mimeType,
+ TQWidget * dragSource = 0, const char * name = 0 );
+ ~TQStoredDrag();
+
+ virtual void setEncodedData( const TQByteArray & );
+
+ const char * format(int i) const;
+ virtual TQByteArray encodedData(const char*) const;
+
+private:
+#if defined(Q_DISABLE_COPY) // Disabled copy constructor and operator=
+ TQStoredDrag( const TQStoredDrag & );
+ TQStoredDrag &operator=( const TQStoredDrag & );
+#endif
+};
+
+class Q_EXPORT TQTextDrag: public TQDragObject {
+ Q_OBJECT
+ TQTextDragPrivate* d;
+public:
+ TQTextDrag( const TQString &,
+ TQWidget * dragSource = 0, const char * name = 0 );
+ TQTextDrag( TQWidget * dragSource = 0, const char * name = 0 );
+ ~TQTextDrag();
+
+ virtual void setText( const TQString &);
+ virtual void setSubtype( const TQCString &);
+
+ const char * format(int i) const;
+ virtual TQByteArray encodedData(const char*) const;
+
+ static bool canDecode( const TQMimeSource* e );
+ static bool decode( const TQMimeSource* e, TQString& s );
+ static bool decode( const TQMimeSource* e, TQString& s, TQCString& subtype );
+
+private:
+#if defined(Q_DISABLE_COPY) // Disabled copy constructor and operator=
+ TQTextDrag( const TQTextDrag & );
+ TQTextDrag &operator=( const TQTextDrag & );
+#endif
+};
+
+class Q_EXPORT TQImageDrag: public TQDragObject {
+ Q_OBJECT
+ TQImage img;
+ TQStrList ofmts;
+ TQImageDragData* d;
+
+public:
+ TQImageDrag( TQImage image, TQWidget * dragSource = 0, const char * name = 0 );
+ TQImageDrag( TQWidget * dragSource = 0, const char * name = 0 );
+ ~TQImageDrag();
+
+ virtual void setImage( TQImage image );
+
+ const char * format(int i) const;
+ virtual TQByteArray encodedData(const char*) const;
+
+ static bool canDecode( const TQMimeSource* e );
+ static bool decode( const TQMimeSource* e, TQImage& i );
+ static bool decode( const TQMimeSource* e, TQPixmap& i );
+
+private:
+#if defined(Q_DISABLE_COPY) // Disabled copy constructor and operator=
+ TQImageDrag( const TQImageDrag & );
+ TQImageDrag &operator=( const TQImageDrag & );
+#endif
+};
+
+
+class Q_EXPORT TQUriDrag: public TQStoredDrag {
+ Q_OBJECT
+
+public:
+ TQUriDrag( TQStrList uris, TQWidget * dragSource = 0, const char * name = 0 );
+ TQUriDrag( TQWidget * dragSource = 0, const char * name = 0 );
+ ~TQUriDrag();
+
+ void setFilenames( const TQStringList & fnames ) { setFileNames( fnames ); }
+ void setFileNames( const TQStringList & fnames );
+ void setUnicodeUris( const TQStringList & uuris );
+ virtual void setUris( TQStrList uris );
+
+ 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* e );
+ static bool decode( const TQMimeSource* e, TQStrList& i );
+ static bool decodeToUnicodeUris( const TQMimeSource* e, TQStringList& i );
+ static bool decodeLocalFiles( const TQMimeSource* e, TQStringList& i );
+
+private:
+#if defined(Q_DISABLE_COPY) // Disabled copy constructor and operator=
+ TQUriDrag( const TQUriDrag & );
+ TQUriDrag &operator=( const TQUriDrag & );
+#endif
+};
+
+class Q_EXPORT TQColorDrag : public TQStoredDrag
+{
+ Q_OBJECT
+ TQColor color;
+
+public:
+ TQColorDrag( const TQColor &col, TQWidget *dragsource = 0, const char *name = 0 );
+ TQColorDrag( TQWidget * dragSource = 0, const char * name = 0 );
+ void setColor( const TQColor &col );
+
+ static bool canDecode( TQMimeSource * );
+ static bool decode( TQMimeSource *, TQColor &col );
+
+private:
+#if defined(Q_DISABLE_COPY) // Disabled copy constructor and operator=
+ TQColorDrag( const TQColorDrag & );
+ TQColorDrag &operator=( const TQColorDrag & );
+#endif
+};
+
+#ifndef QT_NO_COMPAT
+typedef TQUriDrag TQUrlDrag;
+#endif
+
+#ifndef QT_NO_DRAGANDDROP
+
+// TQDragManager is not part of the public API. It is defined in a
+// header file simply so different .cpp files can implement different
+// member functions.
+//
+
+class Q_EXPORT TQDragManager: public TQObject {
+ Q_OBJECT
+
+private:
+ TQDragManager();
+ ~TQDragManager();
+ // only friend classes can use TQDragManager.
+ friend class TQDragObject;
+ friend class TQDragMoveEvent;
+ friend class TQDropEvent;
+ friend class TQApplication;
+
+ bool eventFilter( TQObject *, TQEvent * );
+ void timerEvent( TQTimerEvent* );
+
+ bool drag( TQDragObject *, TQDragObject::DragMode );
+
+ void cancel( bool deleteSource = TRUE );
+ void move( const TQPoint & );
+ void drop();
+ void updatePixmap();
+ void updatePixmap( const TQPoint& cursorPos );
+
+private:
+ TQDragObject * object;
+ bool updateMode( ButtonState newstate );
+ void updateCursor();
+#if defined(Q_WS_X11)
+ void createCursors();
+#endif
+
+ TQWidget * dragSource;
+ TQWidget * dropWidget;
+ bool beingCancelled;
+ bool restoreCursor;
+ bool willDrop;
+
+ TQPixmap *pm_cursor;
+ int n_cursor;
+#if defined(Q_DISABLE_COPY) // Disabled copy constructor and operator=
+ TQDragManager( const TQDragManager & );
+ TQDragManager &operator=( const TQDragManager & );
+#endif
+};
+
+#endif
+
+#endif // QT_NO_MIME
+
+#endif // TQDRAGOBJECT_H