mcu_hi3321_watch/tjd/ui/app/calendar/TjdUiAppCalendarView.h
2025-05-26 20:15:20 +08:00

88 lines
2.6 KiB
C++

#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 <list>
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<TjdUiAppCalendarPresenter>
{
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