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(); }
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(); }
void globalQueuedAccelerators_remove( Accelerator accelerator ){ if ( g_queuedAcceleratorsAdd.erase( accelerator ) == 0 ) { if ( !g_queuedAcceleratorsRemove.insert( accelerator ).second ) { globalErrorStream() << "globalQueuedAccelerators_remove: accelerator already queued: " << accelerator << "\n"; } } }
void globalQueuedAccelerators_add(Accelerator accelerator, const Callback& callback) { if(!g_queuedAcceleratorsAdd.insert(AcceleratorMap::value_type(accelerator, callback)).second) { globalErrorStream() << "globalQueuedAccelerators_add: accelerator already queued: " << accelerator << "\n"; } }
bool accelerator_map_insert(AcceleratorMap& acceleratorMap, Accelerator accelerator, const Callback& callback) { if(accelerator.key != 0) { return acceleratorMap.insert(AcceleratorMap::value_type(accelerator, callback)).second; } return true; }
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(); }
void GlobalQueuedAccelerators_add(Accelerator accelerator, const Callback& callback) { g_queuedAccelerators.insert(AcceleratorMap::value_type(accelerator, callback)); }