File indexing completed on 2024-05-12 08:19:59
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: