davy@RIACS.EDU (02/22/89)
I seem to recall seeing this discussed a while back, but of course I didn't care about it then... X.V11R3 xedit doesn't seem to display tabs. It puts them into the file, it just doesn't display them. Is there something I need to do for this? --Dave Curry davy@riacs.edu P.S. - If it matters, Sun 3/50, SunOS 4.0.1, X.V11R3 with Purdue speedups and all official patches.
brian@caen.engin.umich.edu (Brian Holtz) (03/19/89)
By contrast, the R2 version of xedit _does_ show me the tabs in my text files. Has anyone seen/fixed this? (R3, no patches or speedups, no gcc, Sun 3/50, SunOS 3.5)
duanev@kauai.ACA.MCC.COM (Duane Voth) (03/22/89)
I haven't found any way to call the SetTabs "method" provided for TextSinks in ascii*Widgets but the following hack works reasonably well. patch for xedit.c... *** xedit.c Wed Feb 8 19:36:39 1989 --- xedit.c.00 Tue Feb 7 10:57:09 1989 *************** *** 82,90 **** XtTextSource source, asource, dsource, psource, messsource; extern DoQ(); - extern void SetDefaultTabs(); - makeButtonsAndBoxes() { int boxHeight; --- 82,88 ---- *************** *** 141,147 **** MessArgs[1].value = (XtArgVal)XtAsciiSinkCreate(outer, NULL, 0); messwidget = XtCreateManagedWidget("messageWindow", textWidgetClass, outer, MessArgs, XtNumber(MessArgs)); - SetDefaultTabs(messwidget); XtPanedSetMinMax((Widget) messwidget, 40, 40); labelwindow = XtCreateManagedWidget("labelWindow",labelWidgetClass, --- 139,144 ---- *************** *** 151,157 **** TextArgs[1].value = (XtArgVal)XtAsciiSinkCreate(outer, NULL, 0); textwindow = XtCreateManagedWidget("editWindow", textWidgetClass, outer, TextArgs, XtNumber(TextArgs)); - SetDefaultTabs(textwindow); XtPanedSetRefigureMode(outer, TRUE); } --- 148,153 ---- new file tabs.c... /* * Set tabs to the usual every-8-stops standard * * This file exists outside of xedit.c cause I can't find a way to * access widget->text.sink->SetTabs without including all the * private Xt h files. * * 02/08/89 - duanev@mcc - created * */ #include <X11/IntrinsicP.h> #include <X11/StringDefs.h> #include <X11/Xatom.h> #include <X11/Xmu.h> #include <X11/Cardinals.h> #include <X11/TextP.h> #define TAB_COUNT 32 void SetDefaultTabs(widget) Widget widget; { Arg args[1]; Dimension leftmargin; XtTextSink sink = ((TextWidget)widget)->text.sink; void (*NullProc)() = NULL; /* some compilers require this */ Position tabs[TAB_COUNT], tab; int i; if (sink->SetTabs != NullProc) { XtSetArg(args[0], XtNleftMargin, &leftmargin); XtGetValues(widget, args, XtNumber(args)); for (i=0, tab=leftmargin; i<TAB_COUNT; i++) { tabs[i] = (tab += 8); } (sink->SetTabs) (widget, leftmargin, TAB_COUNT, tabs); } } and of course, add tabs.[co] to the Imakefile -- --- Effectiveness is the measure of Truth: ---- ALL systems are arbitrary! --- duane voth duanev@mcc.com --