This commit is contained in:
parent
9c575a7f13
commit
c3d76bf383
|
@ -171,7 +171,11 @@ Ki_HotkeyInfo* s_board_edit_Hotkey_List[] =
|
|||
};
|
||||
|
||||
// List of hotkey descriptors for the module editor
|
||||
Ki_HotkeyInfo* s_module_edit_Hotkey_List[] = { NULL };
|
||||
Ki_HotkeyInfo* s_module_edit_Hotkey_List[] = {
|
||||
&HkMoveItem, &HkRotateItem, &HkEditBoardItem,
|
||||
&HkDelete,
|
||||
NULL
|
||||
};
|
||||
|
||||
// list of sections and corresponding hotkey list for pcbnew (used to create an hotkey config file)
|
||||
struct Ki_HotkeyInfoSectionDescriptor s_Pcbnew_Editor_Hokeys_Descr[] =
|
||||
|
@ -635,9 +639,211 @@ void WinEDA_ModuleEditFrame::OnHotKey( wxDC* aDC, int hotkey,
|
|||
cmd.SetId( ID_ZOOM_PAGE );
|
||||
GetEventHandler()->ProcessEvent( cmd );
|
||||
break;
|
||||
|
||||
case HK_EDIT_ITEM:
|
||||
OnHotkeyEditItem( HK_EDIT_ITEM );
|
||||
break;
|
||||
|
||||
case HK_DELETE:
|
||||
OnHotkeyDeleteItem( HK_DELETE );
|
||||
break;
|
||||
|
||||
case HK_MOVE_ITEM:
|
||||
OnHotkeyMoveItem( HK_MOVE_ITEM );
|
||||
break;
|
||||
|
||||
case HK_ROTATE_ITEM:
|
||||
OnHotkeyRotateItem( HK_ROTATE_ITEM );
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
bool WinEDA_ModuleEditFrame::OnHotkeyEditItem( int aIdCommand )
|
||||
{
|
||||
BOARD_ITEM* item = GetCurItem();
|
||||
bool itemCurrentlyEdited = item && item->m_Flags;
|
||||
|
||||
if( itemCurrentlyEdited )
|
||||
return false;
|
||||
|
||||
item = ModeditLocateAndDisplay();
|
||||
|
||||
if( item == NULL )
|
||||
return false;
|
||||
|
||||
SetCurItem( item );
|
||||
|
||||
int evt_type = 0; //Used to post a wxCommandEvent on demand
|
||||
|
||||
switch( item->Type() )
|
||||
{
|
||||
case TYPE_MODULE:
|
||||
if( aIdCommand == HK_EDIT_ITEM )
|
||||
evt_type = ID_POPUP_PCB_EDIT_MODULE;
|
||||
break;
|
||||
|
||||
case TYPE_PAD:
|
||||
if( aIdCommand == HK_EDIT_ITEM )
|
||||
evt_type = ID_POPUP_PCB_EDIT_PAD;
|
||||
break;
|
||||
|
||||
case TYPE_TEXTE_MODULE:
|
||||
if( aIdCommand == HK_EDIT_ITEM )
|
||||
evt_type = ID_POPUP_PCB_EDIT_TEXTMODULE;
|
||||
break;
|
||||
|
||||
default:
|
||||
break;
|
||||
}
|
||||
|
||||
if( evt_type != 0 )
|
||||
{
|
||||
wxCommandEvent evt( wxEVT_COMMAND_MENU_SELECTED );
|
||||
evt.SetEventObject( this );
|
||||
evt.SetId( evt_type );
|
||||
wxPostEvent( this, evt );
|
||||
return true;
|
||||
}
|
||||
|
||||
return false;
|
||||
}
|
||||
|
||||
bool WinEDA_ModuleEditFrame::OnHotkeyDeleteItem( int aIdCommand )
|
||||
{
|
||||
BOARD_ITEM* item = GetCurItem();
|
||||
bool itemCurrentlyEdited = item && item->m_Flags;
|
||||
|
||||
if( itemCurrentlyEdited )
|
||||
return false;
|
||||
|
||||
item = ModeditLocateAndDisplay();
|
||||
|
||||
if( item == NULL )
|
||||
return false;
|
||||
|
||||
SetCurItem( item );
|
||||
|
||||
int evt_type = 0; //Used to post a wxCommandEvent on demand
|
||||
|
||||
switch( item->Type() )
|
||||
{
|
||||
case TYPE_PAD:
|
||||
if( aIdCommand == HK_DELETE )
|
||||
evt_type = ID_POPUP_PCB_DELETE_PAD;
|
||||
break;
|
||||
|
||||
case TYPE_TEXTE_MODULE:
|
||||
if( aIdCommand == HK_DELETE )
|
||||
evt_type = ID_POPUP_PCB_DELETE_TEXTMODULE;
|
||||
break;
|
||||
|
||||
case TYPE_EDGE_MODULE:
|
||||
if( aIdCommand == HK_DELETE )
|
||||
evt_type = ID_POPUP_PCB_DELETE_EDGE;
|
||||
break;
|
||||
|
||||
default:
|
||||
break;
|
||||
}
|
||||
|
||||
if( evt_type != 0 )
|
||||
{
|
||||
wxCommandEvent evt( wxEVT_COMMAND_MENU_SELECTED );
|
||||
evt.SetEventObject( this );
|
||||
evt.SetId( evt_type );
|
||||
wxPostEvent( this, evt );
|
||||
return true;
|
||||
}
|
||||
|
||||
return false;
|
||||
}
|
||||
|
||||
bool WinEDA_ModuleEditFrame::OnHotkeyMoveItem( int aIdCommand )
|
||||
{
|
||||
BOARD_ITEM* item = GetCurItem();
|
||||
bool itemCurrentlyEdited = item && item->m_Flags;
|
||||
|
||||
if( itemCurrentlyEdited )
|
||||
return false;
|
||||
|
||||
item = ModeditLocateAndDisplay();
|
||||
|
||||
if( item == NULL )
|
||||
return false;
|
||||
|
||||
SetCurItem( item );
|
||||
|
||||
int evt_type = 0; //Used to post a wxCommandEvent on demand
|
||||
|
||||
switch( item->Type() )
|
||||
{
|
||||
case TYPE_PAD:
|
||||
if( aIdCommand == HK_MOVE_ITEM )
|
||||
evt_type = ID_POPUP_PCB_MOVE_PAD_REQUEST;
|
||||
break;
|
||||
|
||||
case TYPE_TEXTE_MODULE:
|
||||
if( aIdCommand == HK_MOVE_ITEM )
|
||||
evt_type = ID_POPUP_PCB_MOVE_TEXTMODULE_REQUEST;
|
||||
break;
|
||||
|
||||
case TYPE_EDGE_MODULE:
|
||||
if( aIdCommand == HK_MOVE_ITEM )
|
||||
evt_type = ID_POPUP_PCB_MOVE_EDGE;
|
||||
break;
|
||||
|
||||
default:
|
||||
break;
|
||||
}
|
||||
|
||||
if( evt_type != 0 )
|
||||
{
|
||||
wxCommandEvent evt( wxEVT_COMMAND_MENU_SELECTED );
|
||||
evt.SetEventObject( this );
|
||||
evt.SetId( evt_type );
|
||||
wxPostEvent( this, evt );
|
||||
return true;
|
||||
}
|
||||
|
||||
return false;
|
||||
}
|
||||
|
||||
bool WinEDA_ModuleEditFrame::OnHotkeyRotateItem( int aIdCommand )
|
||||
{
|
||||
BOARD_ITEM* item = GetCurItem();
|
||||
bool itemCurrentlyEdited = item && item->m_Flags;
|
||||
int evt_type = 0; // Used to post a wxCommandEvent on demand
|
||||
|
||||
if( !itemCurrentlyEdited )
|
||||
item = ModeditLocateAndDisplay();
|
||||
|
||||
if( item == NULL )
|
||||
return false;
|
||||
|
||||
SetCurItem( item );
|
||||
|
||||
switch( item->Type() )
|
||||
{
|
||||
case TYPE_TEXTE_MODULE:
|
||||
if( aIdCommand == HK_ROTATE_ITEM ) // Rotation
|
||||
evt_type = ID_POPUP_PCB_ROTATE_TEXTMODULE;
|
||||
break;
|
||||
|
||||
default:
|
||||
break;
|
||||
}
|
||||
|
||||
if( evt_type != 0 )
|
||||
{
|
||||
wxCommandEvent evt( wxEVT_COMMAND_MENU_SELECTED );
|
||||
evt.SetEventObject( this );
|
||||
evt.SetId( evt_type );
|
||||
wxPostEvent( this, evt );
|
||||
return true;
|
||||
}
|
||||
|
||||
return false;
|
||||
}
|
||||
|
||||
/** Function OnHotkeyDeleteItem
|
||||
* Delete the item found under the mouse cursor
|
||||
|
|
|
@ -17,6 +17,7 @@
|
|||
#include "protos.h"
|
||||
#include "pcbnew_id.h"
|
||||
|
||||
#include "hotkeys.h"
|
||||
|
||||
/* Handle the left click in footprint editor
|
||||
*/
|
||||
|
@ -264,8 +265,10 @@ bool WinEDA_ModuleEditFrame::OnRightClick( const wxPoint& MousePos,
|
|||
_( "Rotate" ), rotate_module_pos_xpm );
|
||||
ADD_MENUITEM( transform_choice, ID_MODEDIT_MODULE_MIRROR,
|
||||
_( "Mirror" ), mirror_H_xpm );
|
||||
msg = AddHotkeyName( _( "Edit Module" ), s_Module_Editor_Hokeys_Descr,
|
||||
HK_EDIT_ITEM );
|
||||
ADD_MENUITEM( PopMenu, ID_POPUP_PCB_EDIT_MODULE,
|
||||
_( "Edit Module" ), edit_module_xpm );
|
||||
msg, edit_module_xpm );
|
||||
ADD_MENUITEM_WITH_SUBMENU( PopMenu, transform_choice,
|
||||
ID_MODEDIT_TRANSFORM_MODULE,
|
||||
_( "Transform Module" ), edit_xpm );
|
||||
|
@ -275,17 +278,23 @@ bool WinEDA_ModuleEditFrame::OnRightClick( const wxPoint& MousePos,
|
|||
case TYPE_PAD:
|
||||
if( !flags )
|
||||
{
|
||||
msg = AddHotkeyName( _("Move Pad" ), s_Module_Editor_Hokeys_Descr,
|
||||
HK_MOVE_ITEM );
|
||||
ADD_MENUITEM( PopMenu, ID_POPUP_PCB_MOVE_PAD_REQUEST,
|
||||
_( "Move Pad" ), move_pad_xpm );
|
||||
msg, move_pad_xpm );
|
||||
}
|
||||
ADD_MENUITEM( PopMenu, ID_POPUP_PCB_EDIT_PAD, _( "Edit Pad" ),
|
||||
options_pad_xpm );
|
||||
msg = AddHotkeyName( _("Edit Pad" ), s_Module_Editor_Hokeys_Descr,
|
||||
HK_EDIT_ITEM );
|
||||
ADD_MENUITEM( PopMenu, ID_POPUP_PCB_EDIT_PAD,
|
||||
msg, options_pad_xpm );
|
||||
ADD_MENUITEM( PopMenu, ID_POPUP_PCB_IMPORT_PAD_SETTINGS,
|
||||
_( "New Pad Settings" ), options_new_pad_xpm );
|
||||
ADD_MENUITEM( PopMenu, ID_POPUP_PCB_EXPORT_PAD_SETTINGS,
|
||||
_( "Export Pad Settings" ), export_options_pad_xpm );
|
||||
msg = AddHotkeyName( _("Delete Pad" ), s_Module_Editor_Hokeys_Descr,
|
||||
HK_DELETE );
|
||||
ADD_MENUITEM( PopMenu, ID_POPUP_PCB_DELETE_PAD,
|
||||
_( "delete Pad" ), delete_pad_xpm );
|
||||
msg, delete_pad_xpm );
|
||||
if( !flags )
|
||||
{
|
||||
PopMenu->AppendSeparator();
|
||||
|
@ -297,18 +306,28 @@ bool WinEDA_ModuleEditFrame::OnRightClick( const wxPoint& MousePos,
|
|||
case TYPE_TEXTE_MODULE:
|
||||
if( !flags )
|
||||
{
|
||||
msg = AddHotkeyName( _("Move Text Mod." ), s_Module_Editor_Hokeys_Descr,
|
||||
HK_MOVE_ITEM );
|
||||
ADD_MENUITEM( PopMenu, ID_POPUP_PCB_MOVE_TEXTMODULE_REQUEST,
|
||||
_( "Move Text Mod." ), move_field_xpm );
|
||||
msg, move_field_xpm );
|
||||
}
|
||||
msg = AddHotkeyName( _("Rotate Text Mod." ), s_Module_Editor_Hokeys_Descr,
|
||||
HK_ROTATE_ITEM );
|
||||
ADD_MENUITEM( PopMenu, ID_POPUP_PCB_ROTATE_TEXTMODULE,
|
||||
_( "Rotate Text Mod." ), rotate_field_xpm );
|
||||
msg, rotate_field_xpm );
|
||||
if( !flags )
|
||||
{
|
||||
msg = AddHotkeyName( _("Edit Text Mod." ), s_Module_Editor_Hokeys_Descr,
|
||||
HK_EDIT_ITEM );
|
||||
ADD_MENUITEM( PopMenu, ID_POPUP_PCB_EDIT_TEXTMODULE,
|
||||
_( "Edit Text Mod." ), edit_text_xpm );
|
||||
msg, edit_text_xpm );
|
||||
if( ( (TEXTE_MODULE*) DrawStruct )->m_Type == TEXT_is_DIVERS )
|
||||
{
|
||||
msg = AddHotkeyName( _("Delete Text Mod." ), s_Module_Editor_Hokeys_Descr,
|
||||
HK_DELETE );
|
||||
ADD_MENUITEM( PopMenu, ID_POPUP_PCB_DELETE_TEXTMODULE,
|
||||
_( "Delete Text Mod." ), delete_text_xpm );
|
||||
msg, delete_text_xpm );
|
||||
}
|
||||
}
|
||||
break;
|
||||
|
||||
|
@ -318,8 +337,12 @@ bool WinEDA_ModuleEditFrame::OnRightClick( const wxPoint& MousePos,
|
|||
ADD_MENUITEM( PopMenu, ID_POPUP_PCB_STOP_CURRENT_DRAWING,
|
||||
_( "End edge" ), apply_xpm );
|
||||
if( !flags )
|
||||
{
|
||||
msg = AddHotkeyName( _("Move edge" ), s_Module_Editor_Hokeys_Descr,
|
||||
HK_MOVE_ITEM );
|
||||
ADD_MENUITEM( PopMenu, ID_POPUP_PCB_MOVE_EDGE,
|
||||
_( "Move edge" ), move_line_xpm );
|
||||
msg, move_line_xpm );
|
||||
}
|
||||
if( ( flags & (IS_NEW | IS_MOVED) ) == IS_MOVED )
|
||||
ADD_MENUITEM( PopMenu, ID_POPUP_PCB_PLACE_EDGE,
|
||||
_( "Place edge" ), apply_xpm );
|
||||
|
@ -335,8 +358,10 @@ bool WinEDA_ModuleEditFrame::OnRightClick( const wxPoint& MousePos,
|
|||
_( "Edit Layer (Current)" ), select_layer_pair_xpm );
|
||||
ADD_MENUITEM( edit_mnu, ID_POPUP_PCB_EDIT_LAYER_ALL_EDGE,
|
||||
_( "Edit Layer (All)" ), select_layer_pair_xpm );
|
||||
msg = AddHotkeyName( _("Delete edge" ), s_Module_Editor_Hokeys_Descr,
|
||||
HK_DELETE );
|
||||
ADD_MENUITEM( PopMenu, ID_POPUP_PCB_DELETE_EDGE,
|
||||
_( "Delete edge" ), delete_xpm );
|
||||
msg, delete_xpm );
|
||||
append_set_width = TRUE;
|
||||
}
|
||||
break;
|
||||
|
@ -375,7 +400,7 @@ bool WinEDA_ModuleEditFrame::OnRightClick( const wxPoint& MousePos,
|
|||
|| ( m_ID_current_state == ID_PCB_ARC_BUTT ) ) ) )
|
||||
{
|
||||
ADD_MENUITEM( PopMenu, ID_POPUP_PCB_ENTER_EDGE_WIDTH,
|
||||
_( "Set Width" ), width_segment_xpm );
|
||||
_("Set Width" ), width_segment_xpm );
|
||||
PopMenu->AppendSeparator();
|
||||
}
|
||||
|
||||
|
|
|
@ -41,6 +41,10 @@ public:
|
|||
void ToolOnRightClick( wxCommandEvent& event );
|
||||
void OnSelectOptionToolbar( wxCommandEvent& event );
|
||||
void OnHotKey( wxDC* DC, int hotkey, EDA_BaseStruct* DrawStruct );
|
||||
bool OnHotkeyEditItem( int aIdCommand );
|
||||
bool OnHotkeyDeleteItem( int aIdCommand );
|
||||
bool OnHotkeyMoveItem( int aIdCommand );
|
||||
bool OnHotkeyRotateItem( int aIdCommand );
|
||||
void Show3D_Frame( wxCommandEvent& event );
|
||||
void GeneralControle( wxDC* DC, wxPoint Mouse );
|
||||
|
||||
|
|
Loading…
Reference in New Issue