Why Gemfury? Push, build, and install  RubyGems npm packages Python packages Maven artifacts PHP packages Go Modules Debian packages RPM packages NuGet packages

Repository URL to install this package:

Details    
idapro / opt / ida90 / libexec / idapro / cfg / idagui.cfg
Size: Mime:

//      Config file for the graphical mode user interface
//      *************************************************

AUTOSAVE                = 100           // After 100 user actions
                                        // IDA flushes its buffers to disk

ASK_EXIT_UNPACKED       = YES           // Ask confirmation if the user
                                        // wants to exit the database without
                                        // packing it

ASK_EXIT                = YES           // Ask confirmation if the user
                                        // wants to exit

OPEN_DEFAULT_IDC_PATH   = NO            // YES: The dialog box to select an
                                        //      IDC script always starts in
                                        //      the IDC subdirectory
                                        // NO:  The dialog box opens in the
                                        //      current/last directory

DISPLAY_COMMAND_LINE     = YES          // Display the expressions/IDC command line
                                        // To turn on/off the command line,
                                        // right click on the main toolbar after
                                        // setting this parameter to YES

RECENT_SCRIPTS_MODAL    = NO            // Open "Recent scripts" window as a modal window

#define CONFIRM_UNDEFINE_NO     -1      // Never confirm
#define CONFIRM_UNDEFINE_YES     0      // Always confirm
#define CONFIRM_UNDEFINE_BLOCK   1      // Confirm only if an area has been selected

CONFIRM_UNDEFINE_COMMAND = CONFIRM_UNDEFINE_NO  // Confirm the "undefine" command
CONFIRM_SETFUNCEND_COMMAND = NO         // Confirm the "set function end" command (E hotkey)

CONFIRM_DETACH_FUNC_TAIL = NO           // Confirm the "detach this function tail" command
CONFIRM_DELETE_SELECTED_FUNCS = NO      // Confirm the "delete selected function(s)" command

HISTORY_LENGTH          =       10      // Maximum length of file->history
                                        // Possible value is from 1 to 100

#ifdef __QT__

#ifdef __NT__
EXTERNAL_EDITOR         =       "notepad.exe"
#endif
#ifdef __LINUX__
EXTERNAL_EDITOR         =       "gedit"
#endif
#ifdef __MAC__
EXTERNAL_EDITOR         =       "/Applications/TextEdit.app/Contents/MacOS/TextEdit"
#endif

#endif


#ifdef __QT__
// 1=YES and 0=NO overwrite the default (-1) behavior for individual dialogs
ASK_TEXT_ACCEPTS_TABS    =       -1
#endif

// Built-in window ids
#define BWN_EXPORTS 0x00000001 // exports
#define BWN_IMPORTS 0x00000002 // imports
#define BWN_NAMES   0x00000004 // names
#define BWN_FUNCS   0x00000008 // functions
#define BWN_STRINGS 0x00000010 // strings
#define BWN_SEGS    0x00000020 // segments
#define BWN_SEGREGS 0x00000040 // segment registers
#define BWN_SELS    0x00000080 // selectors
#define BWN_SIGNS   0x00000100 // signatures
#define BWN_TILS    0x00000200 // type libraries
#define BWN_TILVIEW 0x00000400 // local types
#define BWN_CALLS   0x00000800 // function calls
#define BWN_PROBS   0x00001000 // problems
#define BWN_BPTS    0x00002000 // breakpoints
#define BWN_THREADS 0x00004000 // threads
#define BWN_MODULES 0x00008000 // modules
#define BWN_TRACE   0x00010000 // trace view
#define BWN_STACK   0x00020000 // call stack trace
#define BWN_XREFS   0x00040000 // xrefs
#define BWN_SEARCHS 0x00080000 // search results
#define BWN_FRAME   0x02000000 // function frame
#define BWN_NAVBAND 0x04000000 // navigation band
#define BWN_ENUMS   0x08000000 // enumerations
#define BWN_STRUCTS 0x10000000 // structures
#define BWN_DISASMS 0x20000000 // disassembly views
#define BWN_DUMPS   0x40000000 // hex dumps
#define BWN_NOTEPAD 0x80000000 // notepad

CLOSED_BY_ESC           = 0x1A000000    // Mask of all windows that are closed by Esc.
                                        // If a windows is not closed by Esc,
                                        // it can be closed by Alt-F3.
                                        // default value 0x1A000000 - stack, enumerations, structures
                                        // f.e. 0x9A0FFFFF - all windows but disasm/hexdump/navband can be closed by Esc)

#ifdef __QT__
OTHER_CLOSED_BY_ESC             = YES // Behavior for all windows not specified by CLOSED_BY_ESC
TOOL_CLOSED_BY_ESC              = NO  // Behavior for tool windows like the Output window

// Don't generate disassembly node lines, when a node's visible range
// of addresses is larger than the following value.
// Note: if parts of that node are hidden (using 'hidden range's), those
// hidden ranges will be subtracted to the range that's being computed
// to determine whether the node should display its text (thus, contents
// of large nodes might still be displayed if some parts of it are hidden.)
DISASM_NODE_MAX_VISIBLE_RANGE   = 64000

PROXIMITY_SHOW_DATA_REFS        = YES // Display xrefs to data in proximity view?
PROXIMITY_HIDE_LIBRARIES        = NO  // Hide library functions in proximity view?
PROXIMITY_UNLIMITED_RECURSION   = NO  // Unlimited child recursion in proximity view?
PROXIMITY_RECURSE_LIBRARIES     = NO  // Show childs of library functions in proximity view?
PROXIMITY_SHOW_COLLAPSED_NODES  = YES // Show collapsed parent/children (i.e., '+') nodes in proximity view?
PROXIMITY_MAX_PARENTS_RECURSION = 2   // Maximum level of parents recursion
PROXIMITY_MAX_CHILDS_RECURSION  = 2   // Maximum level of childs recursion
PROXIMITY_MAX_NODES_PER_LEVEL   = 0   // Maximum number of nodes to show per level

// If set to NO, calling msg() causes a refresh of the output window at every call
MSG_DELAYED_UPDATE              = YES
// Specify the limit for lines in the output window (0 - unlimited)
MSG_MAXIMUM_LINE_COUNT = 10000
// Specify the percentage of the number of lines for cleaning when the limit is reached
MSG_LINE_CLEAN_PERCENT = 10

// By default, IDA uses the native OS file input dialogs.
// Uncomment the following to use Qt's implementation.
// NATIVE_FILE_DIALOG              = NO

// Restore modal dialogs size/position when re-opening them?
RESTORE_DIALOGS_GEOMETRIES = YES

// Many actions in IDA have an associated icon, which will be
// displayed when the action is placed in a menu or a toolbar.
// While that can be considered helpful since it provides a visual
// hint, it (seems it) doesn't conform to the OSX UI guidelines:
// most applications hardly use icons in menus, ever.
// If you would like IDA to look more like other applications
// on OSX, set this to 'NO'.
SHOW_ICONS_IN_MENUS = YES

// Time in milliseconds to wait for new debugger events
DEBUG_EVENT_TIMEOUT = 50

// This can set global source path mappings.
// However, they will be discarded in case the IDB has its own mappings
// SOURCE_DEBUG_PATHS="C:\\src_dir1;C:\\dst_dir1;C:\\src_dir2;C:\\dst_dir2"

// Should the navigation band always show gaps between segments,
// even when addresses are contiguous?
NAVBAND_FORCE_GAPS = NO

#else
TAB_STYLE               = "Themed"      // One of Default, Enhanced, Flat, OfficeXP, Standard, Themed, VS2005
#endif

SCREEN_CURSOR           = 0             // = 0 normal cursor
                                        // = 1 block cursor

TLM_FLUSH_TIMEOUT = 60000 // milliseconds
TLM_FLUSH_EVCNT = 64

//
//      Keyboard hotkey definitions
//      ---------------------------
//

// NOTE: `sys(<standard qt key sequence name>)` will use the appropriate Qt Standard KeySequence
//

