Create initial documentation set.

git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/gui/trunk@1697 72102866-910b-0410-8b05-ffd578937521
This commit is contained in:
GNUstep Maintainer 1996-09-03 18:09:16 +00:00
parent 09a42398a7
commit 56671bb537
20 changed files with 2270 additions and 152 deletions

187
ANNOUNCE
View file

@ -1,83 +1,150 @@
GNUstep GUI Library ANNOUNCE
****************************
ANNOUNCE
********
This is version 0.1.0 of the GNUstep GUI library (libgnustep-gui).
This is version 0.1.0 of the GNUstep GUI library (`libgnustep-gui').
What is the GNUstep GUI Library?
What is the GNUstep GUI Library?
It is a library of graphical user interface classes written completely
in the Objective-C language; the classes are based upon the OPENSTEP(tm)
specification as release by NeXT Software, Inc. The library does not
completely conform to the specification and has been
enhanced in a number of ways to take advantage of the GNU system.
These classes include graphical objects such as buttons, text fields,
popup lists, browser lists, and windows; there are also many associated
It is a library of graphical user interface classes written
completely in the Objective-C language; the classes are based upon the
OPENSTEP(tm) specification as release by NeXT Software, Inc. The
library does not completely conform to the specification and has been
enhanced in a number of ways to take advantage of the GNU system.
These classes include graphical objects such as buttons, text fields,
popup lists, browser lists, and windows; there are also many associated
classes for handling events, colors, fonts, pasteboards and images.
The design of libgnustep-gui is designed in two parts. The first part is the
front-end component which is independent of platform and display system.
This front-end is combined with a back-end component which handles all of
the display system dependent such as specific calls to X/Windows. This
design allows the GNUstep applications to have the "look and feel" of
the underlying display system without any changes to the application, and
the library can be easily ported to other display systems.
The GNUstep GUI Library requires the GNU Objective-C compiler, the GNUstep
Base Library, and back-end component like the GNUstep X/DPS GUI Backend.
The design of libgnustep-gui is designed in two parts. The first
part is the front-end component which is independent of platform and
display system. This front-end is combined with a back-end component
which handles all of the display system dependent such as specific
calls to X/Windows. This design allows the GNUstep applications to
have the "look and feel" of the underlying display system without any
changes to the application, and the library can be easily ported to
other display systems.
The GNUstep GUI Library requires the GNU Objective-C compiler, the
GNUstep Base Library, and back-end component like the GNUstep X/DPS GUI
Backend.
Creators rejoice!
Scott Christley
scottc@net-community.com
<scottc@net-community.com>
*****
Check out the GNUstep web site. (http://www.gnustep.org)
Check out the GNUstep web site. (`http://www.gnustep.org')
OPENSTEP and NeXT are trademarks of NeXT Software, Inc. (http://www.next.com)
OPENSTEP and NeXT are trademarks of NeXT Software, Inc.
(`http://www.next.com')
The GNUstep GUI Library was donated to the Free Software Foundation
by the On-line Community project, contact info@net-community.com about
creating on-line social communities. (http://www.net-community.com)
The GNUstep GUI Library was donated to the Free Software Foundation
as part of the On-line Community project of NET-Community.
NET-Community is a company that develops and supports free software.
Check out their web site to learn more. (`http://www.net-community.com')
*****
[ Most GNU software is packed using the GNU `gzip' compression
program. Source code is available on most sites distributing GNU
software.
[ Most GNU software is packed using the GNU `gzip' compression program.
Source code is available on most sites distributing GNU software.
For information on how to order GNU software on tape, floppy or
cd-rom, or printed GNU manuals, check the file etc/ORDERS in the GNU
Emacs distribution or in GNUinfo/ORDERS on prep, or e-mail a request
to: <gnu@prep.ai.mit.edu>
For information on how to order GNU software on tape, floppy or cd-rom, or
printed GNU manuals, check the file etc/ORDERS in the GNU Emacs distribution
or in GNUinfo/ORDERS on prep, or e-mail a request to: gnu@@prep.ai.mit.edu
By ordering your GNU software from the FSF, you help us continue to
develop more free software. Media revenues are our primary source of
support. Donations to FSF are deductible on US tax returns.
By ordering your GNU software from the FSF, you help us continue to
develop more free software. Media revenues are our primary source of
support. Donations to FSF are deductible on US tax returns.
The above software will soon be at these ftp sites as well.
Please try them before `prep.ai.mit.edu' as `prep' is very busy!
The above software will soon be at these ftp sites as well.
Please try them before prep.ai.mit.edu as prep is very busy!
thanx <gnu@prep.ai.mit.edu>
thanx -gnu@prep.ai.mit.edu
*ASIA:*
- `ftp://ftp.cs.titech.ac.jp'
ASIA: ftp.cs.titech.ac.jp, utsun.s.u-tokyo.ac.jp:/ftpsync/prep,
cair.kaist.ac.kr:/pub/gnu, ftp.nectec.or.th:/pub/mirrors/gnu
AUSTRALIA: archie.au:/gnu (archie.oz or archie.oz.au for ACSnet)
AFRICA: ftp.sun.ac.za:/pub/gnu
MIDDLE-EAST: ftp.technion.ac.il:/pub/unsupported/gnu
EUROPE: irisa.irisa.fr:/pub/gnu, ftp.univ-lyon1.fr:pub/gnu,
ftp.mcc.ac.uk, unix.hensa.ac.uk:/pub/uunet/systems/gnu,
src.doc.ic.ac.uk:/gnu, ftp.ieunet.ie:pub/gnu, ftp.eunet.ch,
nic.switch.ch:/mirror/gnu, ftp.informatik.rwth-aachen.de:/pub/gnu,
ftp.informatik.tu-muenchen.de, ftp.win.tue.nl:/pub/gnu,
ftp.funet.fi:/pub/gnu, ftp.denet.dk, ftp.stacken.kth.se, isy.liu.se,
ftp.luth.se:/pub/unix/gnu, ftp.sunet.se:/pub/gnu, archive.eu.net
SOUTH AMERICA: ftp.unicamp.br:/pub/gnu
WESTERN CANADA: ftp.cs.ubc.ca:/mirror2/gnu
USA: wuarchive.wustl.edu:/systems/gnu, labrea.stanford.edu,
ftp.digex.net:/pub/gnu, ftp.kpc.com:/pub/mirror/gnu, f.ms.uky.edu:/pub3/gnu,
jaguar.utah.edu:/gnustuff, ftp.hawaii.edu:/mirrors/gnu,
vixen.cso.uiuc.edu:/gnu, mrcnext.cso.uiuc.edu:/pub/gnu,
ftp.cs.columbia.edu:/archives/gnu/prep, col.hp.com:/mirrors/gnu,
gatekeeper.dec.com:/pub/GNU, ftp.uu.net:/systems/gnu
- `ftp://utsun.s.u-tokyo.ac.jp/ftpsync/prep'
- `ftp://cair.kaist.ac.kr/pub/gnu'
- `ftp://ftp.nectec.or.th/pub/mirrors/gnu'
*AUSTRALIA:*
- `ftp://archie.au/gnu' (archie.oz or archie.oz.au for ACSnet)
*AFRICA:*
- `ftp://ftp.sun.ac.za/pub/gnu'
*MIDDLE-EAST:*
- `ftp://ftp.technion.ac.il/pub/unsupported/gnu'
*EUROPE:*
- `ftp://irisa.irisa.fr/pub/gnu'
- `ftp://ftp.univ-lyon1.fr/pub/gnu'
- `ftp://ftp.mcc.ac.uk'
- `ftp://unix.hensa.ac.uk/pub/uunet/systems/gnu'
- `ftp://src.doc.ic.ac.uk/gnu'
- `ftp://ftp.ieunet.ie/pub/gnu'
- `ftp://ftp.eunet.ch'
- `ftp://nic.switch.ch/mirror/gnu'
- `ftp://ftp.informatik.rwth-aachen.de/pub/gnu'
- `ftp://ftp.informatik.tu-muenchen.de'
- `ftp://ftp.win.tue.nl/pub/gnu'
- `ftp://ftp.funet.fi/pub/gnu'
- `ftp://ftp.denet.dk'
- `ftp://ftp.stacken.kth.se'
- `ftp://isy.liu.se'
- `ftp://ftp.luth.se/pub/unix/gnu'
- `ftp://ftp.sunet.se/pub/gnu'
- `ftp://archive.eu.net'
*SOUTH AMERICA:*
- `ftp://ftp.unicamp.br/pub/gnu'
*WESTERN CANADA:*
- `ftp://ftp.cs.ubc.ca/mirror2/gnu'
*USA:*
- `ftp://wuarchive.wustl.edu/systems/gnu'
- `ftp://labrea.stanford.edu'
- `ftp://ftp.digex.net/pub/gnu'
- `ftp://ftp.kpc.com/pub/mirror/gnu'
- `ftp://f.ms.uky.edu/pub3/gnu'
- `ftp://jaguar.utah.edu/gnustuff'
- `ftp://ftp.hawaii.edu/mirrors/gnu'
- `ftp://vixen.cso.uiuc.edu/gnu'
- `ftp://mrcnext.cso.uiuc.edu/pub/gnu'
- `ftp://ftp.cs.columbia.edu/archives/gnu/prep'
- `ftp://col.hp.com/mirrors/gnu'
- `ftp://gatekeeper.dec.com/pub/GNU'
- `ftp://ftp.uu.net/systems/gnu'

View file

@ -1,4 +1,27 @@
Mon Aug 12 14:16:12 1996 GNUstep Development <gnustep@duncan.ocbi.com>
Tue Sep 3 13:47:52 1996 GNUstep Development <gnustep@ocbi.com>
Create initial documentation set.
* Documentation/Makefile.in: New file.
* Documentation/announce.texi.orig: New file.
* Documentation/faq.texi.orig: New file.
* Documentation/gnustep-gui.texi.orig: New file.
* Documentation/install.texi.orig: New file.
* Documentation/news.texi.orig: New file.
* Documentation/readme.texi.orig: New file.
* Documentation/status.texi.orig: New file.
* Documentation/todo.texi.orig: New file.
* ANNOUNCE: Now based upon Documentation/announce.texi.orig file.
* INSTALL: Now based upon Documentation/install.texi.orig file.
* NEWS: Now based upon Documentation/news.texi.orig file.
* README: Now based upon Documentation/readme.texi.orig file.
* FAQ: New file
* STATUS: New file
* TODO: New file
* configure.in (CONFIG_FILES): Add Documentation/Makefile.
* configure: Run autoconf for changes to configure.in.
* Version: Correct variable names.
Mon Aug 12 14:16:12 1996 GNUstep Development <gnustep@ocbi.com>
* Headers/gnustep/gui/NSBitmapImageRep.h: Initial implementation
based upon Adam's Feodor work.
@ -45,7 +68,7 @@ Wed Jul 10 17:11:53 1996 Scott Christley <scottc@net-community.com>
* Source/Makefile.sed.nt: Disable debugging by default.
Wed Jun 26 12:43:17 1996 GNUstep Development <gnustep@duncan.ocbi.com>
Wed Jun 26 12:43:17 1996 GNUstep Development <gnustep@ocbi.com>
* Source/NSButton.m (mouseDown:): Correct cell state changes for
the different cell types.
@ -57,7 +80,7 @@ Wed Jun 26 12:43:17 1996 GNUstep Development <gnustep@duncan.ocbi.com>
* Source/NSWindow.m: Corrections to key and main window
notification and first responder handling.
Fri Jun 21 11:09:50 1996 GNUstep Development <gnustep@duncan.ocbi.com>
Fri Jun 21 11:09:50 1996 GNUstep Development <gnustep@ocbi.com>
* Headers/gnustep/gui/NSScreen.h: Add instance variables for
a screen's device dictionary and for the backend.
@ -82,7 +105,7 @@ Wed Jun 19 14:25:46 1996 Scott Christley <scottc@net-community.com>
* Source/NSFont.m (MB_USER_FIXED_FONT, MB_USER_FONT): Rename
global variables to correspond with coding standards.
Thu Jun 6 09:20:51 1996 GNUstep Development <gnustep@duncan.ocbi.com>
Thu Jun 6 09:20:51 1996 GNUstep Development <gnustep@ocbi.com>
* Headers/gnustep/gui/NSApplication.h (-context): New method.
* Source/Makefile.sed.nt (install): Delete AppKit and DPSClient
@ -95,7 +118,7 @@ Thu Jun 6 09:20:51 1996 GNUstep Development <gnustep@duncan.ocbi.com>
* Source/NSView.m (+pushFocusView, +focusView): Remove
debugging information.
Mon Jun 3 10:54:28 1996 GNUstep Development <gnustep@duncan.ocbi.com>
Mon Jun 3 10:54:28 1996 GNUstep Development <gnustep@ocbi.com>
* Makefile.in (clean-top, distclean): Correct targets and clean
all header subdirectories.

246
Documentation/Makefile.in Normal file
View file

@ -0,0 +1,246 @@
#
# Documentation makefile for GNUstep GUI Library
# Copyright (C) 1996 Free Software Foundation, Inc.
#
# Author: Scott Christley <scottc@net-community.com>
# Date: August 1996
#
# This file is part of the GNUstep GUI Library.
#
# This library is free software; you can redistribute it and/or
# modify it under the terms of the GNU Library General Public
# License as published by the Free Software Foundation; either
# version 2 of the License, or (at your option) any later version.
#
# This library is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
# Library General Public License for more details.
#
# You should have received a copy of the GNU Library General Public
# License along with this library; see the file COPYING.LIB.
# If not, write to the Free Software Foundation, Inc.,
# 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
SHELL = /bin/sh
#### Start of system configuration section. ####
srcdir = @srcdir@
VPATH = @srcdir@
# Installation location
prefix = @prefix@
infodir = $(prefix)/info
MAKEINFO = makeinfo
TEXI2DVI = texi2dvi
TEXI2HTML = texi2html
#### End of system configuration section. ####
include $(srcdir)/../Version
ORIG_FILES = \
version.texi.orig \
gnustep-gui.texi.orig \
announce.texi.orig \
install.texi.orig \
news.texi.orig \
readme.texi.orig \
status.texi.orig \
todo.texi.orig \
faq.texi.orig
TEXI_FILES = \
version.texi \
gnustep-gui.texi \
announce.texi \
install.texi \
news.texi \
readme.texi \
status.texi \
todo.texi \
faq.texi \
TEXT_FILES = \
TODO INSTALL NEWS README ANNOUNCE FAQ STATUS
DVI_FILES = gnustep-gui.dvi objc-runtime.dvi
PS_FILES = gnustep-gui.ps objc-runtime.ps
HTML_FILES = gnustep-gui_toc.html objc-runtime_toc.html
INFO_FILES = gnustep-gui.info objc-runtime.info
INFO_FLAGS = -I $(srcdir) -D NO-TEXI2HTML --no-header
HTML_FLAGS = -split_chapter -expandinfo -I $(srcdir)
TEXT_FLAGS = -I $(srcdir) -D NO-TEXI2HTML -D TEXT-ONLY --no-header --no-split
all: info dvi html text ps
info: $(INFO_FILES)
dvi: $(DVI_FILES)
html: $(HTML_FILES)
text: $(TEXT_FILES)
ps: $(PS_FILES)
version.texi.orig: $(srcdir)/../Version
rm -f version.texi.orig
echo '@set GNUSTEP-GUI-VERSION' $(GNUSTEP_GUI_VERSION) \
> version.texi.orig
echo '@set GNUSTEP-GUI-GCC-VERSION $(GNUSTEP_GUI_GCC_VERSION)' \
>> version.texi.orig
if [ $(GNUSTEP_GUI_FTP_MACHINE) ]; then \
echo '@set GNUSTEP-GUI-FTP-MACHINE $(GNUSTEP_GUI_FTP_MACHINE)' \
>> version.texi.orig; fi
if [ $(GNUSTEP_GUI_FTP_DIRECTORY) ]; then \
echo '@set GNUSTEP-GUI-FTP-DIRECTORY $(GNUSTEP_GUI_FTP_DIRECTORY)' \
>> version.texi.orig; fi
if [ $(GNUSTEP_GUI_SNAP_FTP_MACHINE) ]; then \
echo '@set GNUSTEP-GUI-SNAP-FTP-MACHINE \
$(GNUSTEP_GUI_SNAP_FTP_MACHINE)' \
>> version.texi.orig; fi
if [ $(GNUSTEP_GUI_SNAP_FTP_DIRECTORY) ]; then \
echo '@set GNUSTEP-GUI-SNAP-FTP-DIRECTORY \
$(GNUSTEP_GUI_SNAP_FTP_DIRECTORY)' \
>> version.texi.orig; fi
gnustep-gui.dvi: $(ORIG_FILES)
rm -f $(TEXI_FILES)
for i in $(ORIG_FILES); do \
cp $$i `basename $$i .orig` ; \
done
$(TEXI2DVI) $(srcdir)/gnustep-gui.texi
gnustep-gui.info: $(ORIG_FILES)
rm -f $(TEXI_FILES)
for i in $(ORIG_FILES); do \
sed -e 's,@email{\([^}]*\)},<\1>,g' \
$(srcdir)/$$i \
| sed -e 's,@url{\([^}]*\)},@samp{\1},g' \
> `basename $$i .orig` ; \
done
$(MAKEINFO) $(INFO_FLAGS) -o gnustep-gui.info $(srcdir)/gnustep-gui.texi
gnustep-gui.ps: gnustep-gui.dvi
dvips gnustep-gui.dvi -o gnustep-gui.ps
gnustep-gui_toc.html: $(ORIG_FILES)
rm -f $(TEXI_FILES)
for i in $(ORIG_FILES); do \
sed -e 's,@email{\([^}]*\)},<A HREF="mailto:\1">\1</A>,g' \
$(srcdir)/$$i \
| sed -e 's,@url{\([^}]*\)},<A HREF="\1">\1</A>,g' \
| sed -e 's,^ *$$,@br{},g' \
> `basename $$i .orig` ; \
done
$(TEXI2HTML) $(HTML_FLAGS) gnustep-gui.texi
# Rules for producing the text files
README: version.texi.orig readme.texi.orig
sed -e 's,@email{\([^}]*\)},<\1>,g' \
$(srcdir)/readme.texi.orig \
| sed -e 's,@url{\([^}]*\)},@samp{\1},g' \
> readme.texi ; \
$(MAKEINFO) $(TEXT_FLAGS) -o README $(srcdir)/readme.texi
ANNOUNCE: version.texi.orig announce.texi.orig
sed -e 's,@email{\([^}]*\)},<\1>,g' \
$(srcdir)/announce.texi.orig \
| sed -e 's,@url{\([^}]*\)},@samp{\1},g' \
> announce.texi ; \
$(MAKEINFO) $(TEXT_FLAGS) -o ANNOUNCE $(srcdir)/announce.texi
INSTALL: version.texi.orig install.texi.orig
sed -e 's,@email{\([^}]*\)},<\1>,g' \
$(srcdir)/install.texi.orig \
| sed -e 's,@url{\([^}]*\)},@samp{\1},g' \
> install.texi ; \
$(MAKEINFO) $(TEXT_FLAGS) -o INSTALL $(srcdir)/install.texi
NEWS: version.texi.orig news.texi.orig
sed -e 's,@email{\([^}]*\)},<\1>,g' \
$(srcdir)/news.texi.orig \
| sed -e 's,@url{\([^}]*\)},@samp{\1},g' \
> news.texi ; \
$(MAKEINFO) $(TEXT_FLAGS) -o NEWS $(srcdir)/news.texi
FAQ: version.texi.orig faq.texi.orig
sed -e 's,@email{\([^}]*\)},<\1>,g' \
$(srcdir)/faq.texi.orig \
| sed -e 's,@url{\([^}]*\)},@samp{\1},g' \
> faq.texi ; \
$(MAKEINFO) $(TEXT_FLAGS) -o FAQ $(srcdir)/faq.texi
STATUS: version.texi.orig status.texi.orig
sed -e 's,@email{\([^}]*\)},<\1>,g' \
$(srcdir)/status.texi.orig \
| sed -e 's,@url{\([^}]*\)},@samp{\1},g' \
> status.texi ; \
$(MAKEINFO) $(TEXT_FLAGS) -o STATUS $(srcdir)/status.texi
TODO: version.texi.orig todo.texi.orig
sed -e 's,@email{\([^}]*\)},<\1>,g' \
$(srcdir)/todo.texi.orig \
| sed -e 's,@url{\([^}]*\)},@samp{\1},g' \
> todo.texi ; \
$(MAKEINFO) $(TEXT_FLAGS) -o TODO $(srcdir)/todo.texi
#
# GNU Objective-C Runtime Library Manual
#
objc-runtime.dvi: version.texi.orig objc-runtime.texi.orig
rm -f $(TEXI_FILES)
for i in version.texi.orig objc-runtime.texi.orig; do \
cp $$i `basename $$i .orig` ; \
done
$(TEXI2DVI) $(srcdir)/objc-runtime.texi
objc-runtime.info: version.texi.orig objc-runtime.texi.orig
rm -f $(TEXI_FILES)
for i in version.texi.orig objc-runtime.texi.orig; do \
sed -e 's,@email{\([^}]*\)},<\1>,g' \
$(srcdir)/$$i \
| sed -e 's,@url{\([^}]*\)},@samp{\1},g' \
> `basename $$i .orig` ; \
done
$(MAKEINFO) $(INFO_FLAGS) -o objc-runtime.info $(srcdir)/objc-runtime.texi
objc-runtime.ps: objc-runtime.dvi
dvips objc-runtime.dvi -o objc-runtime.ps
objc-runtime_toc.html: version.texi.orig objc-runtime.texi.orig
rm -f $(TEXI_FILES)
for i in version.texi.orig objc-runtime.texi.orig; do \
sed -e 's,@email{\([^}]*\)},<A HREF="mailto:\1">\1</A>,g' \
$(srcdir)/$$i \
| sed -e 's,@url{\([^}]*\)},<A HREF="\1">\1</A>,g' \
| sed -e 's,^ *$$,@br{},g' \
> `basename $$i .orig` ; \
done
$(TEXI2HTML) $(HTML_FLAGS) objc-runtime.texi
install:
uninstall:
mostlyclean:
rm -f *~
rm -f *.aux *.cp *.cps *.fn *.fns
rm -f *.ky *.log *.pg *.toc *.tp *.vr
rm -f $(TEXI_FILES)
rm -f objc-runtime.texi
clean: mostlyclean
rm -f version.texi.orig
rm -f $(TEXT_FILES)
rm -f *.html
rm -f *.info
rm -f *.dvi
rm -f *.ps
distclean: clean
rm -f Makefile
maintainer-clean: distclean
Makefile: Makefile.in
cd ..; $(SHELL) config.status

View file

@ -0,0 +1,140 @@
@c -*- texinfo -*-
@chapter ANNOUNCE
@ifset TEXT-ONLY
@include version.texi
@end ifset
This is version @value{GNUSTEP-GUI-VERSION} of the GNUstep GUI library (@samp{libgnustep-gui}).
What is the GNUstep GUI Library?
It is a library of graphical user interface classes written completely
in the Objective-C language; the classes are based upon the OPENSTEP(tm)
specification as release by NeXT Software, Inc. The library does not
completely conform to the specification and has been
enhanced in a number of ways to take advantage of the GNU system.
These classes include graphical objects such as buttons, text fields,
popup lists, browser lists, and windows; there are also many associated
classes for handling events, colors, fonts, pasteboards and images.
The design of libgnustep-gui is designed in two parts. The first part is the
front-end component which is independent of platform and display system.
This front-end is combined with a back-end component which handles all of
the display system dependent such as specific calls to X/Windows. This
design allows the GNUstep applications to have the "look and feel" of
the underlying display system without any changes to the application, and
the library can be easily ported to other display systems.
The GNUstep GUI Library requires the GNU Objective-C compiler, the GNUstep
Base Library, and back-end component like the GNUstep X/DPS GUI Backend.
@noindent
Creators rejoice!@*
Scott Christley@*
@email{scottc@@net-community.com}@*
@noindent
*****
Check out the GNUstep web site. (@url{http://www.gnustep.org})
OPENSTEP and NeXT are trademarks of NeXT Software, Inc. (@url{http://www.next.com})
The GNUstep GUI Library was donated to the Free Software Foundation
as part of the On-line Community project of NET-Community. NET-Community is
a company that develops and supports free software. Check out
their web site to learn more. (@url{http://www.net-community.com})
[ Most GNU software is packed using the GNU `gzip' compression program.
Source code is available on most sites distributing GNU software.
For information on how to order GNU software on tape, floppy or cd-rom, or
printed GNU manuals, check the file etc/ORDERS in the GNU Emacs distribution
or in GNUinfo/ORDERS on prep, or e-mail a request to: @email{gnu@@prep.ai.mit.edu}
By ordering your GNU software from the FSF, you help us continue to
develop more free software. Media revenues are our primary source of
support. Donations to FSF are deductible on US tax returns.
The above software will soon be at these ftp sites as well.
Please try them before @samp{prep.ai.mit.edu} as @samp{prep} is very busy!
thanx @email{gnu@@prep.ai.mit.edu}
@table @strong
@item ASIA:
@itemize @minus
@item @url{ftp://ftp.cs.titech.ac.jp}
@item @url{ftp://utsun.s.u-tokyo.ac.jp/ftpsync/prep}
@item @url{ftp://cair.kaist.ac.kr/pub/gnu}
@item @url{ftp://ftp.nectec.or.th/pub/mirrors/gnu}
@end itemize
@item AUSTRALIA:
@itemize @minus
@item @url{ftp://archie.au/gnu} (archie.oz or archie.oz.au for ACSnet)
@end itemize
@item AFRICA:
@itemize @minus
@item @url{ftp://ftp.sun.ac.za/pub/gnu}
@end itemize
@item MIDDLE-EAST:
@itemize @minus
@item @url{ftp://ftp.technion.ac.il/pub/unsupported/gnu}
@end itemize
@item EUROPE:
@itemize @minus
@item @url{ftp://irisa.irisa.fr/pub/gnu}
@item @url{ftp://ftp.univ-lyon1.fr/pub/gnu}
@item @url{ftp://ftp.mcc.ac.uk}
@item @url{ftp://unix.hensa.ac.uk/pub/uunet/systems/gnu}
@item @url{ftp://src.doc.ic.ac.uk/gnu}
@item @url{ftp://ftp.ieunet.ie/pub/gnu}
@item @url{ftp://ftp.eunet.ch}
@item @url{ftp://nic.switch.ch/mirror/gnu}
@item @url{ftp://ftp.informatik.rwth-aachen.de/pub/gnu}
@item @url{ftp://ftp.informatik.tu-muenchen.de}
@item @url{ftp://ftp.win.tue.nl/pub/gnu}
@item @url{ftp://ftp.funet.fi/pub/gnu}
@item @url{ftp://ftp.denet.dk}
@item @url{ftp://ftp.stacken.kth.se}
@item @url{ftp://isy.liu.se}
@item @url{ftp://ftp.luth.se/pub/unix/gnu}
@item @url{ftp://ftp.sunet.se/pub/gnu}
@item @url{ftp://archive.eu.net}
@end itemize
@item SOUTH AMERICA:
@itemize @minus
@item @url{ftp://ftp.unicamp.br/pub/gnu}
@end itemize
@item WESTERN CANADA:
@itemize @minus
@item @url{ftp://ftp.cs.ubc.ca/mirror2/gnu}
@end itemize
@item USA:
@itemize @minus
@item @url{ftp://wuarchive.wustl.edu/systems/gnu}
@item @url{ftp://labrea.stanford.edu}
@item @url{ftp://ftp.digex.net/pub/gnu}
@item @url{ftp://ftp.kpc.com/pub/mirror/gnu}
@item @url{ftp://f.ms.uky.edu/pub3/gnu}
@item @url{ftp://jaguar.utah.edu/gnustuff}
@item @url{ftp://ftp.hawaii.edu/mirrors/gnu}
@item @url{ftp://vixen.cso.uiuc.edu/gnu}
@item @url{ftp://mrcnext.cso.uiuc.edu/pub/gnu}
@item @url{ftp://ftp.cs.columbia.edu/archives/gnu/prep}
@item @url{ftp://col.hp.com/mirrors/gnu}
@item @url{ftp://gatekeeper.dec.com/pub/GNU}
@item @url{ftp://ftp.uu.net/systems/gnu}
@end itemize
@end table

104
Documentation/faq.texi.orig Normal file
View file

@ -0,0 +1,104 @@
@c -*-texinfo-*-
@chapter Frequently Asked Questions With Answers
@ifset TEXT-ONLY
@include version.texi
@end ifset
Maintained by Scott Christley @email{scottc@@net-community.com}.
Last updated August 26 1996. The most up-to-date version of this FAQ
is available at:
@example
@url{ftp://www.gnustep.org/Documentation/gnustep-gui/gnustep-gui_toc.html}
@end example
Please send corrections to @email{scottc@@net-community.com}.
@enumerate
@item @b{What is the GNUstep GUI Library?}
The GNUstep GUI Library is a library of objects useful for writing
graphical applications. For example, it includes classes for drawing
and manipulating graphics objects on the screen: windows, menus,
buttons, sliders, text fields, and events. There are also many
peripheral classes that offer operating-system-independent interfaces to
images, cursors, colors, fonts, pasteboards, printing. There are also
workspace support classes such as data links, open/save panels,
context-dependent help, spell checking.
It provides functionality that aims to implement the @samp{AppKit}
portion of the OpenStep standard. However the implementation has
been written to take advantage of GNUstep enhancements wherever possible.
@item @b{Explain the organization of the front- and back-ends.}
The GNUstep GUI Library is divided into a front- and back-end. The
front-end contains the majority of implementation, but leaves out the
low-level drawing and event code. A back-end can override whatever
methods necessary in order to implement low-level drawing event
receiving. Different back-ends will make GNUstep available on various
platforms. The default GNU back-end will run on top of X Windows and
the DisplayGhostScript Server. Other back-ends could allow GNUstep to
run on OpenGL, OS/2, and WIN32 graphics/event platforms. Much work
will be saved by this clean separation between front- and back-end,
because it allows different platforms to share the large amount of
front-end code.
The front-end does not specify what mechanism to use in order to "plug
in" the back-end; that is the back-end implementor's choice. At least
two backends will use @samp{+poseAs:} method, for example, running
@samp{[XDPSWindow poseAs: [NSWindow class]]}. Using @samp{+poseAs:} is
more flexible than using Categories because it allows the the back-end
implementor to choose what to override in the front-end, instead of
having the interface between front- and back-end fixed by the front-end.
@item @b{What is the current state of development of the front-end?}
A number of classes in the front-end are complete or almost complete;
these include: NSActionCell, NSButtonCell, NSButton, NSCell, NSControl,
NSEvent, NSFont, NSResponder, and NSSlider.
Other classes are complete enough to use, but still require some major
additions before being considered almost complete: NSApplication, NSBox,
NSColor, NSFontManager, NSMenu, NSMenuCell, NSPopUpButton, NSSliderCell,
NSText, NSTextField, NSTextFieldCell, NSView, and NSWindow.
You can review the most up-to-date status report at:
@example
@url{http://www.gnustep.org/Documentation/gnustep-gui/gnustep-gui_toc.html}.
@end example
@item @b{What back-ends are available?}
The official back-end is the GNUstep GUI X/DPS Backend which runs
under the X Window System and interfaces to the Display Ghostscript
System. You can learn more at:
@example
@url{http://www.gnustep.org/Documentation/gnustep-xdps/gnustep-xdps_toc.html}
@end example
@item @b{Where can I get a copy?}
It is not yet publically released. When it is available you will be
able to find it in:
@example
@url{ftp://@value{GNUSTEP-GUI-FTP-MACHINE}/@value{GNUSTEP-GUI-FTP-DIRECTORY}}
@end example
@noindent
Pre-release snapshots are available at:
@example
@url{ftp://@value{GNUSTEP-GUI-SNAP-FTP-MACHINE}/@value{GNUSTEP-GUI-SNAP-FTP-DIRECTORY}}
@end example
@end enumerate

View file

@ -0,0 +1,112 @@
\input texinfo @c -*-texinfo-*-
@c GNUstep GUI Library
@c
@c This file uses the special commands @url{} and @email{}.
@iftex
@global@let@email=@i
@global@let@url=@samp
@end iftex
@ifset NO-TEXI2HTML
@ifinfo
@definfoenclose email, <, >
@definfoenclose url `, '
@end ifinfo
@end ifset
@settitle The GNUstep GUI Library
@setfilename gnustep-gui.info
@include version.texi
@ifinfo
This file documents the GNUstep GUI Library.
@ifclear NO-TEXI2HTML
@subtitle DRAFT Edition for GNUstep GUI Library @value{GNUSTEP-GUI-VERSION}
@subtitle Last revision August 1996
@c @subtitle For GCC Version @value{GNUSTEP-GUI-GCC-VERSION}
@author Scott Christley
@sp 1
@end ifclear
Copyright @copyright{} 1996 NET-Community
Permission is granted to make and distribute verbatim copies of
this manual provided the copyright notice and this permission notice
are preserved on all copies.
Permission is granted to copy and distribute modified versions of this
manual under the conditions for verbatim copying, provided also that
the entire resulting derived work is distributed under the terms of a
permission notice identical to this one.
Permission is granted to copy and distribute translations of this manual
into another language, under the above conditions for modified versions.
@end ifinfo
@iftex
@setchapternewpage odd
@finalout
@titlepage
@title The GNUstep GUI Library
@subtitle DRAFT Edition for GNUstep GUI Library @value{GNUSTEP-GUI-VERSION}
@subtitle Last revision August 1996
@c @subtitle For GCC Version @value{GNUSTEP-GUI-GCC-VERSION}
@author Scott Christley
@page
@vskip 0pt plus 1filll
Copyright @copyright{} 1996 NET-Community
@sp 2
GNUstep GUI Library Version @value{GNUSTEP-GUI-VERSION}@*
@c For GCC Version @value{GNUSTEP-GUI-GCC-VERSION}@*
@sp 1
Published by NET-Community@*
Portland, Oregon, USA@*
(@url{http://www.net-community.com})@*
Last printed August, 1996.@*
@sp 1
Permission is granted to make and distribute verbatim copies of
this manual provided the copyright notice and this permission notice
are preserved on all copies.
Permission is granted to copy and distribute modified versions of this
manual under the conditions for verbatim copying, provided also that
the entire resulting derived work is distributed under the terms of a
permission notice identical to this one.
Permission is granted to copy and distribute translations of this manual
into another language, under the above conditions for modified versions.
@end titlepage
@end iftex
@chapter Introduction
@c README
@include readme.texi
@c Announcement
@include announce.texi
@c Installation Instructions
@include install.texi
@c News
@include news.texi
@c The FAQ
@include faq.texi
@c Status Report
@include status.texi
@c The ToDo
@include todo.texi
@c Generate Short Contents
@shortcontents
@c Generate Complete Contents
@contents
@bye

View file

@ -0,0 +1,242 @@
@c -*- texinfo -*-
@chapter Installation
@ifset TEXT-ONLY
@include version.texi
@end ifset
This file documents the installation of the GNUstep GUI
Library, @samp{libgnustep-gui}. Copyright (C) 1996 Free Software
Foundation, Inc. You may copy, distribute, and modify it freely as long
as you preserve this copyright notice and permission notice.
This is version @value{GNUSTEP-GUI-VERSION} of the GNUstep GUI library.
@section Installing @samp{libgnustep-gui}
These notes are for a GNU system that can run @file{./configure}. For
Windows NT/95, if you have a working bash shell then you can follow
these instructions; otherwise, follow the MediaBook Environment specific
instructions below.
Here is a quick-and-dirty example of installation commands:
@example
./configure --prefix=/usr/local
make
make install
@end example
Here are more detailed instructions.
@enumerate
@item
Install @samp{gcc}. The library requires gcc version
@value{GNUSTEP-GUI-GCC-VERSION} or later.
@item
Install @samp{libgnustep-base}. This library requires the classes in
the GNUstep Base Library. You must also apply the Objective-C
Runtime patches to GCC which makes the runtime thread-safe, if
your version of GCC lacks them.
@item
Configure the package for your system. In the directory that this
file is in, type @file{./configure}. If you're using @file{csh} on an old
version of System V, you might need to type @samp{sh configure} instead
to prevent @samp{csh} from trying to execute @file{configure} itself.
The @file{configure} shell script attempts to guess correct values for
various system-dependent variables used during compilation, and
creates the Makefile(s) (one in each subdirectory of the source
directory). In some packages it creates a C header file
containing system-dependent definitions. It also creates a file
@file{config.status} that you can run in the future to recreate the
current configuration.
Running @file{configure} takes less than a minute or two. While it is
running, it prints some messages that tell what it is doing. If
you don't want to see the messages, run @file{configure} with its
standard output redirected to @file{/dev/null}; for example:
@smallexample
./configure >/dev/null
@end smallexample
To compile the package in a different directory from the one
containing the source code, you must use a version of make that
supports the VPATH variable, such as GNU make. @samp{cd} to the
directory where you want the object files and executables to go and
run @file{configure}. @file{configure} automatically checks for the
source code in the directory that @file{configure} is in and in
@file{..}. If for some reason @file{configure} is not in the source
code directory that you are configuring, then it will report that it
can't find the source code. In that case, run @file{configure} with
the option @samp{--srcdir=DIR}, where DIR is the directory that
contains the source code.
By default, @samp{make install} will install the package's files in
/usr/local/bin, /usr/local/lib, /usr/local/man, etc. You can specify
an installation prefix other than /usr/local by giving
@file{configure} the option @samp{--prefix=PATH}. Alternately, you
can do so by giving a value for the @samp{prefix} variable when you
run @samp{make}, e.g.,
@smallexample
make prefix=/usr/gnu
@end smallexample
You can specify separate installation prefixes for
architecture-specific files and architecture-independent files. If
you give @file{configure} the option @samp{--exec_prefix=PATH} or set
the @samp{make} variable @samp{exec_prefix} to PATH, the package will
use PATH as the prefix for installing programs and libraries. Data
files and documentation will still use the regular prefix. Normally,
all files are installed using the regular prefix.
You can tell @file{configure} to figure out the configuration for your
system, and record it in @file{config.status}, without actually
configuring the package (creating Makefile(s) and perhaps a
configuration header file). To do this, give @file{configure} the
@samp{--no-create} option. Later, you can run @file{./config.status}
to actually configure the package. This option is useful mainly in
@file{Makefile} rules for updating @file{config.status} and
@file{Makefile}. You can also give @file{config.status} the
@samp{--recheck} option, which makes it re-run @file{configure} with
the same arguments you used before. This is useful if you change
@file{configure}.
@file{configure} ignores any other arguments that you give it.
If your system requires unusual options for compilation or linking
that @file{configure} doesn't know about, you can give
@file{configure} initial values for some variables by setting them in
the environment. In Bourne-compatible shells, you can do that on the
command line like this:
@smallexample
CC='gcc -traditional' DEFS=-D_POSIX_SOURCE ./configure
@end smallexample
The @samp{make} variables that you might want to override with
environment variables when running @file{configure} are:
(For these variables, any value given in the environment overrides
the value that `configure' would choose:)
@table @samp
@item CC
C compiler program. Default is @samp{cc}, or @samp{gcc} if @samp{gcc} is in
your PATH.
@item INSTALL
Program to use to install files. Default is @samp{install} if you
have it, @samp{install.sh} otherwise.
@end table
(For these variables, any value given in the environment is added
to the value that @file{configure} chooses:)
@table @samp
@item DEFS
Configuration options, in the form @samp{-Dfoo -Dbar ...}
@item LIBS
Libraries to link with, in the form @samp{-lfoo -lbar ...}
@end table
If you need to do unusual things to compile the package, we
encourage you to figure out how @file{configure.in} could check whether to
do them, and mail diffs or instructions to the address given in
the @file{README} so we can include them in the next release.
@item
Type @samp{make} to compile the package. If you want, you can override
the @samp{make} variables @samp{CFLAGS} and @samp{LDFLAGS} like this:
@smallexample
make CFLAGS=-O2 LDFLAGS=-s
@end smallexample
@item
Type @samp{make install} to install the library, data files, header
files, and documentation.
@item
You can remove the program binaries and object files from the
source directory by typing @samp{make clean}. To also remove the
Makefile(s), and @file{config.status} (all the files that @file{configure}
created), type @samp{make distclean}.
The file @file{configure.in} is used as a template to create
@file{configure} by a program called @file{autoconf}. You will only
need it if you want to regenerate @file{configure} using a newer
version of @file{autoconf}.
@end enumerate
@section Installing in the MediaBook environment
The MediaBook environment under Windows NT and Window 95 utilizes the
native shell of the operating systems, so it does not require you to
have a @samp{bash} or UNIX-like shell to configure and install the library.
The MediaBook environment utilizes the @file{configure.bat} batch file to
configure the package; it creates the @samp{Makefile(s)} by processing a
@samp{Makefile.in} with its corresponding @samp{Makefile.sed.nt}.
The MediaBook environment should have these environment variables
defined for the installation to work.
@table @strong
@item MB_DEV
The drive and directory of the development root. For example
it may be @samp{C:\MBCD\Development}; it is analogous to @samp{/usr/local}
on UNIX systems.
@item MB_H
The directory name within the development root @samp{MB_DEV} where
the header files are stored; e.g. @samp{Headers}.
@item MB_LIB
The directory name within the development root @samp{MB_DEV} where
the library files are stored; this tends to be specific to
the target operating system, e.g. @samp{Libraries\MS-WIN32}.
@end table
To install the headers and import libraries:
@smallexample
configure.bat
make install
@end smallexample
Here are more detailed instructions.
@enumerate
@item
Install @samp{gcc}. The library requires gcc version
@value{GNUSTEP-GUI-GCC-VERSION} or later.
@item
Install @samp{libgnustep-base}. This library requires the classes in
the GNUstep Base Library. You must also apply the Objective-C
Runtime patches to GCC which makes the runtime thread-safe, if
your version of GCC lacks them.
@item
Configure the package for your system. In the directory that this
file is in, type @file{configure.bat}.
The @file{configure.bat} batch file processes the @file{Makefile.in} templates
with the corresponding @file{Makefile.sed.nt} sed script file to produce
the resultant @file{Makefile(s)}.
By default, @samp{make install} will install the package's header files
into @samp{$(MB_DEV)\$(MB_H)} and the library files in
@samp{$(MB_DEV)\$(MB_LIB)}. You should have these environment variables
defined before you run @samp{make}. You can change the development root
@samp{MB_DEV} by giving a value for the @samp{prefix} variable when you run
@samp{make}, e.g.,
@smallexample
make prefix=C:\MBCD\MyDevelopment
@end smallexample
@item
Type @samp{make install} to install the import libraries, header
files, and documentation.
@end enumerate

View file

@ -0,0 +1,28 @@
@c -*-texinfo-*-
@chapter NEWS
@ifset TEXT-ONLY
@include version.texi
@end ifset
The currently released version of the library is @samp{@value{GNUSTEP-GUI-VERSION}}.
@section Noteworthy changes in version @samp{0.1.0}
@itemize @bullet
@item
Integration of the GNUstep X/DPS GUI Backend. This has finally
produced a set of core code with can display on X/Windows.
Much of the X/Windows code has been written by Pascal Forget
@email{pascal@@wsc.com} and integration efforts have been lead by Scott
Christley @email{scottc@@net-community.com}.
@item
Some major directory reorganization for the new naming guidelines.
Headers previously in AppKit and DPSClient directories have been moved
to gnustep/gui and gnustep/dps directores and symbol links are
created for the AppKit and DPSClient directories. This should allow
both GNUstep and other OpenStep implementations to reside on the
same machine without conflicts.
@end itemize

View file

@ -0,0 +1,42 @@
@c -*-texinfo-*-
@chapter README
@ifset TEXT-ONLY
@include version.texi
@end ifset
This is version @value{GNUSTEP-GUI-VERSION} of the GNUstep GUI library (@samp{libgnustep-gui}).
Here is some introductory info to get you started:
@section Initial reading
@itemize @bullet
@item
The file @file{ANNOUNCE} contains a very brief overview of the library.
It also tells you where to get the most recent version.
@item
The file @file{NEWS} has the library's feature history.
@item
The file @file{INSTALL} gives instructions for installing the library.
@end itemize
@section How can you help?
@itemize @bullet
@item
Read the projects and questions in the @file{TODO} file. If you can
volunteer for any of the projects, or if you have any useful
comments send me email! @email{scottc@@net-community.com}
@item
Give me feedback! Tell me what you like; tell me what you think
could be better. Send me bug reports.
@end itemize
@noindent
Creators rejoice!@*
Scott Christley@*
@email{scottc@@net-community.com}

View file

@ -0,0 +1,503 @@
@c -*-texinfo-*-
@chapter Status Report
@ifset TEXT-ONLY
@include version.texi
@end ifset
Last updated August 1996. The most up-to-date version of this status
report is available at:
@example
@url{http://www.gnustep.org/Documentation/gnustep-gui/gnustep-gui_toc.html}
@end example
Please send corrections to @email{scottc@@net-community.com}.
@emph{Key:}
@table @strong
@item [10]
Complete and tested.
@item [8]
Missing a few non-core methods, definitely usable.
@item [6]
Missing several methods, but core is there, usable.
@item [4]
Begun, but missing core functionality, not usable.
@item [2]
Skeleton.
@item [0]
Nothing there.
@item [?]
Unknown status.
@end table
@section Classes
Currently none of the classes raise exceptions; and notifications and
notifications centers are non-existent.
@table @strong
@item NSActionCell:: [9]
Should not require any implementation in the
backend as it is an abstract class which only defines behaviour. All
methods are implemented; the only thing lacking is a test, if needed.
@item NSApplication:: [6]
The event handling is pretty good though it
does not take advantage of the NSRunLoop class. Many of the minor
methods are implemented. No window ordering is being maintained, and
a number of the methods that perform operations on windows are
empty. Modal loops are not implemented.
@item NSBitmapImageRep:: [4]
Many of the methods have code, but the
class has not been made to work; though, some of this could be due to
lack of backend implementation. No compression nor generation of
TIFF representations.
@item NSBox:: [8]
Many of the methods have code, but whether the class
is usable depends upon how much implementation has been done in the
backend.
@item NSBrowser:: [2]
@item NSBrowserCell:: [2]
@item NSButton:: [8]
Repeat intervals and key equivalents not
implemented. There should be little need for backend implementation
as NSButton is mainly behavior; its cell class does all drawing.
@item NSButtonCell:: [8]
Repeat intervals and key equivalents not
implemented. Actual ability to use will depend upon backend
implementation.
@item NSCachedImageRep:: [4]
All methods are implemented but its unknown if the class works.
@item NSCell:: [8]
No determination of component sizes. Editting
text, validating input, represented object, and some other odd and end
methods not implemented.
@item NSClipView:: [2]
@item NSColor:: [5]
Doesn't know the difference between calibrated and
device; only supported colorspace is RGB. Maybe usable with backend
implementation for basic colors like white, black, red, etc.
@item NSColorList:: [2]
@item NSColorPanel:: [2]
@item NSColorPicker:: [2]
@item NSColorWell:: [2]
@item NSControl:: [8]
No field editor; doesn't know how to calculate its size.
@item NSCursor:: [2]
@item NSCustomImageRep:: [4]
All methods are implemented but it is unknown if the class works.
@item NSDataLink:: [2]
@item NSDataLinkManager:: [2]
@item NSDataLinkPanel:: [2]
@item NSDPSContext:: [6]
Enough implementation for the backend to do
something useful; most methods that deal specifically with Display
Ghostscript are empty.
@item NSEPSImageRep:: [2]
@item NSEvent:: [9]
All methods implemented except periodic events.
@item NSFont:: [4]
Maintains no AFM or glyph information. Usability
depends greatly upon backend implementation.
@item NSFontManager:: [4]
Only primitive capability.
@item NSFontPanel:: [2]
May be usable with backend implementation.
@item NSForm:: [2]
@item NSFormCell:: [2]
@item NSHelpPanel:: [2]
@item NSImage:: [4]
All methods are implemented but it is unknown if the class works.
@item NSImageRep:: [4]
All methods are implemented but it is unknown if the class works.
@item NSMatrix:: [6]
Many methods are implemented but more thorough testing needs to be done.
@item NSMenu:: [4]
Usability greatly depends upon backend implementation.
@item NSMenuCell:: [4]
Usability greatly depends upon backend implementation.
@item NSOpenPanel:: [6]
Usability greatly depends upon backend implementation.
@item NSPageLayout:: [2]
@item NSPanel:: [2]
@item NSPasteboard:: [2]
@item NSPopUpButton:: [4]
Usability greatly depends upon backend implementation.
@item NSPrinter:: [2]
@item NSPrintinfo:: [2]
@item NSPrintOperation:: [2]
@item NSPrintPanel:: [2]
@item NSResponder:: [9]
Shouldn't require any backend implementation; all methods are implemented.
@item NSSavePanel:: [6]
Usability greatly depends upon backend implementation.
@item NSScreen:: [6]
Knows nothing about window depth, greatly depends upon backend implementation.
@item NSScroller:: [2]
Most behaviour can probably be taken from NSSlider and NSSliderCell.
@item NSScrollView:: [2]
@item NSSelection:: [2]
@item NSSlider:: [4]
Usability greatly depends upon backend implementation.
@item NSSliderCell:: [6]
No title or image capability implemented, greatly depends upon backend.
@item NSSpellChecker:: [2]
@item NSSpellServer:: [2]
@item NSSplitView:: [2]
@item NSText:: [2]
Usability greatly depends upon backend implementation.
@item NSTextField:: [8]
Does not properly send text delegate messages.
@item NSTextFieldCell:: [4]
Usability greatly depends upon backend implementation.
@item NSView:: [6]
Maintains subview lists, notification of new
window, send resizing messages to subviews. No rotation, scaling, or
translation of user coordinate space; coordinate conversion doesn't
take user coordinate space into affect, so everything is based upon
device coordinate space. Event handling and tracking rectangles
implemented. No scrolling capability. No cursor management. No
printing, paging, or postscript.
@item NSWindow:: [4]
Most methods not implemented, but maybe usable with backend implementation.
@item NSWorkspace:: [2]
Erich Boleyn has some initial ideas and design.
@end table
@section Protocols
@table @strong
@item NSChangeSpelling:: [0]
@item NSColorPickingCustom:: [0]
@item NSColorPickingDefault:: [0]
@item NSDraggingDestination:: [0]
@item NSDraggingInfo:: [0]
@item NSDraggingSource:: [0]
@item NSIgnoreMisspelledWords:: [0]
@item NSMenuActionResponder:: [0]
@item NSNibAwaking:: [0]
@item NSServicesRequests:: [0]
@end table
@section Functions
Very few if any of the functions are implemented; all the functions
dealing with drawing will probably be implemented in the backend.
Most other functions deal with classes that lack sufficient
implementation.
@subsection Rectangle Drawing Functions
@table @strong
@item Optimize Drawing. [2]
@deftypefun void NSEraseRect (NSRect @var{aRect} )
@end deftypefun
@deftypefun void NSHighlightRect (NSRect @var{aRect} )
@end deftypefun
@deftypefun void NSRectClip (NSRect @var{aRect} )
@end deftypefun
@deftypefun void NSRectClipList (const NSRect * @var{rects}, int @var{count} )
@end deftypefun
@deftypefun void NSRectFill (NSRect @var{aRect} )
@end deftypefun
@deftypefun void NSRectFillList (const NSRect * @var{rects}, int @var{count} )
@end deftypefun
@deftypefun void NSRectFillListWithGrays (const NSRect * @var{rects}, const float * @var{grays}, int @var{count} )
@end deftypefun
@item Draw a Bordered Rectangle. [2]
@deftypefun void NSDrawButton (NSRect @var{aRect}, NSRect @var{clipRect} )
@end deftypefun
@deftypefun void NSDrawGrayBezel (NSRect @var{aRect}, NSRect @var{clipRect} )
@end deftypefun
@deftypefun void NSDrawGroove (NSRect @var{aRect}, NSRect @var{clipRect} )
@end deftypefun
@deftypefun NSRect NSDrawTiledRects (NSRect @var{boundsRect}, NSRect @var{clipRect}, const NSRectEdge * @var{sides}, const float * @var{grays}, int @var{count} )
@end deftypefun
@deftypefun void NSDrawWhiteBezel (NSRect @var{aRect}, NSRect @var{clipRect} )
@end deftypefun
@deftypefun void NSFrameRect (NSRect @var{aRect} )
@end deftypefun
@deftypefun void NSFrameRectWithWidth (NSRect @var{aRect}, float @var{frameWidth} )
@end deftypefun
@end table
@subsection Color Functions
@table @strong
@item Get Information About Color Space and Window Depth. [2]
@deftypefun void {NSWindowDepth *} NSAvailableWindowDepths ( void )
@end deftypefun
@deftypefun NSWindowDepth NSBestDepth (NSString * @var{colorSpace}, int @var{bitsPerSample}, int @var{bitsPerPixel}, BOOL @var{planar}, BOOL * @var{exactMatch})
@end deftypefun
@deftypefun int NSBitsPerPixelFromDepth (NSWindowDepth @var{depth})
@end deftypefun
@deftypefun int NSBitsPerSampleFromDepth (NSWindowDepth @var{depth})
@end deftypefun
@deftypefun {NSString *} NSColorSpaceFromDepth (NSWindowDepth @var{depth})
@end deftypefun
@deftypefun int NSNumberOfColorComponents (NSString * @var{colorSpaceName})
@end deftypefun
@deftypefun BOOL NSPlanarFromDepth (NSWindowDepth @var{depth})
@end deftypefun
@item Read the Color at a Screen Position. [2]
@deftypefun {NSColor *} NSReadPixel (NSPoint @var{location})
@end deftypefun
@end table
@subsection Text Functions
@table @strong
@item Filter Characters Entered into a Text Object. [2]
@deftypefun {unsigned short} NSEditorFilter (unsigned short @var{theChar}, int @var{flags}, NSStringEncoding @var{theEncoding})
@end deftypefun
@deftypefun {unsigned short} NSFieldFilter (unsigned short @var{theChar}, int @var{flags}, NSStringEncoding @var{theEncoding})
@end deftypefun
@item Calculate or Draw a Line of Text (in Text Object). [2]
@deftypefun int NSDrawALine (id @var{self}, NSLayInfo * @var{layInfo})
@end deftypefun
@deftypefun int NSScanALine (id @var{self}, NSLayInfo * @var{layInfo})
@end deftypefun
@item Calculate Font Ascender, Descender, and Line Height (in Text Object). [?]
@deftypefun void NSTextFontInfo (id @var{fid}, float * @var{ascender}, float * @var{descender}, float * @var{lineHeight})
@end deftypefun
@item Access Text Object's Word Tables. [2]
@deftypefun {NSData *} NSDataWithWordTable (const unsigned char * @var{smartLeft}, const unsigned char * @var{smartRight}, const unsigned char * @var{charClasses}, const NSFSM * @var{wrapBreaks}, int @var{wrapBreaksCount}, const NSFSM * @var{clickBreaks}, int @var{clickBreaksCount}, BOOL @var{charWrap})
@end deftypefun
@deftypefun void NSReadWordTable (NSZone * @var{zone}, NSData * @var{data}, unsigned char ** @var{smartLeft}, unsigned char ** @var{smartRight}, unsigned char ** @var{charClasses}, NSFSM ** @var{wrapBreaks}, int * @var{wrapBreaksCount}, NSFSM ** @var{clickBreaks}, int * @var{clickBreaksCount}, BOOL * @var{charWrap})
@end deftypefun
@end table
@subsection Array Allocation Functions for Use by the NSText Class
@table @strong
@deftypefun {NSTextChunk *} NSChunkCopy (NSTextChunk * @var{pc}, NSTextChunk * @var{dpc})
@end deftypefun
@deftypefun {NSTextChunk *} NSChunkGrow (NSTextChunk * @var{pc}, int @var{newUsed})
@end deftypefun
@deftypefun {NSTextChunk *} NSChunkMalloc (int @var{growBy}, int @var{initUsed})
@end deftypefun
@deftypefun {NSTextChunk *} NSChunkRealloc (NSTextChunk * @var{pc})
@end deftypefun
@deftypefun {NSTextChunk *} NSChunkZoneCopy (NSTextChunk * @var{pc}, NSTextChunk * @var{dpc}, NSZone * @var{zone})
@end deftypefun
@deftypefun {NSTextChunk *} NSChunkZoneGrow (NSTextChunk * @var{pc}, int @var{newUsed}, NSZone * @var{zone})
@end deftypefun
@deftypefun {NSTextChunk *} NSChunkZoneMalloc (int @var{growBy}, int @var{initUsed}, NSZone * @var{zone})
@end deftypefun
@deftypefun {NSTextChunk *} NSChunkZoneRealloc (NSTextChunk * @var{pc}, NSZone * @var{zone})
@end deftypefun
@end table
@subsection Imaging Functions
@table @strong
@item Copy an Image. [2]
@deftypefun void NSCopyBitmapFromGState (int @var{srcGstate}, NSRect @var{srcRect}, NSRect @var{destRect})
@end deftypefun
@deftypefun void NSCopyBits (int @var{srcGstate}, NSRect @var{srcRect}, NSPoint @var{destPoint})
@end deftypefun
@item Render Bitmap Images. [2]
@deftypefun void NSDrawBitmap (NSRect @var{rect}, int @var{pixelsWide}, int @var{pixelsHigh}, int @var{bitsPerSample}, int @var{samplesPerPixel}, int @var{bitsPerPixel}, int @var{bytesPerRow}, BOOL @var{isPlanar}, BOOL @var{hasAlpha}, NSString * @var{colorSpaceName}, const unsigned char * const @var{data}[5]);
@end deftypefun
@end table
@subsection Attention Panel Functions
@table @strong
@item Create an Attention Panel without Running It Yet. [2]
@deftypefun id NSGetAlertPanel (NSString * @var{title}, NSString * @var{msg}, NSString * @var{defaultButton}, NSString * @var{alternateButton}, NSString * @var{otherButton}, @dots{})
@end deftypefun
@item Create and Run an Attention Panel. [2]
@deftypefun int NSRunAlertPanel (NSString * @var{title}, NSString * @var{msg}, NSString * @var{defaultButton}, NSString * @var{alternateButton}, NSString * @var{otherButton}, @dots{})
@end deftypefun
@deftypefun int NSRunLocalizedAlertPanel (NSString * @var{table}, NSString * @var{title}, NSString * @var{msg}, NSString * @var{defaultButton}, NSString * @var{alternateButton}, NSString * @var{otherButton}, @dots{})
@end deftypefun
@item Release an Attention Panel. [2]
@deftypefun void NSReleaseAlertPanel (id @var{panel})
@end deftypefun
@end table
@subsection Services Menu Functions
@table @strong
@item Determine Whether an Item is Included in Services Menus. [2]
@deftypefun int NSSetShowsServicesMenuItem (NSString * @var{item}, BOOL @var{showService})
@end deftypefun
@deftypefun BOOL NSShowsServicesMenuItem (NSString * @var{item})
@end deftypefun
@item Programmatically Invoke a Service. [2]
@deftypefun BOOL NSPerformService (NSString * @var{item}, NSPasteboard * @var{pboard})
@end deftypefun
@item Force Services Menu to Update Based on New Services. [2]
@deftypefun void NSUpdateDynamicServices (void)
@end deftypefun
@end table
@subsection Miscellaneous Functions
@table @strong
@item Play the System Beep. [2]
@deftypefun void NSBeep (void)
@end deftypefun
@item Return File-related Pasteboard Types. [2]
@deftypefun {NSString *} NSCreateFileContentsPboardType (NSString * @var{fileType})
@end deftypefun
@deftypefun {NSString *} NSCreateFilenamePboardType (NSString * @var{filename})
@end deftypefun
@deftypefun {NSString *} NSGetFileType (NSString * @var{pboardType})
@end deftypefun
@deftypefun {NSArray *} NSGetFileTypes (NSArray * @var{pboardTypes})
@end deftypefun
@item Draw a Distinctive Outline around Linked Data. [2]
@deftypefun void NSFrameLinkRect (NSRect @var{aRect}, BOOL @var{isDestination})
@end deftypefun
@deftypefun float NSLinkFrameThickness (void)
@end deftypefun
@item Convert an Event Mask Type to a Mask. [2]
@deftypefun {unsigned int} NSEventMaskFromType (NSEventType @var{type})
@end deftypefun
@end table

View file

@ -0,0 +1,46 @@
@c -*-texinfo-*-
@chapter TODO
@ifset TEXT-ONLY
@include version.texi
@end ifset
@section Projects Looking for Volunteers
If you think you can do one of these projects, please let me know. Your
help is greatly appreciated. Send email to @email{scottc@@net-community.com}.
@itemize @bullet
@item
Write code! The GNUstep GUI Library is far from complete, so there are
plenty of areas awaiting contribution.
@item
Printing architecture. Careful thoughts needs to go into how the
printing capabilities can be done in the most portable way, possibly
take into consideration systems that don't support the Display
Ghostscript System and/or printing to non-Postscript printers.
@item
Drag and drop/pasteboard framework. Is there a way this can be done so
that all GNU programs can take advantage of it and not just GNUstep?
That would be optimal because GNUstep and non-GNUstep programs would then
be able to partially interoperate.
@item
Expand the image handling capabilities beyond OPENSTEP. There is no
reason why we must limit ourselves to EPS and TIFF bitmaps, we should
have image representations for as many bitmap formats as possible;
excluding GIF files which are currently restricted by patents.
@item
The spell server and checker; along with this would be to create an
interface with the GNU Dictionary project.
@item
GNUstep window manager. Though not part of the GUI Library per se, an X
Window manager that gives the complete desktop the GNUstep look and feel
would be a great thing to have.
@end itemize

87
FAQ Normal file
View file

@ -0,0 +1,87 @@
Frequently Asked Questions With Answers
***************************************
Maintained by Scott Christley <scottc@net-community.com>.
Last updated August 26 1996. The most up-to-date version of this FAQ
is available at:
`ftp://www.gnustep.org/Documentation/gnustep-gui/gnustep-gui_toc.html'
Please send corrections to <scottc@net-community.com>.
1. What is the GNUstep GUI Library?
The GNUstep GUI Library is a library of objects useful for writing
graphical applications. For example, it includes classes for
drawing and manipulating graphics objects on the screen: windows,
menus, buttons, sliders, text fields, and events. There are also
many peripheral classes that offer operating-system-independent
interfaces to images, cursors, colors, fonts, pasteboards,
printing. There are also workspace support classes such as data
links, open/save panels, context-dependent help, spell checking.
It provides functionality that aims to implement the `AppKit'
portion of the OpenStep standard. However the implementation has
been written to take advantage of GNUstep enhancements wherever
possible.
2. Explain the organization of the front- and back-ends.
The GNUstep GUI Library is divided into a front- and back-end. The
front-end contains the majority of implementation, but leaves out
the low-level drawing and event code. A back-end can override
whatever methods necessary in order to implement low-level drawing
event receiving. Different back-ends will make GNUstep available
on various platforms. The default GNU back-end will run on top of
X Windows and the DisplayGhostScript Server. Other back-ends
could allow GNUstep to run on OpenGL, OS/2, and WIN32
graphics/event platforms. Much work will be saved by this clean
separation between front- and back-end, because it allows
different platforms to share the large amount of front-end code.
The front-end does not specify what mechanism to use in order to
"plug in" the back-end; that is the back-end implementor's choice.
At least two backends will use `+poseAs:' method, for example,
running `[XDPSWindow poseAs: [NSWindow class]]'. Using `+poseAs:'
is more flexible than using Categories because it allows the the
back-end implementor to choose what to override in the front-end,
instead of having the interface between front- and back-end fixed
by the front-end.
3. What is the current state of development of the front-end?
A number of classes in the front-end are complete or almost
complete; these include: NSActionCell, NSButtonCell, NSButton,
NSCell, NSControl, NSEvent, NSFont, NSResponder, and NSSlider.
Other classes are complete enough to use, but still require some
major additions before being considered almost complete:
NSApplication, NSBox, NSColor, NSFontManager, NSMenu, NSMenuCell,
NSPopUpButton, NSSliderCell, NSText, NSTextField, NSTextFieldCell,
NSView, and NSWindow.
You can review the most up-to-date status report at:
`http://www.gnustep.org/Documentation/gnustep-gui/gnustep-gui_toc.html'.
4. What back-ends are available?
The official back-end is the GNUstep GUI X/DPS Backend which runs
under the X Window System and interfaces to the Display Ghostscript
System. You can learn more at:
`http://www.gnustep.org/Documentation/gnustep-xdps/gnustep-xdps_toc.html'
5. Where can I get a copy?
It is not yet publically released. When it is available you will
be able to find it in:
`ftp://prep.ai.mit.edu/pub/gnu'
Pre-release snapshots are available at:
`ftp://ftp.net-community.com/pub/GNUstep'

127
INSTALL
View file

@ -1,12 +1,20 @@
This file documents the installation of the GNUstep GUI
Library, `libgnustep-gui'. Copyright (C) 1996 Free Software
Foundation, Inc. You may copy, distribute, and modify it freely as long
as you preserve this copyright notice and permission notice.
Installation
************
This file documents the installation of the GNUstep GUI Library,
`libgnustep-gui'. Copyright (C) 1996 Free Software Foundation, Inc.
You may copy, distribute, and modify it freely as long as you preserve
this copyright notice and permission notice.
This is version 0.1.0 of the GNUstep GUI library.
Installing `libgnustep-gui'
***************************
===========================
To compile and install `libgnustep-gui':
These notes are for a GNU system that can run `./configure'. For
Windows NT/95, if you have a working bash shell then you can follow
these instructions; otherwise, follow the MediaBook Environment specific
instructions below.
Here is a quick-and-dirty example of installation commands:
@ -14,16 +22,13 @@ Installing `libgnustep-gui'
make
make install
Here are more detailed instructions. These notes are for a GNU system
that can run ./configure. For Windows NT/95, if you have a working
bash shell then you can follow these instructions; otherwise, follow
the Windows NT/95 specific instructions below.
Here are more detailed instructions.
1. Install `gcc'. The library requires gcc version
2.7.0 or later.
2. Install 'libgnustep-base'. This library requires the classes in
the GNUstep Base Library. You must also apply the Objective-C
2. Install `libgnustep-base'. This library requires the classes in
the GNUstep Base Library. You must also apply the Objective-C
Runtime patches to GCC which makes the runtime thread-safe, if
your version of GCC lacks them.
@ -49,12 +54,12 @@ Installing `libgnustep-gui'
To compile the package in a different directory from the one
containing the source code, you must use a version of make that
supports the VPATH variable, such as GNU make. `cd' to the
directory where you want the object files and executables to go
and run `configure'. `configure' automatically checks for the
source code in the directory that `configure' is in and in `..'.
If for some reason `configure' is not in the source code directory
that you are configuring, then it will report that it can't find
the source code. In that case, run `configure' with the option
directory where you want the object files and executables to go and
run `configure'. `configure' automatically checks for the source
code in the directory that `configure' is in and in `..'. If for
some reason `configure' is not in the source code directory that
you are configuring, then it will report that it can't find the
source code. In that case, run `configure' with the option
`--srcdir=DIR', where DIR is the directory that contains the
source code.
@ -67,8 +72,8 @@ Installing `libgnustep-gui'
make prefix=/usr/gnu
You can specify separate installation prefixes for
architecture-specific files and architecture-independent files.
If you give `configure' the option `--exec_prefix=PATH' or set the
architecture-specific files and architecture-independent files. If
you give `configure' the option `--exec_prefix=PATH' or set the
`make' variable `exec_prefix' to PATH, the package will use PATH
as the prefix for installing programs and libraries. Data files
and documentation will still use the regular prefix. Normally,
@ -76,7 +81,7 @@ Installing `libgnustep-gui'
You can tell `configure' to figure out the configuration for your
system, and record it in `config.status', without actually
configuring the package (creating `Makefile's and perhaps a
configuring the package (creating Makefile(s) and perhaps a
configuration header file). To do this, give `configure' the
`--no-create' option. Later, you can run `./config.status' to
actually configure the package. This option is useful mainly in
@ -116,13 +121,13 @@ Installing `libgnustep-gui'
Libraries to link with, in the form `-lfoo -lbar ...'
If you need to do unusual things to compile the package, we
encourage you to figure out how `configure' could check whether to
do them, and mail diffs or instructions to the address given in
encourage you to figure out how `configure.in' could check whether
to do them, and mail diffs or instructions to the address given in
the `README' so we can include them in the next release.
4. Type `make' to compile the package. If you want, you can override
the `make' variables `CFLAGS' and `LDFLAGS' like this:
make CFLAGS=-O2 LDFLAGS=-s
make CFLAGS=-O2 LDFLAGS=-s
5. Type `make install' to install the library, data files, header
files, and documentation.
@ -137,47 +142,63 @@ Installing `libgnustep-gui'
if you want to regenerate `configure' using a newer version of
`autoconf'.
Installing on Windows NT/95
***************************
Installing in the MediaBook environment
=======================================
The system requires that you have headers and libraries for
the WIN32 API and ANSI-C.
The MediaBook environment under Windows NT and Window 95 utilizes the
native shell of the operating systems, so it does not require you to
have a `bash' or UNIX-like shell to configure and install the library.
The MediaBook environment utilizes the `configure.bat' batch file to
configure the package; it creates the `Makefile(s)' by processing a
`Makefile.in' with its corresponding `Makefile.sed.nt'.
Quick installation instructions:
The MediaBook environment should have these environment variables
defined for the installation to work.
configure
make
make install
*MB_DEV*
The drive and directory of the development root. For example it
may be `C:\MBCD\Development'; it is analogous to `/usr/local' on
UNIX systems.
Detail installation instructions:
*MB_H*
The directory name within the development root `MB_DEV' where the
header files are stored; e.g. `Headers'.
*MB_LIB*
The directory name within the development root `MB_DEV' where the
library files are stored; this tends to be specific to the target
operating system, e.g. `Libraries\MS-WIN32'.
To install the headers and import libraries:
configure.bat
make install
Here are more detailed instructions.
1. Install `gcc'. The library requires gcc version
2.7.0 or later.
2. Install 'libgnustep-base'. This library requires the classes in
the GNUstep Base Library. You must also apply the Objective-C
2. Install `libgnustep-base'. This library requires the classes in
the GNUstep Base Library. You must also apply the Objective-C
Runtime patches to GCC which makes the runtime thread-safe, if
your version of GCC lacks them.
3. Configure the package for your system. Review the Makefile.sed.nt
which is used to process Makefile.in to create a working Makefile.
Of interest are:
3. Configure the package for your system. In the directory that this
file is in, type `configure.bat'.
'lib_installdir' where to install the library file
'h_installdir' where to install the headers
'sys_libs' WIN32 API and ANSI-C libraries
The `configure.bat' batch file processes the `Makefile.in'
templates with the corresponding `Makefile.sed.nt' sed script file
to produce the resultant `Makefile(s)'.
4. Run 'configure.bat' to create the Makefile, and the header configuration
file 'Headers/gnustep/gui/config.h'
By default, `make install' will install the package's header files
into `$(MB_DEV)\$(MB_H)' and the library files in
`$(MB_DEV)\$(MB_LIB)'. You should have these environment variables
defined before you run `make'. You can change the development root
`MB_DEV' by giving a value for the `prefix' variable when you run
`make', e.g.,
make prefix=C:\MBCD\MyDevelopment
5. Type `make' to compile the package. If you want, you can override
the `make' variables `CFLAGS' and `LDFLAGS' like this:
make CFLAGS=-O2 LDFLAGS=-s
4. Type `make install' to install the import libraries, header files,
and documentation.
6. Type `make install' to install the library, data files, header
files, and documentation.
7. You can remove the program binaries and object files from the
source directory by typing `make clean'. To also remove the
Makefile(s), and `config.status' (all the files that `configure'
created), type `make distclean'.

22
NEWS
View file

@ -1,21 +1,21 @@
GNUstep GUI Library NEWS
************************
NEWS
****
The currently released version of the library is `0.1.0'
The currently released version of the library is `0.1.0'.
Noteworthy changes in version `0.1.0'
======================================
=====================================
* Integration of the GNUstep X/DPS GUI Backend. This has finally
produced a set of core code with can display on X/Windows.
Much of the X/Windows code has been written by Pascal Forget
produced a set of core code with can display on X/Windows. Much
of the X/Windows code has been written by Pascal Forget
<pascal@wsc.com> and integration efforts have been lead by Scott
Christley <scottc@net-community.com>.
* Some major directory reorganization for the new naming guidelines.
Headers previously in AppKit and DPSClient directories have been moved
to gnustep/gui and gnustep/dps directores and symbol links are
created for the AppKit and DPSClient directories. This should allow
both GNUstep and other OpenStep implementations to reside on the
same machine without conflicts.
Headers previously in AppKit and DPSClient directories have been
moved to gnustep/gui and gnustep/dps directores and symbol links
are created for the AppKit and DPSClient directories. This should
allow both GNUstep and other OpenStep implementations to reside on
the same machine without conflicts.

23
README
View file

@ -1,32 +1,31 @@
GNUstep GUI Library README
**************************
README
******
Here is some introductory info to get you started:
This is version 0.1.0 of the GNUstep GUI library (`libgnustep-gui').
Here is some introductory info to get you started:
Initial reading
===============
The file `ANNOUNCE' contains a very brief overview of the library.
It also tells you where to get the most recent version.
* The file `ANNOUNCE' contains a very brief overview of the library.
It also tells you where to get the most recent version.
The file `NEWS' has the library's feature history.
* The file `NEWS' has the library's feature history.
The file `INSTALL' gives instructions for installing the library.
* The file `INSTALL' gives instructions for installing the library.
How can you help?
=================
* Read the projects and questions in the `TODO' file. If you can
* Read the projects and questions in the `TODO' file. If you can
volunteer for any of the projects, or if you have any useful
comments send me email! <scottc@net-community.com>
* Give me feedback! Tell me what you like; tell me what you think
could be better. Send me bug reports.
* Donate classes. If you write classes that fit in the GNUstep GUI
Library framework, I'd be happy to include them.
Creators rejoice!
Scott Christley
scottc@net-community.com
<scottc@net-community.com>

420
STATUS Normal file
View file

@ -0,0 +1,420 @@
Status Report
*************
Last updated August 1996. The most up-to-date version of this status
report is available at:
`http://www.gnustep.org/Documentation/gnustep-gui/gnustep-gui_toc.html'
Please send corrections to <scottc@net-community.com>.
*Key:*
*[10]*
Complete and tested.
*[8]*
Missing a few non-core methods, definitely usable.
*[6]*
Missing several methods, but core is there, usable.
*[4]*
Begun, but missing core functionality, not usable.
*[2]*
Skeleton.
*[0]*
Nothing there.
*[?]*
Unknown status.
Classes
=======
Currently none of the classes raise exceptions; and notifications and
notifications centers are non-existent.
*NSActionCell:: [9]*
Should not require any implementation in the backend as it is an
abstract class which only defines behaviour. All methods are
implemented; the only thing lacking is a test, if needed.
*NSApplication:: [6]*
The event handling is pretty good though it does not take
advantage of the NSRunLoop class. Many of the minor methods are
implemented. No window ordering is being maintained, and a number
of the methods that perform operations on windows are empty.
Modal loops are not implemented.
*NSBitmapImageRep:: [4]*
Many of the methods have code, but the class has not been made to
work; though, some of this could be due to lack of backend
implementation. No compression nor generation of TIFF
representations.
*NSBox:: [8]*
Many of the methods have code, but whether the class is usable
depends upon how much implementation has been done in the backend.
*NSBrowser:: [2]*
*NSBrowserCell:: [2]*
*NSButton:: [8]*
Repeat intervals and key equivalents not implemented. There
should be little need for backend implementation as NSButton is
mainly behavior; its cell class does all drawing.
*NSButtonCell:: [8]*
Repeat intervals and key equivalents not implemented. Actual
ability to use will depend upon backend implementation.
*NSCachedImageRep:: [4]*
All methods are implemented but its unknown if the class works.
*NSCell:: [8]*
No determination of component sizes. Editting text, validating
input, represented object, and some other odd and end methods not
implemented.
*NSClipView:: [2]*
*NSColor:: [5]*
Doesn't know the difference between calibrated and device; only
supported colorspace is RGB. Maybe usable with backend
implementation for basic colors like white, black, red, etc.
*NSColorList:: [2]*
*NSColorPanel:: [2]*
*NSColorPicker:: [2]*
*NSColorWell:: [2]*
*NSControl:: [8]*
No field editor; doesn't know how to calculate its size.
*NSCursor:: [2]*
*NSCustomImageRep:: [4]*
All methods are implemented but it is unknown if the class works.
*NSDataLink:: [2]*
*NSDataLinkManager:: [2]*
*NSDataLinkPanel:: [2]*
*NSDPSContext:: [6]*
Enough implementation for the backend to do something useful; most
methods that deal specifically with Display Ghostscript are empty.
*NSEPSImageRep:: [2]*
*NSEvent:: [9]*
All methods implemented except periodic events.
*NSFont:: [4]*
Maintains no AFM or glyph information. Usability depends greatly
upon backend implementation.
*NSFontManager:: [4]*
Only primitive capability.
*NSFontPanel:: [2]*
May be usable with backend implementation.
*NSForm:: [2]*
*NSFormCell:: [2]*
*NSHelpPanel:: [2]*
*NSImage:: [4]*
All methods are implemented but it is unknown if the class works.
*NSImageRep:: [4]*
All methods are implemented but it is unknown if the class works.
*NSMatrix:: [6]*
Many methods are implemented but more thorough testing needs to be
done.
*NSMenu:: [4]*
Usability greatly depends upon backend implementation.
*NSMenuCell:: [4]*
Usability greatly depends upon backend implementation.
*NSOpenPanel:: [6]*
Usability greatly depends upon backend implementation.
*NSPageLayout:: [2]*
*NSPanel:: [2]*
*NSPasteboard:: [2]*
*NSPopUpButton:: [4]*
Usability greatly depends upon backend implementation.
*NSPrinter:: [2]*
*NSPrintinfo:: [2]*
*NSPrintOperation:: [2]*
*NSPrintPanel:: [2]*
*NSResponder:: [9]*
Shouldn't require any backend implementation; all methods are
implemented.
*NSSavePanel:: [6]*
Usability greatly depends upon backend implementation.
*NSScreen:: [6]*
Knows nothing about window depth, greatly depends upon backend
implementation.
*NSScroller:: [2]*
Most behaviour can probably be taken from NSSlider and
NSSliderCell.
*NSScrollView:: [2]*
*NSSelection:: [2]*
*NSSlider:: [4]*
Usability greatly depends upon backend implementation.
*NSSliderCell:: [6]*
No title or image capability implemented, greatly depends upon
backend.
*NSSpellChecker:: [2]*
*NSSpellServer:: [2]*
*NSSplitView:: [2]*
*NSText:: [2]*
Usability greatly depends upon backend implementation.
*NSTextField:: [8]*
Does not properly send text delegate messages.
*NSTextFieldCell:: [4]*
Usability greatly depends upon backend implementation.
*NSView:: [6]*
Maintains subview lists, notification of new window, send resizing
messages to subviews. No rotation, scaling, or translation of
user coordinate space; coordinate conversion doesn't take user
coordinate space into affect, so everything is based upon device
coordinate space. Event handling and tracking rectangles
implemented. No scrolling capability. No cursor management. No
printing, paging, or postscript.
*NSWindow:: [4]*
Most methods not implemented, but maybe usable with backend
implementation.
*NSWorkspace:: [2]*
Erich Boleyn has some initial ideas and design.
Protocols
=========
*NSChangeSpelling:: [0]*
*NSColorPickingCustom:: [0]*
*NSColorPickingDefault:: [0]*
*NSDraggingDestination:: [0]*
*NSDraggingInfo:: [0]*
*NSDraggingSource:: [0]*
*NSIgnoreMisspelledWords:: [0]*
*NSMenuActionResponder:: [0]*
*NSNibAwaking:: [0]*
*NSServicesRequests:: [0]*
Functions
=========
Very few if any of the functions are implemented; all the functions
dealing with drawing will probably be implemented in the backend. Most
other functions deal with classes that lack sufficient implementation.
Rectangle Drawing Functions
---------------------------
*Optimize Drawing. [2]*
- Function: void NSEraseRect (NSRect ARECT )
- Function: void NSHighlightRect (NSRect ARECT )
- Function: void NSRectClip (NSRect ARECT )
- Function: void NSRectClipList (const NSRect * RECTS, int COUNT )
- Function: void NSRectFill (NSRect ARECT )
- Function: void NSRectFillList (const NSRect * RECTS, int COUNT )
- Function: void NSRectFillListWithGrays (const NSRect * RECTS,
const float * GRAYS, int COUNT )
*Draw a Bordered Rectangle. [2]*
- Function: void NSDrawButton (NSRect ARECT, NSRect CLIPRECT )
- Function: void NSDrawGrayBezel (NSRect ARECT, NSRect CLIPRECT )
- Function: void NSDrawGroove (NSRect ARECT, NSRect CLIPRECT )
- Function: NSRect NSDrawTiledRects (NSRect BOUNDSRECT, NSRect
CLIPRECT, const NSRectEdge * SIDES, const float * GRAYS,
int COUNT )
- Function: void NSDrawWhiteBezel (NSRect ARECT, NSRect CLIPRECT )
- Function: void NSFrameRect (NSRect ARECT )
- Function: void NSFrameRectWithWidth (NSRect ARECT, float
FRAMEWIDTH )
Color Functions
---------------
*Get Information About Color Space and Window Depth. [2]*
- Function: void NSWindowDepth * NSAvailableWindowDepths ( void )
- Function: NSWindowDepth NSBestDepth (NSString * COLORSPACE, int
BITSPERSAMPLE, int BITSPERPIXEL, BOOL PLANAR, BOOL *
EXACTMATCH)
- Function: int NSBitsPerPixelFromDepth (NSWindowDepth DEPTH)
- Function: int NSBitsPerSampleFromDepth (NSWindowDepth DEPTH)
- Function: NSString * NSColorSpaceFromDepth (NSWindowDepth DEPTH)
- Function: int NSNumberOfColorComponents (NSString *
COLORSPACENAME)
- Function: BOOL NSPlanarFromDepth (NSWindowDepth DEPTH)
*Read the Color at a Screen Position. [2]*
- Function: NSColor * NSReadPixel (NSPoint LOCATION)
Text Functions
--------------
*Filter Characters Entered into a Text Object. [2]*
- Function: unsigned short NSEditorFilter (unsigned short
THECHAR, int FLAGS, NSStringEncoding THEENCODING)
- Function: unsigned short NSFieldFilter (unsigned short THECHAR,
int FLAGS, NSStringEncoding THEENCODING)
*Calculate or Draw a Line of Text (in Text Object). [2]*
- Function: int NSDrawALine (id SELF, NSLayInfo * LAYINFO)
- Function: int NSScanALine (id SELF, NSLayInfo * LAYINFO)
*Calculate Font Ascender, Descender, and Line Height (in Text Object). [?]*
- Function: void NSTextFontInfo (id FID, float * ASCENDER, float
* DESCENDER, float * LINEHEIGHT)
*Access Text Object's Word Tables. [2]*
- Function: NSData * NSDataWithWordTable (const unsigned char *
SMARTLEFT, const unsigned char * SMARTRIGHT, const
unsigned char * CHARCLASSES, const NSFSM * WRAPBREAKS,
int WRAPBREAKSCOUNT, const NSFSM * CLICKBREAKS, int
CLICKBREAKSCOUNT, BOOL CHARWRAP)
- Function: void NSReadWordTable (NSZone * ZONE, NSData * DATA,
unsigned char ** SMARTLEFT, unsigned char ** SMARTRIGHT,
unsigned char ** CHARCLASSES, NSFSM ** WRAPBREAKS, int *
WRAPBREAKSCOUNT, NSFSM ** CLICKBREAKS, int *
CLICKBREAKSCOUNT, BOOL * CHARWRAP)
Array Allocation Functions for Use by the NSText Class
------------------------------------------------------
- Function: NSTextChunk * NSChunkCopy (NSTextChunk * PC,
NSTextChunk * DPC)
- Function: NSTextChunk * NSChunkGrow (NSTextChunk * PC, int
NEWUSED)
- Function: NSTextChunk * NSChunkMalloc (int GROWBY, int INITUSED)
- Function: NSTextChunk * NSChunkRealloc (NSTextChunk * PC)
- Function: NSTextChunk * NSChunkZoneCopy (NSTextChunk * PC,
NSTextChunk * DPC, NSZone * ZONE)
- Function: NSTextChunk * NSChunkZoneGrow (NSTextChunk * PC, int
NEWUSED, NSZone * ZONE)
- Function: NSTextChunk * NSChunkZoneMalloc (int GROWBY, int
INITUSED, NSZone * ZONE)
- Function: NSTextChunk * NSChunkZoneRealloc (NSTextChunk * PC,
NSZone * ZONE)
Imaging Functions
-----------------
*Copy an Image. [2]*
- Function: void NSCopyBitmapFromGState (int SRCGSTATE, NSRect
SRCRECT, NSRect DESTRECT)
- Function: void NSCopyBits (int SRCGSTATE, NSRect SRCRECT,
NSPoint DESTPOINT)
*Render Bitmap Images. [2]*
- Function: void NSDrawBitmap (NSRect RECT, int PIXELSWIDE, int
PIXELSHIGH, int BITSPERSAMPLE, int SAMPLESPERPIXEL, int
BITSPERPIXEL, int BYTESPERROW, BOOL ISPLANAR, BOOL
HASALPHA, NSString * COLORSPACENAME, const unsigned char
* const DATA[5]);
Attention Panel Functions
-------------------------
*Create an Attention Panel without Running It Yet. [2]*
- Function: id NSGetAlertPanel (NSString * TITLE, NSString * MSG,
NSString * DEFAULTBUTTON, NSString * ALTERNATEBUTTON,
NSString * OTHERBUTTON, ...)
*Create and Run an Attention Panel. [2]*
- Function: int NSRunAlertPanel (NSString * TITLE, NSString *
MSG, NSString * DEFAULTBUTTON, NSString *
ALTERNATEBUTTON, NSString * OTHERBUTTON, ...)
- Function: int NSRunLocalizedAlertPanel (NSString * TABLE,
NSString * TITLE, NSString * MSG, NSString *
DEFAULTBUTTON, NSString * ALTERNATEBUTTON, NSString *
OTHERBUTTON, ...)
*Release an Attention Panel. [2]*
- Function: void NSReleaseAlertPanel (id PANEL)
Services Menu Functions
-----------------------
*Determine Whether an Item is Included in Services Menus. [2]*
- Function: int NSSetShowsServicesMenuItem (NSString * ITEM, BOOL
SHOWSERVICE)
- Function: BOOL NSShowsServicesMenuItem (NSString * ITEM)
*Programmatically Invoke a Service. [2]*
- Function: BOOL NSPerformService (NSString * ITEM, NSPasteboard
* PBOARD)
*Force Services Menu to Update Based on New Services. [2]*
- Function: void NSUpdateDynamicServices (void)
Miscellaneous Functions
-----------------------
*Play the System Beep. [2]*
- Function: void NSBeep (void)
*Return File-related Pasteboard Types. [2]*
- Function: NSString * NSCreateFileContentsPboardType (NSString *
FILETYPE)
- Function: NSString * NSCreateFilenamePboardType (NSString *
FILENAME)
- Function: NSString * NSGetFileType (NSString * PBOARDTYPE)
- Function: NSArray * NSGetFileTypes (NSArray * PBOARDTYPES)
*Draw a Distinctive Outline around Linked Data. [2]*
- Function: void NSFrameLinkRect (NSRect ARECT, BOOL
ISDESTINATION)
- Function: float NSLinkFrameThickness (void)
*Convert an Event Mask Type to a Mask. [2]*
- Function: unsigned int NSEventMaskFromType (NSEventType TYPE)

36
TODO Normal file
View file

@ -0,0 +1,36 @@
TODO
****
Projects Looking for Volunteers
===============================
If you think you can do one of these projects, please let me know. Your
help is greatly appreciated. Send email to <scottc@net-community.com>.
* Write code! The GNUstep GUI Library is far from complete, so
there are plenty of areas awaiting contribution.
* Printing architecture. Careful thoughts needs to go into how the
printing capabilities can be done in the most portable way,
possibly take into consideration systems that don't support the
Display Ghostscript System and/or printing to non-Postscript
printers.
* Drag and drop/pasteboard framework. Is there a way this can be
done so that all GNU programs can take advantage of it and not
just GNUstep? That would be optimal because GNUstep and
non-GNUstep programs would then be able to partially interoperate.
* Expand the image handling capabilities beyond OPENSTEP. There is
no reason why we must limit ourselves to EPS and TIFF bitmaps, we
should have image representations for as many bitmap formats as
possible; excluding GIF files which are currently restricted by
patents.
* The spell server and checker; along with this would be to create an
interface with the GNU Dictionary project.
* GNUstep window manager. Though not part of the GUI Library per
se, an X Window manager that gives the complete desktop the
GNUstep look and feel would be a great thing to have.

18
Version
View file

@ -1,15 +1,17 @@
# This file is included in various Makefile's to get version information.
# The gcc version required to compile the library.
APPKIT_GCC_VERSION = 2.7.0
GNUSTEP_GUI_GCC_VERSION = 2.7.0
# The version number of this release.
APPKIT_MAJOR_VERSION = 0
APPKIT_MINOR_VERSION = 1
APPKIT_SUBMINOR_VERSION = 0
APPKIT_VERSION = \
$(APPKIT_MAJOR_VERSION).$(APPKIT_MINOR_VERSION).$(APPKIT_SUBMINOR_VERSION)
GNUSTEP_GUI_MAJOR_VERSION = 0
GNUSTEP_GUI_MINOR_VERSION = 1
GNUSTEP_GUI_SUBMINOR_VERSION = 0
GNUSTEP_GUI_VERSION = \
$(GNUSTEP_GUI_MAJOR_VERSION).$(GNUSTEP_GUI_MINOR_VERSION).$(GNUSTEP_GUI_SUBMINOR_VERSION)
APPKIT_FTP_MACHINE = alpha.gnu.ai.mit.edu
APPKIT_FTP_DIRECTORY = gnu
GNUSTEP_GUI_FTP_MACHINE = prep.ai.mit.edu
GNUSTEP_GUI_FTP_DIRECTORY = pub/gnu
GNUSTEP_GUI_SNAP_FTP_MACHINE = ftp.net-community.com
GNUSTEP_GUI_SNAP_FTP_DIRECTORY = pub/GNUstep

4
configure vendored
View file

@ -909,7 +909,7 @@ done
ac_given_srcdir=$srcdir
ac_given_INSTALL="$INSTALL"
trap 'rm -fr `echo "Makefile Source/Makefile Testing/Makefile Headers/gnustep/gui/config.h" | sed "s/:[^ ]*//g"` conftest*; exit 1' 1 2 15
trap 'rm -fr `echo "Makefile Source/Makefile Testing/Makefile Headers/gnustep/gui/config.h Documentation/Makefile" | sed "s/:[^ ]*//g"` conftest*; exit 1' 1 2 15
# Protect against being on the right side of a sed subst in config.status.
sed 's/%@/@@/; s/@%/@@/; s/%g$/@g/; /@g$/s/[\\\\&%]/\\\\&/g;
@ -937,7 +937,7 @@ CEOF
EOF
cat >> $CONFIG_STATUS <<EOF
CONFIG_FILES=\${CONFIG_FILES-"Makefile Source/Makefile Testing/Makefile Headers/gnustep/gui/config.h"}
CONFIG_FILES=\${CONFIG_FILES-"Makefile Source/Makefile Testing/Makefile Headers/gnustep/gui/config.h Documentation/Makefile"}
EOF
cat >> $CONFIG_STATUS <<\EOF
for ac_file in .. $CONFIG_FILES; do if test "x$ac_file" != x..; then

View file

@ -51,5 +51,5 @@ AC_SUBST(config_include)
#--------------------------------------------------------------------
# Write the Makefiles and configuration files
#--------------------------------------------------------------------
AC_OUTPUT(Makefile Source/Makefile Testing/Makefile Headers/gnustep/gui/config.h)
AC_OUTPUT(Makefile Source/Makefile Testing/Makefile Headers/gnustep/gui/config.h Documentation/Makefile)