Gorm is a clone of the Cocoa (OpenStep/NeXTSTEP) `Interface Builder' application for GNUstep
Find a file
Richard Frith-MacDonald 5e2010cc03 Various improvements
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/apps/gorm/trunk@5617 72102866-910b-0410-8b05-ffd578937521
1999-12-23 16:36:51 +00:00
Documentation Tidying 1999-12-18 11:08:18 +00:00
Images Pretty up 1999-12-22 12:20:22 +00:00
Palettes Connection management code. 1999-12-20 14:20:06 +00:00
Testing tidy 1999-12-22 12:50:11 +00:00
.cvsignore Added .cvsignore 1999-12-13 23:39:08 +00:00
ChangeLog Various improvements 1999-12-23 16:36:51 +00:00
ClassInformation.plist Info 1999-12-20 15:22:52 +00:00
GNUmakefile Tidy 1999-12-23 11:14:20 +00:00
Gorm.h Various improvements 1999-12-23 16:36:51 +00:00
Gorm.m tidy 1999-12-22 12:26:03 +00:00
GormClassManager.h Better inspector support 1999-12-21 11:38:49 +00:00
GormClassManager.m Better inspector support 1999-12-21 11:38:49 +00:00
GormDocument.h More connection improvements 1999-12-21 08:13:35 +00:00
GormDocument.m tidy 1999-12-23 07:49:27 +00:00
GormFilesOwner.h More connection improvements 1999-12-21 08:13:35 +00:00
GormFilesOwner.m tidy 1999-12-23 07:49:27 +00:00
GormInspectorsManager.h tidy 1999-12-23 07:49:27 +00:00
GormInspectorsManager.m Tidy 1999-12-23 11:14:20 +00:00
GormObjectEditor.m Tidy 1999-12-23 11:14:20 +00:00
GormObjectInspector.m Various improvements 1999-12-23 16:36:51 +00:00
GormPalettesManager.h Stuff for testing mode. 1999-12-15 15:29:27 +00:00
GormPalettesManager.m Image info for connecting 1999-12-17 12:48:37 +00:00
GormPrivate.h More connection improvements 1999-12-21 08:13:35 +00:00
GormViewKnobs.m Loads of stuff! 1999-12-16 18:06:22 +00:00
GormWindowEditor.m tidy 1999-12-23 07:49:27 +00:00
IBInspector.m Checks for edited documents 1999-12-21 16:48:32 +00:00
IBPalette.m Gorm source 1999-12-08 15:04:57 +00:00
InfoPanel.m Gorm source 1999-12-08 15:04:57 +00:00
README Various improvements 1999-12-23 16:36:51 +00:00

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 the 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 ...

23 December 1999

Last work before christmas ...

Various bits of tidying up plus -

Added an evil hack of a generic attributes inspector ...  This looks through
all the methods of the selected object to find those taking a single argument
and beginning with 'set'.  It makes all these setting methods (whose argument
is a simple scalar type or an object) available for you to invoke from the
inspector panel.

This makes it possible to set pretty much any attribute of any object, but
you do need to have the GNUstep header files to hand, so you can tell what
numeric values to enter to achieve a desired result.