KiCad PCB EDA Suite
id.h File Reference
#include <wx/defs.h>

Go to the source code of this file.

Macros

#define ROOM_FOR_KICADMANAGER   50
 Common command IDs shared by more than one of the KiCad applications. More...
 
#define ROOM_FOR_3D_VIEWER   100
 
#define ROOM_FOR_PANEL_PREV_MODEL   50
 
#define DEFAULT_FILE_HISTORY_SIZE   9
 IDs range for menuitems file history: The default range file history size is 9 (compatible with default wxWidget range). More...
 
#define MAX_FILE_HISTORY_SIZE   99
 

Enumerations

enum  main_id {
  ID_RUN_PCB = wxID_HIGHEST, ID_APPEND_PROJECT, ID_SAVE_PROJECT, ID_LOAD_FILE,
  ID_NEW_BOARD, ID_SAVE_BOARD, ID_SAVE_BOARD_AS, ID_AUTO_SAVE_TIMER,
  ID_FILE, ID_FILE1, ID_FILEMAX = ID_FILE + MAX_FILE_HISTORY_SIZE, ID_FILE_LIST_EMPTY,
  ID_FILE_LIST_CLEAR, ID_PREFERENCES_HOTKEY_SHOW_CURRENT_LIST, ID_PREFERENCES_CONFIGURE_PATHS, ID_EDIT_SYMBOL_LIBRARY_TABLE,
  ID_EDIT_FOOTPRINT_LIBRARY_TABLE, ID_GEN_PLOT, ID_GEN_PLOT_PS, ID_GEN_PLOT_HPGL,
  ID_GEN_PLOT_GERBER, ID_GEN_PLOT_SVG, ID_GEN_PLOT_DXF, ID_GEN_PLOT_PDF,
  ID_GEN_EXPORT_FILE, ID_GEN_IMPORT_FILE, ID_OPTIONS_SETUP, ID_H_TOOLBAR,
  ID_V_TOOLBAR, ID_OPT_TOOLBAR, ID_AUX_TOOLBAR, ID_EDIT_HOTKEY,
  ID_NO_TOOL_SELECTED, ID_LANGUAGE_CHOICE, ID_LANGUAGE_DEFAULT, ID_LANGUAGE_ENGLISH,
  ID_LANGUAGE_FRENCH, ID_LANGUAGE_FINNISH, ID_LANGUAGE_SPANISH, ID_LANGUAGE_GERMAN,
  ID_LANGUAGE_GREEK, ID_LANGUAGE_RUSSIAN, ID_LANGUAGE_PORTUGUESE, ID_LANGUAGE_ITALIAN,
  ID_LANGUAGE_SLOVENIAN, ID_LANGUAGE_SLOVAK, ID_LANGUAGE_HUNGARIAN, ID_LANGUAGE_POLISH,
  ID_LANGUAGE_CZECH, ID_LANGUAGE_KOREAN, ID_LANGUAGE_CATALAN, ID_LANGUAGE_CHINESE_SIMPLIFIED,
  ID_LANGUAGE_CHINESE_TRADITIONAL, ID_LANGUAGE_DUTCH, ID_LANGUAGE_JAPANESE, ID_LANGUAGE_BULGARIAN,
  ID_LANGUAGE_LITHUANIAN, ID_LANGUAGE_CHOICE_END, ID_ON_ZOOM_SELECT, ID_POPUP_ZOOM_START_RANGE,
  ID_POPUP_CANCEL, ID_POPUP_ZOOM_IN, ID_POPUP_ZOOM_OUT, ID_POPUP_ZOOM_SELECT,
  ID_POPUP_ZOOM_CENTER, ID_POPUP_ZOOM_PAGE, ID_POPUP_ZOOM_REDRAW, ID_POPUP_ZOOM_LEVEL_START,
  ID_POPUP_ZOOM_LEVEL_END = ID_POPUP_ZOOM_LEVEL_START + 32, ID_POPUP_ZOOM_END_RANGE, ID_ON_GRID_SELECT, ID_POPUP_GRID_SELECT,
  ID_POPUP_GRID_FIRST, ID_POPUP_GRID_LEVEL_1000 = ID_POPUP_GRID_FIRST, ID_POPUP_GRID_LEVEL_500, ID_POPUP_GRID_LEVEL_250,
  ID_POPUP_GRID_LEVEL_200, ID_POPUP_GRID_LEVEL_100, ID_POPUP_GRID_LEVEL_50, ID_POPUP_GRID_LEVEL_25,
  ID_POPUP_GRID_LEVEL_20, ID_POPUP_GRID_LEVEL_10, ID_POPUP_GRID_LEVEL_5, ID_POPUP_GRID_LEVEL_2,
  ID_POPUP_GRID_LEVEL_1, ID_POPUP_GRID_LEVEL_5MM, ID_POPUP_GRID_LEVEL_2_5MM, ID_POPUP_GRID_LEVEL_1MM,
  ID_POPUP_GRID_LEVEL_0_5MM, ID_POPUP_GRID_LEVEL_0_25MM, ID_POPUP_GRID_LEVEL_0_2MM, ID_POPUP_GRID_LEVEL_0_1MM,
  ID_POPUP_GRID_LEVEL_0_0_5MM, ID_POPUP_GRID_LEVEL_0_0_25MM, ID_POPUP_GRID_LEVEL_0_0_1MM, ID_POPUP_GRID_USER,
  ID_POPUP_GRID_SEPARATOR, ID_POPUP_GRID_SETTINGS, ID_GRID_SETTINGS, ID_ZOOM_BEGIN,
  ID_VIEWER_ZOOM_IN = ID_ZOOM_BEGIN, ID_VIEWER_ZOOM_OUT, ID_VIEWER_ZOOM_PAGE, ID_VIEWER_ZOOM_REDRAW,
  ID_OFFCENTER_ZOOM_IN, ID_OFFCENTER_ZOOM_OUT, ID_ZOOM_END, ID_EDA_SOCKET_EVENT_SERV,
  ID_EDA_SOCKET_EVENT, ID_TB_OPTIONS_SHOW_MODULE_TEXT_SKETCH, ID_TB_OPTIONS_SHOW_MODULE_EDGE_SKETCH, ID_TB_OPTIONS_SHOW_GRAPHIC_SKETCH,
  ID_TB_OPTIONS_SHOW_PADS_SKETCH, ID_DIALOG_ERC, ID_KICAD_MANAGER_START, ID_KICAD_MANAGER_END = ID_KICAD_MANAGER_START + ROOM_FOR_KICADMANAGER,
  ID_KICAD_3D_VIEWER_START, ID_KICAD_3D_VIEWER_END = ID_KICAD_3D_VIEWER_START + ROOM_FOR_3D_VIEWER, ID_KICAD_PANEL_PREV_MODEL_START, ID_KICAD_PANEL_PREV_MODEL_END = ID_KICAD_PANEL_PREV_MODEL_START + ROOM_FOR_PANEL_PREV_MODEL,
  ID_POPUP_MENU_START, ID_POPUP_MENU_END = ID_POPUP_MENU_START + 1000, ID_END_LIST
}
 

