/*---------------------------------------------------------------------------- * 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(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{1.1, 1.1}, OHOS::Vector2{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(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(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(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(itemInfo_.appItem.id); } const char *GridItemView::GetAppUid() { return itemInfo_.appItem.uid; } } // namespace TJD