SHORTCUTS = {
  "legacy" : {
#ifdef __QT__
    "NewInstance": [0], // Open a new instance of IDA
#endif
    "ReloadFile": [0], // Reload the same input file
    "LoadNewFile": [0], // Load additional file into database
    "LoadIdsFile": [0], // Load IDS file
    "LoadDbgFile": [0], // Load DBG file
    "LoadPdbFile": [0], // Load PDB file
    "LoadTdsFile": [0], // Load TDS file
    "LoadSigFile": [0], // Load SIG file
    "LoadHeaderFile": ["Ctrl-F9"], // Load C header file
    "RecentScripts": ["Alt-F9"], // Recent scripts
    "RecentScriptsRunCurrent": [0], // Recent scripts, run current
    "Execute": ["Alt-F7"], // Execute script file
    "ExecuteLine": ["Shift-F2"], // Execute IDC line
    "About": [0],
    "SaveBase": ["Ctrl-W"],
    "SaveBaseAs": [0],
#ifdef __QT__
    "SaveBaseSnap": ["Ctrl-Shift-W"], // Save database snapshot
#endif
    "Abort": [0], // Abort IDA, don't save changes
    "QuitIDA": ["Alt-X"], // Quit to DOS, save changes
#ifdef __QT__
    "QuickStart": [0],
#endif
    "ReanalyzeProgram": [0], // Reanalyze the program
    "ProduceMap": [0], // Produce MAP file
    "ProduceAsm": ["Alt-F10"], // Produce assembler text file
    "ProduceInc": [0], // Produce assembler include file
    "ProduceLst": [0], // Produce listing file
    "ProduceHeader": [0], // Produce header file from local types
    "ProduceExe": [0], // Produce executable file
    "ProduceDiff": [0], // Produce difference file
    "ProduceHtml": [0], // Produce HTML file
    "ProduceFuncGdl": [0], // Produce flow chart GDL
    "ProduceCallGdl": [0], // Produce call graph GDL
    "DumpDatabase": [0], // Dump database to IDC file
                         // This IDC file contains all
                         // information to recreate
                         // the database from scratch
                         // (executable file will be
                         //  needed)
    "DumpTypes": [0], // Dump typeinfo to IDC file
    "JumpAsk": ["G"],
    "JumpName": ["Ctrl-L"],
    "JumpSegment": ["Ctrl-S"],
    "JumpSegmentRegister": ["Ctrl-G"],
    "JumpQ": ["Ctrl-Q"],
    "JumpPosition": ["Ctrl-M"],
    "JumpXref": ["Ctrl-X"],
    "JumpXrefFrom": ["Ctrl-J"],
    "JumpOpXref": ["X"],
    "JumpFunction": ["Ctrl-P"],
    "JumpNextFunc": ["Ctrl-Shift-Down"],
    "JumpPrevFunc": ["Ctrl-Shift-Up"],
    "JumpEntryPoint": ["Ctrl-E"],
    "JumpFileOffset": [0],
    "JumpError": ["Ctrl-F"],
    "JumpEnter": ["Enter"], // jump to address under cursor
    "JumpEnterNew": ["Alt-Enter"], // jump to address under cursor
                                   // in a new window
    "CenterInWindow": ["NumpadClear", "Clear", "Ctrl-Shift-C"],
    "Return": ["Esc"],
    "UndoReturn": ["Ctrl-Enter"], // undo the last Esc
    "EmptyStack": [0], // make the jumps stack empty
    "SetDirection": [0],
    "MarkPosition": ["Alt-M"],
    "FindAllSuspicious": [0],
    "JumpSuspicious": ["Ctrl-V"],
    "JumpCode": ["Alt-C"],
    "JumpData": ["Ctrl-D"],
    "JumpUnknown": ["Ctrl-U"],
    "JumpExplored": ["Ctrl-A"],
    "AskNextImmediate": ["Alt-I"],
    "JumpImmediate": ["Ctrl-I"],
    "AskNextText": ["Alt-T"],
    "JumpText": ["Ctrl-T"],
    "AskBinaryText": ["Alt-B"],
    "JumpBinaryText": ["Ctrl-B"],
    "JumpNotFunction": [0],
    "NavFlatPanUp": ["Ctrl-Up"],
    "NavFlatPanDown": ["Ctrl-Down"],
    "NavGraphJumpLinkedNeighborUp": ["Ctrl-Up"],
    "NavGraphJumpLinkedNeighborDown": ["Ctrl-Down"],
    "NavJumpWindowTop": ["Ctrl-Home", "Shift-Ctrl-Home"],
    "NavJumpWindowBottom": ["Ctrl-End", "Shift-Ctrl-End"],
    "NavJumpHome": ["Home", "Shift-Home"],
    "NavJumpEnd": ["End", "Shift-End"],
    "NavJumpListingStart": ["Ctrl-PgUp", "Shift-Ctrl-PgUp"],
    "NavJumpListingEnd": ["Ctrl-PgDown", "Shift-Ctrl-PgDown"],
    "NavLeft": ["Left", "Shift-Left"],
    "NavRight": ["Right", "Shift-Right"],
    "NavWordLeft": ["Ctrl-Left", "Shift-Ctrl-Left"],
    "NavWordRight": ["Ctrl-Right", "Shift-Ctrl-Right"],
    "NavLineUp": ["Up", "Shift-Up"],
    "NavLineDown": ["Down", "Shift-Down"],
    "NavPageUp": ["PgUp", "Shift-PgUp"],
    "NavPageDown": ["PgDown", "Shift-PgDown"],
    "HexColNavLeft": ["Alt-Left"],
    "HexColNavRight": ["Alt-Right"],
    "HexColNavHome": ["Alt-Home"],
    "HexColNavEnd": ["Alt-End"],
    "SearchHighlightUp": ["Alt-Up"],
    "SearchHighlightDown": ["Alt-Down"],
    "FindRegisterDefinition": ["Shift-Alt-Up"],
    "FindRegisterUse": ["Shift-Alt-Down"],
    "FindRegisterValue": ["Shift-Alt-V"],
    "OutputNavLeft": ["Left", "Shift-Left"],
    "OutputNavRight": ["Right", "Shift-Right"],
    "OutputNavWordLeft": ["Ctrl-Left", "Shift-Ctrl-Left"],
    "OutputNavWordRight": ["Ctrl-Right", "Shift-Ctrl-Right"],
    "OutputNavLineUp": ["Up", "Shift-Up"],
    "OutputNavLineDown": ["Down", "Shift-Down"],
    "OutputNavPageUp": ["PgUp", "Shift-PgUp"],
    "OutputNavPageDown": ["PgDown", "Shift-PgDown"],
    "OutputNavLineBeginning": ["Home", "Shift-Home"],
    "OutputNavLineEnd": ["End", "Shift-End"],
    "OutputCopy": ["Ctrl-C", "sys(Copy)"],
    "OutputSelectAll": ["Ctrl-A", "sys(SelectAll)"],
    "OutputClearContents": ["Ctrl-X"],
    "OutputFind": ["Alt-T"],
    "OutputFindNext": ["Ctrl-T"],
    "OutputSaveToFile": ["Ctrl-S"],
    "OutputNavBeginning": ["Ctrl-Home", "Shift-Ctrl-Home"],
    "OutputNavEnd": ["Ctrl-End", "Shift-Ctrl-End"],
    "OutputToggleTimestamps": [0],
    "NotepadFind": ["Alt-T"],
    "NotepadFindNext": ["Ctrl-T"],
    "UndoAction": ["sys(Undo)", "Ctrl-Z"],
    "RedoAction": ["sys(Redo)", "Ctrl-Shift-Z"],
    "UndoToggle": [0],
    "ResetUndoHistory": [0],
    "ShowUndoHistory": [0],
    "MakeAlignment": ["L"],
    "ManualInstruction": ["Alt-F2"],
    "ColorInstruction": [0],
    "ToggleBorder": [0],
    "ToggleRenderer": ["Space"],
    "MakeCode": ["C"],
    "MakeData": ["D"],
    "MakeStrlit": ["A"],
    "MakeArray": ["Numpad*", "*"],
    "MakeUnknown": ["U"],
    "MakeName": ["N"],
    "ManualOperand": ["Alt-F1"],
    "MakeFunction": ["P"],
    "EditFunction": ["Alt-P"],
    "AppendFunctionTail": [0],
    "RemoveFunctionTail": [0],
    "DelFunction": [0],
    "FunctionEnd": ["E"],
    "OpenStackVariables": ["Ctrl-K"], // open stack variables window
    "ChangeStackPointer": ["Alt-K"], // change value of SP
    "RenameRegister": ["V"],
    "SetType": ["Y"],
    "FunctionsToggleSync": [0],
    "MakeComment": [":"],
    "MakeRptCmt": [";"],
#ifdef __MAC__
    "TilAddType": ["Ctrl-I"],
#else
    "TilAddType": ["Ins"],
#endif
    "TilMakeComment": [":", ";", "/"],
    "TilFocusOther": ["Tab"],
    "TilEditType": ["Ctrl-E"],
    "TilExpandStruct": ["Ctrl-P"],
    "TilDelType": ["Del"],
    "TilDelTypeMember": ["U"],
    "TilAddTypeMember": ["I"],
    "TilCSyntax": [0],
    "TilInspectLib": [0],
    "FuncChangeCC" : [0],
    "EditArgloc": ["L"],
#ifdef __MAC__
    "MakeExtraLineA": ["I"],
    "MakeExtraLineB": ["Shift-I"],
#else
    "MakeExtraLineA": ["Ins"],
    "MakeExtraLineB": ["Shift-Ins"],
#endif
    "OpNumber": ["#"],
    "OpHex": ["Q"],
    "OpDecimal": ["H"],
    "OpOctal": [0],
    "OpBinary": ["B"],
    "ToggleLeadingZeroes": ["0"],
    "OpFloat": [0],
    "OpChar": ["R"],
    "OpSegment": ["S"],
    "OpOffset": ["O"],
    "OpOffsetCs": ["Ctrl-O"],
    "OpAnyOffset": ["Alt-R"],
    "OpUserOffset": ["Ctrl-R"],
    "OpStructOffset": ["T"],
    "OpStackVariable": ["K"],
    "OpEnum": ["M"],
    "ChangeSign": ["_"],
    "BitwiseNegate": ["~"],
    "SetOpType": [0],
    "CreateSegment": [0],
    "EditSegment": ["Alt-S"],
    "KillSegment": [0],
    "MoveSegment": [0],
    "RebaseProgram": [0],
    "SegmentTranslation": [0],
    "SetSegmentRegister": ["Alt-G"],
    "SetSegmentRegisterDefault": [0],
#ifdef __QT__
    "OutputWindow": ["Alt-0"],
    "GraphOverview": [0],
#endif
    "ShowRegisters": ["Ctrl-Space"],
#ifdef __QT__
    "QuickView": ["Ctrl-1"],
    "QuickRunPlugins": ["Ctrl-3"],
#endif
    "OpenNotepad": [0],
    "WindowOpen": [0],
    "OpenFunctions": ["Shift-F3"], // open functions window
    "OpenExports": [0],
    "OpenImports": [0],
    "OpenNames": ["Shift-F4"],
    "OpenSignatures": ["Shift-F5"], // open signatures window
    "OpenSegments": ["Shift-F7"],
    "OpenSegmentRegisters": ["Shift-F8"],
    "OpenSelectors": [0],
    "OpenXrefs": [0],
    "OpenProblems": [0],
    "OpenTypeLibraries": ["Shift-F11"],
    "GraphFunc": [0], // display function flow-chart
    "CallFlow": [0], // display function call graph
    "PrintFlowLabels": [0],
    "ChartXrefsTo": [0], // display referenced items
    "ChartXrefsFrom": [0], // display referencing items
    "ChartXrefsUser": [0], // display referenced/referencing items
    "OpenStrings": ["Shift-F12"],
    "OpenCallers": [0], // display function call list
    "OpenLocalTypes": ["Shift-F1"],
    "OpenBookmarks": ["Ctrl-Shift-M"],
    "PatchByte": [0],
    "PatchWord": [0],
    "Assemble": [0],
    "ApplyPatches": [0], // apply patches to input file
    "Options": [0], // show the general options dialog
    "SetColors": [0], // show the colors configuration dialog
    "LicenseManager": [0], // Open license manager
    "LicenseManagerBorrow": [0], // Borrow a license
    "LicenseManagerReturn": [0], // Return a license
#ifdef __QT__
    "SetFont": [0], // show the fonts configuration dialog
    "ProcessorAnalysisOptions": [0],
    "ToggleStatusBarAnalysisIndicator": [0],
#endif
    "SetStrlitStyle": ["Alt-A"], // set strings style
    "SetDirectives": [0], // setup assembler directives
    "ToggleDump": [0], // show dump or normal view
    "SetNameType": [0], // show the name representation type dialog
    "SetupCompiler": [0], // show the compiler setup dialog
    "SetDemangledNames": [0],
    "Calculate": ["?"],
    "ShowFlags": ["F"],
#ifdef __QT__
    "ShowSnapMan": ["Ctrl-Shift-T"], // show the database snapshot manager
#endif
    "SetupHidden": [0],
    "Hide": ["Ctrl-Numpad-"],
    "UnHide": ["Ctrl-Numpad+"],
    "HideAll": [0],
    "UnHideAll": [0],
    "DelHiddenRange": [0],
#ifdef __QT__
#ifdef __MAC__
    "FullScreen": ["Meta-Shift-F"],
#else
    "FullScreen": ["F11"],
#endif
#endif
#ifdef __QT__
    "ShowHelp": ["F1"],
#else
    "KeyboardHelp": [0],
#endif
#ifdef __NT__
    "ExternalHelp": ["Ctrl-F1"],
#endif
#ifdef __QT__
    "WindowsList": [0],
    "WindowsListNext": ["Ctrl-Tab"],
    "WindowsListPrev": ["Ctrl-Shift-Tab"],
#endif
    "NextWindow": ["F6"],
    "PrevWindow": ["Shift-F6"],
    "CloseWindow": ["Alt-F3"],
    "FocusCLI": ["."], // focus command line
    "FocusCLI2": ["Ctrl-."], // focus command line (from anywhere in IDA)
#ifdef __QT__
    "ToolbarsNone": [0],
    "ToolbarsAll": [0],
#endif
    //
    //      Structure manipulation commands
    //
    "ShrinkStruct": ["Ctrl-S"], // delete gap
    "DeclareStructVar": ["Alt-Q"], // declare struct variable
    "ZeroStructOffset": [0], // force zero field offset
    "SelectUnionMember": ["Alt-Y"], // select union member
    "CreateStructFromData": [0], // create struct from data
    "CopyFieldsToPointers": [0], // copy field info to pointers
                                 //
                                 //      Enum manipulation commands
                                 //
#ifdef __MAC__
    "AddEnum": ["I"], // add enum
#else
    "AddEnum": ["Ins"], // add enum
#endif
    "DelEnum": ["Del"], // del enum
    "EditEnum": ["Ctrl-E"], // edit enum
    "AddConst": ["N"], // add new enum member
    "TilEditConst": ["Ctrl-N"], // edit enum member
    "DelConst": ["U"], // delete enum member
                       //
                       //      Lumina server
                       //
#if !defined(__DEMO__) && !defined(__IDAFREE__)
    "LuminaApplyMdFromList": [0],
    "LuminaPullMd": [0],
    "LuminaPushMd": [0],
    "LuminaRevertMd": [0],
    "LuminaDeleteMd": [0],
    "LuminaViewMd": [0],
    "LuminaMetadataHistory": [0],
    "LuminaPullAllMds": ["F12"],
    "LuminaPushAllMds": ["Ctrl-F12"],
    "LuminaRestoreMdFromList": [0],
    "LuminaViewAllMds": ["Alt-F12"],
    "LuminaSecondaryPullMd": [0],
    "LuminaSecondaryPushMd": [0],
    "LuminaSecondaryDeleteMd": [0],
    "LuminaSecondaryViewMd": [0],
    "LuminaSecondaryPullAllMds": [0],
    "LuminaSecondaryPushAllMds": [0],
    "LuminaSecondaryViewAllMds": [0],
#endif
    //
    //      Script snippets
    //
    "SnippetsRunCurrent": ["Ctrl-Shift-X"],
    "SnippetsImportCurrent": [0],
    "SnippetsExportCurrent": [0],
    "SnippetsCloneCurrent": [0],
    "SnippetsChangeTabSize": [0],
    //
    //      Debugger manipulation commands
    //
#ifdef __QT__
    "QuickDbgView": ["Ctrl-2"],
#endif
    "Debugger": ["Ctrl-Alt-C"], // open debugger window
    "ProcessStart": ["F9"], // start a new process in the debugger
    "ProcessPause": [0], // pause the debugged process
    "ProcessExit": ["Ctrl-F2"], // terminate the debugged process
    "ProcessAttach": [0], // Attach to a process
    "ProcessDetach": [0], // Detach from the debugged process
    "TakeSnapshot": [0], // Take a memory snapshot to the database
    "RefreshMemcfg": [0], // Refresh memory
    "ThreadStepInto": ["F7"], // step into the current instruction
    "ThreadStepOver": ["F8"], // step over the current instruction
    "ThreadRunUntilReturn": ["Ctrl-F7"], // execute instructions until execution returns from the current function
    "ThreadRunToCursor": ["F4"], // execute instructions until cursor is reached
    "ThreadSetCurrentIp": ["Ctrl-N"], // set new EIP (execution pointer)
    "Threads": [0], // open threads window
    "BreakpointAdd": [0], // add a breakpoint
    "BreakpointDel": [0], // del a breakpoint
    "BreakpointToggle": ["F2"], // toggle a breakpoint
    "BreakpointEdit": [0], // edit breakpoint settings
    "BreakpointEnable": [0],
    "BreakpointDisable": [0],
    "Breakpoints": ["Ctrl-Alt-B"], // open breakpoints window
    "BreakpointFind": ["Ctrl-Shift-F2"], // open breakpoints window if needed, then select breakpoint
                                         //"WatchList"             =       "Ctrl-Alt-W"    // open the watch list
    "AddWatch": [0], // add watch
    "DelWatch": ["Del"], // del watch
    "StackTrace": ["Ctrl-Alt-S"], // open stack trace window
    "TracingWindow": [0], // open the 'Tracing' window
    "ClearTrace": [0], // clear trace window
    "SetupTracing": [0], // open setup tracing window
    "ToggleTraceInstructions": [0], // toggle instructions tracing
    "ToggleTraceFunctions": [0], // toggle functions tracing
    "ExecTraceAdd": [0], // add execution trace
    "WriteTraceAdd": [0], // add write trace
    "ReadWriteTraceAdd": [0], // add read/write trace
    "SwitchDebugger": [0], // switch the current debugger
#ifdef __QT__
    "SwitchToSource": [0], // switch from disassembly to source view
#endif
    // Graph view commands
    "GraphZoom100": ["1"], // Zoom 100%
    "GraphZoomFit": ["W"], // Fit window
    "GraphZoomIn": ["Ctrl-Shift-Numpad+"], // Zoom in
    "GraphZoomOut": ["Ctrl-Shift-Numpad-"], // Zoom out
    "GraphSetupOptions": [0], // Setup graph options
    "GraphSetupColors": [0], // Setup graph colors
    "GraphPrint": [0], // Print graph
    "GraphLayout": [0], // Layout graph
    "GraphFlatView": [0], // Switch to flat disassembly view
    "GraphGraphView": [0], // Switch to graph view
#ifdef __QT__
    "GraphProximityBack": ["Numpad+"], // Back to previous view from proximity view
    "GraphProximityView": ["Numpad-"], // Switch to proximity view
#endif
    "GraphGroup": [0], // Group nodes
    "GraphUngroup": [0], // Ungroup nodes
    "GraphHideGroup": [0], // Hide group
    "GraphUnHideGroup": [0], // Unhide group
    "GraphHideAllGroups": [0], // Hide all groups
    "GraphUnHideAllGroups": [0], // Unhide all groups
    "GraphColor": [0], // Set node color
    "GraphColor1": [0], // Set node color 1
    "GraphColor2": [0], // Set node color 2
    "GraphDefaultColor": [0], // Set node color to default
                              // Desktop
    "LoadDesktop": [0],
    "SaveDesktop": [0],
    "DeleteDesktop": [0],
    "ResetDesktop": [0],
    "ResetHiddenMessages": [0],
    "WindowActivate1": ["Alt-1"],
    "WindowActivate2": ["Alt-2"],
    "WindowActivate3": ["Alt-3"],
    "WindowActivate4": ["Alt-4"],
    "WindowActivate5": ["Alt-5"],
    "WindowActivate6": ["Alt-6"],
    "WindowActivate7": ["Alt-7"],
    "WindowActivate8": ["Alt-8"],
    "WindowActivate9": ["Alt-9"],
    // Miscellaneous
    "StringC": [0],
    "StringDOS": [0],
    "StringPascal1": [0],
    "StringPascal2": [0],
    "StringDelphi": [0],
    "StringUnicode": [0],
    "StringUnicodePascal2": [0],
    "StringUnicodePascal4": [0],
    "SearchNext": [0],
    "Function": [0],
    "LockHighlight": ["Ctrl-Alt-0"],
    "LockHighlight_0": ["Ctrl-Alt-1"],
    "LockHighlight_1": ["Ctrl-Alt-2"],
    "LockHighlight_2": ["Ctrl-Alt-3"],
    "LockHighlight_3": ["Ctrl-Alt-4"],
    "LockHighlight_4": ["Ctrl-Alt-5"],
    "LockHighlight_5": ["Ctrl-Alt-6"],
    "LockHighlight_6": ["Ctrl-Alt-7"],
    "LockHighlight_7": ["Ctrl-Alt-8"],
    //
    //      Others
    //      ------
    //
    "ActinsCopy": ["Ctrl-C"],
#ifdef __MAC__
    "ActinsCopyAll": ["Ctrl-Shift-I"],
#else
    "ActinsCopyAll": ["Ctrl-Shift-INS"],
#endif
    "ActinsUnsort": [0],
    "ActinsQuickFilter": ["Ctrl-F", "sys(Find)"],
    "ActinsSearch": ["Alt-T"],
    "ActinsSearchAgain": ["Ctrl-T"],
    "Analysis": [0],
    "Anchor": ["Alt-L"],
    "ChooserCopy": ["sys(Copy)", "Ctrl-C"],
#ifdef __MAC__
    "ChooserCopyAll": ["Ctrl-Shift-I"],
    "ChooserDelete": ["Ctrl-Del"],
#else
    "ChooserCopyAll": ["Ctrl-Shift-INS"],
    "ChooserDelete": ["Del"],
#endif
    "ChooserDemangledNames": [0],
    "ChooserEdit": ["Ctrl-E"],
    "ChooserHideColumn": [0],
#ifdef __MAC__
    "ChooserInsert": ["Ctrl-I"],
#else
    "ChooserInsert": ["Ins"],
#endif
    "ChooserManageColumns": [0],
    "ChooserModifyFilters": ["Ctrl-Shift-F"],
    "ChooserNiceNames": ["Ctrl-Shift-N"],
    "ChooserQuickFilter": ["Ctrl-F", "sys(Find)"],
    "ChooserRefresh": ["Ctrl-U"],
    "ChooserResetFilters": [0],
    "ChooserSearch": ["Alt-T"],
    "ChooserSearchAgain": ["Ctrl-T"],
    "ChooserUnsort": [0],
    "ChooserToggleTree": [0],
    "ClearMark": [0],
    "CloseBase": [""],
    "CLICopyAddress": [0],
    "CLICopySize": [0],
    "CloseBase": [0],
    "CopyStruct": [0], // Make a copy of structure/union type
    "EditCopy": ["Ctrl-C", "sys(Copy)"],
    "FindAllErrors": [0],
    "GraphCircleLayout": [0],
    "GraphDigraphLayout": [0],
    "GraphNewProximityView": [0], // Open new proximity browser
    "GraphOrthogonalLayout": [0],
    "GraphPolarLayout": [0],
    "GraphProximityAddGraph": [0], // Expand children
    "GraphProximityAddNode": [0], // Add name
    "GraphProximityAddNodeByAddr": [0], // Add name
    "GraphProximityAddParents": [0], // Expand parents
    "GraphProximityDelChilds": [0], // Collapse children
    "GraphProximityDelNode": [0], // Hide node
    "GraphProximityDelParents": [0], // Collapse parents
    "GraphProximityExpand": [0], // Expand node
    "GraphProximityExpandCurrent": ["+"], // Expand current node
    "GraphProximityFindPath": [0], // Find path
    "GraphProximityReset": [0], // Reset graph
    "GraphRadialLayout": [0],
    "GraphSelectColor": [0], // Select nodes with the same color as the current node
    "GraphTreeLayout": [0],
    "JumpNewDump": [0],
    "JumpToIP": [0],
    "LoadFile": [0], // Load additional binary file
    "Locals": [0], // Open local variables window
    "Modules": [0], // Open modules window
    "NewFile": [0], // Create a new database
    "OpenSourceFile": [0], // Open a source file
    "SelectAll": [0],
    "SelectIdentifier": ["Shift-Enter"],
    "SetupData": ["Alt-D"],
    "SetupDebugger": [0],
    "SetupProcess": [0],
    "SetupSrcPaths": [0], // Setup source paths mappings
    "SetupSrcPathsRevert": [0], // Revert, when setting source paths mappings up
    "ShortcutEditor": [0], // Edit shortcuts
    "StackView": [0],
    "ToggleSourceDebug": [0],
    "ToggleTraceBasicBlocks": [0], // Toggle basic block tracing
    "TracingMainTracebufInfo": ["Ctrl-I"], // View main trace info
    "TracingOvlTracebufInfo": ["Ctrl-Shift-I"], // View overlay trace info
    "TracingMainTracebufClear": ["Ctrl-X"], // Clear main trace
    "TracingOvlTracebufClear": ["Ctrl-Shift-X"], // Clear overlay trace
    "TracingMainTracebufLoad": ["Ctrl-L"], // Clear main trace
    "TracingOvlTracebufLoad": ["Ctrl-Shift-L"], // Clear overlay trace
    "TracingMainTracebufSave": ["Ctrl-S"], // Save main trace
    "TracingShowTraceCallGraph": ["Ctrl-G"], // Show trace call graph
    "TracingMainTracebufExportAsText": [0], // Export main trace as text
    "TracingMainTracebufChangeDesc": ["Ctrl-E"], // Edit main trace description
    "TracingDiffToggle": ["Ctrl-D"], // Toggle diff
    "LocalTypesSync": [0], // Synchronize to idb
    "LocalTypesSyncAndJump": [0], // Synchronize to idb, and jump
    "LocalTypesUnsync": [0], // Unsync from idb
    "LocalTypesExportToHeader": [0], // Export to header file
    "LocalTypesMapToAnother": [0], // Map to another type...
    "LocalTypesToggleDynSel": [0], // Show selection only
    "DirTreeCreateFolder": [0], // hlp_dirtree_create_folder
    "DirTreeQuickFilter": ["Ctrl-F", "sys(Find)"], // Quick filter
    "DirTreeModifyFilters": [0], // Modify filters...
    "DirTreeResetFilters": [0], // Reset filters
    "DirTreeUnsort": [0], // Unsort
#ifdef __MAC__
    "DirTreeInsert": ["I"], // Insert
#else
    "DirTreeInsert": ["Ins"], // Insert
#endif
    "DirTreeDelete": ["Del"], // Delete
    "DirTreeSearch": ["Alt-T"], // Search
    "DirTreeSearchAgain": ["Ctrl-T"], // Search again
#ifdef __MAC__
    "DirTreeRename": [0], // Rename
#else
    "DirTreeRename": ["F2"], // Rename
#endif
    "DirTreeCopy": ["sys(Copy)", "Ctrl-C"], // Copy selection
#ifdef __MAC__
    "DirTreeCopyAll": ["Ctrl-Shift-I"], // Copy all
#else
    "DirTreeCopyAll": ["Ctrl-Shift-INS"], // Copy all
#endif
    "DirTreeExpandSelection": ["Ctrl-Numpad+"], // Expand selected folders
    "DirTreeCollapseSelection": ["Ctrl-Numpad-"], // Collapse selected folders
    "DirTreeCutSelection": ["Ctrl-X"], // Cut selection
    "DirTreePasteCut": ["Ctrl-V"], // Paste current cut
    "QuickFilterMatchCase": [0], // quick filtering; match case
    "QuickFilterModeRegex": [0], // quick filtering; regex mode
    "QuickFilterModeFuzzy": [0], // quick filtering; fuzzy mode
    "QuickFilterModeWholeWords": [0], // quick filtering; whole words
    "DebuggerSuspendThread": [0], // Suspend thread
    "DebuggerResumeThread": [0], // Resume thread
    "LoadModuleDebugSymbols": [0], // hlp_load_module_debug_symbols
    "AnalyzeModule": [0], // hlp_analyze_module
    "JumpToModuleBase": [0], // hlp_jump_to_module_base
    "BreakOnModuleAccess": [0], // hlp_break_on_module_access
    "SetupStrings": [0], // Setup...
    "RebuildStrings": [0], // Rebuild...
    "ClearStrings": [0], // Clear...
    "MoveSelectedSegment": [0], // Move segment(s)
    "BreakOnSegmentAccess": [0], // Break on access
    "WatchList": [0], // Open the watch list window
    "WatchView": [0], // Open a new watch window
    "PatchedBytes": ["Ctrl-Alt-P"], // Patched bytes
    "ExportData": ["Shift-E"], // Export data
    "DiffPrevChunk": ["Ctrl-P"], // Prev diff chunk
    "DiffCenterChunk": [0], // Center to chunk
    "DiffNextChunk": ["Ctrl-N"], // Next diff chunk
    "DiffPrevConflict": ["Ctrl-Shift-P"], // Prev diff conflict
    "DiffNextConflict": ["Ctrl-Shift-N"], // Next diff conflict
    "DiffApplyHandlerNoConflicts": [0], // Resolve all non-conflicting differences in this step
    "DiffApplyHandlerPickLocalOnConflict": [0], // Resolve all, keep 'local' changes in this step
    "DiffApplyHandlerPickRemoteOnConflict": [0], // Resolve all, pick 'remote' changes in this step
    "DiffProceedToTheNextStep": [0], // Temporary resolve all and go to the next step (diff mode)
    "DiffApplyPickLocal": [0], // Resolve current, keep 'local' change
    "DiffApplyPickRemote": [0], // Resolve current, pick 'remote' change
    "DiffToggleBasePanel": [0], // Toggle 'common' panel
    "DiffToggleDetails": [0], // Toggle 'details'
    "DiffApplyHandlersPickLocalOnConflict": [0], // Apply all differences until this step (pick local)
    "DiffApplyHandlersPickRemoteOnConflict": [0], // Apply all differences until this step (pick remote)
    "DiffProceedToThisStep": [0], // Temporary apply all differences until this step (diff mode)
    "BuyIDA": [0],
    "Homepage": [0],
    "SupportForum": [0],
    "CheckFreeUpdate": [0],
    "BugReport": [0],
    "HelpHexraysSDK": [0],
    "HelpIDASDK": [0],
    "HelpIDCFunctions": [0],
    "HelpPythonAPI": [0],
    "CommandPalette": ["Ctrl-Shift-P"], // Open command palette
    "RepeatLastPaletteCommand": ["Ctrl-Shift-R"] // Repeat last command
  },
  "new" : {
    "JumpAsk": ["G"],
    "JumpName": ["Ctrl-L"],
    "JumpXrefFrom": ["Ctrl-J"],
    "JumpOpXref": ["X"],
    "JumpEntryPoint": ["Ctrl-E"],
    "JumpEnter": ["Enter"], // jump to address under cursor
    "JumpEnterNew": ["Alt-Enter"], // jump to address under cursor
                                   // in a new window
    "JumpPosition": ["Ctrl-M"],
    "MarkPosition": ["Alt-M"],
    "SearchHighlightUp": ["Alt-Up"],
    "SearchHighlightDown": ["Alt-Down"],
    "FindRegisterDefinition": ["Shift-Alt-Up"],
    "FindRegisterUse": ["Shift-Alt-Down"],

    "ToggleRenderer": ["Space"],
    "MakeCode": ["C"],
    "MakeData": ["D"],
    "MakeStrlit": ["A"],
    "MakeArray": ["Numpad*", "*"],
    "MakeUnknown": ["U"],
    "MakeName": ["N"],
    "MakeFunction": ["P"],
    "EditFunction": ["Alt-P"],
    "OpenStackVariables": ["Ctrl-K"], // open stack variables window
    "SetType": ["Y"],
    "MakeComment": [":"],
    "MakeRptCmt": [";"],

    "TilMakeComment": [":", ";", "/"],
    "TilFocusOther": ["Tab"],
    "TilEditType": ["Ctrl-E"],
    //TODO: all the "asks"

#ifdef __MAC__
    "MakeExtraLineA": ["I"],
    "MakeExtraLineB": ["Shift-I"],
#else
    "MakeExtraLineA": ["Ins"],
    "MakeExtraLineB": ["Shift-Ins"],
#endif
    "OpNumber": ["#"],
    "OpHex": ["Q"],
    "OpDecimal": ["H"],
    "OpOctal": [0],
    "OpBinary": ["B"],
    "ToggleLeadingZeroes": ["0"],
    "OpFloat": [0],
    "OpChar": ["R"],
    "OpSegment": ["S"],
    "OpOffset": ["O"],
    "OpAnyOffset": ["Alt-R"],
    "OpUserOffset": ["Ctrl-R"],
    "OpStructOffset": ["T"],
    "OpStackVariable": ["K"],
    "OpEnum": ["M"],
    "ChangeSign": ["_"],
    "BitwiseNegate": ["~"],
    "OpenFunctions": ["Shift-F3"], // open functions window
    "OpenExports": [0],
    "OpenImports": [0],
    "OpenNames": ["Shift-F4"],
    "OpenSignatures": ["Shift-F5"], // open signatures window
    "OpenSegments": ["Shift-F7"],
    "OpenSegmentRegisters": ["Shift-F8"],
    "OpenSelectors": [0],
    "OpenXrefs": [0],
    "OpenProblems": [0],
    "OpenTypeLibraries": ["Shift-F11"],
    "GraphFunc": [0], // display function flow-chart
    "CallFlow": [0], // display function call graph
    "PrintFlowLabels": [0],
    "ChartXrefsTo": [0], // display referenced items
    "ChartXrefsFrom": [0], // display referencing items
    "ChartXrefsUser": [0], // display referenced/referencing items
    "OpenStrings": ["Shift-F12"],
    "OpenCallers": [0], // display function call list
    "OpenLocalTypes": ["Shift-F1"],

    "Calculate": ["?"],
    "ShowFlags": ["F"],

    "FocusCLI": ["."], // focus command line
    "FocusCLI2": ["Ctrl-."], // focus command line (from anywhere in IDA)

    "ShowHelp" : "sys(HelpContents)",
    "LoadNewFile" : "sys(Open)",
    "CloseWindow" : "sys(Close)",
    "SaveBase" : "sys(Save)",
    "NewInstance" : "sys(New)",
    "QuitIDA" : ["Alt-X", "sys(Quit)"],
    "SaveBaseAs" : "sys(SaveAs)",
    //"DelEnum" : "sys(Delete)",
    //"DelWatch" : "sys(Delete)",
    //"TilDelType" : "sys(Delete)",
    "EditCopy" : "sys(Copy)",
    "OutputCopy" : "sys(Copy)",
    "UndoAction" : "sys(Undo)",
    "RedoAction" : "sys(Redo)",
    "Return" : ["Esc", "sys(Back)"],
    "UndoReturn" : ["Ctrl-Enter", "sys(Forward)"],
    "AskNextText": ["sys(Find)"],
    "JumpText": ["sys(FindNext)"],
    "OutputFind": ["sys(Find)"],
    "OutputFindNext": ["sys(FindNext)"],
#ifdef __MAC__
    "CommandPalette": ["Meta-Shift-P"], // Open command palette
#else
    "CommandPalette": ["Ctrl-Shift-P"], // Open command palette
#endif
#ifdef __MAC__
    "GraphZoom100" : "Meta-0",
#else
    "GraphZoom100" : "Ctrl-0",
#endif
    "GraphZoomFit" : "W",
    "GraphZoomIn" : "sys(ZoomIn)",
    "GraphZoomOut" : "sys(ZoomOut)",
    "GraphPrint" : "sys(Print)",
    "NextWindow" : "sys(NextChild)",
    "PrevWindow" : "sys(PreviousChild)",
#ifdef __MAC__
    "WindowActivate1": ["Meta-1"],
    "WindowActivate2": ["Meta-2"],
    "WindowActivate3": ["Meta-3"],
    "WindowActivate4": ["Meta-4"],
    "WindowActivate5": ["Meta-5"],
    "WindowActivate6": ["Meta-6"],
    "WindowActivate7": ["Meta-7"],
    "WindowActivate8": ["Meta-8"],
    "WindowActivate9": ["Meta-9"],
#else
    "WindowActivate1": ["Alt-1"],
    "WindowActivate2": ["Alt-2"],
    "WindowActivate3": ["Alt-3"],
    "WindowActivate4": ["Alt-4"],
    "WindowActivate5": ["Alt-5"],
    "WindowActivate6": ["Alt-6"],
    "WindowActivate7": ["Alt-7"],
    "WindowActivate8": ["Alt-8"],
    "WindowActivate9": ["Alt-9"],
#endif
    "ActinsQuickFilter" : "sys(Find)",
    "ChooserQuickFilter": "sys(Find)",
    "DirTreeQuickFilter": "sys(Find)",
    "SelectAll" : "sys(SelectAll)",
    "OutputSelectAll" : "sys(SelectAll)",
    "NavRight" : ["sys(MoveToNextChar)","sys(SelectNextChar)"],
    "OutputNavRight" : ["sys(MoveToNextChar)","sys(SelectNextChar)"],
    "NavLeft" : ["sys(MoveToPreviousChar)","sys(SelectPreviousChar)"],
    "OutputNavLeft" : ["sys(MoveToPreviousChar)","sys(SelectPreviousChar)"],
    "NavWordRight" : ["sys(MoveToNextWord)","sys(SelectNextWord)"],
    "OutputNavWordRight" : ["sys(MoveToNextWord)","sys(SelectNextWord)"],
    "NavWordLeft" : ["sys(MoveToPreviousWord)","sys(SelectPreviousWord)"],
    "OutputNavWordLeft" : ["sys(MoveToPreviousWord)","sys(SelectPreviousWord)"],
    "NavLineDown" :         ["sys(MoveToNextLine)","sys(SelectNextLine)"],
    "OutputNavLineDown" :       ["sys(MoveToNextLine)","sys(SelectNextLine)"],
    "NavLineUp":     ["sys(MoveToPreviousLine)","sys(SelectPreviousLine)"],
    "OutputNavLineUp":  ["sys(MoveToPreviousLine)","sys(SelectPreviousLine)"],
    "NavPageDown":         ["sys(MoveToNextPage)","sys(SelectNextPage)"],
    "OutputNavPageDown":         ["sys(MoveToNextPage)","sys(SelectNextPage)"],
    "NavPageUp":         ["sys(MoveToPreviousPage)","sys(SelectPreviousPage)"],
    "OutputNavPageUp":         ["sys(MoveToPreviousPage)","sys(SelectPreviousPage)"],
    "NavJumpHome":         ["sys(MoveToStartOfLine)","sys(SelectStartOfLine)"],
#ifdef __LINUX__
    // sys(MoveToEndOfLine) on linux is `Ctrl-E` which is already in use
    "NavJumpEnd": ["End", "sys(SelectEndOfLine)"],
#else
    "NavJumpEnd": ["sys(MoveToEndOfLine)","sys(SelectEndOfLine)"],
#endif
    "Options":         "sys(Preferences)",
    "Fullscreen":         "sys(FullScreen)"

  }
}

