registeritem.h
Go to the documentation of this file.00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018 #ifndef REGISTERITEM_H
00019 #define REGISTERITEM_H
00020
00021
00022
00023
00024 #include <qstring.h>
00025 #include <qdatetime.h>
00026 #include <qpainter.h>
00027
00028
00029
00030
00031
00032
00033
00034 #include <kmymoney/mymoneymoney.h>
00035 #include <kmymoney/mymoneysplit.h>
00036 #include <kmymoney/mymoneyobject.h>
00037
00038 namespace KMyMoneyRegister {
00039
00040 typedef enum {
00041 Deposit = 0,
00042 Payment,
00043 Unknown
00044 } CashFlowDirection;
00045
00046 typedef enum {
00047 ActionNone = -1,
00048 ActionCheck = 0,
00049
00050
00051
00052 ActionDeposit = 12201,
00053 ActionTransfer = 12202,
00054 ActionWithdrawal = 12203,
00055 ActionAtm,
00056
00057 MaxAction
00058 } Action;
00059
00060
00061 class Register;
00062
00066 class RegisterItem
00067 {
00068 public:
00069 RegisterItem();
00070 RegisterItem(Register* parent);
00071 virtual ~RegisterItem();
00072
00073 virtual const char* className(void) = 0;
00074
00075 virtual bool isSelectable(void) const = 0;
00076 virtual bool isSelected(void) const { return false; }
00077 virtual void setSelected(bool ) {}
00078
00079 virtual bool canHaveFocus(void) const = 0;
00080 virtual bool hasFocus(void) const { return false; }
00081 virtual bool hasEditorOpen(void) const { return false; }
00082
00083 virtual void setFocus(bool , bool updateLens = true) { updateLens = false; }
00084
00085 virtual bool isErronous(void) const = 0;
00086
00087
00088 virtual const QDate& sortPostDate(void) const { return nullDate; }
00089 virtual int sortSamePostDate(void) const = 0;
00090 virtual const QDate& sortEntryDate(void) const { return nullDate; }
00091 virtual const QString& sortPayee(void) const { return QString::null; }
00092 virtual const MyMoneyMoney& sortValue(void) const { return nullValue; }
00093 virtual const QString& sortNumber(void) const { return QString::null; }
00094 virtual const QString& sortEntryOrder(void) const { return QString::null; }
00095 virtual CashFlowDirection sortType(void) const { return Deposit; }
00096 virtual const QString& sortCategory(void) const { return QString::null; }
00097 virtual MyMoneySplit::reconcileFlagE sortReconcileState(void) const { return MyMoneySplit::MaxReconcileState; }
00098 virtual const QString& sortSecurity(void) const { return QString::null; }
00099
00109 virtual void setStartRow(int row) { m_startRow = row; }
00110 int startRow(void) const { return m_startRow; }
00111 virtual int rowHeightHint(void) const;
00112
00118 virtual void setNumRowsRegister(int rows);
00119
00124 virtual void setNumRowsForm(int rows) { m_rowsForm = rows; }
00125
00130 virtual int numRowsRegister(void) const { return m_rowsRegister; }
00131
00136 virtual int numRowsForm(void) const { return m_rowsForm; }
00137 virtual int numColsForm(void) const { return 1; }
00138
00145 virtual void setAlternate(bool alternate) { m_alternate = alternate; }
00146
00147 virtual void paintRegisterCell(QPainter* painter, int row, int col, const QRect& r, bool selected, const QColorGroup& cg) = 0;
00148 virtual void paintFormCell(QPainter* painter, int row, int col, const QRect& r, bool selected, const QColorGroup& cg) = 0;
00149
00150 virtual const QString& id(void) const { return MyMoneyObject::emptyId(); }
00151
00157 void setParent(Register* parent);
00158
00164 Register* parent(void) const { return m_parent; }
00165
00166 void setNeedResize(void) { m_needResize = true; }
00167
00168 bool isVisible(void) const { return m_visible; }
00169
00174 virtual void setVisible(bool visible);
00175
00181 virtual bool markVisible(bool visible);
00182
00183 void setNextItem(RegisterItem* p) { m_next = p; }
00184 void setPrevItem(RegisterItem* p) { m_prev = p; }
00185 RegisterItem* nextItem(void) const { return m_next; }
00186 RegisterItem* prevItem(void) const { return m_prev; }
00187
00188 virtual bool matches(const QString&) const = 0;
00189
00201 virtual bool maybeTip(const QPoint& , int , int , QRect& , QString& ) { return false; }
00202
00203 protected:
00205 void init(void);
00206
00207 protected:
00208 Register* m_parent;
00209 RegisterItem* m_prev;
00210 RegisterItem* m_next;
00211 int m_startRow;
00212 int m_rowsRegister;
00213 int m_rowsForm;
00214 bool m_alternate;
00215 bool m_needResize;
00216 bool m_visible;
00217
00218 private:
00219 static QDate nullDate;
00220 static MyMoneyMoney nullValue;
00221 };
00222
00223 }
00224
00225 #endif
00226