]> SALOME platform Git repositories - modules/gui.git/commitdiff
Salome HOME
ENV: Windows porting.
authorenv <env@opencascade.com>
Fri, 9 Sep 2005 05:25:28 +0000 (05:25 +0000)
committerenv <env@opencascade.com>
Fri, 9 Sep 2005 05:25:28 +0000 (05:25 +0000)
src/ObjBrowser/OB_ListItem.cxx
src/ObjBrowser/OB_ListItem.h

index 570d3a9e1de2d1bf54d3c4263315ad2ab0c92b83..b3e4badabaf68098a03ecf55341277db862b4688 100755 (executable)
@@ -7,84 +7,23 @@
 #include <qpainter.h>
 #include <qwmatrix.h>
 
+#include <iostream>
+using namespace std;
+
 /*!
     Class: ListItem
     Descr: base template class
 */
-template<class T>
-ListItem<T>::ListItem( SUIT_DataObject* obj, QListView* parent )
-: T( parent ),
-myObject( obj )
-{
-  update();
-}
-
-template<class T>
-ListItem<T>::ListItem( SUIT_DataObject* obj, QListViewItem* parent )
-: T( parent ),
-myObject( obj )
-{
-  update();
-}
-
-template<class T>
-ListItem<T>::ListItem( SUIT_DataObject* obj, QListView* parent, QListViewItem* after )
-: T( parent, after ),
-myObject( obj )
-{
-  update();
-}
 
 template<class T>
-ListItem<T>::ListItem( SUIT_DataObject* obj, QListViewItem* parent, QListViewItem* after )
-: T( parent, after ),
+ListItemF<T>::ListItemF(T& theT, SUIT_DataObject* obj) :
+myT(theT),
 myObject( obj )
 {
-  update();
 }
 
 template<class T>
-ListItem<T>::ListItem( SUIT_DataObject* obj, QListView* parent, int type )
-: T( parent, "", (typename T::Type)type ),
-myObject( obj )
-{
-  update();
-}
-
-template<class T>
-ListItem<T>::ListItem( SUIT_DataObject* obj, QListViewItem* parent, int type )
-: T( parent, "", (typename T::Type)type ),
-myObject( obj )
-{
-  update();
-}
-
-template<class T>
-ListItem<T>::ListItem( SUIT_DataObject* obj, QListView* parent, QListViewItem* after, int type )
-#if defined(QT_VERSION) && QT_VERSION >= 0x030101
-: T( parent, after, "", (typename T::Type)type ),
-#else
-: T( parent, "", (typename T::Type)type ),
-#endif
-myObject( obj )
-{
-  update();
-}
-
-template<class T>
-ListItem<T>::ListItem( SUIT_DataObject* obj, QListViewItem* parent, QListViewItem* after, int type )
-#if defined(QT_VERSION) && QT_VERSION >= 0x030101
-: T( parent, after, "", (typename T::Type)type ),
-#else
-: T( parent, "", (typename T::Type)type ),
-#endif
-myObject( obj )
-{
-  update();
-}
-
-template<class T>
-void ListItem<T>::paintCell( QPainter* p, const QColorGroup& cg, int c, int w, int align )
+void ListItemF<T>::paintC( QPainter* p, const QColorGroup& cg, int c, int w, int align )
 { 
   QColorGroup colorGrp( cg );
   if ( myObject )
@@ -104,41 +43,41 @@ void ListItem<T>::paintCell( QPainter* p, const QColorGroup& cg, int c, int w, i
   }
 
   
-  p->fillRect( 0, 0, w, this->height(), colorGrp.brush( QColorGroup::Base ) );
-  int itemW = width( p->fontMetrics(), this->listView(), c );
+  p->fillRect( 0, 0, w, myT.height(), colorGrp.brush( QColorGroup::Base ) );
+  int itemW = myT.width( p->fontMetrics(), myT.listView(), c );
     
-  T::paintCell( p, colorGrp, c, itemW,  align );
+  //myT.paintCell( p, colorGrp, c, itemW,  align );
 }
 
 template<class T>
-void ListItem<T>::paintFocus( QPainter* p, const QColorGroup& cg, const QRect& r )
+void ListItemF<T>::paintFoc( QPainter* p, const QColorGroup& cg, const QRect& r )
 {
   QRect rect = r;
-  rect.setWidth( width( p->fontMetrics(), this->listView(), 0 ) );
-  T::paintFocus( p, cg, rect );
+  rect.setWidth( myT.width( p->fontMetrics(), myT.listView(), 0 ) );
+  //myT.paintFocus( p, cg, rect );
 }
 
 template<class T>
-void ListItem<T>::setSelected( bool s )
+void ListItemF<T>::setSel( bool s )
 {
-  QListView* lv = T::listView();
+  QListView* lv = myT.listView();
   if ( s && lv && lv->inherits( "OB_ListView" ) )
   {
     OB_ListView* objlv = (OB_ListView*)lv;
-    s = s && objlv->isOk( this );
+    s = s && objlv->isOk( &myT );
   }
 
-  QListViewItem::setSelected( s );
+  //myT.setSelected( s );
 }
 
 template<class T>
