tool: Added a generic parameter for RunAction().
This commit is contained in:
parent
383fec1510
commit
18898fe807
|
@ -292,21 +292,19 @@ void TOOL_MANAGER::UnregisterAction( TOOL_ACTION* aAction )
|
|||
}
|
||||
|
||||
|
||||
bool TOOL_MANAGER::RunAction( const std::string& aActionName, bool aNow )
|
||||
bool TOOL_MANAGER::RunAction( const std::string& aActionName, bool aNow, void* aParam )
|
||||
{
|
||||
TOOL_ACTION* action = m_actionMgr->FindAction( aActionName );
|
||||
|
||||
if( action )
|
||||
{
|
||||
TOOL_EVENT event = action->MakeEvent();
|
||||
event.SetParameter( aParam );
|
||||
|
||||
if( aNow )
|
||||
{
|
||||
TOOL_EVENT event = action->MakeEvent();
|
||||
ProcessEvent( event );
|
||||
}
|
||||
else
|
||||
{
|
||||
PostEvent( action->MakeEvent() );
|
||||
}
|
||||
PostEvent( event );
|
||||
|
||||
return true;
|
||||
}
|
||||
|
@ -315,17 +313,15 @@ bool TOOL_MANAGER::RunAction( const std::string& aActionName, bool aNow )
|
|||
}
|
||||
|
||||
|
||||
void TOOL_MANAGER::RunAction( const TOOL_ACTION& aAction, bool aNow )
|
||||
void TOOL_MANAGER::RunAction( const TOOL_ACTION& aAction, bool aNow, void* aParam )
|
||||
{
|
||||
TOOL_EVENT event = aAction.MakeEvent();
|
||||
event.SetParameter( aParam );
|
||||
|
||||
if( aNow )
|
||||
{
|
||||
TOOL_EVENT event = aAction.MakeEvent();
|
||||
ProcessEvent( event );
|
||||
}
|
||||
else
|
||||
{
|
||||
PostEvent( aAction.MakeEvent() );
|
||||
}
|
||||
PostEvent( event );
|
||||
}
|
||||
|
||||
|
||||
|
|
|
@ -165,7 +165,8 @@ public:
|
|||
m_scope( aScope ),
|
||||
m_mouseButtons( 0 ),
|
||||
m_keyCode( 0 ),
|
||||
m_modifiers( 0 ) {}
|
||||
m_modifiers( 0 ),
|
||||
m_param( NULL ) {}
|
||||
|
||||
TOOL_EVENT( TOOL_EVENT_CATEGORY aCategory, TOOL_ACTIONS aAction, int aExtraParam,
|
||||
TOOL_ACTION_SCOPE aScope = AS_GLOBAL ) :
|
||||
|
@ -174,7 +175,8 @@ public:
|
|||
m_scope( aScope ),
|
||||
m_mouseButtons( 0 ),
|
||||
m_keyCode( 0 ),
|
||||
m_modifiers( 0 )
|
||||
m_modifiers( 0 ),
|
||||
m_param( NULL )
|
||||
{
|
||||
if( aCategory == TC_MOUSE )
|
||||
{
|
||||
|
@ -202,7 +204,8 @@ public:
|
|||
m_scope( aScope ),
|
||||
m_mouseButtons( 0 ),
|
||||
m_keyCode( 0 ),
|
||||
m_modifiers( 0 )
|
||||
m_modifiers( 0 ),
|
||||
m_param( NULL )
|
||||
{
|
||||
if( aCategory == TC_COMMAND || aCategory == TC_MESSAGE )
|
||||
m_commandStr = aExtraParam;
|
||||
|
@ -352,6 +355,27 @@ public:
|
|||
*/
|
||||
bool IsAction( const TOOL_ACTION* aAction ) const;
|
||||
|
||||
/**
|
||||
* Function Parameter()
|
||||
* Returns a non-standard parameter assigned to the event. Its meaning depends on the
|
||||
* target tool.
|
||||
*/
|
||||
void* Parameter() const
|
||||
{
|
||||
return m_param;
|
||||
}
|
||||
|
||||
/**
|
||||
* Function SetParameter()
|
||||
* Sets a non-standard parameter assigned to the event. Its meaning depends on the
|
||||
* target tool.
|
||||
* @param aParam is the new parameter.
|
||||
*/
|
||||
void SetParameter(void* aParam)
|
||||
{
|
||||
m_param = aParam;
|
||||
}
|
||||
|
||||
boost::optional<int> GetCommandId() const
|
||||
{
|
||||
return m_commandId;
|
||||
|
@ -388,6 +412,9 @@ private:
|
|||
///> State of key modifierts (Ctrl/Alt/etc.)
|
||||
int m_modifiers;
|
||||
|
||||
///> Generic parameter used for passing non-standard data.
|
||||
void* m_param;
|
||||
|
||||
boost::optional<int> m_commandId;
|
||||
boost::optional<std::string> m_commandStr;
|
||||
};
|
||||
|
|
|
@ -108,9 +108,11 @@ public:
|
|||
* @param aActionName is the name of action to be invoked.
|
||||
* @param aNow decides if the action has to be run immediately or after the current coroutine
|
||||
* is preemptied.
|
||||
* @param aParam is an optional parameter that might be used by the invoked action. Its meaning
|
||||
* depends on the action.
|
||||
* @return False if the action was not found.
|
||||
*/
|
||||
bool RunAction( const std::string& aActionName, bool aNow = false );
|
||||
bool RunAction( const std::string& aActionName, bool aNow = false, void* aParam = NULL );
|
||||
|
||||
/**
|
||||
* Function RunAction()
|
||||
|
@ -119,8 +121,10 @@ public:
|
|||
* @param aAction is the action to be invoked.
|
||||
* @param aNow decides if the action has to be run immediately or after the current coroutine
|
||||
* is preemptied.
|
||||
* @param aParam is an optional parameter that might be used by the invoked action. Its meaning
|
||||
* depends on the action.
|
||||
*/
|
||||
void RunAction( const TOOL_ACTION& aAction, bool aNow = false );
|
||||
void RunAction( const TOOL_ACTION& aAction, bool aNow = false, void* aParam = NULL );
|
||||
|
||||
/**
|
||||
* Function FindTool()
|
||||
|
|
Loading…
Reference in New Issue