Path: utzoo!attcan!utgpu!watmath!iuvax!rutgers!aramis.rutgers.edu!milind
From: milind@aramis.rutgers.edu (Milind Deshpande)
Newsgroups: comp.windows.x
Subject: Questions on popups.
Message-ID: 
Date: 17 Aug 89 14:40:38 GMT
Organization: Rutgers Univ., New Brunswick, N.J.
Lines: 60


	I have been playing with popup menus and I have following questions.
Please help me out (for X11R3 and athena widgets).

        I am still not clear why one needs to use XtTranslateCoords()
routine? Why can't one use x_toot and y_root values (instead of x and y
values) from event->xbutton structure?
***********

        Some of the athena widgets have 'actions' [such as set(),
highlight()] listed for them. Are there any such actions for shell
widgets? (Looks as if MenuPopup() and MenuPopdown() are.) Are there any other?
***********

        In my program, I have a button A, which when clicked upon, pops a menu.
To that end, the button uses the following:

        popup_actions = XtParseTranslationTable(
                ": set() move_menu() MenuPopup(menu)\n");

                /* move_menu() moves the popup menu shell to the right place */
The popup shell (for the menu) uses following translation:

        popdown_actions = XtParseTranslationTable(
                ": MenuPopdown()\n");

and each of the buttons in the menu use the following:

        button_actions = XtParseTranslationTable(
                        ": set()\n");

	All this works alright. The problem is that after the menu
pops down, button A still remains in 'active' state (it remains in
foreground color...black). I have to RE-ENTER and EXIT that button, to
bring it to 'inactive' state. This looks quite confusing for a user.
(I have seen this behavior in xpostit program too.)
Since the menu pops up in a 'XtGrabExclusive'
mode (Am I correct?), the button A never gets a 'LeaveWindow' event
(this is needed as per the default action table for the button to execute
reset() action). That's why the re-entering is essential. If I want to
use translation tables, how can I program this to avoid the "problem"?
************

        When I tried to use a XtGrabNonexclusive mode by for the popup
menu by using the following:

        popup_actions = XtParseTranslationTable(
                ": set() set_pos() MenuPopup(menu)\n");

        I got the following warning during execution of the program (the
program worked as per the translation table I specified).

"X Toolkit Warning: Pop-up menu creation is only supported on ButtonPress or
EnterNotify events."
        What does this mean?
*************

        Thanks a lot.
ilind@alux5.att.com
(Milind Deshpande)