diff options
author | Timothy Pearson <kb9vqf@pearsoncomputing.net> | 2011-11-08 12:31:36 -0600 |
---|---|---|
committer | Timothy Pearson <kb9vqf@pearsoncomputing.net> | 2011-11-08 12:31:36 -0600 |
commit | d796c9dd933ab96ec83b9a634feedd5d32e1ba3f (patch) | |
tree | 6e3dcca4f77e20ec8966c666aac7c35bd4704053 /examples/iconview/simple_dd | |
download | tqt3-d796c9dd933ab96ec83b9a634feedd5d32e1ba3f.tar.gz tqt3-d796c9dd933ab96ec83b9a634feedd5d32e1ba3f.zip |
Test conversion to TQt3 from Qt3 8c6fc1f8e35fd264dd01c582ca5e7549b32ab731
Diffstat (limited to 'examples/iconview/simple_dd')
-rw-r--r-- | examples/iconview/simple_dd/main.cpp | 187 | ||||
-rw-r--r-- | examples/iconview/simple_dd/main.h | 60 | ||||
-rw-r--r-- | examples/iconview/simple_dd/simple_dd.doc | 29 | ||||
-rw-r--r-- | examples/iconview/simple_dd/simple_dd.pro | 10 |
4 files changed, 286 insertions, 0 deletions
diff --git a/examples/iconview/simple_dd/main.cpp b/examples/iconview/simple_dd/main.cpp new file mode 100644 index 000000000..3093e89a9 --- /dev/null +++ b/examples/iconview/simple_dd/main.cpp @@ -0,0 +1,187 @@ +/**************************************************************************** +** +** Copyright (C) 1992-2008 Trolltech ASA. All rights reserved. +** +** This file is part of an example program for TQt. This example +** program may be used, distributed and modified without limitation. +** +*****************************************************************************/ + +#include "main.h" + +const char* red_icon[]={ +"16 16 2 1", +"r c red", +". c None", +"................", +"................", +"..rrrrrrrrrrrr..", +"..rrrrrrrrrrrr..", +"..rrrrrrrrrrrr..", +"..rrr......rrr..", +"..rrr......rrr..", +"..rrr......rrr..", +"..rrr......rrr..", +"..rrr......rrr..", +"..rrr......rrr..", +"..rrrrrrrrrrrr..", +"..rrrrrrrrrrrr..", +"..rrrrrrrrrrrr..", +"................", +"................"}; + +const char* blue_icon[]={ +"16 16 2 1", +"b c blue", +". c None", +"................", +"................", +"..bbbbbbbbbbbb..", +"..bbbbbbbbbbbb..", +"..bbbbbbbbbbbb..", +"..bbb......bbb..", +"..bbb......bbb..", +"..bbb......bbb..", +"..bbb......bbb..", +"..bbb......bbb..", +"..bbb......bbb..", +"..bbbbbbbbbbbb..", +"..bbbbbbbbbbbb..", +"..bbbbbbbbbbbb..", +"................", +"................"}; + +const char* green_icon[]={ +"16 16 2 1", +"g c green", +". c None", +"................", +"................", +"..gggggggggggg..", +"..gggggggggggg..", +"..gggggggggggg..", +"..ggg......ggg..", +"..ggg......ggg..", +"..ggg......ggg..", +"..ggg......ggg..", +"..ggg......ggg..", +"..ggg......ggg..", +"..gggggggggggg..", +"..gggggggggggg..", +"..gggggggggggg..", +"................", +"................"}; + + +// ListBox -- low level drag and drop + +DDListBox::DDListBox( TQWidget * parent, const char * name, WFlags f ) : + TQListBox( parent, name, f ) +{ + setAcceptDrops( TRUE ); + dragging = FALSE; +} + + +void DDListBox::dragEnterEvent( TQDragEnterEvent *evt ) +{ + if ( TQTextDrag::canDecode( evt ) ) + evt->accept(); +} + + +void DDListBox::dropEvent( TQDropEvent *evt ) +{ + TQString text; + + if ( TQTextDrag::decode( evt, text ) ) + insertItem( text ); +} + + +void DDListBox::mousePressEvent( TQMouseEvent *evt ) +{ + TQListBox::mousePressEvent( evt ); + dragging = TRUE; +} + + +void DDListBox::mouseMoveEvent( TQMouseEvent * ) +{ + if ( dragging ) { + TQDragObject *d = new TQTextDrag( currentText(), this ); + d->dragCopy(); // do NOT delete d. + dragging = FALSE; + } +} + + +// IconViewIcon -- high level drag and drop + + +bool DDIconViewItem::acceptDrop( const TQMimeSource *mime ) const +{ + if ( mime->provides( "text/plain" ) ) + return TRUE; + return FALSE; +} + + +void DDIconViewItem::dropped( TQDropEvent *evt, const TQValueList<TQIconDragItem>& ) +{ + TQString label; + + if ( TQTextDrag::decode( evt, label ) ) + setText( label ); +} + + +// IconView -- high level drag and drop + +TQDragObject *DDIconView::dragObject() +{ + return new TQTextDrag( currentItem()->text(), this ); +} + +void DDIconView::slotNewItem( TQDropEvent *evt, const TQValueList<TQIconDragItem>& ) +{ + TQString label; + + if ( TQTextDrag::decode( evt, label ) ) { + DDIconViewItem *item = new DDIconViewItem( this, label ); + item->setRenameEnabled( TRUE ); + } +} + + + +int main( int argc, char *argv[] ) +{ + TQApplication app( argc, argv ); + + // Create and show the widgets + TQSplitter *split = new TQSplitter(); + DDIconView *iv = new DDIconView( split ); + (void) new DDListBox( split ); + app.setMainWidget( split ); + split->resize( 600, 400 ); + split->show(); + + // Set up the connection so that we can drop items into the icon view + TQObject::connect( + iv, SIGNAL(dropped(TQDropEvent*, const TQValueList<TQIconDragItem>&)), + iv, SLOT(slotNewItem(TQDropEvent*, const TQValueList<TQIconDragItem>&))); + + // Populate the TQIconView with icons + DDIconViewItem *item; + item = new DDIconViewItem( iv, "Red", TQPixmap( red_icon ) ); + item->setRenameEnabled( TRUE ); + item = new DDIconViewItem( iv, "Green", TQPixmap( green_icon ) ); + item->setRenameEnabled( TRUE ); + item = new DDIconViewItem( iv, "Blue", TQPixmap( blue_icon ) ); + item->setRenameEnabled( TRUE ); + + return app.exec(); +} + + diff --git a/examples/iconview/simple_dd/main.h b/examples/iconview/simple_dd/main.h new file mode 100644 index 000000000..062d47f78 --- /dev/null +++ b/examples/iconview/simple_dd/main.h @@ -0,0 +1,60 @@ +/**************************************************************************** +** +** Copyright (C) 1992-2008 Trolltech ASA. All rights reserved. +** +** This file is part of an example program for TQt. This example +** program may be used, distributed and modified without limitation. +** +*****************************************************************************/ + +#include <qapplication.h> +#include <qcursor.h> +#include <qsplitter.h> +#include <qlistbox.h> +#include <qiconview.h> +#include <qpixmap.h> + +class TQDragEnterEvent; +class TQDragDropEvent; + + +class DDListBox : public TQListBox +{ + Q_OBJECT +public: + DDListBox( TQWidget * parent = 0, const char * name = 0, WFlags f = 0 ); + // Low-level drag and drop + void dragEnterEvent( TQDragEnterEvent *evt ); + void dropEvent( TQDropEvent *evt ); + void mousePressEvent( TQMouseEvent *evt ); + void mouseMoveEvent( TQMouseEvent * ); +private: + int dragging; +}; + + +class DDIconViewItem : public TQIconViewItem +{ +public: + DDIconViewItem( TQIconView *parent, const TQString& text, const TQPixmap& icon ) : + TQIconViewItem( parent, text, icon ) {} + DDIconViewItem( TQIconView *parent, const TQString &text ) : + TQIconViewItem( parent, text ) {} + // High-level drag and drop + bool acceptDrop( const TQMimeSource *mime ) const; + void dropped( TQDropEvent *evt, const TQValueList<TQIconDragItem>& ); +}; + + +class DDIconView : public TQIconView +{ + Q_OBJECT +public: + DDIconView( TQWidget * parent = 0, const char * name = 0, WFlags f = 0 ) : + TQIconView( parent, name, f ) {} + // High-level drag and drop + TQDragObject *dragObject(); +public slots: + void slotNewItem( TQDropEvent *evt, const TQValueList<TQIconDragItem>& list ); +}; + diff --git a/examples/iconview/simple_dd/simple_dd.doc b/examples/iconview/simple_dd/simple_dd.doc new file mode 100644 index 000000000..257059366 --- /dev/null +++ b/examples/iconview/simple_dd/simple_dd.doc @@ -0,0 +1,29 @@ +/*! \page simple_dd-example.html + + \ingroup examples + \title Drag and Drop (Simple) + + This provides a very simple example of Qt's drag and drop + functionality. + + For a more complete example see the \link dragdrop-example.html + Drag and Drop example\endlink. + + + <hr> + + Header file: + + \include iconview/simple_dd/main.h + + <hr> + + Implementation: + + \include iconview/simple_dd/main.cpp + +*/ + + + + diff --git a/examples/iconview/simple_dd/simple_dd.pro b/examples/iconview/simple_dd/simple_dd.pro new file mode 100644 index 000000000..5ccef9c6c --- /dev/null +++ b/examples/iconview/simple_dd/simple_dd.pro @@ -0,0 +1,10 @@ +TEMPLATE = app + +CONFIG += qt warn_on release + +REQUIRES = full-config + +HEADERS = main.h +SOURCES = main.cpp + + |