void MsgBubbleItem::PopupMenu( bool copy ) { if(!action_menu_) return; POINT point; ::GetCursorPos(&point); CMenuWnd* pMenu = new CMenuWnd(NULL); STRINGorID xml(L"bubble_menu.xml"); pMenu->Init(xml, _T("xml"), point); CMenuElementUI* cop = (CMenuElementUI*) pMenu->FindControl(L"copy"); cop->AttachSelect(nbase::Bind(&MsgBubbleItem::OnMenu, this, std::placeholders::_1)); cop->SetVisible(copy); CMenuElementUI* del = (CMenuElementUI*)pMenu->FindControl(L"delete"); del->AttachSelect(nbase::Bind(&MsgBubbleItem::OnMenu, this, std::placeholders::_1)); CMenuElementUI* transform = (CMenuElementUI*)pMenu->FindControl(L"transform"); transform->AttachSelect(nbase::Bind(&MsgBubbleItem::OnMenu, this, std::placeholders::_1)); transform->SetVisible(typeid(*this) == typeid(MsgBubbleAudio)); pMenu->Show(); }
void MsgBubbleItem::PopupMenu(bool copy, bool recall, bool retweet/* = true*/) { if(!action_menu_) return; POINT point; ::GetCursorPos(&point); CMenuWnd* pMenu = new CMenuWnd(NULL); STRINGorID xml(L"bubble_menu.xml"); pMenu->Init(xml, _T("xml"), point); CMenuElementUI* cop = (CMenuElementUI*) pMenu->FindControl(L"copy"); cop->AttachSelect(nbase::Bind(&MsgBubbleItem::OnMenu, this, std::placeholders::_1)); cop->SetVisible(copy); CMenuElementUI* del = (CMenuElementUI*)pMenu->FindControl(L"delete"); del->AttachSelect(nbase::Bind(&MsgBubbleItem::OnMenu, this, std::placeholders::_1)); CMenuElementUI* transform = (CMenuElementUI*)pMenu->FindControl(L"transform"); transform->AttachSelect(nbase::Bind(&MsgBubbleItem::OnMenu, this, std::placeholders::_1)); transform->SetVisible(typeid(*this) == typeid(MsgBubbleAudio)); CMenuElementUI* rec = (CMenuElementUI*)pMenu->FindControl(L"recall"); rec->AttachSelect(nbase::Bind(&MsgBubbleItem::OnMenu, this, std::placeholders::_1)); rec->SetVisible(my_msg_ && recall && msg_.receiver_accid_ != LoginManager::GetInstance()->GetAccount()); CMenuElementUI* ret = (CMenuElementUI*)pMenu->FindControl(L"retweet"); ret->AttachSelect(nbase::Bind(&MsgBubbleItem::OnMenu, this, std::placeholders::_1)); ret->SetVisible(retweet); pMenu->Show(); }