2 * Copyright (c) 2013, TOYOTA MOTOR CORPORATION.
4 * This program is licensed under the terms and conditions of the
5 * Apache License, version 2.0. The full text of the Apache License is at
6 * http://www.apache.org/licenses/LICENSE-2.0
14 #include "CicoHomeScreen.h"
15 #include "CicoHSSystemState.h"
17 /*============================================================================*/
19 /*============================================================================*/
20 CicoHomeScreen * CicoHomeScreen::hs_instance;
22 /*============================================================================*/
24 /*============================================================================*/
25 /*--------------------------------------------------------------------------*/
27 * @brief CicoHomeScreen::CicoHomeScreen
33 /*--------------------------------------------------------------------------*/
34 CicoHomeScreen::CicoHomeScreen(void)
37 for(int ii = 0;ii < ICO_HS_MAX_APP_NUM;ii++){
56 ctl_bar_window = NULL;
58 //mode = ICO_HS_MODE_MENU;
59 mode = ICO_HS_MODE_APPLICATION;
65 /*--------------------------------------------------------------------------*/
67 * @brief CicoHomeScreen::~CicoHomeScreen
73 /*--------------------------------------------------------------------------*/
74 CicoHomeScreen::~CicoHomeScreen(void)
76 /* Do not somthing to do */
79 /*--------------------------------------------------------------------------*/
81 * @brief CicoHomeScreen::ShowHomeScreenLayer
82 * Show Home screen layer
87 /*--------------------------------------------------------------------------*/
89 CicoHomeScreen::ShowHomeScreenLayer(void)
91 /*show home screen layers*/
92 ico_syc_show_layer(HS_LAYER_APPLICATION);
93 ico_syc_show_layer(HS_LAYER_HOMESCREEN);
94 ico_syc_show_layer(HS_LAYER_TOUCH);
97 /*--------------------------------------------------------------------------*/
99 * @brief CicoHomeScreen::GetHsPackageName
100 * get HomeScreen package name
103 * @return package name
105 /*--------------------------------------------------------------------------*/
107 CicoHomeScreen::GetHsPackageName(void)
109 return hs_package_name;
112 /*--------------------------------------------------------------------------*/
114 * @brief CicoHomeScreen::GetHsPackageName
115 * get StatusBar package name
118 * @return package name
120 /*--------------------------------------------------------------------------*/
122 CicoHomeScreen::GetSbPackageName(void)
124 return sb_package_name;
127 /*--------------------------------------------------------------------------*/
129 * @brief CicoHomeScreen::GetHsPackageName
130 * get OnScreen package name
133 * @return package name
135 /*--------------------------------------------------------------------------*/
137 CicoHomeScreen::GetOsPackageName(void)
139 return os_package_name;
142 /*--------------------------------------------------------------------------*/
144 * @brief CicoHomeScreen::CreateAppInfoList
145 * create application info list
150 /*--------------------------------------------------------------------------*/
152 CicoHomeScreen::CreateAppInfoList(void)
154 /* get APP information*/
155 std::vector<CicoSCAilItems> aillist = life_cycle_controller->getAilList();
157 for(int ii = 0; ii < ICO_HS_MAX_APP_NUM; ii++) {
158 if(apps_info[ii] != NULL){
159 delete apps_info[ii];
165 for(unsigned int ii = 0;
166 (ii < aillist.size()) && (ii < ICO_HS_MAX_APP_NUM);
168 apps_info[ii] = new CicoHSAppInfo(aillist[ii].m_appid.c_str());
173 /*--------------------------------------------------------------------------*/
175 * @brief CicoHomeScreen::GetAppInfo
176 * get application info
178 * @param[in] appid application id
179 * @return Application info
181 /*--------------------------------------------------------------------------*/
183 CicoHomeScreen::GetAppInfo(const char *appid)
185 for(int ii = 0;ii < application_num;ii++){
186 if(strcmp(apps_info[ii]->GetAppId(),appid) == 0){
187 return apps_info[ii];
193 /*--------------------------------------------------------------------------*/
195 * @brief CicoHomeScreen::GetAppStatus
196 * get application status
198 * @param[in] appid application id
199 * @return Application info
201 /*--------------------------------------------------------------------------*/
203 CicoHomeScreen::GetAppStatus(const char *appid)
205 for(int ii = 0;ii < hs_instance->application_num;ii++){
206 if(strcmp(hs_instance->apps_info[ii]->GetAppId(),appid) == 0){
207 return hs_instance->apps_info[ii]->GetStatus();
213 /*--------------------------------------------------------------------------*/
215 * @brief CicoHomeScreen::GetWindowInfo
218 * @param[in] appinfo application info
219 * @param[in] window window name
220 * @return Window info
222 /*--------------------------------------------------------------------------*/
224 CicoHomeScreen::GetWindowInfo(CicoHSAppInfo *appinfo,const char *window)
226 return appinfo->GetWindowInfo(window);
229 /*--------------------------------------------------------------------------*/
231 * @brief CicoHomeScreen::UpdateTile
234 * @param[in] appid application id
235 * @return Window info
237 /*--------------------------------------------------------------------------*/
239 CicoHomeScreen::UpdateTile(const char *appid)
241 CicoHSAppInfo *appinfo = GetAppInfo(appid);
245 if(appinfo->GetStatus() == false){
247 menu_window->ValidMenuIcon(appid);
248 ICO_DBG("CicoHomeScreen::UpdateTile: show menuIcon %s",appid);
251 menu_window->ValidThumbnail(appid,appinfo->GetLastSurface());
252 ICO_DBG("CicoHomeScreen::ExecuteApp_i: raise app %s",appid);
256 /*--------------------------------------------------------------------------*/
258 * @brief CicoHomeScreen::ExecuteApp_i
259 * execute and showing application
261 * @param[in] appid application id
264 /*--------------------------------------------------------------------------*/
266 CicoHomeScreen::ExecuteApp_i(const char *appid)
268 CicoHSAppInfo *appinfo = GetAppInfo(appid);
273 if(appinfo->GetStatus() == false){
276 ICO_DBG("CicoHomeScreen::ExecuteApp_i: execute app %s",appid);
279 RaiseApplicationWindow(appinfo->GetAppId(),appinfo->GetLastSurface());
280 ICO_DBG("CicoHomeScreen::ExecuteApp_i: raise app %s",appid);
282 /* hide HomeScreen layer */
283 if(GetMode() == ICO_HS_MODE_MENU){
284 ChangeMode(ICO_HS_SHOW_HIDE_PATTERN_FADE);
288 /*--------------------------------------------------------------------------*/
290 * @brief CicoHomeScreen::TerminateApp_i
291 * teminate application
293 * @param[in] appid application id
296 /*--------------------------------------------------------------------------*/
298 CicoHomeScreen::TerminateApp_i(const char *appid)
301 CicoHSAppInfo *appinfo = GetAppInfo(appid);
307 appinfo->Terminate();
309 /* hide HomeScreen layer */
310 if(GetMode() == ICO_HS_MODE_MENU){
311 ChangeMode(ICO_HS_SHOW_HIDE_PATTERN_FADE);
315 /*--------------------------------------------------------------------------*/
317 * @brief CicoHomeScreen::ShowHomeScreenWindow
318 * show window (home screen)
320 * @param[in] win attr window attribute
323 /*--------------------------------------------------------------------------*/
325 CicoHomeScreen::ShowHomeScreenWindow(ico_syc_win_attr_t *win_attr)
327 ico_syc_win_move_t move;
331 move.width = full_width;
333 if(strncmp(win_attr->name,ICO_HS_BACK_WINDOW_TITLE,
334 ICO_MAX_TITLE_NAME_LEN) == 0){
335 move.pos_y = ICO_HS_STATUSBAR_WINDOW_HEIGHT;
336 move.height = full_height - ICO_HS_STATUSBAR_WINDOW_HEIGHT -
337 ICO_HS_CONTROLBAR_WINDOW_HEIGHT;
338 layer = HS_LAYER_BACKGROUND;
339 }else if(strncmp(win_attr->name,ICO_HS_CONTROL_BAR_WINDOW_TITLE,
340 ICO_MAX_TITLE_NAME_LEN) == 0){
341 move.pos_y = full_height - ICO_HS_CONTROLBAR_WINDOW_HEIGHT;
342 move.height = ICO_HS_CONTROLBAR_WINDOW_HEIGHT;
343 layer = HS_LAYER_TOUCH;
344 }else if(strncmp(win_attr->name,ICO_HS_MENU_WINDOW_TITLE,
345 ICO_MAX_TITLE_NAME_LEN) == 0){
346 move.pos_y = ICO_HS_STATUSBAR_WINDOW_HEIGHT;
347 move.height = full_height - ICO_HS_STATUSBAR_WINDOW_HEIGHT -
348 ICO_HS_CONTROLBAR_WINDOW_HEIGHT;
349 layer = HS_LAYER_HOMESCREEN;
355 ico_syc_change_layer(win_attr->appid,win_attr->surface,layer);
356 ICO_DBG("CicoHomeScreen::ShowHomeScreenWindow: id(%s) name(%s) surface(%d) pos(%d,%d) size(%d,%d)",win_attr->appid,
357 win_attr->name,win_attr->surface,move.pos_x,move.pos_y,
358 move.width,move.height);
359 ico_syc_move(win_attr->appid,win_attr->surface,&move,NULL);
361 /*first time menu is unvisible*/
362 if((strncmp(win_attr->name,ICO_HS_MENU_WINDOW_TITLE,
363 ICO_MAX_TITLE_NAME_LEN) == 0) &&
364 (GetMode() == ICO_HS_MODE_APPLICATION)){
368 ico_syc_show(win_attr->appid, win_attr->surface,NULL);
371 /*--------------------------------------------------------------------------*/
373 * @brief CicoHomeScreen::ShowStatusBarWindow
374 * show window (home screen)
376 * @param[in] win attr window attribute
379 /*--------------------------------------------------------------------------*/
381 CicoHomeScreen::ShowStatusBarWindow(ico_syc_win_attr_t *win_attr)
383 ico_syc_win_move_t move;
388 move.width = full_width;
389 move.height = ICO_HS_STATUSBAR_WINDOW_HEIGHT;
390 layer = HS_LAYER_HOMESCREEN;
392 ico_syc_change_layer(win_attr->appid,win_attr->surface,layer);
393 ICO_DBG("CicoHomeScreen::ShowStatusBarWindow: id(%s) name(%s) surface(%d) pos(%d,%d) size(%d,%d)",win_attr->appid,
394 win_attr->name,win_attr->surface,move.pos_x,move.pos_y,
395 move.width,move.height);
396 ico_syc_move(win_attr->appid,win_attr->surface,&move,NULL);
397 ico_syc_show(win_attr->appid, win_attr->surface,NULL);
399 /*--------------------------------------------------------------------------*/
401 * @brief CicoHomeScreen::ShowApplicationWindow
402 * show window (application)
404 * @param[in] win attr window attribute
407 /*--------------------------------------------------------------------------*/
409 CicoHomeScreen::ShowApplicationWindow(ico_syc_win_attr_t *win_attr)
412 ico_syc_win_move_t move;
416 move.width = full_width;
417 move.pos_y = ICO_HS_STATUSBAR_WINDOW_HEIGHT;
418 move.height = full_height - ICO_HS_STATUSBAR_WINDOW_HEIGHT -
419 ICO_HS_CONTROLBAR_WINDOW_HEIGHT;
420 layer = HS_LAYER_APPLICATION;
422 ico_syc_change_layer(win_attr->appid,win_attr->surface,layer);
423 ico_syc_move(win_attr->appid,win_attr->surface,&move,NULL);
424 ico_syc_show(win_attr->appid, win_attr->surface,NULL);
426 /*--------------------------------------------------------------------------*/
428 * @brief CicoHomeScreen::RaiseApplicationWindow
429 * raise window (application)
431 * @param[in] appid application id
432 * @param[in] surface surface
435 /*--------------------------------------------------------------------------*/
437 CicoHomeScreen::RaiseApplicationWindow(const char *appid,int surface)
439 ico_syc_show(appid, surface,NULL);
441 /*--------------------------------------------------------------------------*/
443 * @brief CicoHomeScreen::EventCallBack
444 * callback for system controller
446 * @param[in] event kind of event
447 * @param[in] detail detail
448 * @param[in] user_data user data
451 /*--------------------------------------------------------------------------*/
453 CicoHomeScreen::EventCallBack(const ico_syc_ev_e event,
454 const void *detail,void *user_data)
456 ICO_DBG("CicoHomeScreen::EventCallBack: start (event %d)",event);
457 if(event == ICO_SYC_EV_WIN_CREATE){
458 ico_syc_win_info_t *win_info =
459 reinterpret_cast<ico_syc_win_info_t*>(const_cast<void*>(detail));
460 ICO_DBG("CicoHomeScreen::EventCallBack : win create %s %i",
461 win_info->appid,win_info->surface);
462 /*only save information*/
463 if(strncmp(win_info->appid, hs_instance->GetHsPackageName(),
464 ICO_HS_MAX_PROCESS_NAME) == 0){
466 hs_instance->hs_app_info->AddWindowInfo(win_info);
467 }else if(strncmp(win_info->appid,
468 hs_instance->GetSbPackageName(),
469 ICO_HS_MAX_PROCESS_NAME) == 0){
471 hs_instance->sb_app_info->AddWindowInfo(win_info);
472 }else if(strncmp(win_info->appid,
473 hs_instance->GetOsPackageName(),
474 ICO_HS_MAX_PROCESS_NAME) == 0){
476 hs_instance->os_app_info->AddWindowInfo(win_info);
479 CicoHSAppInfo *appinfo =
480 hs_instance->GetAppInfo(win_info->appid);
484 appinfo->AddWindowInfo(win_info);
487 else if(event == ICO_SYC_EV_WIN_DESTROY){
488 ico_syc_win_info_t *win_info =
489 reinterpret_cast<ico_syc_win_info_t*>(const_cast<void*>(detail));
490 ICO_DBG("CicoHomeScreen::EventCallBack : win delete %s %i",
491 win_info->appid,win_info->surface);
492 /*only save information*/
493 if(strncmp(win_info->appid, hs_instance->GetHsPackageName(),
494 ICO_HS_MAX_PROCESS_NAME) == 0){
495 hs_instance->hs_app_info->FreeWindowInfo(win_info->name);
496 }else if(strncmp(win_info->appid,
497 hs_instance->GetSbPackageName(),
498 ICO_HS_MAX_PROCESS_NAME) == 0){
499 hs_instance->sb_app_info->FreeWindowInfo(win_info->name);
500 }else if(strncmp(win_info->appid,
501 hs_instance->GetOsPackageName(),
502 ICO_HS_MAX_PROCESS_NAME) == 0){
503 hs_instance->os_app_info->FreeWindowInfo(win_info->name);
506 CicoHSAppInfo *appinfo =
507 hs_instance->GetAppInfo(win_info->appid);
511 hs_instance->UpdateTile(win_info->appid);
512 appinfo->FreeWindowInfo(win_info->name);
515 else if(event == ICO_SYC_EV_WIN_ACTIVE){
516 ico_syc_win_info_t *win_info =
517 reinterpret_cast<ico_syc_win_info_t*>(const_cast<void*>(detail));
519 CicoHSAppInfo *appinfo = hs_instance->GetAppInfo(win_info->appid);
523 appinfo->SetLastSurface(win_info->surface);
525 else if(event == ICO_SYC_EV_WIN_ATTR_CHANGE){
526 ico_syc_win_attr_t *win_attr =
527 reinterpret_cast<ico_syc_win_attr_t*>(const_cast<void*>(detail));
528 ICO_DBG("CicoHomeScreen::EventCallBack : win attr %s %s %d",
529 win_attr->appid,win_attr->name,win_attr->surface);
530 if(strncmp(win_attr->appid, hs_instance->GetHsPackageName(),
531 ICO_HS_MAX_PROCESS_NAME) == 0){
533 hs_instance->hs_app_info->AddWindowAttr(win_attr);
535 if(strncmp(win_attr->name,ICO_HS_MENU_WINDOW_TITLE,
536 ICO_MAX_TITLE_NAME_LEN) == 0){
537 hs_instance->menu_window->SetMenuWindowID(win_attr->appid,
540 else if(strncmp(win_attr->name,ICO_HS_CONTROL_BAR_WINDOW_TITLE,
541 ICO_MAX_TITLE_NAME_LEN) == 0){
542 hs_instance->ctl_bar_window->SetWindowID(win_attr->appid,
545 ico_hs_window_info * l_win_info =
546 hs_instance->GetWindowInfo(hs_instance->hs_app_info,
548 if(l_win_info == NULL){
551 if(hs_instance->hs_app_info->GetShowed(l_win_info) == true){
555 hs_instance->ShowHomeScreenWindow(win_attr);
556 hs_instance->hs_app_info->SetShowed(l_win_info,true);
557 }else if(strncmp(win_attr->appid, hs_instance->GetSbPackageName(),
558 ICO_HS_MAX_PROCESS_NAME) == 0){
560 hs_instance->sb_app_info->AddWindowAttr(win_attr);
561 ico_hs_window_info * l_win_info =
562 hs_instance->GetWindowInfo(hs_instance->sb_app_info,
564 if(l_win_info == NULL){
567 if(hs_instance->sb_app_info->GetShowed(l_win_info) == true){
570 hs_instance->ShowStatusBarWindow(win_attr);
571 hs_instance->sb_app_info->SetShowed(l_win_info,true);
572 }else if(strncmp(win_attr->appid, hs_instance->GetOsPackageName(),
573 ICO_HS_MAX_PROCESS_NAME) == 0){
575 hs_instance->os_app_info->AddWindowAttr(win_attr);
577 ICO_DBG("CicoHomeScreen::EventCallBack : application window %s %s",
578 win_attr->appid,win_attr->name);
580 CicoHSAppInfo *appinfo = hs_instance->GetAppInfo(win_attr->appid);
584 ico_hs_window_info * l_win_info =
585 hs_instance->GetWindowInfo(appinfo,
587 if(l_win_info == NULL){
590 if(appinfo->GetShowed(l_win_info) == true){
594 appinfo->AddWindowAttr(win_attr);
595 appinfo->SetLastSurface(win_attr->surface);
596 hs_instance->ShowApplicationWindow(win_attr);
597 ico_syc_change_active(win_attr->appid,win_attr->surface);
598 hs_instance->UpdateTile(win_attr->appid);
599 hs_instance->hs_app_info->SetShowed(l_win_info,true);
602 else if(event == ICO_SYC_EV_THUMB_CHANGE){
603 ico_syc_thumb_info_t *thumb_info =
604 reinterpret_cast<ico_syc_thumb_info_t*>(const_cast<void*>(detail));
605 CicoHSAppInfo *appinfo = hs_instance->GetAppInfo(thumb_info->appid);
606 ICO_DBG("CicoHomeScreen::EventCallBack : ICO_SYC_EV_THUMB_CHANGE %s",
612 hs_instance->menu_window->SetThumbnail(thumb_info->appid,thumb_info->surface);
614 else if(event == ICO_SYC_EV_LAYER_ATTR_CHANGE){
617 else if(event == ICO_SYC_EV_USERLIST){
620 else if(event == ICO_SYC_EV_AUTH_FAIL){
623 else if(event == ICO_SYC_EV_RES_ACQUIRE){
626 else if(event == ICO_SYC_EV_RES_DEPRIVE){
629 else if(event == ICO_SYC_EV_RES_WAITING){
632 else if(event == ICO_SYC_EV_RES_REVERT){
635 else if(event == ICO_SYC_EV_RES_RELEASE){
638 else if(event == ICO_SYC_EV_INPUT_SET){
641 else if(event == ICO_SYC_EV_INPUT_UNSET){
644 else if(event == ICO_SYC_EV_STATE_CHANGE) {
645 ico_syc_state_info_t *state_info =
646 reinterpret_cast<ico_syc_state_info_t*>(const_cast<void*>(detail));
648 ICO_DBG("RECV: ICO_SYC_EV_STATE_CHANGE(id=%d state=%d)",
649 state_info->id, state_info->state);
650 if (ICO_SYC_STATE_REGULATION == state_info->id) {
651 // set regulation state
652 CicoHSSystemState::getInstance()->setRegulation(
653 (state_info->state == ICO_SYC_STATE_ON) ? true : false);
655 ico_syc_animation_t animation;
656 animation.name = (char*)ICO_HS_MENU_HIDE_ANIMATION_SLIDE;
657 animation.time = ICO_HS_MENU_ANIMATION_DURATION;
658 hs_instance->menu_window->Hide(&animation);
659 hs_instance->ctl_bar_window->SetRegulation();
661 else if (ICO_SYC_STATE_NIGHTMODE == state_info->id) {
662 // set night mode state
663 CicoHSSystemState::getInstance()->setNightMode(
664 (state_info->state == ICO_SYC_STATE_ON) ? true : false);
666 hs_instance->ctl_bar_window->SetNightMode();
667 hs_instance->menu_window->SetNightMode();
671 ICO_DBG("CicoHomeScreen::EventCallBack: end");
674 /*--------------------------------------------------------------------------*/
676 * @brief CicoHomeScreen::StartRelations
677 * Execute Onscreen and Statusbar
682 /*--------------------------------------------------------------------------*/
684 CicoHomeScreen::StartRelations(void)
687 strncpy(sb_package_name,
688 (char *)config->ConfigGetString(ICO_HS_CONFIG_HOMESCREEN,
690 ICO_HS_APPID_DEFAULT_SB),
691 ICO_HS_MAX_PROCESS_NAME);
692 strncpy(os_package_name,
693 (char *)config->ConfigGetString(ICO_HS_CONFIG_HOMESCREEN,
695 ICO_HS_APPID_DEFAULT_ONS),
696 ICO_HS_MAX_PROCESS_NAME);
698 /* start onscreen & statusbar apps */
700 os_app_info = new CicoHSAppInfo(os_package_name);
701 ret = os_app_info->Execute();
703 ICO_WRN("execute failed(%s) err=%d", os_package_name, ret);
707 sb_app_info = new CicoHSAppInfo(sb_package_name);
708 ret = sb_app_info->Execute();
710 ICO_WRN("execute failed(%s) err=%d", sb_package_name, ret);
715 /*--------------------------------------------------------------------------*/
717 * @brief CicoHomeScreen::Initialize
720 * @param[in] orientation vertical or horizontal
721 * @param[in] config config
722 * @return OK or ERROR
724 /*--------------------------------------------------------------------------*/
726 CicoHomeScreen::Initialize(int orientation,CicoHomeScreenConfig *config)
729 ICO_DBG("CicoHomeScreen::Initialize: start");
730 /*save instance pointer */
734 this->config = config;
736 /* get pkg name (home screen,status bar,on screen)*/
738 ICO_DBG("CicoHomeSceen::Initialize: %s: %s",
739 getenv("HOME"), getenv("PKG_NAME"));
740 pkg = getenv("PKG_NAME");
741 memset(hs_package_name, 0, ICO_HS_MAX_PROCESS_NAME);
743 strncpy(hs_package_name, pkg, ICO_HS_MAX_PROCESS_NAME);
746 strncpy(hs_package_name, ICO_HS_PROC_DEFAULT_HOMESCREEN,
747 ICO_HS_MAX_PROCESS_NAME);
750 /* Initialize WindowController */
751 CicoHSWindowController::Initialize();
752 ICO_DBG("CicoHomeScreen::Initialize: window controller initialized");
754 ICO_DBG("CicoHomeScreen::Initialize: start connect to systemcontroller");
755 ico_syc_connect(EventCallBack,NULL);
756 ICO_DBG("CicoHomeScreen::Initialize: end connect to systemcontroller");
758 /*init lifecycle controller*/
759 CicoSCSystemConfig::getInstance()->load(ICO_HS_LIFECYCLE_CONTROLLER_SETTING_PATH);
760 life_cycle_controller = CicoSCLifeCycleController::getInstance();
762 /*initialize system controller*/
764 ICO_DBG("CicoHomeScreen::Initialize: get package name %s",hs_package_name);
765 hs_app_info = new CicoHSAppInfo(hs_package_name);
767 /*start home statusbar and onscreen*/
769 ICO_DBG("CicoHomeScreen::Initialize: start relation apps");
771 /* Get screen size */
772 CicoHSWindowController::GetFullScreenSize(orientation,
773 &full_width,&full_height);
775 ICO_DBG("full screen size x=%d y=%d",full_width,full_height);
777 /* MenuScreen Window Size */
778 menu_width = full_width;
779 menu_height = full_height - ICO_HS_STATUSBAR_WINDOW_HEIGHT -
780 ICO_HS_CONTROLBAR_WINDOW_HEIGHT;
782 /* BackGround Window Size */
783 bg_width = full_width;
784 bg_height = full_height;
786 /* Control Bar Window Size */
787 ctl_bar_width = full_width;
788 ctl_bar_height = ICO_HS_CONTROLBAR_WINDOW_HEIGHT;
790 ICO_DBG("CicoHomeScreen::Initialize: end");
795 /*--------------------------------------------------------------------------*/
797 * @brief CicoHomeScreen::Finalize
803 /*--------------------------------------------------------------------------*/
805 CicoHomeScreen::Finalize(void)
807 /* Finalize WindowController */
808 CicoHSWindowController::Finalize();
810 ico_syc_disconnect();
815 /*--------------------------------------------------------------------------*/
817 * @brief CicoHomeScreen::CreateMenuWindow
823 /*--------------------------------------------------------------------------*/
825 CicoHomeScreen::CreateMenuWindow(void)
828 menu_window = new CicoHSMenuWindow();
829 menu_window->CreateMenuWindow(ICO_HS_WINDOW_POS_X,ICO_HS_WINDOW_POS_Y,
830 menu_width,menu_height);
831 menu_window->ShowWindow();
834 /*--------------------------------------------------------------------------*/
836 * @brief CicoHomeScreen::DeleteMenuWindow
842 /*--------------------------------------------------------------------------*/
844 CicoHomeScreen::DeleteMenuWindow(void)
846 if(menu_window == NULL){
849 menu_window->FreeMenuWindow();
853 /*--------------------------------------------------------------------------*/
855 * @brief CicoHomeScreen::UpdateMenuWindow
861 /*--------------------------------------------------------------------------*/
863 CicoHomeScreen::UpDateMenuWindow(void)
869 /*--------------------------------------------------------------------------*/
871 * @brief CicoHomeScreen::CreateBackWindow
877 /*--------------------------------------------------------------------------*/
879 CicoHomeScreen::CreateBackWindow(void)
882 back_window = new CicoHSBackWindow();
883 back_window->CreateBackWindow(ICO_HS_WINDOW_POS_X,ICO_HS_WINDOW_POS_Y,
885 back_window->ShowWindow();
888 /*--------------------------------------------------------------------------*/
890 * @brief CicoHomeScreen::CreateBackWindow
896 /*--------------------------------------------------------------------------*/
898 CicoHomeScreen::DeleteBackWindow(void)
900 if(back_window == NULL){
903 back_window->FreeBackWindow();
908 /*--------------------------------------------------------------------------*/
910 * @brief CicoHomeScreen::UpDateBackWindow
916 /*--------------------------------------------------------------------------*/
918 CicoHomeScreen::UpDateBackWindow(void)
924 /*--------------------------------------------------------------------------*/
926 * @brief CicoHomeScreen::CreateControlBarWindow
927 * create control bar window
932 /*--------------------------------------------------------------------------*/
934 CicoHomeScreen::CreateControlBarWindow(void)
937 ctl_bar_window = new CicoHSControlBarWindow();
938 ctl_bar_window->CreateControlBarWindow(ICO_HS_MENU_WINDOW_POS_X,bg_height -
939 ctl_bar_height,ctl_bar_width,
941 ctl_bar_window->ShowWindow();
944 /*--------------------------------------------------------------------------*/
946 * @brief CicoHomeScreen::CreateControlBarWindow
947 * delete control bar window
952 /*--------------------------------------------------------------------------*/
954 CicoHomeScreen::DeleteControlBarWindow(void)
956 if(ctl_bar_window == NULL){
959 ctl_bar_window->FreeControlBarWindow();
960 delete ctl_bar_window;
964 /*--------------------------------------------------------------------------*/
966 * @brief CicoHomeScreen::StartLoop
972 /*--------------------------------------------------------------------------*/
974 CicoHomeScreen::StartLoop(void)
976 CicoHSWindowController::StartEcoreLoop();
979 /*--------------------------------------------------------------------------*/
981 * @brief CicoHomeScreen::StartHomeScreen
987 /*--------------------------------------------------------------------------*/
989 CicoHomeScreen::StartHomeScreen()
991 /*Get application info*/
998 CreateControlBarWindow();
1003 /*Show Home Screen*/
1004 ShowHomeScreenLayer();
1010 /*--------------------------------------------------------------------------*/
1012 * @brief CicoHomeScreen::GetMode
1015 * @param[in] mode status
1018 /*--------------------------------------------------------------------------*/
1020 CicoHomeScreen::GetMode(void)
1024 /*--------------------------------------------------------------------------*/
1026 * @brief CicoHomeScreen::SetMode
1029 * @param[in] mode status
1032 /*--------------------------------------------------------------------------*/
1034 CicoHomeScreen::SetMode(int mode)
1038 /*--------------------------------------------------------------------------*/
1040 * @brief CicoHomeScreen::ChangeMode
1046 /*--------------------------------------------------------------------------*/
1048 CicoHomeScreen::ChangeMode(int pattern)
1050 if(hs_instance->menu_window == NULL){
1054 if(hs_instance->GetMode() == ICO_HS_MODE_MENU){
1055 ico_syc_animation_t animation;
1056 if(pattern == ICO_HS_SHOW_HIDE_PATTERN_SLIDE){
1057 animation.name = (char*)ICO_HS_MENU_HIDE_ANIMATION_SLIDE;
1059 animation.name = (char*)ICO_HS_MENU_HIDE_ANIMATION_FADE;
1061 animation.time = ICO_HS_MENU_ANIMATION_DURATION;
1062 hs_instance->menu_window->Hide(&animation);
1063 hs_instance->SetMode(ICO_HS_MODE_APPLICATION);
1064 }else if(hs_instance->GetMode() ==ICO_HS_MODE_APPLICATION){
1065 ico_syc_animation_t animation;
1066 if(pattern == ICO_HS_SHOW_HIDE_PATTERN_SLIDE){
1067 animation.name = (char*)ICO_HS_MENU_SHOW_ANIMATION_SLIDE;
1069 animation.name = (char*)ICO_HS_MENU_SHOW_ANIMATION_FADE;
1071 animation.time = ICO_HS_MENU_ANIMATION_DURATION;
1072 hs_instance->menu_window->Show(&animation);
1073 hs_instance->SetMode(ICO_HS_MODE_MENU);
1076 /*--------------------------------------------------------------------------*/
1078 * @brief CicoHomeScreen::ExecuteApp
1079 * execute application
1084 /*--------------------------------------------------------------------------*/
1086 CicoHomeScreen::ExecuteApp(const char*appid)
1088 hs_instance->ExecuteApp_i(appid);
1090 /*--------------------------------------------------------------------------*/
1092 * @brief CicoHomeScreen::TerminateApp
1093 * teminate application
1098 /*--------------------------------------------------------------------------*/
1100 CicoHomeScreen::TerminateApp(const char*appid)
1102 hs_instance->TerminateApp_i(appid);
1104 // vim: set expandtab ts=4 sw=4: