fix incomplete type warning
This commit is contained in:
@@ -126,36 +126,36 @@ namespace nana
|
||||
void* draw(std::function<void(paint::graphics&)> &&, bool diehard);
|
||||
void erase(void* diehard);
|
||||
private:
|
||||
void _m_bground_pre();
|
||||
void _m_bground_end();
|
||||
void _m_draw_dynamic_drawing_object();
|
||||
void _m_effect_bground(bool before);
|
||||
bool _m_lazy_decleared() const;
|
||||
method_state& _m_mth_state(int pos);
|
||||
|
||||
template<typename Arg, typename Mfptr>
|
||||
void _m_emit(event_code evt_code, const Arg& arg, Mfptr mfptr)
|
||||
{
|
||||
const int pos = static_cast<int>(evt_code);
|
||||
if (data_impl_->realizer && (method_state::not_overrided != data_impl_->mth_state[pos]))
|
||||
{
|
||||
_m_bground_pre();
|
||||
|
||||
if (method_state::pending == data_impl_->mth_state[pos])
|
||||
auto realizer = this->realizer();
|
||||
auto & mth_state = _m_mth_state(pos);
|
||||
|
||||
if (realizer && (method_state::not_overrided != mth_state))
|
||||
{
|
||||
_m_effect_bground(true);
|
||||
|
||||
if (method_state::pending == mth_state)
|
||||
{
|
||||
(data_impl_->realizer->*mfptr)(graphics, arg);
|
||||
(realizer->*mfptr)(graphics, arg);
|
||||
|
||||
//Check realizer, when the window is closed in that event handler, the drawer will be
|
||||
//detached and realizer will be a nullptr
|
||||
if (data_impl_->realizer)
|
||||
data_impl_->mth_state[pos] = (data_impl_->realizer->_m_overrided(evt_code) ? method_state::overrided : method_state::not_overrided);
|
||||
if (realizer)
|
||||
mth_state = (realizer->_m_overrided(evt_code) ? method_state::overrided : method_state::not_overrided);
|
||||
}
|
||||
else
|
||||
(data_impl_->realizer->*mfptr)(graphics, arg);
|
||||
(realizer->*mfptr)(graphics, arg);
|
||||
|
||||
if (_m_lazy_decleared())
|
||||
{
|
||||
_m_draw_dynamic_drawing_object();
|
||||
_m_bground_end();
|
||||
}
|
||||
_m_effect_bground(false);
|
||||
}
|
||||
}
|
||||
public:
|
||||
|
||||
Reference in New Issue
Block a user