Macro Definition Documentation

◆ DEFAULT_FILE_HISTORY_SIZE

#define DEFAULT_FILE_HISTORY_SIZE   9

IDs range for menuitems file history: The default range file history size is 9 (compatible with default wxWidget range).

Definition at line 69 of file id.h.

◆ MAX_FILE_HISTORY_SIZE

#define MAX_FILE_HISTORY_SIZE   99

Definition at line 70 of file id.h.

◆ ROOM_FOR_3D_VIEWER

#define ROOM_FOR_3D_VIEWER   100

Definition at line 63 of file id.h.

◆ ROOM_FOR_KICADMANAGER

#define ROOM_FOR_KICADMANAGER   50

Common command IDs shared by more than one of the KiCad applications.

Only place command IDs used in base window class event tables or shared across multple applications such as the zoom, grid, and language IDs. Application specific IDs should be defined in the appropriate header file to prevent the entire project from being rebuilt.

However, we must avoid duplicate IDs in menus and toolbar items, when wxUpdateUIEvent are associated to menuitems and/or toolbar items The reason is the fact wxWidgets try to send a wxUpdateUIEvent event to a given window and, if a wxUpdateUIEvent event function is not defined for a menuitem, wxWidgets propagates this event ID to parents of the given window. Therefore duplicate IDs could create strange behavior in menus and subtle bugs, depending on the code inside the wxUpdateUIEvent event functions called in parent frames. I did not seen this propagation to child frames, only to parent frames

Issues exist only if 2 menus have the same ID, and only one menu is associated to a wxUpdateUIEvent event, and this one is defined in a parent Window. The probability it happens is low, but not null.

Therefore we reserve room in ID list for each sub application. Please, change these values if needed

Definition at line 62 of file id.h.

◆ ROOM_FOR_PANEL_PREV_MODEL

#define ROOM_FOR_PANEL_PREV_MODEL   50

Definition at line 64 of file id.h.

Enumeration Type Documentation

◆ main_id

