Salome HOME
no message
[modules/gui.git] / src / ObjBrowser / OB_ListItem.h
1 #ifndef OB_LISTITEM_H
2 #define OB_LISTITEM_H
3
4 #include "OB.h"
5
6 #include <qlistview.h>
7
8 class SUIT_DataObject;
9
10 /* 
11   base template class for ListViewItems and CheckListItems
12 */
13
14 template<class T> class ListItem : public T
15 {
16 public:
17   ListItem( SUIT_DataObject*, QListView* );
18   ListItem( SUIT_DataObject*, QListViewItem* );
19   ListItem( SUIT_DataObject*, QListView*, QListViewItem* );
20   ListItem( SUIT_DataObject*, QListViewItem*, QListViewItem* );
21
22   ListItem( SUIT_DataObject*, QListView*, int );
23   ListItem( SUIT_DataObject*, QListViewItem*, int );
24   ListItem( SUIT_DataObject*, QListView*, QListViewItem*, int );
25   ListItem( SUIT_DataObject*, QListViewItem*, QListViewItem*, int );
26
27   virtual void            setSelected( bool s );
28   inline SUIT_DataObject* dataObject() const { return myObject; }
29   virtual void            paintFocus( QPainter* p, const QColorGroup& cg, const QRect& r );
30   virtual void            paintCell( QPainter* p, const QColorGroup& cg, int c, int w, int align );
31
32 private:
33   void                     update();
34
35 private:
36   SUIT_DataObject* myObject;
37 };
38
39 /* 
40    ListViewItem class
41 */
42
43 class OB_EXPORT OB_ListItem : public ListItem<QListViewItem>
44 {
45 public:
46         OB_ListItem( SUIT_DataObject*, QListView* );
47         OB_ListItem( SUIT_DataObject*, QListViewItem* );
48         OB_ListItem( SUIT_DataObject*, QListView*, QListViewItem* );
49         OB_ListItem( SUIT_DataObject*, QListViewItem*, QListViewItem* );
50
51         virtual ~OB_ListItem();
52
53   virtual int      rtti() const;
54
55   static int       RTTI();
56 };
57
58 /* 
59    CheckListItem class
60 */
61
62 class OB_EXPORT OB_CheckListItem : public ListItem<QCheckListItem>
63 {
64 public:
65   OB_CheckListItem( SUIT_DataObject*, QListView*, Type = CheckBox );
66   OB_CheckListItem( SUIT_DataObject*, QListViewItem*, Type = CheckBox );
67   OB_CheckListItem( SUIT_DataObject*, QListView*, QListViewItem*, Type = CheckBox );
68   OB_CheckListItem( SUIT_DataObject*, QListViewItem*, QListViewItem*, Type = CheckBox );
69
70   virtual ~OB_CheckListItem();
71
72   virtual int      rtti() const;
73
74   static int       RTTI();
75
76 protected:
77   void             stateChange( bool );
78
79 private:
80   void             update();
81 };
82
83 #endif