170 lines
5.4 KiB
C++
170 lines
5.4 KiB
C++
/*----------------------------------------------------------------------------
|
|
* Copyright (c) TJD Technologies Co., Ltd. 2025. All rights reserved.
|
|
*
|
|
* Description: TjdUiAppListItemView.cpp
|
|
*
|
|
* Author: luziquan@ss-tjd.com
|
|
*
|
|
* Create: 2025-02-12
|
|
*--------------------------------------------------------------------------*/
|
|
|
|
#include "TjdUiAppListItemView.h"
|
|
#include "TjdUiImageIds.h"
|
|
#include "TjdUiMultiLanguageExt.h"
|
|
#include "common/image_cache_manager.h"
|
|
#include "common/screen.h"
|
|
namespace TJD {
|
|
|
|
#define APP_LIST_ITEM_WIDTH (OHOS::HORIZONTAL_RESOLUTION - 40)
|
|
#define APP_LIST_ITEM_HEIGHT (140)
|
|
|
|
#define MENU_IMAGE_BIN_PATH TJD_IMAGE_PATH "/img_menu_list.bin"
|
|
|
|
AppListItemView::AppListItemView()
|
|
{
|
|
SetTouchable(true);
|
|
SetPosition(0, 0, APP_LIST_ITEM_WIDTH, APP_LIST_ITEM_HEIGHT);
|
|
SetStyle(OHOS::STYLE_BACKGROUND_OPA, OHOS::OPA_OPAQUE);
|
|
|
|
icon_.SetResizeMode(OHOS::UIImageView::ImageResizeMode::CENTER);
|
|
icon_.SetViewId("image");
|
|
label_.SetStyle(OHOS::STYLE_BACKGROUND_OPA, OHOS::OPA_TRANSPARENT);
|
|
label_.SetFont(TJD_VECTOR_FONT_FILENAME, TJD_FONT_SIZE_40);
|
|
label_.SetY(0);
|
|
label_.SetHeight(APP_LIST_ITEM_HEIGHT);
|
|
label_.SetLineBreakMode(OHOS::UILabel::LINE_BREAK_MARQUEE);
|
|
label_.SetStyle(OHOS::STYLE_BORDER_WIDTH, 1);
|
|
label_.SetAlign(OHOS::TEXT_ALIGNMENT_LEFT, OHOS::TEXT_ALIGNMENT_CENTER);
|
|
label_.SetStyle(OHOS::STYLE_BACKGROUND_OPA, OHOS::OPA_TRANSPARENT);
|
|
|
|
Reset();
|
|
|
|
Add(&icon_);
|
|
Add(&label_);
|
|
}
|
|
|
|
AppListItemView::~AppListItemView() { RemoveAll(); }
|
|
|
|
void AppListItemView::SetItemInfo(const TjdAppItem &itemInfo)
|
|
{
|
|
itemInfo_ = itemInfo;
|
|
if (itemInfo_.resId == -1) {
|
|
icon_.SetSrc(itemInfo_.appItem.iconSmall);
|
|
} else {
|
|
icon_.SetSrc(OHOS::ImageCacheManager::GetInstance().LoadOneInMultiRes(itemInfo_.resId, MENU_IMAGE_BIN_PATH));
|
|
}
|
|
if (itemInfo_.txtId == -1) {
|
|
label_.SetText(itemInfo_.appItem.label);
|
|
} else {
|
|
label_.SetTextId(itemInfo_.txtId);
|
|
}
|
|
SetViewIndex(itemInfo_.appItem.id);
|
|
SetUpChild();
|
|
}
|
|
|
|
TjdUiAppViewId AppListItemView::GetViewId() { return static_cast<TjdUiAppViewId>(itemInfo_.appItem.id); }
|
|
|
|
const char *AppListItemView::GetAppUid() { return itemInfo_.appItem.uid; }
|
|
|
|
void AppListItemView::SetUpChild()
|
|
{
|
|
icon_.LayoutCenterOfParent();
|
|
icon_.LayoutLeftOfParent(90);
|
|
label_.LayoutRightToSibling(icon_.GetViewId(), 24);
|
|
label_.SetWidth(APP_LIST_ITEM_WIDTH - (icon_.GetWidth() + icon_.GetX() + 24));
|
|
}
|
|
|
|
void AppListItemView::SelectedChange()
|
|
{
|
|
label_.SetTextColor(OHOS::Color::White());
|
|
icon_.Scale(OHOS::Vector2<float>{1.1, 1.1}, OHOS::Vector2<float>{0, 0});
|
|
}
|
|
|
|
void AppListItemView::Reset()
|
|
{
|
|
label_.SetTextColor(OHOS::Color::Gray());
|
|
icon_.ResetTransParameter();
|
|
}
|
|
|
|
HexagonsItemView::HexagonsItemView() {}
|
|
|
|
HexagonsItemView::~HexagonsItemView() {}
|
|
|
|
void HexagonsItemView::SetItemInfo(const TjdAppItem &itemInfo)
|
|
{
|
|
itemInfo_ = itemInfo;
|
|
SetViewIndex(itemInfo_.appItem.id);
|
|
if (itemInfo_.resId == -1) {
|
|
SetSrc(itemInfo_.appItem.iconSmall);
|
|
} else {
|
|
SetSrc(OHOS::ImageCacheManager::GetInstance().LoadOneInMultiRes(itemInfo_.resId, MENU_IMAGE_BIN_PATH));
|
|
}
|
|
}
|
|
|
|
TjdUiAppViewId HexagonsItemView::GetViewId() { return static_cast<TjdUiAppViewId>(itemInfo_.appItem.id); }
|
|
|
|
const char *HexagonsItemView::GetAppUid() { return itemInfo_.appItem.uid; }
|
|
|
|
void WaterfallItemView::SetItemInfo(const TjdAppItem &itemInfo)
|
|
{
|
|
itemInfo_ = itemInfo;
|
|
if (itemInfo_.resId == -1) {
|
|
SetSrc(itemInfo_.appItem.iconSmall);
|
|
} else {
|
|
SetSrc(OHOS::ImageCacheManager::GetInstance().LoadOneInMultiRes(itemInfo_.resId, MENU_IMAGE_BIN_PATH));
|
|
}
|
|
}
|
|
|
|
TjdUiAppViewId WaterfallItemView::GetViewId() { return static_cast<TjdUiAppViewId>(itemInfo_.appItem.id); }
|
|
|
|
const char *WaterfallItemView::GetAppUid() { return itemInfo_.appItem.uid; }
|
|
|
|
SphereItemView::SphereItemView()
|
|
{
|
|
static constexpr int16_t MENU_ITEM_SIZE = 80;
|
|
SetPosition(0, 0, MENU_ITEM_SIZE, MENU_ITEM_SIZE);
|
|
SetStyle(OHOS::STYLE_BACKGROUND_OPA, OHOS::OPA_TRANSPARENT);
|
|
icon_.SetTouchable(true);
|
|
icon_.SetPosition(0, 0, GetWidth(), GetHeight());
|
|
icon_.SetAutoEnable(false);
|
|
icon_.SetResizeMode(OHOS::UIImageView::ImageResizeMode::FILL);
|
|
Add(&icon_);
|
|
}
|
|
|
|
SphereItemView::~SphereItemView() { RemoveAll(); }
|
|
|
|
void SphereItemView::SetItemInfo(const TjdAppItem &itemInfo)
|
|
{
|
|
itemInfo_ = itemInfo;
|
|
if (itemInfo_.resId == -1) {
|
|
icon_.SetSrc(itemInfo_.appItem.iconSmall);
|
|
} else {
|
|
icon_.SetSrc(OHOS::ImageCacheManager::GetInstance().LoadOneInMultiRes(itemInfo_.resId, MENU_IMAGE_BIN_PATH));
|
|
}
|
|
SetViewIndex(itemInfo_.appItem.id);
|
|
}
|
|
|
|
TjdUiAppViewId SphereItemView::GetViewId() { return static_cast<TjdUiAppViewId>(itemInfo_.appItem.id); }
|
|
|
|
const char *SphereItemView::GetAppUid() { return itemInfo_.appItem.uid; }
|
|
|
|
void SphereItemView::SetOnClickListener(OHOS::UIView::OnClickListener *onClickListener)
|
|
{
|
|
icon_.SetOnClickListener(onClickListener);
|
|
}
|
|
|
|
void GridItemView::SetItemInfo(const TjdAppItem &itemInfo)
|
|
{
|
|
itemInfo_ = itemInfo;
|
|
if (itemInfo_.resId == -1) {
|
|
SetSrc(itemInfo_.appItem.iconSmall);
|
|
} else {
|
|
SetSrc(OHOS::ImageCacheManager::GetInstance().LoadOneInMultiRes(itemInfo_.resId, MENU_IMAGE_BIN_PATH));
|
|
}
|
|
}
|
|
|
|
TjdUiAppViewId GridItemView::GetViewId() { return static_cast<TjdUiAppViewId>(itemInfo_.appItem.id); }
|
|
|
|
const char *GridItemView::GetAppUid() { return itemInfo_.appItem.uid; }
|
|
|
|
} // namespace TJD
|