apps-gorm/README

113 lines
4.1 KiB
Text
Raw Normal View History

Acknowledgements -
Icons - Mostly by Andrew Lindsay.
Code - GormViewKnobs.m adapted from code by Gerrit van Dyk.
8th December 1999
This is Gorm version 0.0 ... a very pre-pre-alpha release.
Please note - to build this code you will need the latest library source
from the CVS repository, and it may be that you also need to be using the
xgps backend rather than xdps (I don't have xdps running to test it on).
Gorm is an acronym for Graphic Object Relationship modeler (or perhaps
GNUstep Object Relationship Modeler).
Gorm is a clone of the NeXTstep 'Interface Builder' application for GNUstep.
Gorm is not 'gormless' (a Yorkshire dialect word that my parents used when they
spotted me staring, slack-jawed, at the TV).
My aim in writing this is to get a usable IB clone working before the new
millenium, so there is not much time left.
By 'usable' I mean that, at least for simple user interfaces, it should be
possible to create/edit/test archived representations of an interface more
easily using Gorm than by coding by hand.
This initial version of the software doesn't come close to that goal - so
don't go expecting very much.
Current state -
Save/Load 'nib' documents (binary archived data)
This works so far as it can be tested - but that's just archives containing
windows or panels so far.
Load palettes
Loading of palettes works. You can load palettes from the 'Tools' menu.
Gorm automatically loads all the palettes from its Resources directory.
Basic framework
So far, the app provides a basic framework that needs fleshing out.
It has a palettes manager object that allows you to select a palette and
drag items from the palette into your document.
It has a special per-document editor object, which keeps track of a matrix
of icons representing the top-level objects in the document.
It has an inspector manager class, which updates the inspector panel
when the selected object is changed by an editor.
It has special inspectors for handling an empty selection or a multiple
selection.
Palettes
Four palettes (three of which are empty at present) are built and installed
in the apps Resources directory.
The Window palette is more fully fleshed out than the other palettes.
It permits windows and panels to be created in Gorm.
If provides the start of a window attributes inspector.
18 December 1999
You can drag views from a palette into a window or panel.
You can select views in a window by clicking on them, shift-clicking
(for multiple selection), or click-drag on the window background to select
views in a box.
You can delete/cut/copy/paste views betwen windows.
You can move views in a window by clicking on them and dragging.
You can resize views by clicking on their knobs and dragging.
You can control-drag to mark source and destination views for a connection.
Next task - inspectors.
The connection inspector needs to be implemented to complete the process of
establishing connections.
The size inspector needs to be implemented to set autosizing parameters for
a view.
Once these are done, the object editor needs to be made to support connections
so that we can connect between objects other than views, then we need to write
a menu editor.
22 December 1999
Connections inspector is now working - but it needs some effort to tidy it up.
Class info (outlets and actions) is specified in 'ClassInformation.plist'
and needs to be present so that the app knows what outlets/actions an object
has (and therefore what connections can be made).
The view size inspector is working - allowing you to set the size of the
subviews within a window.
The attributes inspector for 'FilesOwner' is working, so you can define the
class of the files owner (it defaults to NSApplication).
There is a crude panel for setting the name of the selected object.
I've created a couple of new images and got rid of thh two NeXT images that
were lurking in there.
There is a Testing directory, with a GormTest application that lets you load
a nib for testing - it assumes that the nib will set its FilesOwners delegate
to point to a window, and makes that window the key window ...