00001
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026
00027
00028
00029
00030 #ifndef _SDITEMS_H_
00031 #define _SDITEMS_H_
00032
00033
00034
00035
00036
00037
00038 #include <osbid.h>
00039
00040
00041 #include "tolists.h"
00042 #include "tomenu.h"
00043
00044
00045
00046 namespace OSB_LIB {
00047 class DayClass;
00048 class SpecialDate;
00049 }
00050 namespace OSB_GUI {
00051 class DlgDc;
00052 }
00053
00054
00055
00056 namespace OSB_GUI {
00057
00058
00059
00063 class SdItem : public QListViewItem {
00064 typedef OSB_LIB::Id<OSB_LIB::SpecialDate> ObjId;
00065 typedef OSB_LIB::CfgStatus Status;
00066 public:
00068 enum Col {
00069 colFirst = 0,
00070 colName = colFirst,
00071 colId,
00072 colDate,
00073 colAnnual,
00074 colStatus,
00075 colLast = colStatus
00076 };
00077 public:
00078 SdItem(
00079 QListView* parent,
00080 const OSB_LIB::SpecialDate& sd
00081 );
00083 void destroy() const;
00084 private:
00086 ~SdItem();
00087 public:
00088 void showObject() const;
00089 void editObject();
00090 void changeStatus();
00091 bool delObject();
00093 void setupMenu(ToMenu& sdMenu) const;
00094 private:
00095 virtual int compare(QListViewItem* i, int col, bool asc) const;
00096 virtual const QPixmap* pixmap(int col) const;
00097
00098 void set(const OSB_LIB::SpecialDate& sd);
00099 int objId() const;
00100 private:
00101 ObjId objId_;
00102 Status status_;
00103 QDate date_;
00104 bool annual_;
00105 };
00106
00110 class SdList : public QListView {
00111 Q_OBJECT
00113 typedef OSB_LIB::Id<OSB_LIB::DayClass> DcId;
00115 friend class DlgDc;
00116 public:
00118 explicit SdList(
00119 QWidget* parent,
00120 const char* name = 0,
00121 WFlags f = 0
00122 );
00123 private:
00125 SdList(const SdList&);
00127 SdList& operator=(const SdList&);
00128 public:
00129 const SdItem* add(const OSB_LIB::SpecialDate& sd);
00130 public:
00132 void languageChange();
00133 private:
00140 void setup(
00141 const DcId& dcId,
00142 bool showOnly
00143 );
00145 ToMenu* sdMenu();
00146 public slots:
00148 bool setupMenu();
00150 void commandEvent(ToMenuCmd cmd);
00156 void rightClickEvent(QListViewItem*, const QPoint& pt, int);
00157 private:
00159 void newSd();
00160 private:
00162 DcId dcId_;
00164 bool showOnly_;
00166 ToMenu* sdMenu_;
00167 };
00168 }
00169 #endif // #ifndef _SDITEMS_H_