Kevin Chandler

[Updated 10/25] Custom context [& pulldown] menus: you build your own menu(s) of favorite/often used menu items (HoverRiteCustomContextMenu V2)

Discussion created by Kevin Chandler on Feb 19, 2019
Latest reply on Oct 25, 2019 by Jacky Hao


Updated 10/25/2019: V2.04: Fixed several errors in the code. Should be more stable now.

As a reminder, for menus that share the same underlined letter, like the Insert submenus: Annotations and Tables, an Enter is required to execute the currently highlighted selection. To specify an Enter in the menu's syntax, use a hyphen.


Updated 03/19/2019: No program changes, just a notice:

Of late, for reasons unknown to me, the "d" for the "Display Options" context menu no longer responds to the "d" sent to it, rendering the current rendition of this utility useless for making these dimension changes (jog, add to ordinate, center, reference). Even odder, is that I have another utility where the jog ("d-j") does work, but the other "d" menus don't.

BTW, to see which letters are underlined in a context menu, select "Customize menu":


Updated 03/01/2019: Version v1.02. Added the ability to run pulldown menus in addition to context menus.

To operate a pulldown menu instead of a context menu, begin your menu letters with an exclamation point "!". Then select the letters that generate the desired function (as usual).

Most of the pulldown menu items are already available as keyboard shortcuts (built-in or user created) and for mouse gestures, but this new functionality allows you to add to your custom menu instead.

The ini file format didn't change for v1.02 so you don't need to rebuild the menus from your current ini into the new ini file to use the latest exe. Just add an ! menu line.

For example, the last line in the attached "SW Drawing Menus.ini" opens the properties dialog:

I chose the same underline letter as in SW's menu, but as usual, this isn't a requirement.

Unlike a context menu, where the cursor is when you press your menu hotkey, most likely won't matter with pulldown menu items.


Update to 02/28/2019: I failed to mention that the "InitialDelay" and "MenuDelaySpeed" keys were already in your ini file, but prior to v1.01, the exe wasn't using them.

The values for these keys prior to v1.01 are faster (lower than 75 milliseconds), so you may need to adjust these to higher integers (more delay).

To edit the ini, simply double-click it. It will open in your default text editor. Edit the number following the = after these two keys.


Updated 02/28/2019: Version v1.01. Added menu delays. Default to 75 milliseconds.

This utility operates SW menus and depending on each computer which runs this, the utility can out run the menus causing erratic behavior or incorrect menu selection.

If this happens, edit the ini file and increase the value of either the "InitialDelay" key or the "MenuDelaySpeed" key. Enter an integer value.


Updated 02/20/2019: No program changes. SW view context menus behave differently than other context menus within SW.

1) The view menu doesn't respond to keyboard navigation (Enter and Up/Down).

2) Not all of the menu items have an underlined character, but:

2a) The ones that don't have underlined letters, don't respond to any of the letters in their name, such as "Alignment".

2b) Some items with underlined letters, such as "Recent Commands" and "More Dimensions" don't respond to their letter.

This I consider defective operation.



Although the view menu won't respond to this utility, you can still display it by specifying nothing after the delimiter (as shown above).

BTW: The reference dimension secret sauce, "d-s", is the same for ordinate and regular dimensions, so this one menu is good for all dims.


Updated 02/19/2019: No program changes, but I failed to mention earlier the "Reload" command.

While developing your menus (or for any ini edits), save your ini file and click Reload. This will reread your ini file without having to exit and restart your menu's exe file.

Also, I figured out how to capture the custom menu using Snipping tool. Above is an Excel custom menu and its ini menu lines.

Note the double separator made from two blank lines. Also, the caret is at the end of the last line. Blank lines beyond this will create separators at the bottom of your menu.

In Excel, Copy and Create List are both "c". Since Create List is the second one, there are two c's followed by the hyphen (for Enter).

In Excel, "n" is the underlined letter for "Clear contents", but in my menu, I preferred "C".


In your menus, you pick the content, each menu item's text, the menu order and organization, and optionally, which character for each menu item gets an underline.


