Path: utzoo!utgpu!watmath!att!dptg!rutgers!mailrus!wasatch!cs.utexas.edu!uunet!griffin!pwm
From: pwm@griffin.UUCP (Paul W. McClure)
Newsgroups: comp.windows.x
Subject: Re: Open Look Text Widgets
Message-ID: <207@griffin.UUCP>
Date: 15 Aug 89 13:52:05 GMT
References: <206@griffin.UUCP> <8908071605.AA14931@expo.lcs.mit.edu>
Organization: Phoenix Telecom, Inc., Rochester, NY
Lines: 150
Thank you for your follow-up to my article regarding Open Look
Text Widgets (Chris Peterson).
I'm responding with more information as you suggested
> I'm using Open Look with X11R2 and have a question regarding
> Text Widgets. It is similar to a recent posting for the Athena
> toolkit. I need access to selected text and its beginning coordinates
> in my application. I've tried to add actions and augment or override
> translations, for example;
> ": myaction()"
> Updating the translation table for an Open Look Text Widget does not
> seem to work (myaction() is never executed).
/* This is an example program (Selected_string() is never executed) */
/* **************************************************************** */
#include
#include
#include
#include
#include
#include
void Selected_string();
void QuitCallback();
static XtActionsRec actionsTable[] = {
{"Selected_string", Selected_string},
};
static char translation_table[] =
": Selected_string()";
Widget toplevel,
form,
textpane;
int
main(ac,av)
int ac;
char *av[];
{
Arg args[8];
register n;
XtTranslations new_translations;
if(ac != 2) {
fprintf(stderr,"Usage: %s text_filename\n",*av);
exit(1);
}
toplevel = OlInitialize(*av, "Test", NULL, 0, &ac, av);
XtAddActions(actionsTable, XtNumber(actionsTable));
new_translations = XtParseTranslationTable(translation_table);
n = 0;
XtSetArg(args[n], XtNxResizable, TRUE); n++;
XtSetArg(args[n], XtNyResizable, TRUE); n++;
form = XtCreateManagedWidget("form", formWidgetClass, toplevel,
args, n);
create_text_area(form,av[1]);
XtOverrideTranslations(textpane, new_translations);
XtRealizeWidget(toplevel);
XtMainLoop();
}
create_text_area(parent,textfile)
Widget parent;
char *textfile;
{
register n;
Arg args[32];
n = 0;
XtSetArg(args[n], XtNborderWidth, 0); n++;
XtSetArg(args[n], XtNbackground, (Pixel)2); n++;
XtSetArg(args[n], XtNfontColor, (Pixel)12); n++;
XtSetArg(args[n], XtNeditType, OL_TEXT_READ); n++;
XtSetArg(args[n], XtNfile, textfile); n++;
XtSetArg(args[n], XtNverticalSB, TRUE); n++;
XtSetArg(args[n], XtNgrow, OL_GROW_HORIZONTAL); n++;
XtSetArg(args[n], XtNwrap, FALSE); n++;
XtSetArg(args[n], XtNsourceType, OL_DISK_SOURCE); n++;
/* Form Constraints */
XtSetArg(args[n], XtNxAttachRight, TRUE); n++;
XtSetArg(args[n], XtNyAttachBottom, TRUE); n++;
XtSetArg(args[n], XtNxVaryOffset, FALSE); n++;
XtSetArg(args[n], XtNyVaryOffset, FALSE); n++;
XtSetArg(args[n], XtNyOffset, 58); n++;
XtSetArg(args[n], XtNxOffset, 49); n++;
XtSetArg(args[n], XtNxResizable, TRUE); n++;
XtSetArg(args[n], XtNyResizable, TRUE); n++;
textpane = XtCreateManagedWidget("textpane", textWidgetClass,
parent, args, n);
XtAddCallback(textpane, XtNleaveVerification, QuitCallback, textpane);
}
void
Selected_string(w, event, parms, nparms)
Widget w;
XEvent *event;
String *parms;
int nparms;
{
printf("Selected_string(): it works\n");
exit(0);
}
void
QuitCallback(w, clientData, callData)
Widget w;
caddr_t clientData,
callData;
{
printf("QuitCallback(): bye\n");
exit(0);
}
> Also for the Text Widget:
> - I would like to access the original translation table
> but have not had any luck doing so.
I cannot find a description of the Text Widget's default translation table
in the documentation I have for Open Look. I would like to read the
default translations so that I can include default actions in my new
table. I don't want to override the original action for the event, I
only want to add another action. According to my X Toolkit documentation,
XtAugmentTranslations will not help me if the event already exists in the
widget's translations.
Thank you
Paul McClure
Phoenix Telecom Inc.
uunet!fenicks!pwm