cleanup tool event and tool action includes

This commit is contained in:
Ian McInerney 2021-06-06 18:26:26 +01:00
parent 425331b655
commit dc27079b71
34 changed files with 99 additions and 100 deletions

View File

@ -28,7 +28,6 @@
#include <tool/tool_action.h>
#include <tool/actions.h>
#include <core/optional.h>
class TOOL_EVENT;
class TOOL_MANAGER;

View File

@ -34,6 +34,7 @@
#include <settings/common_settings.h>
#include <tool/action_toolbar.h>
#include <tool/actions.h>
#include <tool/tool_action.h>
#include <tool/tool_event.h>
#include <tool/tool_interactive.h>
#include <tool/tool_manager.h>
@ -65,6 +66,12 @@ ACTION_GROUP::ACTION_GROUP( std::string aName, const std::vector<const TOOL_ACTI
}
int ACTION_GROUP::GetUIId() const
{
return m_id + TOOL_ACTION::GetBaseUIId();
}
void ACTION_GROUP::SetDefaultAction( const TOOL_ACTION& aDefault )
{
bool valid = std::any_of( m_actions.begin(), m_actions.end(),

View File

@ -27,6 +27,8 @@
#include <eda_units.h>
#include <frame_type.h>
#include <tool/actions.h>
#include <tool/tool_action.h>
#include <tool/tool_event.h>
// Actions, being statically-defined, require specialized I18N handling. We continue to
// use the _() macro so that string harvesting by the I18N framework doesn't have to be

View File

@ -23,6 +23,7 @@
*/
#include <tool/tool_action.h>
#include <tool/tool_event.h>
#include <tool/action_manager.h>
#include <algorithm>
@ -68,6 +69,17 @@ TOOL_ACTION::~TOOL_ACTION()
}
TOOL_EVENT TOOL_ACTION::MakeEvent() const
{
if( IsActivation() )
return TOOL_EVENT( TC_COMMAND, TA_ACTIVATE, m_name, m_scope, m_param );
else if( IsNotification() )
return TOOL_EVENT( TC_MESSAGE, TA_NONE, m_name, m_scope, m_param );
else
return TOOL_EVENT( TC_COMMAND, TA_ACTION, m_name, m_scope, m_param );
}
wxString TOOL_ACTION::GetLabel() const
{
return wxGetTranslation( m_label );

View File

@ -362,6 +362,17 @@ void TOOL_MANAGER::PrimeTool( const VECTOR2D& aPosition )
}
void TOOL_MANAGER::PostEvent( const TOOL_EVENT& aEvent )
{
// Horrific hack, but it's a crash bug. Don't let inter-frame commands stack up
// waiting to be processed.
if( aEvent.IsSimulator() && m_eventQueue.size() > 0 && m_eventQueue.back().IsSimulator() )
m_eventQueue.pop_back();
m_eventQueue.push_back( aEvent );
}
const std::map<std::string, TOOL_ACTION*>& TOOL_MANAGER::GetActions() const
{
return m_actionMgr->GetActions();

View File

@ -23,6 +23,7 @@
#include <pgm_base.h>
#include <settings/common_settings.h>
#include <tool/action_manager.h>
#include <tool/action_menu.h>
#include <tool/actions.h>
#include <tool/tools_holder.h>

View File

@ -28,7 +28,7 @@
#include <wx/treelist.h>
#include <wx/msgdlg.h>
#include <wx/menu.h>
#include <tool/tool_action.h>
#include <tool/tool_event.h>
#include <dialog_shim.h>
#include <wx/dcclient.h>
#include <wx/stattext.h>

View File

@ -26,10 +26,7 @@
#ifndef CVPCB_ACTIONS_H
#define CVPCB_ACTIONS_H
#include <core/optional.h>
#include <tool/actions.h>
#include <tool/tool_event.h>
class TOOL_ACTION;
/**
* Gather all the actions that are shared by tools.

View File

@ -30,6 +30,7 @@
#include <menus_helpers.h>
#include <pgm_base.h>
#include <schematic.h>
#include <tool/action_manager.h>
#include <tool/action_menu.h>
#include <tool/tool_manager.h>
#include <tools/ee_selection_tool.h>

View File

@ -27,7 +27,6 @@
#include <tool/tool_action.h>
#include <tool/actions.h>
#include <core/optional.h>
class TOOL_EVENT;
class TOOL_MANAGER;
@ -218,26 +217,4 @@ public:
static TOOL_ACTION highlightNetTool;
};
//
// For LibEdit
//
inline VECTOR2I mapCoords( const wxPoint& aCoord )
{
return VECTOR2I( aCoord.x, -aCoord.y );
}
inline wxPoint mapCoords( const VECTOR2I& aCoord )
{
return wxPoint( aCoord.x, -aCoord.y );
}
inline wxPoint mapCoords( const int x, const int y )
{
return wxPoint( x, -y );
}
#endif

View File

@ -25,6 +25,7 @@
#ifndef EE_TOOL_BASE_H
#define EE_TOOL_BASE_H
#include <math/vector2d.h>
#include <tool/tool_event.h>
#include <tool/tool_interactive.h>
#include <tool/tool_manager.h>
@ -177,4 +178,21 @@ protected:
bool m_isSymbolEditor;
};
// For LibEdit
inline VECTOR2I mapCoords( const wxPoint& aCoord )
{
return VECTOR2I( aCoord.x, -aCoord.y );
}
inline wxPoint mapCoords( const VECTOR2I& aCoord )
{
return wxPoint( aCoord.x, -aCoord.y );
}
inline wxPoint mapCoords( const int x, const int y )
{
return wxPoint( x, -y );
}
#endif

View File

@ -31,12 +31,12 @@
#include <vector>
#include <math/vector2d.h>
#include <tool/tool_event.h>
#include <sch_edit_frame.h>
#include <sch_line.h>
#include <ee_tool_base.h>
class TOOL_EVENT;
class SCH_BUS_WIRE_ENTRY;
class SCH_LABEL;

View File

@ -29,6 +29,7 @@
#include "gerbview_id.h"
#include <kiface_i.h>
#include <menus_helpers.h>
#include <tool/action_manager.h>
#include <tool/action_menu.h>
#include <tool/actions.h>
#include <tool/tool_manager.h>

View File

@ -23,7 +23,6 @@
#include <tool/tool_action.h>
#include <tool/actions.h>
#include <core/optional.h>
class TOOL_EVENT;
class TOOL_MANAGER;

View File

@ -20,10 +20,11 @@
#ifndef GERBVIEW_INSPECTION_TOOL_H
#define GERBVIEW_INSPECTION_TOOL_H
#include <tool/tool_event.h>
#include <tool/tool_interactive.h>
#include <gerbview_frame.h>
class TOOL_EVENT;
class GERBVIEW_INSPECTION_TOOL : public TOOL_INTERACTIVE
{
public:

View File

@ -34,10 +34,11 @@
#include <wx/menu.h>
#include <wx/textentry.h>
#include <tool/tool_action.h>
#include <tool/tool_event.h>
class KIFACE_I;
class TOOL_INTERACTIVE;
class TOOL_MANAGER;
enum class BITMAPS : unsigned int;

View File

@ -33,12 +33,11 @@
#include <wx/popupwin.h>
#include <wx/panel.h>
#include <tool/action_manager.h>
#include <tool/tool_action.h>
#include <tool/tool_event.h>
class ACTION_MENU;
class BITMAP_BUTTON;
class EDA_BASE_FRAME;
class TOOL_ACTION;
class TOOL_MANAGER;
/**
@ -75,12 +74,12 @@ public:
/**
* Get the ID used in the UI to reference this group
*/
int GetUIId() const { return m_id + TOOL_ACTION::GetBaseUIId(); }
int GetUIId() const;
/**
* Get a vector of all the actions contained inside this group.
*/
const std::vector< const TOOL_ACTION*>& GetActions() const { return m_actions; }
const std::vector<const TOOL_ACTION*>& GetActions() const { return m_actions; }
protected:
///< The action ID for this action group

View File

@ -27,10 +27,7 @@
#define __ACTIONS_H
#include <tool/tool_action.h>
#include <core/optional.h>
class TOOL_EVENT;
class TOOL_MANAGER;
#include <tool/tool_event.h>
#define LEGACY_HK_NAME( x ) x

View File

@ -29,10 +29,10 @@
#include <functional>
#include <tool/selection.h>
#include <tool/selection_conditions.h>
#include <tool/tool_action.h>
class EDA_BASE_FRAME;
class EDA_DRAW_FRAME;
class TOOL_ACTION;
/**
* Class that groups generic conditions for editor states.

View File

@ -31,10 +31,28 @@
#include <string>
#include <cassert>
#include <tool/tool_event.h>
#include <wx/string.h>
class TOOL_EVENT;
enum class BITMAPS : unsigned int;
/// Scope of tool actions
enum TOOL_ACTION_SCOPE
{
AS_CONTEXT = 1, ///< Action belongs to a particular tool (i.e. a part of a pop-up menu)
AS_ACTIVE, ///< All active tools
AS_GLOBAL ///< Global action (toolbar/main menu event, global shortcut)
};
/// Flags for tool actions
enum TOOL_ACTION_FLAGS
{
AF_NONE = 0,
AF_ACTIVATE = 1, ///< Action activates a tool
AF_NOTIFY = 2 ///< Action is a notification (it is by default passed to all tools)
};
/**
* Represent a single user action.
*
@ -120,15 +138,7 @@ public:
* Return the event associated with the action (i.e. the event that will be sent after
* activating the action).
*/
TOOL_EVENT MakeEvent() const
{
if( IsActivation() )
return TOOL_EVENT( TC_COMMAND, TA_ACTIVATE, m_name, m_scope, m_param );
else if( IsNotification() )
return TOOL_EVENT( TC_MESSAGE, TA_NONE, m_name, m_scope, m_param );
else
return TOOL_EVENT( TC_COMMAND, TA_ACTION, m_name, m_scope, m_param );
}
TOOL_EVENT MakeEvent() const;
wxString GetLabel() const;
wxString GetMenuItem() const;

View File

@ -30,11 +30,10 @@
#include <cassert>
#include <eda_item.h> // for KICAD_T
#include <tool/tool_event.h>
#include <functional>
class EDA_ITEM;
class TOOL_EVENT;
class TOOL_MANAGER;
class TOOLS_HOLDER;

View File

@ -29,7 +29,7 @@
#include <vector>
#include <wx/event.h>
#include <tool/tool_event.h>
#include <tool/tool_event.h> // Needed for MD_ constants
class TOOL_MANAGER;
class PCB_BASE_FRAME;

View File

@ -34,6 +34,7 @@
#include <math/vector2d.h>
#include <core/optional.h>
#include <tool/tool_action.h>
class TOOL_ACTION;
class TOOL_MANAGER;
@ -137,22 +138,6 @@ enum TOOL_MODIFIERS
MD_MODIFIER_MASK = MD_SHIFT | MD_CTRL | MD_ALT,
};
/// Scope of tool actions
enum TOOL_ACTION_SCOPE
{
AS_CONTEXT = 1, ///< Action belongs to a particular tool (i.e. a part of a pop-up menu)
AS_ACTIVE, ///< All active tools
AS_GLOBAL ///< Global action (toolbar/main menu event, global shortcut)
};
/// Flags for tool actions
enum TOOL_ACTION_FLAGS
{
AF_NONE = 0,
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.
enum CONTEXT_MENU_TRIGGER
{

View File

@ -29,7 +29,7 @@
#include <string>
#include <tool/tool_menu.h>
#include <tool/tool_event.h>
#include <tool/tool_event.h> // Needed for CONTEXT_MENU_TRIGGER
#include <tool/tool_base.h>
class ACTION_MENU;

View File

@ -34,9 +34,11 @@
#include <stack>
#include <tool/tool_base.h>
#include <tool/tool_event.h>
#include <view/view_controls.h>
class TOOLS_HOLDER;
class TOOL_ACTION;
class TOOL_BASE;
class ACTION_MANAGER;
class ACTION_MENU;
@ -264,15 +266,7 @@ public:
*
* @param aEvent is the event to be put into the queue.
*/
inline void PostEvent( const TOOL_EVENT& aEvent )
{
// Horrific hack, but it's a crash bug. Don't let inter-frame commands stack up
// waiting to be processed.
if( aEvent.IsSimulator() && m_eventQueue.size() > 0 && m_eventQueue.back().IsSimulator() )
m_eventQueue.pop_back();
m_eventQueue.push_back( aEvent );
}
void PostEvent( const TOOL_EVENT& aEvent );
/**
* Set the work environment (model, view, view controls and the parent window).

View File

@ -25,12 +25,12 @@
#define TOOLS_TOOL_MENU__H_
#include <tool/conditional_menu.h>
#include <tool/tool_event.h>
#include <vector>
#include <memory>
class ACTION_MENU;
class TOOL_INTERACTIVE;
/**
* Manage a #CONDITIONAL_MENU and some number of CONTEXT_MENUs as sub-menus.

View File

@ -26,15 +26,14 @@
#include <vector>
#include <view/view_controls.h>
#include <tool/action_manager.h>
#include <tool/selection.h>
#include <tool/tool_action.h>
struct ACTION_CONDITIONS;
class TOOL_MANAGER;
class TOOL_DISPATCHER;
class ACTIONS;
class TOOL_DISPATCHER;
class TOOL_MANAGER;
/*
* A mix-in class which allows its owner to hold a set of tools from the tool framework.

View File

@ -27,11 +27,6 @@
#include <tool/tool_action.h>
#include <tool/actions.h>
#include <core/optional.h>
class TOOL_EVENT;
class TOOL_MANAGER;
class KICAD_MANAGER_ACTIONS : public ACTIONS
{

View File

@ -28,6 +28,7 @@
#include <kiface_i.h>
#include <menus_helpers.h>
#include <pgm_base.h>
#include <tool/action_manager.h>
#include <tool/action_menu.h>
#include <tool/tool_manager.h>
#include <widgets/wx_menubar.h>

View File

@ -27,10 +27,6 @@
#include <tool/tool_action.h>
#include <tool/actions.h>
#include <core/optional.h>
class TOOL_EVENT;
class TOOL_MANAGER;
/**
* Gather all the actions that are shared by tools. The instance of PL_ACTIONS is created

View File

@ -33,6 +33,7 @@
#include <pcbnew_id.h>
#include <pgm_base.h>
#include <python_scripting.h>
#include <tool/action_manager.h>
#include <tool/actions.h>
#include <tool/tool_manager.h>
#include <tools/pcb_actions.h>

View File

@ -29,10 +29,6 @@
#include <tool/tool_action.h>
#include <tool/actions.h>
#include <core/optional.h>
class TOOL_EVENT;
class TOOL_MANAGER;
enum class ZONE_MODE
{

View File

@ -30,9 +30,10 @@
#include <tool/selection.h>
#include <tool/tool_action.h>
#include <pcb_base_frame.h>
class EDA_BASE_FRAME;
class EDA_DRAW_FRAME;
class PCB_BASE_FRAME;
/**
* Group generic conditions for PCB editor states.

View File

@ -28,7 +28,6 @@
#include <string>
#include <tool/tool_event.h>
#include <tool/tool_interactive.h>
#include <pcb_edit_frame.h>
#include <board.h>