All of the above items have an underlined character, but this isn't a requirement. Add them when and where you think it's best.

If you want to add an ampersand to your menu text as a literal "&", type &&. If you do this, you can still use a single "&" elsewhere to underline a character.




Attached is a utility, "HoverRiteCustomContextMenu V2.exe", that lets you build your own context menu for various entities so you can have a short list of the menu choices you use most often in one place.


Also, it's a single level menu, so you won't have to navigate menu levels, such as for the ordinate dimension display options.


Since it operates like the HoverRite function of HoverDubl, you don't have to right click to display your menu.

Just hover over the entity you would normally right click and press the hotkey (you can set this per custom menu).

Your custom menu displays and you can either click the required menu item or type its letter on the keyboard.


You don't run "HoverRiteCustomContextMenu V2.exe" directly, but you make a copy of it and name your copy to something applicable to your custom menu.

Then copy "HoverRiteCustomContextMenu V2.ini" and rename it to the same name (except keep its ini extension.


The other attachment, "SW Drawing", is an example of this.

It contains "SW Drawing Menus.exe", "SW Drawing Menus.ini" and "SW Drawing Menus.ico".


Edit your renamed ini file (double click an ini file and it opens in your default text editor) and edit for the hotkey you want to use and add your menu lines.


This is "SW Drawing Menus.ini" (comment lines in ini files begin with ; and I've deleted most of the comments here to reduce the clutter):


;Menu delimiter character
;Menu line syntax:
;menu &name(delimiter)menu letter
;The end of the data must be at the end of the last menu item.
;Do not include blank lines below this point, else separators will be created.
;&Clear contents|n
;&Jog ordinate|d-j
&Edit note|i


&Jog ordinate|d-j
&Re-Jog ordinate|d-r
&Add to ordinate|a-



For the hotkey, basically just type the keyboard combination you want to use. The program translates it to the required internal syntax.


For each menu line, type the text you wish to use.

If you want a character underlined, put an & before (w/o spaces).

Underlined letters can be typed to choose a menu instead of clicking it.


Type the pipe "|" (or other delimiter if you changed it in the ini file) and then type the letter that currently operates the menu item in the regular context (right click) menu.

If it's not underlined, this will take some investigation.

Type the first letter in the menu's text. If the desired function runs, then that's the letter to enter after the delimiter. This is why it's "I" in "&Edit note|i" as "i" runs the normal SW Edit Text menu item.

When typing menu letters, you don't need to press Alt with them or press Enter to run them.

If a letter is duplicated, each duplicate is highlighted with each press of the letter. When the correct menu item is highlighted, you would then press Enter to run that item.


When an Enter is required for your menu item, type a hyphen in the menu line at the required spot. This will be translated to an Enter.


This is why there are hyphens for the ordinate menus above: "a" and "d" each have two menu choices on the SW context menu.


Windows Snipping tool wouldn't let me display the resultant menu.


So extract all of the files in "SW Drawing" to one folder and run the exe file.

Place your cursor over a note or an ordinate dim and press Ctrl+2.

The menu displays.

Click the menu item required or type its underlined letter (if present, if not present, typing the first letter may work instead).


You can create as many menu items per menu as you like, but since you can create as many menu files as you like, I suggest separating menus into files on a common basis (drawings, parts, assemblies, etc.) to keep each selection of menu items short, topical and handy.


Copies of the parent exe file will use the icon of the parent exe file.

To add variety and to distinguish icons readily, you can create your own icon file for each menu.

(In MS Paint, color up a 48x48 BMP and convert it to ico format. I use File>Export in GIMP for the conversion.)

Give the ico file the same name as its parent exe file and set "UseCustomIcon" in the ini file to 1 (as shown above, otherwise set it to zero).


As an example, "SW Drawing Menus" uses its own icon.


If "UseCustomIcon" is set to 1 (one) and there's no matching ico file, the parent icon is used instead and without complaint.


Questions and comments are welcome.


Sorry, I don't have any images for you. [see above]


I hope you find this helpful.




PS: There's no V1 of this on the forum.

The first version used a different methodology to operate the menus, but I think V2 will be the more stable of the two.