/**
* To display a popup from a given class:
*
- **class ABC
- **{
+ * class ABC
+ * {
* void AskUser()
* {
* }
* void DoSomeLogicWithAnswer()
* {
* }
- **};
+ * };
*
* ... update the class to something simmilar:
*
- **class ABC : Popup::PopupControllerUser
- **{
+ * class ABC : Popup::PopupControllerUser
+ * {
* void AskUser() {
* using namespace Popup;
* CtrlPopupPtr popup =
* else if (answer == 2)
* ;//name2 pressed
* }
- **};
+ * };
**/
#ifndef WRT_SRC_POPUP_CONTROLLER_POPUP_CONTROLLER_H_
namespace Wrt {
namespace Popup {
namespace Renderer {
-
typedef int LabelId;
struct PopupAnswerCallback
void* callee;
MemberPtr member;
void (*callTranslator)(PopupAnswerCallback* callData,
- const AnswerCallbackData& answer);
+ const AnswerCallbackData& answer);
void Call(const AnswerCallbackData& answer)
{
void Append(PopupObject::IPopupObject *object);
~CtrlPopup();
+
private:
friend class PopupController;
friend class std::shared_ptr<CtrlPopup>;
private:
static void StaticOnAnswerReceived(const AnswerCallbackData& answer,
- CtrlPopupPtr* popup);
+ CtrlPopupPtr* popup);
};
class PopupControllerUser : DPL::Event::EventListener<PopupAnswerEvent>
};
static PopupAnswerCallback Create(Type* callee,
- MemberPtr callback)
+ MemberPtr callback)
{
PopupAnswerCallback callData;
}
static void MemberCallbackTranslator(PopupAnswerCallback* callData,
- const AnswerCallbackData& answer)
+ const AnswerCallbackData& answer)
{
Type* typedThis = static_cast<Type*>(callData->callee);
Caster caster;
template <class Type>
PopupAnswerCallback MakeAnswerCallback(Type* This,
- void (Type::*callback)
- (const AnswerCallbackData &))
+ void (Type::*callback)
+ (const AnswerCallbackData &))
{
return PopupAnswerCallbackCreator<Type>::Create(This, callback);
}
};
typedef DPL::Singleton<PopupController> PopupControllerSingleton;
-
}
} //namespace Popup
} //namespace Wrt