2 // Copyright (c) 2012 Samsung Electronics Co., Ltd.
4 // Licensed under the Flora License, Version 1.0 (the License);
5 // you may not use this file except in compliance with the License.
6 // You may obtain a copy of the License at
8 // http://floralicense.org/license/
10 // Unless required by applicable law or agreed to in writing, software
11 // distributed under the License is distributed on an AS IS BASIS,
12 // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 // See the License for the specific language governing permissions and
14 // limitations under the License.
17 //!Internet SettingForm class
18 /*@file: IntSettingForm.cpp
19 *@brief: The SettingForm
23 #include <FGraphics.h>
26 #include "IntCommonLib.h"
27 #include "IntConfirmationPopup.h"
28 #include "IntDefaultCustomItem.h"
29 #include "IntDropDownCustomItem.h"
30 #include "IntHistoryPresentationModel.h"
31 #include "IntMultipleWindowPresentationModel.h"
32 #include "IntNotificationPanel.h"
33 #include "IntRadioCustomItem.h"
34 #include "IntSceneRegister.h"
35 #include "IntSettingForm.h"
36 #include "IntSettingPresentationModel.h"
37 #include "IntSettingToggleCustomItem.h"
40 using namespace Tizen::App;
41 using namespace Tizen::Base;
42 using namespace Tizen::Base::Collection;
43 using namespace Tizen::Graphics;
44 using namespace Tizen::Ui;
45 using namespace Tizen::Ui::Controls;
46 using namespace Tizen::Ui::Scenes;
49 SettingForm::SettingForm(void)
50 : __fontValue(0),__pResetPopup(null),__pWindowInfo(null) , __pConfirmationPopup(null)
54 InitializeSettingValues();
57 SettingForm::~SettingForm(void)
61 delete[] pGroupItemCount;
62 pGroupItemCount = null;
67 SettingForm::InitializeSettingValues(void)
69 AppLog("SettingForm::InitializeSettingValues homepage %ls",SettingPresentationModel::GetInstance()->GetHomepage().GetPointer());
71 pGroupItemCount = new(std::nothrow) int[5];
72 pGroupItemCount[0] = 5; //Homepage
73 pGroupItemCount[1] = 6; //Page content settings
74 pGroupItemCount[2] = 7; //Private and Security
75 pGroupItemCount[3] = 4; //Search
76 pGroupItemCount[4] = 1; //Website settings and Reset
78 for (int iter = (int) SETTING_INVALID + 1; iter < (int) SETTING_MAX; iter++)
80 settingInfo[iter].isSelected = false;
83 AppLogDebug("image display %d", (int) SettingPresentationModel::GetInstance()->IsDisplayImagesEnabled());
84 settingInfo[SETTING_HOMEPAGE_TITLE].titleText = CommonUtil::GetString(L"IDS_BR_BODY_HOMEPAGE");
85 settingInfo[SETTING_HOMEPAGE_TITLE].subText = SettingPresentationModel::GetInstance()->GetHomepage();
86 settingInfo[SETTING_HOMEPAGE_TITLE].itemType = ITEM_TYPE_DROPDOWN;
88 settingInfo[SETTING_CURRENT_PAGE].titleText = CommonUtil::GetString(L"IDS_BR_BODY_CURRENT_PAGE");
89 settingInfo[SETTING_CURRENT_PAGE].subText = L"";
90 settingInfo[SETTING_CURRENT_PAGE].itemType = ITEM_TYPE_RADIO;
92 settingInfo[SETTING_BLANK_PAGE].titleText = CommonUtil::GetString(L"IDS_BR_BODY_BLANK_PAGE");
93 settingInfo[SETTING_BLANK_PAGE].subText = L"";
94 settingInfo[SETTING_BLANK_PAGE].itemType = ITEM_TYPE_RADIO;
95 if (SettingPresentationModel::GetInstance()->GetHomepage().CompareTo((L"IDS_BR_BODY_BLANK_PAGE")) == 0)
97 settingInfo[SETTING_BLANK_PAGE].isSelected = true;
100 settingInfo[SETTING_MOST_VISITED_SITE].titleText = CommonUtil::GetString(L"IDS_BR_BODY_MOST_VISITED_SITES");
101 settingInfo[SETTING_MOST_VISITED_SITE].subText = L"";
102 settingInfo[SETTING_MOST_VISITED_SITE].itemType = ITEM_TYPE_RADIO;
103 if (SettingPresentationModel::GetInstance()->GetHomepage().CompareTo((L"IDS_BR_BODY_MOST_VISITED_SITES")) == 0)
105 settingInfo[SETTING_MOST_VISITED_SITE].isSelected = true;
107 WindowInfo* pWindowInfo = null;
108 String curUrl = SettingPresentationModel::GetInstance()->GetFavoriteUrl();
109 AppLog("SettingForm::OnSceneActivatedN check1");
111 settingInfo[SETTING_FAVORITE_URL].titleText = L"http://www.tizen.org";
112 if (SettingPresentationModel::GetInstance()->GetFavoriteUrl().CompareTo(L"") == 0)
114 SettingPresentationModel::GetInstance()->SetFavoriteValue(L"http://www.tizen.org");
116 settingInfo[SETTING_FAVORITE_URL].subText = L"";
117 settingInfo[SETTING_FAVORITE_URL].itemType = ITEM_TYPE_RADIO;
119 String homePage = SettingPresentationModel::GetInstance()->GetHomepage();
120 if (homePage.CompareTo((L"IDS_BR_BODY_MOST_VISITED_SITES")) == 0)
122 settingInfo[SETTING_MOST_VISITED_SITE].isSelected = true;
123 settingInfo[SETTING_BLANK_PAGE].isSelected = false;
124 settingInfo[SETTING_CURRENT_PAGE].isSelected = false;
125 settingInfo[SETTING_FAVORITE_URL].isSelected = false;
126 SettingPresentationModel::GetInstance()->SetHomepage(L"IDS_BR_BODY_MOST_VISITED_SITES");
128 else if (homePage.CompareTo((L"IDS_BR_BODY_BLANK_PAGE")) == 0)
130 settingInfo[SETTING_MOST_VISITED_SITE].isSelected = false;
131 settingInfo[SETTING_BLANK_PAGE].isSelected = true;
132 settingInfo[SETTING_CURRENT_PAGE].isSelected = false;
133 settingInfo[SETTING_FAVORITE_URL].isSelected = false;
134 SettingPresentationModel::GetInstance()->SetHomepage(L"IDS_BR_BODY_BLANK_PAGE");
138 settingInfo[SETTING_MOST_VISITED_SITE].isSelected = false;
139 settingInfo[SETTING_BLANK_PAGE].isSelected = false;
140 settingInfo[SETTING_CURRENT_PAGE].isSelected = false;
141 settingInfo[SETTING_FAVORITE_URL].isSelected = true;
144 settingInfo[SETTING_DEFAULT_VIEW_TITLE].titleText = CommonUtil::GetString(L"IDS_BR_BODY_DEFAULT_VIEW");
145 settingInfo[SETTING_DEFAULT_VIEW_TITLE].subText = CommonUtil::GetString(SettingPresentationModel::GetInstance()->GetDefaultView());
146 settingInfo[SETTING_DEFAULT_VIEW_TITLE].itemType = ITEM_TYPE_DROPDOWN;
148 settingInfo[SETTING_FIT_TO_WIDTH].titleText = CommonUtil::GetString(L"IDS_BR_BODY_FIT_TO_WIDTH");
149 settingInfo[SETTING_FIT_TO_WIDTH].subText = L"";
150 settingInfo[SETTING_FIT_TO_WIDTH].itemType = ITEM_TYPE_RADIO;
151 settingInfo[SETTING_FIT_TO_WIDTH].isSelected = !(String::Compare(settingInfo[SETTING_FIT_TO_WIDTH].titleText, settingInfo[SETTING_DEFAULT_VIEW_TITLE].subText));
153 settingInfo[SETTING_READABLE].titleText = CommonUtil::GetString(L"IDS_BR_BODY_READABLE");
154 settingInfo[SETTING_READABLE].subText = L"";
155 settingInfo[SETTING_READABLE].itemType = ITEM_TYPE_RADIO;
156 settingInfo[SETTING_READABLE].isSelected = !(String::Compare(settingInfo[SETTING_READABLE].titleText, settingInfo[SETTING_DEFAULT_VIEW_TITLE].subText));
158 settingInfo[SETTING_RUN_JAVASCRIPT].titleText = CommonUtil::GetString(L"IDS_BR_BODY_RUN_JAVASCRIPT");
159 settingInfo[SETTING_RUN_JAVASCRIPT].subText = L"";
160 settingInfo[SETTING_RUN_JAVASCRIPT].itemType = ITEM_TYPE_TOGGLE;
161 settingInfo[SETTING_RUN_JAVASCRIPT].isSelected = SettingPresentationModel::GetInstance()->IsRunJavascriptEnabled();
163 settingInfo[SETTING_DISPLAY_IMAGES].titleText = CommonUtil::GetString(L"IDS_BR_BODY_DISPLAY_IMAGES");
164 settingInfo[SETTING_DISPLAY_IMAGES].subText = L"";
165 settingInfo[SETTING_DISPLAY_IMAGES].itemType = ITEM_TYPE_TOGGLE;
166 settingInfo[SETTING_DISPLAY_IMAGES].isSelected = SettingPresentationModel::GetInstance()->IsDisplayImagesEnabled();
168 settingInfo[SETTING_BLOCK_POPUP].titleText = CommonUtil::GetString(L"IDS_BR_BODY_BLOCK_POP_UPS_ABB");
169 settingInfo[SETTING_BLOCK_POPUP].subText = L"";
170 settingInfo[SETTING_BLOCK_POPUP].itemType = ITEM_TYPE_TOGGLE;
171 settingInfo[SETTING_BLOCK_POPUP].isSelected = !SettingPresentationModel::GetInstance()->IsBlockPopUp();
173 settingInfo[SETTING_CLEAR_CACHE].titleText = CommonUtil::GetString(L"IDS_BR_BODY_CLEAR_CACHE");
174 settingInfo[SETTING_CLEAR_CACHE].subText = L"";
175 settingInfo[SETTING_CLEAR_CACHE].itemType = ITEM_TYPE_NORMAL;
177 settingInfo[SETTING_CLEAR_HISTORY].titleText = CommonUtil::GetString(L"IDS_BR_BODY_CLEAR_HISTORY");
178 settingInfo[SETTING_CLEAR_HISTORY].subText = L"";
179 settingInfo[SETTING_CLEAR_HISTORY].itemType = ITEM_TYPE_NORMAL;
181 settingInfo[SETTING_SHOW_SECURITY_WARNINGS].titleText = CommonUtil::GetString(L"IDS_BR_BODY_SHOW_SECURITY_WARNINGS");
182 settingInfo[SETTING_SHOW_SECURITY_WARNINGS].subText = L"";
183 settingInfo[SETTING_SHOW_SECURITY_WARNINGS].itemType = ITEM_TYPE_TOGGLE;
184 settingInfo[SETTING_SHOW_SECURITY_WARNINGS].isSelected = SettingPresentationModel::GetInstance()->IsSecurityWarningsEnabled();
186 settingInfo[SETTING_ACCEPT_COOKIES].titleText = CommonUtil::GetString(L"IDS_BR_BODY_ACCEPT_COOKIES");
187 settingInfo[SETTING_ACCEPT_COOKIES].subText = L"";
188 settingInfo[SETTING_ACCEPT_COOKIES].itemType = ITEM_TYPE_TOGGLE;
189 settingInfo[SETTING_ACCEPT_COOKIES].isSelected = SettingPresentationModel::GetInstance()->IsCookiesEnabled();
191 settingInfo[SETTING_CLEAR_COOKIE_DATA].titleText = CommonUtil::GetString(L"IDS_BR_BODY_CLEAR_ALL_COOKIE_DATA");
192 settingInfo[SETTING_CLEAR_COOKIE_DATA].subText = CommonUtil::GetString(L"IDS_BR_HEADER_COOKIES");
193 settingInfo[SETTING_CLEAR_COOKIE_DATA].itemType = ITEM_TYPE_NORMAL;
195 settingInfo[SETTING_CLEAR_FORM_DATA].titleText = CommonUtil::GetString(L"IDS_BR_BODY_CLEAR_FORM_DATA");
196 settingInfo[SETTING_CLEAR_FORM_DATA].subText = CommonUtil::GetString(L"IDS_BR_HEADER_FORM_DATA");
197 settingInfo[SETTING_CLEAR_FORM_DATA].itemType = ITEM_TYPE_NORMAL;
199 settingInfo[SETTING_CLEAR_PASSWORDS].titleText = CommonUtil::GetString(L"IDS_BR_BODY_CLEAR_PASSWORDS");
200 settingInfo[SETTING_CLEAR_PASSWORDS].subText = L"";
201 settingInfo[SETTING_CLEAR_PASSWORDS].itemType = ITEM_TYPE_NORMAL;
203 settingInfo[SETTING_SEARCH_ENGINE_TITLE].titleText = CommonUtil::GetString(L"IDS_BR_BODY_SEARCH_ENGINE");
204 settingInfo[SETTING_SEARCH_ENGINE_TITLE].subText = SettingPresentationModel::GetInstance()->GetSearchEngine();
205 settingInfo[SETTING_SEARCH_ENGINE_TITLE].itemType = ITEM_TYPE_DROPDOWN;
207 settingInfo[SETTING_SEARCH_ENGINE_YAHOO].titleText = CommonUtil::GetString(L"IDS_BR_BODY_YAHOO");
208 settingInfo[SETTING_SEARCH_ENGINE_YAHOO].subText = L"";
209 settingInfo[SETTING_SEARCH_ENGINE_YAHOO].itemType = ITEM_TYPE_RADIO;
210 settingInfo[SETTING_SEARCH_ENGINE_YAHOO].isSelected = !(String::Compare(settingInfo[SETTING_SEARCH_ENGINE_YAHOO].titleText, settingInfo[SETTING_SEARCH_ENGINE_TITLE].subText));
212 settingInfo[SETTING_SEARCH_ENGINE_NAVER].titleText = CommonUtil::GetString(L"IDS_BR_BODY_NAVER");
213 settingInfo[SETTING_SEARCH_ENGINE_NAVER].subText = L"";
214 settingInfo[SETTING_SEARCH_ENGINE_NAVER].itemType = ITEM_TYPE_RADIO;
215 settingInfo[SETTING_SEARCH_ENGINE_NAVER].isSelected = !(String::Compare(settingInfo[SETTING_SEARCH_ENGINE_NAVER].titleText, settingInfo[SETTING_SEARCH_ENGINE_TITLE].subText));
217 settingInfo[SETTING_SEARCH_ENGINE_GOOGLE].titleText = CommonUtil::GetString(L"IDS_COM_BODY_GOOGLE");
218 settingInfo[SETTING_SEARCH_ENGINE_GOOGLE].subText = L"";
219 settingInfo[SETTING_SEARCH_ENGINE_GOOGLE].itemType = ITEM_TYPE_RADIO;
220 settingInfo[SETTING_SEARCH_ENGINE_GOOGLE].isSelected = !(String::Compare(settingInfo[SETTING_SEARCH_ENGINE_GOOGLE].titleText, settingInfo[SETTING_SEARCH_ENGINE_TITLE].subText));
222 settingInfo[SETTING_RESET_TO_DEFAULT].titleText = CommonUtil::GetString(L"IDS_BR_BODY_RESET_TO_DEFAULT");
223 settingInfo[SETTING_RESET_TO_DEFAULT].subText = L"";
224 settingInfo[SETTING_RESET_TO_DEFAULT].itemType = ITEM_TYPE_NORMAL;
228 SettingForm::Initialize(void)
230 result r = E_FAILURE;
232 r = Construct(L"IDL_SETTING_FORM");
241 SettingForm::OnInitializing(void)
243 result r = E_FAILURE;
244 Footer* pFooter = NULL;
245 SceneManager* pSceneManager = NULL;
247 __pList = static_cast< GroupedListView* >(GetControl(L"IDC_SETTING_LIST"));
248 if ( __pList != NULL )
251 r = __pList->SetItemProvider(*this);
252 TryCatch(!IsFailed(r),,"setItemProvider failed with error %s",GetErrorMessage(r));
253 __pList->AddGroupedListViewItemEventListener(*this);
256 pFooter = GetFooter();
259 AppLogDebug("setting back button");
260 pFooter->SetBackButtonEnabled(true);
261 SetFormBackEventListener(this);
263 pSceneManager = SceneManager::GetInstance();
264 if (pSceneManager != null)
266 r = pSceneManager->AddSceneEventListener(IDSCN_SETTINGS, *this);
267 TryCatch(!IsFailed(r),,"AddSceneEventListener failed with error %s",GetErrorMessage(r));
269 AddOrientationEventListener(*this);
276 SettingForm::OnGroupedListViewContextItemStateChanged(GroupedListView& listView, int groupIndex, int itemIndex, int elementId, ListContextItemStatus status)
282 SettingForm::OnGroupedListViewItemStateChanged(GroupedListView& listView, int groupIndex, int itemIndex, int elementId, ListItemStatus status)
284 int effectiveIndex = 0;
285 SettingPresentationModel* pSettingMgr = SettingPresentationModel::GetInstance();
287 if (pSettingMgr == null)
290 for (int i = 0; i < groupIndex; i++)
291 effectiveIndex = effectiveIndex + pGroupItemCount[i];
292 effectiveIndex = effectiveIndex + itemIndex;
294 if (settingInfo[effectiveIndex].itemType == ITEM_TYPE_DROPDOWN)
296 AppLogDebug("refreshing data child count is %d", settingInfo[effectiveIndex].childCount);
297 if (settingInfo[effectiveIndex].isOpen == false)
299 settingInfo[effectiveIndex].isOpen = true;
300 settingInfo[effectiveIndex].childCount = 0;
301 for (int iter = effectiveIndex + 1; iter < SETTING_MAX; iter++)
303 if (settingInfo[iter].itemType == ITEM_TYPE_RADIO)
304 settingInfo[effectiveIndex].childCount++;
308 listView.UpdateList();
312 settingInfo[effectiveIndex].isOpen = false;
313 listView.UpdateList();
316 else if (settingInfo[effectiveIndex].itemType == ITEM_TYPE_RADIO)
319 for (parentIndex = effectiveIndex; parentIndex > SETTING_INVALID; parentIndex--)
321 if (settingInfo[parentIndex].itemType == ITEM_TYPE_DROPDOWN)
324 settingInfo[parentIndex].subText = settingInfo[effectiveIndex].titleText;
326 for (int iter = 0; iter < settingInfo[parentIndex].childCount; iter++)
328 if (parentIndex + iter + 1 != effectiveIndex)
330 AppLogDebug("long effectiveIndex %d set to false", itemIndex - (effectiveIndex - parentIndex) + iter + 1);
331 settingInfo[parentIndex + iter + 1].isSelected = false;
335 AppLogDebug("effectiveIndex %d set to true", effectiveIndex);
336 settingInfo[effectiveIndex].isSelected = true;
338 if (effectiveIndex == SETTING_CURRENT_PAGE)
340 settingInfo[SETTING_CURRENT_PAGE].isSelected = false;
341 settingInfo[SETTING_FAVORITE_URL].isSelected = true;
343 //listView.RefreshList(groupIndex, itemIndex - (effectiveIndex - parentIndex) + iter + 1, LIST_REFRESH_TYPE_ITEM_MODIFY);
345 // listView.UpdateList();
346 //listView.ScrollToItem(groupIndex, itemIndex, LIST_SCROLL_ITEM_ALIGNMENT_TOP);
349 else if (settingInfo[effectiveIndex].itemType == ITEM_TYPE_TOGGLE)
351 if (settingInfo[effectiveIndex].isSelected == true)
353 settingInfo[effectiveIndex].isSelected = false;
357 settingInfo[effectiveIndex].isSelected = true;
359 // listView.RefreshList(groupIndex, itemIndex, LIST_REFRESH_TYPE_ITEM_MODIFY);
362 __pList->SetItemChecked(groupIndex, itemIndex, settingInfo[effectiveIndex].isSelected);
366 switch (effectiveIndex)
368 case SETTING_CURRENT_PAGE:
369 //SettingPresentationModel::GetInstance()->SetHomepage(settingInfo[SETTING_FAVORITE_URL].titleText);
370 AppLog("setting current page currentURL is =%ls",__currentURL.GetPointer());
371 if (__currentURL.CompareTo(L"") != 0)
373 AppLog("setting current page currentURL is =%ls",__currentURL.GetPointer());
374 SettingPresentationModel::GetInstance()->SetHomepage(CommonUtil::GetString(L"IDS_BR_BODY_USER_HOMEPAGE"));
375 SettingPresentationModel::GetInstance()->SetFavoriteValue(__currentURL);
376 settingInfo[SETTING_FAVORITE_URL].titleText = __currentURL;
377 // listView.RefreshList(groupIndex, effectiveIndex, LIST_REFRESH_TYPE_ITEM_MODIFY);
378 listView.UpdateList();
381 case SETTING_BLANK_PAGE:
382 //SettingPresentationModel::GetInstance()->SetHomepage(settingInfo[SETTING_BLANK_PAGE].titleText);
383 SettingPresentationModel::GetInstance()->SetHomepage((L"IDS_BR_BODY_BLANK_PAGE"));
384 AppLog("GetHomepage() %ls",SettingPresentationModel::GetInstance()->GetHomepage().GetPointer());
385 listView.UpdateList();
388 case SETTING_MOST_VISITED_SITE:
389 SettingPresentationModel::GetInstance()->SetHomepage(L"IDS_BR_BODY_MOST_VISITED_SITES");
390 listView.UpdateList();
393 case SETTING_FAVORITE_URL:
394 //SettingPresentationModel::GetInstance()->SetHomepage(settingInfo[SETTING_FAVORITE_URL].titleText);
395 SceneManager::GetInstance()->GoForward(ForwardSceneTransition(IDSCN_EDIT_HOMEPAGE_VIEW, SCENE_TRANSITION_ANIMATION_TYPE_LEFT));
398 case SETTING_FIT_TO_WIDTH:
399 SettingPresentationModel::GetInstance()->SetDefaultView(L"IDS_BR_BODY_FIT_TO_WIDTH");
400 listView.UpdateList();
403 case SETTING_READABLE:
404 SettingPresentationModel::GetInstance()->SetDefaultView(L"IDS_BR_BODY_READABLE");
405 listView.UpdateList();
408 case SETTING_RUN_JAVASCRIPT:
409 SettingPresentationModel::GetInstance()->SetRunJavascriptEnabled(settingInfo[SETTING_RUN_JAVASCRIPT].isSelected);
412 case SETTING_DISPLAY_IMAGES:
413 SettingPresentationModel::GetInstance()->SetDisplayImagesEnabled(settingInfo[SETTING_DISPLAY_IMAGES].isSelected);
416 case SETTING_BLOCK_POPUP:
417 SettingPresentationModel::GetInstance()->SetBlockPopUp(!settingInfo[SETTING_BLOCK_POPUP].isSelected);
420 case SETTING_CLEAR_CACHE:
424 case SETTING_CLEAR_HISTORY:
428 case SETTING_SHOW_SECURITY_WARNINGS:
429 SettingPresentationModel::GetInstance()->SetSecurityWarningsEnabled(settingInfo[SETTING_SHOW_SECURITY_WARNINGS].isSelected);
432 case SETTING_ACCEPT_COOKIES:
433 SettingPresentationModel::GetInstance()->SetCookiesEnabled(settingInfo[SETTING_ACCEPT_COOKIES].isSelected);
436 case SETTING_CLEAR_COOKIE_DATA:
440 case SETTING_CLEAR_FORM_DATA:
444 case SETTING_CLEAR_PASSWORDS:
448 case SETTING_SEARCH_ENGINE_YAHOO:
449 SettingPresentationModel::GetInstance()->SetSearchEngine(settingInfo[SETTING_SEARCH_ENGINE_YAHOO].titleText);
450 listView.UpdateList();
453 case SETTING_SEARCH_ENGINE_NAVER:
454 SettingPresentationModel::GetInstance()->SetSearchEngine(settingInfo[SETTING_SEARCH_ENGINE_NAVER].titleText);
455 listView.UpdateList();
458 case SETTING_SEARCH_ENGINE_GOOGLE:
459 SettingPresentationModel::GetInstance()->SetSearchEngine(settingInfo[SETTING_SEARCH_ENGINE_GOOGLE].titleText);
460 listView.UpdateList();
463 case SETTING_RESET_TO_DEFAULT:
474 SettingForm::OnGroupedListViewItemSwept(GroupedListView& listView, int groupIndex, int itemIndex, SweepDirection direction)
480 SettingForm::CreateGroupItem(int groupIndex, int itemWidth)
482 result r = E_FAILURE;
484 GroupItem* pItem = null;
485 const Color ITEM_TEXT_COLOR = CUSTOM_COLOR_SETTINGS_GROUPTITLE;
487 pItem = new(std::nothrow) GroupItem();
492 r = pItem->Construct(Dimension(itemWidth, 46));
502 text = CommonUtil::GetString(L"IDS_BR_BODY_HOMEPAGE"); // IDS_HOMEPAGE
503 settingInfo[SETTING_HOMEPAGE_TITLE].subText = SettingPresentationModel::GetInstance()->GetHomepage();
507 text = CommonUtil::GetString(L"IDS_BR_MBODY_PAGE_CONTENT_SETTINGS"); // IDS_BR_MBODY_PAGE_CONTENT_SETTINGS
511 text = CommonUtil::GetString(L"IDS_BR_BODY_PRIVACY_AND_SECURITY_ABB"); // IDS_BR_BODY_PRIVACY_AND_SECURITY_ABB
515 text = CommonUtil::GetString(L"IDS_BR_BODY_SEARCH"); // IDS_BR_BODY_SEARCH
526 pItem->SetElement(text, null);
528 AppLogDebug("background color set result %s", GetErrorMessage(r));
530 pItem->SetTextColor(ITEM_TEXT_COLOR);
535 SettingForm::CreateItem(int groupIndex, int itemIndex, int itemWidth)
537 AppLog("SettingForm::CreateItem --> groupIndex : %d, itemIndex: %d itemWidth: %d ", groupIndex, itemIndex, itemWidth);
539 result r = E_SUCCESS;
540 int effectiveIndex = 0;
541 const Color ITEM_BACKGROUND_COLOR = CUSTOM_COLOR_SETTINGS_LISTITEM_BACKGROUND;
542 const Color ITEM_RADIO_ITEM_BACKGROUND_COLOR = CUSTOM_COLOR_SETTINGS_LISTITEM_RADIO_BACKGROUND;
543 const Color ITEM_BACKGROUND_COLOR_HIGHLIGHTED = CUSTOM_BACKGROUND_COLOR_LISTVIEW_PRESSED_HIGHLIGHTED;
545 for (int i = 0; i < groupIndex; i++)
546 effectiveIndex = effectiveIndex + pGroupItemCount[i];
547 effectiveIndex = effectiveIndex + itemIndex;
548 AppLogDebug("SettingForm::CreateItem --> groupIndex : %d, itemIndex: %d itemWidth: %d effectiveIndex %d", groupIndex, itemIndex, itemWidth, effectiveIndex);
550 if (settingInfo[effectiveIndex].itemType == ITEM_TYPE_TOGGLE)
552 SettingToggleCustomItem* pItem = new(std::nothrow) SettingToggleCustomItem();
553 r = pItem->Construct(itemWidth, 112);
560 pItem->SetBackgroundColor(LIST_ITEM_DRAWING_STATUS_NORMAL,ITEM_BACKGROUND_COLOR);
561 pItem->SetBackgroundColor(LIST_ITEM_DRAWING_STATUS_PRESSED,ITEM_BACKGROUND_COLOR_HIGHLIGHTED);
564 __pList->SetItemChecked(groupIndex, itemIndex, settingInfo[effectiveIndex].isSelected);
567 pItem->SetText(settingInfo[effectiveIndex].titleText);
573 else if (settingInfo[effectiveIndex].itemType == ITEM_TYPE_DROPDOWN)
575 DropDownCustomItem* pItem = new(std::nothrow) DropDownCustomItem();
576 r = pItem->Construct(itemWidth);
583 /* Bitmap* pNormalBackgroundBitmap = CommonUtil::GetNinepatchedBitmapN(IDB_LIST_GROUP_BG9,itemWidth,128);
584 Bitmap* pPressedBackgroundBitmap = CommonUtil::GetNinepatchedBitmapN(IDB_LIST_GROUP_BG_PRESS9,itemWidth,112);
586 if (pNormalBackgroundBitmap != NULL)
588 pItem->SetBackgroundBitmap(LIST_ITEM_DRAWING_STATUS_NORMAL,pNormalBackgroundBitmap);
589 delete pNormalBackgroundBitmap;
592 if (pPressedBackgroundBitmap != NULL)
594 pItem->SetBackgroundBitmap(LIST_ITEM_DRAWING_STATUS_PRESSED,pPressedBackgroundBitmap);
595 delete pPressedBackgroundBitmap;
598 pItem->SetBackgroundColor(LIST_ITEM_DRAWING_STATUS_NORMAL,ITEM_BACKGROUND_COLOR);
599 pItem->SetBackgroundColor(LIST_ITEM_DRAWING_STATUS_PRESSED,ITEM_BACKGROUND_COLOR_HIGHLIGHTED);
601 pItem->SetMainText(settingInfo[effectiveIndex].titleText);
602 if(settingInfo[effectiveIndex].subText.CompareTo(L"IDS_BR_BODY_BLANK_PAGE") == 0 || settingInfo[effectiveIndex].subText.CompareTo(L"IDS_BR_BODY_MOST_VISITED_SITES") == 0 || settingInfo[effectiveIndex].subText.CompareTo(L"IDS_BR_BODY_FIT_TO_WIDTH") == 0 || settingInfo[effectiveIndex].subText.CompareTo(L"IDS_BR_BODY_READABLE") == 0)
604 pItem->SetSubText(CommonUtil::GetString(settingInfo[effectiveIndex].subText));
608 pItem->SetSubText(settingInfo[effectiveIndex].subText);
610 if (settingInfo[effectiveIndex].isOpen)
612 pItem->SetCurState(DROP_DOWN_ITEM_STATE_OPENED);
616 pItem->SetCurState(DROP_DOWN__ITEM_STATE_CLOSED);
619 // if (pBitmap != null)
620 // pItem->AddElement(Rectangle(0, 0, 10, 128), IDA_LIST_LEFT_SIDE_MARGIN_DROPDOWN, *pBitmap, null);
630 else if (settingInfo[effectiveIndex].itemType == ITEM_TYPE_RADIO)
634 RadioCustomItem* pItem = new(std::nothrow) RadioCustomItem();
636 for (parentIndex = effectiveIndex; parentIndex > SETTING_INVALID; parentIndex--)
638 if (settingInfo[parentIndex].itemType == ITEM_TYPE_DROPDOWN)
641 if (settingInfo[parentIndex].isOpen == false || (__isCurrentPageDisable == true && groupIndex == 0 && itemIndex == 1))
643 r = pItem->Construct(itemWidth, 0);
644 AppLogDebug("construct with height 0 %s", GetErrorMessage(r));
649 pItem->Construct(itemWidth, 112);
652 Bitmap* pNormalBackgroundBitmap = CommonUtil::GetNinepatchedBitmapN(IDB_LIST_GROUP_BG9,itemWidth,112);
653 Bitmap* pPressedBackgroundBitmap = CommonUtil::GetNinepatchedBitmapN(IDB_LIST_GROUP_BG_PRESS9,itemWidth,112);
655 if (pNormalBackgroundBitmap != NULL)
657 pItem->SetBackgroundBitmap(LIST_ITEM_DRAWING_STATUS_NORMAL,pNormalBackgroundBitmap);
658 delete pNormalBackgroundBitmap;
661 if (pPressedBackgroundBitmap != NULL)
663 pItem->SetBackgroundBitmap(LIST_ITEM_DRAWING_STATUS_PRESSED,pPressedBackgroundBitmap);
664 delete pPressedBackgroundBitmap;
667 pItem->SetBackgroundColor(LIST_ITEM_DRAWING_STATUS_NORMAL,ITEM_RADIO_ITEM_BACKGROUND_COLOR);
668 pItem->SetBackgroundColor(LIST_ITEM_DRAWING_STATUS_PRESSED,ITEM_BACKGROUND_COLOR_HIGHLIGHTED);
671 pItem->SetText(settingInfo[effectiveIndex].titleText);
672 AppLogDebug("effectiveIndex %d SettingInfo[effectiveIndex].isSelected %d", effectiveIndex, settingInfo[effectiveIndex].isSelected);
674 //if (pBitmap != null)
675 // pItem->AddElement(Rectangle(0, 0, 10, 112), IDA_LIST_LEFT_SIDE_MARGIN, *pBitmap, null);
677 pItem->SetSelected(settingInfo[effectiveIndex].isSelected);
682 else if (settingInfo[effectiveIndex].itemType == ITEM_TYPE_NORMAL)
684 DefaultCustomItem* pItem = new(std::nothrow) DefaultCustomItem();
686 r = pItem->Construct(itemWidth, 112);
694 // Bitmap* pNormalBackgroundBitmap = CommonUtil::GetNinepatchedBitmapN(IDB_LIST_GROUP_BG9,itemWidth,112);
695 // Bitmap* pPressedBackgroundBitmap = CommonUtil::GetNinepatchedBitmapN(IDB_LIST_GROUP_BG_PRESS9,itemWidth,112);
697 // if (pNormalBackgroundBitmap != NULL)
699 // pItem->SetBackgroundBitmap(LIST_ITEM_DRAWING_STATUS_NORMAL,pNormalBackgroundBitmap);
700 // delete pNormalBackgroundBitmap;
703 // if (pPressedBackgroundBitmap != NULL)
705 // pItem->SetBackgroundBitmap(LIST_ITEM_DRAWING_STATUS_PRESSED,pPressedBackgroundBitmap);
706 // delete pPressedBackgroundBitmap;
709 pItem->SetBackgroundColor(LIST_ITEM_DRAWING_STATUS_NORMAL,ITEM_BACKGROUND_COLOR);
710 pItem->SetBackgroundColor(LIST_ITEM_DRAWING_STATUS_PRESSED,ITEM_BACKGROUND_COLOR_HIGHLIGHTED);
712 pItem->SetText(settingInfo[effectiveIndex].titleText);
714 //if (pBitmap != null)
715 // pItem->AddElement(Rectangle(0, 0, 10, 112), IDA_LIST_LEFT_SIDE_MARGIN, *pBitmap, null);
732 SettingForm::DeleteGroupItem(int groupIndex, GroupItem* pItem, int itemWidth)
740 SettingForm::DeleteItem(int groupIndex, int itemIndex, ListItemBase* pItem, int itemWidth)
748 SettingForm::GetGroupCount(void)
754 SettingForm::GetItemCount(int groupIndex)
756 AppLog(" SettingForm::GetItemCount --> groupIndex : %d,", groupIndex);
757 return pGroupItemCount[groupIndex];
761 SettingForm::OnFormBackRequested(Form& source)
763 String* pSelectedScene = NULL;
764 Object* value = NULL;
765 MultipleWindowPresentationModel::GetInstance()->GetValue(SELECTED_SCENE_ID, &value);
766 pSelectedScene = (String*) value;
769 SceneManager::GetInstance()->GoBackward(BackwardSceneTransition(*pSelectedScene, SCENE_TRANSITION_ANIMATION_TYPE_NONE));
770 // delete pSelectedScene;
771 // pSelectedScene = null;
776 SettingForm::OnActionPerformed(const Control& source, int actionId)
781 if(__pConfirmationPopup)
783 __pConfirmationPopup->SetShowState(false);
784 __pConfirmationPopup->Show();
785 delete __pConfirmationPopup;
786 __pConfirmationPopup = null;
791 if(__pConfirmationPopup)
793 String message = L"";
794 __pConfirmationPopup->SetShowState(false);
795 __pConfirmationPopup->Show();
796 if (__pConfirmationPopup->GetMessage() == CommonUtil::GetString(L"IDS_BR_POP_EMPTY_COOKIE_POPUP_BNO"))
798 message = CommonUtil::GetString(L"IDS_BR_POP_DELETED");
799 SettingPresentationModel::GetInstance()->ClearCookie();
801 else if (__pConfirmationPopup->GetMessage() == CommonUtil::GetString(L"IDS_BR_POP_EMPTY_FORM_DATA_BNO"))
803 message = CommonUtil::GetString(L"IDS_BR_POP_DELETED");
804 SettingPresentationModel::GetInstance()->ClearFormData();
806 else if (__pConfirmationPopup->GetMessage() == CommonUtil::GetString(L"IDS_BR_POP_EMPTY_PASSWORDS_BNO"))
808 message = CommonUtil::GetString(L"IDS_BR_POP_DELETED");
809 SettingPresentationModel::GetInstance()->ClearPasswords();
811 else if (__pConfirmationPopup->GetMessage() == CommonUtil::GetString(L"IDS_BR_POP_DELETE_LOCALLY_CACHED_CONTENT_AND_DATABASES_Q"))
813 message = CommonUtil::GetString(L"IDS_BR_POP_DELETED");
814 SettingPresentationModel::GetInstance()->ClearCache();
816 else if (__pConfirmationPopup->GetMessage() == CommonUtil::GetString(L"IDS_BR_BODY_DELETE_BROWSER_HISTORY_Q"))
818 message = CommonUtil::GetString(L"IDS_BR_POP_DELETED");
819 HistoryPresentationModel::GetInstance()->ClearHistory();
821 else if (__pConfirmationPopup->GetMessage() == CommonUtil::GetString(L"IDS_BR_POP_RESET_ALL_SETTINGS_TO_DEFAULT_Q"))
823 message = CommonUtil::GetString(L"IDS_BR_SK_DONE");
824 SettingPresentationModel::GetInstance()->ResetRegistry();
825 InitializeSettingValues();
828 __pList->UpdateList();
831 delete __pConfirmationPopup;
832 __pConfirmationPopup = null;
834 NotificationPanel* pNotification = new (std::nothrow) NotificationPanel(*this);
835 pNotification->SetText(message);
836 pNotification->SetPositionDiff(0);
837 pNotification->ShowNotification();
847 SettingForm::OnOrientationChanged(const Control& source, OrientationStatus orientationStatus)
849 Rectangle rect = GetClientAreaBounds();
854 __pList->SetBounds(rect.x,rect.y,rect.width-16,rect.height);
855 __pList->UpdateList();
858 SettingForm::SettingItemInfo::SettingItemInfo(void)
867 SettingForm::OnSceneActivatedN(const SceneId& previousSceneId, const SceneId& currentSceneId, IList* pArgs)
869 WindowInfo* pWindowInfo = null;
870 String curUrl = SettingPresentationModel::GetInstance()->GetFavoriteUrl();
872 pWindowInfo = MultipleWindowPresentationModel::GetInstance()->GetActiveWindowInfo();
874 if (previousSceneId == IDSCN_EDIT_HOMEPAGE_VIEW)
878 String* pValue = NULL;
879 pValue = dynamic_cast<String*>(pArgs->GetAt(0));
882 if (pValue->CompareTo(L"Done") == 0)
884 // SettingPresentationModel::GetInstance()->SetHomepage(CommonUtil::GetString(L"IDS_BR_BODY_USER_HOMEPAGE"));
886 else if (pValue->CompareTo(L"Cancel") == 0)
888 String homePage = SettingPresentationModel::GetInstance()->GetHomepage();
889 if (homePage.CompareTo((L"IDS_BR_BODY_MOST_VISITED_SITES")) == 0)
891 settingInfo[SETTING_MOST_VISITED_SITE].isSelected = true;
892 settingInfo[SETTING_BLANK_PAGE].isSelected = false;
893 settingInfo[SETTING_CURRENT_PAGE].isSelected = false;
894 settingInfo[SETTING_FAVORITE_URL].isSelected = false;
895 SettingPresentationModel::GetInstance()->SetHomepage(L"IDS_BR_BODY_MOST_VISITED_SITES");
898 else if (homePage.CompareTo((L"IDS_BR_BODY_BLANK_PAGE")) == 0)
900 settingInfo[SETTING_MOST_VISITED_SITE].isSelected = false;
901 settingInfo[SETTING_BLANK_PAGE].isSelected = true;
902 settingInfo[SETTING_CURRENT_PAGE].isSelected = false;
903 settingInfo[SETTING_FAVORITE_URL].isSelected = false;
904 SettingPresentationModel::GetInstance()->SetHomepage(L"IDS_BR_BODY_BLANK_PAGE");
908 settingInfo[SETTING_MOST_VISITED_SITE].isSelected = false;
909 settingInfo[SETTING_BLANK_PAGE].isSelected = false;
910 settingInfo[SETTING_CURRENT_PAGE].isSelected = false;
911 settingInfo[SETTING_FAVORITE_URL].isSelected = true;
919 if (pWindowInfo != null)
921 __currentURL.Clear();
922 __currentURL.Append(pWindowInfo->pageUrl);
923 AppLog("current url is %ls",__currentURL.GetPointer());
925 if (SettingPresentationModel::GetInstance()->GetFavoriteUrl().CompareTo(L"") == 0)
927 if (pWindowInfo->pageUrl.CompareTo(L"") == 0)
929 //settingInfo[SETTING_FAVORITE_URL].titleText = CommonUtil::GetString(L"IDS_SET_HOMEPAGE");
930 settingInfo[SETTING_FAVORITE_URL].titleText = L"http://www.tizen.org";
934 settingInfo[SETTING_FAVORITE_URL].titleText = pWindowInfo->pageUrl;
939 settingInfo[SETTING_FAVORITE_URL].titleText = SettingPresentationModel::GetInstance()->GetFavoriteUrl();
945 __pList->UpdateList();
946 if (pWindowInfo && pWindowInfo->pageUrl.CompareTo(L"") == 0)
948 __isCurrentPageDisable = true;
949 AppLog("set item enabled is false");
950 __pList->SetItemEnabled(0, 1, false);
954 __isCurrentPageDisable = false;
955 AppLog("set item enabled is true");
956 __pList->SetItemEnabled(0, 1, true);
958 for(int grpindex = 0; grpindex < groupCount; grpindex++)
960 for(int index = 0; index < *(pGroupItemCount+groupCount); index++)
962 int effectiveIndex = 0;
963 for (int i = 0; i < grpindex; i++)
964 effectiveIndex = effectiveIndex + pGroupItemCount[i];
965 effectiveIndex = effectiveIndex + index;
967 if(effectiveIndex >= SETTING_MAX)
971 if(settingInfo[effectiveIndex].itemType == ITEM_TYPE_TOGGLE || settingInfo[effectiveIndex].itemType == ITEM_TYPE_RADIO )
973 __pList->SetItemChecked(grpindex, index, settingInfo[effectiveIndex].isSelected);
982 SettingForm::OnSceneDeactivated(const SceneId& currentSceneId, const SceneId& nextSceneId)
988 SettingForm::ClearHistory(void)
990 String message = CommonUtil::GetString(L"IDS_BR_BODY_DELETE_BROWSER_HISTORY_Q");
991 if(!__pConfirmationPopup)
993 __pConfirmationPopup = new(std::nothrow) ConfirmationPopup();
994 __pConfirmationPopup->Initialize();
995 __pConfirmationPopup->RemoveActionListener(*this);
996 __pConfirmationPopup->AddActionListener(*this);
997 __pConfirmationPopup->setMessage(message);
998 __pConfirmationPopup->Show();
1003 SettingForm::ClearCache(void)
1005 String message = CommonUtil::GetString(L"IDS_BR_POP_DELETE_LOCALLY_CACHED_CONTENT_AND_DATABASES_Q");
1006 if(!__pConfirmationPopup)
1008 __pConfirmationPopup = new(std::nothrow) ConfirmationPopup();
1009 __pConfirmationPopup->Initialize();
1010 __pConfirmationPopup->RemoveActionListener(*this);
1011 __pConfirmationPopup->AddActionListener(*this);
1012 __pConfirmationPopup->setMessage(message);
1013 __pConfirmationPopup->Show();
1018 SettingForm::ClearCookie(void)
1020 String message = CommonUtil::GetString(L"IDS_BR_POP_EMPTY_COOKIE_POPUP_BNO");
1021 if(!__pConfirmationPopup)
1023 __pConfirmationPopup = new(std::nothrow) ConfirmationPopup();
1024 __pConfirmationPopup->Initialize();
1025 __pConfirmationPopup->RemoveActionListener(*this);
1026 __pConfirmationPopup->AddActionListener(*this);
1027 __pConfirmationPopup->setMessage(message);
1028 __pConfirmationPopup->Show();
1033 SettingForm::ClearFormData(void)
1035 String message = CommonUtil::GetString(L"IDS_BR_POP_EMPTY_FORM_DATA_BNO");
1036 if(!__pConfirmationPopup)
1038 __pConfirmationPopup = new(std::nothrow) ConfirmationPopup();
1039 __pConfirmationPopup->Initialize();
1040 __pConfirmationPopup->RemoveActionListener(*this);
1041 __pConfirmationPopup->AddActionListener(*this);
1042 __pConfirmationPopup->setMessage(message);
1043 __pConfirmationPopup->Show();
1048 SettingForm::ClearPasswords(void)
1050 String message = CommonUtil::GetString(L"IDS_BR_POP_EMPTY_PASSWORDS_BNO");
1051 if(!__pConfirmationPopup)
1053 __pConfirmationPopup = new(std::nothrow) ConfirmationPopup();
1054 __pConfirmationPopup->Initialize();
1055 __pConfirmationPopup->RemoveActionListener(*this);
1056 __pConfirmationPopup->AddActionListener(*this);
1057 __pConfirmationPopup->setMessage(message);
1058 __pConfirmationPopup->Show();
1064 SettingForm::ResetToDefault()
1066 String message = CommonUtil::GetString(L"IDS_BR_POP_RESET_ALL_SETTINGS_TO_DEFAULT_Q");
1067 if(!__pConfirmationPopup)
1069 __pConfirmationPopup = new(std::nothrow) ConfirmationPopup();
1070 __pConfirmationPopup->Initialize();
1071 __pConfirmationPopup->RemoveActionListener(*this);
1072 __pConfirmationPopup->AddActionListener(*this);
1073 __pConfirmationPopup->setMessage(message);
1074 __pConfirmationPopup->Show();