1999-12-29 10:29:15 +00:00
|
|
|
\input texinfo @c -*-texinfo-*-
|
|
|
|
|
|
|
|
@c %**start of header
|
|
|
|
@settitle Guide to the Gorm application
|
2001-02-07 07:06:16 +00:00
|
|
|
@setfilename Gorm.info
|
1999-12-29 10:29:15 +00:00
|
|
|
@c %**end of header
|
|
|
|
@defcodeindex cl
|
|
|
|
@defcodeindex pr
|
|
|
|
|
|
|
|
@include version.texi
|
|
|
|
|
|
|
|
@ifinfo
|
|
|
|
@format
|
|
|
|
START-INFO-DIR-ENTRY
|
|
|
|
* Gorm:: The GNUstep Graphical Object Relationship Modeler
|
|
|
|
END-INFO-DIR-ENTRY
|
|
|
|
@end format
|
|
|
|
@end ifinfo
|
|
|
|
|
|
|
|
@ifinfo
|
|
|
|
This file documents the features and implementation of the Gorm
|
|
|
|
application.
|
|
|
|
|
|
|
|
Copyright (C) 1999,2000 Free Software Foundation, Inc.
|
|
|
|
|
|
|
|
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.
|
|
|
|
|
|
|
|
@ignore
|
|
|
|
Permission is granted to process this file through @TeX{} and print the
|
|
|
|
results, provided the printed document carries copying permission
|
|
|
|
notice identical to this one except for the removal of this paragraph
|
|
|
|
(this paragraph not being relevant to the printed manual).
|
|
|
|
|
|
|
|
@end ignore
|
|
|
|
Permission is granted to copy and distribute modified versions of this
|
|
|
|
manual under the conditions for verbatim copying, provided also that the
|
|
|
|
section entitled ``GNU Library General Public License'' is included exactly as
|
|
|
|
in the original, and provided 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,
|
|
|
|
except that the section entitled ``GNU Library General Public License'' and
|
|
|
|
this permission notice may be included in translations approved by the
|
|
|
|
Free Software Foundation instead of in the original English.
|
|
|
|
@end ifinfo
|
|
|
|
|
|
|
|
@iftex
|
|
|
|
@finalout
|
|
|
|
@c @smallbook
|
|
|
|
@c @cropmarks
|
|
|
|
@end iftex
|
|
|
|
|
|
|
|
@setchapternewpage odd
|
|
|
|
|
|
|
|
@titlepage
|
|
|
|
@title Guide to the
|
|
|
|
@title Gorm application
|
|
|
|
@sp 3
|
2001-02-07 07:06:16 +00:00
|
|
|
@c @subtitle last updated February, 2001
|
1999-12-29 10:29:15 +00:00
|
|
|
@subtitle Version @value{GORM-VERSION}
|
2000-01-04 12:21:17 +00:00
|
|
|
@subtitle (for use with @samp{gstep-base} version @value{GNUSTEP-VERSION})
|
2003-10-30 04:21:27 +00:00
|
|
|
@author Gregory John Casamento <greg_casamento@@yahoo.com>
|
1999-12-29 10:29:15 +00:00
|
|
|
@author Richard Frith-Macdonald <richard@@brainstorm.co.uk>
|
|
|
|
@page
|
|
|
|
@vskip 0pt plus 1filll
|
2000-01-04 12:21:17 +00:00
|
|
|
Copyright @copyright{} 1999,2000 Free Software Foundation, Inc.
|
1999-12-29 10:29:15 +00:00
|
|
|
|
|
|
|
|
|
|
|
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
|
|
|
|
section entitled ``GNU Library General Public License'' is included exactly as
|
|
|
|
in the original, and provided 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,
|
|
|
|
except that the section entitled ``GNU Library General Public License'' may be
|
|
|
|
included in a translation approved by the author instead of in the original
|
|
|
|
English.
|
|
|
|
|
2000-01-04 12:21:17 +00:00
|
|
|
@strong{Note: The Gorm application is in alpha release. You will
|
1999-12-29 10:29:15 +00:00
|
|
|
be performing a valuable service if you report any bugs you encounter.}
|
|
|
|
|
|
|
|
@end titlepage
|
|
|
|
|
|
|
|
@node Top, Copying, ,
|
|
|
|
|
|
|
|
@menu
|
2000-01-04 12:21:17 +00:00
|
|
|
* Copying:: GNU Public License says how you can copy
|
1999-12-29 10:29:15 +00:00
|
|
|
and share Gorm.
|
|
|
|
* Contributors:: People who have contributed to Gorm.
|
|
|
|
* Installation:: How to build and install Gorm.
|
|
|
|
* News:: The latest changes to Gorm.
|
|
|
|
|
|
|
|
* Overview:: Gorm in brief.
|
2000-01-04 12:21:17 +00:00
|
|
|
* Usage:: How Gorm is used.
|
1999-12-29 10:29:15 +00:00
|
|
|
* Implementation:: Implementation notes.
|
|
|
|
|
|
|
|
* Concept Index::
|
|
|
|
@end menu
|
|
|
|
|
|
|
|
@node Copying, Contributors, Top, Top
|
|
|
|
@unnumbered Copying
|
|
|
|
|
|
|
|
See the file @samp{COPYING}.
|
|
|
|
|
|
|
|
@node Contributors, Installation, Copying, Top
|
|
|
|
@unnumbered Contributors to Gorm
|
|
|
|
|
|
|
|
@itemize @bullet
|
|
|
|
@item
|
2003-01-12 06:29:19 +00:00
|
|
|
Gregory John Casamento <greg_casamento@@yahoo.com> Is the
|
|
|
|
current maintaner of Gorm. Has implemented lots of new
|
|
|
|
features and rewritten large portions of the existing code.
|
|
|
|
@item
|
2003-10-08 04:35:23 +00:00
|
|
|
Richard Frith-Macdonald <richard@@brainstorm.co.uk> wrote
|
|
|
|
Gorm as part of the GNUstep project.
|
|
|
|
@item
|
2003-01-12 06:29:19 +00:00
|
|
|
Pierre-Yves Rivaille <gnustep@@rivaille.net> Is also a
|
|
|
|
major contributor to the Gorm application.
|
1999-12-29 10:29:15 +00:00
|
|
|
@end itemize
|
|
|
|
|
|
|
|
@node Installation, News, Contributors, Top
|
|
|
|
@chapter Installing Gorm
|
|
|
|
|
|
|
|
@include install.texi
|
|
|
|
|
|
|
|
@node News, Overview, Installation, Top
|
|
|
|
@chapter News
|
|
|
|
|
|
|
|
@include news.texi
|
|
|
|
|
|
|
|
@subsection To Do
|
|
|
|
|
|
|
|
@itemize @bullet
|
|
|
|
|
2003-01-12 06:29:19 +00:00
|
|
|
@item Debug and stabilize existing code.
|
1999-12-29 10:29:15 +00:00
|
|
|
|
|
|
|
@end itemize
|
|
|
|
|
2000-01-04 12:21:17 +00:00
|
|
|
@node Overview, Usage, News, Top
|
1999-12-29 10:29:15 +00:00
|
|
|
@chapter Overview
|
|
|
|
|
|
|
|
Gorm is an application for creating the user interface (and possibly entire
|
2000-01-04 12:21:17 +00:00
|
|
|
applications) for a GNUstep application. Initially a close clone of the old
|
|
|
|
NeXTstep 3.3 Interface Builder application, I expect that Gorm will mutate
|
|
|
|
beyond the capabilities of that app.
|
|
|
|
|
|
|
|
GNUstep is an object-oriented programming framework and a collection of tools
|
|
|
|
developed for or using the GNUstep libraries.
|
1999-12-29 10:29:15 +00:00
|
|
|
|
|
|
|
You can find out more about GNUstep at
|
|
|
|
@url{http://www.gnustep.org}@*
|
|
|
|
|
2000-01-04 12:21:17 +00:00
|
|
|
The basic idea behind Gorm is simple - it provides a graphical user interface
|
|
|
|
with which to connect together objects from the GNUstep libraries (as well as
|
|
|
|
custom-written objects) and set their attributes in an easy to use manner.
|
|
|
|
|
|
|
|
The collection of objects is then saved as a document which can either be
|
|
|
|
re-loaded into Gorm for further editing, or can be loaded into a running
|
|
|
|
GNUstep application in order to provide that application with a user
|
|
|
|
interface or some subsystem.
|
|
|
|
|
1999-12-29 10:29:15 +00:00
|
|
|
@subsection Major features
|
|
|
|
@cindex features
|
|
|
|
|
2004-05-01 21:37:54 +00:00
|
|
|
@itemize @bullet
|
2000-01-04 22:20:56 +00:00
|
|
|
@item Drag-and-drop creation of GUI elements from palettes.
|
|
|
|
@item Run-time loading of additional palettes that may be written using an API
|
2000-01-04 12:21:17 +00:00
|
|
|
very similar to that of Apple/NeXTs interface Builder palette API.
|
2000-01-04 22:20:56 +00:00
|
|
|
@item Direct on-screen manipulation of GUI elements
|
|
|
|
@item Manipulation and examination of objects via inspectors.
|
|
|
|
@item Drag-and-drop creation of connections between objects.
|
|
|
|
@item Interactive test mode for interfaces/object-networks under development.
|
|
|
|
@item Saving data in a format loadable by GNUstep applications.
|
|
|
|
@end itemize
|
2000-01-04 12:21:17 +00:00
|
|
|
|
2000-01-04 22:20:56 +00:00
|
|
|
@node Usage, Implementation, Overview, Top
|
|
|
|
@chapter Usage
|
2000-01-04 12:21:17 +00:00
|
|
|
|
2000-01-04 22:20:56 +00:00
|
|
|
Here is a description of the menu structure and what each menu does -
|
1999-12-29 10:29:15 +00:00
|
|
|
|
2000-01-04 22:20:56 +00:00
|
|
|
@itemize @bullet
|
|
|
|
@item Info @*
|
|
|
|
The @samp{info} menu item produces a submenu ...
|
|
|
|
@itemize @bullet
|
|
|
|
@item Info Panel @*
|
|
|
|
A panel giving very limited information about Gorm
|
|
|
|
@item Preferences (not implemented) @*
|
|
|
|
A panel allowing you to set preferences about how Gorm operates
|
|
|
|
@item Help (not implemented) @*
|
|
|
|
A panel providing general help on using Gorm
|
1999-12-29 10:29:15 +00:00
|
|
|
@end itemize
|
|
|
|
|
2000-01-04 22:20:56 +00:00
|
|
|
@item Document @*
|
|
|
|
The @samp{document} menu item produces a submenu ...
|
|
|
|
@itemize @bullet
|
|
|
|
@item Open @*
|
|
|
|
This produces an open panel that lets you open a Gorm document.
|
|
|
|
You use this if you want to use Gorm to edit an exisiting document.
|
|
|
|
@item New Application @*
|
|
|
|
This creates a new application document within Gorm, you may then use the
|
|
|
|
Palettes panel to drag new objects into the document.
|
|
|
|
@item Save @*
|
|
|
|
This saves the current document
|
|
|
|
@item Save As @*
|
|
|
|
This saves the current document to a new file and changes the document name
|
|
|
|
to match the new name on disk.
|
|
|
|
@item Save To @*
|
|
|
|
This saves the current document to a new file without changing its name.
|
|
|
|
@item Revert To Saved @*
|
|
|
|
This removes all changes made to the document sunce the last save, or since
|
|
|
|
the document was opened.
|
|
|
|
@item Test Interface @*
|
|
|
|
This provides interactive testing of the active document. To end testing, you
|
|
|
|
need to select the @samp{quit} menu item.
|
|
|
|
@item Miniaturize @*
|
|
|
|
This miniaturises the active document (or whatever panel is currently key).
|
|
|
|
@item Close @*
|
|
|
|
This closes the currenly active document.
|
|
|
|
@end itemize
|
2000-01-04 12:21:17 +00:00
|
|
|
|
2000-01-04 22:20:56 +00:00
|
|
|
@end itemize
|
2000-01-04 12:21:17 +00:00
|
|
|
|
|
|
|
@node Implementation, Concept Index, Usage, Top
|
1999-12-29 10:29:15 +00:00
|
|
|
@chapter Implementation
|
|
|
|
|
2000-01-04 12:21:17 +00:00
|
|
|
@menu
|
|
|
|
* Preferences::
|
|
|
|
@end menu
|
|
|
|
|
1999-12-29 10:29:15 +00:00
|
|
|
Notes on implementation
|
|
|
|
|
|
|
|
The IB documentation on how object selection is managed and how editors and
|
|
|
|
inspectors are used is unclear ... so I've gone my own way.
|
|
|
|
|
|
|
|
1. When a document is loaded, the document object creates an editor attached
|
|
|
|
to each top-level object in the user interface (NSMenu and NSWindow objects).
|
|
|
|
|
|
|
|
These editors must be aware of their edited objects being clicked upon, and
|
|
|
|
clicking on one of these should cause the corresponding editor to become the
|
|
|
|
active editor.
|
|
|
|
|
|
|
|
The active editor is responsible for handling selection of the edited object
|
|
|
|
(and any objects below it in the object hierarchy). Upon change of selection,
|
|
|
|
the editor is responsible for sending an IBSelectionChangedNotification with
|
|
|
|
the selection owner (normally the editor itsself) as the notification owner.
|
|
|
|
|
|
|
|
The main application watches for these notifications in order to keep track
|
|
|
|
of who has the selection.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Connections
|
|
|
|
|
|
|
|
The connection API is the same as that for IB, but with the extension that the
|
|
|
|
document object must implement [-windowAndRect:forObject:] to return the
|
|
|
|
window in which the object is being displayed, and the rectangle enclosing
|
|
|
|
the object (in window base coordinates).
|
|
|
|
|
2000-01-04 12:21:17 +00:00
|
|
|
This information is needed by Gorm so that it can mark the connection.
|
1999-12-29 10:29:15 +00:00
|
|
|
|
|
|
|
The editors mananging the drag-and-drop operation for a connection must call
|
|
|
|
[NSApp -displayConnectionBetween:and:] to tell Gorm to update its display.
|
|
|
|
This method sets the values currently returned by
|
|
|
|
[BSApp -connectSource] and [NSApp -connectDestination]
|
|
|
|
|
2000-01-04 12:21:17 +00:00
|
|
|
@node Preferences, , Implementation, Implementation
|
|
|
|
@unnumbered Preferences
|
|
|
|
@cindex preferences
|
|
|
|
@cindex defaults
|
|
|
|
|
2003-10-28 05:25:14 +00:00
|
|
|
The preferences panel contains a number of use customizable options which can
|
|
|
|
be used to modify the behavior of Gorm.
|
2000-01-04 12:21:17 +00:00
|
|
|
|
2003-10-28 05:25:14 +00:00
|
|
|
Some of these defaults can be safely modified from the command line by the user.
|
2000-01-04 12:21:17 +00:00
|
|
|
|
|
|
|
@itemize @bullet
|
|
|
|
|
2003-10-28 05:25:14 +00:00
|
|
|
@item PreloadHeaders @*
|
|
|
|
The user can define a set of headers to load when Gorm starts creation of a new .gorm file.
|
|
|
|
This is useful when the user is building a framework or a set of interfaces for a large
|
|
|
|
application.
|
|
|
|
|
|
|
|
@item ShowInspectors @*
|
|
|
|
Controls whether the inspector shows when Gorm is started.
|
|
|
|
|
|
|
|
@item ShowPalettes @*
|
|
|
|
Controls whether the palettes window shows when Gorm is started.
|
|
|
|
|
|
|
|
@item BackupFile @*
|
|
|
|
Determines if the old .gorm is moved to .gorm~ when the modified version is saved.
|
|
|
|
|
2000-01-04 12:21:17 +00:00
|
|
|
@end itemize
|
1999-12-29 10:29:15 +00:00
|
|
|
|
|
|
|
@node Concept Index, , Implementation, Top
|
|
|
|
@unnumbered Concept Index
|
|
|
|
@printindex cp
|
|
|
|
|
|
|
|
@summarycontents
|
|
|
|
@contents
|
|
|
|
|
|
|
|
@bye
|