-
Notifications
You must be signed in to change notification settings - Fork 4
Context Menus
So far, all context menus use the AdvancedContextMenu class. The menu items have a model-view connection and all the model items are stored in a ContextRegistry which, when linked to a control, will find or create the AdvancedContextMenu instance associated with the registry, and it sets it as the control's ContextMenu so that standard context behaviour works.
There's one AdvancedContextMenu per registry, to help with performance and memory usage.
Context Menus also support a caption, and header-based separators

The context menu for a saved address entry, with "Modify" and "General" header separators
Context registries contain a list of group objects keyed by name with support for a "weight". This gives some control order the ordering of menu items in case a plugin wants to access known groups and insert their commands into a suitable location. A better API is probably needed.
Currently, there's only 2 types of groups:
- Static groups, which contain a list of entry instances.
- Dynamic groups, which contains a generator callback which can create entries based on the available context, and they're injected into the context menu at the location of the dynamic group entry (which is a placeholder entry so that the generator system knows where to put the items).
There's also the ContextCapturingMenu, which is used as a window's top level menu. This menu captures the fully-inherited IContextData of the control that was focused just before a menu item was opened in said menu
-
Home
- Connect to a console
- Scanning Options
- Scan results & Saved Address Table
- Remote Commands
- Memory Dump
- Tools
- Preferences/App Settings
-
API
- Making a custom connection
- Busy Tokens
- Models, ViewStates, MVP & Binding
- Plugins
- Config Pages
- Brushes and Icons
- Data Manager, Context Data and Data Keys
- Commands and Shortcuts
- Context Menus
- Windows and Dialogs