v06i003: xdir -- Directory Browser, Patch3
Dan Heller
argv%turnpike at Sun.COM
Wed Feb 28 20:46:22 AEST 1990
Submitted-by: Erik M. van der Poel <uunet!kddlab!sran8.sra.co.jp!erik>
Posting-number: Volume 6, Issue 3
Archive-name: xdir/patch3
Patch-To: xdir: Volume 4, Issue 14-15,97
Patch-To: xdir: Volume 5, Issue 14
This is the third set of patches for the SelFile directory browser
package.
These patches are for people with patchlevel 2. People with the R4
version (contrib/clients/selfile) should wait for the next set of
patches, which take the patchlevel from 3 to 4.
* Athena widget include files have moved to <X11/Xaw> in R4.
* R4 Athena widgets use Xaw... instead of Xt...
* The R4 Athena Text widget has a new programmer interface.
* It is still possible to compile in a pre-R4 environment using
-DSEL_FILE_PRE_R4_XAW_XMU.
* The patchlevel.h file has been updated to patch level three.
--
Erik M. van der Poel erik at sra.co.jp (Japan)
SRA, 1-1-1 Hirakawa-cho, Chiyoda-ku erik%sra.co.jp at uunet.uu.net (USA)
Tokyo 102 Japan. TEL +81-3-234-2692 erik%sra.co.jp at mcvax.uucp (Europe)
Prereq: 2
*** ../old/patchlevel.h Mon Jan 29 13:57:04 1990
--- patchlevel.h Mon Jan 29 13:58:20 1990
***************
*** 1 ****
! #define PATCHLEVEL 2
--- 1 ----
! #define PATCHLEVEL 3
*** ../old/Draw.c Mon Jan 29 13:57:08 1990
--- Draw.c Mon Jan 29 13:58:18 1990
***************
*** 1,5 ****
#ifndef lint
! static char rcsid[] = "$Header: Draw.c,v 1.11 89/09/28 16:32:19 erik Exp $";
#endif
/*
--- 1,5 ----
#ifndef lint
! static char rcsid[] = "$Header: Draw.c,v 1.2 89/12/15 11:59:08 kit Exp $";
#endif
/*
***************
*** 34,43 ****
--- 34,51 ----
#include <X11/StringDefs.h>
#if defined(SEL_FILE_XW) || defined(SEL_FILE_XWSCROLLBAR)
+
#include <Xw/Xw.h>
#include <Xw/ScrollBar.h>
+
#else /* defined(SEL_FILE_XW) || defined(SEL_FILE_XWSCROLLBAR) */
+
+ #ifdef SEL_FILE_PRE_R4_XAW_XMU
#include <X11/Scroll.h>
+ #else /* def SEL_FILE_PRE_R4_XAW_XMU */
+ #include <X11/Xaw/Scrollbar.h>
+ #endif /* def SEL_FILE_PRE_R4_XAW_XMU */
+
#endif /* defined(SEL_FILE_XW) || defined(SEL_FILE_XWSCROLLBAR) */
#define SF_DEFAULT_FONT "9x15"
***************
*** 223,229 ****
--- 231,243 ----
XtSetValues(selFileHScrolls[n], arglist, i);
#else /* defined(SEL_FILE_XW) || defined(SEL_FILE_XWSCROLLBAR) */
if ((SFdirPtr + n < SFdirEnd) && dir->nEntries && dir->nChars) {
+
+ #ifdef SEL_FILE_PRE_R4_XAW_XMU
XtScrollBarSetThumb(
+ #else /* def SEL_FILE_PRE_R4_XAW_XMU */
+ XawScrollBarSetThumb(
+ #endif /* def SEL_FILE_PRE_R4_XAW_XMU */
+
selFileVScrolls[n],
(float) (((double) dir->vOrigin) /
dir->nEntries),
***************
*** 231,237 ****
--- 245,257 ----
? dir->nEntries : SFlistSize)) /
dir->nEntries)
);
+
+ #ifdef SEL_FILE_PRE_R4_XAW_XMU
XtScrollBarSetThumb(
+ #else /* def SEL_FILE_PRE_R4_XAW_XMU */
+ XawScrollBarSetThumb(
+ #endif /* def SEL_FILE_PRE_R4_XAW_XMU */
+
selFileHScrolls[n],
(float) (((double) dir->hOrigin) / dir->nChars),
(float) (((double) ((dir->nChars <
***************
*** 239,248 ****
--- 259,277 ----
SFcharsPerEntry)) / dir->nChars)
);
} else {
+
+ #ifdef SEL_FILE_PRE_R4_XAW_XMU
XtScrollBarSetThumb(selFileVScrolls[n], (float) 0.0,
(float) 1.0);
XtScrollBarSetThumb(selFileHScrolls[n], (float) 0.0,
(float) 1.0);
+ #else /* def SEL_FILE_PRE_R4_XAW_XMU */
+ XawScrollBarSetThumb(selFileVScrolls[n], (float) 0.0,
+ (float) 1.0);
+ XawScrollBarSetThumb(selFileHScrolls[n], (float) 0.0,
+ (float) 1.0);
+ #endif /* def SEL_FILE_PRE_R4_XAW_XMU */
+
}
#endif /* defined(SEL_FILE_XW) || defined(SEL_FILE_XWSCROLLBAR) */
***************
*** 310,316 ****
--- 339,350 ----
#else /* defined(SEL_FILE_XW) || defined(SEL_FILE_XWSCROLLBAR) */
+ #ifdef SEL_FILE_PRE_R4_XAW_XMU
XtScrollBarSetThumb(
+ #else /* def SEL_FILE_PRE_R4_XAW_XMU */
+ XawScrollBarSetThumb(
+ #endif /* def SEL_FILE_PRE_R4_XAW_XMU */
+
selFileVScrolls[n],
(float) (((double) dir->vOrigin) / dir->nEntries),
(float) (((double) ((dir->nEntries < SFlistSize) ?
***************
*** 610,616 ****
--- 644,656 ----
XtSetValues(selFileVScrolls[n], arglist, i);
#else /* defined(SEL_FILE_XW) || defined(SEL_FILE_XWSCROLLBAR) */
if (dir->nEntries) {
+
+ #ifdef SEL_FILE_PRE_R4_XAW_XMU
XtScrollBarSetThumb(
+ #else /* def SEL_FILE_PRE_R4_XAW_XMU */
+ XawScrollBarSetThumb(
+ #endif /* def SEL_FILE_PRE_R4_XAW_XMU */
+
selFileVScrolls[n],
(float) (((double) dir->vOrigin) / dir->nEntries),
(float) (((double) ((dir->nEntries < SFlistSize) ?
***************
*** 904,910 ****
--- 944,956 ----
float f;
f = ((double) new) / dir->nEntries;
+
+ #ifdef SEL_FILE_PRE_R4_XAW_XMU
XtScrollBarSetThumb(
+ #else /* def SEL_FILE_PRE_R4_XAW_XMU */
+ XawScrollBarSetThumb(
+ #endif /* def SEL_FILE_PRE_R4_XAW_XMU */
+
w,
f,
(float) (((double) ((dir->nEntries < SFlistSize) ?
***************
*** 1000,1006 ****
--- 1046,1058 ----
float f;
f = ((double) new) / dir->nChars;
+
+ #ifdef SEL_FILE_PRE_R4_XAW_XMU
XtScrollBarSetThumb(
+ #else /* def SEL_FILE_PRE_R4_XAW_XMU */
+ XawScrollBarSetThumb(
+ #endif /* def SEL_FILE_PRE_R4_XAW_XMU */
+
w,
f,
(float) (((double) ((dir->nChars < SFcharsPerEntry) ?
***************
*** 1029,1037 ****
--- 1081,1097 ----
int n;
#if defined(SEL_FILE_XW) || defined(SEL_FILE_XWTEXTEDIT)
+
XwTextPosition pos;
+
#else /* defined(SEL_FILE_XW) || defined(SEL_FILE_XWTEXTEDIT) */
+
+ #ifdef SEL_FILE_PRE_R4_XAW_XMU
XtTextPosition pos;
+ #else /* def SEL_FILE_PRE_R4_XAW_XMU */
+ XawTextPosition pos;
+ #endif /* def SEL_FILE_PRE_R4_XAW_XMU */
+
#endif /* defined(SEL_FILE_XW) || defined(SEL_FILE_XWTEXTEDIT) */
#if defined(SEL_FILE_XW) || defined(SEL_FILE_XWSCROLLBAR)
***************
*** 1067,1075 ****
--- 1127,1143 ----
}
#if defined(SEL_FILE_XW) || defined(SEL_FILE_XWTEXTEDIT)
+
XwTextSetInsertPos(selFileField, pos);
+
#else /* defined(SEL_FILE_XW) || defined(SEL_FILE_XWTEXTEDIT) */
+
+ #ifdef SEL_FILE_PRE_R4_XAW_XMU
XtTextSetInsertionPoint(selFileField, pos);
+ #else /* def SEL_FILE_PRE_R4_XAW_XMU */
+ XawTextSetInsertionPoint(selFileField, pos);
+ #endif /* def SEL_FILE_PRE_R4_XAW_XMU */
+
#endif /* defined(SEL_FILE_XW) || defined(SEL_FILE_XWTEXTEDIT) */
}
***************
*** 1122,1128 ****
--- 1190,1202 ----
float f;
f = ((double) new) / SFdirEnd;
+
+ #ifdef SEL_FILE_PRE_R4_XAW_XMU
XtScrollBarSetThumb(
+ #else /* def SEL_FILE_PRE_R4_XAW_XMU */
+ XawScrollBarSetThumb(
+ #endif /* def SEL_FILE_PRE_R4_XAW_XMU */
+
w,
f,
(float) (((double) ((SFdirEnd < 3) ? SFdirEnd : 3)) /
*** ../old/Imakefile Mon Jan 29 13:56:48 1990
--- Imakefile Mon Jan 29 13:58:18 1990
***************
*** 15,20 ****
--- 15,25 ----
#
# -DSEL_FILE_XW
#
+ # By default, the program compiles correctly in the R4 environment, where Xaw
+ # header files are under <X11/Xaw/>. To compile in an earlier environment, use:
+ #
+ # -DSEL_FILE_PRE_R4_XAW_XMU
+ #
# Normally, the program should be linked with the R3 or a later version of the
# Xt Intrinsics, but it can be linked with the R2 Xt by defining the following:
#
***************
*** 32,37 ****
--- 37,43 ----
#------------------------------------------------------------------------------
#
# DEFINES = -DSEL_FILE_XW
+ DEFINES = CompatibilityFlags
SRCS = xdir.c SelFile.c Dir.c Path.c Draw.c
OBJS = xdir.o SelFile.o Dir.o Path.o Draw.o
*** ../old/Path.c Mon Jan 29 13:57:09 1990
--- Path.c Mon Jan 29 13:58:19 1990
***************
*** 1,5 ****
#ifndef lint
! static char rcsid[] = "$Header: Path.c,v 1.10 89/09/28 16:33:57 erik Exp $";
#endif
/*
--- 1,5 ----
#ifndef lint
! static char rcsid[] = "$Header: Path.c,v 1.2 89/12/15 11:59:24 kit Exp $";
#endif
/*
***************
*** 39,48 ****
--- 39,56 ----
#include <sys/stat.h>
#if defined(SEL_FILE_XW) || defined(SEL_FILE_XWSCROLLBAR)
+
#include <Xw/Xw.h>
#include <Xw/ScrollBar.h>
+
#else /* defined(SEL_FILE_XW) || defined(SEL_FILE_XWSCROLLBAR) */
+
+ #ifdef SEL_FILE_PRE_R4_XAW_XMU
#include <X11/Scroll.h>
+ #else /* def SEL_FILE_PRE_R4_XAW_XMU */
+ #include <X11/Xaw/Scrollbar.h>
+ #endif /* def SEL_FILE_PRE_R4_XAW_XMU */
+
#endif /* defined(SEL_FILE_XW) || defined(SEL_FILE_XWSCROLLBAR) */
#if defined(SYSV) || defined(USG)
***************
*** 684,690 ****
--- 692,704 ----
XtSetArg(arglist[i], XtNsliderOrigin, SFdirPtr); i++;
XtSetValues(selFileHScroll, arglist, i);
#else /* defined(SEL_FILE_XW) || defined(SEL_FILE_XWSCROLLBAR) */
+
+ #ifdef SEL_FILE_PRE_R4_XAW_XMU
XtScrollBarSetThumb(
+ #else /* def SEL_FILE_PRE_R4_XAW_XMU */
+ XawScrollBarSetThumb(
+ #endif /* def SEL_FILE_PRE_R4_XAW_XMU */
+
selFileHScroll,
(float) (((double) SFdirPtr) / SFdirEnd),
(float) (((double) ((SFdirEnd < 3) ? SFdirEnd : 3)) /
***************
*** 738,750 ****
--- 752,775 ----
#else /* defined(SEL_FILE_XW) || defined(SEL_FILE_XWTEXTEDIT) */
{
+
+ #ifdef SEL_FILE_PRE_R4_XAW_XMU
XtTextBlock text;
+ #else /* def SEL_FILE_PRE_R4_XAW_XMU */
+ XawTextBlock text;
+ #endif /* def SEL_FILE_PRE_R4_XAW_XMU */
text.firstPos = 0;
text.length = strlen(path);
text.ptr = path;
text.format = FMT8BIT;
+
+ #ifdef SEL_FILE_PRE_R4_XAW_XMU
XtTextReplace(selFileField, 0, strlen(SFtextBuffer), &text);
+ #else /* def SEL_FILE_PRE_R4_XAW_XMU */
+ XawTextReplace(selFileField, 0, strlen(SFtextBuffer), &text);
+ #endif /* def SEL_FILE_PRE_R4_XAW_XMU */
+
}
#endif /* defined(SEL_FILE_XW) || defined(SEL_FILE_XWTEXTEDIT) */
*** ../old/SFinternal.h Mon Jan 29 13:56:50 1990
--- SFinternal.h Mon Jan 29 13:58:19 1990
***************
*** 1,4 ****
! /* $Header: SFinternal.h,v 1.6 89/08/30 15:59:46 erik Exp $ */
/*
* Copyright 1989 Software Research Associates, Inc., Tokyo, Japan
--- 1,4 ----
! /* $Header: SFinternal.h,v 1.7 89/10/31 18:36:41 erik Exp $ */
/*
* Copyright 1989 Software Research Associates, Inc., Tokyo, Japan
***************
*** 30,40 ****
--- 30,49 ----
#include <X11/Xos.h>
#if defined(SEL_FILE_XW) || defined(SEL_FILE_XWTEXTEDIT)
+
#include <Xw/Xw.h>
#include <Xw/TextEdit.h>
+
#else /* defined(SEL_FILE_XW) || defined(SEL_FILE_XWTEXTEDIT) */
+
+ #ifdef SEL_FILE_PRE_R4_XAW_XMU
#include <X11/Text.h>
#include <X11/AsciiText.h>
+ #else /* def SEL_FILE_PRE_R4_XAW_XMU */
+ #include <X11/Xaw/Text.h>
+ #include <X11/Xaw/AsciiText.h>
+ #endif /* def SEL_FILE_PRE_R4_XAW_XMU */
+
#endif /* defined(SEL_FILE_XW) || defined(SEL_FILE_XWTEXTEDIT) */
#define SEL_FILE_CANCEL -1
***************
*** 94,102 ****
--- 103,119 ----
extern XSegment SFsegs[], SFcompletionSegs[];
#if defined(SEL_FILE_XW) || defined(SEL_FILE_XWTEXTEDIT)
+
extern XwTextPosition SFtextPos;
+
#else /* defined(SEL_FILE_XW) || defined(SEL_FILE_XWTEXTEDIT) */
+
+ #ifdef SEL_FILE_PRE_R4_XAW_XMU
extern XtTextPosition SFtextPos;
+ #else /* def SEL_FILE_PRE_R4_XAW_XMU */
+ extern XawTextPosition SFtextPos;
+ #endif /* def SEL_FILE_PRE_R4_XAW_XMU */
+
#endif /* defined(SEL_FILE_XW) || defined(SEL_FILE_XWTEXTEDIT) */
extern void
*** ../old/SelFile.c Mon Jan 29 13:57:06 1990
--- SelFile.c Mon Jan 29 13:58:19 1990
***************
*** 1,5 ****
#ifndef lint
! static char rcsid[] = "$Header: SelFile.c,v 1.13 89/10/27 15:41:26 erik Exp $";
#endif
/*
--- 1,5 ----
#ifndef lint
! static char rcsid[] = "$Header: SelFile.c,v 1.2 89/12/15 11:59:32 kit Exp $";
#endif
/*
***************
*** 54,84 ****
--- 54,116 ----
#include <X11/Shell.h>
#if defined(SEL_FILE_XW) || defined(SEL_FILE_XWFORM)
+
#include <Xw/Xw.h>
#include <Xw/Form.h>
+
#else /* defined(SEL_FILE_XW) || defined(SEL_FILE_XWFORM) */
+
+ #ifdef SEL_FILE_PRE_R4_XAW_XMU
#include <X11/Form.h>
+ #else /* def SEL_FILE_PRE_R4_XAW_XMU */
+ #include <X11/Xaw/Form.h>
+ #endif /* def SEL_FILE_PRE_R4_XAW_XMU */
+
#endif /* defined(SEL_FILE_XW) || defined(SEL_FILE_XWFORM) */
#if defined(SEL_FILE_XW) || defined(SEL_FILE_XWPUSHBUTTON)
+
#include <Xw/Xw.h>
#include <Xw/PButton.h>
+
#else /* defined(SEL_FILE_XW) || defined(SEL_FILE_XWPUSHBUTTON) */
+
+ #ifdef SEL_FILE_PRE_R4_XAW_XMU
#include <X11/Command.h>
+ #else /* def SEL_FILE_PRE_R4_XAW_XMU */
+ #include <X11/Xaw/Command.h>
+ #endif /* def SEL_FILE_PRE_R4_XAW_XMU */
+
#endif /* defined(SEL_FILE_XW) || defined(SEL_FILE_XWPUSHBUTTON) */
#if defined(SEL_FILE_XW) || defined(SEL_FILE_XWSCROLLBAR)
+
#include <Xw/Xw.h>
#include <Xw/ScrollBar.h>
+
#else /* defined(SEL_FILE_XW) || defined(SEL_FILE_XWSCROLLBAR) */
+
+ #ifdef SEL_FILE_PRE_R4_XAW_XMU
#include <X11/Scroll.h>
+ #else /* def SEL_FILE_PRE_R4_XAW_XMU */
+ #include <X11/Xaw/Scrollbar.h>
+ #endif /* def SEL_FILE_PRE_R4_XAW_XMU */
+
#endif /* defined(SEL_FILE_XW) || defined(SEL_FILE_XWSCROLLBAR) */
#if defined(SEL_FILE_XW) || defined(SEL_FILE_XWSTATICTEXT)
+
#include <Xw/Xw.h>
#include <Xw/SText.h>
+
#else /* defined(SEL_FILE_XW) || defined(SEL_FILE_XWSTATICTEXT) */
+
+ #ifdef SEL_FILE_PRE_R4_XAW_XMU
#include <X11/Label.h>
+ #else /* def SEL_FILE_PRE_R4_XAW_XMU */
+ #include <X11/Xaw/Label.h>
+ #endif /* def SEL_FILE_PRE_R4_XAW_XMU */
+
#endif /* defined(SEL_FILE_XW) || defined(SEL_FILE_XWSTATICTEXT) */
#include "SFinternal.h"
***************
*** 123,131 ****
--- 155,171 ----
XSegment SFsegs[2], SFcompletionSegs[2];
#if defined(SEL_FILE_XW) || defined(SEL_FILE_XWTEXTEDIT)
+
XwTextPosition SFtextPos;
+
#else /* defined(SEL_FILE_XW) || defined(SEL_FILE_XWTEXTEDIT) */
+
+ #ifdef SEL_FILE_PRE_R4_XAW_XMU
XtTextPosition SFtextPos;
+ #else /* def SEL_FILE_PRE_R4_XAW_XMU */
+ XawTextPosition SFtextPos;
+ #endif /* def SEL_FILE_PRE_R4_XAW_XMU */
+
#endif /* defined(SEL_FILE_XW) || defined(SEL_FILE_XWTEXTEDIT) */
int SFupperX, SFlowerY, SFupperY;
***************
*** 341,347 ****
u_char cstr[256];
#endif /* def SEL_FILE_JAPANESE */
! Arg arglist[20];
#if defined(SEL_FILE_XW) || defined(SEL_FILE_XWTEXTEDIT)
SFfieldData *data;
--- 381,387 ----
u_char cstr[256];
#endif /* def SEL_FILE_JAPANESE */
! Arg arglist[24];
#if defined(SEL_FILE_XW) || defined(SEL_FILE_XWTEXTEDIT)
SFfieldData *data;
***************
*** 488,493 ****
--- 528,535 ----
#else /* defined(SEL_FILE_XW) || defined(SEL_FILE_XWTEXTEDIT) */
XtSetArg(arglist[i], XtNstring, SFtextBuffer); i++;
XtSetArg(arglist[i], XtNlength, MAXPATHLEN); i++;
+
+ #ifdef SEL_FILE_PRE_R4_XAW_XMU
XtSetArg(arglist[i], XtNeditType, XttextEdit); i++;
XtSetArg(arglist[i], XtNtextOptions, 0 |
editable |
***************
*** 494,501 ****
--- 536,555 ----
resizeHeight |
wordBreak |
0); i++;
+ #else /* def SEL_FILE_PRE_R4_XAW_XMU */
+ XtSetArg(arglist[i], XtNeditType, XawtextEdit); i++;
+ XtSetArg(arglist[i], XtNwrap, XawtextWrapWord); i++;
+ XtSetArg(arglist[i], XtNresize, XawtextResizeHeight); i++;
+ #endif /* def SEL_FILE_PRE_R4_XAW_XMU */
+
+ #ifdef SEL_FILE_PRE_R4_XAW_XMU
selFileField = XtCreateManagedWidget("selFileField",
asciiStringWidgetClass, selFileForm, arglist, i);
+ #else
+ selFileField = XtCreateManagedWidget("selFileField",
+ asciiTextWidgetClass, selFileForm, arglist, i);
+ #endif
+
#endif /* defined(SEL_FILE_XW) || defined(SEL_FILE_XWTEXTEDIT) */
XtOverrideTranslations(selFileField,
***************
*** 930,938 ****
--- 984,1000 ----
(void) strcpy(SFcurrentPath, SFtextBuffer);
#if defined(SEL_FILE_XW) || defined(SEL_FILE_XWTEXTEDIT)
+
SFtextPos = XwTextGetInsertPos(selFileField);
+
#else /* defined(SEL_FILE_XW) || defined(SEL_FILE_XWTEXTEDIT) */
+
+ #ifdef SEL_FILE_PRE_R4_XAW_XMU
SFtextPos = XtTextGetInsertionPoint(selFileField);
+ #else /* def SEL_FILE_PRE_R4_XAW_XMU */
+ SFtextPos = XawTextGetInsertionPoint(selFileField);
+ #endif /* def SEL_FILE_PRE_R4_XAW_XMU */
+
#endif /* defined(SEL_FILE_XW) || defined(SEL_FILE_XWTEXTEDIT) */
} else {
***************
*** 939,949 ****
--- 1001,1020 ----
(void) strcat(strcpy(SFcurrentPath, SFstartDir), SFtextBuffer);
#if defined(SEL_FILE_XW) || defined(SEL_FILE_XWTEXTEDIT)
+
SFtextPos = XwTextGetInsertPos(selFileField) +
strlen(SFstartDir);
+
#else /* defined(SEL_FILE_XW) || defined(SEL_FILE_XWTEXTEDIT) */
+
+ #ifdef SEL_FILE_PRE_R4_XAW_XMU
SFtextPos = XtTextGetInsertionPoint(selFileField) +
strlen(SFstartDir);
+ #else /* def SEL_FILE_PRE_R4_XAW_XMU */
+ SFtextPos = XawTextGetInsertionPoint(selFileField) +
+ strlen(SFstartDir);
+ #endif /* def SEL_FILE_PRE_R4_XAW_XMU */
+
#endif /* defined(SEL_FILE_XW) || defined(SEL_FILE_XWTEXTEDIT) */
}
dan
-----------------------------------------------------------
O'Reilly && Associates
argv at sun.com / argv at ora.com
632 Petaluma Ave, Sebastopol, CA 95472
800-338-NUTS, in CA: 800-533-NUTS, FAX 707-829-0104
Opinions expressed reflect those of the author only.
More information about the Comp.sources.x
mailing list