improve stability of event
This commit is contained in:
@@ -94,7 +94,7 @@ namespace nana{ namespace drawerbase
|
||||
{
|
||||
impl_->crook.reverse();
|
||||
arg_checkbox arg{ static_cast<nana::checkbox*>(impl_->widget_ptr) };
|
||||
API::events<nana::checkbox>(impl_->widget_ptr->handle()).checked.emit(arg);
|
||||
API::events<nana::checkbox>(impl_->widget_ptr->handle()).checked.emit(arg, impl_->widget_ptr->handle());
|
||||
}
|
||||
refresh(graph);
|
||||
API::lazy_refresh();
|
||||
@@ -172,7 +172,7 @@ namespace nana{ namespace drawerbase
|
||||
API::refresh_window(handle());
|
||||
|
||||
arg_checkbox arg(this);
|
||||
this->events().checked.emit(arg);
|
||||
this->events().checked.emit(arg, this->handle());
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -41,7 +41,7 @@ namespace nana
|
||||
|
||||
void text_changed() override
|
||||
{
|
||||
widget_.events().text_changed.emit(::nana::arg_combox{ widget_ });
|
||||
widget_.events().text_changed.emit(::nana::arg_combox{ widget_ }, widget_);
|
||||
}
|
||||
private:
|
||||
::nana::combox & widget_;
|
||||
@@ -355,7 +355,7 @@ namespace nana
|
||||
_m_draw_push_button(widget_->enabled());
|
||||
_m_draw_image();
|
||||
|
||||
widget_->events().selected.emit(::nana::arg_combox(*widget_));
|
||||
widget_->events().selected.emit(::nana::arg_combox(*widget_), widget_->handle());
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -480,7 +480,7 @@ namespace nana
|
||||
chose_ = true;
|
||||
|
||||
arg_datechooser evt_arg{ static_cast<nana::date_chooser*>(API::get_widget(window_handle)) };
|
||||
API::events<nana::date_chooser>(window_handle).date_changed.emit(evt_arg);
|
||||
API::events<nana::date_chooser>(window_handle).date_changed.emit(evt_arg, window_handle);
|
||||
}
|
||||
|
||||
bool chose() const
|
||||
|
||||
@@ -1208,7 +1208,7 @@ namespace nana
|
||||
m.flags.checked = ck;
|
||||
|
||||
arg_listbox arg{ item_proxy{ess_, pos}, ck};
|
||||
wd_ptr()->events().checked.emit(arg);
|
||||
wd_ptr()->events().checked.emit(arg, wd_ptr()->handle());
|
||||
}
|
||||
++pos.item;
|
||||
}
|
||||
@@ -1279,7 +1279,7 @@ namespace nana
|
||||
m.flags.selected = sel;
|
||||
|
||||
arg_listbox arg{ item_proxy(ess_, i), sel };
|
||||
wd_ptr()->events().selected.emit(arg);
|
||||
wd_ptr()->events().selected.emit(arg, wd_ptr()->handle());
|
||||
|
||||
if (m.flags.selected)
|
||||
last_selected_abs = i;
|
||||
@@ -1371,12 +1371,12 @@ namespace nana
|
||||
if (for_selection)
|
||||
{
|
||||
m.flags.selected = false;
|
||||
widget_->events().selected.emit(arg);
|
||||
widget_->events().selected.emit(arg, widget_->handle());
|
||||
}
|
||||
else
|
||||
{
|
||||
m.flags.checked = false;
|
||||
widget_->events().checked.emit(arg);
|
||||
widget_->events().checked.emit(arg, widget_->handle());
|
||||
}
|
||||
};
|
||||
|
||||
@@ -1454,12 +1454,12 @@ namespace nana
|
||||
if (for_selection)
|
||||
{
|
||||
m.flags.selected = false;
|
||||
widget_->events().selected.emit(arg);
|
||||
widget_->events().selected.emit(arg, widget_->handle());
|
||||
}
|
||||
else
|
||||
{
|
||||
m.flags.checked = false;
|
||||
widget_->events().checked.emit(arg);
|
||||
widget_->events().checked.emit(arg, widget_->handle());
|
||||
}
|
||||
};
|
||||
|
||||
@@ -1554,7 +1554,7 @@ namespace nana
|
||||
m.flags.checked = ck;
|
||||
|
||||
arg_listbox arg{ item_proxy(ess_, index_pair(cat, index)), ck};
|
||||
wd_ptr()->events().checked.emit(arg);
|
||||
wd_ptr()->events().checked.emit(arg, widget_->handle());
|
||||
|
||||
changed = true;
|
||||
}
|
||||
@@ -3456,7 +3456,7 @@ namespace nana
|
||||
index_pair last_selected(item_pos.cat, lister.absolute(item_pos));
|
||||
|
||||
arg_listbox arg{item_proxy{essence_, last_selected}, sel};
|
||||
lister.wd_ptr()->events().selected.emit(arg);
|
||||
lister.wd_ptr()->events().selected.emit(arg, lister.wd_ptr()->handle());
|
||||
|
||||
if (item_ptr->flags.selected)
|
||||
{
|
||||
@@ -3478,7 +3478,7 @@ namespace nana
|
||||
|
||||
index_pair abs_pos{ item_pos.cat, lister.absolute(item_pos) };
|
||||
arg_listbox arg{ item_proxy{ essence_, abs_pos }, item_ptr->flags.checked };
|
||||
lister.wd_ptr()->events().checked.emit(arg);
|
||||
lister.wd_ptr()->events().checked.emit(arg, lister.wd_ptr()->handle());
|
||||
|
||||
if (item_ptr->flags.checked)
|
||||
lister.cancel_others_if_single_enabled(false, abs_pos);
|
||||
@@ -3572,7 +3572,7 @@ namespace nana
|
||||
return;
|
||||
|
||||
arg_listbox_category arg_cat(cat_proxy(essence_, item_pos.cat));
|
||||
lister.wd_ptr()->events().category_dbl_click.emit(arg_cat);
|
||||
lister.wd_ptr()->events().category_dbl_click.emit(arg_cat, lister.wd_ptr()->handle());
|
||||
|
||||
if (!arg_cat.category_change_blocked()){
|
||||
bool do_expand = (lister.expand(item_pos.cat) == false);
|
||||
@@ -3741,7 +3741,7 @@ namespace nana
|
||||
{
|
||||
m.flags.checked = ck;
|
||||
arg_listbox arg{*this, ck};
|
||||
ess_->lister.wd_ptr()->events().checked.emit(arg);
|
||||
ess_->lister.wd_ptr()->events().checked.emit(arg, ess_->lister.wd_ptr()->handle());
|
||||
ess_->update();
|
||||
}
|
||||
return *this;
|
||||
@@ -3760,7 +3760,7 @@ namespace nana
|
||||
m.flags.selected = s; // actually change selection
|
||||
|
||||
arg_listbox arg{*this, s};
|
||||
ess_->lister.wd_ptr()->events().selected.emit(arg);
|
||||
ess_->lister.wd_ptr()->events().selected.emit(arg, ess_->lister.wd_ptr()->handle());
|
||||
|
||||
if (m.flags.selected)
|
||||
{
|
||||
|
||||
@@ -385,7 +385,7 @@ namespace nana
|
||||
private:
|
||||
void _m_emit_value_changed() const
|
||||
{
|
||||
other_.widget->events().value_changed.emit(::nana::arg_slider{ *other_.widget });
|
||||
other_.widget->events().value_changed.emit(::nana::arg_slider{ *other_.widget }, other_.widget->handle());
|
||||
}
|
||||
|
||||
nana::rectangle _m_bar_area() const
|
||||
|
||||
@@ -38,7 +38,7 @@ namespace nana
|
||||
|
||||
void text_changed() override
|
||||
{
|
||||
widget_.events().text_changed.emit(::nana::arg_spinbox{ widget_ });
|
||||
widget_.events().text_changed.emit(::nana::arg_spinbox{ widget_ }, widget_.handle());
|
||||
}
|
||||
private:
|
||||
::nana::spinbox & widget_;
|
||||
|
||||
@@ -1562,7 +1562,7 @@ namespace nana
|
||||
API::lazy_refresh();
|
||||
|
||||
event_arg arg;
|
||||
model_->widget_ptr()->events().selected.emit(arg);
|
||||
model_->widget_ptr()->events().selected.emit(arg, model_->widget_ptr()->handle());
|
||||
}
|
||||
}
|
||||
//end class driver
|
||||
@@ -1701,7 +1701,7 @@ namespace nana
|
||||
if (selection_changed && (active_pos != npos))
|
||||
{
|
||||
event_arg arg;
|
||||
events().selected.emit(arg);
|
||||
events().selected.emit(arg, handle());
|
||||
}
|
||||
}
|
||||
//end class tabbar
|
||||
|
||||
@@ -30,18 +30,18 @@ namespace drawerbase {
|
||||
|
||||
void event_agent::first_change()
|
||||
{
|
||||
widget_.events().first_change.emit(::nana::arg_textbox{ widget_, text_position_ });
|
||||
widget_.events().first_change.emit(::nana::arg_textbox{ widget_, text_position_ }, widget_);
|
||||
}
|
||||
|
||||
void event_agent::text_changed()
|
||||
{
|
||||
widget_.events().text_changed.emit(::nana::arg_textbox{ widget_, text_position_ });
|
||||
widget_.events().text_changed.emit(::nana::arg_textbox{ widget_, text_position_ }, widget_);
|
||||
}
|
||||
|
||||
void event_agent::text_exposed(const std::vector<upoint>& text_pos)
|
||||
{
|
||||
::nana::arg_textbox arg(widget_, text_pos);
|
||||
widget_.events().text_exposed.emit(arg);
|
||||
widget_.events().text_exposed.emit(arg, widget_);
|
||||
}
|
||||
//end class event_agent
|
||||
|
||||
|
||||
@@ -308,7 +308,7 @@ namespace nana
|
||||
if (impl_->which != npos && container.at(impl_->which)->enable)
|
||||
{
|
||||
::nana::arg_toolbar arg{ *widget_, impl_->which };
|
||||
widget_->events().leave.emit(arg);
|
||||
widget_->events().leave.emit(arg, widget_->handle());
|
||||
}
|
||||
|
||||
impl_->which = which;
|
||||
@@ -322,7 +322,7 @@ namespace nana
|
||||
if (impl_->state == item_renderer::state_t::highlighted)
|
||||
{
|
||||
::nana::arg_toolbar arg{ *widget_, which };
|
||||
widget_->events().enter.emit(arg);
|
||||
widget_->events().enter.emit(arg, widget_->handle());
|
||||
}
|
||||
}
|
||||
|
||||
@@ -346,7 +346,7 @@ namespace nana
|
||||
if (which != npos && impl_->items.at(which)->enable)
|
||||
{
|
||||
::nana::arg_toolbar arg{ *widget_, which };
|
||||
widget_->events().leave.emit(arg);
|
||||
widget_->events().leave.emit(arg, widget_->handle());
|
||||
}
|
||||
}
|
||||
impl_->tooltip.close();
|
||||
@@ -371,7 +371,7 @@ namespace nana
|
||||
if(impl_->which == which)
|
||||
{
|
||||
::nana::arg_toolbar arg{ *widget_, which };
|
||||
widget_->events().selected.emit(arg);
|
||||
widget_->events().selected.emit(arg, widget_->handle());
|
||||
|
||||
impl_->state = item_renderer::state_t::highlighted;
|
||||
}
|
||||
|
||||
@@ -496,7 +496,7 @@ namespace nana
|
||||
{
|
||||
data.stop_drawing = true;
|
||||
item_proxy iprx(data.trigger_ptr, node);
|
||||
data.widget_ptr->events().checked.emit(::nana::arg_treebox{ *data.widget_ptr, iprx, (checkstate::unchecked != cs) });
|
||||
data.widget_ptr->events().checked.emit(::nana::arg_treebox{ *data.widget_ptr, iprx, (checkstate::unchecked != cs) }, data.widget_ptr->handle());
|
||||
data.stop_drawing = false;
|
||||
}
|
||||
return true;
|
||||
@@ -512,14 +512,14 @@ namespace nana
|
||||
if (node_state.selected)
|
||||
{
|
||||
item_proxy iprx(data.trigger_ptr, node_state.selected);
|
||||
data.widget_ptr->events().selected.emit(::nana::arg_treebox{ *data.widget_ptr, iprx, false });
|
||||
data.widget_ptr->events().selected.emit(::nana::arg_treebox{ *data.widget_ptr, iprx, false }, data.widget_ptr->handle());
|
||||
}
|
||||
|
||||
node_state.selected = node;
|
||||
if (node)
|
||||
{
|
||||
item_proxy iprx(data.trigger_ptr, node_state.selected);
|
||||
data.widget_ptr->events().selected.emit(::nana::arg_treebox{ *data.widget_ptr, iprx, true });
|
||||
data.widget_ptr->events().selected.emit(::nana::arg_treebox{ *data.widget_ptr, iprx, true }, data.widget_ptr->handle());
|
||||
}
|
||||
data.stop_drawing = false;
|
||||
return true;
|
||||
@@ -544,7 +544,7 @@ namespace nana
|
||||
data.stop_drawing = true;
|
||||
//attr.ext_event.expand(data.widget_ptr->handle(), item_proxy(data.trigger_ptr, node), value);
|
||||
item_proxy iprx(data.trigger_ptr, node);
|
||||
data.widget_ptr->events().expanded.emit(::nana::arg_treebox{ *data.widget_ptr, iprx, value });
|
||||
data.widget_ptr->events().expanded.emit(::nana::arg_treebox{ *data.widget_ptr, iprx, value }, data.widget_ptr->handle());
|
||||
data.stop_drawing = false;
|
||||
}
|
||||
return true;
|
||||
@@ -682,7 +682,7 @@ namespace nana
|
||||
if (node_state.pointed)
|
||||
{
|
||||
item_proxy iprx(data.trigger_ptr, node_state.pointed);
|
||||
data.widget_ptr->events().hovered.emit(::nana::arg_treebox{ *data.widget_ptr, iprx, false });
|
||||
data.widget_ptr->events().hovered.emit(::nana::arg_treebox{ *data.widget_ptr, iprx, false }, data.widget_ptr->handle());
|
||||
|
||||
if (nl.node() != node_state.pointed)
|
||||
close_tooltip_window();
|
||||
@@ -691,7 +691,7 @@ namespace nana
|
||||
|
||||
node_state.pointed = nl.node();
|
||||
item_proxy iprx(data.trigger_ptr, node_state.pointed);
|
||||
data.widget_ptr->events().hovered.emit(::nana::arg_treebox{ *data.widget_ptr, iprx, true });
|
||||
data.widget_ptr->events().hovered.emit(::nana::arg_treebox{ *data.widget_ptr, iprx, true }, data.widget_ptr->handle());
|
||||
|
||||
redraw = (node_state.comp_pointed != component::end);
|
||||
|
||||
@@ -709,7 +709,7 @@ namespace nana
|
||||
redraw = true;
|
||||
node_state.comp_pointed = component::end;
|
||||
item_proxy iprx(data.trigger_ptr, node_state.pointed);
|
||||
data.widget_ptr->events().hovered.emit(::nana::arg_treebox{ *data.widget_ptr, iprx, false });
|
||||
data.widget_ptr->events().hovered.emit(::nana::arg_treebox{ *data.widget_ptr, iprx, false }, data.widget_ptr->handle());
|
||||
|
||||
close_tooltip_window();
|
||||
node_state.pointed = nullptr;
|
||||
@@ -1995,7 +1995,7 @@ namespace nana
|
||||
if (impl_->node_state.pointed && (!impl_->node_state.tooltip))
|
||||
{
|
||||
item_proxy iprx(impl_->data.trigger_ptr, impl_->node_state.pointed);
|
||||
impl_->data.widget_ptr->events().hovered.emit(::nana::arg_treebox{ *impl_->data.widget_ptr, iprx, false });
|
||||
impl_->data.widget_ptr->events().hovered.emit(::nana::arg_treebox{ *impl_->data.widget_ptr, iprx, false }, impl_->data.widget_ptr->handle());
|
||||
impl_->node_state.pointed = nullptr;
|
||||
impl_->draw(false);
|
||||
API::lazy_refresh();
|
||||
|
||||
Reference in New Issue
Block a user