//
//      Main Menu layout
//      ----------------
//

MENUS_LAYOUT = [
    {
        "label" : "&File",
        "name" : "File",
        "actions" : [
            "NewInstance",
            "LoadNewFile",
            {
                "label" : "&Load file",
                "actions" : [
                    "ReloadFile",
                    "LoadFile",
                    "LoadIdsFile",
                    "LoadPdbFile",
                    "LoadDbgFile",
                    "LoadTdsFile",
                    "LoadSigFile",
                    "LoadHeaderFile"
                ]
            },
            {
                "label" : "&Produce file",
                "actions" : [
                    "ProduceMap",
                    "ProduceAsm",
                    "ProduceInc",
                    "ProduceLst",
                    "ProduceExe",
                    "ProduceDiff",
                    "ProduceHtml",
                    "ProduceFuncGdl",
                    "ProduceCallGdl",
                    "ProduceHeader",
                    "",
                    "DumpDatabase",
                    "DumpTypes"
                ]
            },
            "Execute",
            "ExecuteLine",
            "SaveBase",
            "SaveBaseAs",
            "SaveBaseSnap",
            "CloseBase",
            "",
            "QuickStart",
            "QuitIDA"
        ]
    },
    {
        "label" : "&Edit",
        "name" : "Edit",
        "actions" : [
            "EditCopy",
            "Anchor",
            "SelectAll",
            "SelectIdentifier",
            "UndoAction",
            "RedoAction",
            "",
            "ExportData",
            "",
            "MakeCode",
            "MakeData",
            "DeclareStructVar",
            {
                "label" : "St&rings",
                "name" : "Strings",
                "icon" : "themeicon-StringC",
                "actions" : [
                    "MakeStrlit",
                    "",
                    "StringC",
                    "StringDOS",
                    "StringPascal1",
                    "StringPascal2",
                    "StringDelphi",
                    "StringUnicode",
                    "StringUnicodePascal2",
                    "StringUnicodePascal4"
                ]
            },
            "MakeArray",
            "MakeUnknown",
            "MakeName",
            "",
            {
                "label" : "&Operand type",
                "actions" : [
                    {
                        "label" : "&Offset",
                        "name" : "OpTypeOffset",
                        "icon" : "themeicon-OpOffset",
                        "actions" : [
                            "OpOffset",
                            "OpOffsetCs",
                            "OpAnyOffset",
                            "OpUserOffset",
                            "OpStructOffset"
                        ]
                    },
                    {
                        "label" : "&Number",
                        "name" : "OpTypeNumber",
                        "icon" : "themeicon-OpNumber",
                        "actions" : [
                            "OpNumber",
                            "OpHex",
                            "OpDecimal",
                            "OpOctal",
                            "OpBinary",
                            "OpFloat",
                            "",
                            "ToggleLeadingZeroes"
                        ]
                    },
                    "OpChar",
                    "OpSegment",
                    "OpEnum",
                    "OpStackVariable",
                    "ChangeSign",
                    "BitwiseNegate",
                    "ManualOperand",
                    "SetOpType"
                ]
            },
            {
                "label" : "Co&mments",
                "actions" : [
                    "MakeComment",
                    "MakeRptCmt",
                    "MakeExtraLineA",
                    "MakeExtraLineB"
                ]
            },
            {
                "label" : "&Segments",
                "actions" : [
                    "CreateSegment",
                    "EditSegment",
                    "KillSegment",
                    "MoveSegment",
                    "RebaseProgram",
                    "SegmentTranslation",
                    "SetSegmentRegister",
                    "SetSegmentRegisterDefault"
                ]
            },
            {
                "label" : "S&tructs",
                "actions" : [
                    "DeclareStructVar",
                    "ZeroStructOffset",
                    "SelectUnionMember",
                    "CreateStructFromData",
                    "CopyFieldsToPointers"
                ]
            },
            {
                "label" : "&Functions",
                "actions" : [
                    "MakeFunction",
                    "EditFunction",
                    "AppendFunctionTail",
                    "RemoveFunctionTail",
                    "DelFunction",
                    "FunctionEnd",
                    "OpenStackVariables",
                    "ChangeStackPointer",
                    "RenameRegister",
                    "SetType"
                ]
            },
            {
                "label" : "&Patch program",
                "actions" : [
                    "PatchByte",
                    "PatchWord",
                    "Assemble",
                    "PatchedBytes",
                    "ApplyPatches"
                ]
            },
            {
                "label" : "Ot&her",
                "actions" : [
                    "MakeAlignment",
                    "ManualInstruction",
                    "ColorInstruction",
                    "ToggleBorder"
                ]
            },
            {
                "label" : "Plu&gins",
                "name" : "Plugins",
                "actions" : []
            }
        ]
    },
    {
        "label" : "&Jump",
        "name" : "Jump",
        "actions" : [
            "JumpEnter",
            "JumpEnterNew",
            "Return",
            "UndoReturn",
            "EmptyStack",
            "",
            "JumpAsk",
            "JumpName",
            "JumpFunction",
            "JumpSegment",
            "JumpSegmentRegister",
            "JumpQ",
            "JumpXref",
            "JumpXrefFrom",
            "JumpOpXref",
            "JumpEntryPoint",
            "JumpFileOffset",
            "",
            "MarkPosition",
            "JumpPosition",
            "ClearMark"
        ]
    },
    {
        "label" : "Searc&h",
        "name" : "Search",
        "actions" : [
            "JumpCode",
            "JumpData",
            "JumpExplored",
            "JumpUnknown",
            "AskNextImmediate",
            "JumpImmediate",
            "AskNextText",
            "JumpText",
            "AskBinaryText",
            "JumpBinaryText",
            "JumpNotFunction",
            "JumpSuspicious",
            "JumpError",
            "FindAllSuspicious",
            "FindAllErrors",
            "",
            "SetDirection",
            "",
            "SearchHighlightUp",
            "SearchHighlightDown",
            {
                "label" : "Lock highlight",
                "name" : "LockHighlightMenu",
                "actions" : [
                  "LockHighlight_0",
                  "LockHighlight_1",
                  "LockHighlight_2",
                  "LockHighlight_3",
                  "LockHighlight_4",
                  "LockHighlight_5",
                  "LockHighlight_6",
                  "LockHighlight_7"
                ]
            },
            "FindRegisterDefinition",
            "FindRegisterUse"
        ]
    },
    {
        "label" : "&View",
        "name" : "View",
        "actions" : [
            {
                "label" : "&Open subviews",
                "name" : "Subviews",
                "actions" : [
                    "QuickView",
                    "",
                    "WindowOpen",
                    "GraphNewProximityView",
                    "ToggleDump",
                    "AddressDetails",
                    "",
                    "OpenExports",
                    "OpenImports",
                    "OpenNames",
                    "OpenFunctions",
                    "OpenStrings",
                    "",
                    "OpenSegments",
                    "OpenSegmentRegisters",
                    "OpenSelectors",
                    "",
                    "OpenSignatures",
                    "OpenTypeLibraries",
                    "",
                    "OpenLocalTypes",
                    "",
                    "OpenXrefs",
                    "OpenCallers",
                    "",
                    "OpenBookmarks",
                    "",
                    "OpenNotepad",
                    "OpenProblems",
                    "PatchedBytes",
                    "ShowUndoHistory"
                ]
            },
            {
                "label" : "&Graphs",
                "actions" : [
                    "GraphFunc",
                    "PrintFlowLabels",
                    "",
                    "CallFlow",
                    "ChartXrefsTo",
                    "ChartXrefsFrom",
                    "ChartXrefsUser"
                ]
            },
            {
                "label" : "&Toolbars",
                "name" : "Toolbars",
                "actions" : []
            },
            "Calculate",
            "FullScreen",
            "GraphOverview",
            "RecentScripts",
            "ShowSnapMan",
            "",
            "ShowRegisters",
            "ShowFlags",
            "FindRegisterValue",
            "",
            "Hide",
            "UnHide",
            "HideAll",
            "UnHideAll",
            "DelHiddenRange",
            "SetupHidden"
        ]
    },
    {
        "label" : "", // The debugger menu labels are replaced automatically according to what menu is visible
        "name" : "DebuggerSelected",
        "visible_initially" : false,
        "actions" : [
            "QuickDbgView",
            "",
            {
                "label" : "&Debugger windows",
                "name" : "DebuggerWindows",
                "actions" : [
                    "Debugger",
                    "Threads",
                    "Modules",
                    "Locals",
                    "StackView",
                    "StackTrace",
                    "WatchView"
                ]
            },
            {
                "label" : "&Breakpoints",
                "actions" : [
                    "Breakpoints",
                    "BreakpointAdd",
                    "BreakpointDel"
                ]
            },
            {
                "label" : "&Watches",
                "actions" : [
                    "WatchList",
                    "AddWatch",
                    "DelWatch"
                ]
            },
            {
                "label" : "Tracin&g",
                "actions" : [
                    "TracingWindow",
                    "ClearTrace",
                    "",
                    "ToggleTraceInstructions",
                    "ToggleTraceBasicBlocks",
                    "ToggleTraceFunctions",
                    "",
                    "WriteTraceAdd",
                    "ReadWriteTraceAdd",
                    "ExecTraceAdd",
                    "",
                    "SetupTracing"
                ]
            },
            "",
            "ProcessStart",
            "ProcessAttach",
            "SetupProcess",
            "ProcessPause",
            "ProcessExit",
            "ProcessDetach",
            "RefreshMemcfg",
            "TakeSnapshot",
            "",
            "ThreadStepInto",
            "ThreadStepOver",
            "ThreadRunUntilReturn",
            "ThreadRunToCursor",
            "",
            "SwitchToSource",
            "ToggleSourceDebug",
            "OpenSourceFile",
            "",
            "SetupDebugger",
            "SwitchDebugger"
        ]
    },
    {
        "label" : "",
        "name" : "DebuggerUnselected",
        "visible_initially" : false,
        "actions" : [
            "SwitchDebugger"
        ]
    },
    {
        "label" : "",
        "name" : "DebuggerRunToAndAttach",
        "actions" : [
            {
                "label" : "&Run",
                "name" : "DebuggerRunTo",
                "actions" : []
            },
            {
                "label" : "&Attach",
                "name" : "DebuggerAttach",
                "actions" : []
            }
        ]
    },

#if !defined(__DEMO__) && !defined(__IDAFREE__)
    {
        "label" : "Lumi&na",
        "name" : "Lumina",
        "visible_initially" : false,
        "actions" : [
            "LuminaPullAllMds",
            "LuminaPushAllMds",
            "LuminaViewAllMds",
            "LuminaPullMd",
            "LuminaPushMd",
            {
                "label" : "&Secondary server",
                "actions" : [
                  "LuminaSecondaryPullAllMds",
                  "LuminaSecondaryPushAllMds",
                  "LuminaSecondaryViewAllMds",
                  "LuminaSecondaryPullMd",
                  "LuminaSecondaryPushMd"
                ]
            },
            "LuminaRevertMd"
        ]
    },
#endif
    {
        "label" : "&Options",
        "name" : "Options",
        "actions" : [
            "Options",
            "SetColors",
            "SetFont",
            "ShortcutEditor",
            "CommandPalette",
            "RepeatLastPaletteCommand",
            "UndoToggle",
            "ResetUndoHistory",
            "SetDirectives",
            "SetNameType",
            "SetDemangledNames",
            "SetupCompiler",
            "SetStrlitStyle",
            "SetupCompiler",
            "SetStrlitStyle",
            "SetupData",
            "SetupSrcPaths"
        ]
    },
    {
        "label" : "&Windows",
        "name" : "Windows",
        "actions" : [
            "LoadDesktop",
            "SaveDesktop",
            "DeleteDesktop",
            "ResetDesktop",
            "",
            "ResetHiddenMessages",
            "",
            "WindowsList",
            "NextWindow",
            "PrevWindow",
            "CloseWindow",
            "FocusCLI2",
            "",
            "OutputWindow",
            "WindowActivate1",
            "WindowActivate2",
            "WindowActivate3",
            "WindowActivate4",
            "WindowActivate5",
            "WindowActivate6",
            "WindowActivate7",
            "WindowActivate8",
            "WindowActivate9"
        ]
    },
    {
        "label" : "Help",
        "name" : "Help",
        "actions" : [
            "ShowHelp",
            {
                "label" : "A&PI Documentation",
                "name" : "APIDoc",
                "actions" : [
                    "HelpPythonAPI",
                    "HelpIDASDK",
                    "HelpHexraysSDK",
                    "HelpIDCFunctions"
                ]
            },
#ifdef __NT__
//            "ExternalHelp",
#endif
            "About",
            "LicenseManager",
            "",
            "BuyIDA",
            "Homepage",
            "SupportForum",
            "CheckFreeUpdate",
            "BugReport"
        ]
    },

    // -------------------------------------------------------------------
    // "Local Types" menus for Structures (and unions), Enums and Typedefs
    // -------------------------------------------------------------------
    {
        "label" : "&Edit",
        "name" : "Types_S:Edit",
        "present_initially" : false,
        "actions" : [
            "EditCopy",
            "UndoAction",
            "RedoAction",
            "",
            "TilAddType",
            "TilDelType",
            "TilEditType",
            "",
            "TilExpandStruct",
            "ShrinkStruct",
            "CopyStruct",
            "",
            "MakeData",
            "DeclareStructVar",
            "MakeStrlit",
            "MakeArray",
            "TilDelTypeMember",
            "TilAddTypeMember",
            "MakeName",
            "SetType",
            "CreateStructFromData",
            "",
            "TilMakeComment",
            "",
            "JumpXref",
            "",
            {
                "label" : "&Field type",
                "name" : "Types_S:FieldType",
                "actions" : [
                    {
                        "label" : "&Offset",
                        "icon" : "themeicon-OpOffset",
                        "actions" : [
                            "OpOffset",
                            "OpOffsetCs",
                            "OpUserOffset",
                            "OpStructOffset"
                        ]
                    },
                    {
                        "label" : "&Number",
                        "icon" : "themeicon-OpNumber",
                        "actions" : [
                            "OpNumber",
                            "OpHex",
                            "OpDecimal",
                            "OpOctal",
                            "OpBinary",
                            "OpFloat",
                            "",
                            "ToggleLeadingZeroes"
                        ]
                    },
                    "OpChar",
                    "OpSegment",
                    "OpEnum",
                    "ChangeSign",
                    "BitwiseNegate"
                ]
            },
            "",
            "TilCSyntax"
        ]
    },
    {
        "label" : "&Edit",
        "name" : "Types_E:Edit",
        "present_initially" : false,
        "actions" : [
            "EditCopy",
            "UndoAction",
            "RedoAction",
            "",
            "TilAddType",
            "TilDelType",
            "TilEditType",
            "",
            "MakeData",
            "TilDelTypeMember",
            "TilAddTypeMember",
            "FuncChangeCC",
            "MakeName",
            "TilEditConst",
            "EditArgloc",
            "",
            "TilMakeComment",
            "ToggleLeadingZeroes"
            "",
            "TilCSyntax"
        ]
    },
    {
        "label" : "&Edit",
        "name" : "Types_T:Edit",
        "present_initially" : false,
        "actions" : [
            "EditCopy",
            "UndoAction",
            "RedoAction",
            "",
            "TilAddType",
            "TilDelType",
            "TilEditType",
            "",
            "TilMakeComment",
            "MakeName",
            "",
            "TilCSyntax"
        ]
    },
    {
        "label" : "&Edit",
        "name" : "Types_F:Edit",
        "present_initially" : false,
        "actions" : [
            "EditCopy",
            "UndoAction",
            "RedoAction",
            "",
            "TilEditType",
            "",
            "MakeData",
            "TilDelTypeMember",
            "TilAddTypeMember",
            "FuncChangeCC",
            "MakeName",
            "SetType",
            "EditArgloc",
            "",
            "TilMakeComment"
        ]
    },
    {
        "label" : "&Jump",
        "name" : "Types_S:Jump",
        "present_initially" : false,
        "actions" : [
            "JumpName",
            "JumpXref",
            "",
            "MarkPosition",
            "JumpPosition",
            "ClearMark"
        ]
    },
    {
        "label" : "&Jump",
        "name" : "Types_E:Jump",
        "present_initially" : false,
        "actions" : [
            "JumpName",
            "",
            "MarkPosition",
            "JumpPosition",
            "ClearMark"
        ]
    },
    {
        "label" : "&Jump",
        "name" : "Types_T:Jump",
        "present_initially" : false,
        "actions" : [
            "MarkPosition",
            "JumpPosition",
            "ClearMark"
        ]
    },
    {
        "label" : "&Jump",
        "name" : "Types_F:Jump",
        "present_initially" : false,
        "actions" : [
            "MarkPosition",
            "JumpPosition",
            "ClearMark"
        ]
    },
    {
        "label" : "Searc&h",
        "name" : "Types_S:Search",
        "present_initially" : false,
        "actions" : [
            "AskNextText",
            "JumpText",
            "",
            "SetDirection"
        ]
    },
    {
        "label" : "Searc&h",
        "name" : "Types_E:Search",
        "present_initially" : false,
        "actions" : [
            "AskNextText",
            "JumpText",
            "",
            "SetDirection"
        ]
    },
    {
        "label" : "Searc&h",
        "name" : "Types_T:Search",
        "present_initially" : false,
        "actions" : [
            "AskNextText",
            "JumpText",
            "",
            "SetDirection"
        ]
    },
    {
        "label" : "Searc&h",
        "name" : "Types_F:Search",
        "present_initially" : false,
        "actions" : [
            "AskNextText",
            "JumpText",
            "",
            "SetDirection"
        ]
    },

    // ---------------
    // "Notepad" menus
    // ---------------
    {
        "label" : "&Edit",
        "name" : "Database notepad:Edit",
        "present_initially" : false,
        "actions" : [
            "NotepadFind",
            "NotepadFindNext"
        ]
    },

    // -------------
    // "Choosers" menus
    // -------------
    {
        "label" : "&Edit",
        "name" : "Chooser:Edit",
        "present_initially" : false,
        "actions" : [
                "ChooserInsert",
                "ChooserDelete",
                "ChooserEdit",
                "ChooserRefresh",
                "",
                "UndoAction",
                "RedoAction",
                "",
                "ChooserCopy",
                "ChooserCopyAll",
                "",
                "ChooserUnsort",
                "",
                "ChooserQuickFilter",
                "ChooserModifyFilters",
                "ChooserResetFilters"
        ]
    },
    {
        "label" : "Searc&h",
        "name" : "Chooser:Search",
        "present_initially" : false,
        "actions" : [
                "ChooserSearch",
                "ChooserSearchAgain"
        ]
    }

    ,

    // -------------
    // Diff desktop
    // -------------


    {
        "label" : "&File",
        "name" : "diffmerge:File",
        "actions" : [
            "QuickStart",
            "QuitIDA"
        ]
    },
    {
        "label" : "&Edit",
        "name" : "diffmerge:Edit",
        "actions" : [
            "EditCopy",
            "Anchor",
            "SelectAll",
            "SelectIdentifier"
        ]
    },
    {
        "label" : "&Jump",
        "name" : "diffmerge:Jump",
        "template" :
        {
            "name" : "Jump"
        }
    },
    {
        "label" : "&Search",
        "name" : "diffmerge:Search",
        "template" :
        {
            "name" : "Search"
        }
    },
    {
        "label" : "&Windows",
        "name" : "diffmerge:Windows",
        "template" :
        {
            "name" : "Windows",
            "remove" : ["FocusCLI2"]
        }
    },
    {
        "label" : "&Help",
        "name" : "diffmerge:Help",
        "template" :
        {
            "name" : "Help",
            "remove" : ["APIDoc"]
        }
    }

]


