[comp.windows.x.motif] Text in popup dialog

ems@socrates.JPL.NASA.gov (Eric Slimko) (09/07/90)

   Recently, I posted a question concerning the activate
callback of a Text widget in a Popup Dialog.  I tried
the suggestions that were...suggested, and had no luck.
The problem is that I can't get the activate callback to
work.  So, here is the test program I am working with.  If 
any X/Motif guru could take a look at this, I would be most 
appreciative...

-----Cut Here--------------
#include <X11/Intrinsic.h>
#include <Xm/Xm.h>
#include <Xm/BulletinB.h>
#include <Xm/PushB.h>
#include <Xm/Text.h>

Widget popup;

void doit(w, client_data, call_data)
Widget w;
int client_data;
caddr_t call_data;
{

    printf("\nHi!");
    if (client_data==1)
	XtManageChild(popup);

}

void main(argc, argv)
unsigned int argc;
char **argv;
{
    Widget toplevel;
    Widget form, btn, text;
    static String trans = { "<Key>Return: Activate()" };
     /*I tried all kinds of translations here*/
    Arg args[2];

    toplevel=XtInitialize (argv[0], "Xtest", NULL, 0, &argc, argv);

    form=XmCreateBulletinBoard(toplevel, "form", NULL, 0);
    XtManageChild(form);

    btn=XmCreatePushButton(form, "btn", NULL, 0);
    XtManageChild(btn);


   /*  I've tried it also with this argument, to no avail
    XtSetArg(args[0], XmNtextTranslations, XtParseTranslationTable(trans));*/

    popup=XmCreateBulletinBoardDialog(form, "popup", NULL, 0);
    text=XmCreateText(popup, "text", NULL, 0);
    XtOverrideTranslations(text, XtParseTranslationTable(trans)); /*This doesn't
	help either*/

    XtManageChild(text);
    XtAddCallback(text, XmNactivateCallback, doit, 0);
    
    XtAddCallback(btn, XmNactivateCallback, doit, 1);
    
    XtRealizeWidget(toplevel);

    XtMainLoop();
}

Oh, I tried putting the text widget in another composite widget (a row/column),
but no luck.

Thanks in advance,
-- 
Eric Slimko               |  Jet Propulsion Laboratories
ems@socrates.jpl.nasa.gov |  NASA/CalTech

mikey@eukanuba.wpd.sgi.com (Mike Yang) (09/07/90)

In article <1990Sep6.185706.26352@elroy.jpl.nasa.gov>, ems@socrates.JPL.NASA.gov (Eric Slimko) writes:
|>     static String trans = { "<Key>Return: Activate()" };

This should be:

     static String trans = { "<Key>Return: activate()" };

Making this change makes your posted program work.

-----------------------------------------------------------------------
                 Mike Yang        Silicon Graphics, Inc.
               mikey@sgi.com           415/335-1786

roger@zuken.co.jp (Roger Meunier) (09/07/90)

In your sample program you have:

>    static String trans = { "<Key>Return: Activate()" };

but the correct action routine name is "activate()" (lower-case 'a').

Why "Activate()" doesn't generate

	X Toolkit Warning: Actions not found: Activate

is because it is defined for XmBulletinBoard.  Having two [Aa]ctivate()s
keeps the Intrinsics from catching this for you.  Who's coordinating
the assignment of these action names, anyway?
--
Roger Meunier @ Zuken, Inc.  Yokohama, Japan	(roger@zuken.co.jp)