Browse Prior Art Database

Enabling Switching between Window-Level and Context-Sensitive Helps

IP.com Disclosure Number: IPCOM000115330D
Original Publication Date: 1995-Apr-01
Included in the Prior Art Database: 2005-Mar-30
Document File: 2 page(s) / 122K

Publishing Venue

IBM

Related People

Cuthbertson, WL: AUTHOR [+4]

Abstract

Disclosed is a design an application can implement that allows context-sensitive helps to be defined for all controls and also permits the user to configure the application to provide window level helps for a help request, without requiring the application to define a separate help file for each configuration.

This text was extracted from an ASCII text file.
This is the abbreviated version, containing approximately 47% of the total text.

Enabling Switching between Window-Level and Context-Sensitive Helps

      Disclosed is a design an application can implement that allows
context-sensitive helps to be defined for all controls and also
permits the user to configure the application to provide window level
helps for a help request, without requiring the application to define
a separate help file for each configuration.

      In an OS/2* Presentation Manager* (PM) application, the user
can request help either by pressing the F1 function key or by
selecting the Help pushbutton with the mouse.  Under the current
version of the Common User Access* (CUA*) standards, the user is to
be presented with context-sensitive control level helps relating to
the control that currently has the focus.  However, it is much more
usable if the user is able to configure an application to either
present context-sensitive helps or window-level, general helps in
response to a help request.  The intent of this is for novice users
of an application to always get general window level help, while
advanced users get the more specific context-sensitive helps.

      This poses a very large problem to applications, because the
Help Manager used by PM supports only context-sensitive helps if they
have been defined.  When a help file is created, context-sensitive
helps need to be defined for each control.  When a help request is
received, the Help Manager queries to determine the control that
currently has the focus and checks if there is a help defined for
that control.  If so, that context-sensitive help is displayed.  If
no help has been defined, the window level help is displayed.

      An application can either define context-sensitive helps for
all of its controls, and thus always get context-sensitive help, or
it cannot define any context-sensitive helps, and thus always get
window-level helps.  This type of design does not provide for the
ability to switch back and forth between supplying context-sensitive
or window level helps as configured by the user.

      One solution to this problem is for the application to create a
help hook that intercepts all help requests before they reach the
application.  This hook needs to intercept the WM_HELP message and
the WM_TRANSLATEACCEL message for the F1 function key that serves as
the help accelerator.

      When the hook intercepts a help request, it checks a global
application flag that indicates which help level the user has
currently configured.  If context-sensitive helps were requested, the
hook passes the message onward and the Help Manager displays
context-sensitive helps as it normally does.  However, if the flag
indicates the user wants window-level helps, the hook would have to
cause the window level help to be displayed instead.  This can be
effected by sending directly to the Help Manager a HM_DISPLAY_HELP
message, passing the window level help ID, and then throwing away the
help request message so that it woul...