//
//      Toolbars layout
//      ---------------
//

TOOLBARS_LAYOUT = [
    {
        "label" : "File",
        "name" : "FileToolBar",
        "actions" : [
            "LoadNewFile",
            "SaveBase"
        ]
    },
    {
        "label" : "Jump",
        "name" : "JumpToolBar",
        "actions" : [
            "Return",
            "UndoReturn"
        ]
    },
    {
        "label" : "Search",
        "name" : "SearchToolBar",
        "actions" : [
            "AskNextImmediate",
            "AskNextText",
            "AskBinaryText",
            "",
            "SearchNext",
            "",
            "SetDirection",
            "",
            "@LockHighlight"
        ]
    },
    {
        "label" : "Hide/Unhide",
        "name" : "HideToolBar",
        "actions" : [
            "Hide",
            "UnHide",
            "DelHiddenRange"
        ]
    },
    {
        "label" : "Analysis",
        "name" : "AnalysisToolBar",
        "actions" : [
            "OpenProblems",
            "Analysis"
        ]
    },
    {
        "label" : "Views",
        "name" : "ViewsToolBar",
        "actions" : [
            "WindowOpen",
            "ToggleDump",
            "Debugger"
        ]
    },
    {
        "label" : "Graph view",
        "name" : "GraphViewToolBar",
        "actions" : [
            "GraphFlatView",
            "GraphGraphView",
            "GraphProximityView",
            "",
            "GraphZoom100",
            "GraphZoomFit",
            "GraphLayout",
            "GraphPrint",
            "GraphSetupOptions",
            "GraphSetupColors"
        ]
    },
    {
        "label" : "Lists",
        "name" : "ListsToolBar",
        "actions" : [
            "OpenExports",
            "OpenImports",
            "OpenNames",
            "OpenFunctions",
            "OpenStrings"
        ]
    },
    {
        "label" : "Signatures/Types",
        "name" : "SignTypesToolBar",
        "actions" : [
            "OpenSignatures",
            "OpenTypeLibraries"
        ]
    },
    {
        "label" : "Types",
        "name" : "TypesToolBar",
        "actions" : [
            "OpenLocalTypes"
        ]
    },
    {
        "label" : "Cross references",
        "name" : "CrossReferencesToolBar",
        "actions" : [
            "OpenXrefs",
            "OpenCallers"
        ]
    },
    {
        "label" : "Segments",
        "name" : "SegmentsToolBar",
        "actions" : [
            "OpenSegments",
            "OpenSegmentRegisters",
            "OpenSelectors"
        ]
    },
    "", // Toolbar break
    {
        "label" : "Edit",
        "name" : "EditToolBar",
        "actions" : [
            "MakeCode",
            "MakeData",
            "DeclareStructVar",
            "@MakeStrlit",
            "MakeArray",
            "MakeName",
            "MakeUnknown"
        ]
    },
    {
        "label" : "Operand type",
        "name" : "OperandTypeToolBar",
        "actions" : [
            "@OpOffset",
            "@OpNumber",
            "OpChar",
            "OpSegment",
            "OpEnum",
            "OpStackVariable",
            "ChangeSign",
            "BitwiseNegate",
            "ManualOperand"
        ]
    },
    {
        "label" : "Utilities",
        "name" : "UtilitiesToolBar",
        "actions" : [
            "Calculate",
            "OpenNotepad",
            "ExecuteLine",
            "Execute"
        ]
    },
    {
        "label" : "Functions",
        "name" : "FunctionsToolBar",
        "actions" : [
            "Function",
            "OpenStackVariables",
            "SetType"
        ]
    },
    {
        "label" : "Local Types",
        "name" : "LocalTypesToolBar",
        "actions" : [
            "TilAddType",
            "TilDelType",
            "TilEditType"
        ]
    },
    {
        "label" : "Comments",
        "name" : "CommentsToolBar",
        "actions" : [
            "MakeComment",
            "MakeRptCmt",
            "MakeExtraLineA",
            "MakeExtraLineB"
        ]
    },
    {
        "label" : "Graphs",
        "name" : "GraphsToolBar",
        "actions" : [
            "GraphFunc",
            "CallFlow",
            "ChartXrefsTo",
            "ChartXrefsFrom",
            "ChartXrefsUser"
        ]
    },
    "", // Toolbar break
    {
        "label" : "Debug",
        "name" : "DebugToolBar",
        "actions" : [
            "ProcessStart",
            "ProcessPause",
            "ProcessExit",
            "@DebuggerList",
            "",
            "SwitchToSource",
            "ToggleSourceDebug"
        ]
    },
    {
        "label" : "Debugger commands",
        "name" : "DbgCommandsToolBar",
        "actions" : [
            "ThreadStepInto",
            "ThreadStepOver",
            "ThreadRunUntilReturn",
            "ThreadRunToCursor",
            "",
            "Threads",
            "Modules"
        ]
    },
    {
        "label" : "Breakpoints",
        "name" : "BreakpointsToolBar",
        "actions" : [
            "Breakpoints",
            "BreakpointAdd",
            "BreakpointDel"
        ]
    },
    {
        "label" : "Watches",
        "name" : "WatchesToolBar",
        "actions" : [
            "WatchList",
            "AddWatch",
            "DelWatch"
        ]
    },
    {
        "label" : "Tracing",
        "name" : "TracingToolBar",
        "actions" : [
            "TracingWindow",
            "",
            "ToggleTraceInstructions",
            "ToggleTraceFunctions",
            "",
            "StackTrace"
        ]
    }
    ,
    {
        "label" : "Merge",
        "name" : "MergeToolBar",
        "basic_mode" : false,
        "desktop_type" : "diff_merge",
        "actions" : [
            "DiffPrevChunk",
            "DiffCenterChunk",
            "DiffNextChunk",
            "DiffPrevConflict",
            "DiffNextConflict",
            "",
            "DiffApplyHandlerPickLocalOnConflict",
            "DiffApplyHandlerPickRemoteOnConflict",
            "",
            "DiffApplyPickLocal",
            "DiffApplyPickRemote",
            "",
            "DiffToggleBasePanel",
            "DiffToggleDetails"
        ]
    },
    {
        "label" : "Diff",
        "name" : "DiffToolBar",
        "basic_mode" : false,
        "desktop_type" : "diff_merge",
        "actions" : [
            "DiffPrevChunk",
            "DiffCenterChunk",
            "DiffNextChunk",
            "DiffProceedToTheNextStep",
            "",
            "DiffToggleDetails"
        ]
    }
]



