Show pageOld revisionsBacklinksBack to top This page is read only. You can view the source, but not change it. Ask your administrator if you think this is wrong. {{tag>category:"ide" category:"presentation server" }} ====== Context Menu updates ====== === Published 09 JUN 2021 at 11:51:20PM === == Updated on 10 JUN 2021 at 11:51:20PM == The next release of OpenInsight sees a few updates to context menus and the [[https://revdevx.com/2020/06/01/menu-designer-update-in-v10-0-8/|ContextMenu Designer]], so in this post we'll take a brief look at these upcoming changes. ===== Moving the focus ===== One important aspect of standard Windows context menu behavior is that the focus is moved (if possible) to the control that the menu belongs to. Current versions of OpenInsight do not follow this pattern so the next release includes a fix for this, and this is something you should be aware of just in case it impacts your application (though to be honest, we're not really expecting it to!). ===== Test-Run support ===== The Context-Menu Designer now supports the IDE "Test-Run" feature, so that you can see how your context menu will appear when you use it in your application. When you test-run your context menu you will see a simple dialog box with an edit control (EDL_TEST) and and a static control (TXT_TEST) like so: [[https://revdevx.files.wordpress.com/2021/06/testruncontextmenu.png|{{19519.9939814815_1.png}}]] Right-clicking either of these controls displays your context menu: [[https://revdevx.files.wordpress.com/2021/06/testruncontextmenu_rightclick.png|{{19519.9939814815_2.png}}]] Selecting an item displays it's fully-qualified name, which has the standard format of: <code wp-block-preformatted> "." ".CONTEXTMENU." </code> So, for the test run dialog, it will be one of the following: <code wp-block-preformatted> "RTI_DSN_CONTEXTMENU_TESTRUN.EDL_TEST.CONTEXTMENU." "RTI_DSN_CONTEXTMENU_TESTRUN.TXT_TEST.CONTEXTMENU." </code> E.g. [[https://revdevx.files.wordpress.com/2021/06/testruncontextmenu_clicked.png|{{19519.9939814815_3.png}}]] ===== Common menu support ===== The initial release of the [[https://revdevx.com/2020/06/01/menu-designer-update-in-v10-0-8/|ContextMenu Designer in v10.0.8]] included check-boxes for two "common menu" options as shown in the screenshot below. Each of these options appends a set of standard menu items to your context menu, and both have been enhanced for the next release and include new artwork as well. [[https://revdevx.files.wordpress.com/2021/06/contextmenucommonmenuoptions.png|{{19519.9939814815_4.png}}]] The "OI Menu" appends the following items: * Options - Display options for the current control. * Help - Display help for the current control. * Data Binding - Display [[https://revdevx.com/2021/06/07/the-showdatabinding-method/|data-binding information]] for the current control. Whilst the "Windows Menu" appends the following standard "Edit" items instead: * Undo * Cut * Copy * Paste * Delete * Select All In both cases the default system **CONTEXTMENU** event (i.e. [[https://revdevx.com/2017/08/22/context-menus-in-openinsight-part-ii/|the event responsible for actually displaying the menu]]) synchronizes the items to the parent control by using the **HELPFLAGS** and **EDITSTATEFLAGS** properties respectively. //(The definition for these items can be found in the SYSPROG "OIMENU_" and "WINMENU_" ContextMenu entities respectively - you may adjust these if you wish, but be aware that they may be overwritten in future OpenInsight updates, so you should make copies in your own application).// ===== The @MENUPARENT pseudo-control name ===== When using QuickEvents there are several pseudo-control names you can use, such as "@WINDOW", "@FOCUS" and "@SELF", that are resolved to a "real" control name at runtime. However, in order to be able to reference the context menu's parent control at runtime we've introduced a new pseudo-control name called "@MENUPARENT". This resolves to the name of the control displaying the menu and should be used in place of "@FOCUS" because it is perfectly possible for controls that don't accept the focus (like Static Text controls) to have a context menu, and @FOCUS would not resolve to the correct value. Note that @MENUPARENT can only be used with MENU QuickEvents for context menu items - it cannot be used with any other type or event. [[https://revdevx.files.wordpress.com/2021/06/contextmenuatmenuparent.png|{{19519.9939814815_5.png}}]] Context menus are an essential part of modern user interface design and we encourage you to use them as much as possible in your own applications - hopefully you'll find that the tools provided in OpenInsight 10 make this easy to achieve! === Comments === == Original ID: revdevx.com/?p=3375 == third_party_content/revdevx/19519.9939814815.txt Last modified: 2024/01/29 20:23by 127.0.0.1