enum main_id
Enumerator
ID_RUN_PCB 
ID_APPEND_PROJECT 
ID_SAVE_PROJECT 
ID_LOAD_FILE 
ID_NEW_BOARD 
ID_SAVE_BOARD 
ID_SAVE_BOARD_AS 
ID_AUTO_SAVE_TIMER 
ID_FILE 
ID_FILE1 
ID_FILEMAX 
ID_FILE_LIST_EMPTY 
ID_FILE_LIST_CLEAR 
ID_PREFERENCES_HOTKEY_SHOW_CURRENT_LIST 
ID_PREFERENCES_CONFIGURE_PATHS 
ID_EDIT_SYMBOL_LIBRARY_TABLE 
ID_EDIT_FOOTPRINT_LIBRARY_TABLE 
ID_GEN_PLOT 
ID_GEN_PLOT_PS 
ID_GEN_PLOT_HPGL 
ID_GEN_PLOT_GERBER 
ID_GEN_PLOT_SVG 
ID_GEN_PLOT_DXF 
ID_GEN_PLOT_PDF 
ID_GEN_EXPORT_FILE 
ID_GEN_IMPORT_FILE 
ID_OPTIONS_SETUP 
ID_H_TOOLBAR 
ID_V_TOOLBAR 
ID_OPT_TOOLBAR 
ID_AUX_TOOLBAR 
ID_EDIT_HOTKEY 
ID_NO_TOOL_SELECTED 
ID_LANGUAGE_CHOICE 
ID_LANGUAGE_DEFAULT 
ID_LANGUAGE_ENGLISH 
ID_LANGUAGE_FRENCH 
ID_LANGUAGE_FINNISH 
ID_LANGUAGE_SPANISH 
ID_LANGUAGE_GERMAN 
ID_LANGUAGE_GREEK 
ID_LANGUAGE_RUSSIAN 
ID_LANGUAGE_PORTUGUESE 
ID_LANGUAGE_ITALIAN 
ID_LANGUAGE_SLOVENIAN 
ID_LANGUAGE_SLOVAK 
ID_LANGUAGE_HUNGARIAN 
ID_LANGUAGE_POLISH 
ID_LANGUAGE_CZECH 
ID_LANGUAGE_KOREAN 
ID_LANGUAGE_CATALAN 
ID_LANGUAGE_CHINESE_SIMPLIFIED 
ID_LANGUAGE_CHINESE_TRADITIONAL 
ID_LANGUAGE_DUTCH 
ID_LANGUAGE_JAPANESE 
ID_LANGUAGE_BULGARIAN 
ID_LANGUAGE_LITHUANIAN 
ID_LANGUAGE_CHOICE_END 
ID_ON_ZOOM_SELECT 
ID_POPUP_ZOOM_START_RANGE 
ID_POPUP_CANCEL 
ID_POPUP_ZOOM_IN 
ID_POPUP_ZOOM_OUT 
ID_POPUP_ZOOM_SELECT 
ID_POPUP_ZOOM_CENTER 
ID_POPUP_ZOOM_PAGE 
ID_POPUP_ZOOM_REDRAW 
ID_POPUP_ZOOM_LEVEL_START 
ID_POPUP_ZOOM_LEVEL_END 
ID_POPUP_ZOOM_END_RANGE 
ID_ON_GRID_SELECT 
ID_POPUP_GRID_SELECT 
ID_POPUP_GRID_FIRST 
ID_POPUP_GRID_LEVEL_1000 
ID_POPUP_GRID_LEVEL_500 
ID_POPUP_GRID_LEVEL_250 
ID_POPUP_GRID_LEVEL_200 
ID_POPUP_GRID_LEVEL_100 
ID_POPUP_GRID_LEVEL_50 
ID_POPUP_GRID_LEVEL_25 
ID_POPUP_GRID_LEVEL_20 
ID_POPUP_GRID_LEVEL_10 
ID_POPUP_GRID_LEVEL_5 
ID_POPUP_GRID_LEVEL_2 
ID_POPUP_GRID_LEVEL_1 
ID_POPUP_GRID_LEVEL_5MM 
ID_POPUP_GRID_LEVEL_2_5MM 
ID_POPUP_GRID_LEVEL_1MM 
ID_POPUP_GRID_LEVEL_0_5MM 
ID_POPUP_GRID_LEVEL_0_25MM 
ID_POPUP_GRID_LEVEL_0_2MM 
ID_POPUP_GRID_LEVEL_0_1MM 
ID_POPUP_GRID_LEVEL_0_0_5MM 
ID_POPUP_GRID_LEVEL_0_0_25MM 
ID_POPUP_GRID_LEVEL_0_0_1MM 
ID_POPUP_GRID_USER 
ID_POPUP_GRID_SEPARATOR 
ID_POPUP_GRID_SETTINGS 
ID_GRID_SETTINGS 
ID_ZOOM_BEGIN 
ID_VIEWER_ZOOM_IN 
ID_VIEWER_ZOOM_OUT 
ID_VIEWER_ZOOM_PAGE 
ID_VIEWER_ZOOM_REDRAW 
ID_OFFCENTER_ZOOM_IN 
ID_OFFCENTER_ZOOM_OUT 
ID_ZOOM_END 
ID_EDA_SOCKET_EVENT_SERV 
ID_EDA_SOCKET_EVENT 
ID_TB_OPTIONS_SHOW_MODULE_TEXT_SKETCH 
ID_TB_OPTIONS_SHOW_MODULE_EDGE_SKETCH 
ID_TB_OPTIONS_SHOW_GRAPHIC_SKETCH 
ID_TB_OPTIONS_SHOW_PADS_SKETCH 
ID_DIALOG_ERC 

