kexi
kexirecordnavigator.h00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021 #ifndef KEXIRECORDNAVIGATOR_H
00022 #define KEXIRECORDNAVIGATOR_H
00023
00024 #include <qframe.h>
00025 #include <kexi_export.h>
00026
00027 class QToolButton;
00028 class QIntValidator;
00029 class QScrollView;
00030 class QScrollBar;
00031 class QLabel;
00032 class KLineEdit;
00033 class KexiRecordNavigatorPrivate;
00034
00036 class KEXIGUIUTILS_EXPORT KexiRecordNavigatorHandler
00037 {
00038 public:
00039 KexiRecordNavigatorHandler();
00040 virtual ~KexiRecordNavigatorHandler();
00041
00043 virtual void moveToRecordRequested(uint r) = 0;
00044 virtual void moveToLastRecordRequested() = 0;
00045 virtual void moveToPreviousRecordRequested() = 0;
00046 virtual void moveToNextRecordRequested() = 0;
00047 virtual void moveToFirstRecordRequested() = 0;
00048 virtual void addNewRecordRequested() = 0;
00049 };
00050
00052
00063 class KEXIGUIUTILS_EXPORT KexiRecordNavigator : public QFrame
00064 {
00065 Q_OBJECT
00066
00067 public:
00068 KexiRecordNavigator(QWidget *parent, int leftMargin = 0, const char *name=0);
00069 virtual ~KexiRecordNavigator();
00070
00071 void setParentView(QScrollView *view);
00072
00075 void setRecordHandler(KexiRecordNavigatorHandler *handler);
00076
00078 inline bool isInsertingEnabled() const { return m_isInsertingEnabled; }
00079
00082 uint currentRecordNumber() const;
00083
00085 uint recordCount() const;
00086
00092 void setHBarGeometry( QScrollBar & hbar, int x, int y, int w, int h );
00093
00095 virtual bool eventFilter( QObject *o, QEvent *e );
00096
00099 bool editingIndicatorVisible() const;
00100
00103 bool editingIndicatorEnabled() const;
00104
00105 public slots:
00107 void setInsertingEnabled(bool set);
00108
00110 void setInsertingButtonVisible(bool set);
00111
00117 void setEditingIndicatorEnabled(bool set);
00118
00120 void showEditingIndicator(bool show);
00121
00122 virtual void setEnabled(bool set);
00123
00128 void setCurrentRecordNumber(uint r);
00129
00133 void setRecordCount(uint count);
00134
00135 void updateGeometry(int leftMargin);
00136
00139 void setLabelText(const QString& text);
00140
00141 signals:
00142 void prevButtonClicked();
00143 void nextButtonClicked();
00144 void lastButtonClicked();
00145 void firstButtonClicked();
00146 void newButtonClicked();
00147 void recordNumberEntered( uint r );
00148
00149 protected slots:
00150 void slotPrevButtonClicked();
00151 void slotNextButtonClicked();
00152 void slotLastButtonClicked();
00153 void slotFirstButtonClicked();
00154 void slotNewButtonClicked();
00155
00156
00157 protected:
00158 void updateButtons(uint recCnt);
00159
00160 QLabel *m_textLabel;
00161 QToolButton *m_navBtnFirst;
00162 QToolButton *m_navBtnPrev;
00163 QToolButton *m_navBtnNext;
00164 QToolButton *m_navBtnLast;
00165 QToolButton *m_navBtnNew;
00166 KLineEdit *m_navRecordNumber;
00167 QIntValidator *m_navRecordNumberValidator;
00168 KLineEdit *m_navRecordCount;
00169 uint m_nav1DigitWidth;
00170
00171 QScrollView *m_view;
00172 bool m_isInsertingEnabled : 1;
00173
00174 KexiRecordNavigatorPrivate *d;
00175 };
00176
00177 #endif
|