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