diff options
Diffstat (limited to 'buildtools/autotools/tdefiledndiconview.h')
-rw-r--r-- | buildtools/autotools/tdefiledndiconview.h | 129 |
1 files changed, 129 insertions, 0 deletions
diff --git a/buildtools/autotools/tdefiledndiconview.h b/buildtools/autotools/tdefiledndiconview.h new file mode 100644 index 00000000..84148362 --- /dev/null +++ b/buildtools/autotools/tdefiledndiconview.h @@ -0,0 +1,129 @@ +/************************************************************************** +* tdefiledndiconview.h - description +* ------------------- +* begin : Wed Nov 1 2000 +* copyright : (C) 2000 by Björn Sahlström +* email : kbjorn@users.sourceforge.net +***************************************************************************/ + +/*************************************************************************** +* * +* This program 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 of the License, or * +* (at your option) any later version. * +* * +**************************************************************************/ + +#ifndef KFILEDNDICONVIEW_H +#define KFILEDNDICONVIEW_H + +#include <tqwidget.h> +#include <tqtimer.h> +#include <tdefileiconview.h> +#include <kurldrag.h> + +/** + * This is a fileview inherited from @ref KFileIconView. + * It adds "drag and drop" suitable for a @ref KFileIconView + * No special setup is needed, just connect to the @ref dropped signals + * and the view will take care of the rest. + * @short Drag and drop" aware @ref KFileIconView + * @author Björn Sahlström +*/ + +class KFileDnDIconView : public KFileIconView +{ + Q_OBJECT + +public: // Public methods + + KFileDnDIconView( TQWidget *parent = 0, const char *name = 0 ); + virtual ~KFileDnDIconView(); + + /** + * Set if Drag'n drop should be enabled or not, default is enabled. + */ + void setDnDEnabled( bool ); + + /** + * @returns wether DnD is enabled or not. + */ + bool isDnDEnabled() const + { + return m_dndEnabled; + } + + /** + * Sets the auto open time, which means the time that will + * elapse before a directory is automatically opened after entered by DnD. + * Only need to call this if you want to change the predefined time that is 750 ms. + * This also calls @ref #useAutoOpenTimer so no need to call this to. + */ + void setAutoOpenTime( const int& time ); + + /** + * Set this to true if you want the view to use it's auto open functionallity otherwhise set it to false. + * By default this is turned ON. + */ + void useAutoOpenTimer( bool on = true ); + + /** + * @returns true if auto open functionallity is turned ON (default), otherwhise false + * @see #useAutoOpenTimer + * @see #setAutoOpenTime + */ + bool isAutoOpening() const + { + return m_useAutoOpenTimer; + } + + virtual void readConfig( TDEConfig*, const TQString& group = TQString() ); + virtual void writeConfig( TDEConfig*, const TQString& group = TQString() ); +signals: + + /** + * Emitted whenever an decodable item is dropped in the view. + * Note: The @ref TQDropEvent contains a @ref KURLDrag object. + */ + void dropped( TQDropEvent* ); + +protected slots: + /** + * Called when the auto timer times out. Open the current folder. + */ + void slotOpenFolder(); + +protected: + virtual void contentsDragEnterEvent( TQDragEnterEvent *e ); + virtual void contentsDragMoveEvent( TQDragMoveEvent *e ); + virtual void contentsDragLeaveEvent( TQDragLeaveEvent *e ); + virtual void contentsDropEvent( TQDropEvent* e ); + + /** + * Creates a @ref TQDragObject containing all urls of the selected @ref KFileItem of the view, + * @returns the @ref TQDragObject + */ + virtual TQDragObject* dragObject(); + + /** + *Creates the drag item and starts the drag + */ + virtual void startDrag(); + + /** + *@returns true if we can decode the drag and support the action + */ + virtual bool acceptDrag( TQDropEvent* event ) const; + +protected: + + TQTimer m_autoOpenTimer; + int m_autoOpenTime; + bool m_useAutoOpenTimer; + TQIconViewItem* m_dropItem; + bool m_dndEnabled; +}; +#endif +// kate: indent-mode csands; tab-width 4; auto-insert-doxygen on; + |