2 * File: YesNoCheckPopup.cpp
5 * Created on December 12, 2012, 9:23 AM
8 #include "YesNoCheckPopup.h"
11 #include "popup_manager.h"
12 #include "PopupSerializer.h"
17 YesNoCheckPopup::YesNoCheckPopup():
21 YesNoCheckPopup::~YesNoCheckPopup()
24 void YesNoCheckPopup::show(DPL::BinaryQueueAutoPtr data, WrtPopup* parent)
28 Renderer::CtrlPopupPtr popup = createPopup(data);
29 ListenForAnswer(popup);
31 Renderer::ShowPopupEventShort event(popup,
34 &YesNoCheckPopup::responseCallback));
36 CONTROLLER_POST_EVENT(Renderer::PopupController,
43 Renderer::CtrlPopupPtr YesNoCheckPopup::createPopup(
44 DPL::BinaryQueueAutoPtr data)
46 std::string title = PopupSerializer::getStringArg(*data);
47 std::string message = PopupSerializer::getStringArg(*data);
48 std::string checkboxLabel = PopupSerializer::getStringArg(*data);
49 Assert(data->Empty());
50 LogDebug("title: " << title << " message: " << message << " checkbox: " <<
52 Renderer::CtrlPopupPtr popup =
53 Renderer::PopupControllerSingleton::Instance().CreatePopup();
55 popup->SetTitle(title);
56 popup->Append(new Renderer::PopupObject::Label(message));
57 popup->Append(new Renderer::PopupObject::Check(checkboxLabel));
58 popup->Append(new Renderer::PopupObject::Button(YES_LABEL, POPUP_YES_VALUE));
59 popup->Append(new Renderer::PopupObject::Button(NO_LABEL, POPUP_NO_VALUE));
63 void YesNoCheckPopup::responseCallback(
64 const Renderer::AnswerCallbackData &answer)
67 bool result = (POPUP_YES_VALUE == answer.buttonAnswer);
68 DPL::BinaryQueue retValue;
69 PopupSerializer::appendArg(true, retValue);
70 PopupSerializer::appendArg(result, retValue);
71 LogDebug("Check state: " << answer.chackState);
72 PopupSerializer::appendArg(answer.chackState, retValue);
73 m_parent->response(retValue);