Initialize Tizen 2.3
[framework/web/wrt-plugins-common.git] / src_mobile / wrt-popup / wrt / popup-bin / YesNoCheckPopup.cpp
1 /*
2  * File:   YesNoCheckPopup.cpp
3  * Author: pciezkowski
4  *
5  * Created on December 12, 2012, 9:23 AM
6  */
7
8 #include "YesNoCheckPopup.h"
9 #include <memory>
10 #include <string.h>
11 #include "popup_manager.h"
12 #include "PopupSerializer.h"
13
14 namespace Wrt {
15 namespace Popup {
16 YesNoCheckPopup::~YesNoCheckPopup()
17 {}
18
19 Renderer::CtrlPopupPtr YesNoCheckPopup::createPopup(
20     DPL::BinaryQueueAutoPtr data)
21 {
22     std::string title = PopupSerializer::getStringArg(*data);
23     std::string message = PopupSerializer::getStringArg(*data);
24     std::string checkboxLabel = PopupSerializer::getStringArg(*data);
25     Assert(data->Empty());
26     LogDebug("title: " << title << " message: " << message << " checkbox: " <<
27              checkboxLabel);
28     Renderer::CtrlPopupPtr popup =
29         Renderer::PopupControllerSingleton::Instance().CreatePopup();
30
31     popup->SetTitle(title);
32     popup->Append(new Renderer::PopupObject::Label(message));
33     popup->Append(new Renderer::PopupObject::Check(checkboxLabel));
34     popup->Append(new Renderer::PopupObject::Button(YES_LABEL, POPUP_YES_VALUE));
35     popup->Append(new Renderer::PopupObject::Button(NO_LABEL, POPUP_NO_VALUE));
36     return popup;
37 }
38
39 void YesNoCheckPopup::responseCallback(
40     const Renderer::AnswerCallbackData &answer)
41 {
42     bool result = (POPUP_YES_VALUE == answer.buttonAnswer);
43     DPL::BinaryQueue retValue;
44     PopupSerializer::appendArg(true, retValue);
45     PopupSerializer::appendArg(result, retValue);
46     LogDebug("Check state: " << answer.chackState);
47     PopupSerializer::appendArg(answer.chackState, retValue);
48     m_parent->response(retValue);
49 }
50 } // Popup
51 } // Wrt