📄 qdragobject.h
字号:
/****************************************************************************** $Id: qt/src/kernel/qdragobject.h 2.3.6 edited 2001-08-30 $**** Definition of QDragObject**** Copyright (C) 1992-2000 Trolltech AS. All rights reserved.**** This file is part of the kernel module of the Qt GUI Toolkit.**** This file may be distributed under the terms of the Q Public License** as defined by Trolltech AS of Norway and appearing in the file** LICENSE.QPL included in the packaging of this file.**** This file may be distributed and/or modified under the terms of the** GNU General Public License version 2 as published by the Free Software** Foundation and appearing in the file LICENSE.GPL included in the** packaging of this file.**** Licensees holding valid Qt Enterprise Edition or Qt Professional Edition** licenses may use this file in accordance with the Qt Commercial License** Agreement provided with the Software.**** This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE** WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.**** See http://www.trolltech.com/pricing.html or email sales@trolltech.com for** information about Qt Commercial License Agreements.** See http://www.trolltech.com/qpl/ for QPL licensing information.** See http://www.trolltech.com/gpl/ for GPL licensing information.**** Contact info@trolltech.com if any conditions of this licensing are** not clear to you.************************************************************************/#ifndef QDRAGOBJECT_H#define QDRAGOBJECT_Hstruct QDragData;struct QStoredDragData;class QWidget;#ifndef QT_H#include "qobject.h"#include "qimage.h"#include "qstrlist.h"#include "qcolor.h"#endif // QT_H#ifndef QT_NO_MIMEclass Q_EXPORT QDragObject: public QObject, public QMimeSource { Q_OBJECTpublic: QDragObject( QWidget * dragSource = 0, const char * name = 0 ); virtual ~QDragObject();#ifndef QT_NO_DRAGANDDROP bool drag(); bool dragMove(); void dragCopy();#if defined(Q_INCOMPATIBLE_3_0_ADDONS) void dragLink();#endif virtual void setPixmap(QPixmap); virtual void setPixmap(QPixmap, QPoint hotspot); QPixmap pixmap() const; QPoint pixmapHotSpot() const;#endif QWidget * source(); static QWidget * target(); static void setTarget(QWidget*);#ifndef QT_NO_DRAGANDDROP enum DragMode { DragDefault, DragCopy, DragMove, DragCopyOrMove#if defined(Q_INCOMPATIBLE_3_0_ADDONS) , DragLink#endif };protected: virtual bool drag(DragMode);#endifprivate: QDragData * d;};class Q_EXPORT QStoredDrag: public QDragObject { Q_OBJECT QStoredDragData * d;public: QStoredDrag( const char * mimeType, QWidget * dragSource = 0, const char * name = 0 ); ~QStoredDrag(); virtual void setEncodedData( const QByteArray & ); const char * format(int i) const; virtual QByteArray encodedData(const char*) const;};class QTextDragPrivate;class Q_EXPORT QTextDrag: public QDragObject { Q_OBJECT QTextDragPrivate* d;public: QTextDrag( const QString &, QWidget * dragSource = 0, const char * name = 0 ); QTextDrag( QWidget * dragSource = 0, const char * name = 0 ); ~QTextDrag(); virtual void setText( const QString &); virtual void setSubtype( const QCString &); 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, QCString& subtype );};class QImageDragData;class Q_EXPORT QImageDrag: public QDragObject { Q_OBJECT QImage img; QStrList ofmts; QImageDragData* d;public: QImageDrag( QImage image, QWidget * dragSource = 0, const char * name = 0 ); QImageDrag( QWidget * dragSource = 0, const char * name = 0 ); ~QImageDrag(); virtual void setImage( QImage 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, QImage& i ); static bool decode( const QMimeSource* e, QPixmap& i );};class Q_EXPORT QUriDrag: public QStoredDrag { Q_OBJECTpublic: QUriDrag( QStrList uris, QWidget * dragSource = 0, const char * name = 0 ); QUriDrag( QWidget * dragSource = 0, const char * name = 0 ); ~QUriDrag(); void setFilenames( QStringList fnames ); void setUnicodeUris( QStringList uuris ); virtual void setUris( QStrList uris ); static QString uriToLocalFile(const char*); static QCString localFileToUri(const QString&); static QString uriToUnicodeUri(const char*); static QCString unicodeUriToUri(const QString&); static bool canDecode( const QMimeSource* e ); static bool decode( const QMimeSource* e, QStrList& i ); static bool decodeToUnicodeUris( const QMimeSource* e, QStringList& i ); static bool decodeLocalFiles( const QMimeSource* e, QStringList& i );};class Q_EXPORT QColorDrag : public QStoredDrag{ Q_OBJECT QColor color;public: QColorDrag( const QColor &col, QWidget *dragsource = 0, const char *name = 0 ); QColorDrag( QWidget * dragSource = 0, const char * name = 0 ); void setColor( const QColor &col ); static bool canDecode( QMimeSource * ); static bool decode( QMimeSource *, QColor &col );};#ifndef QT_NO_COMPATtypedef QUriDrag QUrlDrag;#endif#ifndef QT_NO_DRAGANDDROP// QDragManager 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 QDragManager: public QObject { Q_OBJECTprivate: QDragManager(); ~QDragManager(); // only friend classes can use QDragManager. friend class QDragObject; friend class QDragMoveEvent; friend class QDropEvent; bool eventFilter( QObject *, QEvent * ); void timerEvent( QTimerEvent* ); bool drag( QDragObject *, QDragObject::DragMode ); void cancel( bool deleteSource = TRUE ); void move( const QPoint & ); void drop(); void updatePixmap();private: QDragObject * object; void updateMode( ButtonState newstate ); void updateCursor(); QWidget * dragSource; QWidget * dropWidget; bool beingCancelled; bool restoreCursor; bool willDrop; QPixmap *pm_cursor; int n_cursor;};#endif#endif // QT_NO_MIME#endif // QDRAGOBJECT_H
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -