#include <FUiCtrlEditTime.h>
#include <FUiCtrlLabel.h>
#include <FUiIActionEventListener.h>
+#include <FUiKeyEventInfo.h>
#include <FUiLayout.h>
#include <FUiVerticalBoxLayout.h>
#include <FWebCtrlAuthenticationChallenge.h>
#include <FSys_SystemResource.h>
#include <FUi_ResourceManager.h>
-//#include <FUiCtrl_PopupImpl.h>
#include "FWebCtrl_WebImpl.h"
#include "FWebCtrl_InputPickerPopup.h"
, __pEditTime(null)
, __pSelectionBtn(null)
, __modal(0)
+ , __isModal(false)
, __popupHeight(0)
, __popupWidth(0)
, __btnHeight(0)
_InputPickerPopup::~_InputPickerPopup(void)
{
+ if (__isModal == true)
+ {
+ HidePopup();
+ }
}
result
-_InputPickerPopup::Construct(const String& strDate, Ewk_Input_Type inputType)
+_InputPickerPopup::Construct(const String& strDate, Ewk_Input_Type inputType, Tizen::Web::Controls::_WebImpl* pImpl)
{
result r = E_SUCCESS;
r = Parse(strDate, inputDateTime);
}
- _ControlOrientation orientation = _ControlManager::GetInstance()->GetOrientation();
+ _ControlOrientation orientation = _CONTROL_ORIENTATION_PORTRAIT;
GET_SHAPE_CONFIG(EDITDATE::WIDTH, orientation, dateWidth);
GET_SHAPE_CONFIG(EDITDATE::HEIGHT, orientation, dateHeight);
GET_SHAPE_CONFIG(MESSAGEBOX::MIN_HEIGHT, orientation, __popupHeight);
GET_SHAPE_CONFIG(MESSAGEBOX::BUTTON_HEIGHT, orientation, __btnHeight);
+ __popupWidth -= 2*sideMargin;
+
std::unique_ptr<EditDate> pEditDate(new (std::nothrow) EditDate());
SysTryReturnResult(NID_WEB_CTRL, pEditDate.get(), E_OUT_OF_MEMORY, "Memory Allocation Failed.");
r = AddButton(ID_BUTTON_INPUT_DATE_SELECTION);
SysTryReturn(NID_WEB_CTRL, r == E_SUCCESS, r, r, "[%s] Propagating.", GetErrorMessage(r));
+ __pPopup->SetPropagatedKeyEventListener(this);
+
std::unique_ptr<VerticalBoxLayout> pLayout(dynamic_cast< VerticalBoxLayout* >(__pPopup->GetLayoutN()));
SysTryReturnResult(NID_WEB_CTRL, pLayout.get(), E_OUT_OF_MEMORY, "Memory Allocation Failed.");
result
-_InputPickerPopup::Construct(const Color& color)
+_InputPickerPopup::Construct(const Color& color, Tizen::Web::Controls::_WebImpl* pImpl)
{
result r = E_SUCCESS;
pColorPicker->SetColor(color);
+ __pPopup->SetPropagatedKeyEventListener(this);
r = __pPopup->AddControl(*pColorPicker);
SysTryReturn(NID_WEB_CTRL, r == E_SUCCESS, r, r, "[%s] Propagating.", GetErrorMessage(r));
result r = E_SUCCESS;
String buttonStr;
-
+
_SystemResource* pSysResource = _SystemResource::GetInstance();
SysAssertf(pSysResource != null, "Failed to get _SystemResource instance");
- buttonStr = pSysResource->GetString("sys_string", "IDS_COM_SK_OK");
+ buttonStr = pSysResource->GetString(_RESOURCE_DOMAIN_ID_OSP, "IDS_TPLATFORM_BUTTON_OK");
std::unique_ptr<Button> pSelectionBtn(new (std::nothrow) Button());
SysTryReturnResult(NID_WEB_CTRL, pSelectionBtn.get(), E_OUT_OF_MEMORY, "Memory Allocation Failed.");
r = __pPopup->SetShowState(true);
SysTryReturn(NID_WEB_CTRL, r == E_SUCCESS, r, r, "[%s] Propagating.", GetErrorMessage(r));
+ __isModal = true;
+
r = __pPopup->DoModal(__modal);
SysTryReturn(NID_WEB_CTRL, r == E_SUCCESS, r, r, "[%s] Propagating.", GetErrorMessage(r));
r = __pPopup->SetShowState(false);
SysTryReturn(NID_WEB_CTRL, r == E_SUCCESS, r, r, "[%s] Propagating.", GetErrorMessage(r));
+ __isModal = false;
+
r = __pPopup->EndModal(__modal);
SysTryReturn(NID_WEB_CTRL, r == E_SUCCESS, r, r, "[%s] Propagating.", GetErrorMessage(r));
return E_SUCCESS;
}
+bool
+_InputPickerPopup::OnKeyPressed(Control& source, const KeyEventInfo& keyEventInfo)
+{
+ return false;
+}
+
+bool
+_InputPickerPopup::OnKeyReleased(Control& source, const KeyEventInfo& keyEventInfo)
+{
+ if ((keyEventInfo.GetKeyCode() == KEY_ESC || keyEventInfo.GetKeyCode() == KEY_BACK) && source.GetShowState() == true)
+ {
+ HidePopup();
+ }
+
+ return false;
+}
+
+bool
+_InputPickerPopup::OnPreviewKeyPressed(Control& source, const KeyEventInfo& keyEventInfo)
+{
+ return false;
+}
+
+bool
+_InputPickerPopup::OnPreviewKeyReleased(Control& source, const KeyEventInfo& keyEventInfo)
+{
+ return false;
+}
+
+bool
+_InputPickerPopup::TranslateKeyEventInfo(Control& source, KeyEventInfo& keyEventInfo)
+{
+ return false;
+}
String
_InputPickerPopup::GetDate(void) const
result
_InputPickerPopup::Parse(const String& strDateTime, DateTime & dateTime)
{
- result r = E_SUCCESS;
-
- wchar_t* pMchar = (wchar_t*) strDateTime.GetPointer();
- wchar_t* pTmp = (wchar_t*) malloc(sizeof(wchar_t) * 10);
- SysTryReturnResult(NID_WEB_CTRL, pTmp, E_OUT_OF_MEMORY, "Memory allocation failed.");
-
std::unique_ptr<DateTimeFormatter> pDateFormatter(DateTimeFormatter::CreateDateFormatterN(DATE_TIME_STYLE_DEFAULT));
SysTryReturn(NID_WEB_CTRL, pDateFormatter.get(), GetLastResult(), GetLastResult(), "[%s] Propagating.", GetErrorMessage(GetLastResult()));
int hour = 0;
int minute = 0;
int week = 0;
+
+ result r = E_SUCCESS;
+
String formattedString = L"e";
String dayno;
+ const wchar_t* pMchar = static_cast< const wchar_t* >(strDateTime.GetPointer());
+ wchar_t* pTmp = static_cast< wchar_t* >(malloc(sizeof(wchar_t) * 10));
+ SysTryReturnResult(NID_WEB_CTRL, pTmp, E_OUT_OF_MEMORY, "Memory allocation failed.");
+
switch (__inputType)
{
case EWK_INPUT_TYPE_TIME : //"HH:mm";
// hour
wcsncpy(pTmp, pMchar, 2);
pTmp[2] = L'\0';
- hour = (int) wcstol(pTmp, null, 10);
+ hour = static_cast< int >(wcstol(pTmp, null, 10));
// minute
wcsncpy(pTmp, pMchar + 3, 2);
pTmp[2] = L'\0';
- minute = (int) wcstol(pTmp, null, 10);
+ minute = static_cast< int >(wcstol(pTmp, null, 10));
dateTime.SetValue(1, 1, 1, hour,minute);
break;
wcsncpy(pTmp, pMchar, 4);
pTmp[4] = L'\0';
- year = (int) wcstol(pTmp, null, 10);
+ year = static_cast< int >(wcstol(pTmp, null, 10));
// month
wcsncpy(pTmp, pMchar + 5, 2);
pTmp[2] = L'\0';
- month = (int) wcstol(pTmp, null, 10);
+ month = static_cast< int >(wcstol(pTmp, null, 10));
// day
wcsncpy(pTmp, pMchar + 8, 2);
pTmp[2] = L'\0';
- day = (int) wcstol(pTmp, null, 10);
+ day = static_cast< int >(wcstol(pTmp, null, 10));
// hour
wcsncpy(pTmp, pMchar + 11, 2);
pTmp[2] = L'\0';
- hour = (int) wcstol(pTmp, null, 10);
+ hour = static_cast< int >(wcstol(pTmp, null, 10));
// minute
wcsncpy(pTmp, pMchar + 14, 2);
pTmp[2] = L'\0';
- minute = (int) wcstol(pTmp, null, 10);
+ minute = static_cast< int >(wcstol(pTmp, null, 10));
dateTime.SetValue(year, month, day, hour, minute);
break;
wcsncpy(pTmp, pMchar, 4);
pTmp[4] = L'\0';
- year = (int) wcstol(pTmp, null, 10);
+ year = static_cast< int >(wcstol(pTmp, null, 10));
// week
wcsncpy(pTmp, pMchar + 6, 2);
pTmp[2] = L'\0';
- week = (int) wcstol(pTmp, null, 10);
+ week = static_cast< int >(wcstol(pTmp, null, 10));
dateTime.SetValue(year,1,1);
pDateFormatter->ApplyPattern(formattedString);
// year
wcsncpy(pTmp, pMchar, 4);
pTmp[4] = L'\0';
- year = (int) wcstol(pTmp, null, 10);
+ year = static_cast< int >(wcstol(pTmp, null, 10));
// month
wcsncpy(pTmp, pMchar + 5, 2);
pTmp[2] = L'\0';
- month = (int) wcstol(pTmp, null, 10);
+ month = static_cast< int >(wcstol(pTmp, null, 10));
// day
wcsncpy(pTmp, pMchar + 8, 2);
pTmp[2] = L'\0';
- day = (int) wcstol(pTmp, null, 10);
+ day = static_cast< int >(wcstol(pTmp, null, 10));
dateTime.SetValue(year, month, day);
break;
// year
wcsncpy(pTmp, pMchar, 4);
pTmp[4] = L'\0';
- year = (int) wcstol(pTmp, null, 10);
+ year = static_cast< int >(wcstol(pTmp, null, 10));
// month
wcsncpy(pTmp, pMchar + 5, 2);
pTmp[2] = L'\0';
- month = (int) wcstol(pTmp, null, 10);
+ month = static_cast< int >(wcstol(pTmp, null, 10));
dateTime.SetValue(year, month, 1);
break;
default :
r = E_UNSUPPORTED_OPTION;
SysLogException(NID_WEB_CTRL, r, "[%s] %d is unsupported.", GetErrorMessage(r), __inputType);
- return r;
}
- if (pTmp)
- {
- free(pTmp);
- }
+ free(pTmp);
- return E_SUCCESS;
+ return r;
}