Beispiel #1
0
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();
}
Beispiel #2
0
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;
}
Beispiel #3
0
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;
}
Beispiel #4
0
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();
}
Beispiel #5
0
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";
		}
	}
}
Beispiel #6
0
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";
  }
}
Beispiel #7
0
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;
}
Beispiel #8
0
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();
}
Beispiel #9
0
void GlobalQueuedAccelerators_add(Accelerator accelerator, const Callback& callback)
{
  g_queuedAccelerators.insert(AcceleratorMap::value_type(accelerator, callback));
}