From: JongHeon Choi Date: Thu, 7 Jul 2016 12:11:59 +0000 (+0900) Subject: Fixed certificate popup of circle X-Git-Tag: accepted/tizen/ivi/20160707.225046^2 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=ca2c9a78c674efaa19cd99d9d36f73e37cf3c5b4;p=platform%2Fframework%2Fweb%2Fcrosswalk-tizen.git Fixed certificate popup of circle --- diff --git a/packaging/crosswalk-tizen.spec b/packaging/crosswalk-tizen.spec index 2889a4b..523d7da 100755 --- a/packaging/crosswalk-tizen.spec +++ b/packaging/crosswalk-tizen.spec @@ -20,6 +20,7 @@ BuildRequires: edje-tools BuildRequires: gettext BuildRequires: ninja BuildRequires: python +BuildRequires: model-build-features BuildRequires: pkgconfig(appsvc) BuildRequires: pkgconfig(aul) BuildRequires: pkgconfig(bundle) @@ -105,6 +106,7 @@ GYP_OPTIONS="$GYP_OPTIONS -Dtizen_feature_rotary_event_support=%{?tizen_feature_ GYP_OPTIONS="$GYP_OPTIONS -Dtizen_feature_web_ime_support=%{?tizen_feature_web_ime_support}" GYP_OPTIONS="$GYP_OPTIONS -Dtizen_feature_watch_face_support=%{?tizen_feature_watch_face_support}" GYP_OPTIONS="$GYP_OPTIONS -Dtizen_feature_manual_rotate_support=%{?tizen_feature_manual_rotate_support}" +GYP_OPTIONS="$GYP_OPTIONS -Dtizen_model_formfactor=%{?model_build_feature_formfactor}" # Extension Path GYP_OPTIONS="$GYP_OPTIONS -Dextension_path=%{extension_path}" @@ -123,6 +125,7 @@ mkdir -p %{buildroot}%{_libdir} mkdir -p %{buildroot}%{_bindir} mkdir -p %{buildroot}%{_datadir}/license mkdir -p %{buildroot}%{_datadir}/locale +mkdir -p %{buildroot}%{_datadir}/icons/xwalk mkdir -p %{buildroot}%{_datadir}/edje/xwalk mkdir -p %{buildroot}%{extension_path} @@ -134,6 +137,9 @@ cat LICENSE.BSD >> %{buildroot}%{_datadir}/license/%{name} mkdir -p %{buildroot}%{_datadir}/aul/ cp %{SOURCE1002} %{buildroot}%{_datadir}/aul/ +# Popup icon +cp runtime/resources/icons/*.png %{buildroot}%{_datadir}/icons/xwalk/ + # xwalk_common install -p -m 644 out/Default/lib/libxwalk_tizen_common.so %{buildroot}%{_libdir} @@ -169,6 +175,7 @@ rm -fr %{buildroot} %manifest %{name}.manifest %attr(644,root,root) %{_datadir}/license/%{name} %attr(755,root,root) %{_datadir}/locale/* +%attr(644,root,root) %{_datadir}/icons/xwalk/* %attr(644,root,root) %{_datadir}/edje/xwalk/*.edj %attr(644,root,root) %{_libdir}/libxwalk_tizen_common.so %attr(644,root,root) %{_libdir}/libxwalk_injected_bundle.so diff --git a/runtime/browser/popup.cc b/runtime/browser/popup.cc index aaeacac..06fe2a9 100644 --- a/runtime/browser/popup.cc +++ b/runtime/browser/popup.cc @@ -28,11 +28,32 @@ namespace { const char* kWRTEdjePath = "/usr/share/edje/xwalk/xwalk_tizen.edj"; +#ifdef MODEL_FORMFACTOR_CIRCLE +const char* kWRTIconDeletePath = "/usr/share/icons/xwalk/tw_ic_popup_btn_delete.png"; +const char* kWRTIconCheckPath = "/usr/share/icons/xwalk/tw_ic_popup_btn_check.png"; + +const char* kLayoutTheme = "content/circle/buttons2"; +const char* kContentTitle = "elm.text.title"; +const char* kContentText = "elm.text"; + +const char* kStylePopup = "circle"; +const char* kStyleCheck = "small"; +const char* kStyleButtonLeft = "popup/circle/left"; +const char* kStyleButtonRight = "popup/circle/right"; +#else +const char* kLayoutTheme = "default"; const char* kContentTitle = "title,text"; +const char* kContentText = NULL; + +const char* kStylePopup = "default"; +const char* kStyleCheck = "default"; +const char* kStyleButtonLeft = "popup"; +const char* kStyleButtonRight = "popup"; +#endif // MODEL_FORMFACTOR_CIRCLE + const char* kContentButton1 = "button1"; const char* kContentButton2 = "button2"; -const char* kStyleDefault = "default"; const char* kStyleLabel = "popup/default"; const char* kStyleButton = "popup"; const char* kStyleEditPw = "editfield/password/popup"; @@ -54,16 +75,28 @@ static void ButtonClickedCallback(void* data, } // caution: not Evas_Object* but Popup* -static Evas_Object* AddButton(Popup* popup, - const char* str_id, const char* content) { +static Evas_Object* AddButton(Popup* popup, const char* str_id, + const char* content, + const char* style_button) { Evas_Object* btn = elm_button_add(popup->popup()); - elm_object_style_set(btn, kStyleButton); + elm_object_style_set(btn, style_button); elm_object_domain_translatable_part_text_set(btn, 0, kTextDomainRuntime, str_id); elm_object_part_content_set(popup->popup(), content, btn); evas_object_smart_callback_add(btn, kStateClicked, ButtonClickedCallback, popup); +#ifdef MODEL_FORMFACTOR_CIRCLE + Evas_Object* icon = elm_image_add(btn); + if (!strcmp(content, kContentButton1)) { + elm_image_file_set(icon, kWRTIconDeletePath, NULL); + } else { + elm_image_file_set(icon, kWRTIconCheckPath, NULL); + } + evas_object_size_hint_weight_set(icon, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND); + elm_object_part_content_set(btn, "elm.swallow.content", icon); + evas_object_show(icon); +#endif // MODEL_FORMFACTOR_CIRCLE return btn; } @@ -121,9 +154,11 @@ static Evas_Object* AddEntrySet(Evas_Object* parent, static Evas_Object* AddCheckBox(Evas_Object* parent) { Evas_Object* check = elm_check_add(parent); - elm_object_style_set(check, kStyleDefault); - elm_object_style_set(check, "multiline"); + elm_object_style_set(check, kStyleCheck); evas_object_size_hint_align_set(check, EVAS_HINT_FILL, EVAS_HINT_FILL); +#ifndef MODEL_FORMFACTOR_CIRCLE + elm_object_style_set(check, "multiline"); +#endif // MODEL_FORMFACTOR_CIRCLE elm_check_state_set(check, EINA_TRUE); return check; } @@ -136,7 +171,21 @@ std::set Popup::opened_popups_; Popup* Popup::CreatePopup(NativeWindow* window) { Evas_Object* popup = elm_popup_add(window->evas_object()); evas_object_size_hint_weight_set(popup, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND); - elm_object_style_set(popup, kStyleDefault); + elm_object_style_set(popup, kStylePopup); + + Evas_Object* layout = elm_layout_add(popup); + elm_layout_theme_set(layout, "layout", "popup", kLayoutTheme); +#ifdef MODEL_FORMFACTOR_CIRCLE + elm_object_content_set(popup, layout); + + Evas_Object* box = elm_box_add(layout); + elm_box_padding_set(box, 0, 10); + evas_object_size_hint_weight_set(box, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND); + evas_object_size_hint_align_set(box, EVAS_HINT_FILL, EVAS_HINT_FILL); + elm_object_part_content_set(layout, "elm.swallow.content", box); + evas_object_show(box); +#else + //elm_object_content_set(popup, layout); Evas_Object* box = elm_box_add(popup); elm_box_padding_set(box, 0, 10); @@ -144,10 +193,12 @@ Popup* Popup::CreatePopup(NativeWindow* window) { evas_object_size_hint_align_set(box, EVAS_HINT_FILL, EVAS_HINT_FILL); elm_object_part_content_set(popup, "default", box); evas_object_show(box); +#endif // MODEL_FORMFACTOR_CIRCLE evas_object_event_callback_add(popup, EVAS_CALLBACK_RESIZE, NULL, NULL); - return new Popup(popup, box); + return new Popup(popup, layout, box); + } void Popup::ForceCloseAllPopup() { @@ -163,25 +214,25 @@ void Popup::SetButtonType(ButtonType type) { switch (type) { case ButtonType::OkButton: button1_ = AddButton(this, popup_string::kPopupButtonOk, - kContentButton1); + kContentButton1, kStyleButton); break; case ButtonType::OkCancelButton: button1_ = AddButton(this, popup_string::kPopupButtonCancel, - kContentButton1); + kContentButton1, kStyleButtonLeft); button2_ = AddButton(this, popup_string::kPopupButtonOk, - kContentButton2); + kContentButton2, kStyleButtonRight); break; case ButtonType::LoginCancelButton: button1_ = AddButton(this, popup_string::kPopupButtonCancel, - kContentButton1); + kContentButton1, kStyleButtonLeft); button2_ = AddButton(this, popup_string::kPopupButtonLogin, - kContentButton2); + kContentButton2, kStyleButtonRight); break; case ButtonType::AllowDenyButton: button1_ = AddButton(this, popup_string::kPopupButtonDeny, - kContentButton1); + kContentButton1, kStyleButtonLeft); button2_ = AddButton(this, popup_string::kPopupButtonAllow, - kContentButton2); + kContentButton2, kStyleButtonRight); break; } } @@ -224,10 +275,14 @@ void Popup::SetCheckBox(const std::string& str_id) { check_box_ = AddCheckBox(box_); if (!str_id.empty()) { elm_object_domain_translatable_part_text_set( - check_box_, 0, + check_box_, kContentText, kTextDomainRuntime, str_id.c_str()); } +#ifdef MODEL_FORMFACTOR_CIRCLE + elm_object_part_content_set(box_, "elm.swallow.checkbox", check_box_); + evas_object_size_hint_min_set(check_box_, 0, 80); +#endif // MODEL_FORMFACTOR_CIRCLE elm_box_pack_end(box_, check_box_); evas_object_show(check_box_); } @@ -238,7 +293,12 @@ bool Popup::GetCheckBoxResult() const { void Popup::SetTitle(const std::string& str_id) { elm_object_domain_translatable_part_text_set( - popup_, kContentTitle, +#ifdef MODEL_FORMFACTOR_CIRCLE + layout_, +#else + popup_, +#endif // MODEL_FORMFACTOR_CIRCLE + kContentTitle, kTextDomainRuntime, str_id.c_str()); } @@ -247,23 +307,15 @@ void Popup::SetBody(const std::string& str_id) { Evas_Object* label = elm_label_add(box_); elm_object_style_set(label, kStyleLabel); elm_label_line_wrap_set(label, ELM_WRAP_MIXED); - elm_object_domain_translatable_part_text_set( - label, 0, kTextDomainRuntime, str_id.c_str()); - evas_object_color_set(label, 0, 0, 0, 255); + elm_object_part_text_set(label, kContentText, str_id.c_str()); evas_object_size_hint_weight_set(label, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND); evas_object_size_hint_align_set(label, EVAS_HINT_FILL, EVAS_HINT_FILL); - elm_box_pack_end(box_, label); - evas_object_show(label); -} - -void Popup::SetUrl(const std::string& url) { - Evas_Object* label = elm_label_add(box_); - elm_object_style_set(label, kStyleLabel); - elm_label_line_wrap_set(label, ELM_WRAP_MIXED); - elm_object_text_set(label, url.c_str()); +#ifdef MODEL_FORMFACTOR_CIRCLE + evas_object_color_set(label, 255, 255, 255, 255); + elm_object_part_content_set(box_, "elm.swallow.label", label); +#else evas_object_color_set(label, 0, 0, 0, 255); - evas_object_size_hint_weight_set(label, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND); - evas_object_size_hint_align_set(label, EVAS_HINT_FILL, EVAS_HINT_FILL); +#endif // MODEL_FORMFACTOR_CIRCLE elm_box_pack_end(box_, label); evas_object_show(label); } @@ -313,8 +365,8 @@ void Popup::Result(bool is_positive) { handler_(this, user_data_); } -Popup::Popup(Evas_Object* popup, Evas_Object* box) - : popup_(popup), box_(box), button1_(NULL), button2_(NULL), +Popup::Popup(Evas_Object* popup, Evas_Object* layout, Evas_Object* box) + : popup_(popup), layout_(layout), box_(box), button1_(NULL), button2_(NULL), entry1_(NULL), entry2_(NULL), check_box_(NULL), user_data_(NULL), enable_button_(false), result_button_(false), enable_entry_(false), enable_check_box_(false), result_check_box_(false) {} diff --git a/runtime/browser/popup.h b/runtime/browser/popup.h index 0dcb0d5..f6b3081 100644 --- a/runtime/browser/popup.h +++ b/runtime/browser/popup.h @@ -64,7 +64,6 @@ class Popup { // etc. void SetTitle(const std::string& str_id); void SetBody(const std::string& str_id); - void SetUrl(const std::string& url); void SetResultHandler(std::function handler, void* user_data); @@ -77,10 +76,11 @@ class Popup { Evas_Object* popup() { return popup_; } private: - Popup(Evas_Object* popup, Evas_Object* box); + Popup(Evas_Object* popup, Evas_Object* layout, Evas_Object* box); ~Popup(); Evas_Object* popup_; + Evas_Object* layout_; Evas_Object* box_; Evas_Object* button1_; Evas_Object* button2_; diff --git a/runtime/browser/web_application.cc b/runtime/browser/web_application.cc index 52c34e8..ef09759 100644 --- a/runtime/browser/web_application.cc +++ b/runtime/browser/web_application.cc @@ -1062,8 +1062,8 @@ void WebApplication::OnCertificateAllowRequest( Popup* popup = Popup::CreatePopup(window_); popup->SetButtonType(Popup::ButtonType::AllowDenyButton); popup->SetTitle(popup_string::kPopupTitleCert); - popup->SetBody(popup_string::kPopupBodyCert); - popup->SetUrl(url); + popup->SetBody(popup_string::GetText( + popup_string::kPopupBodyCert)+" ["+url+"]"); popup->SetCheckBox(popup_string::kPopupCheckRememberPreference); popup->SetResultHandler( [db, result_handler, pem](Popup* popup, void* /*user_data*/) { diff --git a/runtime/resources/icons/tw_ic_popup_btn_check.png b/runtime/resources/icons/tw_ic_popup_btn_check.png new file mode 100644 index 0000000..f20f62e Binary files /dev/null and b/runtime/resources/icons/tw_ic_popup_btn_check.png differ diff --git a/runtime/resources/icons/tw_ic_popup_btn_delete.png b/runtime/resources/icons/tw_ic_popup_btn_delete.png new file mode 100644 index 0000000..5f346cb Binary files /dev/null and b/runtime/resources/icons/tw_ic_popup_btn_delete.png differ diff --git a/runtime/resources/resources.gyp b/runtime/resources/resources.gyp index 8ab0f7c..5930dd6 100644 --- a/runtime/resources/resources.gyp +++ b/runtime/resources/resources.gyp @@ -70,6 +70,8 @@ 'locales/ur.po', 'locales/vi.po', 'locales/zh_CN.po', + 'icons/tw_ic_popup_btn_check.png', + 'icons/tw_ic_popup_btn_delete.png', ], }, # end of target 'xwalk_runtime_resources_locales' ], diff --git a/runtime/runtime.gyp b/runtime/runtime.gyp index 2e0f476..d3a2299 100755 --- a/runtime/runtime.gyp +++ b/runtime/runtime.gyp @@ -72,6 +72,9 @@ ['profile == "tv"', { 'defines': ['PROFILE_TV'], }], + ['tizen_model_formfactor == "circle"', { + 'defines': ['MODEL_FORMFACTOR_CIRCLE'], + }], ['tizen_feature_rotary_event_support == 1', { 'defines': ['ROTARY_EVENT_FEATURE_SUPPORT'], }],