#ifndef TJD_UI_APP_CALENDAR_VIEW_H #define TJD_UI_APP_CALENDAR_VIEW_H #include "TjdUiAppCalendarPresenter.h" #include "TjdUiMultiLanguageExt.h" #include "View.h" #include "components/ui_barcode.h" #include "components/ui_button.h" #include "components/ui_checkbox.h" #include "components/ui_edit_text.h" #include "components/ui_image_animator.h" #include "components/ui_image_view.h" #include "components/ui_label.h" #include "components/ui_list.h" #include "components/ui_scroll_view.h" #include "components/ui_slider.h" #include "components/ui_swipe_view.h" #include "components/ui_view_group.h" #include "ui_label_ext.h" #include namespace TJD { #define MAX_DAYS_OF_MONTH 31 class CalendarView : public OHOS::UIScrollView { public: struct CurrentDateInfo { uint8_t day; uint8_t month; uint16_t year; }; CalendarView(); ~CalendarView(); // bool OnClickEvent(const OHOS::ClickEvent &event); static CalendarView *GetInstance(void); bool OnDragStartEvent(const OHOS::DragEvent &event) override; bool OnDragEvent(const OHOS::DragEvent &event) override; bool OnDragEndEvent(const OHOS::DragEvent &event) override; void UpdateInfo(CurrentDateInfo curDateInfo, uint8_t month, uint16_t year); CurrentDateInfo GetCurrentDateInfo() { return curDateInfo; }; OHOS::UILabel *GetDateLabel() { return &dateLabel_; }; private: uint8_t daysInMonth = 0; //记录当前月有多少天 uint8_t weekDaysOfMonth = 0; //记录当前月第一天是星期几 OHOS::UIView touchOnClickedView_; OHOS::UILabelExt lbTitle_; OHOS::UILabel dateLabel_; OHOS::UILabel CalendarLabel[MAX_DAYS_OF_MONTH]; OHOS::UIImageView imgWeek_; OHOS::UIImageView bjLine_; OHOS::UIImageView curWeekday_; OHOS::UIImageView iconLeft_; OHOS::UIImageView iconRight_; CurrentDateInfo curDateInfo; uint16_t leftStartX_{0}; uint16_t leftEndX_{0}; uint16_t rightStartX_{0}; uint16_t rightEndX_{0}; bool isExit_{true}; }; class TjdUiAppCalendarPresenter; class TjdUiAppCalendarView : public OHOS::View { public: TjdUiAppCalendarView(); ~TjdUiAppCalendarView(); static TjdUiAppCalendarView *GetInstance(void); void OnStart() override; // void OnSetUpView() override {}; // void OnTearDownView() override {}; void OnStop() override; uint8_t GetDaysOfCurrentMonth(uint8_t month, uint16_t year); int GetDaysOfCurrentWeek(int year, int month, int day); OHOS::UIScrollView *GetMainView() { return mainView_; }; private: CalendarView *calendarView_{nullptr}; OHOS::UIScrollView *mainView_{nullptr}; }; } // namespace TJD #endif