nim_duilib/examples/virtualbox/item.cpp

49 lines
1.4 KiB
C++
Raw Normal View History

2019-07-06 12:45:48 +08:00
#include "stdafx.h"
#include "item.h"
#include "VirtualTileBox.h"
#include "provider.h"
2019-07-06 12:45:48 +08:00
Item::Item()
:control_img_(nullptr)
{
}
Item::~Item()
= default;
2019-07-06 12:45:48 +08:00
void Item::InitSubControls(const std::wstring& img, const std::wstring& title, int nDataIndex)
2019-07-06 12:45:48 +08:00
{
// <20><><EFBFBD><EFBFBD> Item <20>µĿؼ<C4BF>
if (control_img_ == nullptr)
{
control_img_ = dynamic_cast<ui::Control*>(FindSubControl(L"control_img"));
label_title_ = dynamic_cast<ui::Label*>(FindSubControl(L"label_title"));
progress_ = dynamic_cast<ui::Progress*>(FindSubControl(L"progress"));
btn_del_ = dynamic_cast<ui::Button*>(FindSubControl(L"btn_del"));
// ģ<><C4A3><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
nbase::TimeDelta time_delta = nbase::TimeDelta::FromMicroseconds(nbase::Time::Now().ToInternalValue());
t_time = time_delta.ToMilliseconds();
progress_->SetValue((double)(time_delta.ToMilliseconds() % 100));
2019-07-06 12:45:48 +08:00
// <20><><EFBFBD><EFBFBD>ͼ<EFBFBD><CDBC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
control_img_->SetBkImage(img);
// <20><><EFBFBD><EFBFBD>ɾ<EFBFBD><C9BE><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
btn_del_->AttachClick(nbase::Bind(&Item::OnRemove, this, std::placeholders::_1));
}
label_title_->SetText(nbase::StringPrintf(L"%s %d%%", title.c_str(), t_time % 100));
m_nDataIndex = nDataIndex;
2019-07-06 12:45:48 +08:00
}
bool Item::OnRemove(ui::EventArgs* args)
{
// ɾ<><C9BE>ʱ<EFBFBD><CAB1>ֻ<EFBFBD><D6BB>ɾ<EFBFBD><C9BE><EFBFBD><EFBFBD><EFBFBD>ݾͿ<DDBE><CDBF><EFBFBD><EFBFBD>ˣ<EFBFBD><CBA3><EFBFBD>Ҫɾ<D2AA><C9BE><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ϵ<EFBFBD>Ԫ<EFBFBD><D4AA>
VirtualTileBox* pTileBox = dynamic_cast<VirtualTileBox*>(m_pOwner);
Provider* pProvider = dynamic_cast<Provider*>(pTileBox->GetDataProvider());
pProvider->RemoveTask(m_nDataIndex);
2019-07-06 12:45:48 +08:00
return true;
}