You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
510 lines
15 KiB
510 lines
15 KiB
#include "tqtglobaldefines.h"
|
|
|
|
// #ifdef USE_QT4
|
|
#if 0
|
|
|
|
/****************************************************************************
|
|
**
|
|
** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies).
|
|
** All rights reserved.
|
|
** Contact: Nokia Corporation (qt-info@nokia.com)
|
|
**
|
|
** This file is part of the Qt3Support module of the Qt Toolkit.
|
|
**
|
|
** $QT_BEGIN_LICENSE:LGPL$
|
|
** Commercial Usage
|
|
** Licensees holding valid Qt Commercial licenses may use this file in
|
|
** accordance with the Qt Commercial License Agreement provided with the
|
|
** Software or, alternatively, in accordance with the terms contained in
|
|
** a written agreement between you and Nokia.
|
|
**
|
|
** GNU Lesser General Public License Usage
|
|
** Alternatively, this file may be used under the terms of the GNU Lesser
|
|
** General Public License version 2.1 as published by the Free Software
|
|
** Foundation and appearing in the file LICENSE.LGPL included in the
|
|
** packaging of this file. Please review the following information to
|
|
** ensure the GNU Lesser General Public License version 2.1 requirements
|
|
** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
|
|
**
|
|
** In addition, as a special exception, Nokia gives you certain additional
|
|
** rights. These rights are described in the Nokia Qt LGPL Exception
|
|
** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
|
|
**
|
|
** GNU General Public License Usage
|
|
** Alternatively, this file may be used under the terms of the GNU
|
|
** General Public License version 3.0 as published by the Free Software
|
|
** Foundation and appearing in the file LICENSE.GPL included in the
|
|
** packaging of this file. Please review the following information to
|
|
** ensure the GNU General Public License version 3.0 requirements will be
|
|
** met: http://www.gnu.org/copyleft/gpl.html.
|
|
**
|
|
** If you have questions regarding the use of this file, please contact
|
|
** Nokia at qt-info@nokia.com.
|
|
** $QT_END_LICENSE$
|
|
**
|
|
****************************************************************************/
|
|
|
|
#ifndef TQDRAGOBJECT_H
|
|
#define TQDRAGOBJECT_H
|
|
|
|
#include <QtCore/qobject.h>
|
|
#include <QtGui/qcolor.h>
|
|
#include <QtGui/qmime.h>
|
|
#include <tqimage.h>
|
|
#include <tqstrlist.h>
|
|
#include <QtCore/qlist.h>
|
|
|
|
QT_BEGIN_HEADER
|
|
|
|
QT_BEGIN_NAMESPACE
|
|
|
|
QT_MODULE(Qt3SupportLight)
|
|
|
|
class QWidget;
|
|
class TQTextDragPrivate;
|
|
class TQDragObjectPrivate;
|
|
class TQStoredDragPrivate;
|
|
class TQImageDragPrivate;
|
|
class TQImageDrag;
|
|
class TQTextDrag;
|
|
class TQStrList;
|
|
class TQImage;
|
|
class QPixmap;
|
|
|
|
class TQDragObject : public TQObject, public QMimeSource {
|
|
Q_OBJECT
|
|
TQ_OBJECT
|
|
public:
|
|
TQDragObject(QWidget * dragSource = 0, const char *name = 0);
|
|
virtual ~TQDragObject();
|
|
|
|
bool drag();
|
|
bool dragMove();
|
|
void dragCopy();
|
|
void dragLink();
|
|
|
|
virtual void setPixmap(QPixmap);
|
|
virtual void setPixmap(QPixmap, const QPoint& hotspot);
|
|
QPixmap pixmap() const;
|
|
QPoint pixmapHotSpot() const;
|
|
|
|
QWidget * source();
|
|
static QWidget * target();
|
|
|
|
enum DragMode { DragDefault, DragCopy, DragMove, DragLink, DragCopyOrMove };
|
|
|
|
protected:
|
|
TQDragObject(TQDragObjectPrivate &, QWidget *dragSource = 0);
|
|
virtual bool drag(DragMode);
|
|
|
|
private:
|
|
friend class QDragMime;
|
|
Q_DISABLE_COPY(TQDragObject)
|
|
};
|
|
|
|
class TQStoredDrag: public TQDragObject {
|
|
Q_OBJECT
|
|
TQ_OBJECT
|
|
public:
|
|
TQStoredDrag(const char *mimeType, QWidget *dragSource = 0, const char *name = 0);
|
|
~TQStoredDrag();
|
|
|
|
virtual void setEncodedData(const QByteArray &);
|
|
|
|
const char * format(int i) const;
|
|
virtual QByteArray encodedData(const char*) const;
|
|
|
|
protected:
|
|
TQStoredDrag(TQStoredDragPrivate &, const char *mimeType, QWidget *dragSource = 0);
|
|
|
|
private:
|
|
Q_DISABLE_COPY(TQStoredDrag)
|
|
};
|
|
|
|
class TQTextDrag: public TQDragObject {
|
|
Q_OBJECT
|
|
TQ_OBJECT
|
|
public:
|
|
TQTextDrag(const QString &, QWidget *dragSource = 0, const char *name = 0);
|
|
TQTextDrag(QWidget * dragSource = 0, const char * name = 0);
|
|
~TQTextDrag();
|
|
|
|
virtual void setText(const QString &);
|
|
virtual void setSubtype(const QString &);
|
|
|
|
const char * format(int i) const;
|
|
virtual QByteArray encodedData(const char*) const;
|
|
|
|
static bool canDecode(const QMimeSource* e);
|
|
static bool decode(const QMimeSource* e, QString& s);
|
|
static bool decode(const QMimeSource* e, QString& s, QString& subtype);
|
|
|
|
protected:
|
|
TQTextDrag(TQTextDragPrivate &, QWidget * dragSource = 0);
|
|
|
|
private:
|
|
Q_DISABLE_COPY(TQTextDrag)
|
|
};Q_COMPAT_EXPORT
|
|
|
|
class TQImageDrag: public TQDragObject {
|
|
Q_OBJECT
|
|
TQ_OBJECT
|
|
public:
|
|
TQImageDrag(TQImage image, QWidget * dragSource = 0, const char * name = 0);
|
|
TQImageDrag(QWidget * dragSource = 0, const char * name = 0);
|
|
~TQImageDrag();
|
|
|
|
virtual void setImage(TQImage image);
|
|
|
|
const char * format(int i) const;
|
|
virtual QByteArray encodedData(const char*) const;
|
|
|
|
static bool canDecode(const QMimeSource* e);
|
|
static bool decode(const QMimeSource* e, TQImage& i);
|
|
static bool decode(const QMimeSource* e, QPixmap& i);
|
|
|
|
protected:
|
|
TQImageDrag(TQImageDragPrivate &, QWidget * dragSource = 0);
|
|
|
|
private:
|
|
Q_DISABLE_COPY(TQImageDrag)
|
|
};
|
|
|
|
|
|
class TQUriDrag: public TQStoredDrag {
|
|
Q_OBJECT
|
|
TQ_OBJECT
|
|
|
|
public:
|
|
TQUriDrag(const TQStrList &uris, QWidget * dragSource = 0, const char * name = 0);
|
|
TQUriDrag(QWidget * dragSource = 0, const char * name = 0);
|
|
~TQUriDrag();
|
|
|
|
void setFileNames(const QStringList & fnames);
|
|
inline void setFileNames(const QString & fname) { setFileNames(QStringList(fname)); }
|
|
void setFilenames(const QStringList & fnames) { setFileNames(fnames); }
|
|
inline void setFilenames(const QString & fname) { setFileNames(QStringList(fname)); }
|
|
void setUnicodeUris(const QStringList & uuris);
|
|
virtual void setUris(const QList<QByteArray> &uris);
|
|
|
|
static QString uriToLocalFile(const char*);
|
|
static QByteArray localFileToUri(const QString&);
|
|
static QString uriToUnicodeUri(const char*);
|
|
static QByteArray unicodeUriToUri(const QString&);
|
|
static bool canDecode(const QMimeSource* e);
|
|
static bool decode(const QMimeSource* e, TQStrList& i);
|
|
static bool decodeToUnicodeUris(const QMimeSource* e, QStringList& i);
|
|
static bool decodeLocalFiles(const QMimeSource* e, QStringList& i);
|
|
|
|
private:
|
|
Q_DISABLE_COPY(TQUriDrag)
|
|
};
|
|
|
|
class TQColorDrag : public TQStoredDrag
|
|
{
|
|
Q_OBJECT
|
|
TQ_OBJECT
|
|
QColor color;
|
|
|
|
public:
|
|
TQColorDrag(const QColor &col, QWidget *dragsource = 0, const char *name = 0);
|
|
TQColorDrag(QWidget * dragSource = 0, const char * name = 0);
|
|
void setColor(const QColor &col);
|
|
|
|
static bool canDecode(QMimeSource *);
|
|
static bool decode(QMimeSource *, QColor &col);
|
|
|
|
private:
|
|
Q_DISABLE_COPY(TQColorDrag)
|
|
};
|
|
|
|
QT_END_NAMESPACE
|
|
|
|
QT_END_HEADER
|
|
|
|
#endif // TQDRAGOBJECT_H
|
|
|
|
#else // USE_QT4
|
|
|
|
/****************************************************************************
|
|
**
|
|
** Definition of TQDragObject
|
|
**
|
|
** Copyright (C) 2010 Timothy Pearson and (C) 1992-2008 Trolltech ASA.
|
|
**
|
|
** 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 requirements 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 sales@trolltech.com.
|
|
**
|
|
** 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 TQT_H
|
|
#include "tqobject.h"
|
|
#include "tqimage.h"
|
|
#include "tqstrlist.h"
|
|
#include "tqcolor.h"
|
|
#endif // TQT_H
|
|
|
|
#ifndef TQT_NO_MIME
|
|
|
|
class TQ_EXPORT TQDragObject: public TQObject, public TQMimeSource {
|
|
TQ_OBJECT
|
|
public:
|
|
TQDragObject( QWidget * dragSource = 0, const char * name = 0 );
|
|
virtual ~TQDragObject();
|
|
|
|
#ifndef TQT_NO_DRAGANDDROP
|
|
bool drag();
|
|
bool dragMove();
|
|
void dragCopy();
|
|
void dragLink();
|
|
|
|
virtual void setPixmap(QPixmap);
|
|
virtual void setPixmap(QPixmap, const QPoint& hotspot);
|
|
TQPixmap pixmap() const;
|
|
TQPoint pixmapHotSpot() const;
|
|
#endif
|
|
|
|
TQWidget * source();
|
|
static TQWidget * target();
|
|
|
|
static void setTarget(QWidget*);
|
|
|
|
#ifndef TQT_NO_DRAGANDDROP
|
|
enum DragMode { DragDefault, DragCopy, DragMove, DragLink, DragCopyOrMove };
|
|
|
|
protected:
|
|
virtual bool drag(DragMode);
|
|
#endif
|
|
|
|
private:
|
|
TQDragObjectData * d;
|
|
#if defined(TQ_DISABLE_COPY) // Disabled copy constructor and operator=
|
|
TQDragObject( const TQDragObject & );
|
|
TQDragObject &operator=( const TQDragObject & );
|
|
#endif
|
|
};
|
|
|
|
class TQ_EXPORT TQStoredDrag: public TQDragObject {
|
|
TQ_OBJECT
|
|
TQStoredDragData * d;
|
|
|
|
public:
|
|
TQStoredDrag( const char * mimeType,
|
|
QWidget * dragSource = 0, const char * name = 0 );
|
|
~TQStoredDrag();
|
|
|
|
virtual void setEncodedData( const TQByteArray & );
|
|
|
|
const char * format(int i) const;
|
|
virtual TQByteArray tqencodedData(const char*) const;
|
|
|
|
private:
|
|
#if defined(TQ_DISABLE_COPY) // Disabled copy constructor and operator=
|
|
TQStoredDrag( const TQStoredDrag & );
|
|
TQStoredDrag &operator=( const TQStoredDrag & );
|
|
#endif
|
|
};
|
|
|
|
class TQ_EXPORT TQTextDrag: public TQDragObject {
|
|
TQ_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 tqencodedData(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(TQ_DISABLE_COPY) // Disabled copy constructor and operator=
|
|
TQTextDrag( const TQTextDrag & );
|
|
TQTextDrag &operator=( const TQTextDrag & );
|
|
#endif
|
|
};
|
|
|
|
class TQ_EXPORT TQImageDrag: public TQDragObject {
|
|
TQ_OBJECT
|
|
TQImage img;
|
|
TQStrList ofmts;
|
|
TQImageDragData* d;
|
|
|
|
public:
|
|
TQImageDrag( QImage image, QWidget * dragSource = 0, const char * name = 0 );
|
|
TQImageDrag( QWidget * dragSource = 0, const char * name = 0 );
|
|
~TQImageDrag();
|
|
|
|
virtual void setImage( QImage image );
|
|
|
|
const char * format(int i) const;
|
|
virtual TQByteArray tqencodedData(const char*) const;
|
|
|
|
static bool canDecode( const TQMimeSource* e );
|
|
static bool decode( const TQMimeSource* e, QImage& i );
|
|
static bool decode( const TQMimeSource* e, QPixmap& i );
|
|
|
|
private:
|
|
#if defined(TQ_DISABLE_COPY) // Disabled copy constructor and operator=
|
|
TQImageDrag( const TQImageDrag & );
|
|
TQImageDrag &operator=( const TQImageDrag & );
|
|
#endif
|
|
};
|
|
|
|
|
|
class TQ_EXPORT TQUriDrag: public TQStoredDrag {
|
|
TQ_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 tqunicodeUriToUri(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(TQ_DISABLE_COPY) // Disabled copy constructor and operator=
|
|
TQUriDrag( const TQUriDrag & );
|
|
TQUriDrag &operator=( const TQUriDrag & );
|
|
#endif
|
|
};
|
|
|
|
class TQ_EXPORT TQColorDrag : public TQStoredDrag
|
|
{
|
|
TQ_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(TQ_DISABLE_COPY) // Disabled copy constructor and operator=
|
|
TQColorDrag( const TQColorDrag & );
|
|
TQColorDrag &operator=( const TQColorDrag & );
|
|
#endif
|
|
};
|
|
|
|
#ifndef TQT_NO_COMPAT
|
|
typedef TQUriDrag TQUrlDrag;
|
|
#endif
|
|
|
|
#ifndef TQT_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 TQ_EXPORT TQDragManager: public TQObject {
|
|
TQ_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( TQt::ButtonState newstate );
|
|
void updateCursor();
|
|
#if defined(TQ_WS_X11)
|
|
void createCursors();
|
|
#endif
|
|
|
|
TQWidget * dragSource;
|
|
TQWidget * dropWidget;
|
|
bool beingCancelled;
|
|
bool restoreCursor;
|
|
bool willDrop;
|
|
|
|
TQPixmap *pm_cursor;
|
|
int n_cursor;
|
|
#if defined(TQ_DISABLE_COPY) // Disabled copy constructor and operator=
|
|
TQDragManager( const TQDragManager & );
|
|
TQDragManager &operator=( const TQDragManager & );
|
|
#endif
|
|
};
|
|
|
|
#endif
|
|
|
|
#endif // TQT_NO_MIME
|
|
|
|
#endif // TQDRAGOBJECT_H
|
|
|
|
#endif // USE_QT4
|