-void ListItem<T>::update()
+void ListItemF<T>::update()
 {
   SUIT_DataObject* obj = dataObject();
   if ( !obj )
     return;
 
-  setText( 0, obj->name() );
+  myT.setText( 0, obj->name() );
 
   int aIconW = obj->icon().width();
   if ( aIconW > 0 )
@@ -148,14 +87,14 @@ void ListItem<T>::update()
       QWMatrix aM;
       double aScale = 20.0 / aIconW;
       aM.scale( aScale, aScale );
-      setPixmap( 0, obj->icon().xForm( aM ) );
+      myT.setPixmap( 0, obj->icon().xForm( aM ) );
     }
     else
-      setPixmap( 0, obj->icon() );
+      myT.setPixmap( 0, obj->icon() );
   }
 
-  this->setDragEnabled( obj->isDragable() );
-  this->setDropEnabled( true );
+  myT.setDragEnabled( obj->isDragable() );
+  myT.setDropEnabled( true );
 }
 
 /*!
@@ -164,29 +103,55 @@ void ListItem<T>::update()
 */
 
 OB_ListItem::OB_ListItem( SUIT_DataObject* obj, QListView* parent )
-: ListItem<QListViewItem>( obj, parent )
+: ListItemF<QListViewItem>( *this, obj ),
+ QListViewItem(parent)
 {
+       update();
 }
 
 OB_ListItem::OB_ListItem( SUIT_DataObject* obj, QListViewItem* parent )
-: ListItem<QListViewItem>( obj, parent )
+: ListItemF<QListViewItem>( *this, obj),
+ QListViewItem(parent)
 {
+       update();
 }
 
 OB_ListItem::OB_ListItem( SUIT_DataObject* obj, QListView* parent, QListViewItem* after )
-: ListItem<QListViewItem>( obj, parent, after )
+: ListItemF<QListViewItem>( *this, obj),
+QListViewItem(parent, after )
 {
+       update();
 }
 
 OB_ListItem::OB_ListItem( SUIT_DataObject* obj, QListViewItem* parent, QListViewItem* after )
-: ListItem<QListViewItem>( obj, parent, after )
+: ListItemF<QListViewItem>( *this,obj),
+QListViewItem(parent, after )
 {
+       update();
 }
 
 OB_ListItem::~OB_ListItem()
 {
 }
 
