Salome HOME
Splash screen was implemented. Changes in packages SUIT and Session are integrated.
[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 ListItem : public T
16 {
17 public:
18   ListItem( SUIT_DataObject*, QListView* );
19   ListItem( SUIT_DataObject*, QListViewItem* );
20   ListItem( SUIT_DataObject*, QListView*, QListViewItem* );
21   ListItem( SUIT_DataObject*, QListViewItem*, QListViewItem* );
22
23   ListItem( SUIT_DataObject*, QListView*, int );
24   ListItem( SUIT_DataObject*, QListViewItem*, int );
25   ListItem( SUIT_DataObject*, QListView*, QListViewItem*, int );
26   ListItem( SUIT_DataObject*, QListViewItem*, QListViewItem*, int );
27
28   virtual void            setSelected( bool s );
29   inline SUIT_DataObject* dataObject() const { return myObject; }
30   virtual void            paintFocus( QPainter* p, const QColorGroup& cg, const QRect& r );
31   virtual void            paintCell( QPainter* p, const QColorGroup& cg, int c, int w, int align );
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