2 // Copyright (c) 2012 Samsung Electronics Co., Ltd.
4 // Licensed under the Flora License, Version 1.1 (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.
18 * @file StDisplayForm.cpp
19 * @brief This is the implementation file for DisplayForm class.
23 #include "StDisplayForm.h"
24 #include "StResourceManager.h"
25 #include "StSettingScenesList.h"
28 using namespace Tizen::Base;
29 using namespace Tizen::Graphics;
30 using namespace Tizen::System;
31 using namespace Tizen::Ui;
32 using namespace Tizen::Ui::Controls;
33 using namespace Tizen::Ui::Scenes;
35 static const int W_RESIZE_LABEL_GAP = 110;
36 static const int RELATIVE_LAYOUT_ITEM_RIGHT_MARGIN = 140;
38 static const int BACKLIGHT_TIME_15_SECONDS = 15;
39 static const int BACKLIGHT_TIME_30_SECONDS = 30;
40 static const int BACKLIGHT_TIME_1_MINUTE = 60;
41 static const int BACKLIGHT_TIME_2_MINUTES = 120;
42 static const int BACKLIGHT_TIME_5_MINUTES = 300;
43 static const int BACKLIGHT_TIME_10_MINUTES = 600;
45 static const int ID_GROUP_AUTO_ROTATE_SCREEN = 0;
46 static const int ID_ITEM_AUTO_ROTATE_SCREEN = 0;
48 static const int ID_GROUP_BACKLIGHT_TIME = 1;
49 static const int ID_ITEM_BACKLIGHT_TIME = 0;
51 static const int ID_GROUP_BACKLIGHT_TIME_LIST = 2;
52 static const int ID_GROUP_BACKLIGHT_TIME_LIST_ITEM_COUNT = 6;
53 static const int ID_ITEM_BACKLIGHT_TIME_15_SECONDS = 0;
54 static const int ID_ITEM_BACKLIGHT_TIME_30_SECONDS = 1;
55 static const int ID_ITEM_BACKLIGHT_TIME_1_MINUTE = 2;
56 static const int ID_ITEM_BACKLIGHT_TIME_2_MINUTES = 3;
57 static const int ID_ITEM_BACKLIGHT_TIME_5_MINUTES = 4;
58 static const int ID_ITEM_BACKLIGHT_TIME_10_MINUTES = 5;
60 static const int ID_GROUP_FONT = 3;
61 static const int ID_ITEM_FONT = 0;
63 static const int ID_GROUP_DISPLAY_MAX_COUNT = 6;
64 static const int ID_GROUP_DEFAULT_ITEM_COUNT = 1;
66 static const int ID_GROUP_COUNT = 4;
67 static const int ID_GROUP_MAX_ITEM_COUNT = ID_GROUP_DISPLAY_MAX_COUNT;
69 DisplayForm::DisplayForm(void)
73 DisplayForm::~DisplayForm(void)
78 DisplayForm::CreateFooter(void)
80 Footer* pFooter = GetFooter();
83 pFooter->SetStyle(FOOTER_STYLE_BUTTON_TEXT);
84 pFooter->SetBackButton();
85 pFooter->AddActionEventListener(*this);
87 SetFormBackEventListener(this);
91 DisplayForm::OnInitializing(void)
93 CreateHeader(ResourceManager::GetString(L"IDS_ST_BODY_DISPLAY"));
103 DisplayForm::OnTerminating(void)
107 SetFormBackEventListener(null);
112 DisplayForm::OnSceneActivatedN(const Tizen::Ui::Scenes::SceneId& previousSceneId, const Tizen::Ui::Scenes::SceneId& currentSceneId, Tizen::Base::Collection::IList* pArgs)
114 if (previousSceneId == IDSCN_FONT)
116 __pTableView->RefreshAllItems();
119 __pTableView->UpdateTableView();
121 bool autoRotation = false;
122 if (SettingInfo::GetValue(SETTING_INFO_KEY_SCREEN_ROTAION_AUTO, autoRotation) == E_SUCCESS)
124 __pTableView->SetItemChecked(ID_GROUP_AUTO_ROTATE_SCREEN, ID_ITEM_AUTO_ROTATE_SCREEN, autoRotation);
126 __pTableView->SetItemChecked(ID_GROUP_BACKLIGHT_TIME_LIST, GetBackLightTimeIndex(), true);
127 __pTableView->CollapseGroup(ID_GROUP_BACKLIGHT_TIME_LIST);
131 DisplayForm::OnSceneDeactivated(const Tizen::Ui::Scenes::SceneId& currentSceneId, const Tizen::Ui::Scenes::SceneId& nextSceneId)
136 DisplayForm::OnFormBackRequested(Tizen::Ui::Controls::Form& source)
138 SceneManager* pSceneManager = SceneManager::GetInstance();
139 AppAssert(pSceneManager);
141 pSceneManager->GoBackward(BackwardSceneTransition(SCENE_TRANSITION_ANIMATION_TYPE_RIGHT), null);
145 DisplayForm::GetGroupCount(void)
147 AppLogDebug("ENTER");
148 return ID_GROUP_COUNT;
152 DisplayForm::GetItemCount(int groupIndex)
154 int itemCount = ID_GROUP_DEFAULT_ITEM_COUNT;
156 if (groupIndex == ID_GROUP_BACKLIGHT_TIME_LIST)
158 itemCount = ID_GROUP_BACKLIGHT_TIME_LIST_ITEM_COUNT;
160 AppLogDebug("GetItemCount %d", itemCount);
166 DisplayForm::CreateGroupItem(int groupIndex, int itemWidth)
168 AppLogDebug("ENTER");
170 int itemHeight = H_GROUP_INDEX_NO_TITLE_DEFAULT;
171 int yItemOffset = H_GROUP_INDEX_HELP_TEXT_TOP_GAP;
172 LabelTextStyle style = LABEL_TEXT_STYLE_BOLD;
173 Rectangle itemMainRectangle;
175 Label* pLabel = null;
177 TableViewGroupItem* pItem = new (std::nothrow) TableViewGroupItem();
179 yItemOffset = H_GROUP_INDEX_NO_HELP_TEXT_GAP;
180 itemHeight = H_GROUP_INDEX_NO_TITLE_DEFAULT;
182 if (groupIndex == ID_GROUP_BACKLIGHT_TIME_LIST)
188 itemMainRectangle.x = X_GROUP_INDEX_DEFAULT_LABEL;
189 itemMainRectangle.y = yItemOffset;
190 itemMainRectangle.width = itemWidth;
191 itemMainRectangle.height = itemHeight;
193 RelativeLayout relativeLayout;
194 relativeLayout.Construct();
196 pItem->Construct(relativeLayout, Dimension(itemWidth, itemHeight));
197 pItem->SetBackgroundColor(COLOR_BG_GROUP_INDEX_DEFAULT);
199 pLabel = new (std::nothrow) Label();
200 pLabel->Construct(itemMainRectangle, groupText);
201 pLabel->SetTextHorizontalAlignment(ALIGNMENT_LEFT);
202 pLabel->SetTextVerticalAlignment(ALIGNMENT_TOP);
203 pLabel->SetTextConfig(FONT_SIZE_GROUP_TITLE_TEXT, style);
204 pLabel->SetTextColor(COLOR_HELP_TEXT_TYPE_01);
206 pItem->AddControl(pLabel);
207 relativeLayout.SetMargin(*pLabel, itemMainRectangle.x, RELATIVE_LAYOUT_RIGHT_MARGIN, 0, 0);
208 relativeLayout.SetRelation(*pLabel, *pItem, RECT_EDGE_RELATION_LEFT_TO_LEFT);
209 relativeLayout.SetRelation(*pLabel, *pItem, RECT_EDGE_RELATION_RIGHT_TO_RIGHT);
210 pItem->SetEnabled(false);
216 DisplayForm::CreateItem(int groupIndex, int itemIndex, int itemWidth)
218 AppLogDebug("group[%d] index[%d]", groupIndex, itemIndex);
220 Rectangle itemMainRectangle;
221 Rectangle itemSubRectangle;
222 TableViewAnnexStyle style = TABLE_VIEW_ANNEX_STYLE_NORMAL;
225 Label* pLabel = null;
226 int fontSize = GetFontSize();
229 Rectangle detailArrow;
230 Bitmap* pBitmap = null;
232 TableViewItem* pItem = new (std::nothrow) TableViewItem();
234 ItemTypeOneLine(itemMainRectangle);
235 itemHeight = itemMainRectangle.height;
239 case ID_GROUP_AUTO_ROTATE_SCREEN:
241 style = TABLE_VIEW_ANNEX_STYLE_ONOFF_SLIDING;
242 itemMainRectangle.width -= W_RESIZE_LABEL_GAP;
243 itemMainText = ResourceManager::GetString(L"IDS_ST_HEADER_AUTO_ROTATE_SCREEN_ABB");
247 case ID_GROUP_BACKLIGHT_TIME:
249 ItemTypeTwoLine(itemMainRectangle, itemSubRectangle,fontSize);
250 itemHeight = (itemMainRectangle.height + itemSubRectangle.height);
252 if (__pTableView->IsGroupExpanded(ID_GROUP_BACKLIGHT_TIME_LIST) == false)
254 pBitmap = ResourceManager::GetBitmapN(IDB_DETAIL_BUTTON_EXPAND_OPENED);
258 pBitmap = ResourceManager::GetBitmapN(IDB_DETAIL_BUTTON_EXPAND_CLOSED);
261 itemMainText = ResourceManager::GetString(L"IDS_ST_BODY_BACKLIGHT_TIME");
262 int index = GetBackLightTimeIndex();
263 subText = GetBackLightTimeIndexString(index);
267 case ID_GROUP_BACKLIGHT_TIME_LIST:
269 style = TABLE_VIEW_ANNEX_STYLE_RADIO;
270 itemMainText = GetBackLightTimeIndexString(itemIndex);
276 itemMainText = ResourceManager::GetString(L"IDS_ST_BODY_FONT");
284 RelativeLayout relativeLayout;
285 relativeLayout.Construct();
287 pItem->Construct(relativeLayout, Dimension(itemWidth, itemHeight), style);
288 pItem->SetBackgroundColor(COLOR_BG_GROUP_ITEM_DEFAULT);
290 pLabel = new (std::nothrow) Label();
291 pLabel->Construct(itemMainRectangle, itemMainText);
292 pLabel->SetTextHorizontalAlignment(ALIGNMENT_LEFT);
293 pLabel->SetTextConfig(fontSize, LABEL_TEXT_STYLE_NORMAL);
294 pLabel->SetTextColor(COLOR_MAIN_TEXT);
296 pItem->AddControl(pLabel);
300 case TABLE_VIEW_ANNEX_STYLE_ONOFF_SLIDING:
302 rightMargin = RELATIVE_LAYOUT_RIGHT_MARGIN_ONOFF_SLIDING;
306 case TABLE_VIEW_ANNEX_STYLE_RADIO:
308 leftMargin = RELATIVE_LAYOUT_LEFT_MARGIN;
309 rightMargin = RELATIVE_LAYOUT_ITEM_RIGHT_MARGIN;
315 rightMargin = RELATIVE_LAYOUT_ITEM_RIGHT_MARGIN;
319 relativeLayout.SetMargin(*pLabel, leftMargin, rightMargin, 0, 0);
320 relativeLayout.SetRelation(*pLabel, *pItem, RECT_EDGE_RELATION_LEFT_TO_LEFT);
321 relativeLayout.SetRelation(*pLabel, *pItem, RECT_EDGE_RELATION_RIGHT_TO_RIGHT);
325 detailArrow = itemMainRectangle;
326 detailArrow.y = itemMainRectangle.y + ((itemHeight - W_DETAIL_ARROW_BUTTON) / DIVIDE_BY_TWO);
327 detailArrow.height = W_DETAIL_ARROW_BUTTON;
328 detailArrow.width = W_DETAIL_ARROW_BUTTON;
330 pLabel = new (std::nothrow) Label();
331 pLabel->Construct(detailArrow, L"");
333 pLabel->SetBackgroundBitmap(*pBitmap);
335 pItem->AddControl(pLabel);
336 relativeLayout.SetMargin(*pLabel, itemMainRectangle.x, RELATIVE_LAYOUT_RIGHT_MARGIN_DETAIL_ARROW_BUTTON, 0, 0);
337 relativeLayout.SetRelation(*pLabel, *pItem, RECT_EDGE_RELATION_RIGHT_TO_RIGHT);
339 pLabel = new (std::nothrow) Label();
340 pLabel->Construct(itemSubRectangle, subText);
341 pLabel->SetTextHorizontalAlignment(ALIGNMENT_LEFT);
342 pLabel->SetTextVerticalAlignment(ALIGNMENT_TOP);
343 pLabel->SetTextConfig(FONT_SIZE_SUB_TEXT, LABEL_TEXT_STYLE_NORMAL);
344 pLabel->SetTextColor(COLOR_SUB_TEXT);
346 pItem->AddControl(pLabel);
347 relativeLayout.SetMargin(*pLabel, itemMainRectangle.x, RELATIVE_LAYOUT_RIGHT_MARGIN, 0, 0);
348 relativeLayout.SetRelation(*pLabel, *pItem, RECT_EDGE_RELATION_LEFT_TO_LEFT);
349 relativeLayout.SetRelation(*pLabel, *pItem, RECT_EDGE_RELATION_RIGHT_TO_RIGHT);
356 DisplayForm::DeleteGroupItem(int groupIndex, TableViewGroupItem* pItem)
358 AppLogDebug("ENTER");
367 DisplayForm::DeleteItem(int groupIndex, int itemIndex, TableViewItem* pItem)
369 AppLogDebug("ENTER");
378 DisplayForm::OnUserEventReceivedN(RequestId requestId, Tizen::Base::Collection::IList* pArgs)
380 AppLogDebug("ENTER");
381 AppLogDebug("RequestFrom[%d]", requestId);
382 if (requestId == FRFRESH_REQUEST_EVENT)
384 int itemCount = __pTableView->GetItemCountAt(ID_GROUP_BACKLIGHT_TIME_LIST);
385 bool autoRotation = false;
386 if (SettingInfo::GetValue(SETTING_INFO_KEY_SCREEN_ROTAION_AUTO, autoRotation) == E_SUCCESS)
388 __pTableView->SetItemChecked(ID_GROUP_AUTO_ROTATE_SCREEN, ID_ITEM_AUTO_ROTATE_SCREEN, autoRotation);
391 for (int index = 0; index < itemCount; index++)
393 if (index == GetBackLightTimeIndex())
395 __pTableView->SetItemChecked(ID_GROUP_BACKLIGHT_TIME_LIST, index, true);
399 __pTableView->SetItemChecked(ID_GROUP_BACKLIGHT_TIME_LIST, index, false);
402 __pTableView->UpdateTableView();
407 DisplayForm::OnGroupedTableViewItemStateChanged(Tizen::Ui::Controls::GroupedTableView& tableView, int groupIndex, int itemIndex, Tizen::Ui::Controls::TableViewItem* pItem, Tizen::Ui::Controls::TableViewItemStatus status)
409 SceneManager* pSceneManager = SceneManager::GetInstance();
410 AppAssert(pSceneManager);
412 AppLogDebug("group[%d] index[%d]", groupIndex, itemIndex);
416 case ID_GROUP_AUTO_ROTATE_SCREEN:
418 bool itemSelectStatus = tableView.IsItemChecked(groupIndex, itemIndex);
420 if (status == TABLE_VIEW_ITEM_STATUS_SELECTED)
422 itemSelectStatus = !itemSelectStatus;
425 if (SettingInfo::SetValue(SETTING_INFO_KEY_SCREEN_ROTAION_AUTO, itemSelectStatus) == E_SUCCESS)
427 tableView.SetItemChecked(groupIndex, itemIndex, itemSelectStatus);
432 case ID_GROUP_BACKLIGHT_TIME:
434 if (tableView.IsGroupExpanded(ID_GROUP_BACKLIGHT_TIME_LIST) == true)
436 tableView.CollapseGroup(ID_GROUP_BACKLIGHT_TIME_LIST);
440 tableView.ExpandGroup(ID_GROUP_BACKLIGHT_TIME_LIST);
442 tableView.RefreshItem(groupIndex, itemIndex, TABLE_VIEW_REFRESH_TYPE_ITEM_MODIFY);
446 case ID_GROUP_BACKLIGHT_TIME_LIST:
448 SetBackLightTime(itemIndex);
450 int itemCount = tableView.GetItemCountAt(groupIndex);
452 for (int index = 0; index < itemCount; index++)
454 if (index == itemIndex)
456 tableView.SetItemChecked(groupIndex, index, true);
460 tableView.SetItemChecked(groupIndex, index, false);
463 tableView.RefreshItem(ID_GROUP_BACKLIGHT_TIME, 0, TABLE_VIEW_REFRESH_TYPE_ITEM_MODIFY);
469 SceneManager* pSceneManager = SceneManager::GetInstance();
470 AppAssert(pSceneManager);
472 pSceneManager->GoForward(ForwardSceneTransition(IDSCN_FONT, SCENE_TRANSITION_ANIMATION_TYPE_LEFT), null);
482 DisplayForm::GetDefaultGroupItemHeight(void)
484 return H_GROUP_INDEX_NO_TITLE_DEFAULT;
488 DisplayForm::GetDefaultItemHeight(void)
490 return H_GROUP_ITEM_DEFAULT;
494 DisplayForm::UpdateGroupItem(int groupIndex, Tizen::Ui::Controls::TableViewGroupItem* pItem)
499 DisplayForm::UpdateItem(int groupIndex, int itemIndex, Tizen::Ui::Controls::TableViewItem* pItem)
504 Label* pSubLabel = null;
510 case ID_GROUP_AUTO_ROTATE_SCREEN:
512 case ID_GROUP_BACKLIGHT_TIME_LIST:
514 int fontSize = GetFontSize();
515 Label* pLabel = static_cast<Label*>(pItem->GetControl(0));
517 pLabel->SetTextConfig(fontSize, LABEL_TEXT_STYLE_NORMAL);
518 pLabel->Invalidate(false);
522 case ID_GROUP_BACKLIGHT_TIME:
524 Bitmap* pBitmap = null;
525 Label* pLabel = static_cast<Label*>(pItem->GetControl(0));
526 Label* pLabelBitmap = static_cast<Label*>(pItem->GetControl(1));
527 pSubLabel = static_cast<Label*>(pItem->GetControl(2));
529 int fontSize = GetFontSize();
530 Rectangle mainRectangle;
531 Rectangle subRectangle;
532 Rectangle pItemRectangle;
533 Rectangle detailArrow;
535 pItemRectangle = pItem->GetBounds();
536 ItemTypeTwoLine(mainRectangle, subRectangle, fontSize);
538 pLabel->SetBounds(mainRectangle);
539 pLabel->SetTextConfig(fontSize, LABEL_TEXT_STYLE_NORMAL);
541 pItemRectangle.height = (mainRectangle.height + subRectangle.height);
542 pItem->SetBounds(pItemRectangle);
544 if (__pTableView->IsGroupExpanded(ID_GROUP_BACKLIGHT_TIME_LIST))
546 pBitmap = ResourceManager::GetBitmapN(IDB_DETAIL_BUTTON_EXPAND_OPENED);
550 pBitmap = ResourceManager::GetBitmapN(IDB_DETAIL_BUTTON_EXPAND_CLOSED);
552 pLabelBitmap->SetBackgroundBitmap(*pBitmap);
554 detailArrow = mainRectangle;
555 detailArrow.y = mainRectangle.y + ((pItemRectangle.height - W_DETAIL_ARROW_BUTTON) / DIVIDE_BY_TWO);
556 detailArrow.height = W_DETAIL_ARROW_BUTTON;
557 detailArrow.width = W_DETAIL_ARROW_BUTTON;
558 pLabelBitmap->SetBounds(detailArrow);
560 index = GetBackLightTimeIndex();
561 itemSubText = GetBackLightTimeIndexString(index);
562 pSubLabel->SetBounds(subRectangle);
563 pSubLabel->SetText(itemSubText);
564 pSubLabel->SetTextConfig(FONT_SIZE_SUB_TEXT, LABEL_TEXT_STYLE_NORMAL);
566 pLabel->Invalidate(false);
567 pLabelBitmap->Invalidate(false);
568 pSubLabel->Invalidate(false);
569 pItem->Invalidate(false);
578 DisplayForm::OnGroupedTableViewContextItemActivationStateChanged(Tizen::Ui::Controls::GroupedTableView& tableView, int groupIndex, int itemIndex, Tizen::Ui::Controls::TableViewContextItem* pContextItem, bool activated)
583 DisplayForm::OnGroupedTableViewGroupItemStateChanged(Tizen::Ui::Controls::GroupedTableView& tableView, int groupIndex, Tizen::Ui::Controls::TableViewGroupItem* pItem, Tizen::Ui::Controls::TableViewItemStatus status)
588 DisplayForm::GetBackLightTime(void)
590 int backlightTime = 0;
592 result r = SettingInfo::GetValue(SETTING_INFO_KEY_BACKLIGHT_TIME, backlightTime);
595 AppLogDebug("GetValue Backlight Time fail [%s]", GetErrorMessage(r));
597 return backlightTime;
601 DisplayForm::SetBackLightTime(int itemIndex)
603 int backlightTime = 0;
606 case ID_ITEM_BACKLIGHT_TIME_15_SECONDS:
608 backlightTime = BACKLIGHT_TIME_15_SECONDS;
612 case ID_ITEM_BACKLIGHT_TIME_30_SECONDS:
614 backlightTime = BACKLIGHT_TIME_30_SECONDS;
618 case ID_ITEM_BACKLIGHT_TIME_1_MINUTE:
620 backlightTime = BACKLIGHT_TIME_1_MINUTE;
624 case ID_ITEM_BACKLIGHT_TIME_2_MINUTES:
626 backlightTime = BACKLIGHT_TIME_2_MINUTES;
630 case ID_ITEM_BACKLIGHT_TIME_5_MINUTES:
632 backlightTime = BACKLIGHT_TIME_5_MINUTES;
636 case ID_ITEM_BACKLIGHT_TIME_10_MINUTES:
638 backlightTime = BACKLIGHT_TIME_10_MINUTES;
643 result r = SettingInfo::SetValue(SETTING_INFO_KEY_BACKLIGHT_TIME, backlightTime);
646 AppLogDebug("SetValue Backlight Time fail [%s]", GetErrorMessage(r));
651 DisplayForm::GetBackLightTimeIndex(void)
654 int backlightTime = GetBackLightTime();
656 switch (backlightTime)
658 case BACKLIGHT_TIME_15_SECONDS:
660 itemIndex = ID_ITEM_BACKLIGHT_TIME_15_SECONDS;
664 case BACKLIGHT_TIME_30_SECONDS:
666 itemIndex = ID_ITEM_BACKLIGHT_TIME_30_SECONDS;
670 case BACKLIGHT_TIME_1_MINUTE:
672 itemIndex = ID_ITEM_BACKLIGHT_TIME_1_MINUTE;
676 case BACKLIGHT_TIME_2_MINUTES:
678 itemIndex = ID_ITEM_BACKLIGHT_TIME_2_MINUTES;
682 case BACKLIGHT_TIME_5_MINUTES:
684 itemIndex = ID_ITEM_BACKLIGHT_TIME_5_MINUTES;
688 case BACKLIGHT_TIME_10_MINUTES:
690 itemIndex = ID_ITEM_BACKLIGHT_TIME_10_MINUTES;
699 DisplayForm::GetBackLightTimeIndexString(int itemIndex)
705 case ID_ITEM_BACKLIGHT_TIME_15_SECONDS:
707 itemText = ResourceManager::GetString(L"IDS_ST_BODY_15_SECONDS");
711 case ID_ITEM_BACKLIGHT_TIME_30_SECONDS:
713 itemText = ResourceManager::GetString(L"IDS_ST_BODY_30_SECONDS");
717 case ID_ITEM_BACKLIGHT_TIME_1_MINUTE:
719 itemText = ResourceManager::GetString(L"IDS_ST_BODY_1_MINUTE");
723 case ID_ITEM_BACKLIGHT_TIME_2_MINUTES:
725 itemText = ResourceManager::GetString(L"IDS_ST_BODY_2_MINUTES");
729 case ID_ITEM_BACKLIGHT_TIME_5_MINUTES:
731 itemText = ResourceManager::GetString(L"IDS_ST_BODY_5_MINUTES");
735 case ID_ITEM_BACKLIGHT_TIME_10_MINUTES:
737 itemText = ResourceManager::GetString(L"IDS_ST_BODY_10_MINUTES");