+void OB_ListItem::setSelected( bool s ) {
+       cout << "OB_ListItem::setSelected" << endl;
+       setSel(s);
+       QListViewItem::setSelected(s);
+}
+
+void OB_ListItem::paintFocus( QPainter* p, const QColorGroup& cg, const QRect& r ){
+       cout << "OB_ListItem::paintFocus" << endl;
+       paintFoc(p, cg, r);
+       QListViewItem::paintFocus(p, cg, r);
+}
+
+void OB_ListItem::paintCell( QPainter* p, const QColorGroup& cg, int c, int w, int align ) {
+       cout << "OB_ListItem::paintCell" << endl;
+       paintC(p, cg, c ,w, align);
+       QListViewItem::paintCell(p, cg, c, w, align);
+}
+
 int OB_ListItem::RTTI()
 {
   return 1000;
@@ -203,29 +168,63 @@ int OB_ListItem::rtti() const
 */
 
 OB_CheckListItem::OB_CheckListItem( SUIT_DataObject* obj, QListView* parent, Type type )
-: ListItem<QCheckListItem>( obj, parent, type )
+: ListItemF<QCheckListItem>( *this, obj),
+QCheckListItem( parent, "", type )
 {
+       update();
 }
 
 OB_CheckListItem::OB_CheckListItem( SUIT_DataObject* obj, QListViewItem* parent, Type type )
-: ListItem<QCheckListItem>( obj, parent, type )
+: ListItemF<QCheckListItem>( *this, obj),
+QCheckListItem( parent, "", type )
 {
+       update();
 }
 
 OB_CheckListItem::OB_CheckListItem( SUIT_DataObject* obj, QListView* parent, QListViewItem* after, Type type )
-: ListItem<QCheckListItem>( obj, parent, after, type )
+: ListItemF<QCheckListItem>( *this, obj),
+#if defined(QT_VERSION) && QT_VERSION >= 0x030101
+ QCheckListItem( parent, after, "", type )
+#else
+ QCheckListItem( parent, "", type )
+#endif
 {
+       update();
 }
 
 OB_CheckListItem::OB_CheckListItem( SUIT_DataObject* obj, QListViewItem* parent, QListViewItem* after, Type type )
-: ListItem<QCheckListItem>( obj, parent, after, type )
+: ListItemF<QCheckListItem>( *this, obj),
+#if defined(QT_VERSION) && QT_VERSION >= 0x030101
+ QCheckListItem( parent, after, "", type )
+#else
+ QCheckListItem( parent, "", type )
+#endif
 {
+       update();
 }
 
 OB_CheckListItem::~OB_CheckListItem()
 {
 }
 
+void OB_CheckListItem::setSelected( bool s ) {
+       cout << "OB_CheckListItem::setSelected" << endl;
+       setSel(s);
+       QCheckListItem::setSelected(s);
+}
+
+void OB_CheckListItem::paintFocus( QPainter* p, const QColorGroup& cg, const QRect& r ){
+       cout << "OB_CheckListItem::paintFocus" << endl;
+       paintFoc(p, cg, r);
+       QCheckListItem::paintFocus(p, cg, r);
+}
+
+void OB_CheckListItem::paintCell( QPainter* p, const QColorGroup& cg, int c, int w, int align ) {
+       cout << "OB_CheckListItem::paintCell" << endl;
+       paintC(p, cg, c ,w, align);
+       QCheckListItem::paintCell(p, cg, c, w, align);
+}
+
 int OB_CheckListItem::RTTI()
 {
   return OB_ListItem::RTTI() + 1;
index cc789d297191091ac669d1eae0fa994215fe4c7e..efb5b8f2096c54e19970168e09803db0752dde2d 100755 (executable)
@@ -12,10 +12,11 @@ class SUIT_DataObject;
   base template class for ListViewItems and CheckListItems
 */
 
-template<class T> class ListItem : public T
+template<class T> class ListItemF
 {
 public:
-  ListItem( SUIT_DataObject*, QListView* );
+       ListItemF(T&, SUIT_DataObject* );
+  /*ListItem( SUIT_DataObject*, QListView* );
   ListItem( SUIT_DataObject*, QListViewItem* );
   ListItem( SUIT_DataObject*, QListView*, QListViewItem* );
   ListItem( SUIT_DataObject*, QListViewItem*, QListViewItem* );
@@ -23,25 +24,26 @@ public:
   ListItem( SUIT_DataObject*, QListView*, int );
   ListItem( SUIT_DataObject*, QListViewItem*, int );
   ListItem( SUIT_DataObject*, QListView*, QListViewItem*, int );
-  ListItem( SUIT_DataObject*, QListViewItem*, QListViewItem*, int );
+  ListItem( SUIT_DataObject*, QListViewItem*, QListViewItem*, int );*/
 
-  virtual void            setSelected( bool s );
+  void            setSel( bool s );
   inline SUIT_DataObject* dataObject() const { return myObject; }
-  virtual void            paintFocus( QPainter* p, const QColorGroup& cg, const QRect& r );
-  virtual void            paintCell( QPainter* p, const QColorGroup& cg, int c, int w, int align );
+  void            paintFoc( QPainter* p, const QColorGroup& cg, const QRect& r );
+  void            paintC( QPainter* p, const QColorGroup& cg, int c, int w, int align );
 
-private:
+protected:
   void                     update();
 
-private:
+protected:
   SUIT_DataObject* myObject;
+  T& myT;
 };
 
 /* 
    ListViewItem class
 */
 
-class OB_EXPORT OB_ListItem : public ListItem<QListViewItem>
+class OB_EXPORT OB_ListItem : public ListItemF<QListViewItem>, public QListViewItem
 {
 public:
        OB_ListItem( SUIT_DataObject*, QListView* );
@@ -51,6 +53,11 @@ public:
 
        virtual ~OB_ListItem();
 
+  virtual void            setSelected( bool s );
+  virtual void            paintFocus( QPainter* p, const QColorGroup& cg, const QRect& r );
+  virtual void            paintCell( QPainter* p, const QColorGroup& cg, int c, int w, int align );
+
+
   virtual int      rtti() const;
 
   static int       RTTI();
@@ -60,7 +67,7 @@ public:
    CheckListItem class
 */
 
-class OB_EXPORT OB_CheckListItem : public ListItem<QCheckListItem>
+class OB_EXPORT OB_CheckListItem : public ListItemF<QCheckListItem>, public QCheckListItem
 {
 public:
   OB_CheckListItem( SUIT_DataObject*, QListView*, Type = CheckBox );
@@ -70,6 +77,11 @@ public:
 
   virtual ~OB_CheckListItem();
 
+  virtual void            setSelected( bool s );
+  virtual void            paintFocus( QPainter* p, const QColorGroup& cg, const QRect& r );
+  virtual void            paintCell( QPainter* p, const QColorGroup& cg, int c, int w, int align );
+
+
   virtual int      rtti() const;
 
   static int       RTTI();
@@ -77,8 +89,8 @@ public:
 protected:
   void             stateChange( bool );
 
-private:
-  void             update();
+//private:
+//  void             update();
 };
 
 #endif