* @Author: luozheng 1732036298@qq.com
* @Date: 2024-06-14 09:40:20
* @LastEditors: luozheng 1732036298@qq.com
- * @LastEditTime: 2024-07-06 18:34:04
+ * @LastEditTime: 2024-07-24 20:43:01
* @FilePath: /FD230/code/sdk/application/wearable/fd230app/nativeui/themestyle/src/ThemeStyleView.cpp
*/
void ThemeStyleView::ClearAll(void)
{
- if (scrollView != nullptr)
+ if (initViewStatus)
{
- scrollView->RemoveAll();
+ if (scrollView != nullptr)
+ {
+ scrollView->RemoveAll();
- delete titleText;
- titleText = nullptr;
+ delete titleText;
+ titleText = nullptr;
- for (int i = 0; i < MAX_STYLE; i++)
- {
- delete ThemeStyleLabelButton[i];
- ThemeStyleLabelButton[i] = nullptr;
+ for (int i = 0; i < MAX_STYLE; i++)
+ {
+ delete ThemeStyleLabelButton[i];
+ ThemeStyleLabelButton[i] = nullptr;
- delete ThemeStyleImage[i];
- ThemeStyleImage[i] = nullptr;
- }
+ delete ThemeStyleLabel[i];
+ ThemeStyleLabel[i] = nullptr;
- delete ExitLabelButton;
- ExitLabelButton = nullptr;
+ delete ThemeStyleImage[i];
+ ThemeStyleImage[i] = nullptr;
+ }
- delete scrollView;
- scrollView = nullptr;
- }
- }
+ delete ExitLabelButton;
+ ExitLabelButton = nullptr;
- // 设置按键监听
- static void SetKeyActListener()
- {
- WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "SetKeyActListener");
- RootView::OnKeyActListener *keyactListener = (RootView::OnKeyActListener *)OHOS::ThemeStylePresenter::GetInstance();
- RootView::GetInstance()->SetOnKeyActListener(keyactListener);
+ delete ExitLabel;
+ ExitLabel = nullptr;
+
+ delete scrollView;
+ scrollView = nullptr;
+ }
+ }
}
UILabelButtonExt *ThemeStyleView::ThemeStyleLabelButtonViewInit(LabelButtonConfig &labelbuttonconfig)
labelButton->SetStyle(STYLE_BACKGROUND_COLOR, 0xff191919);
labelButton->SetImagePosition(300, 30);
labelButton->SetImageSrc(PNG_CHECKBOX_OFF_IMAGE, PNG_CHECKBOX_OFF_IMAGE);
- labelButton->SetTextId(labelbuttonconfig.textId);
- labelButton->SetAlign(TEXT_ALIGNMENT_LEFT);
- labelButton->SetLabelPosition(100, 0);
- labelButton->SetFont(DEFAULT_VECTOR_FONT_FILENAME, labelbuttonconfig.fontSize);
- labelButton->SetStyle(STYLE_LINE_HEIGHT, labelbuttonconfig.lineHeigh);
+ // labelButton->SetTextId(labelbuttonconfig.textId);
+ // labelButton->SetAlign(TEXT_ALIGNMENT_LEFT);
+ // labelButton->SetLabelPosition(100, 0);
+ // labelButton->SetFont(DEFAULT_VECTOR_FONT_FILENAME, labelbuttonconfig.fontSize);
+ // labelButton->SetStyle(STYLE_LINE_HEIGHT, labelbuttonconfig.lineHeigh);
labelButton->SetStyleForState(STYLE_BACKGROUND_COLOR, 0xff000000, UIButton::PRESSED);
- labelButton->SetStyleForState(STYLE_BORDER_COLOR, 0xffffffff, UIButton::PRESSED);
- labelButton->SetStyleForState(STYLE_BORDER_OPA, 0x00, UIButton::PRESSED);
labelButton->SetOnClickListener(presenter_);
return labelButton;
return Image;
}
+ UILabelExt *ThemeStyleView::ThemeStyleLabelViewinit(LabelConfig &labelconfig)
+ {
+ UILabelExt *label = new UILabelExt();
+ if (label == nullptr)
+ {
+ return nullptr;
+ }
+ label->SetPosition(labelconfig.left, labelconfig.top, labelconfig.width, labelconfig.height);
+ label->SetStyle(STYLE_TEXT_FONT, labelconfig.fontSize);
+ label->SetStyle(STYLE_LINE_HEIGHT, labelconfig.lineHeigh);
+ label->SetTextId(labelconfig.textId);
+ label->SetLineBreakMode(labelconfig.lineBreakMode);
+ label->SetAlign(TEXT_ALIGNMENT_LEFT, TEXT_ALIGNMENT_CENTER);
+ label->SetRollSpeed(70);
+ label->SetFont(DEFAULT_VECTOR_FONT_FILENAME, labelconfig.fontSize);
+ return label;
+ }
+
bool ThemeStyleView::CreateThemeStyleScrollView(void)
{
WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "ThemeStyleView::InitThemeStyleScrollView");
scrollView->SetScrollBlankSize(SCROLLBLANKSIZE);
scrollView->SetReboundSize(REBOUNDSIZE);
scrollView->SetHorizontalScrollState(false);
+ scrollView->RequestFocus();
+ scrollView->SetRotateFactor(1.0);
scrollView->SetTouchable(true);
scrollView->SetDraggable(true);
container_->Add(scrollView);
WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "titleText new fail!");
return false;
}
- titleText->SetPosition(83, 52, 300, 35);
+ titleText->SetPosition(83, 50, 300, 35);
titleText->SetTextId(STR_DISPLAY_MODE); // 显示方式
titleText->SetStyle(STYLE_TEXT_FONT, 30);
titleText->SetStyle(STYLE_LINE_HEIGHT, 35);
- titleText->SetLineBreakMode(UILabel::LINE_BREAK_MARQUEE);
+ titleText->SetLineBreakMode(UILabel::LINE_BREAK_OSCILLATION);
titleText->SetFont(DEFAULT_VECTOR_FONT_FILENAME, 30);
titleText->SetAlign(TEXT_ALIGNMENT_CENTER, TEXT_ALIGNMENT_CENTER);
scrollView->Add(titleText);
+ /* -------------------------------------------------------------------------- */
+ // const char *viewId[MAX_STYLE] = {THEME_STYLE_LIST, THEME_STYLE_HEXAGONS, THEME_STYLE_FOOTBALL};
+ // uint16_t textId[MAX_STYLE] = {STR_LIST_DISPLAY, STR_CELLULAR_DISPLAY, STR_GRID_DISPLAY};
+ int16_t textId[MAX_STYLE] = {STR_LIST_DISPLAY, STR_CELLULAR_DISPLAY};
+ LabelConfig labelConfig = {
+ .left = 143,
+ .top = 153,
+ .width = 180,
+ .height = 35,
+ .fontSize = 30,
+ .lineHeigh = 35,
+ .textId = 0,
+ .lineBreakMode = UILabel::LINE_BREAK_OSCILLATION,
+ };
+ for (int16_t i = 0; i < MAX_STYLE; i++)
+ {
+ labelConfig.top = 153 + 120 * i;
+ labelConfig.textId = textId[i];
+ ThemeStyleLabel[i] = ThemeStyleLabelViewinit(labelConfig);
+ if (ThemeStyleLabel[i] == nullptr)
+ {
+ WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "ThemeStyleLabel[%d] is nullptr", i);
+ return false;
+ }
+ scrollView->Add(ThemeStyleLabel[i]);
+ }
+ /* -------------------------------------------------------------------------- */
+ ExitLabel = new UILabelExt();
+ if (ExitLabel == nullptr)
+ {
+ WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "ExitLabel new fail!");
+ return false;
+ }
+ ExitLabel->SetPosition(113, labelConfig.top + 120, 240, 35);
+ ExitLabel->SetTextId(STR_CLOSE); /*关闭*/
+ ExitLabel->SetStyle(STYLE_TEXT_FONT, 30);
+ ExitLabel->SetStyle(STYLE_LINE_HEIGHT, 35);
+ ExitLabel->SetLineBreakMode(UILabel::LINE_BREAK_OSCILLATION);
+ ExitLabel->SetFont(DEFAULT_VECTOR_FONT_FILENAME, 30);
+ ExitLabel->SetAlign(TEXT_ALIGNMENT_CENTER, TEXT_ALIGNMENT_CENTER);
+ scrollView->Add(ExitLabel);
return true;
}
.top = 120,
.width = 380,
.height = 100,
- .fontSize = 30,
- .lineHeigh = 35,
.viewId = THEME_STYLE_LIST,
- .textId = STR_LIST_DISPLAY,
};
- int top = 120;
- // const char *viewId[MAX_STYLE] = {THEME_STYLE_LIST, THEME_STYLE_HEXAGONS, THEME_STYLE_FOOTBALL};
- // uint16_t textId[MAX_STYLE] = {STR_LIST_DISPLAY, STR_CELLULAR_DISPLAY, STR_GRID_DISPLAY};
const char *viewId[MAX_STYLE] = {THEME_STYLE_LIST, THEME_STYLE_HEXAGONS};
- uint16_t textId[MAX_STYLE] = {STR_LIST_DISPLAY, STR_CELLULAR_DISPLAY};
for (int i = 0; i < MAX_STYLE; i++)
{
- labelbuttonconfig.top = top + 120 * i;
+ labelbuttonconfig.top = 120 + 120 * i;
labelbuttonconfig.viewId = viewId[i];
- labelbuttonconfig.textId = textId[i];
ThemeStyleLabelButton[i] = ThemeStyleLabelButtonViewInit(labelbuttonconfig);
if (ThemeStyleLabelButton[i] == nullptr)
{
ExitLabelButton->Resize(labelbuttonconfig.width, labelbuttonconfig.height);
ExitLabelButton->SetViewId(THEMESTYLEVIEWEXIT);
ExitLabelButton->SetStyle(STYLE_BACKGROUND_COLOR, 0xff191919);
- ExitLabelButton->SetTextId(STR_CLOSE);
- ExitLabelButton->SetFont(DEFAULT_VECTOR_FONT_FILENAME, 30);
- ExitLabelButton->SetStyle(STYLE_LINE_HEIGHT, labelbuttonconfig.lineHeigh);
ExitLabelButton->SetStyleForState(STYLE_BACKGROUND_COLOR, 0xff000000, UIButton::PRESSED);
- ExitLabelButton->SetStyleForState(STYLE_BORDER_COLOR, 0xffffffff, UIButton::PRESSED);
- ExitLabelButton->SetStyleForState(STYLE_BORDER_OPA, 0x00, UIButton::PRESSED);
ExitLabelButton->SetOnClickListener(presenter_);
scrollView->Add(ExitLabelButton);
.src = THEMESTYLE_LIST_IMAGEPATH,
};
int y = 150;
- //const char *src[MAX_STYLE] = {THEMESTYLE_LIST_IMAGEPATH, THEMESTYLE_HEXAGONS_IMAGEPATH, THEMESTYLE_FOOTBALL_IMAGEPATH};
+ // const char *src[MAX_STYLE] = {THEMESTYLE_LIST_IMAGEPATH, THEMESTYLE_HEXAGONS_IMAGEPATH, THEMESTYLE_FOOTBALL_IMAGEPATH};
const char *src[MAX_STYLE] = {THEMESTYLE_LIST_IMAGEPATH, THEMESTYLE_HEXAGONS_IMAGEPATH};
for (int i = 0; i < MAX_STYLE; i++)
{
void ThemeStyleView::ThemeStyleViewInit(void)
{
WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "ThemeStyleView::ThemeStyleViewInit");
- if (!CreateThemeStyleScrollView() || !CreateThemeStyleLabelView() ||
- !CreateThemeStyleLabelButtonView() || !CreateThemeStyleImageView())
+ if (!CreateThemeStyleScrollView() || !CreateThemeStyleLabelButtonView() ||
+ !CreateThemeStyleLabelView() || !CreateThemeStyleImageView())
{
WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "ThemeStyleView::ThemeStyleViewInit fail!!");
return;
}
UpdateSelectedStyle();
+
+ initViewStatus = true;
}
void ThemeStyleView::OnStart()
container_->SetTouchable(true);
container_->SetDraggable(true);
- ThemeStyleViewInit();
- SetKeyActListener();
+ if (!initViewStatus)
+ {
+ ThemeStyleViewInit();
+ }
+ RootView::GetInstance()->SetOnKeyActListener(presenter_);
}
void ThemeStyleView::OnSetUpView()