home *** CD-ROM | disk | FTP | other *** search
- /* InterfaceBuilder - InterfaceBuilder.h - Jean-Marie Hullot
- * (c) 1991 NeXT Computer Inc.
- */
- #import <appkit/appkit.h>
-
- @class Sound;
-
- /* InterfaceBuilder Pasteboard types */
-
- extern NXAtom IBObjectPboardType;
- extern NXAtom IBCellPboardType;
- extern NXAtom IBMenuPboardType;
- extern NXAtom IBMenuCellPboardType;
- extern NXAtom IBViewPboardType;
- extern NXAtom IBWindowPboardType;
-
- @protocol IB
- /* Accessing the document. */
- - activeDocument;
- /* Accessing the selection owner. */
- - selectionOwner;
- /* Managing connections. The following might be useful when
- * implementing your own ConnectionInspector. */
- - connectSource;
- - connectDestination;
- - (BOOL)isConnecting;
- - stopConnecting;
- - displayConnectionBetween:source and:destination;
- /* Querying the mode. */
- - (BOOL)isTestingInterface;
- /* Registering controllers. */
- - registerDocumentController:aController;
- - unregisterDocumentController:aController;
- /* Updater. Not supported as public API in Release 3. */
- - disableUpdate;
- - reenableUpdate;
- @end
-
- @protocol IBConnectors
- - free;
- - source;
- - destination;
- - establishConnection;
- - nibInstantiate;
- - renewObject:old to:new;
- - read:(NXTypedStream *)stream;
- - write:(NXTypedStream *)stream;
- @end
-
- @protocol IBDocumentControllers
- - didOpenDocument:theDocument;
- - willSaveDocument:theDocument;
- - didSaveDocument:theDocument;
- @end
-
- @protocol IBDocuments
- /* Managing the document. */
- - touch;
- - getDocumentPathIn:(char *)thePath;
- /* Managing the document hierarchy. */
- - attachObject:anObject to:parent;
- - attachObjects:(List *)objectList to:parent;
- - deleteObject:anObject;
- - deleteObjects:(List *)objectList;
- - copyObject:anObject type:(NXAtom)type inPasteboard:(Pasteboard *)aPasteboard;
- - copyObjects:(List *)objectList type:(NXAtom)type
- inPasteboard:(Pasteboard *)aPasteboard;
- - (List *)pasteType:(NXAtom)type fromPasteboard:(Pasteboard *)aPasteboard
- parent:theParent;
- - (BOOL)objectIsMember:anObject;
- - getObjects:(List *)objectList;
- - getParentForObject:anObject;
- /* Setting object names. */
- - (BOOL)setName:(const char *)name for:anObject;
- - getNameIn:(char *)buffer for:anObject;
- /* Managing connectors. */
- - addConnector:aConnector;
- - removeConnector:aConnector;
- - listConnectors:(List *)aList forSource:aSource;
- - listConnectors:(List *)aList forDestination:aDestination;
- - listConnectors:(List *)aList forSource:aSource filterClass:aClass;
- - listConnectors:(List *)aList forDestination:aDestination filterClass:aClass;
- /* Managing editors. */
- - setSelectionFrom:anEditor;
- - editorDidClose:anEditor for:anObject;
- - getEditor:(BOOL)createIt for:anObject;
- - openEditorFor:anObject;
- /* Updating the display. */
- - redrawObject:anObject;
- @end
-
- @protocol IBSelectionOwners
- - (unsigned int)selectionCount;
- - getSelectionInto:(List *)objectList;
- - redrawSelection;
- @end
-
- @protocol IBEditors <IBSelectionOwners>
- /* Initializing. */
- - initWith:anObject inDocument:aDocument;
- /* Identifying objects. */
- - document;
- - editedObject;
- - window;
- /* Displaying objects. */
- - resetObject:anObject;
- /* Managing the selection. */
- - (BOOL) wantsSelection;
- - selectObjects:(List *)objectList;
- - makeSelectionVisible:(BOOL)showIt;
- /* Copying and pasting objects. */
- - (BOOL)copySelection;
- - (BOOL)deleteSelection;
- - (BOOL)pasteInSelection;
- - (NXAtom)acceptsTypeFrom:(const NXAtom *)typeList;
- /* Opening and closing editors. */
- - close;
- - openSubeditorFor:anObject;
- - closeSubeditors;
- /* Activating the editor. */
- - orderFront;
- - (BOOL)activate;
- @end
-
- @protocol IBInspectors
- /* Returns a boolean value indicating whether the inspector object requires
- * Interface Builder to display the OK and Revert buttons in the Inspector
- * panel. */
- - (BOOL)wantsButtons;
-
- /* Interface Builder sends this message to the inspector object whenever
- * the inspector's display might need to be updated. Your inspector must
- * implement this method, and it must send the same message to `super' as
- * part of its implementation. */
- - revert:sender;
-
- /* Implement in your inspector to commit the changes that the user makes in
- * the Inspector panel. Your implementation of this method must send the
- * same message to `super'. */
- - ok:sender;
- @end
-
- @interface Object (IBObject)
- - (const char *)getInspectorClassName;
- - (const char *)getConnectInspectorClassName;
- - (const char *)getSizeInspectorClassName;
- - (const char *)getHelpInspectorClassName;
- - (const char *)getEditorClassName;
- - (NXImage *)getIBImage;
- @end
-
- @interface View (IBView)
- #define IB_BOTTOMLEFT 0
- #define IB_MIDDLELEFT 1
- #define IB_TOPLEFT 2
- #define IB_MIDDLETOP 3
- #define IB_TOPRIGHT 4
- #define IB_MIDDLERIGHT 5
- #define IB_BOTTOMRIGHT 6
- #define IB_MIDDLEBOTTOM 7
- - getMinSize:(NXSize *)minSize maxSize:(NXSize *)maxSize from:(int)where;
- - placeView:(NXRect *)frameRect;
- /* The default implementation sends `setFrame:'. */
- @end
-
- @interface IBInspector:Object <IBInspectors>
- {
- id object;
- id window;
- id driver; /* private! */
- id okButton;
- id revertButton;
- }
- - object;
- - window;
- - touch:sender;
- - textDidChange:sender;
- - updateFor:(int)changeMask; /* Not supported as public API in Release 3 */
- @end
-
- @interface IBPalette:Object
- {
- id paletteDocument;
- id originalWindow;
- id paletteView;
- id draggedView;
- id paletteInfo; /* private! */
- }
- /* Associating views and objects. */
- - associateObject:object type:(NXAtom)type with:aView;
- /* Initializing the palette. */
- - finishInstantiate;
- /* Accessing related objects. */
- - paletteDocument;
- - originalWindow;
- - findImageNamed:(const char *)name;
-
- /* Private API. */
- - paletteView; /* Not supported as public API in Release 3. */
- - draggedView; /* Not supported as public API in Release 3. */
- - declareTypesFor:aView inPasteboard:(Pasteboard *)aPasteboard;
- /* Not supported as public API in Release 3. */
- - pasteboard:aPasteboard provideData:(NXAtom)type;
- /* Not supported as public API in Release 3. */
- @end
-