2 * Copyright 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://www.tizenopensource.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 #include <Elementary.h>
20 #include <dpl/wrt-dao-rw/widget_dao.h>
21 #include <dpl/foreach.h>
22 #include <dpl/assert.h>
23 #include <dpl/utils/wrt_global_settings.h>
25 #include <ui-gadget-module.h>
27 #include "detailview.h"
28 #include "advancedview.h"
31 namespace WebAppDetailSetting {
33 const int MAX_PATH_LENGTH = 255;
34 const int ERROR_READ_LINK = -1;
35 // need to move widget_config.h
36 const char* const WRT_LAUNCHER = "wrt-launcher";
37 const char* const WRT_LAUNCHER_WK_MODE_CHANGE_OPTION = "-w";
40 void DetailView::getLocalizedInfo(void)
42 DPL::OptionalString locale;
46 locale = m_dao->getDefaultlocale();
47 if (locale.IsNull()) {
48 DPL::String lang_tag(L"");
49 m_localizedInfo = m_dao->getLocalizedInfo(lang_tag);
51 m_localizedInfo = m_dao->getLocalizedInfo(*locale);
55 void DetailView::addField(const char *title)
59 Assert(m_bx && title);
61 ly = elm_layout_add(m_bx);
64 elm_layout_theme_set(ly, "layout", "dialogue", "title");
65 evas_object_size_hint_weight_set(ly, EVAS_HINT_EXPAND, 0.0);
66 evas_object_size_hint_align_set(ly, EVAS_HINT_FILL, 0.0);
67 elm_object_part_text_set(ly, "elm.text", title);
69 elm_box_pack_end(m_bx, ly);
72 void DetailView::addField(const char *title, const char *str)
78 Assert(m_bx && title);
80 ly = elm_layout_add(m_bx);
83 elm_layout_theme_set(ly, "layout", "dialogue", "1icon");
84 evas_object_size_hint_weight_set(ly, EVAS_HINT_EXPAND, 0.0);
85 evas_object_size_hint_align_set(ly, EVAS_HINT_FILL, 0.0);
87 field = elm_layout_add(ly);
92 elm_layout_theme_set(field, "layout", "editfield", "title");
93 elm_object_part_text_set(field, "elm.text", title);
95 entry = elm_entry_add(field);
97 elm_entry_editable_set(entry, EINA_FALSE);
98 // elm_entry_single_line_set(entry, EINA_TRUE);
99 elm_object_text_set(entry, str);
100 elm_object_part_content_set(field,
101 "elm.swallow.content", entry);
104 elm_object_part_content_set(ly, "elm.icon", field);
105 evas_object_show(ly);
106 elm_box_pack_end(m_bx, ly);
109 void DetailView::addDefInfo(void)
111 DPL::OptionalString ver;
115 addField(D_("IDS_COM_BODY_DETAILS_NAME"),
116 m_localizedInfo.name.IsNull() ? NULL :
117 DPL::ToUTF8String((*m_localizedInfo.name)).c_str());
119 ver = m_dao->getVersion();
122 ver.IsNull() ? NULL :
123 DPL::ToUTF8String((*ver)).c_str());
127 m_dao->isTrusted() ? "Trusted" : "Untrusted");
129 addField(D_("IDS_COM_BODY_DESCRIPTION"),
130 m_localizedInfo.description.IsNull() ? NULL :
131 DPL::ToUTF8String((*m_localizedInfo.description)).c_str());
134 void DetailView::addViewModes(void)
137 WrtDB::WindowModeList modes;
141 modes = m_dao->getWindowModes();
142 if (modes.size() > 0) {
146 mode.resize(mode.length() - 1);
148 addField("View modes",
149 DPL::ToUTF8String(mode).c_str());
152 addField("View modes", NULL);
156 void DetailView::addAuthorInfo(void)
158 DPL::OptionalString name;
159 DPL::OptionalString email;
160 DPL::OptionalString homepage;
164 addField(D_("IDS_COM_BODY_AUTHOR"));
166 name = m_dao->getAuthorName();
167 addField(D_("IDS_COM_BODY_DETAILS_NAME"),
168 name.IsNull() ? NULL :
169 DPL::ToUTF8String((*name)).c_str());
171 email = m_dao->getAuthorEmail();
173 addField(D_("IDS_COM_BODY_EMAIL"),
174 DPL::ToUTF8String((*email)).c_str());
176 homepage = m_dao->getAuthorHref();
178 if (!homepage.IsNull())
180 DPL::ToUTF8String((*homepage)).c_str());
183 void DetailView::addSaveLoginInfo()
187 Evas_Object *ly = elm_layout_add(m_bx);
190 elm_layout_theme_set(ly, "layout", "dialogue", "1text.1icon");
191 evas_object_size_hint_weight_set(ly, EVAS_HINT_EXPAND, 0.0);
192 evas_object_size_hint_align_set(ly, EVAS_HINT_FILL, 0.0);
193 elm_object_part_text_set(ly, "elm.text", "Auto save ID/password");
195 check_login = elm_check_add(ly);
201 elm_object_style_set(check_login, "on&off");
202 evas_object_propagate_events_set(check_login, EINA_FALSE);
203 elm_object_part_content_set(ly, "elm.icon", check_login);
205 evas_object_event_callback_add(ly,
206 EVAS_CALLBACK_MOUSE_DOWN,
209 evas_object_event_callback_add(ly,
210 EVAS_CALLBACK_MOUSE_MOVE,
213 evas_object_event_callback_add(ly,
214 EVAS_CALLBACK_MOUSE_UP,
215 _mouse_up_save_login_info,
218 evas_object_show(ly);
219 elm_box_pack_end(m_bx, ly);
222 void DetailView::addClearData()
226 Evas_Object *ly = elm_layout_add(m_bx);
229 elm_layout_theme_set(ly, "layout", "dialogue", "1text");
230 elm_object_text_set(ly, "Clear Data");
231 evas_object_size_hint_align_set(ly, EVAS_HINT_FILL, EVAS_HINT_FILL);
232 evas_object_size_hint_weight_set(ly, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
234 evas_object_event_callback_add(ly,
235 EVAS_CALLBACK_MOUSE_DOWN,
238 evas_object_event_callback_add(ly,
239 EVAS_CALLBACK_MOUSE_MOVE,
242 evas_object_event_callback_add(ly,
243 EVAS_CALLBACK_MOUSE_UP,
244 _mouse_up_clear_data,
247 evas_object_show(ly);
248 elm_box_pack_end(m_bx, ly);
252 void DetailView::addAdvancedSettings()
256 Evas_Object *ly = elm_layout_add(m_bx);
259 elm_layout_theme_set(ly, "layout", "dialogue", "1text");
260 elm_object_text_set(ly, "Advanced Settings");
261 evas_object_size_hint_align_set(ly, EVAS_HINT_FILL, EVAS_HINT_FILL);
262 evas_object_size_hint_weight_set(ly, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
264 evas_object_event_callback_add(ly,
265 EVAS_CALLBACK_MOUSE_DOWN,
268 evas_object_event_callback_add(ly,
269 EVAS_CALLBACK_MOUSE_MOVE,
272 evas_object_event_callback_add(ly,
273 EVAS_CALLBACK_MOUSE_UP,
274 _mouse_up_advanced_settings,
277 evas_object_show(ly);
278 elm_box_pack_end(m_bx, ly);
282 void DetailView::addSeperator()
288 ly = elm_layout_add(m_bx);
291 elm_layout_theme_set(ly, "layout", "dialogue", "separator/hd33/with_line");
293 evas_object_size_hint_weight_set(ly, EVAS_HINT_EXPAND, 0.0);
294 evas_object_size_hint_align_set(ly, EVAS_HINT_FILL, 0.0);
295 evas_object_show(ly);
296 elm_box_pack_end(m_bx, ly);
299 void DetailView::addLicense(void)
301 DPL::OptionalString license;
302 DPL::OptionalString href;
304 std::string strLicense;
307 std::string lrepdf = "\xE2\x80\xAA\xE2\x80\xAC";
308 std::string rlepdf = "\xE2\x80\xAB\xE2\x80\xAC";
309 std::string lropdf = "\xE2\x80\xAD\xE2\x80\xAC";
310 std::string rlopdf = "\xE2\x80\xAE\xE2\x80\xAC";
316 license = m_localizedInfo.license;
317 if (!license.IsNull())
318 strLicense = DPL::ToUTF8String((*license));
320 href = m_localizedInfo.licenseHref;
322 strHref = DPL::ToUTF8String((*href));
324 m_licenseInfo = new LicenseInfo();
328 if (!strLicense.empty() &&
329 strLicense.compare(lrepdf) != 0 &&
330 strLicense.compare(rlepdf) != 0 &&
331 strLicense.compare(lropdf) != 0 &&
332 strLicense.compare(rlopdf) != 0) {
333 m_licenseInfo->license = strLicense;
336 if (!strHref.empty()) {
337 m_licenseInfo->href = strHref;
342 layout = elm_layout_add(m_bx);
345 elm_layout_theme_set(layout, "layout", "dialogue", "1text");
346 evas_object_size_hint_weight_set(layout, EVAS_HINT_EXPAND, 0.0);
347 evas_object_size_hint_align_set(layout, EVAS_HINT_FILL, 0.0);
348 elm_object_part_text_set(layout, "elm.text", "License Information");
350 if (m_licenseInfo->license.empty() && m_licenseInfo->href.empty()) {
351 elm_object_signal_emit(layout, "elm,state,disabled", "elm");
353 m_licenseInfo->evasObj = layout;
355 evas_object_event_callback_add(layout,
356 EVAS_CALLBACK_MOUSE_DOWN,
359 evas_object_event_callback_add(layout,
360 EVAS_CALLBACK_MOUSE_MOVE,
363 evas_object_event_callback_add(layout,
364 EVAS_CALLBACK_MOUSE_UP,
369 elm_box_pack_end(m_bx, layout);
370 evas_object_show(layout);
373 void DetailView::clearDataCallback(void *data,
377 //TODO : implementation here.
378 Evas_Object *popup = static_cast<Evas_Object *>(data);
379 evas_object_del(popup);
382 void DetailView::viewlicenseCallback(void *data,
386 //TODO : implementation here.
387 Evas_Object *popup = static_cast<Evas_Object *>(data);
388 evas_object_del(popup);
391 void DetailView::closeCallback(void *data,
395 evas_object_del(static_cast<Evas_Object *>(data));
398 void DetailView::_mouse_down(void *data,
403 elm_object_signal_emit(obj, "elm,state,selected", "elm");
406 void DetailView::_mouse_move(void *data,
411 Evas_Event_Mouse_Move *event;
412 Evas_Coord ox, oy, ow, oh;
414 event = static_cast<Evas_Event_Mouse_Move*>(event_info);
418 evas_object_geometry_get(obj, &ox, &oy, &ow, &oh);
420 if (event->cur.canvas.x < ox || (ox + ow) < event->cur.canvas.x ||
421 event->cur.canvas.y < oy || (oy + oh) < event->cur.canvas.y) {
422 elm_object_signal_emit(obj, "elm,state,unselected", "elm");
427 void DetailView::_mouse_up_license(void *data,
432 Evas_Event_Mouse_Up *event;
438 Evas_Object *l_button;
439 Evas_Object *r_button;
440 LicenseInfo *licenseInfo;
441 Evas_Coord ox, oy, ow, oh;
444 licenseInfo = static_cast<LicenseInfo *>(data);
448 event = static_cast<Evas_Event_Mouse_Up*>(event_info);
452 evas_object_geometry_get(licenseInfo->evasObj, &ox, &oy, &ow, &oh);
453 if (event->output.x < ox || (ox + ow) < event->canvas.x ||
454 event->output.y < oy || (oy + oh) < event->canvas.y) {
457 elm_object_signal_emit(licenseInfo->evasObj, "elm,state,unselected", "elm");
459 win = static_cast<Evas_Object *>(ug_get_window());
463 popup = elm_popup_add(win);
467 evas_object_size_hint_align_set(popup, EVAS_HINT_FILL, EVAS_HINT_FILL);
468 evas_object_size_hint_weight_set(popup, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
469 elm_object_part_text_set(popup, "title,text", "License Information");
471 label += licenseInfo->license.c_str();
472 if (!licenseInfo->href.empty()) {
475 label += "More license, see <br>";
476 label += licenseInfo->href.c_str();
478 elm_object_part_text_set(popup, "default", label.c_str());
479 evas_object_show(popup);
481 l_button = elm_button_add(popup);
483 evas_object_del(popup);
487 evas_object_size_hint_align_set(l_button, EVAS_HINT_FILL, EVAS_HINT_FILL);
488 evas_object_size_hint_weight_set(l_button, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
489 elm_object_text_set(l_button, "YES");
490 elm_object_part_content_set(popup, "button1", l_button);
491 evas_object_smart_callback_add(l_button,
495 evas_object_show(r_button);
497 r_button = elm_button_add(popup);
499 evas_object_del(popup);
503 evas_object_size_hint_align_set(r_button, EVAS_HINT_FILL, EVAS_HINT_FILL);
504 evas_object_size_hint_weight_set(r_button, EVAS_HINT_FILL, EVAS_HINT_FILL);
505 elm_object_text_set(r_button, "NO");
506 elm_object_part_content_set(popup, "button2", r_button);
507 evas_object_smart_callback_add(r_button,
511 evas_object_show(l_button);
512 elm_object_focus_allow_set(popup, EINA_TRUE);
513 elm_object_focus_set(popup, EINA_TRUE);
516 void DetailView::_mouse_up_save_login_info(void *data,
521 Assert(obj && data && event_info);
523 Evas_Event_Mouse_Up *event;
524 Evas_Coord ox, oy, ow, oh;
526 event = static_cast<Evas_Event_Mouse_Up*>(event_info);
527 evas_object_geometry_get(obj, &ox, &oy, &ow, &oh);
529 if (event->output.x < ox || (ox + ow) < event->output.x ||
530 event->output.y < oy || (oy + oh) < event->output.y) {
534 DetailView *This = static_cast<DetailView *>(data);
535 elm_check_state_set(This->check_login, !elm_check_state_get(This->check_login));
536 elm_object_signal_emit(obj, "elm,state,unselected", "elm");
539 void DetailView::_mouse_up_clear_data(void *data,
544 Evas_Event_Mouse_Up *event;
545 Evas_Coord ox, oy, ow, oh;
547 Evas_Object *l_button;
548 Evas_Object *r_button;
550 event = static_cast<Evas_Event_Mouse_Up *>(event_info);
554 evas_object_geometry_get(obj, &ox, &oy, &ow, &oh);
556 if (event->output.x < ox || (ox + ow) < event->output.x ||
557 event->output.y < oy || (oy + oh) < event->output.y) {
561 DetailView *This = static_cast<DetailView *>(data);
564 elm_object_signal_emit(obj, "elm,state,unselected", "elm");
566 popup = elm_popup_add(This->m_bx);
569 evas_object_size_hint_align_set(popup, EVAS_HINT_FILL, EVAS_HINT_FILL);
570 evas_object_size_hint_weight_set(popup, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
571 elm_object_part_text_set(popup, "default", "Do you want to clear data?");
573 l_button = elm_button_add(popup);
574 elm_object_text_set(l_button, "YES");
575 evas_object_smart_callback_add(l_button, "clicked", clearDataCallback, (void*)popup);
576 elm_object_part_content_set(popup, "button1", l_button);
577 evas_object_show(l_button);
579 r_button = elm_button_add(popup);
580 elm_object_text_set(r_button, "NO");
581 evas_object_smart_callback_add(r_button, "clicked", closeCallback, (void*)popup);
582 elm_object_part_content_set(popup, "button2", r_button);
583 evas_object_show(r_button);
585 evas_object_show(popup);
588 void DetailView::_mouse_up_advanced_settings(void* data,
593 Evas_Event_Mouse_Up *event;
594 Evas_Coord ox, oy, ow, oh;
596 event = static_cast<Evas_Event_Mouse_Up *>(eventInfo);
600 evas_object_geometry_get(obj, &ox, &oy, &ow, &oh);
602 if (event->output.x < ox || (ox + ow) < event->output.x ||
603 event->output.y < oy || (oy + oh) < event->output.y)
608 elm_object_signal_emit(obj, "elm,state,unselected", "elm");
610 DetailView* This = static_cast<DetailView*>(data);
612 This->m_advancedView.Reset(
613 new AdvancedView(This->m_naviframe, This->m_appID));
614 if (!This->m_advancedView->loadView()) {
615 This->m_advancedView.Reset();
619 void DetailView:: clearDataPopupCallback(void *data, Evas_Object *obj,
625 DetailData *detailData;
628 it = static_cast<Elm_Object_Item *>(event_info);
630 elm_genlist_item_selected_set(it, EINA_FALSE);
631 detailData = static_cast<DetailData *>(data);
633 popup = elm_popup_add(detailData->m_detailView->m_naviframe);
634 evas_object_size_hint_weight_set(popup, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
635 elm_object_text_set(popup,"Do you want to clear data?");
636 btn1 = elm_button_add(popup);
637 elm_object_text_set(btn1, "OK");
638 elm_object_part_content_set(popup, "button1", btn1);
639 evas_object_smart_callback_add(btn1, "clicked", clearDataCallback, popup);
640 btn2 = elm_button_add(popup);
641 elm_object_text_set(btn2, "Cancel");
642 elm_object_part_content_set(popup, "button2", btn2);
643 evas_object_smart_callback_add(btn2, "clicked", closeCallback, popup);
644 evas_object_show(popup);
647 void DetailView::advancedSettingsCallback(void* data,
651 DetailData *detailData;
655 it = static_cast<Elm_Object_Item *>(eventInfo);
657 elm_genlist_item_selected_set(it, EINA_FALSE);
658 detailData = static_cast<DetailData *>(data);
659 detailData->m_detailView->m_advancedView.Reset(
660 new AdvancedView(detailData->m_detailView->m_naviframe,
661 detailData->m_detailView->m_appID));
662 if (!detailData->m_detailView->m_advancedView->loadView()) {
663 detailData->m_detailView->m_advancedView.Reset();
666 char *DetailView::getText(void *data,
667 Evas_Object */*obj*/,
670 DetailData *detailData;
673 detailData = static_cast<DetailData *>(data);
675 if (!strcmp(part, "elm.text"))
676 str = detailData->m_title.c_str();
677 else if (!strcmp(part, "elm.text.1"))
678 str = detailData->m_subtitle.c_str();
679 else if(!strcmp(part, "elm.text.2"))
680 str = detailData->m_title.c_str();
686 char *DetailView::getTitle(void *data,
687 Evas_Object */*obj*/,
690 DetailData *detailData;
693 detailData = static_cast<DetailData *>(data);
696 if (!strcmp(part, "elm.text"))
697 str = detailData->m_title.c_str();
698 else if (!strcmp(part, "elm.text.1"))
699 str = detailData->m_title.c_str();
705 void DetailView::addDefInfo(Evas_Object *gl)
707 DPL::OptionalString ver;
711 ver = m_dao->getVersion();
712 bindtextdomain("ug-webapp-common-efl", "/usr/ug/res/locale");
713 addTitleText(gl,D_("IDS_COM_BODY_DETAILS_NAME"),
714 m_localizedInfo.name.IsNull() ? "" :
715 DPL::ToUTF8String((*m_localizedInfo.name)).c_str());
716 addTitleText(gl,U_("IDS_ST_BODY_VERSION"), ver.IsNull() ? "" :
717 DPL::ToUTF8String((*ver)).c_str());
718 //addTitleText(gl,U_("IDS_ST_BODY_DOMAIN_SECURITY_STATUS"),
719 // m_dao->isTrusted() ? "Trusted" : "Untrusted");
720 addTitleText(gl,D_("IDS_COM_BODY_DESCRIPTION"),
721 m_localizedInfo.description.IsNull() ? "" :
722 DPL::ToUTF8String((*m_localizedInfo.description)).c_str());
725 void DetailView::addViewModes(Evas_Object *gl)
728 WrtDB::WindowModeList modes;
731 bindtextdomain("ug-webapp-common-efl", "/usr/ug/res/locale");
732 modes = m_dao->getWindowModes();
733 if (modes.size() > 0) {
737 mode.resize(mode.length() - 1);
739 addTitleText(gl,U_("IDS_WRT_BODY_VIEW_M_MODE"),
740 DPL::ToUTF8String(mode).c_str());
743 addTitleText(gl,U_("IDS_WRT_BODY_VIEW_M_MODE"), "");
747 void DetailView::addAuthorInfo(Evas_Object *gl)
749 DPL::OptionalString name;
750 DPL::OptionalString email;
751 DPL::OptionalString homepage;
754 addTitle(gl,D_("IDS_COM_BODY_AUTHOR"));
756 name = m_dao->getAuthorName();
757 addTitleText(gl,D_("IDS_COM_BODY_DETAILS_NAME"),
759 DPL::ToUTF8String((*name)).c_str());
761 email = m_dao->getAuthorEmail();
763 addTitleText(gl,D_("IDS_COM_BODY_EMAIL"),
764 DPL::ToUTF8String((*email)).c_str());
766 homepage = m_dao->getAuthorHref();
768 if (!homepage.IsNull())
769 addTitleText(gl,"Homepage",
770 DPL::ToUTF8String((*homepage)).c_str());
773 void DetailView::addDepth(Evas_Object *gl)
775 static Elm_Genlist_Item_Class itc;
780 itc.item_style = "dialogue/separator/21/with_line";
781 itc.func.text_get = NULL;
782 itc.func.content_get = NULL;
783 itc.func.state_get = NULL;
785 it = elm_genlist_item_append(gl,
789 ELM_GENLIST_ITEM_NONE,
792 elm_genlist_item_select_mode_set(it,
793 ELM_OBJECT_SELECT_MODE_DISPLAY_ONLY);
794 } catch (const std::bad_alloc &) {
798 void DetailView::addTitle(Evas_Object *gl, const char* title)
800 static Elm_Genlist_Item_Class itc;
803 DetailData *detailData;
807 detailData = new DetailData(this,
810 itc.item_style = "dialogue/title";
811 itc.func.text_get = getTitle ;
812 itc.func.content_get = NULL;
813 itc.func.state_get = NULL;
816 it = elm_genlist_item_append(gl,
818 static_cast<void *>(detailData),
820 ELM_GENLIST_ITEM_NONE,
823 elm_genlist_item_select_mode_set(it,
824 ELM_OBJECT_SELECT_MODE_DISPLAY_ONLY);
825 } catch (const std::bad_alloc &) {
829 void DetailView::addTitleText(
830 Evas_Object *gl, const char* title, const char* subtitle)
832 static Elm_Genlist_Item_Class itc;
834 DetailData *detailData;
837 detailData = new DetailData(this,
840 itc.item_style = "dialogue/2text.2";
841 itc.func.text_get =getText ;
842 itc.func.content_get = NULL;
843 itc.func.state_get = NULL;
845 it = elm_genlist_item_append(gl,
847 static_cast<void *>(detailData),
849 ELM_GENLIST_ITEM_NONE,
852 elm_genlist_item_select_mode_set(it,
853 ELM_OBJECT_SELECT_MODE_DISPLAY_ONLY);
854 } catch (const std::bad_alloc &) {
858 void DetailView::addLicenseInfo(Evas_Object *gl, const char* title)
860 static Elm_Genlist_Item_Class itc;
861 DetailData *detailData;
866 detailData = new DetailData(this,
869 itc.item_style = "dialogue/1text";
870 itc.func.text_get =getTitle ;
871 itc.func.content_get = NULL;
872 itc.func.state_get = NULL;
875 it = elm_genlist_item_append(gl,
877 static_cast<void *>(detailData),
879 ELM_GENLIST_ITEM_NONE,
882 elm_object_item_disabled_set(it, EINA_TRUE);
883 } catch (const std::bad_alloc &) {
887 void DetailView::addClearData(Evas_Object *gl, const char* title)
889 static Elm_Genlist_Item_Class itc;
890 DetailData *detailData;
895 detailData = new DetailData(this,
898 itc.item_style = "dialogue/1text";
899 itc.func.text_get =getTitle ;
900 itc.func.content_get = NULL;
901 itc.func.state_get = NULL;
903 it = elm_genlist_item_append(gl,
905 static_cast<void *>(detailData),
907 ELM_GENLIST_ITEM_NONE,
908 clearDataPopupCallback,
909 static_cast<void *>(detailData));
910 elm_genlist_item_select_mode_set(it,
911 ELM_OBJECT_SELECT_MODE_ALWAYS);
912 } catch (const std::bad_alloc &) {
916 void DetailView::addAdvancedSetting(Evas_Object *gl, const char* title)
918 static Elm_Genlist_Item_Class itc;
919 DetailData *detailData;
924 detailData = new DetailData(this,
927 itc.item_style = "dialogue/1text";
928 itc.func.text_get =getTitle ;
929 itc.func.content_get = NULL;
930 itc.func.state_get = NULL;
932 it = elm_genlist_item_append(gl,
934 static_cast<void *>(detailData),
936 ELM_GENLIST_ITEM_NONE,
937 advancedSettingsCallback,
938 static_cast<void *>(detailData));
939 elm_genlist_item_select_mode_set(it,
940 ELM_OBJECT_SELECT_MODE_ALWAYS);
941 } catch (const std::bad_alloc &) {
945 Evas_Object *DetailView::loadView(void)
950 win = static_cast<Evas_Object *>(ug_get_window());
952 m_gl = elm_genlist_add(m_naviframe);
953 elm_object_style_set(m_gl, "dialogue");
955 m_dao.Reset(new WrtDB::WidgetDAO(m_appID));
959 evas_object_del(m_naviframe);
966 bindtextdomain("ug-webapp-common-efl", "/usr/ug/res/locale");
967 if (!GlobalSettings::TestModeEnabled())
968 addLicenseInfo(m_gl,U_("IDS_WRT_BODY_LICENCE_INFORMATION"));
969 addClearData(m_gl, U_("IDS_ST_BODY_CLEAR_DATA"));
970 addAdvancedSetting(m_gl, U_("IDS_ST_HEADER_ADVANCED_SETTINGS"));
974 } catch (const std::bad_alloc &) {
979 void DetailView::onBackBtnClicked(void *data,
980 Evas_Object */*obj*/,
981 void */*event_info*/)
985 This= static_cast<DetailView *>(data);
987 ug_destroy_me(This->m_ug);
989 bool DetailView::pushToNaviFrame(void)
994 btn = elm_button_add(m_naviframe);
998 elm_object_style_set(btn, "naviframe/end_btn/default");
999 evas_object_smart_callback_add(btn, "clicked", onBackBtnClicked, this);
1000 bindtextdomain("ug-webapp-common-efl", "/usr/ug/res/locale");
1001 elm_naviframe_item_push(m_naviframe,
1002 U_("IDS_ST_BODY_MORE_DETAILS"),
1010 DetailView::DetailView(Evas_Object* navi, ui_gadget_h ug, int appID) :
1014 m_licenseInfo(NULL),
1021 DetailView::~DetailView(void)
1024 delete m_licenseInfo;