diff --git a/ANNOUNCE b/ANNOUNCE index c2844b4c8..e9a31f03f 100644 --- a/ANNOUNCE +++ b/ANNOUNCE @@ -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 - + ***** -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: - 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 - 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' diff --git a/ChangeLog b/ChangeLog index 1ea1102ee..cc8f5cad7 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,4 +1,27 @@ -Mon Aug 12 14:16:12 1996 GNUstep Development +Tue Sep 3 13:47:52 1996 GNUstep Development + + 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 * 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 * Source/Makefile.sed.nt: Disable debugging by default. -Wed Jun 26 12:43:17 1996 GNUstep Development +Wed Jun 26 12:43:17 1996 GNUstep Development * 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 * Source/NSWindow.m: Corrections to key and main window notification and first responder handling. -Fri Jun 21 11:09:50 1996 GNUstep Development +Fri Jun 21 11:09:50 1996 GNUstep Development * 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 * 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 +Thu Jun 6 09:20:51 1996 GNUstep Development * 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 * Source/NSView.m (+pushFocusView, +focusView): Remove debugging information. -Mon Jun 3 10:54:28 1996 GNUstep Development +Mon Jun 3 10:54:28 1996 GNUstep Development * Makefile.in (clean-top, distclean): Correct targets and clean all header subdirectories. diff --git a/Documentation/Makefile.in b/Documentation/Makefile.in new file mode 100644 index 000000000..a31bef111 --- /dev/null +++ b/Documentation/Makefile.in @@ -0,0 +1,246 @@ +# +# Documentation makefile for GNUstep GUI Library +# Copyright (C) 1996 Free Software Foundation, Inc. +# +# Author: Scott Christley +# 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{\([^}]*\)},\1,g' \ + $(srcdir)/$$i \ + | sed -e 's,@url{\([^}]*\)},\1,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{\([^}]*\)},\1,g' \ + $(srcdir)/$$i \ + | sed -e 's,@url{\([^}]*\)},\1,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 diff --git a/Documentation/announce.texi.orig b/Documentation/announce.texi.orig new file mode 100644 index 000000000..4ee66e7cc --- /dev/null +++ b/Documentation/announce.texi.orig @@ -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 diff --git a/Documentation/faq.texi.orig b/Documentation/faq.texi.orig new file mode 100644 index 000000000..2f0288265 --- /dev/null +++ b/Documentation/faq.texi.orig @@ -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 + diff --git a/Documentation/gnustep-gui.texi.orig b/Documentation/gnustep-gui.texi.orig new file mode 100644 index 000000000..aecf52109 --- /dev/null +++ b/Documentation/gnustep-gui.texi.orig @@ -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 diff --git a/Documentation/install.texi.orig b/Documentation/install.texi.orig new file mode 100644 index 000000000..b5debabce --- /dev/null +++ b/Documentation/install.texi.orig @@ -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 diff --git a/Documentation/news.texi.orig b/Documentation/news.texi.orig new file mode 100644 index 000000000..a43a03533 --- /dev/null +++ b/Documentation/news.texi.orig @@ -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 diff --git a/Documentation/readme.texi.orig b/Documentation/readme.texi.orig new file mode 100644 index 000000000..ec02073c2 --- /dev/null +++ b/Documentation/readme.texi.orig @@ -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} \ No newline at end of file diff --git a/Documentation/status.texi.orig b/Documentation/status.texi.orig new file mode 100644 index 000000000..48acb6d63 --- /dev/null +++ b/Documentation/status.texi.orig @@ -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 diff --git a/Documentation/todo.texi.orig b/Documentation/todo.texi.orig new file mode 100644 index 000000000..ecfeeade0 --- /dev/null +++ b/Documentation/todo.texi.orig @@ -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 diff --git a/FAQ b/FAQ new file mode 100644 index 000000000..b50f975d6 --- /dev/null +++ b/FAQ @@ -0,0 +1,87 @@ +Frequently Asked Questions With Answers +*************************************** + +Maintained by Scott Christley . + + 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 . + + 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' + + diff --git a/INSTALL b/INSTALL index aa4e7bda1..d4cd9c8cb 100644 --- a/INSTALL +++ b/INSTALL @@ -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'. diff --git a/NEWS b/NEWS index e6ed332f7..835927ed2 100644 --- a/NEWS +++ b/NEWS @@ -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 and integration efforts have been lead by Scott Christley . * 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. diff --git a/README b/README index 414cb8d7f..25b8a4628 100644 --- a/README +++ b/README @@ -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! * 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 + diff --git a/STATUS b/STATUS new file mode 100644 index 000000000..d8ba6bf32 --- /dev/null +++ b/STATUS @@ -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 . + + *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) + diff --git a/TODO b/TODO new file mode 100644 index 000000000..57225b543 --- /dev/null +++ b/TODO @@ -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 . + + * 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. + diff --git a/Version b/Version index 26de48e3e..0246e02e7 100644 --- a/Version +++ b/Version @@ -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 diff --git a/configure b/configure index 96dc55543..3bbcddbdf 100755 --- a/configure +++ b/configure @@ -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 <> $CONFIG_STATUS <<\EOF for ac_file in .. $CONFIG_FILES; do if test "x$ac_file" != x..; then diff --git a/configure.in b/configure.in index 2f066dcd7..522cc4371 100644 --- a/configure.in +++ b/configure.in @@ -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)