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.
tqt3/examples/fileiconview/qfileiconview.h

171 lines
4.0 KiB

/****************************************************************************
**
** 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.
**
*****************************************************************************/
#ifndef TQTFILEICONVIEW_H
#define TQTFILEICONVIEW_H
#include <qiconset.h>
#include <qstring.h>
#include <qfileinfo.h>
#include <qdir.h>
#include <qtimer.h>
#include <qiconview.h>
class TQtFileIconView;
class TQDragObject;
class TQResizeEvent;
/*****************************************************************************
*
* Class TQtFileIconDrag
*
*****************************************************************************/
class TQtFileIconDrag : public TQIconDrag
{
Q_OBJECT
public:
TQtFileIconDrag( TQWidget * dragSource, const char* name = 0 );
const char* format( int i ) const;
TQByteArray encodedData( const char* mime ) const;
static bool canDecode( TQMimeSource* e );
void append( const TQIconDragItem &item, const TQRect &pr, const TQRect &tr, const TQString &url );
private:
TQStringList urls;
};
/*****************************************************************************
*
* Class TQtFileIconView
*
*****************************************************************************/
class TQtFileIconViewItem;
class TQtFileIconView : public TQIconView
{
Q_OBJECT
public:
TQtFileIconView( const TQString &dir, TQWidget *parent = 0, const char *name = 0 );
enum ViewMode { Large, Small };
void setViewMode( ViewMode m );
ViewMode viewMode() const { return vm; }
void setOpenItem( TQtFileIconViewItem *i ) {
openItem = i;
}
public slots:
void setDirectory( const TQString &dir );
void setDirectory( const TQDir &dir );
void newDirectory();
TQDir currentDir();
signals:
void directoryChanged( const TQString & );
void startReadDir( int dirs );
void readNextDir();
void readDirDone();
void enableUp();
void disableUp();
void enableMkdir();
void disableMkdir();
protected slots:
void itemDoubleClicked( TQIconViewItem *i );
void slotDropped( TQDropEvent *e, const TQValueList<TQIconDragItem> & );
void viewLarge();
void viewSmall();
void viewBottom();
void viewRight();
void flowEast();
void flowSouth();
void itemTextTruncate();
void itemTextWordWrap();
void sortAscending();
void sortDescending();
void arrangeItemsInGrid() {
TQIconView::arrangeItemsInGrid( TRUE );
}
void slotRightPressed( TQIconViewItem *item );
void openFolder();
protected:
void readDir( const TQDir &dir );
virtual TQDragObject *dragObject();
virtual void keyPressEvent( TQKeyEvent *e );
TQDir viewDir;
int newFolderNum;
TQSize sz;
TQPixmap pix;
ViewMode vm;
TQtFileIconViewItem *openItem;
};
/*****************************************************************************
*
* Class TQtFileIconViewItem
*
*****************************************************************************/
class TQtFileIconViewItem : public TQIconViewItem
{
friend class TQtFileIconView;
public:
enum ItemType {
File = 0,
Dir,
Link
};
TQtFileIconViewItem( TQtFileIconView *parent, TQFileInfo *fi );
virtual ~TQtFileIconViewItem();
ItemType type() const
{ return itemType; }
TQString filename() const { return itemFileName; }
virtual bool acceptDrop( const TQMimeSource *e ) const;
virtual void setText( const TQString &text );
virtual TQPixmap *pixmap() const;
virtual void dragEntered();
virtual void dragLeft();
void viewModeChanged( TQtFileIconView::ViewMode m );
void paintItem( TQPainter *p, const TQColorGroup &cg );
protected:
virtual void dropped( TQDropEvent *e, const TQValueList<TQIconDragItem> & );
TQString itemFileName;
TQFileInfo *itemFileInfo;
ItemType itemType;
bool checkSetText;
TQTimer timer;
TQtFileIconView::ViewMode vm;
};
#endif