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

201 lines
7.1 KiB
C++

#ifndef TJDUI_APP_BUSINESSCARD_VIEW_H
#define TJDUI_APP_BUSINESSCARD_VIEW_H
#include "TjdUiAppBusinesscardAdapter.h"
#include "TjdUiAppBusinesscardPresenter.h"
#include "View.h"
#include "components/ui_button.h"
#include "components/ui_image_view.h"
#include "components/ui_label.h"
#include "components/ui_list.h"
#include "components/ui_qrcode.h"
#include "components/ui_scroll_view.h"
#include "components/ui_view_group.h"
#include "sql_bt.h"
#include "sys_typedef.h"
#include "ui_label_ext.h"
#include <iostream>
#include "components/tjd_ui_transform_list_group.h"
#include "components/ui_scroll_view_nested.h"
extern bool sql_bt_get_qrcode_show_flag(void);
extern bool sql_bt_get_qrcode_exist(qrcode_type_t type);
extern int8_t sql_bt_get_qrcode_info(qrcode_type_t type, char *info, uint16_t *len);
namespace TJD {
enum BusinessCardIndex
{
BUSINESSCARD_TIPVIEW,
BUSINESSCARD_LISTVIEW,
BUSINESSCARD_CARDVIEW,
BUSINESSCARD_MAXTHVIEW
};
class BusinesscardUIScrollView : public OHOS::UIScrollViewNested
{
public:
BusinesscardUIScrollView() {}
~BusinesscardUIScrollView() {}
bool OnDragStartEvent(const OHOS::DragEvent &event) override;
bool OnDragEvent(const OHOS::DragEvent &event) override;
bool OnDragEndEvent(const OHOS::DragEvent &event) override;
private:
bool isOnStart_{false};
};
// typedef bool (TjdUiAppBusinessCardView::*BusinessCardChangeView)(BusinessCardView hideView);
// class TjdUiAppBusinesscardPresenter;
// class TjdUiAppBusinessCardView : public OHOS::View<TjdUiAppBusinesscardPresenter>, public OHOS::UIViewGroup
// {
// public:
// TjdUiAppBusinessCardView();
// ~TjdUiAppBusinessCardView();
// static TjdUiAppBusinessCardView *GetInstance(void);
// void InitBusinesscardList();
// void OnStart() override;
// void OnStop() override;
// void ChooseBusinesscardItem(BusinessCardItemIndex index);
// void InitBusinesscardItemView(BusinessCardItemIndex index);
// void ChangedView(BusinessCardView view, BusinessCardView hideView);
// OHOS::UILabel &GetLblTipCardView() { return *lblTip_cardView; }
// OHOS::UILabel &GetLblTitleCardView() { return *lblTitle_cardView; }
// OHOS::UIImageView &GetImgReturnCardView() { return *imgReturn_cardView; }
// OHOS::UIQrcode &GetQrcodeCardView() { return *qrcode_; }
// OHOS::UIViewGroup &GetBusinesscardCardView() { return *cardView_; }
// OHOS::List<BusinessCardCaseInfo> &GetBusinesscardItemList() { return *businessCardItemList_; }
// OHOS::UIView::OnClickListener &GetCardViewClickListener() { return *onClickListener_; }
// private:
// // void InitSettingItemView(BusinessCardItemIndex index);
// OHOS::UIViewGroup *containerAll_{nullptr};
// OHOS::UIViewGroup *groupList_[BusinessCardView::MAXTH_VIEW]{nullptr};
// // UIView::OnClickListener *onClickListener_{nullptr};
// // UIView::OnDragListener *OnDragListener_{nullptr};
// OHOS::UIScrollView *listView_{nullptr};
// OHOS::UIViewGroup *tipView_{nullptr};
// OHOS::UIViewGroup *cardView_{nullptr};
// // OHOS::UILabel *lblTitle_listView{nullptr};
// OHOS::UILabel *lblTitle_cardView{nullptr};
// OHOS::UILabel *lblTip_{nullptr};
// OHOS::UILabel *lblTip_cardView{nullptr};
// OHOS::UIImageView *imgReturn_{nullptr};
// OHOS::UIImageView *imgReturn_cardView{nullptr};
// OHOS::ImageInfo* imgInfo{nullptr};
// OHOS::UIQrcode *qrcode_{nullptr};
// TjdUiAppBusinessCardAdapter *businessCardListAdapter_{nullptr};
// OHOS::UIList *businessCardList_{nullptr};
// // SettingItemViewBase *itemView_[BUSINESSCARD_MAX_INDEX]{nullptr};
// BusinessCardItemIndex currentBusinessCardIItem_{BUSINESSCARD_MAX_INDEX};
// OHOS::List<BusinessCardCaseInfo> *businessCardItemList_{nullptr};
// OHOS::ImageInfo *imgItemInfo[BUSINESSCARD_MAX_INDEX];
// OHOS::UIViewGroup *InitTipView();
// OHOS::UIScrollView *InitListView();
// OHOS::UIViewGroup *InitCardView();
// bool ShowTipView(BusinessCardView hideView);
// bool ShowListView(BusinessCardView hideView);
// bool ShowCardView(BusinessCardView hideView);
// // OHOS::List<BusinessCardCaseInfo> *settingItemList_{nullptr};
// BusinessCardChangeView viewMapper_[MAXTH_VIEW] = {
// &TjdUiAppBusinessCardView::ShowTipView,
// &TjdUiAppBusinessCardView::ShowListView,
// &TjdUiAppBusinessCardView::ShowCardView,
// };
// };
class TjdUiAppBusinessCardViewBase : public OHOS::UIScrollView
{
public:
TjdUiAppBusinessCardViewBase() { SetHorizontalScrollState(false); }
virtual ~TjdUiAppBusinessCardViewBase() {}
virtual void ShowView() { SetVisible(true); };
virtual void HideView() { SetVisible(false); };
};
class BusinessCardTipView : public TjdUiAppBusinessCardViewBase
{
public:
BusinessCardTipView();
~BusinessCardTipView();
static BusinessCardTipView *GetInstance(void);
void ShowView() override;
void HideView() override;
OHOS::UIImageView &GetReturnBtn() { return return_; }
private:
OHOS::UILabelExt title_;
OHOS::UILabelExt tip_;
// OHOS::UIButton return_;
OHOS::UIImageView return_;
};
class BusinessCardListView : public TjdUiAppBusinessCardViewBase
{
public:
BusinessCardListView();
~BusinessCardListView();
static BusinessCardListView *GetInstance(void);
void ShowView() override;
void HideView() override;
void ChooseBusinesscardItem(BusinessCardItemIndex index);
void InitBusinesscardItemView(BusinessCardItemIndex index);
private:
OHOS::UILabelExt listTitle_;
TjdUITransformListGroup *businessCardListView{nullptr};
TjdUITransformListGroupAdapter<BusinessCardCaseInfo, BusinessCardCaseItemView, std::list<BusinessCardCaseInfo>>
*businessCardAdapterPtr_{nullptr};
// TjdUiAppBusinessCardAdapter *businessCardListAdapter_{nullptr};
// OHOS::UIList businessCardList_;
};
class BusinessCardCardView : public TjdUiAppBusinessCardViewBase
{
public:
BusinessCardCardView();
~BusinessCardCardView();
static BusinessCardCardView *GetInstance(void);
void ShowView() override;
void HideView() override;
OHOS::UIQrcode &GetQrcode() { return qrcode_; }
OHOS::UILabel *GetTitle() { return &descButtom_; }
private:
OHOS::UIImageView bg_;
OHOS::UILabelExt desc_;
OHOS::UILabel descButtom_;
OHOS::UIQrcode qrcode_;
};
class TjdUiAppBusinesscardPresenter;
class TjdUiAppBusinessCardView : public OHOS::View<TjdUiAppBusinesscardPresenter>
{
public:
TjdUiAppBusinessCardView();
~TjdUiAppBusinessCardView();
static TjdUiAppBusinessCardView *GetInstance(void);
static BusinessCardIndex currentViewIndex_;
void OnStart() override;
void OnStop() override;
void ShowView(BusinessCardIndex showIndex);
void InitBusinesscardList();
std::list<BusinessCardCaseInfo>* GetBusinesscardItemList(void) { return businessCardItemList_; }
private:
TjdUiAppBusinessCardViewBase *viewManager_[BusinessCardIndex::BUSINESSCARD_MAXTHVIEW]{nullptr};
BusinesscardUIScrollView *mainView_{nullptr};
void InitTargetView(BusinessCardIndex index);
std::list<BusinessCardCaseInfo> *businessCardItemList_{nullptr};
OHOS::ImageInfo *imgItemInfo[BUSINESSCARD_MAX_INDEX];
};
} // namespace TJD
#endif