CLIM mail archive


Re: Menu Question

    Date: Fri, 3 Dec 1993 09:21 EST
    From:     Nichael Cramer <ncramer@BBN.COM>

    >Date: Thu, 2 Dec 1993 18:00 -0500
    >From: Scott McKay <>
    >Subject: Menu Question

    >    From:     Nichael Cramer <ncramer@BBN.COM>
    >    This is almost surely a FAQ, but...
    >    Is there some way I can invoke the motif-ish menus --i.e. the menus I get
    >    when I click-right on presentation-action-- in some other context?
    >    All other calls to a menu result in the standard clim-like menus (including
    >    when I try to reproduce what I find on the stack when I break in the middle
    >    of a right-button menu).
    >    (Ideally I would like to hand it the contents of a command-table, but
    >    invoked in some other context than a right-click.)
    >    Suggestions?
    >I believe that the method for FRAME-MANAGER-MENU-CHOOSE for the
    >Allegro Motif back-end looks at what the various arguments that have
    >been provided to MENU-CHOOSE are.  If it decides that the call to
    >MENU-CHOOSE is "too hairy" to use a Motif menu, it falls back to using
    >the more flexible CLIM menus.  What are the arguments you are passing
    >to MENU-CHOOSE?

    The first thing I tried was a call to
    MENU-CHOOSE-COMMAND-FROM-COMMAND-TABLE (which resulted in the clim-ish
    menus).  So apparently the contents there are too complicated.

For some reason I can't recall, MENU-CHOOSE-COMMAND-FROM-COMMAND-TABLE
uses MENU-CHOOSE-FROM-DRAWER, which is CLIM's low-level menu frob.  (Oh,
I remember! it's because M-C-C-F-C-T understands all about command table
menus, and uses presentation translators to actually drive the choice
mechanism).  That's why you're not seeing Motif menus.

    I then went into the stack that resulted from invoking the regular
    right-click menu.  From there I got the arguments that it hands to
    MENU-CHOOSE.  When I tried calling this myself, the menu came up, but
    contained gibberish (which led me to believe that I wasn't invoking the
    call in the correct context).

    Any way, following your hint above I tried a very simple call of the form
    (MENU-CHOOSE '("CAT" "DOG" "FROG") :associated-window MY-PANE) and I got
    the menu I wanted.

    Now what I'm doing is getting the stuff that I need out the command-table
    and constructing my own (very simple) item-list for MENU-CHOOSE.  A bit
    ham-handed, but more than sufficient for my specific needs.

Ham-handed, but it's probably the right thing for now.  At some point
someone should figure out if M-C-C-F-C-T can be made to simply use
MENU-CHOOSE.  Then this will all "just work".

    Thanks.  Apparently I just needed a nudge in the right direction.


Main Index | Thread Index