home *** CD-ROM | disk | FTP | other *** search
/ OS/2 Shareware BBS: 10 Tools / 10-Tools.zip / qt3_emx.zip / examples / dirview / dirview.h < prev    next >
C/C++ Source or Header  |  2001-10-11  |  3KB  |  106 lines

  1. /****************************************************************************
  2. ** $Id:  qt/dirview.h   3.0.0   edited Jul 16 23:07 $
  3. **
  4. ** Copyright (C) 1992-2000 Trolltech AS.  All rights reserved.
  5. **
  6. ** This file is part of an example program for Qt.  This example
  7. ** program may be used, distributed and modified without limitation.
  8. **
  9. *****************************************************************************/
  10.  
  11. #ifndef DIRVIEW_H
  12. #define DIRVIEW_H
  13.  
  14. #include <qlistview.h>
  15. #include <qstring.h>
  16. #include <qfile.h>
  17. #include <qfileinfo.h>
  18. #include <qtimer.h>
  19.  
  20. class QWidget;
  21. class QDragEnterEvent;
  22. class QDragMoveEvent;
  23. class QDragLeaveEvent;
  24. class QDropEvent;
  25.  
  26. class FileItem : public QListViewItem
  27. {
  28. public:
  29.     FileItem( QListViewItem *parent, const QString &s1, const QString &s2 )
  30.     : QListViewItem( parent, s1, s2 ), pix( 0 ) {}
  31.  
  32.     const QPixmap *pixmap( int i ) const;
  33.     void setPixmap( QPixmap *p );
  34.  
  35. private:
  36.     QPixmap *pix;
  37.  
  38. };
  39.  
  40. class Directory : public QListViewItem
  41. {
  42. public:
  43.     Directory( QListView * parent, const QString& filename );
  44.     Directory( Directory * parent, const QString& filename, const QString &col2 )
  45.     : QListViewItem( parent, filename, col2 ), pix( 0 ) {}
  46.     Directory( Directory * parent, const QString& filename );
  47.  
  48.     QString text( int column ) const;
  49.  
  50.     QString fullName();
  51.  
  52.     void setOpen( bool );
  53.     void setup();
  54.  
  55.     const QPixmap *pixmap( int i ) const;
  56.     void setPixmap( QPixmap *p );
  57.  
  58. private:
  59.     QFile f;
  60.     Directory * p;
  61.     bool readable;
  62.     bool showDirsOnly;
  63.     QPixmap *pix;
  64.  
  65. };
  66.  
  67. class DirectoryView : public QListView
  68. {
  69.     Q_OBJECT
  70.  
  71. public:
  72.     DirectoryView( QWidget *parent = 0, const char *name = 0, bool sdo = FALSE );
  73.     bool showDirsOnly() { return dirsOnly; }
  74.  
  75. public slots:
  76.     void setDir( const QString & );
  77.  
  78. signals:
  79.     void folderSelected( const QString & );
  80.  
  81. protected slots:
  82.     void slotFolderSelected( QListViewItem * );
  83.     void openFolder();
  84.  
  85. protected:
  86.     void contentsDragEnterEvent( QDragEnterEvent *e );
  87.     void contentsDragMoveEvent( QDragMoveEvent *e );
  88.     void contentsDragLeaveEvent( QDragLeaveEvent *e );
  89.     void contentsDropEvent( QDropEvent *e );
  90.     void contentsMouseMoveEvent( QMouseEvent *e );
  91.     void contentsMousePressEvent( QMouseEvent *e );
  92.     void contentsMouseReleaseEvent( QMouseEvent *e );
  93.  
  94. private:
  95.     QString fullPath(QListViewItem* item);
  96.     bool dirsOnly;
  97.     QListViewItem *oldCurrent;
  98.     QListViewItem *dropItem;
  99.     QTimer* autoopen_timer;
  100.     QPoint presspos;
  101.     bool mousePressed;
  102.  
  103. };
  104.  
  105. #endif
  106.