void EditEventForm::OnActionPerformed(const Tizen::Ui::Control& source, int actionId) { result r = E_SUCCESS; SceneManager* pSceneManager = SceneManager::GetInstance(); AppAssert(pSceneManager); ScrollPanel* pScrollPanel = static_cast< ScrollPanel* >(GetControl(0)); AppAssert(pScrollPanel); static const int CONTEXT_POSITION = 200; switch (actionId) { case ID_BUTTON_REMINDER: __pReminderContextMenu->SetAnchorPosition(Point(__pReminderContextMenu->GetAnchorPosition().x, source.GetBounds().y + CONTEXT_POSITION - pScrollPanel->GetScrollPosition())); __pReminderContextMenu->SetFocusable(true); __pReminderContextMenu->SetShowState(true); __pReminderContextMenu->Show(); break; case ID_CONTEXT_REMINDER_MINUTE: __selectedReminder = REMINDER_TIME_UNIT_MINUTE; __pReminderContextButton->SetText(L"Minute(s)"); __pReminderContextButton->Invalidate(false); break; case ID_CONTEXT_REMINDER_HOUR: __selectedReminder = REMINDER_TIME_UNIT_HOUR; __pReminderContextButton->SetText(L"Hour(s)"); __pReminderContextButton->Invalidate(false); break; case ID_CONTEXT_REMINDER_DAY: __selectedReminder = REMINDER_TIME_UNIT_DAY; __pReminderContextButton->SetText(L"Day(s)"); __pReminderContextButton->Invalidate(false); break; case ID_CONTEXT_REMINDER_WEEK: __selectedReminder = REMINDER_TIME_UNIT_WEEK; __pReminderContextButton->SetText(L"Week(s)"); __pReminderContextButton->Invalidate(false); break; case ID_BUTTON_RECURRENCE: { ArrayList* pList = new (std::nothrow) ArrayList(); pList->Construct(); DateTime startDate = __pStartEditDate->GetDate(); DateTime endDate = __pEndEditDate->GetDate(); pList->Add(*(new (std::nothrow) DateTime(startDate))); pList->Add(*(new (std::nothrow) DateTime(endDate))); if (__pRecurrence != null) { pList->Add(*(new (std::nothrow) Recurrence(*__pRecurrence))); } pSceneManager->GoForward(ForwardSceneTransition(SCENE_EVENT_SETRECURRENCE), pList); } break; case ID_BUTTON_PRIORITY: __pPriorityContextMenu->SetAnchorPosition(Point(__pPriorityContextMenu->GetAnchorPosition().x, source.GetBounds().y + CONTEXT_POSITION - pScrollPanel->GetScrollPosition())); __pPriorityContextMenu->SetFocusable(true); __pPriorityContextMenu->SetShowState(true); __pPriorityContextMenu->Show(); break; case ID_CONTEXT_PRIORITY_HIGH: __selectedPriority = EVENT_PRIORITY_HIGH; __pPriorityContextButton->SetText(L"High"); __pPriorityContextButton->Invalidate(false); break; case ID_CONTEXT_PRIORITY_NORMAL: __selectedPriority = EVENT_PRIORITY_NORMAL; __pPriorityContextButton->SetText(L"Normal"); __pPriorityContextButton->Invalidate(false); break; case ID_CONTEXT_PRIORITY_LOW: __selectedPriority = EVENT_PRIORITY_LOW; __pPriorityContextButton->SetText(L"Low"); __pPriorityContextButton->Invalidate(false); break; case ID_BUTTON_SENSITIVITY: __pSensitivityContextMenu->SetAnchorPosition(Point(__pSensitivityContextMenu->GetAnchorPosition().x, source.GetBounds().y + CONTEXT_POSITION - pScrollPanel->GetScrollPosition())); __pSensitivityContextMenu->SetFocusable(true); __pSensitivityContextMenu->SetShowState(true); __pSensitivityContextMenu->Show(); break; case ID_CONTEXT_SENSITIVITY_PUBLIC: __selectedSensitivity = SENSITIVITY_PUBLIC; __pSensitivityContextButton->SetText(L"Public"); __pSensitivityContextButton->Invalidate(false); break; case ID_CONTEXT_SENSITIVITY_PRIVATE: __selectedSensitivity = SENSITIVITY_PRIVATE; __pSensitivityContextButton->SetText(L"Private"); __pSensitivityContextButton->Invalidate(false); break; case ID_CONTEXT_SENSITIVITY_CONFIDENTIAL: __selectedSensitivity = SENSITIVITY_CONFIDENTIAL; __pSensitivityContextButton->SetText(L"Confidential"); __pSensitivityContextButton->Invalidate(false); break; case ID_BUTTON_STATUS: __pStatusContextMenu->SetAnchorPosition(Point(__pStatusContextMenu->GetAnchorPosition().x, source.GetBounds().y + CONTEXT_POSITION - pScrollPanel->GetScrollPosition())); __pStatusContextMenu->SetFocusable(true); __pStatusContextMenu->SetShowState(true); __pStatusContextMenu->Show(); break; case ID_CONTEXT_STATUS_NONE: __selectedStatus = EVENT_STATUS_NONE; __pStatusContextButton->SetText(L"None"); __pStatusContextButton->Invalidate(false); break; case ID_CONTEXT_STATUS_CONFIRMED: __selectedStatus = EVENT_STATUS_CONFIRMED; __pStatusContextButton->SetText(L"Confirmed"); __pStatusContextButton->Invalidate(false); break; case ID_CONTEXT_STATUS_CANCELLED: __selectedStatus = EVENT_STATUS_CANCELLED; __pStatusContextButton->SetText(L"Cancelled"); __pStatusContextButton->Invalidate(false); break; case ID_CONTEXT_STATUS_TENTATIVE: __selectedStatus = EVENT_STATUS_TENTATIVE; __pStatusContextButton->SetText(L"Tentative"); __pStatusContextButton->Invalidate(false); break; case ID_CHKBUTTON_ISALLDAY_CHECKED: { if (__pStartEditTime != null) { __pStartEditTime->SetShowState(false); } if (__pEndEditTime != null) { __pEndEditTime->SetShowState(false); } } break; case ID_CHKBUTTON_ISALLDAY_UNCHECKED: { if (__pStartEditTime != null) { __pStartEditTime->SetShowState(true); } if (__pEndEditTime != null) { __pEndEditTime->SetShowState(true); } } break; case ID_FOOTER_SAVE: if (__pSubjectEditField->GetText().IsEmpty()) { MessageBox messageBox; messageBox.Construct(L"Error", "Please enter the subject", MSGBOX_STYLE_OK, 0); int doModal; messageBox.ShowAndWait(doModal); } else { if (__pCalEvent != null) { r = UpdateEvent(); TryReturnVoid(!IsFailed(r), "[%s] Failed to edit event.", GetErrorMessage(r)); } else { MessageBox messageBox; messageBox.Construct(L"Error", "Failed to edit the event.", MSGBOX_STYLE_OK, 0); int doModal; messageBox.ShowAndWait(doModal); } pSceneManager->GoBackward(BackwardSceneTransition(SCENE_EVENT_LIST)); } break; } }