eeschema ERC modeless dialog ID

ID_KICAD_MANAGER_START 
ID_KICAD_MANAGER_END 
ID_KICAD_3D_VIEWER_START 
ID_KICAD_3D_VIEWER_END 
ID_KICAD_PANEL_PREV_MODEL_START 
ID_KICAD_PANEL_PREV_MODEL_END 
ID_POPUP_MENU_START 
ID_POPUP_MENU_END 
ID_END_LIST 

Definition at line 72 of file id.h.

73 {
74  ID_RUN_PCB = wxID_HIGHEST,
75 
83 
84  // ID for menuitems used in our file history management,
85  // when we do not use wxFILE_ID (restricted to 9 items)
86  ID_FILE,
87  ID_FILE1,
91 
96 
104 
107 
109 
110  // id for toolbars
111  ID_H_TOOLBAR,
112  ID_V_TOOLBAR,
115 
118 
144 
145  // Popup Menu (mouse Right button) (id consecutifs)
146 
148  ID_POPUP_ZOOM_START_RANGE, // first zoom id
156 
157  /* Reserve IDs for popup menu zoom levels. If you need more
158  * levels of zoom, change ID_POPUP_ZOOM_LEVEL_END. Note that more
159  * than 15 entries in a context submenu may get too large to display
160  * cleanly. Add any additional popup zoom IDs above here or the
161  * zoom event handler will not work properly.
162  * currently room is provided for 32 levels (this is a very large value).
163  * Pcbnew use 18 values. For schematic 15 is enought
164  */
167  ID_POPUP_ZOOM_END_RANGE, // last zoom id
168 
172  ID_POPUP_GRID_LEVEL_1000 = ID_POPUP_GRID_FIRST, // These must be in same order as menu
197 
199 
205  // zoom commands for non center zooming
208  ID_ZOOM_END,
209 
210 
213 
214  // Common to Pcbnew and CvPcb
219 
220  ID_DIALOG_ERC,
221 
222  // IDs specifics to a sub-application (Eeschema, Kicad manager....) start here
223  //
224  // We reserve here Ids for each sub-application, to avoid duplicate IDs
225  // between them.
226  // mainly we experienced issues related to wxUpdateUIEvent calls when 2 (or more) wxFrames
227  // share the same ID in menus, mainly in menubars/toolbars
228  // The reason is the fact wxWidgets propagates the wxUpdateUIEvent to all parent windows
229  // to find wxUpdateUIEvent event functions matching the menuitem IDs found when activate a
230  // menu in the first frame.
231 
232  // Reserve ROOM_FOR_KICADMANAGER IDs, for Kicad manager
233  // Change it if this count is too small.
236 
237  // Reserve ROOM_FOR_KICADMANAGER IDs, for Kicad manager
238  // Change it if this count is too small.
241 
244 
245  // Reseve ID for popup menus, when we need to know a menu item is inside a popup menu
248 
250 };
#define ROOM_FOR_PANEL_PREV_MODEL
Definition: id.h:64
#define ROOM_FOR_3D_VIEWER
Definition: id.h:63
Definition: id.h:88
Definition: id.h:74
#define ROOM_FOR_KICADMANAGER
Common command IDs shared by more than one of the KiCad applications.
Definition: id.h:62
Definition: id.h:86
eeschema ERC modeless dialog ID
Definition: id.h:220
#define MAX_FILE_HISTORY_SIZE
Definition: id.h:70
Definition: id.h:97
Definition: id.h:87