Main Page   Modules   Class Hierarchy   Alphabetical List   Compound List   File List   Compound Members   Related Pages   Examples  

qdbtselection.h

00001 #ifndef _QDBTSELECTION_H
00002 #define _QDBTSELECTION_H
00003 
00004 #include <qobject.h>
00005 #include <qvaluelist.h>
00006 
00007 #include <qdbt/qdbtglobal.h>
00008 
00009 class QdbtBaseTabular;
00010 class QKeyEvent;
00011 class QMouseEvent;
00012 class QdbtPImpl;
00013 
00014 class QDBT_EXPORT QdbtSelection : public QObject
00015 {
00016   Q_OBJECT
00017   
00018   QdbtSelection( const QdbtSelection & );
00019   void operator=( const QdbtSelection & );
00020 
00021   QdbtPImpl *_pimpl;
00022 
00023 public:
00024   virtual ~QdbtSelection();
00025 
00026   enum change_t
00027   {
00028     SINGLE_ROW_INSERT,
00029     SINGLE_ROW_DELETE,
00030     SINGLE_COL_INSERT,
00031     SINGLE_COL_DELETE,
00032     DIMENSION_SET
00033   };
00034 
00035   virtual bool cellSelected( int row, int col ) = 0;
00036   virtual bool cellSelectable( int row, int col ) = 0;
00037   virtual void setCellSelected( int row, int col, bool sel ) = 0;
00038   virtual void setCellSelectable( int row, int col, bool sel ) = 0;
00039   virtual void setSelection( bool state );
00040   virtual void tableChanged( change_t op, int row, int col );
00041   virtual void keyEvent( QKeyEvent &, int row, int col );
00042   virtual void mouseEvent( QMouseEvent &, int row, int col );
00043   virtual void dump();
00044   
00045 signals:
00046   void signalCellSelected( int, int, bool );
00047   void signalRowSelected( int, bool );
00048   
00049 protected:
00050   QdbtSelection( QdbtBaseTabular *t );
00051   void repaintCell( int row, int col );
00052   QdbtBaseTabular *context() const;
00053 
00054 private slots:
00055   void slotCheckCellSelect( int, int, bool );
00056   void slotCheckRowSelect( int, bool );
00057   
00077 };
00078 
00079 class QDBT_EXPORT QdbtSingleCellSelection : public QdbtSelection
00080 {
00081   Q_OBJECT
00082 
00084   typedef QValueList< bool > row_t;
00085   QValueList< row_t > _selectable;
00086   int  _rows;
00087   int  _cols;
00088   int  _rowSelected, _colSelected;
00089   
00090 public:
00091   QdbtSingleCellSelection( QdbtBaseTabular * );
00092   virtual ~QdbtSingleCellSelection();
00093 
00094   virtual bool cellSelected( int row, int col );
00095   virtual bool cellSelectable( int row, int col );
00096   virtual void setCellSelected( int row, int col, bool sel );
00097   virtual void setCellSelectable( int row, int col, bool sel );
00098 
00099   virtual void tableChanged( change_t op, int row, int col );
00100   virtual void keyEvent( QKeyEvent &, int row, int col );
00101   virtual void mouseEvent( QMouseEvent &, int row, int col );
00102 
00119 };
00120 
00121 class QDBT_EXPORT QdbtCellSelection : public QdbtSelection
00122 {
00123   Q_OBJECT
00124 
00126   typedef QValueList< bool > row_t;
00127   QValueList< row_t > _selection, _selectable;
00128   int  _rows;
00129   int  _cols;
00130   int  _dragStartRow, _dragStartCol;
00131   bool _selectionForDrag;
00132   
00133 public:
00134   QdbtCellSelection( QdbtBaseTabular * );
00135   virtual ~QdbtCellSelection();
00136 
00137   virtual bool cellSelected( int row, int col );
00138   virtual bool cellSelectable( int row, int col );
00139   virtual void setCellSelected( int row, int col, bool sel );
00140   virtual void setCellSelectable( int row, int col, bool sel );
00141 
00142   virtual void tableChanged( change_t op, int row, int col );
00143   virtual void keyEvent( QKeyEvent &, int row, int col );
00144   virtual void mouseEvent( QMouseEvent &, int row, int col );
00145 
00169 };
00170 
00171 class QDBT_EXPORT QdbtRowSelection : public QdbtSelection
00172 {
00173   Q_OBJECT
00174 
00175   QValueList< bool > _selection;
00176   QValueList< bool > _selectable;
00177   int  _rows;
00178   int  _dragStart;
00179   bool _selectionForDrag;
00180 public:
00181   QdbtRowSelection( QdbtBaseTabular * );
00182   virtual ~QdbtRowSelection();
00183 
00184   virtual bool cellSelected( int row, int col );
00185   virtual bool cellSelectable( int row, int col );
00186   virtual void setCellSelected( int row, int col, bool sel );
00187   virtual void setCellSelectable( int row, int col, bool sel );
00188 
00189   virtual void tableChanged( change_t op, int row, int col );
00190   virtual void keyEvent( QKeyEvent &, int row, int col );
00191   virtual void mouseEvent( QMouseEvent &, int row, int col );
00192 protected:
00193   virtual void dump();
00194 
00195   bool rowSelection( int row ) const;
00196   bool rowSelectable( int row ) const;
00197   void setRowSelection( int row, bool selection );
00198   void setRowSelectable( int row, bool selection );
00199   void toggleRowSelection( int row );
00200 
00217 };
00218 
00219 class QDBT_EXPORT QdbtSingleRowSelection : public QdbtSelection
00220 {
00221   Q_OBJECT
00222 
00223   int  _currentSelection;
00224   int  _rows;
00225   QValueList< bool > _selectable;
00226 public:
00227   QdbtSingleRowSelection( QdbtBaseTabular * );
00228   virtual ~QdbtSingleRowSelection();
00229 
00230   virtual bool cellSelected( int row, int col );
00231   virtual bool cellSelectable( int row, int col );
00232   virtual void setCellSelected( int row, int col, bool sel );
00233   virtual void setCellSelectable( int row, int col, bool sel );
00234 
00235   virtual void tableChanged( change_t op, int row, int col );
00236   virtual void keyEvent( QKeyEvent &, int row, int col );
00237   virtual void mouseEvent( QMouseEvent &, int row, int col );
00238 protected:
00239   virtual void dump();
00240 
00241   bool rowSelection( int row ) const;
00242   bool rowSelectable( int row ) const;
00243   int rowSelected() const;
00244   void setRowSelection( int row, bool selection );
00245   void setRowSelection( int row, bool selection, bool force );
00246   void setRowSelectable( int row, bool selection );
00247 
00258 };
00259 
00260 
00261 
00262 #endif

Generated on Mon Apr 22 12:21:54 2002 for QdbtTabular by doxygen1.2.15-20020421