File indexing completed on 2024-04-28 04:20:57

0001 /* SPDX-FileCopyrightText: 2003-2010 Jesper K. Pedersen <blackie@kde.org>
0002 
0003    SPDX-License-Identifier: GPL-2.0-or-later
0004 */
0005 
0006 #ifndef DATEVIEWHANDLER_H
0007 #define DATEVIEWHANDLER_H
0008 #include <Utilities/FastDateTime.h>
0009 #include <QString>
0010 
0011 namespace DateBar
0012 {
0013 
0014 class ViewHandler
0015 {
0016 public:
0017     virtual ~ViewHandler() { }
0018     virtual void init(const Utilities::FastDateTime &startDate) = 0;
0019     virtual bool isMajorUnit(int unit) = 0;
0020     virtual bool isMidUnit(int unit);
0021     virtual QString text(int unit) = 0;
0022     virtual Utilities::FastDateTime date(int unit, Utilities::FastDateTime reference = Utilities::FastDateTime()) = 0;
0023     virtual QString unitText() const = 0;
0024 
0025 protected:
0026     Utilities::FastDateTime m_startDate;
0027 };
0028 
0029 class DecadeViewHandler : public ViewHandler
0030 {
0031 public:
0032     void init(const Utilities::FastDateTime &startDate) override;
0033     bool isMajorUnit(int unit) override;
0034     bool isMidUnit(int unit) override;
0035     QString text(int unit) override;
0036     Utilities::FastDateTime date(int unit, Utilities::FastDateTime reference = Utilities::FastDateTime()) override;
0037     QString unitText() const override;
0038 };
0039 
0040 class YearViewHandler : public ViewHandler
0041 {
0042 public:
0043     void init(const Utilities::FastDateTime &startDate) override;
0044     bool isMajorUnit(int unit) override;
0045     bool isMidUnit(int unit) override;
0046     QString text(int unit) override;
0047     Utilities::FastDateTime date(int unit, Utilities::FastDateTime reference = Utilities::FastDateTime()) override;
0048     QString unitText() const override;
0049 };
0050 
0051 class MonthViewHandler : public ViewHandler
0052 {
0053 public:
0054     void init(const Utilities::FastDateTime &startDate) override;
0055     bool isMajorUnit(int unit) override;
0056     QString text(int unit) override;
0057     Utilities::FastDateTime date(int unit, Utilities::FastDateTime reference = Utilities::FastDateTime()) override;
0058     QString unitText() const override;
0059 };
0060 
0061 class WeekViewHandler : public ViewHandler
0062 {
0063 public:
0064     void init(const Utilities::FastDateTime &startDate) override;
0065     bool isMajorUnit(int unit) override;
0066     QString text(int unit) override;
0067     Utilities::FastDateTime date(int unit, Utilities::FastDateTime reference = Utilities::FastDateTime()) override;
0068     QString unitText() const override;
0069 };
0070 
0071 class DayViewHandler : public ViewHandler
0072 {
0073 public:
0074     void init(const Utilities::FastDateTime &startDate) override;
0075     bool isMajorUnit(int unit) override;
0076     bool isMidUnit(int unit) override;
0077     QString text(int unit) override;
0078     Utilities::FastDateTime date(int unit, Utilities::FastDateTime reference = Utilities::FastDateTime()) override;
0079     QString unitText() const override;
0080 };
0081 
0082 class HourViewHandler : public ViewHandler
0083 {
0084 public:
0085     void init(const Utilities::FastDateTime &startDate) override;
0086     bool isMajorUnit(int unit) override;
0087     bool isMidUnit(int unit) override;
0088     QString text(int unit) override;
0089     Utilities::FastDateTime date(int unit, Utilities::FastDateTime reference = Utilities::FastDateTime()) override;
0090     QString unitText() const override;
0091 };
0092 
0093 class TenMinuteViewHandler : public ViewHandler
0094 {
0095 public:
0096     void init(const Utilities::FastDateTime &startDate) override;
0097     bool isMajorUnit(int unit) override;
0098     bool isMidUnit(int unit) override;
0099     QString text(int unit) override;
0100     Utilities::FastDateTime date(int unit, Utilities::FastDateTime reference = Utilities::FastDateTime()) override;
0101     QString unitText() const override;
0102 };
0103 
0104 class MinuteViewHandler : public ViewHandler
0105 {
0106 public:
0107     void init(const Utilities::FastDateTime &startDate) override;
0108     bool isMajorUnit(int unit) override;
0109     bool isMidUnit(int unit) override;
0110     QString text(int unit) override;
0111     Utilities::FastDateTime date(int unit, Utilities::FastDateTime reference = Utilities::FastDateTime()) override;
0112     QString unitText() const override;
0113 };
0114 
0115 }
0116 
0117 #endif /* DATEVIEWHANDLER_H */
0118 
0119 // vi:expandtab:tabstop=4 shiftwidth=4: