1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58
|
/*!
@file
@author Albert Semenov
@date 01/2009
*/
#ifndef CONTEXT_MENU_H_
#define CONTEXT_MENU_H_
#include <MyGUI.h>
#include <BaseLayout/BaseLayout.h>
namespace wraps
{
class ContextMenu :
public BaseLayout
{
public:
ContextMenu(const std::string& _layout) :
BaseLayout(_layout, nullptr)
{
assignWidget(mMenu, "_Main");
mMenu->setVisible(false);
mMenu->eventMenuCtrlAccept += MyGUI::newDelegate(this, &ContextMenu::notifyMenuCtrlAccept);
}
void setVisible(bool _value)
{
mMenu->setPosition(MyGUI::InputManager::getInstance().getMousePosition());
mMenu->setVisibleSmooth(_value);
}
bool isVisible()
{
return mMenu->getVisible();
}
/** Event : Menu accept.\n
signature : void method(wraps::ContextMenu* _sender, const std::string& _id)
@param _sender
@param _id
*/
MyGUI::delegates::CDelegate2<ContextMenu*, const std::string&> eventMenuAccept;
private:
void notifyMenuCtrlAccept(MyGUI::MenuControl* _sender, MyGUI::MenuItem* _item)
{
eventMenuAccept(this, _item->getItemId());
}
private:
MyGUI::PopupMenu* mMenu;
};
} // namespace wraps
#endif // CONTEXT_MENU_H_
|