void accelerator_map_erase(AcceleratorMap& acceleratorMap, Accelerator accelerator) { if(accelerator.key != 0) { ASSERT_MESSAGE(acceleratorMap.find(accelerator) != acceleratorMap.end(), "failed to remove accelerator"); acceleratorMap.erase(accelerator); } }
void accelerator_map_insert(AcceleratorMap& acceleratorMap, Accelerator accelerator, const Callback& callback) { if(accelerator.key != 0) { ASSERT_MESSAGE(acceleratorMap.find(accelerator) == acceleratorMap.end(), "failed to add accelerator"); acceleratorMap.insert(AcceleratorMap::value_type(accelerator, callback)); } }
bool Keys_release(PressedKeys::Keys& keys, guint keyval) { if(keys.erase(keyval) != 0) { return AcceleratorMap_activate(g_keyup_accelerators, accelerator_for_event_key(keyval, 0)); } return g_keyup_accelerators.find(accelerator_for_event_key(keyval, 0)) != g_keyup_accelerators.end(); }
bool Keys_press(PressedKeys::Keys& keys, guint keyval) { if(keys.insert(keyval).second) { return AcceleratorMap_activate(g_keydown_accelerators, accelerator_for_event_key(keyval, 0)); } return g_keydown_accelerators.find(accelerator_for_event_key(keyval, 0)) != g_keydown_accelerators.end(); }
void GlobalQueuedAccelerators_commit() { for(AcceleratorMap::const_iterator i = g_queuedAccelerators.begin(); i != g_queuedAccelerators.end(); ++i) { accel_group_add_accelerator(global_accel, (*i).first, (*i).second); } g_queuedAccelerators.clear(); }
bool AcceleratorMap_activate( const AcceleratorMap& acceleratorMap, const Accelerator& accelerator ){ AcceleratorMap::const_iterator i = acceleratorMap.find( accelerator ); if ( i != acceleratorMap.end() ) { ( *i ).second(); return true; } return false; }
bool accelerator_map_erase( AcceleratorMap& acceleratorMap, Accelerator accelerator ){ if ( accelerator.key != 0 ) { AcceleratorMap::iterator i = acceleratorMap.find( accelerator ); if ( i == acceleratorMap.end() ) { return false; } acceleratorMap.erase( i ); } return true; }
void globalQueuedAccelerators_commit(){ for ( AcceleratorSet::const_iterator i = g_queuedAcceleratorsRemove.begin(); i != g_queuedAcceleratorsRemove.end(); ++i ) { //globalOutputStream() << "removing: " << (*i).first << "\n"; accel_group_remove_accelerator( global_accel, *i ); } g_queuedAcceleratorsRemove.clear(); for ( AcceleratorMap::const_iterator i = g_queuedAcceleratorsAdd.begin(); i != g_queuedAcceleratorsAdd.end(); ++i ) { //globalOutputStream() << "adding: " << (*i).first << "\n"; accel_group_add_accelerator( global_accel, ( *i ).first, ( *i ).second ); } g_queuedAcceleratorsAdd.clear(); }