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

107 lines
3.4 KiB
C++
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

#ifndef TJD_UI_APP_SPORT_ADAPTER_H
#define TJD_UI_APP_SPORT_ADAPTER_H
#include "TjdUiAppSportModel.h"
#include "TjdUiAppSportPresenter.h"
#include "TjdUiComponentList.h"
#include "components/abstract_adapter.h"
#include "components/ui_image_view.h"
#include "components/ui_label.h"
#include "components/ui_label_ext.h"
#include "components/ui_label_button.h"
#include "components/ui_qrcode.h"
#include "components/ui_toggle_button.h"
#include "components/ui_view.h"
#include "components/ui_view_group.h"
#include "gfx_utils/list.h"
#include "image_info.h"
#include "string"
#include "components/tjd_ui_transform_list_group.h"
namespace TJD {
#define MAX_SPORT_TYPE 58
enum IndoorRunningItemIndex
{
INTDOOR_DISTANCE_INDEX,
INTDOOR_TIME_INDEX,
INTDOOR_CALORIES_INDEX,
INTDOOR_FREE_TRAINING_INDEX,
INTDOOR_MAX_INDEX,
};
struct IndoorRunningSportCaseInfo
{
IndoorRunningItemIndex index;
OHOS::ImageInfo *imgInfo;
const char *name;
const char *goal;
OHOS::ImageInfo *imgMoreInfo;
};
class SportCaseItemView : public ItemConstructor<SportCaseInfo>
{
public:
explicit SportCaseItemView(const SportCaseInfo &info);
~SportCaseItemView() override;
// void UpdateView(SportCaseInfo &info, uint8_t index);
void RefreshItem(const SportCaseInfo &itemInfo, int16_t index);
SportCaseItemView *GetItemView() { return this; }
void SetItemOnClickListener(OHOS::UIView::OnClickListener *listener) { SetOnClickListener(listener); }
bool OnClickEvent(const OHOS::ClickEvent &event) override;
void SetCurSportIndex(SportTypeIndex index) { curSportIndex_ = index; }
uint8_t GetCurSportIndex() const { return curSportIndex_; }
OHOS::Rect imageRect_;
OHOS::Rect labelRect_;
friend bool ListItemTransformItemBaseOnPosition(OHOS::UITransformList *list, OHOS::UIView *item);
private:
OHOS::UIViewGroup normalView;
OHOS::UIImageView sportIcon_;
OHOS::UILabelExt text_;
OHOS::UIImageView moreIcon_;
OHOS::UILabelExt goalContent_;
OHOS::UILabel editLabel_;
SportTypeIndex curSportIndex_;
};
#pragma region 编辑列表
class EditItemListListener : public OHOS::UIView::OnClickListener // 编辑列表监听器
{
public:
EditItemListListener() {}
~EditItemListListener() {}
bool OnClick(OHOS::UIView &view, const OHOS::ClickEvent &event) override;
private:
};
class EditCaseItemView : public ItemConstructor<EditItemInfo>
{
public:
explicit EditCaseItemView(const EditItemInfo &info);
~EditCaseItemView();
// void UpdateView(EditItemInfo &info, uint8_t index);
void RefreshItem(const EditItemInfo &itemInfo, int16_t index);
void SetItemOnClickListener(OHOS::UIView::OnClickListener *listener) { SetOnClickListener(listener); }
bool OnClickEvent(const OHOS::ClickEvent &event);
void SetSportIndex(uint8_t index) { sportIndex_ = index; }
uint8_t GetSportIndex() const { return sportIndex_; }
void SetEditState(bool state) { state_ = state; }
bool GetEditState() const { return state_; }
void ChangeEditBoxImage(bool state);
private:
OHOS::ImageInfo* addImg = nullptr;
OHOS::ImageInfo* educeImg = nullptr;
OHOS::UIImageView sportIcon_;
OHOS::UILabelExt text_;
// OHOS::UICheckBox editBox_;
OHOS::UIImageView editBox_;
OHOS::UIViewGroup editBackground_;
EditItemListListener boxOnClickListener_;
uint8_t sportIndex_ = 0;
bool state_ = false;// 0未添加1已添加
};
#pragma endregion
} // namespace TJD
#endif