Added AF_NOTIFY flag for TOOL_ACTIONs.

This commit is contained in:
Maciej Suminski 2014-07-09 15:10:32 +02:00
parent b2d0737329
commit c0a96141df
4 changed files with 15 additions and 4 deletions

View File

@ -448,8 +448,8 @@ void TOOL_MANAGER::dispatchInternal( TOOL_EVENT& aEvent )
{
if( st->waitEvents.Matches( aEvent ) )
{
// By default, already processed events are not passed further
m_passEvent = false;
// By default, only messages are passed further
m_passEvent = ( aEvent.m_category == TC_MESSAGE );
// got matching event? clear wait list and wake up the coroutine
st->wakeupEvent = aEvent;

View File

@ -148,6 +148,8 @@ public:
{
if( IsActivation() )
return TOOL_EVENT( TC_COMMAND, TA_ACTIVATE, m_name, m_scope );
else if( IsNotification() )
return TOOL_EVENT( TC_MESSAGE, TA_ANY, m_name, m_scope );
else
return TOOL_EVENT( TC_COMMAND, TA_ACTION, m_name, m_scope );
}
@ -192,6 +194,14 @@ public:
return m_flags & AF_ACTIVATE;
}
/**
* Returns true if the action is a notification.
*/
bool IsNotification() const
{
return m_flags & AF_NOTIFY;
}
private:
friend class ACTION_MANAGER;

View File

@ -130,7 +130,8 @@ enum TOOL_ACTION_SCOPE
enum TOOL_ACTION_FLAGS
{
AF_NONE = 0,
AF_ACTIVATE = 1 ///> Action activates a tool
AF_ACTIVATE = 1, ///> Action activates a tool
AF_NOTIFY = 2 ///> Action is a notification (it is by default passed to all tools)
};
/// Defines when a context menu is opened.

View File

@ -264,7 +264,7 @@ TOOL_ACTION COMMON_ACTIONS::viaSizeDec( "pcbnew.EditorControl.viaSizeDec",
TOOL_ACTION COMMON_ACTIONS::trackViaSizeChanged( "pcbnew.EditorControl.trackViaSizeChanged",
AS_GLOBAL, 0,
"", "" );
"", "", AF_NOTIFY );
// Module editor tools