00001 #ifndef IGUANA_STUDIO_IG_QT_TWIG_BROWSER_H
00002 # define IGUANA_STUDIO_IG_QT_TWIG_BROWSER_H
00003
00004
00005
00006 # include "Iguana/Studio/interface/config.h"
00007 # include "Iguana/Framework/interface/IgBrowser.h"
00008 # include "Iguana/Framework/interface/IgModel.h"
00009 # include <qlistview.h>
00010 # include <qlist.h>
00011 # include <map>
00012
00013
00014
00015
00016
00017 class IgState;
00018 class IgSite;
00019 class IgSelectionMessage;
00020 class IgQtTwigRep;
00021
00022
00023
00024
00025
00026 class IGUANA_STUDIO_API IgQtTwigBrowser : public QListView,
00027 public IgBrowser,
00028 public IgModel
00029 {
00030 Q_OBJECT
00031 public:
00032 IgQtTwigBrowser (IgState *state, IgSite *site);
00033 ~IgQtTwigBrowser (void);
00034
00035 virtual void browse (IgRepresentable *object);
00036
00037
00038
00039
00040 virtual void select (IgQtTwigRep *rep);
00041
00042 static const char * catalogLabel (void);
00043
00045
00046 public slots:
00047
00048
00049
00050 virtual void onSelectionChange (void);
00051 virtual void slotItemChanged (void);
00052 virtual void slotItemRMClicked (void);
00053 virtual void contextMenu (QListViewItem *item, const QPoint &pos,
00054 int col);
00055
00056 protected:
00057
00058 virtual void selectMessage (IgSelectionMessage message);
00059
00060 virtual void resizeEvent (QResizeEvent *e);
00061 virtual void contentsMouseDoubleClickEvent (QMouseEvent *e);
00062 virtual void contentsMousePressEvent (QMouseEvent *e);
00063 virtual void contentsMouseReleaseEvent (QMouseEvent *e);
00064
00065 int isInsideChecker (int x);
00066
00067 private:
00068 QListViewItem * getNextUpItem (QListViewItem *item);
00069 QListViewItem * getNextItem (QListViewItem *item);
00070 QList<IgQtTwigRep> *getSelectedItems (void);
00071 QList<IgQtTwigRep> *getCheckedItems (int column);
00072
00073 IgState *m_state;
00074 bool m_discardRelease;
00075
00076
00077 IgQtTwigBrowser (const IgQtTwigBrowser &);
00078 IgQtTwigBrowser &operator= (const IgQtTwigBrowser &);
00079 };
00080
00081
00082
00083
00084 #endif // IGUANA_STUDIO_IG_QT_TWIG_BROWSER_H