Exemple #1
0
            void _m_emit(event_code evt_code, const Arg& arg, Mfptr mfptr)
            {
                const int pos = static_cast<int>(evt_code);
                if (realizer_ && (method_state::not_overrided != mth_state_[pos]))
                {
                    _m_bground_pre();

                    if (method_state::pending == mth_state_[pos])
                    {
                        (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(realizer_)
                            mth_state_[pos] = (realizer_->_m_overrided(evt_code) ? method_state::overrided : method_state::not_overrided);
                    }
                    else
                        (realizer_->*mfptr)(graphics, arg);

                    if (_m_lazy_decleared())
                    {
                        _m_draw_dynamic_drawing_object();
                        _m_bground_end();
                    }
                }
            }
Exemple #2
0
			void _m_emit(event_code evt_code, const Arg& arg, Mfptr mfptr)
			{
				const int pos = static_cast<int>(evt_code);

				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)
					{
						(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 (realizer)
							mth_state = (realizer->_m_overrided(evt_code) ? method_state::overrided : method_state::not_overrided);
					}
					else
						(realizer->*mfptr)(graphics, arg);

					if (_m_lazy_decleared())
						_m_effect_bground(false);
				}
			}