summaryrefslogtreecommitdiffstats
path: root/examples/listviews/listviews.h
diff options
context:
space:
mode:
authorTimothy Pearson <[email protected]>2011-07-10 15:24:15 -0500
committerTimothy Pearson <[email protected]>2011-07-10 15:24:15 -0500
commitbd0f3345a938b35ce6a12f6150373b0955b8dd12 (patch)
tree7a520322212d48ebcb9fbe1087e7fca28b76185c /examples/listviews/listviews.h
downloadqt3-bd0f3345a938b35ce6a12f6150373b0955b8dd12.tar.gz
qt3-bd0f3345a938b35ce6a12f6150373b0955b8dd12.zip
Add Qt3 development HEAD version
Diffstat (limited to 'examples/listviews/listviews.h')
-rw-r--r--examples/listviews/listviews.h166
1 files changed, 166 insertions, 0 deletions
diff --git a/examples/listviews/listviews.h b/examples/listviews/listviews.h
new file mode 100644
index 0000000..94a30ee
--- /dev/null
+++ b/examples/listviews/listviews.h
@@ -0,0 +1,166 @@
+/****************************************************************************
+**
+** Copyright (C) 1992-2008 Trolltech ASA. All rights reserved.
+**
+** This file is part of an example program for Qt. This example
+** program may be used, distributed and modified without limitation.
+**
+*****************************************************************************/
+
+#ifndef LISTVIEWS_H
+#define LISTVIEWS_H
+
+#include <qsplitter.h>
+#include <qstring.h>
+#include <qobject.h>
+#include <qdatetime.h>
+#include <qptrlist.h>
+#include <qlistview.h>
+
+class QListView;
+class QLabel;
+class QPainter;
+class QColorGroup;
+class QObjectList;
+class QPopupMenu;
+
+// -----------------------------------------------------------------
+
+class MessageHeader
+{
+public:
+ MessageHeader( const QString &_sender, const QString &_subject, const QDateTime &_datetime )
+ : msender( _sender ), msubject( _subject ), mdatetime( _datetime )
+ {}
+
+ MessageHeader( const MessageHeader &mh );
+ MessageHeader &operator=( const MessageHeader &mh );
+
+ QString sender() { return msender; }
+ QString subject() { return msubject; }
+ QDateTime datetime() { return mdatetime; }
+
+protected:
+ QString msender, msubject;
+ QDateTime mdatetime;
+
+};
+
+// -----------------------------------------------------------------
+
+class Message
+{
+public:
+ enum State { Read = 0,
+ Unread};
+
+ Message( const MessageHeader &mh, const QString &_body )
+ : mheader( mh ), mbody( _body ), mstate( Unread )
+ {}
+
+ Message( const Message &m )
+ : mheader( m.mheader ), mbody( m.mbody ), mstate( m.mstate )
+ {}
+
+ MessageHeader header() { return mheader; }
+ QString body() { return mbody; }
+
+ void setState( const State &s ) { mstate = s; }
+ State state() { return mstate; }
+
+protected:
+ MessageHeader mheader;
+ QString mbody;
+ State mstate;
+
+};
+
+// -----------------------------------------------------------------
+
+class Folder : public QObject
+{
+ Q_OBJECT
+
+public:
+ Folder( Folder *parent, const QString &name );
+ ~Folder()
+ {}
+
+ void addMessage( Message *m )
+ { lstMessages.append( m ); }
+
+ QString folderName() { return fName; }
+
+ Message *firstMessage() { return lstMessages.first(); }
+ Message *nextMessage() { return lstMessages.next(); }
+
+protected:
+ QString fName;
+ QPtrList<Message> lstMessages;
+
+};
+
+// -----------------------------------------------------------------
+
+class FolderListItem : public QListViewItem
+{
+public:
+ FolderListItem( QListView *parent, Folder *f );
+ FolderListItem( FolderListItem *parent, Folder *f );
+
+ void insertSubFolders( const QObjectList *lst );
+
+ Folder *folder() { return myFolder; }
+
+protected:
+ Folder *myFolder;
+
+};
+
+// -----------------------------------------------------------------
+
+class MessageListItem : public QListViewItem
+{
+public:
+ MessageListItem( QListView *parent, Message *m );
+
+ virtual void paintCell( QPainter *p, const QColorGroup &cg,
+ int column, int width, int alignment );
+
+ Message *message() { return myMessage; }
+
+protected:
+ Message *myMessage;
+
+};
+
+// -----------------------------------------------------------------
+
+class ListViews : public QSplitter
+{
+ Q_OBJECT
+
+public:
+ ListViews( QWidget *parent = 0, const char *name = 0 );
+ ~ListViews()
+ {}
+
+protected:
+ void initFolders();
+ void initFolder( Folder *folder, unsigned int &count );
+ void setupFolders();
+
+ QListView *messages, *folders;
+ QLabel *message;
+ QPopupMenu* menu;
+
+ QPtrList<Folder> lstFolders;
+
+protected slots:
+ void slotFolderChanged( QListViewItem* );
+ void slotMessageChanged();
+ void slotRMB( QListViewItem*, const QPoint &, int );
+
+};
+
+#endif