void attach_popup_menu_item_set(popup_t& control, name_t cell, Sheet& sheet, assemblage_t& assemblage, eve_client_holder& /*client_holder*/) { dynamic_menu_item_set_view_t* tmp = new dynamic_menu_item_set_view_t(control); assemblage.cleanup(boost::bind(delete_ptr(), tmp)); attach_view(assemblage, cell, *tmp, sheet); }
void subscribe_view_to_model(toggle_t& control, name_t cell, sheet_t* layout_sheet, sheet_t* model_sheet, assemblage_t& assemblage, visible_change_queue_t& visible_queue) { typedef force_relayout_view_adaptor<toggle_t> adaptor_type; adaptor_type* view_adaptor(new adaptor_type(control, visible_queue)); assemblage.cleanup(boost::bind(delete_ptr(), view_adaptor)); if (layout_sheet) { attach_view(assemblage, cell, *view_adaptor, *layout_sheet); return; } attach_view(assemblage, cell, *view_adaptor, *model_sheet); }
inline void assemblage_cleanup_connection(assemblage_t& assemblage, boost::signals::connection& x) { assemblage.cleanup(boost::bind(&boost::signals::connection::disconnect, x)); }
inline void assemblage_cleanup_ptr(assemblage_t& assemblage, T* x) { assemblage.cleanup(boost::bind(delete_ptr<T*>(), x)); }