home *** CD-ROM | disk | FTP | other *** search
- From: guido@cwi.nl (Guido van Rossum)
- Newsgroups: alt.sources
- Subject: STDWIN 0.9.6 patches, part 1/5
- Message-ID: <3647@charon.cwi.nl>
- Date: 7 Jun 91 13:31:50 GMT
-
- These patches produce STDWIN version 0.9.6 from version 0.9.5, which
- was posted here in March. See comp.windows.misc for more info about
- STDWIN and ftp availability.
-
- --Guido van Rossum, CWI, Amsterdam <guido@cwi.nl>
-
- INSTRUCTIONS: Parts 1-4 should be piped into "patch -p" with the
- current directory just *above* the stdwin source directory. Part 5 is
- a shar file containing a new version of a file that was changed so
- much that posting diffs would be a waste of bandwidth. You should
- also junk the following files/directories: Ports/vtrm/DIST,
- Ports/vtrm/uxtty.c, Ports/vtrm/vtrm.h (especially the latter matters,
- it has moved and changed!!)
-
- Prereq: 5
- *** 0.9.5/H/patchlevel.h Thu Feb 28 10:42:39 1991
- --- stdwin/H/patchlevel.h Fri Jun 7 13:36:25 1991
- ***************
- *** 1 ****
- ! #define PATCHLEVEL 5
- --- 1 ----
- ! #define PATCHLEVEL 6
- *** 0.9.5/README Mon Mar 4 12:31:35 1991
- --- stdwin/README Fri Jun 7 13:55:56 1991
- ***************
- *** 1,40 ****
- ! STDWIN INSTALLATION GUIDE
- ! -------------------------
-
- ! [last edit: 4 March 1991]
-
-
- What Is STDWIN
- ==============
-
- ! STDWIN (STanDard Window INterface) is a simple windowing interface for
- ! which multiple implementations exist; currently, programs using STDWIN
- ! can be made to run on Unix (using either alphanumeric terminals or the
- ! X11 Window System), on the Apple Macintosh (using THINK C or MPW), or
- ! on MS-DOS with a dumb display (using Microsoft C). If you insist, I
- ! also have two versions for the Atari ST that need some dusting off.
-
- ! For a longer introduction, read the (slightly outdated) file Doc/ABOUT.
- ! For more information on the Macintosh version, read Ports/mac/README,
- ! for MS-DOS, read Ports/msdos/README.
-
- - This is version 0.9.5. It is still a beta test version.
-
-
- Where To Get STDWIN
- ===================
-
- ! I regularly put the latest STDWIN distribution on two anonymous ftp
- ! sites. As the filename shows, to unpack this you need the programs
- ! uncompress and tar.
-
- ! site hp4nl.nluug.nl (IP address 192.16.202.2)
- ! directory pub/windows
- ! file stdwin*.tar.Z (the * is the version, e.g. 0.9.5)
-
- ! site wuarchive.wustl.edu (IP address 128.252.135.4)
- ! directory pub
- ! file stdwin*.tar.Z (the * is the version, e.g. 0.9.5)
-
- Don't forget to specify binary file transfer mode! ("type binary")
-
- --- 1,115 ----
- ! STDWIN ESSENTIAL INFORMATION
- ! ****************************
-
- ! [last edit: 7 June 1991]
-
-
- What Is STDWIN
- ==============
-
- ! STDWIN (STanDard Window INterface -- similar to STDIO) is a simple
- ! windowing interface for C programs, that is implemented on various
- ! platforms. The "flagship" implementations support the Macintosh and
- ! X11 windowing environments. The emphasis is on portability between
- ! platforms and a simple interface to the application, not on getting
- ! the maximum performance or functionality of one particular platform.
-
- ! For a longer introduction, read the (still outdated) file Doc/ABOUT.
- ! For more information on the Macintosh version, read Ports/mac/README.
- ! For MS-DOS, read Ports/msdos/README.
-
-
- + Supported Platforms
- + ===================
-
- + Currently, programs using STDWIN can be made to run on Unix under X11,
- + on alphanumeric terminals (using termcap -- obviously with some loss
- + of functionality), on the Apple Macintosh (using THINK C 4.0), or on
- + MS-DOS with a dumb display (using Microsoft C). I am working on
- + patches to get the Mac port running under MPW 3.x (which is quite
- + different in some respects from MPW 2.x); contact me if you need this
- + urgently. If you insist, I also have two versions for the Atari ST
- + (one for MWC and one for TurboC) that need a lot of dusting off, and
- + haven't been upgraded to all the lovely new features.
- +
- +
- + Copyright
- + =========
- +
- + Copyright 1988, 1989, 1991 by Stichting Mathematisch Centrum,
- + Amsterdam, The Netherlands.
- +
- + All Rights Reserved
- +
- + Permission to use, copy, modify, and distribute this software and its
- + documentation for any purpose and without fee is hereby granted,
- + provided that the above copyright notice appear in all copies and that
- + both that copyright notice and this permission notice appear in
- + supporting documentation, and that the names of Stichting Mathematisch
- + Centrum or CWI not be used in advertising or publicity pertaining to
- + distribution of the software without specific, written prior permission.
- +
- + STICHTING MATHEMATISCH CENTRUM DISCLAIMS ALL WARRANTIES WITH REGARD TO
- + THIS SOFTWARE, INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND
- + FITNESS, IN NO EVENT SHALL STICHTING MATHEMATISCH CENTRUM BE LIABLE
- + FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
- + WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
- + ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT
- + OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
- +
- +
- + This is Version 0.9.6
- + =====================
- +
- + I believe it is a mature product, except for the lack of complete
- + documentation. When I have finished the manual I'll release version
- + 1.0, and post it to an appropriate comp.sources group.
- +
- +
- Where To Get STDWIN
- ===================
-
- ! STDWIN 0.9.5 was posted to alt.sources in march 1991. I am posting
- ! diffs to get it up to STDWIN 0.9.6 in june 1991. The postings should
- ! still be available from sites that archive this newsgroup, such as
- ! wuarchive.wustl.edu (see below).
-
- ! STDWIN is also available from a number of ftp sites. The * in file
- ! names is the version number, e.g., 0.9.6 (the last digit is the patch
- ! level).
-
- !
- ! Sites hp4nl.nluug.nl (IP address 192.16.202.2)
- ! mcsun.eu.net (IP address 192.16.202.1)
- ! For whom users in the Netherlands and the rest of Europe
- ! Directory pub/windows
- ! File stdwin*.tar.Z
- ! Directory pub/programming/languages
- ! Files python*.tar.Z
- ! pythondoc[12].ps.Z
- ! Directory pub/comp/mac/compiler
- ! File Python.hqx
- !
- !
- ! Site wuarchive.wustl.edu (IP address 128.252.135.4)
- ! For whom users in North America
- ! Directory usenet/alt.sources
- ! Note Raw alt.sources archive, see README there. Grep -i the
- ! Index file for "stdwin" or "python".
- !
- !
- ! Site gatekeeper.dec.com (IP address 16.1.0.2)
- ! For whom users in North America
- ! Directory pub/misc
- ! File stdwin*.tar.Z
- ! Directory pub/misc/python
- ! Files python*.tar.Z
- ! pythondoc[12].ps.Z
- ! Python.hqx.Z
- !
- !
- ! I'll also try to put compressed tar images on wuarchive in /pub and on
- ! uunet in /tmp.
-
- Don't forget to specify binary file transfer mode! ("type binary")
-
- *** 0.9.5/Appls/dpv/Make.proto Thu Sep 6 10:33:36 1990
- --- stdwin/Appls/dpv/Make.proto Tue May 14 13:33:03 1991
- ***************
- *** 15,21 ****
- $(DPV)/dpvparse.c \
- $(DPV)/dpvrestart.c
-
- ! SRCLIBS= -lm
-
- all: dpv choose
-
- --- 15,21 ----
- $(DPV)/dpvparse.c \
- $(DPV)/dpvrestart.c
-
- ! SRCLIBS= -$(LIBMATH)
-
- all: dpv choose
-
- *** 0.9.5/Appls/dpv/dpv.c Thu Oct 18 18:18:12 1990
- --- stdwin/Appls/dpv/dpv.c Tue May 14 13:33:38 1991
- ***************
- *** 16,21 ****
- --- 16,22 ----
- int firstpage;
-
- winitargs(&argc, &argv);
- + wsetdefscrollbars(1, 1);
-
- if (argc > 0 && *argv != NULL && **argv != EOS) {
- progname= rindex(argv[0], '/');
- *** 0.9.5/Appls/dpv/dpvoutput.c Thu Oct 18 18:20:02 1990
- --- stdwin/Appls/dpv/dpvoutput.c Tue May 14 13:35:03 1991
- ***************
- *** 211,217 ****
- y += dv;
- }
- drawline(dh / 4, dv / 4);
- ! if (index(buf, EOL) == NULL) {
- int c;
- /* HIRO: don't know how to do handle this */
- error(WARNING, "rest of very long wiggly line ignored");
- --- 211,217 ----
- y += dv;
- }
- drawline(dh / 4, dv / 4);
- ! if (strchr(buf, EOL) == NULL) {
- int c;
- /* HIRO: don't know how to do handle this */
- error(WARNING, "rest of very long wiggly line ignored");
- *** 0.9.5/Appls/klok/Make.proto Thu Sep 6 10:03:25 1990
- --- stdwin/Appls/klok/Make.proto Wed Apr 3 22:45:47 1991
- ***************
- *** 9,15 ****
- $(KLOK)/klok.c \
- $(KLOK)/bsdsetdate.c
-
- ! SRCLIBS= -lm
-
- all: klok
-
- --- 9,15 ----
- $(KLOK)/klok.c \
- $(KLOK)/bsdsetdate.c
-
- ! SRCLIBS= $(LIBMATH)
-
- all: klok
-
- *** 0.9.5/Appls/klok/bsdsetdate.c Thu Feb 28 10:42:41 1991
- --- stdwin/Appls/klok/bsdsetdate.c Wed Apr 3 22:46:13 1991
- ***************
- *** 1,9 ****
- /* Set the date and time -- 4.3 BSD Unix version */
-
- - #ifndef sun
- - /* This is not needed on SunOS 4.03 (what about higher SunOS'es?). */
- - #include <time.h>
- - #endif
- #include <sys/time.h>
-
- #define isleap(y) ((y)%4 == 0 && ((y)%100 != 0 || (y)%400 == 0))
- --- 1,5 ----
- *** 0.9.5/Appls/klok/klok.c Thu Feb 28 10:42:41 1991
- --- stdwin/Appls/klok/klok.c Tue Apr 23 15:41:29 1991
- ***************
- *** 290,306 ****
- WINDOW *win;
- {
- int i;
- !
- /* Draw the fixed elements of the clock */
- #ifdef UGLY
- drawborder();
- drawoutline();
- #else
- - #ifdef macintosh
- wdrawcircle(centh+1, centv+1, radius+1);
- - #else
- - wdrawcircle(centh, centv, radius);
- - #endif
- for (i = 0; i < 12; ++i)
- drawmark(i*5); /* Hour marks */
- #endif
- --- 290,302 ----
- WINDOW *win;
- {
- int i;
- !
- /* Draw the fixed elements of the clock */
- #ifdef UGLY
- drawborder();
- drawoutline();
- #else
- wdrawcircle(centh+1, centv+1, radius+1);
- for (i = 0; i < 12; ++i)
- drawmark(i*5); /* Hour marks */
- #endif
- ***************
- *** 318,324 ****
- drawampm(ampm(&curtime));
- if (alarm >= 0)
- drawalarm();
- !
- /* Invert if the alarm is going */
- if (excited)
- winvert(0, 0, 10000, 10000);
- --- 314,320 ----
- drawampm(ampm(&curtime));
- if (alarm >= 0)
- drawalarm();
- !
- /* Invert if the alarm is going */
- if (excited)
- winvert(0, 0, 10000, 10000);
- ***************
- *** 643,649 ****
- centh = width/2;
- centv = height/2;
- radius = centv - wlineheight();
- ! CLIPMAX(radius, centh);
- newtime(TRUE);
- }
-
- --- 639,645 ----
- centh = width/2;
- centv = height/2;
- radius = centv - wlineheight();
- ! CLIPMAX(radius, centh-2);
- newtime(TRUE);
- }
-
- ***************
- *** 761,766 ****
- --- 757,763 ----
- {
- /* Initialize */
- winitargs(&argc, &argv);
- + wsetdefscrollbars(0, 0);
- buildmenu(); /* Must be done before setalarm is called */
-
- /* Find out program name */
- *** 0.9.5/Appls/test/hello.c Thu Feb 28 10:34:56 1991
- --- stdwin/Appls/test/hello.c Tue Jun 4 14:31:57 1991
- ***************
- *** 10,15 ****
- --- 10,16 ----
-
- int text_h, text_v;
-
- + void
- placetext(win)
- WINDOW *win;
- {
- ***************
- *** 19,24 ****
- --- 20,26 ----
- text_h= (width - wtextwidth(string, -1)) / 2;
- }
-
- + void
- drawproc(win, left, top, right, bottom)
- WINDOW *win;
- {
- ***************
- *** 38,47 ****
- for (;;) {
- EVENT e;
- wgetevent(&e);
- ! if (e.type == WE_CLOSE ||
- ! e.type == WE_COMMAND &&
- ! (e.u.command == WC_CLOSE ||
- ! e.u.command == WC_CANCEL))
- break;
- if (e.type == WE_SIZE)
- placetext(win);
- --- 40,46 ----
- for (;;) {
- EVENT e;
- wgetevent(&e);
- ! if (e.type == WE_CLOSE)
- break;
- if (e.type == WE_SIZE)
- placetext(win);
- *** 0.9.5/Appls/tetris/tetris.c Thu Feb 28 10:34:51 1991
- --- stdwin/Appls/tetris/tetris.c Thu Mar 28 16:33:18 1991
- ***************
- *** 727,732 ****
- --- 727,733 ----
- time(&t);
- srand((short)t ^ (short)(t>>16));
- winitargs(&argc, &argv);
- + wsetdefscrollbars(0, 0);
- if (wlineheight() == 1) {
- alfa = 1;
- sqwidth = 2;
- *** 0.9.5/Conf/mkmf Wed Aug 8 15:29:50 1990
- --- stdwin/Conf/mkmf Mon May 13 18:58:35 1991
- ***************
- *** 7,12 ****
- --- 7,18 ----
- else an application makefile is created."
-
- TOP=`(cd ..; pwd)`
- + case $TOP in
- + /tmp_mnt/*) TOP=`
- + echo "$TOP" | sed 's,^/tmp_mnt/,/hosts/,'
- + `
- + ;;
- + esac
-
- PORT=x11
-
- ***************
- *** 22,27 ****
- --- 28,37 ----
- vax|mips) OS=ultrix;;
- tahoe) OS=bsd;;
- esac
- + elif (hp-pa) 2>/dev/null
- + then
- + ARCH=hppa
- + OS=hpux
- fi
-
- while :
- ***************
- *** 44,54 ****
- '') echo "Sorry, can't guess architecture, use -a" 1>&2; exit 2;;
- esac
-
- # Create top level in the Build tree if necessary
-
- if test ! -d $TOP/Build
- then
- ! echo "Create $TOP/Build? [ny]"
- read reply
- case $reply in
- [yY]*) mkdir $TOP/Build || exit;;
- --- 54,71 ----
- '') echo "Sorry, can't guess architecture, use -a" 1>&2; exit 2;;
- esac
-
- + # Check out how to suppress trailing newline with echo
- +
- + case `echo -n` in
- + -n) n=; c='\c';;
- + '') n=-n; c=;;
- + esac
- +
- # Create top level in the Build tree if necessary
-
- if test ! -d $TOP/Build
- then
- ! echo $n "Create $TOP/Build? [ny] $c"
- read reply
- case $reply in
- [yY]*) mkdir $TOP/Build || exit;;
- ***************
- *** 58,64 ****
-
- if test ! -d $TOP/Build/$ARCH
- then
- ! echo "Create $TOP/Build/$ARCH? [ny]"
- read reply
- case $reply in
- [yY]*) mkdir $TOP/Build/$ARCH || exit;;
- --- 75,81 ----
-
- if test ! -d $TOP/Build/$ARCH
- then
- ! echo $n "Create $TOP/Build/$ARCH? [ny] $c"
- read reply
- case $reply in
- [yY]*) mkdir $TOP/Build/$ARCH || exit;;
- ***************
- *** 68,74 ****
-
- if test ! -d $TOP/Build/$ARCH/$PORT
- then
- ! echo "Create $TOP/Build/$ARCH/$PORT? [ny]"
- read reply
- case $reply in
- [yY]*) mkdir $TOP/Build/$ARCH/$PORT || exit;;
- --- 85,91 ----
-
- if test ! -d $TOP/Build/$ARCH/$PORT
- then
- ! echo $n "Create $TOP/Build/$ARCH/$PORT? [ny] $c"
- read reply
- case $reply in
- [yY]*) mkdir $TOP/Build/$ARCH/$PORT || exit;;
- *** /dev/null Fri Jun 7 14:31:40 1991
- --- stdwin/Conf/proto.arch.hppa Tue Apr 16 16:58:16 1991
- ***************
- *** 0 ****
- --- 1,29 ----
- +
- + #
- + # Definitions pertaining to HP Precision architecture
- + #
- +
- + # Define the name of this architecture here.
- + # This is used as a subdirectory name where all the objects for this
- + # architecture live: $(TOP)/Build/$(ARCH)
- + #
- + # Note that there is the silent assumption that there is only one O.S.
- + # per architecture. We'll have to invent composite architecture names,
- + # or insert an extra level in the build tree, if this becomes false...
- + #
- + ARCH= hppa
- +
- + # Define the name of the script used to update the dependencies in
- + # the Makefile.
- + # Choices are:
- + # slowmkdep -- always works (as far as I know)
- + # fastmkdep -- used cc -M, which isn't always available
- + # makedepend -- Todd Brunhoff's superfast tool (comes with X11)
- + # (This needs -Dunix because of configure.h)
- + # You may also place this definition in the proto.os.* file if you
- + # know a method works for every architecture supported by that OS.
- + #
- + #MKDEP= $(CONF)/slowmkdep
- + #MKDEP= $(CONF)/fastmkdep
- + #MKDEP= makedepend -Dunix
- +
- *** /dev/null Fri Jun 7 14:31:40 1991
- --- stdwin/Conf/proto.arch.ibmr2 Tue Apr 16 16:58:27 1991
- ***************
- *** 0 ****
- --- 1,14 ----
- +
- + #
- + # Definitions pertaining to IBM R2 architecture
- + #
- +
- + # Define the name of this architecture here.
- + # This is used as a subdirectory name where all the objects for this
- + # architecture live: $(TOP)/Build/$(ARCH)
- + #
- + # Note that there is the silent assumption that there is only one O.S.
- + # per architecture. We'll have to invent composite architecture names,
- + # or insert an extra level in the build tree, if this becomes false...
- + #
- + ARCH= ibmr2
- *** 0.9.5/Conf/proto.conf Thu Oct 18 15:24:30 1990
- --- stdwin/Conf/proto.conf Tue Apr 16 17:00:45 1991
- ***************
- *** 17,23 ****
- X11= $(PORTS)/x11
- GEN= $(TOP)/Gen
- VTRM= $(PORTS)/vtrm
- ! VTRM_ALL= $(PORTS)/vtrm/uxtty.c $(PORTS)/vtrm/vtrm.c
-
- # Names for subdirectories of $(PACKS)
- TEXTEDIT= $(TOP)/Packs/textedit
- --- 17,23 ----
- X11= $(PORTS)/x11
- GEN= $(TOP)/Gen
- VTRM= $(PORTS)/vtrm
- ! VTRM_ALL= $(PORTS)/vtrm/vtrm.c
-
- # Names for subdirectories of $(PACKS)
- TEXTEDIT= $(TOP)/Packs/textedit
- *** /dev/null Fri Jun 7 14:31:40 1991
- --- stdwin/Conf/proto.os.aix Tue Apr 16 16:58:40 1991
- ***************
- *** 0 ****
- --- 1,38 ----
- +
- + #
- + # Definitions pertaining to operating system AIX (IBM)
- + #
- +
- + # Define the name of this O.S. here.
- + #
- + OS= aix
- +
- + # Define the name of the script used to update the dependencies in
- + # the Makefile.
- + # Choices are:
- + # slowmkdep -- always works (as far as I know)
- + # fastmkdep -- uses cc -M, which isn't always available
- + # makedepend -- Todd Brunhoff's superfast tool (comes with X11)
- + # (This needs -Dunix because of configure.h)
- + # You may also place this definition in the proto.arch.* file if no
- + # method works for every architecture supported by this OS.
- + #
- + MKDEP= $(CONF)/slowmkdep
- + #MKDEP= $(CONF)/fastmkdep
- + #MKDEP= makedepend -Dunix
- +
- + # Define the system libraries to link with programs that use termcap and X11
- + # (In some cases these are architecture-dependent)
- + #
- + LIBTERMCAP= -lcurses
- + LIBX11= -lX11
- +
- + # Similar for the math library
- + #
- + LIBMATH= -lm
- +
- + # Other OS-specific choices (-I flags, -D flags, compiler options)
- + #
- + OSINCLS=
- + OSDEFS=
- + OSOPTS=
- *** 0.9.5/Conf/proto.os.amoeba Fri Oct 12 16:14:54 1990
- --- stdwin/Conf/proto.os.amoeba Tue Apr 16 17:00:48 1991
- ***************
- *** 7,20 ****
- #
- OS= amoeba
-
- - # Choose ONE of the following definitions of RANLIB.
- - # BSD-based systems will need ranlib to be called after a library is
- - # changed.
- - # SYSV-based systems don't have ranlib; the value 'true' makes Make happy.
- - #
- - RANLIB= ranlib # for BSD
- - #RANLIB= true # for SYSV
- -
- # Define the name of the script used to update the dependencies in
- # the Makefile.
- # Choices are:
- --- 7,12 ----
- *** 0.9.5/Conf/proto.os.bsd Thu Feb 21 10:52:05 1991
- --- stdwin/Conf/proto.os.bsd Tue Apr 16 17:00:50 1991
- ***************
- *** 4,12 ****
- #
-
- OS= bsd
- - RANLIB= ranlib
-
- # MKDEP is defined in proto.arch.*
-
- LIBTERMCAP= -ltermcap
- LIBX11= -lX11
- --- 4,13 ----
- #
-
- OS= bsd
-
- # MKDEP is defined in proto.arch.*
-
- LIBTERMCAP= -ltermcap
- LIBX11= -lX11
- + LIBMATH= -lm
- +
- *** /dev/null Fri Jun 7 14:31:40 1991
- --- stdwin/Conf/proto.os.hpux Tue Apr 16 17:00:52 1991
- ***************
- *** 0 ****
- --- 1,38 ----
- +
- + #
- + # Definitions pertaining to operating system HP-UX
- + #
- +
- + # Define the name of this O.S. here.
- + #
- + OS= hpux
- +
- + # Define the name of the script used to update the dependencies in
- + # the Makefile.
- + # Choices are:
- + # slowmkdep -- always works (as far as I know)
- + # fastmkdep -- uses cc -M, which isn't always available
- + # makedepend -- Todd Brunhoff's superfast tool (comes with X11)
- + # (This needs -Dunix because of configure.h)
- + # You may also place this definition in the proto.arch.* file if no
- + # method works for every architecture supported by this OS.
- + #
- + MKDEP= $(CONF)/slowmkdep
- + #MKDEP= $(CONF)/fastmkdep
- + #MKDEP= makedepend -Dunix
- +
- + # Define the system libraries to link with programs that use termcap and X11
- + # (In some cases these are architecture-dependent)
- + #
- + LIBTERMCAP= -ltermcap
- + LIBX11= -lX11
- +
- + # Similar for the math library
- + #
- + LIBMATH= -lm
- +
- + # Other OS-specific choices (-I flags, -D flags, compiler options)
- + #
- + OSINCLS= -I/usr/include/X11R4
- + OSDEFS= -DSYSV
- + OSOPTS=
- *** /dev/null Fri Jun 7 14:31:40 1991
- --- stdwin/Conf/proto.os.minix Tue Apr 16 17:00:54 1991
- ***************
- *** 0 ****
- --- 1,38 ----
- +
- + #
- + # Definitions pertaining to operating system XXX
- + #
- +
- + # Define the name of this O.S. here.
- + #
- + OS= minix
- +
- + # Define the name of the script used to update the dependencies in
- + # the Makefile.
- + # Choices are:
- + # slowmkdep -- always works (as far as I know)
- + # fastmkdep -- uses cc -M, which isn't always available
- + # makedepend -- Todd Brunhoff's superfast tool (comes with X11)
- + # (This needs -Dunix because of configure.h)
- + # You may also place this definition in the proto.arch.* file if no
- + # method works for every architecture supported by this OS.
- + #
- + MKDEP= $(CONF)/slowmkdep
- + #MKDEP= $(CONF)/fastmkdep
- + #MKDEP= makedepend -Dunix
- +
- + # Define the system libraries to link with programs that use termcap and X11
- + # (In some cases these are architecture-dependent)
- + #
- + #LIBTERMCAP= -ltermcap
- + #LIBX11= -lX11
- +
- + # Minix' math library is part of libc
- + #
- + LIBMATH=
- +
- + # Other OS-specific choices (-I flags, -D flags, compiler options)
- + #
- + OSINCLS= -I/usr/cstu10/meulenbr/minix/ack/include
- + OSDEFS= -D_MINIX
- + OSOPTS= -f -wo -O
- *** 0.9.5/Conf/proto.os.sony Fri Nov 16 12:58:49 1990
- --- stdwin/Conf/proto.os.sony Tue Apr 16 17:00:55 1991
- ***************
- *** 7,18 ****
- #
- OS= sony
-
- - # Choose ONE of the following definitions of RANLIB.
- - # BSD-based systems will need ranlib to be called after a library is
- - # changed.
- - #
- - RANLIB= ranlib # for BSD
- -
- # Define the name of the script used to update the dependencies in
- # the Makefile.
- # Choices are:
- --- 7,12 ----
- ***************
- *** 32,37 ****
- --- 26,35 ----
- #
- LIBTERMCAP= -ltermcap
- LIBX11= -lX11
- +
- + # Similar for the math library
- + #
- + LIBMATH= -lm
-
- # Other OS-specific choices (-I flags, -D flags, compiler options)
- #
- *** 0.9.5/Conf/proto.os.sunos Wed Aug 8 15:27:56 1990
- --- stdwin/Conf/proto.os.sunos Tue Apr 16 17:00:56 1991
- ***************
- *** 7,17 ****
- #
- OS= sunos
-
- - # BSD-based systems will need ranlib to be called after a library is
- - # changed.
- - #
- - RANLIB= ranlib # for BSD-based systems
- -
- # The mkdep using cc -M will work for any architecture (I hope)
- #
- MKDEP= $(CONF)/fastmkdep
- --- 7,12 ----
- ***************
- *** 20,23 ****
- --- 15,22 ----
- #
- LIBTERMCAP= -ltermcap
- LIBX11= -lX11
- +
- + # Similar for the math library
- + #
- + LIBMATH= -lm
-
- *** 0.9.5/Conf/proto.os.sysv Wed Aug 8 15:27:56 1990
- --- stdwin/Conf/proto.os.sysv Tue Apr 16 17:00:57 1991
- ***************
- *** 1,6 ****
-
- #
- ! # Definitions pertaining to (modern versions of) System V
- #
- # Disclaimer: this was only tested on a Silicon Graphics under IRIX 3.2
- #
- --- 1,6 ----
-
- #
- ! # Definitions pertaining to generic System V
- #
- # Disclaimer: this was only tested on a Silicon Graphics under IRIX 3.2
- #
- ***************
- *** 9,29 ****
- #
- OS= sysv
-
- - # SYSV-based systems don't have ranlib; the value 'true' makes Make happy.
- - #
- - RANLIB= true # for SYSV
- -
- # Defines to make various bits of code happy:
- # -DSYSV is the general test for System V.
- # -Datt is used at least by some X internal headers (and what else?)
- - # And, of course, index and rindex are called strchr and strrchr.
- #
- ! OSDEFS= -DSYSV -Datt -Dindex=strchr -Drindex=strrchr
-
- ! # The mkdep using cc -M will work for any architecture (I hope)
- #
- ! MKDEP= $(CONF)/fastmkdep
-
- # The system libraries to link with programs that use termcap and X11
- # are in proto.arch.* instead.
-
- --- 9,28 ----
- #
- OS= sysv
-
- # Defines to make various bits of code happy:
- # -DSYSV is the general test for System V.
- # -Datt is used at least by some X internal headers (and what else?)
- #
- ! OSDEFS= -DSYSV -Datt
-
- ! # The mkdep using /lib/cpp | sed ... is the safest to try...
- #
- ! MKDEP= $(CONF)/slowmkdep
-
- # The system libraries to link with programs that use termcap and X11
- # are in proto.arch.* instead.
- +
- + # Similar for the math library
- + #
- + LIBMATH= -lm
-
- *** 0.9.5/Conf/proto.os.ultrix Wed Aug 8 13:53:10 1990
- --- stdwin/Conf/proto.os.ultrix Tue Apr 16 17:00:59 1991
- ***************
- *** 4,13 ****
- #
-
- OS= ultrix
- - RANLIB= ranlib
-
- # MKDEP is defined in proto.arch.{vax,mips}
-
- LIBTERMCAP= -ltermcap
- LIBX11= -lX11
- !
- --- 4,12 ----
- #
-
- OS= ultrix
-
- # MKDEP is defined in proto.arch.{vax,mips}
-
- LIBTERMCAP= -ltermcap
- LIBX11= -lX11
- ! LIBMATH= -lm
- *** 0.9.5/Conf/proto.os.xxx Thu Oct 11 15:15:17 1990
- --- stdwin/Conf/proto.os.xxx Tue Apr 16 17:01:00 1991
- ***************
- *** 7,20 ****
- #
- OS= XXX
-
- - # Choose ONE of the following definitions of RANLIB.
- - # BSD-based systems will need ranlib to be called after a library is
- - # changed.
- - # SYSV-based systems don't have ranlib; the value 'true' makes Make happy.
- - #
- - RANLIB= ranlib # for BSD
- - RANLIB= true # for SYSV
- -
- # Define the name of the script used to update the dependencies in
- # the Makefile.
- # Choices are:
- --- 7,12 ----
- ***************
- *** 29,39 ****
- MKDEP= $(CONF)/fastmkdep
- MKDEP= makedepend -Dunix
-
- ! # Define the system libraries to link with programs that use termcap and X11
- # (In some cases these are architecture-dependent)
- #
- LIBTERMCAP= -ltermcap
- LIBX11= -lX11
-
- # Other OS-specific choices (-I flags, -D flags, compiler options)
- #
- --- 21,36 ----
- MKDEP= $(CONF)/fastmkdep
- MKDEP= makedepend -Dunix
-
- ! # Define the system libraries to link with programs that use termcap and X11.
- ! # (On SYSV it is often safer to link with -lcurses instead of -ltermcap.)
- # (In some cases these are architecture-dependent)
- #
- LIBTERMCAP= -ltermcap
- LIBX11= -lX11
- +
- + # Similar for the math library
- + #
- + LIBMATH= -lm
-
- # Other OS-specific choices (-I flags, -D flags, compiler options)
- #
- *** 0.9.5/Conf/putlibmf Mon Aug 13 13:00:28 1990
- --- stdwin/Conf/putlibmf Tue Apr 16 17:02:45 1991
- ***************
- *** 23,29 ****
- echo
- echo "$TARGET: \$(OBJS)"
- echo " ar cr @$TARGET \$(OBJS)"
- ! echo " \$(RANLIB) @$TARGET"
- echo " mv @$TARGET $TARGET"
- # ^^these are tabs!
- echo
- --- 23,30 ----
- echo
- echo "$TARGET: \$(OBJS)"
- echo " ar cr @$TARGET \$(OBJS)"
- ! echo " @echo never mind if ranlib does not exist -- probably SYSV"
- ! echo " -ranlib @$TARGET"
- echo " mv @$TARGET $TARGET"
- # ^^these are tabs!
- echo
- *** 0.9.5/Doc/ABOUT Fri Nov 16 13:36:07 1990
- --- stdwin/Doc/ABOUT Fri Jun 7 13:56:07 1991
- ***************
- *** 1,14 ****
- ! [Last modified on Sat Apr 15 20:19:00 MET DST 1989 by guido]
-
-
- 0. Copyright Notice
-
- ! STDWIN is copyrighted: Copyright (c) 1988, 1989 by Stichting Mathematisch
- ! Centrum, Amsterdam, The Netherlands. STDWIN is available for
- ! noncommercial use only, free of charge, and with no guarantees. It can
- ! be freely used and distributed provided these restrictions are honoured.
-
-
- 1. Target systems
-
- STDWIN is aimed at C programs. It consists of a few header files (of
- --- 1,33 ----
- ! [Last modified on Wed Apr 17 10:37:36 MET DST 1991 by frank (Chapters 0, 1, 2)]
- ! [ modified on Sat Apr 15 20:19:00 MET DST 1989 by guido]
-
-
- 0. Copyright Notice
-
- ! /***********************************************************
- ! Copyright 1988, 1989, 1991 by Stichting Mathematisch Centrum,
- ! Amsterdam, The Netherlands.
-
- + All Rights Reserved
-
- + Permission to use, copy, modify, and distribute this software and its
- + documentation for any purpose and without fee is hereby granted,
- + provided that the above copyright notice appear in all copies and that
- + both that copyright notice and this permission notice appear in
- + supporting documentation, and that the names of Stichting Mathematisch
- + Centrum or CWI not be used in advertising or publicity pertaining to
- + distribution of the software without specific, written prior permission.
- +
- + STICHTING MATHEMATISCH CENTRUM DISCLAIMS ALL WARRANTIES WITH REGARD TO
- + THIS SOFTWARE, INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND
- + FITNESS, IN NO EVENT SHALL STICHTING MATHEMATISCH CENTRUM BE LIABLE
- + FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
- + WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
- + ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT
- + OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
- +
- + ******************************************************************/
- +
- 1. Target systems
-
- STDWIN is aimed at C programs. It consists of a few header files (of
- ***************
- *** 22,37 ****
- functionality may be added, but the basic framework isn't going to
- change much.)
-
- ! * X version 11, release 3 (should still work with release 2)
- ! * Apple Macintosh, using either THINK C (3.01) or MPW C (2.02)
- ! * Atari ST, using Mark Williams C (2.1)
-
- You may volunteer to create a version for your favourite system, or to
- ! port it to your favourite C compiler for one of the mentioned micros.
- ! (The micro versions are rather compiler-dependent, due to the many
- ! differences between compilers and especially libraries. Expect
- ! difficulties if you have another compiler or version than the ones
- ! mentioned. Especially the Atari version is flakey.)
-
- A subset, emulating most of STDWIN's functionality on an alphanumeric
- display (excluding line drawing, but including multiple (non-overlapping)
- --- 41,51 ----
- functionality may be added, but the basic framework isn't going to
- change much.)
-
- ! * X version 11, release 4 (should still work with release 2 and 3)
- ! * Apple Macintosh, using either THINK C (4.02) or MPW C (2.02)
-
- You may volunteer to create a version for your favourite system, or to
- ! port it to your favourite C compiler for the mentioned micro.
-
- A subset, emulating most of STDWIN's functionality on an alphanumeric
- display (excluding line drawing, but including multiple (non-overlapping)
- ***************
- *** 41,50 ****
- * MS-DOS, using the Microsoft C compiler (4.0)
-
- Sorry, there are no versions yet for SunTools, SunView, NeWS, X10,
- ! MS-Windows, Presentation Manager or the Amiga. A hacker might be able
- ! to turn the Atari ST version into a general GEM version. The code is
- ! remarkably portable to different processor types and various Unix
- ! flavors, as long as they are derived from 4.xBSD.
-
-
- 2. Getting the full scoop
- --- 55,63 ----
- * MS-DOS, using the Microsoft C compiler (4.0)
-
- Sorry, there are no versions yet for SunTools, SunView, NeWS, X10,
- ! MS-Windows, Presentation Manager, Atari ST or the Amiga.
- ! The code is remarkably portable to different processor types and
- ! various Unix flavors, as long as they are derived from 4.xBSD.
-
-
- 2. Getting the full scoop
- ***************
- *** 54,67 ****
- Interface. Centre for Mathematics and Computer Science, report
- CS-R8817. Amsterdam, 1988).
-
- ! You can also get a source version for any or all of the above-mentioned
- ! systems. This is essentially a directory dump of my working version,
- ! until I have the time or get some help to prepare a real distribution.
- ! It is available through anonymous ftp access from uunet.uu.net.
- ! The directory is amiga-sources/stdwin (thanks to the moderator, Peter
- ! da Silva) get the file README.txt for further instructions. A version
- ! of this file is in ABOUT.txt. (The version on gatekeeper no longer
- ! exists, although it may be revived in the near future).
-
- Distribution to to non-ftp-users is solely by electronic mail. Be
- prepared to receive up to half a megabyte (in 32K pieces in "shar"
- --- 67,95 ----
- Interface. Centre for Mathematics and Computer Science, report
- CS-R8817. Amsterdam, 1988).
-
- ! STDWIN was posted to alt.sources around february 1991.
- ! It should be available from sites that archive this newsgroup, but I
- ! have no information on that. I also post patches to this group. (I
- ! will post the entire source to comp.sources.misc when I think the
- ! product is a little bit more finished.)
- !
- ! STDWIN is available from a number of ftp sites.
- ! The * in file names is the version number, e.g., 0.9.5 (the last digit
- ! is the patch level).
- !
- ! Current version number is 0.9.6 .
- !
- ! site hp4nl.nluug.nl (IP address 192.16.202.2)
- ! for whom users in the Netherlands and the rest of Europe
- ! file pub/windows/stdwin*.tar.Z
- !
- ! site wuarchive.wustl.edu (IP address 128.252.135.4)
- ! for whom users in North America
- ! file pub/stdwin*.tar.Z
- !
- ! site gatekeeper.dec.com (IP address 16.1.0.2)
- ! for whom users in North America
- ! file pub/misc/stdwin*.tar.Z
-
- Distribution to to non-ftp-users is solely by electronic mail. Be
- prepared to receive up to half a megabyte (in 32K pieces in "shar"
- *** 0.9.5/Doc/README Thu Feb 28 12:56:16 1991
- --- stdwin/Doc/README Fri Jun 7 12:58:18 1991
- ***************
- *** 2,7 ****
- --- 2,8 ----
- There is nothing here that even remotely resembles a user manual;
- "paper.ms" comes closest to a full description.
-
- + WHATSNEW summary of changes in version 0.9.6 since 0.9.5
- ABOUT the old STDWIN blurb that I used to mail out
- paper.ms the original STDWIN report
- seldoc.ms describes using X11 Selections and Cut Buffers in STDWIN
- *** /dev/null Fri Jun 7 14:31:40 1991
- --- stdwin/Doc/WHATSNEW Fri Jun 7 13:24:12 1991
- ***************
- *** 0 ****
- --- 1,284 ----
- + What's New in STDWIN 0.9.6
- + ==========================
- +
- + This release is a temporary measure, needed primarily to support the
- + upcoming release 0.9.2 of the Python programming language. It is
- + still lacking complete and up-to-date documentation.
- +
- + For those who are familiar with STDWIN 0.9.5, here is a summary of the
- + main changes in version 0.9.6 (of course, a number of bugs were also
- + fixed).
- +
- +
- + Overview of the changes
- + -----------------------
- +
- + - Initialization is now separated in argument processing and actual
- + initialization.
- + - Scroll bars can be turned off with an option at window creation time.
- + - More inquiry functions, e.g., document size, window position.
- + - Filled and XOR mode drawing of circles and elliptical arcs.
- + - Polygon drawing (filled, outline and XOR).
- + - Color drawing.
- + - Modifier keys (control, shift, meta etc.) are passed in mouse events.
- + - Closing a window is now indicated by a separate event, WE_CLOSE.
- + - New event type WE_KEY reports non-ASCII keys and keys with modifiers.
- +
- + The new calls are documented the following sections.
- +
- +
- + New Initialization Calls
- + ------------------------
- +
- + Some window systems (like X11) have a standard set of command line
- + options that support overriding defaults by the end user. The new
- + function wargs() parses the command line options and saves them for
- + later use by winit() and wopen().
- +
- + void wargs(int *p_argc, char ***p_argv);
- +
- + This function should be called before winit(), as early as possible
- + during the execution of main(), passing it the addresses of main's
- + arguments argc and argv. It may modify argc and argv to reflect the
- + extraction of recognized options.
- +
- + The application's argument parser does not have to worry about
- + conflicting options, as long as it uses the getopt() interface to
- + parse its own options. On the Mac, this function initializes argc and
- + argv from the program arguments passed by the Finder; if the
- + application is called from the Finder's Print menu entry, the first
- + argument will be the string "-p".
- +
- + If the application decides not to call winit() after it has called
- + wargs(), it need not call wdone() before exiting. If wargs() has not
- + been called when winit() is called, system-defined defaults are
- + assumed. On X11, resources can still be specified for such
- + applications; the program name is assumed to be "stdwin" and its class
- + "Stdwin", unless the RESOURCE_NAME environment variable is set.
- +
- + void winitargs(int *p_argc, char ***p_argv);
- +
- + This is equivalent to a call to wargs(p_argc, p_argv) followed by a
- + call to winit().
- +
- +
- + Scroll Bars Made Optional
- + -------------------------
- +
- + It is now possible to specify whether a window should have scroll
- + bars. This must be specified before the window is created and cannot
- + be changed once it is created. By default, windows will have a
- + vertical scroll bar but no horizontal scroll bar.
- +
- + void wsetdefscrollbars(int need_hbar, int need_vbar);
- +
- + Specifies which scroll bars will be present on subsequently created
- + windows. If need_hbar is nonzero, new windows will be created with
- + horizontal scroll bars; if need_vbar is nonzero, new windows will be
- + created with vertical scroll bars.
- +
- + void wgetdefscrollbars(int *need_hbar_return, *need_vbar_return);
- +
- + Returns the current status of the scroll bar creation flags set by
- + wsetdefscrollbars() through its arguments.
- +
- + Note that even if they are present, scroll bars are only activated
- + when the document size in their direction is set to a value larger
- + than the window size.
- +
- +
- + More Inquiry Functions
- + ----------------------
- +
- + void wgetdefwinsize(int *width_return, int *height_return);
- +
- + Return the default initial size for new windows, as set by
- + wsetdefwinsize(). Zero or negative values mean that a
- + system-dependent default method is used to find an initial size for
- + the window, e.g., interactive sizing.
- +
- + void wgetdefwinpos(int *h_return, int *v_return);
- +
- + Return the default initial position for new windows, as set by
- + wsetdefwinpos(). Zero or negative values mean that a system-dependent
- + default method is used to find an initial position for the window,
- + e.g., interactive placement.
- +
- + void wgetwinpos(WINDOW *win, int *h_return, int *v_return);
- +
- + Return the current window position on the screen. Together with
- + wgetwinsize() this can be used to save a window's geometry and
- + recreate it in the same state at a later time.
- +
- +
- + Color Drawing
- + -------------
- +
- + It is now possible to draw images in multiple colors, if the display
- + hardware allows this. The model uses the notion of current foreground
- + and background colors. Because different color hardware operates very
- + differently, the number of different colors and the way they are
- + selected is left unspecified by STDWIN.
- +
- + A type COLOR is defined, which is some kind of (long) integer
- + representing a color value; suitable values can be extracted by name
- + from an external color database. Applications that know on which
- + hardware they run may cheat, as the values of type COLOR will be
- + indexes into the color table or directly encode RGB value, but this
- + obviously restricts the application's portability.
- +
- + Applications can only assume the presence of colors named white and
- + black; on monochrome displays, these are all there is. Otherwise,
- + some standard colors are supposed to be available everywhere: gray25
- + (dark grey), gray50 (middle gray), gray75 (light gray), red, green,
- + blue, yellow, magenta, cyan. There are also some pseudo color names
- + that may be assigned defaults by the end user: foreground, background,
- + primary, secondary, selection, hilight. Some monochrome
- + implementations (especially the Mac) attempt to simulate a few gray
- + levels with fill patterns, but only as foreground color. On X11,
- + color names are looked up in the server's color database; the notation
- + #RGB, #RRGGBB (etc.) is also recognized.
- +
- + Each window has default foreground and background colors, which are in
- + effect immediately after wbegindrawing() and initially in draw
- + procedures. These default colors are specified by calling
- + wsetfgcolor() and wsetbgcolor() outside drawing mode before creating a
- + window. These colors may also be used to draw a window's
- + ornamentation such as scroll bars and menus; before a draw procedure
- + is called, the update area is cleared to the window's default
- + background color.
- +
- + Two drawing functions are unsafe when color is used: winvert() and
- + wxorline(). For all affected pixels, these are guaranteed to
- + correctly swap the current foreground and background colors, but other
- + colors are swapped with arbitrary colors, giving an undefined effect.
- + Inverting the pixels once more (with the same foreground and
- + background colors in effect!) will return them to their original
- + colors, however.
- +
- + Swapping the foreground and background colors has the effect of
- + drawing in inverse video; HOWEVER, this is not supported by the
- + termcap (alphanumeric) version of STDWIN, which bluntly ignores all
- + color requests.
- +
- + typedef ... COLOR;
- +
- + This type represents a color value. It is one of C's integral types,
- + so it is possible (and useful!) to declare variables of type COLOR.
- +
- + COLOR wfetchcolor(char *colorname);
- +
- + Look the color name up in the external database of color definitions
- + and return a color value for it, if possible. If the color is not
- + found in the database or no more color values are available (this
- + happens easily on systems with small color tables), the color value
- + for the default foreground is returned.
- +
- + void wsetfgcolor(COLOR color);
- +
- + Set the current foreground color. In drawing mode, set the foreground
- + color used for drawing; outside drawing mode, set the default
- + foreground color for windows created subsequently.
- +
- + void wsetbgcolor(COLOR color);
- +
- + Set the current background color. Similar to wsetfgcolor().
- +
- + COLOR wgetfgcolor();
- +
- + Return the current foreground color, as set by wsetfgcolor() or from a
- + system-defined default.
- +
- + COLOR wgetbgcolor().
- +
- + Return the current background color. Similar to wgetfgcolor().
- +
- +
- + Filled and Xor'ed Circles and Arcs
- + ----------------------------------
- +
- + void wfillcircle(int h, int v, int radius);
- +
- + Fills a circle with given center and radius.
- +
- + void wxorcircle(int h, int v, int radius);
- +
- + Inverts a circle with given center and radius.
- +
- + void wfillelarc(int h, int v, int hrad, int vrad, int angle1, int angle2);
- +
- + Fills a segment of an elliptical arc defined by the parameters as for
- + wdrawelarc.
- +
- + void wxorelarc(int h, int v, int hrad, int vrad, int angle1, int angle2);
- +
- + Inverts an elliptical arc defined by the parameters as for wdrawelarc.
- +
- +
- + Polygons
- + --------
- +
- + There is a way to draw arbitrary polygon shapes.
- +
- + typedef struct { short h, v; } POINT;
- +
- + This type is used to pass an array of points to the polygon routines.
- + Coordinates are specified as shorts so certain STDWIN versions
- + (especially the X11 version) can pass arrays of coordinates to routines
- + of the underlying window system without copying them.
- +
- + void wdrawpoly(int n, POINT points[]);
- +
- + Draws n-1 line segments given by n points: from points[0] to points[1],
- + from points[1] to points[2], etc., and finally from points[n-2] to
- + points[n-1].
- +
- + void wfillpoly(int n, POINT points[]);
- +
- + Fills polygon defined by n points. If points[n-1] does not equal
- + points[0], an additional line segment closing the polygon shape from
- + points[n-1] to points[0] is implied. The polygon may intersect itself.
- +
- + void wxorpoly(int n, POINT points[]);
- +
- + Inverts a filled polygon. The polygon is defined as for wfillpoly().
- +
- +
- + Modifier Keys in Mouse Events
- + -----------------------------
- +
- + The u.where.mask member of the EVENT structure now has a different
- + meaning. It reports the modifier keys that were pressed at the time
- + the event was generated. The following constants define bit masks for
- + various modifier keys:
- +
- + #define WM_SHIFT (1 << 0)
- + #define WM_LOCK (1 << 1)
- + #define WM_CONTROL (1 << 2)
- + #define WM_META (1 << 3)
- + #define WM_OPTION (1 << 4)
- + #define WM_NUM (1 << 5)
- +
- + On the Mac, WM_META corresponds to the Command modifier. In X11,
- + WM_META is really "Modifier 3", commonly bound to the Meta or Alt key;
- + WM_OPTION and WM_NUM are not normally reported in X11 so their use is
- + not portable.
- +
- +
- + The WE_CLOSE Event
- + ------------------
- +
- + To simplify event decoding somewhat, a user's close request is now
- + reported as an event (WE_CLOSE) rather than a subcode (WC_CLOSE) of
- + the WE_COMMAND event. All WE_COMMAND subcodes now report special
- + keys.
- +
- +
- + The WE_KEY Event
- + ----------------
- +
- + If a key is pressed together with the Meta key that is not a menu
- + shortcut, it is reported as a WE_KEY event. This event uses the union
- + member u.key which has members code and mask. The member u.key.code
- + specifies the ASCII code of the key; u.key.mask specifies the
- + modifiers that were pressed with the key.
- *** 0.9.5/Gen/waskfile.c Mon Oct 22 10:31:09 1990
- --- stdwin/Gen/waskfile.c Tue May 14 13:02:26 1991
- ***************
- *** 10,15 ****
- --- 10,17 ----
- and if it already exists confirmation is asked;
- if 'new' is FALSE, it should exist. */
-
- + /* XXX This should also refuse to open directories */
- +
- bool
- waskfile(prompt, buf, len, new)
- char *prompt;
- ***************
- *** 23,36 ****
- if (new) {
- if (access(buf, NOMODE) >= 0) { /* Existing file */
- if (access(buf, WMODE) >= 0) {
- ! switch (waskync("Overwrite? [ny]", 0)) {
- case -1: return FALSE;
- case 1: return TRUE;
- }
- - wmessage("Try again.");
- }
- else
- ! wmessage("No write permission.");
- }
- else {
- char *p= strrchr(buf, SEP);
- --- 25,38 ----
- if (new) {
- if (access(buf, NOMODE) >= 0) { /* Existing file */
- if (access(buf, WMODE) >= 0) {
- ! switch (waskync(
- ! "Overwrite existing file?", 0)) {
- case -1: return FALSE;
- case 1: return TRUE;
- }
- }
- else
- ! wmessage("No write permission");
- }
- else {
- char *p= strrchr(buf, SEP);
- ***************
- *** 45,59 ****
- return TRUE;
- }
- }
- ! wmessage("Can't create file.");
- }
- }
- else {
- if (access(buf, RMODE) >= 0)
- return TRUE;
- ! wmessage("File not found.");
- }
- - wfleep();
- break;
- }
- return FALSE;
- --- 47,60 ----
- return TRUE;
- }
- }
- ! wmessage("Can't create file");
- }
- }
- else {
- if (access(buf, RMODE) >= 0)
- return TRUE;
- ! wmessage("File not found");
- }
- break;
- }
- return FALSE;
- *** 0.9.5/H/stdwin.h Tue Feb 19 10:45:40 1991
- --- stdwin/H/stdwin.h Tue May 28 22:52:30 1991
- ***************
- *** 52,57 ****
- --- 52,59 ----
- } where;
- /* case WE_LOST_SEL: */
- int sel;
- + /* case WE_KEY: */
- + struct { int code; int mask; } key;
- } u;
- };
-
- ***************
- *** 75,81 ****
- #define WE_TIMER 11 /* Window's timer went off */
- #define WE_DEACTIVATE 12 /* Window became inactive */
- #define WE_EXTERN 13 /* Externally generated event (Amoeba) */
- ! #define WE_KEY 14 /* Low-level key event (reserved) */
- #define WE_LOST_SEL 15 /* Lost selection */
- #define WE_CLOSE 16 /* User wants to close window */
-
- --- 77,83 ----
- #define WE_TIMER 11 /* Window's timer went off */
- #define WE_DEACTIVATE 12 /* Window became inactive */
- #define WE_EXTERN 13 /* Externally generated event (Amoeba) */
- ! #define WE_KEY 14 /* Non-ASCII key event */
- #define WE_LOST_SEL 15 /* Lost selection */
- #define WE_CLOSE 16 /* User wants to close window */
-
- ***************
- *** 83,89 ****
- /* Special keys reported by WE_COMMAND */
- /* XXX Should become key events */
-
- ! #define WC_CLOSE 1 /* Now a separate event! */
- /* The following four are arrow keys */
- #define WC_LEFT 2
- #define WC_RIGHT 3
- --- 85,91 ----
- /* Special keys reported by WE_COMMAND */
- /* XXX Should become key events */
-
- ! #define WC_CLOSE 1 /* Obsolete */
- /* The following four are arrow keys */
- #define WC_LEFT 2
- #define WC_RIGHT 3
- ***************
- *** 119,124 ****
- --- 121,146 ----
- #define WS_SECONDARY 2
-
-
- + /* Masks for EVENT->u.where.mask and EVENT->u.key.mask.
- + Some of these happen to be the same as the X11 masks (which are cast
- + in stone for eternity); the implementation relies on that.
- + (It is merely a convention that Meta is bit 3, and Option/Num aren't
- + normally used in X11.) */
- +
- + #define WM_SHIFT (1 << 0)
- + #define WM_LOCK (1 << 1)
- + #define WM_CONTROL (1 << 2)
- + #define WM_META (1 << 3)
- + #define WM_OPTION (1 << 4)
- + #define WM_NUM (1 << 5)
- +
- + #define WM_BUTTON1 (1 << 8)
- + #define WM_BUTTON2 (1 << 9)
- + #define WM_BUTTON3 (1 << 10)
- + #define WM_BUTTON4 (1 << 11)
- + #define WM_BUTTON5 (1 << 12)
- +
- +
- /* TEXTATTR struct */
-
- /* The contents of a text attributes struct are disclosed here because
- ***************
- *** 134,139 ****
- --- 156,174 ----
- #define TEXTATTR struct _textattr
-
-
- + /* Color */
- +
- + #define COLOR long
- +
- +
- + /* Point type for wdrawpoly and wfillpoly -- compatible with X */
- +
- + struct _point {
- + short h, v;
- + };
- + #define POINT struct _point
- +
- +
- /*************************************/
- /* Section 2. Function declarations */
- /*************************************/
- ***************
- *** 146,157 ****
-
- void wgetscrsize _ARGS((int *pwidth, int *pheight));
- void wgetscrmm _ARGS((int *pmmwidth, int *pmmheight));
-
- void wsetmaxwinsize _ARGS((int width, int height));
- void wsetdefwinsize _ARGS((int width, int height));
- - void wsetdefwinpos _ARGS((int h, int v));
- void wgetdefwinsize _ARGS((int *pwidth, int *pheight));
- void wgetdefwinpos _ARGS((int *ph, int *pv));
-
- WINDOW *wopen _ARGS((char *title,
- void (*drawproc)(/*WINDOW *win,
- --- 181,195 ----
-
- void wgetscrsize _ARGS((int *pwidth, int *pheight));
- void wgetscrmm _ARGS((int *pmmwidth, int *pmmheight));
- + int wgetmouseconfig _ARGS((void));
-
- void wsetmaxwinsize _ARGS((int width, int height));
- void wsetdefwinsize _ARGS((int width, int height));
- void wgetdefwinsize _ARGS((int *pwidth, int *pheight));
- + void wsetdefwinpos _ARGS((int h, int v));
- void wgetdefwinpos _ARGS((int *ph, int *pv));
- + void wsetdefscrollbars _ARGS((/*bool*/int hbar, /*bool*/int vbar));
- + void wgetdefscrollbars _ARGS((/*bool*/int *phbar, /*bool*/int *pvbar));
-
- WINDOW *wopen _ARGS((char *title,
- void (*drawproc)(/*WINDOW *win,
- ***************
- *** 162,167 ****
- --- 200,206 ----
- void wsetactive _ARGS((WINDOW *win));
- WINDOW *wgetactive _ARGS((void));
- void wgetwinsize _ARGS((WINDOW *win, int *width, int *height));
- + void wgetwinpos _ARGS((WINDOW *win, int *h, int *v));
- void wsetdocsize _ARGS((WINDOW *win, int width, int height));
- void wgetdocsize _ARGS((WINDOW *win, int *width, int *height));
- void wsettitle _ARGS((WINDOW *win, char *title));
- ***************
- *** 210,223 ****
-
- void wdrawline _ARGS((int h1, int v1, int h2, int v2));
- void wxorline _ARGS((int h1, int v1, int h2, int v2));
- ! void wdrawcircle _ARGS((int h, int v, int radius));
- ! void wdrawelarc _ARGS((int h, int v, int hrad, int vrad, int ang1, int ang2));
- void wdrawbox _ARGS((int left, int top, int right, int bottom));
- - void werase _ARGS((int left, int top, int right, int bottom));
- void wpaint _ARGS((int left, int top, int right, int bottom));
- void winvert _ARGS((int left, int top, int right, int bottom));
- void wshade _ARGS((int left, int top, int right, int bottom, int percent));
-
- void wcliprect _ARGS((int left, int top, int right, int bottom));
- void wnoclip _ARGS((void));
-
- --- 249,273 ----
-
- void wdrawline _ARGS((int h1, int v1, int h2, int v2));
- void wxorline _ARGS((int h1, int v1, int h2, int v2));
- !
- void wdrawbox _ARGS((int left, int top, int right, int bottom));
- void wpaint _ARGS((int left, int top, int right, int bottom));
- void winvert _ARGS((int left, int top, int right, int bottom));
- + void werase _ARGS((int left, int top, int right, int bottom));
- void wshade _ARGS((int left, int top, int right, int bottom, int percent));
-
- + void wdrawcircle _ARGS((int h, int v, int radius));
- + void wfillcircle _ARGS((int h, int v, int radius));
- + void wxorcircle _ARGS((int h, int v, int radius));
- +
- + void wdrawelarc _ARGS((int h, int v, int hrad, int vrad, int ang1, int ang2));
- + void wfillelarc _ARGS((int h, int v, int hrad, int vrad, int ang1, int ang2));
- + void wxorelarc _ARGS((int h, int v, int hrad, int vrad, int ang1, int ang2));
- +
- + void wdrawpoly _ARGS((int n, POINT points[]));
- + void wfillpoly _ARGS((int n, POINT points[]));
- + void wxorpoly _ARGS((int n, POINT points[]));
- +
- void wcliprect _ARGS((int left, int top, int right, int bottom));
- void wnoclip _ARGS((void));
-
- ***************
- *** 244,249 ****
- --- 294,306 ----
-
- void wsetfont _ARGS((char *fontname));
- void wsetsize _ARGS((int pointsize));
- +
- + /* Colors */
- + COLOR wfetchcolor _ARGS((char *colorname));
- + void wsetfgcolor _ARGS((COLOR color));
- + COLOR wgetfgcolor _ARGS((void));
- + void wsetbgcolor _ARGS((COLOR color));
- + COLOR wgetbgcolor _ARGS((void));
-
- /* Setting the mouse cursor for a window */
- CURSOR *wfetchcursor _ARGS((char *name));
- *** 0.9.5/H/stdwtext.h Tue Feb 19 10:45:44 1991
- --- stdwin/H/stdwtext.h Tue May 28 22:53:37 1991
- ***************
- *** 18,23 ****
- --- 18,26 ----
- void temovenew _ARGS((TEXTEDIT *tp,
- int left, int top, int right, int bottom));
-
- + void tesetview _ARGS((TEXTEDIT *tp, int left, int top, int right, int bottom));
- + void tenoview _ARGS((TEXTEDIT *tp));
- +
- void tesetfocus _ARGS((TEXTEDIT *tp, int foc1, int foc2));
- void tereplace _ARGS((TEXTEDIT *tp, char *str));
- void tesetbuf _ARGS((TEXTEDIT *tp, char *buf, int buflen));
- *** 0.9.5/H/tools.h Tue Feb 19 10:45:51 1991
- --- stdwin/H/tools.h Sun Apr 7 16:59:13 1991
- ***************
- *** 29,35 ****
- --- 29,42 ----
- #define VOID_PTR
- #endif
-
- + #ifdef AMOEBA
- + /* Amoeba has its own way of telling which one we want: */
- + #ifndef VOIDSTAR
- + #define VOID_PTR
- + #endif
- + #endif
-
- +
- /*********************/
- /* Universal pointer */
- /*********************/
- ***************
- *** 80,85 ****
- --- 87,94 ----
- #include <stdlib.h>
-
- #else
- +
- + #include <sys/types.h> /* For size_t -- hope it doesn't break other things */
-
- UNIVPTR malloc _ARGS((size_t));
- UNIVPTR calloc _ARGS((size_t, size_t));
- *** 0.9.5/H/vtrm.h Thu Oct 18 13:55:08 1990
- --- stdwin/H/vtrm.h Tue Apr 23 15:59:43 1991
- ***************
- *** 1,3 ****
- --- 1,5 ----
- + /* Copyright (c) Stichting Mathematisch Centrum, Amsterdam, 1991. */
- +
- /*
- * Terminal capabilities. These correspond to bits set by trmstart in its
- * parameter flags parameter.
- ***************
- *** 6,12 ****
- #define HAS_STANDOUT 1 /* Terminal has inverse video or underline */
- #define CAN_SCROLL 2 /* Terminal can insert/delete lines */
- #define CAN_OPTIMISE 4 /* Terminal can insert/delete characters */
- - #define CAN_SENSE 8 /* Terminal can send cursor position */
-
- /*
- * Error codes returned by trmstart.
- --- 8,13 ----
- ***************
- *** 17,22 ****
- #define TE_NOTERM 2 /* $TERM not set or empty */
- #define TE_BADTERM 3 /* $TERM not found in termcap database */
- #define TE_DUMB 4 /* Terminal too dumb */
- ! #define TE_NOTTY 5 /* Stdout not a tty device */
- #define TE_NOMEM 6 /* Can't get enough memory */
- ! #define TE_OTHER 7 /* This and higher are reserved errors */
- --- 18,32 ----
- #define TE_NOTERM 2 /* $TERM not set or empty */
- #define TE_BADTERM 3 /* $TERM not found in termcap database */
- #define TE_DUMB 4 /* Terminal too dumb */
- ! #define TE_NOTTY 5 /* Stdin not a tty or cannot open "/dev/tty" */
- #define TE_NOMEM 6 /* Can't get enough memory */
- ! #define TE_BADSCREEN 7 /* Bad $SCREEN */
- ! #define TE_OTHER 8 /* This and higher are reserved errors */
- !
- ! /*
- ! * Possible modes; only standout is currently implemented.
- ! */
- !
- ! #define PLAIN 0 /* normal characters */
- ! #define STANDOUT 1 /* in inverse video */
- ! #define UNDERLINE 2 /* underlined */
-