* @file FWebCtrl_UserConfirmPopup.cpp
* @brief The file contains the definition of _UserConfirmPopup class.
*/
+#include <EWebKit2.h>
#include <FAppApp.h>
#include <FBaseColArrayList.h>
#include <FBaseSysLog.h>
#include <FUiCtrlButton.h>
#include <FUiCtrlLabel.h>
#include <FUiCtrlPanel.h>
+#include <FUiKeyEventInfo.h>
#include <FUiLayout.h>
#include <FUiVerticalBoxLayout.h>
#include <FIo_DatabaseImpl.h>
#include "FWebCtrl_EflWebkit.h"
#include "FWebCtrl_UserConfirmPopup.h"
#include "FWebCtrl_Utility.h"
+#include "FWebCtrl_WebImpl.h"
using namespace Tizen::Base;
, __userConfirmMode(USER_CONFIRM_USERMEDIA)
, __pCheckButton(null)
, __sync(false)
+ , __pImpl(null)
{
}
_UserConfirmPopup::~_UserConfirmPopup(void)
{
+
+ if (IsModalPopup())
+ {
+ HandleUserAction(EINA_FALSE);
+ }
}
result
-_UserConfirmPopup::Construct(_UserConfirmMode userConfirmMode, void* pEventInfo, bool sync, String msg)
+_UserConfirmPopup::Construct(_UserConfirmMode userConfirmMode, void* pEventInfo, Tizen::Web::Controls::_WebImpl* pImpl, bool sync, String msg)
{
result r = E_SUCCESS;
SysTryReturnResult(NID_WEB_CTRL, pEventInfo, E_INVALID_ARG, "Invalid argument(s) is used. pPolicy is null.");
__sync = sync;
bool hasTitle = true;
- int popupMaxHeight = 2*pPopupData->labelDim.height + 2*pPopupData->btnDim.height + 6*pPopupData->sideMargin;
+ int popupMaxHeight = 2*pPopupData->labelDim.height + pPopupData->btnDim.height + 2*pPopupData->sideMargin;
+
+ __pImpl = pImpl;
+ SysAssertf(__pImpl != null, "Failed to get _WebImpl");
if (__userConfirmMode == USER_CONFIRM_GEOLOCATION)
{
if (__userConfirmMode == USER_SCRIPT_ALERT)
{
- popupMaxHeight -= pPopupData->labelDim.height;
+ popupMaxHeight -= 2*pPopupData->sideMargin;
hasTitle = false;
}
if (userConfirmMode != USER_SCRIPT_ALERT)
{
- SetTitleText(pSysResource->GetString(_RESOURCE_DOMAIN_ID_OSP, "IDS_BR_HEADER_SECURITY_WARNING"));
+ SetTitleText(pSysResource->GetString(_RESOURCE_DOMAIN_ID_OSP, "IDS_TPLATFORM_HEADER_SECURITY_WARNING_ABB"));
}
Rectangle rect(0, 0, 0, 0);
r = titleList.Construct();
SysTryReturn(NID_WEB_CTRL, r == E_SUCCESS, r, r, "[%s] Propagating.", GetErrorMessage(r));
- idList.Add(*(new Integer(ID_BUTTON_USER_ALLOW)));
if (userConfirmMode == USER_SCRIPT_ALERT)
{
+ idList.Add(*(new Integer(ID_BUTTON_USER_ALLOW)));
titleList.Add(*(new String(pSysResource->GetString(_RESOURCE_DOMAIN_ID_OSP, "IDS_TPLATFORM_BUTTON_OK"))));
}
else
{
idList.Add(*(new Integer(ID_BUTTON_USER_CANCEL)));
- titleList.Add(*(new String(pSysResource->GetString(_RESOURCE_DOMAIN_ID_OSP, "IDS_BR_OPT_ALLOW"))));
- titleList.Add(*(new String(pSysResource->GetString(_RESOURCE_DOMAIN_ID_OSP, "IDS_BR_OPT_CANCEL"))));
+ idList.Add(*(new Integer(ID_BUTTON_USER_ALLOW)));
+ titleList.Add(*(new String(pSysResource->GetString(_RESOURCE_DOMAIN_ID_OSP, "IDS_TPLATFORM_BUTTON_CANCEL_ABB"))));
+ titleList.Add(*(new String(pSysResource->GetString(_RESOURCE_DOMAIN_ID_OSP, "IDS_TPLATFORM_BUTTON_CONTINUE_ABB"))));
}
r = CreateAndAddButtons(idList, titleList, pButtonPanel);
}
pLayout->SetHorizontalAlignment(*pButtonPanel, LAYOUT_HORIZONTAL_ALIGN_CENTER);
- pLayout->SetSpacing(*pButtonPanel, 2*pPopupData->sideMargin);
+ if ( __userConfirmMode != USER_SCRIPT_ALERT )
+ {
+ pLayout->SetSpacing(*pButtonPanel, 2*pPopupData->sideMargin);
+ }
+ SetPropagatedKeyEventListener(this);
return E_SUCCESS;
}
if (!__sync)
{
- delete this;
+ switch(__userConfirmMode)
+ {
+ case USER_CONFIRM_USERMEDIA:
+ {
+ __pImpl->SendUserEvent(ID_USER_CONFIRM_USERMEDIA_CLOSE, null);
+ break;
+ }
+ case USER_CONFIRM_GEOLOCATION:
+ {
+ __pImpl->SendUserEvent(ID_USER_CONFIRM_GEOLOCATION_CLOSE, null);
+ break;
+ }
+ case USER_CONFIRM_NOTIFICATION:
+ {
+ __pImpl->SendUserEvent(ID_USER_CONFIRM_NOTIFICATION_CLOSE, null);
+ break;
+ }
+ case USER_SCRIPT_ALERT:
+ {
+ __pImpl->SendUserEvent(ID_USER_SCRIPT_ALERT_CLOSE, null);
+ break;
+ }
+ case USER_SCRIPT_CONFIRM:
+ {
+ __pImpl->SendUserEvent(ID_USER_SCRIPT_CONFIRM_CLOSE, null);
+ break;
+ }
+ default:
+ SysAssert(false);
+ }
}
}
ewk_view_javascript_alert_reply(pView);
break;
}
+ case USER_SCRIPT_CONFIRM:
+ {
+ Evas_Object* pView = reinterpret_cast< Evas_Object* >(__pUserPolicyData);
+ ewk_view_javascript_confirm_reply(pView, allow);
+ break;
+ }
case USER_CONFIRM_APP_CACHE:
{
Evas_Object *pObj = reinterpret_cast< Evas_Object* >(__pUserPolicyData);
return E_SUCCESS;
}
+
void
_UserConfirmPopup::RegisterHandler(bool checkHandler, Eina_Bool allow)
{
}
}
+bool
+_UserConfirmPopup::OnKeyPressed(Control& source, const KeyEventInfo& keyEventInfo)
+{
+ return false;
+}
+
+bool
+_UserConfirmPopup::OnKeyReleased(Control& source, const KeyEventInfo& keyEventInfo)
+{
+ result r = E_SUCCESS;
+ if ((keyEventInfo.GetKeyCode() == KEY_ESC || keyEventInfo.GetKeyCode() == KEY_BACK) && source.GetShowState() == true)
+ {
+ HandleUserAction(EINA_FALSE);
+ r = HidePopup();
+
+ if (IsFailed(r))
+ {
+ SysLogException(NID_WEB_CTRL, r, "[%s] Propagating.", GetErrorMessage(r));
+ }
+
+ switch (__userConfirmMode)
+ {
+ case USER_CONFIRM_USERMEDIA:
+ {
+ __pImpl->SendUserEvent(ID_USER_CONFIRM_USERMEDIA_CLOSE, null);
+ break;
+ }
+ case USER_CONFIRM_GEOLOCATION:
+ {
+ __pImpl->SendUserEvent(ID_USER_CONFIRM_GEOLOCATION_CLOSE, null);
+ break;
+ }
+ case USER_CONFIRM_NOTIFICATION:
+ {
+ __pImpl->SendUserEvent(ID_USER_CONFIRM_NOTIFICATION_CLOSE, null);
+ break;
+ }
+ case USER_SCRIPT_ALERT:
+ {
+ __pImpl->SendUserEvent(ID_USER_SCRIPT_ALERT_CLOSE, null);
+ break;
+ }
+ case USER_SCRIPT_CONFIRM:
+ {
+ __pImpl->SendUserEvent(ID_USER_SCRIPT_CONFIRM_CLOSE, null);
+ break;
+ }
+ case USER_PROTOCOL_HANDLER:
+ case USER_CONTENT_HANDLER:
+ case USER_CONFIRM_APP_CACHE:
+ case USER_CONFIRM_DB_QUOTA_EXCEDED:
+ case USER_CONFIRM_LOCAL_FS_QUOTA_EXCEDED:
+ case USER_CONFIRM_INDEXED_DB_QUOTA_EXCEDED:
+ break;
+ default:
+ SysAssert(false);
+ }
+ }
+ return false;
+}
+
+bool
+_UserConfirmPopup::OnPreviewKeyPressed(Control& source, const KeyEventInfo& keyEventInfo)
+{
+ return false;
+}
+
+bool
+_UserConfirmPopup::OnPreviewKeyReleased(Control& source, const KeyEventInfo& keyEventInfo)
+{
+ return false;
+}
+
+bool
+_UserConfirmPopup::TranslateKeyEventInfo(Control& source, KeyEventInfo& keyEventInfo)
+{
+ return false;
+}
+
+
}}} // Tizen::Web::Controls