* in OnHotKey() function. default key value is the default hotkey for this command. * Can be overrided by the user hotkey list file add the HkMyNewEntry pointer in the * s_board_edit_Hotkey_List list ( or/and the s_module_edit_Hotkey_List list) Add the * new code in the switch in OnHotKey() function. when the variable PopupOn is true, * an item is currently edited. This can be usefull if the new function cannot be * executed while an item is currently being edited * ( For example, one cannot start a new wire when a component is moving.) * * Note: If an hotkey is a special key, be sure the corresponding wxWidget keycode (WXK_XXXX) * is handled in the hotkey_name_descr s_Hotkey_Name_List list (see hotkeys_basic.cpp) * and see this list for some ascii keys (space ...) */ // local variables // Hotkey list: static EDA_HOTKEY HkZoomAuto( _HKI( "Zoom Auto" ), HK_ZOOM_AUTO, WXK_HOME ); static EDA_HOTKEY HkZoomCenter( _HKI( "Zoom Center" ), HK_ZOOM_CENTER, WXK_F4 ); static EDA_HOTKEY HkZoomRedraw( _HKI( "Zoom Redraw" ), HK_ZOOM_REDRAW, WXK_F3 ); static EDA_HOTKEY HkZoomOut( _HKI( "Zoom Out" ), HK_ZOOM_OUT, WXK_F2 ); static EDA_HOTKEY HkZoomIn( _HKI( "Zoom In" ), HK_ZOOM_IN, WXK_F1 ); static EDA_HOTKEY HkZoomSelection( _HKI( "Zoom to Selection" ), HK_ZOOM_SELECTION, '@', ID_ZOOM_SELECTION ); static EDA_HOTKEY HkHelp( _HKI( "Help (this window)" ), HK_HELP, '?' ); static EDA_HOTKEY HkSwitchUnits( _HKI( "Switch Units" ), HK_SWITCH_UNITS, 'U' ); static EDA_HOTKEY HkResetLocalCoord( _HKI( "Reset Local Coordinates" ), HK_RESET_LOCAL_COORD, ' ' ); static EDA_HOTKEY HkLinesDisplayMode( _HKI( "Gbr Lines Display Mode" ), HK_GBR_LINES_DISPLAY_MODE, 'L' ); static EDA_HOTKEY HkFlashedDisplayMode( _HKI( "Gbr Flashed Display Mode" ), HK_GBR_FLASHED_DISPLAY_MODE, 'F' ); static EDA_HOTKEY HkPolygonDisplayMode( _HKI( "Gbr Polygons Display Mode" ), HK_GBR_POLYGON_DISPLAY_MODE, 'P' ); static EDA_HOTKEY HkNegativeObjDisplayMode( _HKI( "Gbr Negative Obj Display Mode" ), HK_GBR_NEGATIVE_DISPLAY_ONOFF, 'N' ); static EDA_HOTKEY HkDCodesDisplayMode( _HKI( "DCodes Display Mode" ), HK_GBR_DCODE_DISPLAY_ONOFF, 'D' );
* along with this program; if not, you may find one here: * http://www.gnu.org/licenses/old-licenses/gpl-2.0.html * or you may search the http://www.gnu.org website for the version 2 license, * or you may write to the Free Software Foundation, Inc., * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA */ #include <boost/test/unit_test.hpp> #include <boost/test/test_case_template.hpp> #include <hotkey_store.h> // ---------------------------------------------------------------------------- // Dummy Hotkey definitions static EDA_HOTKEY actionA1( _HKI("A1"), 1001, WXK_F1 ); static EDA_HOTKEY actionA2( _HKI("A2"), 1002, WXK_F2 ); static wxString sectionATag( "[a]" ); static wxString sectionATitle( "Section A" ); static EDA_HOTKEY actionB1( _HKI("B1"), 2001, WXK_F10 ); static EDA_HOTKEY actionB2( _HKI("B2"), 2002, WXK_F11 ); static wxString sectionBTag( "[b]" ); static wxString sectionBTitle( "Section B" ); // A keycode that is unused by any hotkey static const int unused_keycode = WXK_F5; // List of hotkey descriptors for library editor
#include <worksheet.h> #include <dialog_page_settings.h> #define MAX_PAGE_EXAMPLE_SIZE 200 // List of page formats. // they are prefixed by "_HKI" (already in use for hotkeys) instead of "_", // because we need both the translated and the not translated version. // when displayed in dialog we should explicitly call wxGetTranslation() // to show the translated version. // See hotkeys_basic.h for more info #define _HKI( x ) wxT( x ) static const wxString pageFmts[] = { _HKI("A4 210x297mm"), _HKI("A3 297x420mm"), _HKI("A2 420x594mm"), _HKI("A1 594x841mm"), _HKI("A0 841x1189mm"), _HKI("A 8.5x11in"), _HKI("B 11x17in"), _HKI("C 17x22in"), _HKI("D 22x34in"), _HKI("E 34x44in"), _HKI("USLetter 8.5x11in"), // USLetter without space is correct _HKI("USLegal 8.5x14in"), // USLegal without space is correct _HKI("USLedger 11x17in"), // USLedger without space is correct _HKI("User (Custom)"), // size defined by user. The string must contain "Custom" // to be recognized in code };
HK_RUN_FPEDITOR, HK_RUN_GERBVIEW, HK_RUN_BM2COMPONENT, HK_RUN_PCBCALCULATOR, HK_RUN_PLEDITOR }; ///////////// Hotkeys management /////////////////////////////////////// // Remark: the hotkey message info is used as keyword in hotkey config files and // as comments in help windows, therefore translated only when displayed // they are marked _HKI to be extracted by translation tools // See hotkeys_basic.h for more info // hotkeys command: static EDA_HOTKEY HkNewProjectFromTemplate( _HKI( "New Project From Template" ), HK_NEW_PRJ_TEMPLATE, 'T' + GR_KB_CTRL ); static EDA_HOTKEY HkRefresh( _HKI( "Refresh Project Tree" ), HK_REFRESH, GR_KB_CTRL + 'R' ); static EDA_HOTKEY HkRunEeschema( _HKI( "Run Eeschema" ), HK_RUN_EESCHEMA, 'E' + GR_KB_CTRL, 0 ); static EDA_HOTKEY HkRunLibedit( _HKI( "Run LibEdit" ), HK_RUN_LIBEDIT, 'L' + GR_KB_CTRL, 0 ); static EDA_HOTKEY HkRunPcbnew( _HKI( "Run Pcbnew" ), HK_RUN_PCBNEW, 'P' + GR_KB_CTRL, 0 ); static EDA_HOTKEY HkRunModedit( _HKI( "Run FpEditor" ), HK_RUN_FPEDITOR, 'F' + GR_KB_CTRL, 0 ); static EDA_HOTKEY HkRunGerbview( _HKI( "Run Gerbview" ), HK_RUN_GERBVIEW, 'G' + GR_KB_CTRL, 0 ); static EDA_HOTKEY HkRunBm2Cmp( _HKI( "Run Bitmap2Component" ), HK_RUN_BM2COMPONENT, 'B' + GR_KB_CTRL, 0 ); static EDA_HOTKEY HkRunPcbCalc( _HKI( "Run PcbCalculator" ), HK_RUN_PCBCALCULATOR, 'A' + GR_KB_CTRL, 0 ); static EDA_HOTKEY HkRunPleditor( _HKI( "Run PlEditor" ), HK_RUN_PLEDITOR, 'Y' + GR_KB_CTRL, 0 ); // Common: hotkeys_basic.h static EDA_HOTKEY HkNewProject( _HKI( "New Project" ), HK_NEW, GR_KB_CTRL + 'N' );
#include <colors.h> #include <i18n_utility.h> /** * The predefined colors used in KiCad. * Please: if you change a value, remember these values are carefully chosen * to have good results in Pcbnew, that uses the ORed value of basic colors * when displaying superimposed objects * This list must have exactly NBCOLORS items */ const StructColors g_ColorRefs[NBCOLORS] = { { 0, 0, 0, BLACK, _HKI( "Black" ), DARKDARKGRAY }, { 72, 72, 72, DARKDARKGRAY, _HKI( "Gray 1" ), DARKGRAY }, { 132, 132, 132, DARKGRAY, _HKI( "Gray 2" ), LIGHTGRAY }, { 194, 194, 194, LIGHTGRAY, _HKI( "Gray 3" ), WHITE }, { 255, 255, 255, WHITE, _HKI( "White" ), WHITE }, { 194, 255, 255, LIGHTYELLOW, _HKI( "L.Yellow" ), WHITE }, { 72, 0, 0, DARKBLUE, _HKI( "Blue 1" ), BLUE }, { 0, 72, 0, DARKGREEN, _HKI( "Green 1" ), GREEN }, { 72, 72, 0, DARKCYAN, _HKI( "Cyan 1" ), CYAN }, { 0, 0, 72, DARKRED, _HKI( "Red 1" ), RED }, { 72, 0, 72, DARKMAGENTA, _HKI( "Magenta 1" ), MAGENTA }, { 0, 72, 72, DARKBROWN, _HKI( "Brown 1" ), BROWN }, { 132, 0, 0, BLUE, _HKI( "Blue 2" ), LIGHTBLUE }, { 0, 132, 0, GREEN, _HKI( "Green 2" ), LIGHTGREEN }, { 132, 132, 0, CYAN, _HKI( "Cyan 2" ), LIGHTCYAN }, { 0, 0, 132, RED, _HKI( "Red 2" ), LIGHTRED },
definedColors.SetCustomColour( i++, wxColour( 0, 0, 0 ) ); } bool change = Set3DColorFromUser( m_settings.m_SolderPasteColor, _( "Solder Paste Color" ), &definedColors ); if( change ) NewDisplay(); return change; } // Define 3D Viewer Hotkeys static EDA_HOTKEY Hk3D_PivotCenter( _HKI( "Center pivot rotation (Middle mouse click)" ), 0, WXK_SPACE ); static EDA_HOTKEY Hk3D_MoveLeft( _HKI( "Move board Left" ), ID_POPUP_MOVE3D_LEFT, WXK_LEFT ); static EDA_HOTKEY Hk3D_MoveRight( _HKI( "Move board Right" ), ID_POPUP_MOVE3D_RIGHT, WXK_RIGHT ); static EDA_HOTKEY Hk3D_MoveUp( _HKI( "Move board Up" ), ID_POPUP_MOVE3D_UP, WXK_UP ); static EDA_HOTKEY Hk3D_MoveDown( _HKI( "Move board Down" ), ID_POPUP_MOVE3D_DOWN, WXK_DOWN ); static EDA_HOTKEY Hk3D_HomeView( _HKI( "Home view" ), 0, WXK_HOME ); static EDA_HOTKEY Hk3D_ResetView( _HKI( "Reset view" ), 0, 'R' ); static EDA_HOTKEY Hk3D_ViewFront( _HKI( "View Front" ), ID_POPUP_VIEW_YPOS, 'Y' ); static EDA_HOTKEY Hk3D_ViewBack( _HKI( "View Back" ), ID_POPUP_VIEW_YNEG, GR_KB_SHIFT + 'Y' ); static EDA_HOTKEY Hk3D_ViewLeft( _HKI( "View Left" ), ID_POPUP_VIEW_XNEG, GR_KB_SHIFT + 'X' ); static EDA_HOTKEY Hk3D_ViewRight( _HKI( "View Right" ), ID_POPUP_VIEW_XPOS, 'X' ); static EDA_HOTKEY Hk3D_ViewTop( _HKI( "View Top" ), ID_POPUP_VIEW_ZPOS, 'Z' ); static EDA_HOTKEY Hk3D_ViewBot( _HKI( "View Bot" ), ID_POPUP_VIEW_ZNEG, GR_KB_SHIFT + 'Z' ); static EDA_HOTKEY Hk3D_Rotate45axisZ( _HKI( "Rotate 45 degrees over Z axis" ), 0, WXK_TAB );
* ( For example, one cannot start a new wire when a component is moving.) * * Note: If an hotkey is a special key be sure the corresponding wxWidget * keycode (WXK_XXXX) is handled in the hotkey_name_descr * s_Hotkey_Name_List list (see hotkeys_basic.cpp) and see this list * for some ascii keys (space ...) * * Key modifier are: GR_KB_CTRL GR_KB_ALT */ // Common commands // Fit on Screen #if !defined( __WXMAC__ ) static EDA_HOTKEY HkZoomAuto( _HKI( "Fit on Screen" ), HK_ZOOM_AUTO, WXK_HOME, ID_ZOOM_PAGE ); #else static EDA_HOTKEY HkZoomAuto( _HKI( "Zoom Auto" ), HK_ZOOM_AUTO, GR_KB_CTRL + '0', ID_ZOOM_PAGE ); #endif static EDA_HOTKEY HkZoomCenter( _HKI( "Zoom Center" ), HK_ZOOM_CENTER, WXK_F4, ID_POPUP_ZOOM_CENTER ); // Refresh Screen #if !defined( __WXMAC__ ) static EDA_HOTKEY HkZoomRedraw( _HKI( "Zoom Redraw" ), HK_ZOOM_REDRAW, WXK_F3, ID_ZOOM_REDRAW ); #else static EDA_HOTKEY HkZoomRedraw( _HKI( "Zoom Redraw" ), HK_ZOOM_REDRAW, GR_KB_CTRL + 'R', ID_ZOOM_REDRAW ); #endif
* add the HkMyNewEntry pointer in the s_board_edit_Hotkey_List list ( or/and the * s_module_edit_Hotkey_List list) * Add the new code in the switch in OnHotKey() function. * Note: when the variable itemCurrentlyEdited is true, an item is currently edited. * This can be useful if the new function cannot be executed while an item is currently * being edited ( For example, one cannot start a new wire when a component is moving.) * * Note: If a hotkey is a special key, be sure the corresponding wxWidget keycode (WXK_XXXX) * is handled in the hotkey_name_descr s_Hotkey_Name_List list (see hotkeys_basic.cpp) * and see this list for some ascii keys (space ...) */ // Hotkey list: // mouse click command: static EDA_HOTKEY HkMouseLeftClick( _HKI( "Mouse Left Click" ), HK_LEFT_CLICK, WXK_RETURN, 0 ); static EDA_HOTKEY HkMouseLeftDClick( _HKI( "Mouse Left Double Click" ), HK_LEFT_DCLICK, WXK_END, 0 ); static EDA_HOTKEY HkSwitch2CopperLayer( _HKI( "Switch to Copper (B.Cu) layer" ), HK_SWITCH_LAYER_TO_COPPER, WXK_PAGEDOWN ); static EDA_HOTKEY HkSwitch2ComponentLayer( _HKI( "Switch to Component (F.Cu) layer" ), HK_SWITCH_LAYER_TO_COMPONENT, WXK_PAGEUP ); static EDA_HOTKEY HkSwitch2InnerLayer1( _HKI( "Switch to Inner layer 1" ), HK_SWITCH_LAYER_TO_INNER1, WXK_F5 ); static EDA_HOTKEY HkSwitch2InnerLayer2( _HKI( "Switch to Inner layer 2" ), HK_SWITCH_LAYER_TO_INNER2, WXK_F6 ); static EDA_HOTKEY HkSwitch2InnerLayer3( _HKI( "Switch to Inner layer 3" ),
HK_RUN_FPEDITOR, HK_RUN_GERBVIEW, HK_RUN_BM2COMPONENT, HK_RUN_PCBCALCULATOR, HK_RUN_PLEDITOR }; ///////////// Hotkeys management /////////////////////////////////////// // Remark: the hotkey message info is used as keyword in hotkey config files and // as comments in help windows, therefore translated only when displayed // they are marked _HKI to be extracted by translation tools // See hotkeys_basic.h for more info // hotkeys command: static EDA_HOTKEY HkHelp( _HKI( "Help (this window)" ), HK_HELP, '?' ); static EDA_HOTKEY HkLoadPrj( _HKI( "Load project" ), HK_LOAD_PROJECT, 'O' + GR_KB_CTRL ); static EDA_HOTKEY HkSavePrj( _HKI( "Save project" ), HK_SAVE_PROJECT, 'S' + GR_KB_CTRL ); static EDA_HOTKEY HkNewProject( _HKI( "New Project" ), HK_NEW_PRJ, 'N' + GR_KB_CTRL ); static EDA_HOTKEY HkNewPrjFromTemplate( _HKI( "New Prj From Template" ), HK_NEW_PRJ_TEMPLATE, 'T' + GR_KB_CTRL ); static EDA_HOTKEY HkRunEeschema( _HKI( "Run Eeschema" ), HK_RUN_EESCHEMA, 'E' + GR_KB_CTRL, 0 ); static EDA_HOTKEY HkRunLibedit( _HKI( "Run LibEdit" ), HK_RUN_LIBEDIT, 'L' + GR_KB_CTRL, 0 ); static EDA_HOTKEY HkRunPcbnew( _HKI( "Run Pcbnew" ), HK_RUN_PCBNEW, 'P' + GR_KB_CTRL, 0 ); static EDA_HOTKEY HkRunModedit( _HKI( "Run FpEditor" ), HK_RUN_FPEDITOR, 'F' + GR_KB_CTRL, 0 ); static EDA_HOTKEY HkRunGerbview( _HKI( "Run Gerbview" ), HK_RUN_GERBVIEW, 'G' + GR_KB_CTRL, 0 ); static EDA_HOTKEY HkRunBm2Cmp( _HKI( "Run Bitmap2Component" ), HK_RUN_BM2COMPONENT, 'B' + GR_KB_CTRL, 0 ); static EDA_HOTKEY HkRunPcbCalc( _HKI( "Run PcbCalculator" ), HK_RUN_PCBCALCULATOR, 'A' + GR_KB_CTRL, 0 );
* hotkey list file * 'MY_NEW_ID_FUNCTION' is the id event function used in the switch in OnHotKey() function. * 'Default key value' is the default hotkey for this command. * Can be overrided by the user hotkey list * Add the 'HkMyNewEntry' pointer in the s_PlEditor_Hotkey_List list * Add the new code in the switch in OnHotKey() function. * * Note: If an hotkey is a special key, be sure the corresponding wxWidget keycode (WXK_XXXX) * is handled in the hotkey_name_descr s_Hotkey_Name_List list (see hotkeys_basic.cpp) * and see this list for some ascii keys (space ...) */ // Hotkey list: // mouse click command: static EDA_HOTKEY HkMouseLeftClick( _HKI( "Mouse Left Click" ), HK_LEFT_CLICK, WXK_RETURN, 0 ); static EDA_HOTKEY HkMouseLeftDClick( _HKI( "Mouse Left Double Click" ), HK_LEFT_DCLICK, WXK_END, 0 ); static EDA_HOTKEY HkResetLocalCoord( _HKI( "Reset Local Coordinates" ), HK_RESET_LOCAL_COORD, ' ' ); static EDA_HOTKEY HkZoomAuto( _HKI( "Zoom Auto" ), HK_ZOOM_AUTO, WXK_HOME, ID_ZOOM_PAGE ); static EDA_HOTKEY HkZoomCenter( _HKI( "Zoom Center" ), HK_ZOOM_CENTER, WXK_F4, ID_POPUP_ZOOM_CENTER ); static EDA_HOTKEY HkZoomRedraw( _HKI( "Zoom Redraw" ), HK_ZOOM_REDRAW, WXK_F3, ID_ZOOM_REDRAW ); static EDA_HOTKEY HkZoomOut( _HKI( "Zoom Out" ), HK_ZOOM_OUT, WXK_F2, ID_POPUP_ZOOM_OUT ); static EDA_HOTKEY HkZoomIn( _HKI( "Zoom In" ), HK_ZOOM_IN, WXK_F1, ID_POPUP_ZOOM_IN ); static EDA_HOTKEY HkHelp( _HKI( "Help (this window)" ), HK_HELP, '?' ); static EDA_HOTKEY HkMoveItem( _HKI( "Move Item" ), HK_MOVE_ITEM, 'M', ID_POPUP_ITEM_MOVE ); static EDA_HOTKEY HkPlaceItem( _HKI( "Place Item" ), HK_PLACE_ITEM, 'P', ID_POPUP_ITEM_PLACE ); static EDA_HOTKEY HkMoveStartPoint( _HKI( "Move Start Point" ), HK_MOVE_START_POINT, 'S', ID_POPUP_ITEM_MOVE_START_POINT );