Salome HOME
Initial version
[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 public:
16   ListItem( SUIT_DataObject*, QListView* );
17   ListItem( SUIT_DataObject*, QListViewItem* );
18   ListItem( SUIT_DataObject*, QListView*, QListViewItem* );
19   ListItem( SUIT_DataObject*, QListViewItem*, QListViewItem* );
20
21   ListItem( SUIT_DataObject*, QListView*, int );
22   ListItem( SUIT_DataObject*, QListViewItem*, int );
23   ListItem( SUIT_DataObject*, QListView*, QListViewItem*, int );
24   ListItem( SUIT_DataObject*, QListViewItem*, QListViewItem*, int );
25
26   virtual void paintCell( QPainter* p, const QColorGroup& cg, int c, int w, int align );
27
28   virtual void paintFocus( QPainter* p, const QColorGroup& cg, const QRect& r );
29
30   inline SUIT_DataObject* dataObject() const
31   { return myObject; }
32
33 private:
34   void             update();
35
36 private:
37   SUIT_DataObject* myObject;
38 };
39
40 /* 
41    ListViewItem class
42 */
43
44 class OB_EXPORT OB_ListItem : public ListItem<QListViewItem>
45 {
46 public:
47         OB_ListItem( SUIT_DataObject*, QListView* );
48         OB_ListItem( SUIT_DataObject*, QListViewItem* );
49         OB_ListItem( SUIT_DataObject*, QListView*, QListViewItem* );
50         OB_ListItem( SUIT_DataObject*, QListViewItem*, QListViewItem* );
51
52         virtual ~OB_ListItem();
53
54   virtual int      rtti() const;
55
56   static int       RTTI();
57 };
58
59 /* 
60    CheckListItem class
61 */
62
63 class OB_EXPORT OB_CheckListItem : public ListItem<QCheckListItem>
64 {
65 public:
66   OB_CheckListItem( SUIT_DataObject*, QListView*, Type = CheckBox );
67   OB_CheckListItem( SUIT_DataObject*, QListViewItem*, Type = CheckBox );
68   OB_CheckListItem( SUIT_DataObject*, QListView*, QListViewItem*, Type = CheckBox );
69   OB_CheckListItem( SUIT_DataObject*, QListViewItem*, QListViewItem*, Type = CheckBox );
70
71   virtual ~OB_CheckListItem();
72
73   virtual int      rtti() const;
74
75   static int       RTTI();
76
77 protected:
78   void             stateChange( bool );
79
80 private:
81   void             update();
82 };
83
84 #endif