namespace OHOS\r
{\r
\r
+ \r
+ struct SystemView_ext_p\r
+ {\r
+ const int16_t viewId;\r
+ char *viewid_str;\r
+ bool enable_falg;\r
+ };\r
+ \r
+\r
+ // 2.ViewMapper[] 是一个静态的视图映射数组,将视图ID与MainStopWatchView类中的特定成员函数指针进行了绑定。\r
+ static SystemView_ext_p ViewMapper_t[] = {\r
+ {ABOUTTHEWATCHVIEW,"AboutTheWatchButton",true},\r
+ {SUPERVISEVIEW,"SuperviseButton",true},\r
+ {SYSTEMLANGUAGEVIEW,"SystemLanguageButton",false},\r
+ {FACTORYRESETVIEW,"FactoryResetButton",true},\r
+ {SYSTEMLUPGRADE,"systemupgread",true}};\r
+ \r
+ // {ABOUTTHEWATCHVIEW, &SystemView::ChangeSystemAboutView},\r
+ // {SUPERVISEVIEW, &SystemView::ChangeSystemSuperviseView},\r
+ // {SYSTEMLANGUAGEVIEW, &SystemView::ChangeSystemLanguageView},\r
+\r
// 当前Presenter属性实例化的内存指针\r
static SystemPresenter *g_pSystemPresenter = nullptr;\r
\r
bool SystemPresenter::OnClick(UIView &view, const ClickEvent &event)\r
{\r
SystemView *p_SystemView = SystemView::GetInstance();\r
+ int len=sizeof(ViewMapper_t)/sizeof(SystemView_ext_p);\r
+ //int len=5;\r
// 根据控件id查找是哪个控件触发了点击回调\r
- if (strcmp(view.GetViewId(), ABOUT_THE_WATCH) == 0)\r
- {\r
- SystemView::GetInstance()->ChangeView(SYSTEMVIEW, ABOUTTHEWATCHVIEW);\r
- return true;\r
- }\r
- else if (strcmp(view.GetViewId(), SUPERVISE) == 0)\r
- {\r
- SystemView::GetInstance()->ChangeView(SYSTEMVIEW, SUPERVISEVIEW);\r
- return true;\r
- }\r
-#if 0\r
- else if (strcmp(view.GetViewId(), SYSTEM_LANGUAGE) == 0)\r
- {\r
- SystemView::GetInstance()->ChangeView(SYSTEMVIEW, SYSTEMLANGUAGEVIEW);\r
- return true;\r
- }\r
-#endif\r
- else if (strcmp(view.GetViewId(), FACTORY_RESET) == 0)\r
+\r
+ for(int i=0;i<5;i++)\r
{\r
- SystemView::GetInstance()->ChangeView(SYSTEMVIEW, FACTORYRESETVIEW);\r
- return true;\r
+ if(strcmp(view.GetViewId(),ViewMapper_t[i].viewid_str) == 0)\r
+ {\r
+ if(ViewMapper_t[i].enable_falg==true)\r
+ SystemView::GetInstance()->ChangeView(SYSTEMVIEW, ViewMapper_t[i].viewId);\r
+ return true;\r
+ }\r
+\r
}\r
- else if (strcmp(view.GetViewId(), FACTORYRESET_CHECKON) == 0)\r
+\r
+ \r
+ if (strcmp(view.GetViewId(), FACTORYRESET_CHECKON) == 0)\r
{\r
return true;\r
}\r
\r
static SystemView *g_pSystemView{nullptr};\r
\r
+ struct SystemViewMapper_ext\r
+ {\r
+ const int16_t viewId;\r
+ char *viewid_str;\r
+ char *Labe_str;\r
+ bool (SystemView::*func)(int16_t thisView);\r
+ };\r
+ static UILabelButtonExt *button[10]={NULL};\r
+\r
+ // 2.ViewMapper[] 是一个静态的视图映射数组,将视图ID与MainStopWatchView类中的特定成员函数指针进行了绑定。\r
+ SystemViewMapper_ext ViewMapper_t[] = {\r
+ {ABOUTTHEWATCHVIEW,"AboutTheWatchButton","关于手表",&SystemView::ChangeSystemAboutView},\r
+ {SUPERVISEVIEW,"SuperviseButton","监管模式",&SystemView::ChangeSystemSuperviseView},\r
+ {SYSTEMLANGUAGEVIEW,"SystemLanguageButton","切换语言", &SystemView::ChangeSystemLanguageView},\r
+ {FACTORYRESETVIEW,"FactoryResetButton","恢复出厂", &SystemView::ChangeSystemFactoryResetView},\r
+ {SYSTEMLUPGRADE,"systemupgread","系统升级",&SystemView::ChangeSystemFactoryResetView},\r
+ \r
+ // {ABOUTTHEWATCHVIEW, &SystemView::ChangeSystemAboutView},\r
+ // {SUPERVISEVIEW, &SystemView::ChangeSystemSuperviseView},\r
+ // {SYSTEMLANGUAGEVIEW, &SystemView::ChangeSystemLanguageView},\r
+ // {FACTORYRESETVIEW, &SystemView::ChangeSystemFactoryResetView},\r
+ };\r
+ \r
SystemView::SystemView()\r
{\r
WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "SystemView::SystemView");\r
delete draglistener;\r
draglistener = nullptr;\r
}\r
+ for(int i=0;i<MAX_SYSTEMVIEWID-1;i++)\r
+ {\r
+ delete button[i];\r
+ button[i] = nullptr;\r
+\r
+ }\r
delete p_SystemAboutTheWatchView;\r
p_SystemAboutTheWatchView = nullptr;\r
delete p_SystemSuperviseView;\r
return button;\r
}\r
\r
+ UILabelButtonExt *SystemView::SetTheButton_ext(ButtonConfig_ext_t &buttonconfig, UIView::OnClickListener *clickListener)\r
+ {\r
+ UILabelButtonExt *button = new UILabelButtonExt();\r
+ if (button == nullptr)\r
+ {\r
+ WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, " SystemView::SetTheButton: button new fail!");\r
+ return nullptr;\r
+ }\r
+ button->SetPosition(buttonconfig.x, buttonconfig.y, buttonconfig.w, buttonconfig.h);\r
+ button->SetViewId(buttonconfig.ViewId);\r
+ button->SetStyle(STYLE_BACKGROUND_COLOR, 0xff191919);\r
+ button->SetImageSrc(buttonconfig.ImageSrc, buttonconfig.ImageSrc);\r
+ button->SetStyleForState(STYLE_BORDER_COLOR, 0xff0b1928, UIButton::PRESSED);\r
+ button->SetOnClickListener(clickListener);\r
+\r
+ button->SetText(buttonconfig.str);\r
+ button->SetAlign(TEXT_ALIGNMENT_LEFT);\r
+ button->SetLabelPosition(buttonconfig.label_x,buttonconfig.label_y );\r
+ button->SetFont(DEFAULT_VECTOR_FONT_FILENAME, buttonconfig.Fontsize);\r
+ //button->SetStyleForState(STYLE_BORDER_COLOR, 0xff0b1928, UIButton::PRESSED);\r
+\r
+ button->SetImagePosition(326, 37);\r
+ return button;\r
+ }\r
+\r
+ \r
+\r
+ void SystemView::initView_ext(int x,int y,int w,int h,int interval,const char *imagsrc)\r
+ {\r
+ if (!SetTheSystemScrollView())\r
+ {\r
+ WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "SystemView::SetTheSystemScrollView() fail!");\r
+ return;\r
+ }\r
+ if (!SetTheTitle())\r
+ {\r
+ WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "SystemView::SetTheTitle() fail!");\r
+ return;\r
+ }\r
+ /* -------------------------------------------------------------------------- */\r
+ UIView::OnClickListener *clickListener = static_cast<UIView::OnClickListener *>(SystemPresenter::GetInstance());\r
+ /* -------------------------------------------------------------------------- */\r
+ ButtonConfig_ext_t buttonconfig;\r
+ buttonconfig.x = x;\r
+ buttonconfig.y = y;\r
+ buttonconfig.w = w;\r
+ buttonconfig.h = h;\r
+\r
+ int len =sizeof(ViewMapper_t)/sizeof(SystemViewMapper_ext);\r
+\r
+ for(int i=0;i<len;i++)\r
+ {\r
+ buttonconfig.str=ViewMapper_t[i].Labe_str;\r
+ buttonconfig.ViewId = ViewMapper_t[i].viewid_str;\r
+ buttonconfig.ImageSrc = imagsrc;\r
+ buttonconfig.label_x=40;\r
+ buttonconfig.label_y=0;\r
+ buttonconfig.Fontsize=30;\r
+ buttonconfig.ALIGN=TEXT_ALIGNMENT_LEFT;\r
+ button[i] = SetTheButton_ext(buttonconfig, clickListener);\r
+ buttonconfig.y+=interval;\r
+\r
+ }\r
+ /* -------------------------------------------------------------------------- */\r
+ \r
+ }\r
+\r
void SystemView::InitIView(void)\r
{\r
if (!SetTheSystemScrollView())\r
return true;\r
}\r
\r
+ \r
+\r
+ \r
+\r
// 4.跳转到恢复出厂设置界面\r
bool SystemView::ChangeSystemFactoryResetView(int16_t thisView)\r
{\r
// 3.根据传入的interface参数执行相应视图ID关联的成员函数。\r
bool SystemView::ClickFunc(int16_t interface)\r
{\r
- int funcSize = sizeof(ViewMapper) / sizeof(ViewMapper[SYSTEMVIEW]);\r
+ int funcSize = sizeof(ViewMapper_t) / sizeof(ViewMapper_t[SYSTEMVIEW]);\r
for (int i = 0; i < funcSize; i++)\r
{\r
- if (interface == ViewMapper[i].viewId)\r
+ if (interface == ViewMapper_t[i].viewId)\r
{\r
- bool jug = (this->*(ViewMapper[i].func))(interface);\r
+ bool jug = (this->*(ViewMapper_t[i].func))(interface);\r
if (jug == false)\r
{\r
return false;\r
void SystemView::OnStart()\r
{\r
View<SystemPresenter>::OnStart();\r
- InitIView();\r
+ //InitIView();\r
+ initView_ext(43,120,380,100,120,"/user/res/SETTING_NEXT.bin");\r
}\r
\r
void SystemView::OnSetUpView()\r
WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "SystemView:: OnSetUpView has nullptr");\r
return;\r
}\r
+ \r
SystemScrollView[SYSTEMVIEW]->Add(SystemLabel);\r
- SystemScrollView[SYSTEMVIEW]->Add(AboutTheWatchButton);\r
- SystemScrollView[SYSTEMVIEW]->Add(SuperviseButton);\r
- SystemScrollView[SYSTEMVIEW]->Add(SystemLanguageButton);\r
- SystemScrollView[SYSTEMVIEW]->Add(FactoryResetButton);\r
- SystemScrollView[SYSTEMVIEW]->Add(SystemUpgradeButtonExt);\r
+\r
+ int len =sizeof(ViewMapper_t)/sizeof(SystemViewMapper_ext);\r
+\r
+ for(int i=0;i<len;i++)\r
+ {\r
+ SystemScrollView[SYSTEMVIEW]->Add(button[i]);\r
+ }\r
+ // SystemScrollView[SYSTEMVIEW]->Add(SuperviseButton);\r
+ // SystemScrollView[SYSTEMVIEW]->Add(SystemLanguageButton);\r
+ // SystemScrollView[SYSTEMVIEW]->Add(FactoryResetButton);\r
+ // SystemScrollView[SYSTEMVIEW]->Add(SystemUpgradeButtonExt);\r
+\r
RootView::GetInstance()->Add(SystemScrollView[SYSTEMVIEW]);\r
Draw();\r
}\r