88 lines
2.6 KiB
C++
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 |