//
//      File extension definitions
//      --------------------------
//

// IDA extensions
#ifdef __EA64__
  #define IDB_EXT "*.i64;*.id0"
#else
  #define IDB_EXT "*.id?"
#endif

// Identifier, Name,                                     Extension(s)
FILE_EXTENSIONS = {
  // file formats:
  // Windows
  EXE_WIN,     "PE Executables",                             "*.exe"
  DLL_WIN,     "PE Dynamic Libraries",                       "*.dll"
  DRV_WIN,     "PE/LE/NE Device Drivers",                    "*.sys;*.vxd;*.386;*.drv"
  OBJ_WIN,     "COFF/OMF Object Files",                      "*.obj"
  LIB_WIN,     "COFF/OMF Static Libraries",                  "*.lib"
  // DOS
  EXE_DOS,     "MZ/LE/DJGPP-COFF/Watcom-W32RUN Executables", "*.exe"
  DRV_DOS,     ".sys Device Drivers",                        "*.sys"
  OBJ_DOS,     "OMF Object Files",                           "*.obj"
  LIB_DOS,     "OMF Static Libraries",                       "*.lib"
  EXE_PHARLAP, ".exp PharLap Protected Mode Executables",    "*.exp"
  // Unix
  EXE_UNIX,    "ELF/COFF/A.OUT/QNX/SOM Executables",         "*"
  DLL_UNIX,    "ELF/COFF Dynamic Libraries",                 "*.so;*.so.*"
  OBJ_UNIX,    "ELF/COFF/SOM Object Files",                  "*.o"
  LIB_UNIX,    "ELF/COFF Static Libraries",                  "*.a"
  DLL_HPUX,    ".sl HP-UX SOM Dynamic Libraries",            "*.sl"
  // Mac
  EXE_MACOSX,  "Mac OS X Mach-O Executables",                "*"
  DLL_MACOSX,  "Mac OS X Mach-O Dynamic Libraries",          "*.dylib"
  EXE_MACOS,   "Mac OS PEF Executables",                     "*"
  OBJ_MACOSX,  "Mac OS X Mach-O Object Files",               "*.o"
  LIB_MACOSX,  "Mac OS X Mach-O Static Libraries",           "*.a"
  // Java
  CLASS_JAVA,  "Java Class Files",                           "*.cla*;*.cls"
  ZIP_JAVA,    ".jar/.zip Java Archives",                    "*.jar;*.zip"
  // .NET
  EXE_NET,     ".NET Executables",                           "*.exe"
  DLL_NET,     ".NET Dynamic Libraries",                     "*.dll"
  // various OS's
  EXE_OS2,     "OS/2 LX Executables",                        "*.exe"
  DRV_NETWARE, "NetWare Loadable Modules",                   "*.nlm;*.lan;*.dsk"
  EXE_BEOS,    "BeOS ELF/PEF Executables",                   "*"
  AMIGA,       "Amiga Hunk Files",                           "*"
  GEOS,        "GeoWorks GEOS Files",                        "*.geo"
  OS9,         "OS-9 Object Files",                          "*"
  EXE_FLEX,    ".cmd Motorola FLEX OS Executables",          "*.cmd"
  EXE_RT11,    ".sav PDP-11/RT-11 Executables",              "*.sav"
  // PDAs/handhelds
  EXE_ARM,     ".axf ARM Executables",                       "*.axf"
  OBJ_ARM,     "ARM Object Files",                           "*.o"
  EXE_EPOC,    ".app Symbian EPOC Executables",              "*.app"
  SIS_EPOC,    ".sis Symbian EPOC Installation Files",       "*.sis"
  EXE_PALM,    ".prc Palm Pilot Executables",                "*.prc"
  // consoles
  EXE_XBOX,    ".xbe Xbox Executables",                      "*.xbe"
  EXE_N64,     ".v64 Nintendo ROM Images",                   "*.v64"
  ROM_NGB,     ".bin Nintendo GameBoy ROM Images",           "*.bin"
  BIN_SPSX,    ".bin Sony PlayStation BIOS Images",          "*.bin"
  EXE_SPSX,    ".psx Sony PlayStation Executables",          "*.psx"
  OBJ_SPSX,    "Sony PlayStation Object Files",              "*.obj;*.o"
  EXE_SDC,     ".elf Sega Dreamcast ELF Executables",        "*.elf"
  // embedded
  INTEL_HEX,   ".hex Intel/MOS Hexadecimal Files",           "*.hex"
  S19_HEX,     ".s19 Motorola S-record Hexadecimal Files",   "*.s19"
  OBJ_INTEL,   "Intel OMF-386 Object Files",                 "*.obj"
  MAS,         ".p MAS Macro Assembler Code Files",          "*.p"
  SBN,         ".sbn Structured Binary Format Files",        "*.sbn"
  // binary files
  RAW_BIN,     "Binary/Raw Files",                           "*.bin;*.raw"
  ROM_BIN,     "ROM Images",                                 "*.rom"
  DUMP_BIN,    "Dump Files",                                 "*.dmp;*.dump;*.mdmp"
  // file categories (mainly used to define the default file filter):
  ALL,         "All Files",                                  "*"
  IDB,         "IDA Databases",                              IDB_EXT
  EXE,         "Executable Files",                           EXE_*
  DLL,         "Dynamic Libraries",                          DLL_*
  DRV,         "Drivers",                                    DRV_*
  OBJLIB,      "Object Files and Libraries",                 OBJ_*;LIB_*
  JAVA,        "Java Files",                                 *_JAVA
  NET,         ".NET Files",                                 *_NET
  ARM,         "ARM Files",                                  *_ARM
  EPOC,        "Symbian EPOC Files",                         *_EPOC
  SPSX,        "Sony PlayStation Files",                     *_SPSX
  HEX,         "Hexadecimal Files",                          *_HEX
  KNOWN,       "All known file extensions",                  *
}

//
//      Default file filter (used by the Open command)
//

DEFAULT_FILE_FILTER = { KNOWN ALL IDB EXE DLL DRV OBJLIB JAVA NET DRV_NETWARE GEOS EXE_FLEX EXE_RT11 ARM EPOC SPSX EXE_PALM EXE_XBOX EXE_N64 EXE_SDC HEX MAS SBN RAW_BIN ROM_BIN DUMP_BIN }

//-------------------------------------------------------------------------
//      User specific parameters
//-------------------------------------------------------------------------
//
//  If you don't want to modify IDAGUI.CFG file then you can create a file
//  called IDAUSERG.CFG and place additional parameters there.
//
//  The IDAUSERG.CFG file should be placed in the IDA/CFG directory.
//
#softinclude    <idauserg.cfg>