#include "TjdUiAppMSGameView.h" #include "TjdUiImageIds.h" #include "TjdUiMultiLanguageExt.h" #include "animator/animator_manager.h" #include "common/image_cache_manager.h" #include "sys_config.h" #define ENABLE_PRINT_INFO 1 #if ENABLE_PRINT_INFO #define static_print_info(...) sys_ui_log_i(__VA_ARGS__) // 一般信息打印宏控制 #define static_print_warn(...) sys_ui_log_w(__VA_ARGS__) // 警告信息打印一般常开 #define static_print_error(...) sys_ui_log_e(__VA_ARGS__) // 错误信息打印一般常开 #define static_print_debug(...) sys_ui_log_d(__VA_ARGS__) // 调试信息打印一般常开 #else #define static_print_info(...) #define static_print_warn(...) #define static_print_error(...) #define static_print_debug(...) #endif namespace TJD { #define IMAGE_BIN_PATH TJD_IMAGE_PATH "img_ms_game.bin" MSGameViewIndex TjdUiAppMSGameView::currentViewIndex_ = MSGameViewIndex::MS_GAME_UNKNOWN; static TjdUiAppMSGameView *g_msGameView = nullptr; TjdUiAppMSGameView::TjdUiAppMSGameView() { g_msGameView = this; } TjdUiAppMSGameView::~TjdUiAppMSGameView() { g_msGameView = nullptr; } TjdUiAppMSGameView *TjdUiAppMSGameView::GetInstance(void) { return g_msGameView; } void TjdUiAppMSGameView::OnStart() { OHOS::ImageCacheManager::GetInstance().LoadAllInMultiRes(IMAGE_BIN_PATH); if (mainView_ == nullptr) { mainView_ = new OHOS::UIScrollView(); } mainView_->SetPosition(0, 0, OHOS::HORIZONTAL_RESOLUTION, OHOS::VERTICAL_RESOLUTION); // mainView_->SetOnDragListener(TjdUiAppMSGamePresenter::GetInstance()); AddViewToRootContainer(mainView_); } void TjdUiAppMSGameView::OnStop() { for (int i = 0; i < MSGameViewIndex::MS_GAME_UNKNOWN; i++) { if (viewManager_[i] != nullptr) { viewManager_[i]->RemoveAll(); delete viewManager_[i]; viewManager_[i] = nullptr; } } OHOS::ImageCacheManager::GetInstance().UnloadAllInMultiRes(IMAGE_BIN_PATH); } void TjdUiAppMSGameView::InitTargetView(MSGameViewIndex index) { if (viewManager_[index] != nullptr) { return; } // clang-format off switch (index) { case MS_GAME_MAIN: viewManager_[index] = new MSGameMainView(); break; case MS_GAME_DISCONNECT: viewManager_[index] = new MSGameDisConnectView(); break; default: break; } // clang-format on if (viewManager_[index] == nullptr) { return; } viewManager_[index]->SetPosition(0, 0); viewManager_[index]->SetVisible(false); mainView_->Add(viewManager_[index]); } void TjdUiAppMSGameView::ShowView(MSGameViewIndex showIndex) { if (showIndex < 0 || showIndex >= MSGameViewIndex::MS_GAME_UNKNOWN) { return; } InitTargetView(showIndex); if (currentViewIndex_ >= 0 && currentViewIndex_ < MSGameViewIndex::MS_GAME_UNKNOWN && viewManager_[currentViewIndex_] != nullptr) { viewManager_[currentViewIndex_]->HideView(); } if (viewManager_[showIndex] != nullptr) { viewManager_[showIndex]->ShowView(); } currentViewIndex_ = showIndex; } MSGameMainView::MSGameMainView() { auto &image = OHOS::ImageCacheManager::GetInstance(); auto bgRes = image.LoadOneInMultiRes(IMG_MS_GAME_WATCH, IMAGE_BIN_PATH); Resize(OHOS::HORIZONTAL_RESOLUTION, OHOS::VERTICAL_RESOLUTION); if (OHOS::PageTransitionMgr::GetInstance().GetTopSlideBackImage() == nullptr) { SetOnDragListener(TjdUiAppMSGamePresenter::GetInstance()); } bg_.SetPosition(125, 92, 213, 156); if (bgRes != nullptr) { bg_.SetSrc(bgRes); } desc_.SetTextId(STR_ID_382); desc_.SetFont(TJD_VECTOR_FONT_FILENAME, 30); desc_.Resize(350, 125); desc_.SetX((GetWidth() >> 1) - (desc_.GetWidth() >> 1)); desc_.SetY(bg_.GetY() + bg_.GetHeight() + 10); desc_.SetAlign(OHOS::TEXT_ALIGNMENT_CENTER, OHOS::TEXT_ALIGNMENT_TOP); descButtom_.SetTextId(STR_ID_383); descButtom_.SetFont(TJD_VECTOR_FONT_FILENAME, 24); descButtom_.Resize(270, 48); descButtom_.SetX((GetWidth() >> 1) - (descButtom_.GetWidth() >> 1)); descButtom_.SetY(desc_.GetY() + desc_.GetHeight() + 10); descButtom_.SetStyle(OHOS::STYLE_TEXT_OPA, OHOS::OPA_OPAQUE * 0.5); descButtom_.SetLineBreakMode(OHOS::UILabel::LINE_BREAK_MARQUEE); descButtom_.SetAlign(OHOS::TEXT_ALIGNMENT_CENTER, OHOS::TEXT_ALIGNMENT_TOP); Add(&bg_); Add(&desc_); Add(&descButtom_); } MSGameDisConnectView::MSGameDisConnectView() { auto &image = OHOS::ImageCacheManager::GetInstance(); auto bgRes = image.LoadOneInMultiRes(IMG_MS_GAME_PROMPT_FAIL, IMAGE_BIN_PATH); Resize(OHOS::HORIZONTAL_RESOLUTION, OHOS::VERTICAL_RESOLUTION); if (OHOS::PageTransitionMgr::GetInstance().GetTopSlideBackImage() == nullptr) { SetOnDragListener(TjdUiAppMSGamePresenter::GetInstance()); } bg_.SetPosition(140, 144, 217, 131); if (bgRes != nullptr) { bg_.SetSrc(bgRes); } desc_.SetTextId(STR_ID_384); desc_.SetFont(TJD_VECTOR_FONT_FILENAME, 30); desc_.Resize(350, 125); desc_.SetX((GetWidth() >> 1) - (desc_.GetWidth() >> 1)); desc_.SetY(bg_.GetY() + bg_.GetHeight() + 10); desc_.SetAlign(OHOS::TEXT_ALIGNMENT_CENTER, OHOS::TEXT_ALIGNMENT_TOP); descButtom_.SetTextId(STR_ID_383); descButtom_.SetFont(TJD_VECTOR_FONT_FILENAME, 24); descButtom_.Resize(270, 48); descButtom_.SetX((GetWidth() >> 1) - (descButtom_.GetWidth() >> 1)); descButtom_.SetY(desc_.GetY() + desc_.GetHeight() + 10); descButtom_.SetStyle(OHOS::STYLE_TEXT_OPA, OHOS::OPA_OPAQUE * 0.5); descButtom_.SetLineBreakMode(OHOS::UILabel::LINE_BREAK_MARQUEE); descButtom_.SetAlign(OHOS::TEXT_ALIGNMENT_CENTER, OHOS::TEXT_ALIGNMENT_TOP); Add(&bg_); Add(&desc_); Add(&descButtom_); } } // namespace TJD