gorm-1.2.24/0000755000000000000000000000000013426762333011253 5ustar rootrootgorm-1.2.24/Documentation/0000755000000000000000000000000013426755204014063 5ustar rootrootgorm-1.2.24/Documentation/announce.texi0000644000000000000000000000210713410616261016554 0ustar rootroot@c -*- texinfo -*- @chapter ANNOUNCE @ifset TEXT-ONLY @include version.texi @end ifset This is version @value{GORM-VERSION} of Gorm. @section What is Gorm? Gorm is an acronym for Graphic Object Relationship modeler (or perhaps GNUstep Object Relationship Modeler). Gorm is a clone of the Cocoa (OpenStep/NeXTSTEP) `Interface Builder' application for GNUstep. @set ANNOUNCE-ONLY @include news.texi @clear ANNOUNCE-ONLY @section How can I get support for this software? You may wish to use the GNUstep discussion mailing list for general questions and discussion. Look at the GNUstep Web Pages for more information regarding GNUstep resources @url{http://www.gnustep.org/} @section Where can you get it? How can you compile it? You can download sources and rpms (for some machines) from @url{ftp://ftp.gnustep.org/pub/gnustep/dev-apps}. @section Where do I send bug reports? Bug reports can be sent to @email{bug-gnustep@@gnu.org}. @section Obtaining GNU Software Check out the GNUstep web site. (@url{http://www.gnustep.org/}), and the GNU web site. (@url{http://www.gnu.org/}) gorm-1.2.24/Documentation/install.texi0000644000000000000000000000132413410616261016414 0ustar rootroot@c -*-texinfo-*- @ifset TEXT-ONLY @include version.texi @end ifset @subsection Required software You need to have the GNUstep core libraries installed in order to compile and use Gorm. The core packages are, at a minimum: @itemize @bullet @item gnustep-make @item gnustep-base @item gnustep-gui @item gnustep-back @end itemize See @url{http://www.gnustep.org/} for further information. @subsection Build and Install Steps to build: @itemize @item make && make install @end itemize Please note that GormLib must be installed for Gorm.app to run. @subsection Trouble Give us feedback! Tell us what you like; tell us what you think could be better. Send bug reports and patches to @email{bug-gnustep@@gnu.org}. gorm-1.2.24/Documentation/GormPrefs/0000755000000000000000000000000013426755205015770 5ustar rootrootgorm-1.2.24/Documentation/GormPrefs/Untitled.html0000644000000000000000000000275213426755205020454 0ustar rootroot The Untitled Project

The Untitled Project

The index below lists the major components of the Untitled documentation.

Title Index
gorm-1.2.24/Documentation/GormPrefs/GormPluginsPref.html0000644000000000000000000000764713426745047021762 0ustar rootroot GormPluginsPref class documentation

GormPluginsPref class documentation

Authors

Generated by heron

Software documentation for the GormPluginsPref class

GormPluginsPref : NSObject

Declared in:
GormPrefs/GormPluginsPref.h
Description forthcoming.

Instance Variables

Method summary

addAction: 

- (void) addAction: (id)sender;
Add a palette to the list.

removeAction: 

- (void) removeAction: (id)sender;
Remove a palette from the list.

view 

- (NSView*) view;
View to be shown in the preferences panel.



Instance Variables for GormPluginsPref Class

_view

@protected id _view;
Warning the underscore at the start of the name of this instance variable indicates that, even though it is not technically private, it is intended for internal use within the package, and you should not use the variable in other code.

addButton

@protected id addButton;
Description forthcoming.

removeButton

@protected id removeButton;
Description forthcoming.

table

@protected id table;
Description forthcoming.

window

@protected id window;
Description forthcoming.





gorm-1.2.24/Documentation/GormPrefs/Untitled.igsdoc0000644000000000000000000002562113426755205020760 0ustar rootroot{ class = { ArrResizer = GormShelfPref; GormGeneralPref = GormGeneralPref; GormGuidelinePref = GormGuidelinePref; GormHeadersPref = GormHeadersPref; GormPalettesPref = GormPalettesPref; GormPluginsPref = GormPluginsPref; GormPrefController = GormPrefController; GormShelfPref = GormShelfPref; }; classvars = { ArrResizer = { arrow = GormShelfPref; controller = GormShelfPref; position = GormShelfPref; }; GormGeneralPref = { "_view" = GormGeneralPref; backupButton = GormGeneralPref; checkConsistency = GormGeneralPref; interfaceMatrix = GormGeneralPref; window = GormGeneralPref; }; GormGuidelinePref = { "_view" = GormGuidelinePref; colorWell = GormGuidelinePref; currentSpacing = GormGuidelinePref; halfSpacing = GormGuidelinePref; spacingSlider = GormGuidelinePref; window = GormGuidelinePref; }; GormHeadersPref = { "_view" = GormHeadersPref; addButton = GormHeadersPref; headers = GormHeadersPref; preloadButton = GormHeadersPref; removeButton = GormHeadersPref; table = GormHeadersPref; window = GormHeadersPref; }; GormPalettesPref = { "_view" = GormPalettesPref; addButton = GormPalettesPref; removeButton = GormPalettesPref; table = GormPalettesPref; window = GormPalettesPref; }; GormPluginsPref = { "_view" = GormPluginsPref; addButton = GormPluginsPref; removeButton = GormPluginsPref; table = GormPluginsPref; window = GormPluginsPref; }; GormPrefController = { "_colorsView" = GormPrefController; "_generalView" = GormPrefController; "_guidelineView" = GormPrefController; "_headersView" = GormPrefController; "_palettesView" = GormPrefController; "_pluginsView" = GormPrefController; "_shelfView" = GormPrefController; panel = GormPrefController; popup = GormPrefController; prefBox = GormPrefController; }; GormShelfPref = { cellsWidth = GormShelfPref; fname = GormShelfPref; leftResizer = GormShelfPref; rightResizer = GormShelfPref; }; }; ivariable = { "_colorsView" = { GormPrefController = GormPrefController; }; "_generalView" = { GormPrefController = GormPrefController; }; "_guidelineView" = { GormPrefController = GormPrefController; }; "_headersView" = { GormPrefController = GormPrefController; }; "_palettesView" = { GormPrefController = GormPrefController; }; "_pluginsView" = { GormPrefController = GormPrefController; }; "_shelfView" = { GormPrefController = GormPrefController; }; "_view" = { GormGeneralPref = GormGeneralPref; GormGuidelinePref = GormGuidelinePref; GormHeadersPref = GormHeadersPref; GormPalettesPref = GormPalettesPref; GormPluginsPref = GormPluginsPref; }; addButton = { GormHeadersPref = GormHeadersPref; GormPalettesPref = GormPalettesPref; GormPluginsPref = GormPluginsPref; }; arrow = { ArrResizer = GormShelfPref; }; backupButton = { GormGeneralPref = GormGeneralPref; }; cellsWidth = { GormShelfPref = GormShelfPref; }; checkConsistency = { GormGeneralPref = GormGeneralPref; }; colorWell = { GormGuidelinePref = GormGuidelinePref; }; controller = { ArrResizer = GormShelfPref; }; currentSpacing = { GormGuidelinePref = GormGuidelinePref; }; fname = { GormShelfPref = GormShelfPref; }; halfSpacing = { GormGuidelinePref = GormGuidelinePref; }; headers = { GormHeadersPref = GormHeadersPref; }; interfaceMatrix = { GormGeneralPref = GormGeneralPref; }; leftResizer = { GormShelfPref = GormShelfPref; }; panel = { GormPrefController = GormPrefController; }; popup = { GormPrefController = GormPrefController; }; position = { ArrResizer = GormShelfPref; }; prefBox = { GormPrefController = GormPrefController; }; preloadButton = { GormHeadersPref = GormHeadersPref; }; removeButton = { GormHeadersPref = GormHeadersPref; GormPalettesPref = GormPalettesPref; GormPluginsPref = GormPluginsPref; }; rightResizer = { GormShelfPref = GormShelfPref; }; spacingSlider = { GormGuidelinePref = GormGuidelinePref; }; table = { GormHeadersPref = GormHeadersPref; GormPalettesPref = GormPalettesPref; GormPluginsPref = GormPluginsPref; }; window = { GormGeneralPref = GormGeneralPref; GormGuidelinePref = GormGuidelinePref; GormHeadersPref = GormHeadersPref; GormPalettesPref = GormPalettesPref; GormPluginsPref = GormPluginsPref; }; }; method = { "-addAction:" = { GormHeadersPref = GormHeadersPref; GormPalettesPref = GormPalettesPref; GormPluginsPref = GormPluginsPref; }; "-backupAction:" = { GormGeneralPref = GormGeneralPref; }; "-classesAction:" = { GormGeneralPref = GormGeneralPref; }; "-consistencyAction:" = { GormGeneralPref = GormGeneralPref; }; "-initForController:withPosition:" = { ArrResizer = GormShelfPref; }; "-ok:" = { GormGuidelinePref = GormGuidelinePref; }; "-panel" = { GormPrefController = GormPrefController; }; "-popupAction:" = { GormPrefController = GormPrefController; }; "-position" = { ArrResizer = GormShelfPref; }; "-preloadAction:" = { GormHeadersPref = GormHeadersPref; }; "-removeAction:" = { GormHeadersPref = GormHeadersPref; GormPalettesPref = GormPalettesPref; GormPluginsPref = GormPluginsPref; }; "-reset:" = { GormGuidelinePref = GormGuidelinePref; }; "-selectionChanged:" = { GormShelfPref = GormShelfPref; }; "-setDefaultWidth:" = { GormShelfPref = GormShelfPref; }; "-setNewWidth:" = { GormShelfPref = GormShelfPref; }; "-shelfCellsWidth" = { GormShelfPref = GormShelfPref; }; "-startMouseEvent:onResizer:" = { GormShelfPref = GormShelfPref; }; "-tile" = { GormShelfPref = GormShelfPref; }; "-view" = { GormGeneralPref = GormGeneralPref; GormGuidelinePref = GormGuidelinePref; GormHeadersPref = GormHeadersPref; GormPalettesPref = GormPalettesPref; GormPluginsPref = GormPluginsPref; GormShelfPref = GormShelfPref; }; }; output = { "../GormPrefs/GormGeneralPref.h" = ( "GormPrefs/GormGeneralPref.gsdoc" ); "../GormPrefs/GormGuidelinePref.h" = ( "GormPrefs/GormGuidelinePref.gsdoc" ); "../GormPrefs/GormHeadersPref.h" = ( "GormPrefs/GormHeadersPref.gsdoc" ); "../GormPrefs/GormPalettesPref.h" = ( "GormPrefs/GormPalettesPref.gsdoc" ); "../GormPrefs/GormPluginsPref.h" = ( "GormPrefs/GormPluginsPref.gsdoc" ); "../GormPrefs/GormPrefController.h" = ( "GormPrefs/GormPrefController.gsdoc" ); "../GormPrefs/GormShelfPref.h" = ( "GormPrefs/GormShelfPref.gsdoc" ); }; source = { "../GormPrefs/GormGeneralPref.h" = ( "../GormPrefs/GormGeneralPref.h", "../GormPrefs/GormGeneralPref.h", "../GormPrefs/GormGeneralPref.h", "../GormPrefs/GormGeneralPref.h", "../GormPrefs/GormGeneralPref.h", "../GormPrefs/GormGeneralPref.h", "../GormPrefs/GormGeneralPref.m" ); "../GormPrefs/GormGuidelinePref.h" = ( "../GormPrefs/GormGuidelinePref.h", "../GormPrefs/GormGuidelinePref.h", "../GormPrefs/GormGuidelinePref.h", "../GormPrefs/GormGuidelinePref.h", "../GormPrefs/GormGuidelinePref.h", "../GormPrefs/GormGuidelinePref.h", "../GormPrefs/GormGuidelinePref.m" ); "../GormPrefs/GormHeadersPref.h" = ( "../GormPrefs/GormHeadersPref.h", "../GormPrefs/GormHeadersPref.h", "../GormPrefs/GormHeadersPref.h", "../GormPrefs/GormHeadersPref.h", "../GormPrefs/GormHeadersPref.h", "../GormPrefs/GormHeadersPref.h", "../GormPrefs/GormHeadersPref.m" ); "../GormPrefs/GormPalettesPref.h" = ( "../GormPrefs/GormPalettesPref.h", "../GormPrefs/GormPalettesPref.h", "../GormPrefs/GormPalettesPref.h", "../GormPrefs/GormPalettesPref.h", "../GormPrefs/GormPalettesPref.h", "../GormPrefs/GormPalettesPref.h", "../GormPrefs/GormPalettesPref.m" ); "../GormPrefs/GormPluginsPref.h" = ( "../GormPrefs/GormPluginsPref.h", "../GormPrefs/GormPluginsPref.h", "../GormPrefs/GormPluginsPref.h", "../GormPrefs/GormPluginsPref.h", "../GormPrefs/GormPluginsPref.h", "../GormPrefs/GormPluginsPref.h", "../GormPrefs/GormPluginsPref.m" ); "../GormPrefs/GormPrefController.h" = ( "../GormPrefs/GormPrefController.h", "../GormPrefs/GormPrefController.h", "../GormPrefs/GormPrefController.h", "../GormPrefs/GormPrefController.h", "../GormPrefs/GormPrefController.h", "../GormPrefs/GormPrefController.h", "../GormPrefs/GormPrefController.m" ); "../GormPrefs/GormShelfPref.h" = ( "../GormPrefs/GormShelfPref.h", "../GormPrefs/GormShelfPref.h", "../GormPrefs/GormShelfPref.h", "../GormPrefs/GormShelfPref.h", "../GormPrefs/GormShelfPref.h", "../GormPrefs/GormShelfPref.h", "../GormPrefs/GormShelfPref.m" ); }; super = { ArrResizer = NSView; GormGeneralPref = NSObject; GormGuidelinePref = NSObject; GormHeadersPref = NSObject; GormPalettesPref = NSObject; GormPluginsPref = NSObject; GormPrefController = NSObject; GormShelfPref = NSObject; }; title = { GormGeneralPref = "GormGeneralPref class documentation"; GormGuidelinePref = "GormGuidelinePref class documentation"; GormHeadersPref = "GormHeadersPref class documentation"; GormPalettesPref = "GormPalettesPref class documentation"; GormPluginsPref = "GormPluginsPref class documentation"; GormPrefController = "GormPrefController class documentation"; GormShelfPref = "GormShelfPref documentation"; }; type = { ArrowPosition = GormShelfPref; }; unitmethods = { ArrResizer = { "-initForController:withPosition:" = GormShelfPref; "-position" = GormShelfPref; }; GormGeneralPref = { "-backupAction:" = GormGeneralPref; "-classesAction:" = GormGeneralPref; "-consistencyAction:" = GormGeneralPref; "-view" = GormGeneralPref; }; GormGuidelinePref = { "-ok:" = GormGuidelinePref; "-reset:" = GormGuidelinePref; "-view" = GormGuidelinePref; }; GormHeadersPref = { "-addAction:" = GormHeadersPref; "-preloadAction:" = GormHeadersPref; "-removeAction:" = GormHeadersPref; "-view" = GormHeadersPref; }; GormPalettesPref = { "-addAction:" = GormPalettesPref; "-removeAction:" = GormPalettesPref; "-view" = GormPalettesPref; }; GormPluginsPref = { "-addAction:" = GormPluginsPref; "-removeAction:" = GormPluginsPref; "-view" = GormPluginsPref; }; GormPrefController = { "-panel" = GormPrefController; "-popupAction:" = GormPrefController; }; GormShelfPref = { "-selectionChanged:" = GormShelfPref; "-setDefaultWidth:" = GormShelfPref; "-setNewWidth:" = GormShelfPref; "-shelfCellsWidth" = GormShelfPref; "-startMouseEvent:onResizer:" = GormShelfPref; "-tile" = GormShelfPref; "-view" = GormShelfPref; }; }; }gorm-1.2.24/Documentation/GormPrefs/ClassesTOC.html0000644000000000000000000000240313426755205020620 0ustar rootroot Classes

Classes

ArrResizer
GormGeneralPref
GormGuidelinePref
GormHeadersPref
GormPalettesPref
GormPluginsPref
GormPrefController
GormShelfPref

gorm-1.2.24/Documentation/GormPrefs/OrderedSymbolDeclarations.plist0000644000000000000000000000131513426755205024150 0ustar rootroot{ ArrResizer = ( "-initForController:withPosition:", "-position" ); GormGeneralPref = ( "-view", "-backupAction:", "-classesAction:", "-consistencyAction:" ); GormGuidelinePref = ( "-view", "-ok:", "-reset:" ); GormHeadersPref = ( "-view", "-addAction:", "-removeAction:", "-preloadAction:" ); GormPalettesPref = ( "-view", "-addAction:", "-removeAction:" ); GormPluginsPref = ( "-view", "-addAction:", "-removeAction:" ); GormPrefController = ( "-popupAction:", "-panel" ); GormShelfPref = ( "-tile", "-selectionChanged:", "-startMouseEvent:onResizer:", "-setNewWidth:", "-setDefaultWidth:", "-view", "-shelfCellsWidth" ); }gorm-1.2.24/Documentation/GormPrefs/ClassesTOC.gsdoc0000644000000000000000000000056013426755205020755 0ustar rootroot Classes gorm-1.2.24/Documentation/GormPrefs/MainIndex.html0000644000000000000000000000062613426755205020536 0ustar rootroot Index

Classes
Types

(intro)  (unframe)
gorm-1.2.24/Documentation/GormPrefs/GormHeadersPref.html0000644000000000000000000001146413426745047021704 0ustar rootroot GormHeadersPref class documentation

GormHeadersPref class documentation

Authors

Generated by heron

Software documentation for the GormHeadersPref class

GormHeadersPref : NSObject

Declared in:
GormPrefs/GormHeadersPref.h
Description forthcoming.

Instance Variables

Method summary

addAction: 

- (void) addAction: (id)sender;
Add a header.

preloadAction: 

- (void) preloadAction: (id)sender;
Called when the "preload" switch is set.

removeAction: 

- (void) removeAction: (id)sender;
Remove a header.

view 

- (NSView*) view;
View to show in prefs panel.



Instance Variables for GormHeadersPref Class

_view

@protected id _view;
Warning the underscore at the start of the name of this instance variable indicates that, even though it is not technically private, it is intended for internal use within the package, and you should not use the variable in other code.

addButton

@protected id addButton;
Description forthcoming.

headers

@protected NSMutableArray* headers;
Description forthcoming.

preloadButton

@protected id preloadButton;
Description forthcoming.

removeButton

@protected id removeButton;
Description forthcoming.

table

@protected id table;
Description forthcoming.

window

@protected id window;
Description forthcoming.





gorm-1.2.24/Documentation/GormPrefs/GormHeadersPref.gsdoc0000644000000000000000000000543613426745047022041 0ustar rootroot GormHeadersPref class documentation Software documentation for the GormHeadersPref class GormPrefs/GormHeadersPref.h Description forthcoming. Warning the underscore at the start of the name of this instance variable indicates that, even though it is not technically private, it is intended for internal use within the package, and you should not use the variable in other code. Description forthcoming. Description forthcoming. Description forthcoming. Description forthcoming. Description forthcoming. Description forthcoming. addAction: sender Add a header. preloadAction: sender Called when the "preload" switch is set. removeAction: sender Remove a header. view View to show in prefs panel. gorm-1.2.24/Documentation/GormPrefs/Untitled.gsdoc0000644000000000000000000000065313426755205020605 0ustar rootroot The Untitled Project

The index below lists the major components of the Untitled documentation.

gorm-1.2.24/Documentation/GormPrefs/TypesTOC.gsdoc0000644000000000000000000000055313426755205020466 0ustar rootroot Types gorm-1.2.24/Documentation/GormPrefs/GormGeneralPref.html0000644000000000000000000001063613426745047021706 0ustar rootroot GormGeneralPref class documentation

GormGeneralPref class documentation

Authors

Generated by heron

Software documentation for the GormGeneralPref class

GormGeneralPref : NSObject

Declared in:
GormPrefs/GormGeneralPref.h
Description forthcoming.

Instance Variables

Method summary

backupAction: 

- (void) backupAction: (id)sender;
Should create a backup file.

classesAction: 

- (void) classesAction: (id)sender;
Show the classes view as a browser or an outline.

consistencyAction: 

- (void) consistencyAction: (id)sender;
Description forthcoming.

view 

- (NSView*) view;
View to be shown.



Instance Variables for GormGeneralPref Class

_view

@protected id _view;
Warning the underscore at the start of the name of this instance variable indicates that, even though it is not technically private, it is intended for internal use within the package, and you should not use the variable in other code.

backupButton

@protected id backupButton;
Description forthcoming.

checkConsistency

@protected id checkConsistency;
Description forthcoming.

interfaceMatrix

@protected id interfaceMatrix;
Description forthcoming.

window

@protected id window;
Description forthcoming.





gorm-1.2.24/Documentation/GormPrefs/TypesTOC.html0000644000000000000000000000073713426755205020337 0ustar rootroot Types

Types

ArrowPosition

gorm-1.2.24/Documentation/GormPrefs/index.html0000644000000000000000000000072013426755205017764 0ustar rootroot Autogsdoc-generated Documentation for Untitled gorm-1.2.24/Documentation/GormPrefs/GormPalettesPref.gsdoc0000644000000000000000000000443113426745047022241 0ustar rootroot GormPalettesPref class documentation Software documentation for the GormPalettesPref class GormPrefs/GormPalettesPref.h Description forthcoming. Warning the underscore at the start of the name of this instance variable indicates that, even though it is not technically private, it is intended for internal use within the package, and you should not use the variable in other code. Description forthcoming. Description forthcoming. Description forthcoming. Description forthcoming. addAction: sender Add a palette to the list. removeAction: sender Remove a palette from the list. view View to be shown in the preferences panel. gorm-1.2.24/Documentation/GormPrefs/GormShelfPref.html0000644000000000000000000002056413426745047021373 0ustar rootroot GormShelfPref documentation

GormShelfPref documentation

Authors

Generated by heron

Contents -

  1. Software documentation for the ArrResizer class
  2. Software documentation for the GormShelfPref class
  3. GormShelfPref types

Software documentation for the ArrResizer class

ArrResizer : NSView

Declared in:
GormPrefs/GormShelfPref.h
Description forthcoming.

Instance Variables

Method summary

initForController: withPosition: 

- (id) initForController: (id)acontroller withPosition: (ArrowPosition)pos;
Description forthcoming.

position 

- (ArrowPosition) position;
Description forthcoming.



Instance Variables for ArrResizer Class

arrow

@protected NSImage* arrow;
Description forthcoming.

controller

@protected id controller;
Description forthcoming.

position

@protected ArrowPosition position;
Description forthcoming.




Software documentation for the GormShelfPref class

GormShelfPref : NSObject

Declared in:
GormPrefs/GormShelfPref.h
Description forthcoming.

Instance Variables

Method summary

selectionChanged: 

- (void) selectionChanged: (NSNotification*)n;
Called when the selection is changed.

setDefaultWidth: 

- (IBAction) setDefaultWidth: (id)sender;
Set the resizer back to the default width.

setNewWidth: 

- (void) setNewWidth: (int)w;
Programmatically set a width.

shelfCellsWidth 

- (int) shelfCellsWidth;
Return the current width.

startMouseEvent: onResizer: 

- (void) startMouseEvent: (NSEvent*)event onResizer: (ArrResizer*)resizer;
Invoked when the resizer widgets are moved.

tile 

- (void) tile;
Sets the frame for the resize arrows.

view 

- (NSView*) view;
The view to display in the prefs panel.



Instance Variables for GormShelfPref Class

cellsWidth

@protected int cellsWidth;
Description forthcoming.

fname

@protected NSString* fname;
Description forthcoming.

leftResizer

@protected ArrResizer* leftResizer;
Description forthcoming.

rightResizer

@protected ArrResizer* rightResizer;
Description forthcoming.




GormShelfPref types

ArrowPosition

typedef enum ... ArrowPosition;
Description forthcoming.


gorm-1.2.24/Documentation/GormPrefs/GormPalettesPref.html0000644000000000000000000000767713426745047022125 0ustar rootroot GormPalettesPref class documentation

GormPalettesPref class documentation

Authors

Generated by heron

Software documentation for the GormPalettesPref class

GormPalettesPref : NSObject

Declared in:
GormPrefs/GormPalettesPref.h
Description forthcoming.

Instance Variables

Method summary

addAction: 

- (void) addAction: (id)sender;
Add a palette to the list.

removeAction: 

- (void) removeAction: (id)sender;
Remove a palette from the list.

view 

- (NSView*) view;
View to be shown in the preferences panel.



Instance Variables for GormPalettesPref Class

_view

@protected id _view;
Warning the underscore at the start of the name of this instance variable indicates that, even though it is not technically private, it is intended for internal use within the package, and you should not use the variable in other code.

addButton

@protected id addButton;
Description forthcoming.

removeButton

@protected id removeButton;
Description forthcoming.

table

@protected id table;
Description forthcoming.

window

@protected id window;
Description forthcoming.





gorm-1.2.24/Documentation/GormPrefs/GormShelfPref.gsdoc0000644000000000000000000001030413426745047021515 0ustar rootroot GormShelfPref documentation Software documentation for the ArrResizer class GormPrefs/GormShelfPref.h Description forthcoming. Description forthcoming. Description forthcoming. Description forthcoming. initForController: acontroller withPosition: pos Description forthcoming. position Description forthcoming. Software documentation for the GormShelfPref class GormPrefs/GormShelfPref.h Description forthcoming. Description forthcoming. Description forthcoming. Description forthcoming. Description forthcoming. selectionChanged: n Called when the selection is changed. setDefaultWidth: sender Set the resizer back to the default width. setNewWidth: w Programmatically set a width. shelfCellsWidth Return the current width. startMouseEvent: event onResizer: resizer Invoked when the resizer widgets are moved. tile Sets the frame for the resize arrows. view The view to display in the prefs panel. GormShelfPref types

Description forthcoming.
gorm-1.2.24/Documentation/GormPrefs/GormGuidelinePref.gsdoc0000644000000000000000000000471113426745047022366 0ustar rootroot GormGuidelinePref class documentation Software documentation for the GormGuidelinePref class GormPrefs/GormGuidelinePref.h Description forthcoming. Warning the underscore at the start of the name of this instance variable indicates that, even though it is not technically private, it is intended for internal use within the package, and you should not use the variable in other code. Description forthcoming. Description forthcoming. Description forthcoming. Description forthcoming. Description forthcoming. ok: sender Called when the guidline preferences are changed. reset: sender Reset to defaults. view View to show in prefs panel. gorm-1.2.24/Documentation/GormPrefs/GormPrefController.html0000644000000000000000000001474513426745047022461 0ustar rootroot GormPrefController class documentation

GormPrefController class documentation

Authors

Generated by heron

Software documentation for the GormPrefController class

GormPrefController : NSObject

Declared in:
GormPrefs/GormPrefController.h
Description forthcoming.

Instance Variables

Method summary

panel 

- (id) panel;
Return the preferences panel.

popupAction: 

- (void) popupAction: (id)sender;
Called when the popup is used to select a pref panel.



Instance Variables for GormPrefController Class

_colorsView

@protected id _colorsView;
Warning the underscore at the start of the name of this instance variable indicates that, even though it is not technically private, it is intended for internal use within the package, and you should not use the variable in other code.

_generalView

@protected id _generalView;
Warning the underscore at the start of the name of this instance variable indicates that, even though it is not technically private, it is intended for internal use within the package, and you should not use the variable in other code.

_guidelineView

@protected id _guidelineView;
Warning the underscore at the start of the name of this instance variable indicates that, even though it is not technically private, it is intended for internal use within the package, and you should not use the variable in other code.

_headersView

@protected id _headersView;
Warning the underscore at the start of the name of this instance variable indicates that, even though it is not technically private, it is intended for internal use within the package, and you should not use the variable in other code.

_palettesView

@protected id _palettesView;
Warning the underscore at the start of the name of this instance variable indicates that, even though it is not technically private, it is intended for internal use within the package, and you should not use the variable in other code.

_pluginsView

@protected id _pluginsView;
Warning the underscore at the start of the name of this instance variable indicates that, even though it is not technically private, it is intended for internal use within the package, and you should not use the variable in other code.

_shelfView

@protected id _shelfView;
Warning the underscore at the start of the name of this instance variable indicates that, even though it is not technically private, it is intended for internal use within the package, and you should not use the variable in other code.

panel

@protected id panel;
Description forthcoming.

popup

@protected id popup;
Description forthcoming.

prefBox

@protected id prefBox;
Description forthcoming.





gorm-1.2.24/Documentation/GormPrefs/GormPluginsPref.gsdoc0000644000000000000000000000442413426745047022103 0ustar rootroot GormPluginsPref class documentation Software documentation for the GormPluginsPref class GormPrefs/GormPluginsPref.h Description forthcoming. Warning the underscore at the start of the name of this instance variable indicates that, even though it is not technically private, it is intended for internal use within the package, and you should not use the variable in other code. Description forthcoming. Description forthcoming. Description forthcoming. Description forthcoming. addAction: sender Add a palette to the list. removeAction: sender Remove a palette from the list. view View to be shown in the preferences panel. gorm-1.2.24/Documentation/GormPrefs/GormGeneralPref.gsdoc0000644000000000000000000000476213426745047022044 0ustar rootroot GormGeneralPref class documentation Software documentation for the GormGeneralPref class GormPrefs/GormGeneralPref.h Description forthcoming. Warning the underscore at the start of the name of this instance variable indicates that, even though it is not technically private, it is intended for internal use within the package, and you should not use the variable in other code. Description forthcoming. Description forthcoming. Description forthcoming. Description forthcoming. backupAction: sender Should create a backup file. classesAction: sender Show the classes view as a browser or an outline. consistencyAction: sender Description forthcoming. view View to be shown. gorm-1.2.24/Documentation/GormPrefs/GormPrefController.gsdoc0000644000000000000000000001105113426745047022577 0ustar rootroot GormPrefController class documentation Software documentation for the GormPrefController class GormPrefs/GormPrefController.h Description forthcoming. Warning the underscore at the start of the name of this instance variable indicates that, even though it is not technically private, it is intended for internal use within the package, and you should not use the variable in other code. Warning the underscore at the start of the name of this instance variable indicates that, even though it is not technically private, it is intended for internal use within the package, and you should not use the variable in other code. Warning the underscore at the start of the name of this instance variable indicates that, even though it is not technically private, it is intended for internal use within the package, and you should not use the variable in other code. Warning the underscore at the start of the name of this instance variable indicates that, even though it is not technically private, it is intended for internal use within the package, and you should not use the variable in other code. Warning the underscore at the start of the name of this instance variable indicates that, even though it is not technically private, it is intended for internal use within the package, and you should not use the variable in other code. Warning the underscore at the start of the name of this instance variable indicates that, even though it is not technically private, it is intended for internal use within the package, and you should not use the variable in other code. Warning the underscore at the start of the name of this instance variable indicates that, even though it is not technically private, it is intended for internal use within the package, and you should not use the variable in other code. Description forthcoming. Description forthcoming. Description forthcoming. panel Return the preferences panel. popupAction: sender Called when the popup is used to select a pref panel. gorm-1.2.24/Documentation/GormPrefs/GormGuidelinePref.html0000644000000000000000000001026313426745047022232 0ustar rootroot GormGuidelinePref class documentation

GormGuidelinePref class documentation

Authors

Generated by heron

Software documentation for the GormGuidelinePref class

GormGuidelinePref : NSObject

Declared in:
GormPrefs/GormGuidelinePref.h
Description forthcoming.

Instance Variables

Method summary

ok: 

- (void) ok: (id)sender;
Called when the guidline preferences are changed.

reset: 

- (void) reset: (id)sender;
Reset to defaults.

view 

- (NSView*) view;
View to show in prefs panel.



Instance Variables for GormGuidelinePref Class

_view

@protected id _view;
Warning the underscore at the start of the name of this instance variable indicates that, even though it is not technically private, it is intended for internal use within the package, and you should not use the variable in other code.

colorWell

@protected id colorWell;
Description forthcoming.

currentSpacing

@protected id currentSpacing;
Description forthcoming.

halfSpacing

@protected id halfSpacing;
Description forthcoming.

spacingSlider

@protected id spacingSlider;
Description forthcoming.

window

@protected NSWindow* window;
Description forthcoming.





gorm-1.2.24/Documentation/README0000644000000000000000000000202313426755206014742 0ustar rootroot1 Introduction ============== Read the NEWS file for the latest user visible changes. Read the INSTALL file for installation instructions. Gorm is an acronym for Graphic Object Relationship modeler (or perhaps GNUstep Object Relationship Modeler). Gorm is a clone of the Cocoa (OpenStep/NeXTSTEP) 'Interface Builder' application for GNUstep. Gorm is part of the GNUstep project, and is copyrighted by the Free Software Foundation. Gorm is released under the GPL - see the file 'COPYING' for details. Documentation for Gorm is located in the Documentation directory. It's also available on the wiki at http://wiki.gnustep.org/index.php/Gorm_Manual. 2 Status ======== Gorm is usable and stable. Please report bugs to bug-gnustep@gnu.org Known problems (things to do) - 1. Support for IB 3.0 functionality. 2. More palettes. 3 Acknowledgements ================== 1. Icons - Mostly by Andrew Lindsay. Gorm application icon by Jesse Ross. 2. Code - GormViewKnobs.m adapted from code by Gerrit van Dyk. gorm-1.2.24/Documentation/ANNOUNCE0000644000000000000000000000240513426755207015220 0ustar rootroot1 ANNOUNCE ********** This is version 1.2.24 of Gorm. 1.1 What is Gorm? ================= Gorm is an acronym for Graphic Object Relationship modeler (or perhaps GNUstep Object Relationship Modeler). Gorm is a clone of the Cocoa (OpenStep/NeXTSTEP) 'Interface Builder' application for GNUstep. 1.2 Noteworthy changes in version '1.2.24' ========================================== * Fix for issue where Gorm was referencing private variables. This caused a crash when built with clang. 1.3 How can I get support for this software? ============================================ You may wish to use the GNUstep discussion mailing list for general questions and discussion. Look at the GNUstep Web Pages for more information regarding GNUstep resources 1.4 Where can you get it? How can you compile it? ================================================= You can download sources and rpms (for some machines) from . 1.5 Where do I send bug reports? ================================ Bug reports can be sent to . 1.6 Obtaining GNU Software ========================== Check out the GNUstep web site. (), and the GNU web site. () gorm-1.2.24/Documentation/Gorm.cps0000644000000000000000000000125413426755056015505 0ustar rootroot\initial {C} \entry {Class Edit Inspector}{25} \entry {Classes Outline View}{24} \entry {Connecting to a Window}{28} \entry {Connections}{25} \entry {Creating Classes}{24} \entry {Custom Class Encoding}{30} \initial {D} \entry {defaults}{21} \initial {E} \entry {Editors}{31} \initial {F} \entry {FAQ}{33} \entry {features}{15} \initial {I} \entry {Inspectors}{31} \entry {Instantiating}{25} \initial {N} \entry {Name Table}{30} \entry {NSFirst}{22} \entry {NSFont}{22} \entry {NSOwner}{22} \entry {NSResponder}{22} \initial {P} \entry {Palettes}{31} \entry {preferences}{21} \initial {R} \entry {Responder Chain}{22} \initial {S} \entry {Saving}{26} \entry {Setting the NSOwner}{28} gorm-1.2.24/Documentation/Gorm.pdf0000644000000000000000000063216613426755056015505 0ustar rootroot%PDF-1.5 %ÐÔÅØ 1 0 obj << /Length 587 /Filter /FlateDecode >> stream xÚmTM¢@½ó+z&ÎÁ±?tBL$ñ°ãd4›½*´.‰<øï·_•èÌf’W¯_wÕ«îrðãc;Šòê`GæUŠOÛV×&³£øç¾öƒ¤Ê®[vïÖæ6ïWÛ7ñÑTÙÖvb¯“uYt/N¼.³ó5·½êÿ¢¥=åS‚> stream xÚmTM¢@½ó+z&ÎÁ±?tBL0ñ°ãd4›½*´.‰<Ì¿ß~U¢Îf’W¯_u½ªîvðãc;ZäÕÁŽÌ«Ÿ¶­®MfGñÏ}í I•]/¶ìÞ­ÍmÞ¯¶o⣩²­íÄ0^'ë²è^œx]fçkn{ÕÿEK{*ʇuÄpg6;µÞ$4»¢;»µgZ8, ’ü²M[Tå›P¯RJG¤eWxm½ñ­ž÷ŽE™7·¢â žÒ"/²îÑ7»¸¦‘¼ýj;{Y—ÇÊ‹"1þt‹m×|‘£o¼irÛåI É‘c¶×º>[TÒ›ÏEnn#×ÛûþbÅø¹‘ûÒî«¶BS¬ØEVå¶­÷™möåÉz‘”s…«¹gËüŸµ)gŽÏR©ð133wÄ xAÄbêí;¬ÒaGL6K& 0+‡}&ö"?‘á°(Ò¦Òa/ ¡cì,•!£½¥‰î-fö3¤Ù*IÃx {aªùð”sIC%ÒðhSô¢¨7å£Å}­HÏ=ŤIYƒ¹(îƒêjŧ ÿZóéàü4{ÖØSOØá5˜‡áZ ä®ekxvKº·Ǭü÷…Ü@2aÂ> stream xÚmSÁnâ0½ç+¼$z Ø¨"¤€ÄaKU¢Õ^C<ÐHàDN8ð÷õÌŠV{Hôüæç=üúØS`¾Jñ m}u%ŒÒßE Y]^/`»w¦¶oâÃÕå:1L·ÙÖVÝ‹omy¾èUÿ­àTÙ ÖÃþŽv¹Êó‘DM^ug{¦…Ç‚° ÉpmUÛ7¡^¥”žX[“ÖôÚã{=1î+kܽ¨8 …@iaª²»¯è_^|Ó˜¼¿µ\¶öXq,ÆŸ>ØvîFŽ^‚ñÎp•=‰!9òÌþÚ4gÀêBË¥0pôùÞÞ‹ ˆñs#P~k@hZ+vQÖÚ¦(ÁöA,åRÄÑf€5ÿĦœq8>K¥Â_¸—žX NˆHæžÐÔ3$¤Çž˜{<Ý0Š*¢5cÕ~ÿP÷õʯÂùÝ5WÂ42^!ž0^#žrq‰xƘœE„3xÎü ñ ªz“)cÒgl1BÌîÒ°õ•?ŸXqû!òŠNA‡¨Wš»A*dý1ùÔ)iȧΰÅç“Оó â9ç’†NVf¤¡–kô¯VäaŠžUJü†ôì?%Íš5Ø»bÿTW£=ј«±®–¾Œ¿É5ëñ2éfè&p2pj³V^ócH£Mc†VYxLS7˜E=›þ1âj· ¾gÈÈ endstream endobj 6 0 obj << /Length 558 /Filter /FlateDecode >> stream xÚSMo›@½ó+öV80ÝÝÙO©ª¢VM¤H=4µzI#•¶QmpÁn”ßYÀnhq`oÞ{3ûF0N`ž3‹^9–o#ÞmWl8Ü\EbÄ)”ô~’L*^A–’jjeÏ÷a½½´†IF;ÍËàIÖ9¶(Øm|u¨Š2IÑêxߌïu™Ü-®£O‹è׉6Ôi'NòÁù!Ú¶dËèË¿ÔPƒrvTkÚí ’ív›*ÏöUSÏ‹Iý²”ÖLpðÜ‹ ¥´©$SV‚ácw߇qÙvA%EÄX€‰A1LÓƒÕ–¼CÅw®ù²iô¡ £A?TûõðéG¨%m3Õ6Œ±d´§XÕ‡n_îÒÕ¡ÁgF ©y¿h'Òžå 5pr#F³R7£Wùä5«‹¡àhQÍ[¤»£[¼ÏºrÖ£+Íÿ<  ’“Çþî…TF޵AsM1$Â×–«¦}Rpݬëáô1ë²mY'(B{:ï¦tÂi°'Kïæ- “§Içy²0À骄4¡,ìö޳‚~^3r‰Ž=ôÐ-SàT`Û°¯“pOäB[ˆ¾çârLx>íãâ1Agë°X2n o¶³­N“<õö~~šžƒRš`À£ 7U”ÖY[ c¼L¼Š[ŠBú9Ë‹¦Î6Åü0m׫gÙ>É\Ü·YUw{Zdj?çé)¬R5ôlÃG§;.h3ð¸ã™:U endstream endobj 15 0 obj << /Length 1120 /Filter /FlateDecode >> stream xÚ}VK“›8¾ûWP{ÂUcÀã¦2SÙʦ²ïa+ÉAÙV VˆyüûíV &ž©[­~-â ‚/Š(ØqÎ ‘åe9®9´ùûn{9ÁX)²I“$ØÌ´ý¾_moÓ4ˆ#VDEìh.ÉË…öUð-|ßvë$Ÿ>qc×?ö©`ÉŽãIAr%ò··™˜+Ûpq°;“ûÅ)‰.íÆ‚¥"7T\ÅMEÑzÃ9o×9RD}m]y\'»P5“i‡¦’V·Í:o/ÂMɜϛ,e»<6qÆbîÝù‚Š”¹è¾Ç[žŠP÷¸òðddãBVØ–.òÞ]#®l*bWº·F«ˆ~@ÿ”9€CàÎ…¤Ë¶ÓÊh^ïy4y!‹ƒ¬é¤3-ÒºRÞˆ=+Mqp§±OÿOerÁ7­Õ¥OùÉùhŽ»õƹøþë;cv;£ze("¯†äA¦®é"†Â8ìÙäå/²-âÂe[$Ñ2Ûx€ÙÆÕ…¶ Ÿ‰rQàfžm¤/ ×+ &Fd­õÄÁœ£9{WGÛó´£t‘2Þ‹·òÝTÚzµy[C›YÑ/ÄK£›´d Ç˪¢Œ¬{Œ6G{Ò-»M¯JKéÊsÊ.%JÛz¼ÿ=æâîó?D|Ò#Íó5·ïT£Œk®$ ¿ ‡Z—´ÿ%ozõQ®?pmÊz ÖJ=ÉÒÖÏDÈI„Vç-n Ø“ndLRßxILqï¦nE»¸¯”±Ú¸VšÇ@!@#µ…db¹tÊhªrEŒG$ZsEâĦnñb¾Ä(ãL#ÏBkzyl\%‰t®·f‹g#Pp!ù¢”˜^§­ÕƒWjÑ6jñÆDÊüD‚u9‘2²cE ‡Må{ »i6Á‰M}-}#Ç £lšÀY #ô‚l·£‘ÖaÈ5¤¡»µl6WJväIÝ ÔfЊ|ƒÃF\z ~²"2  d°¹‚õhuoL=•ª³£5i_Ù}jª+åš ÆÓˆQÌ@'¨œÔ*»È±DpD+"f0sÉK"g•"†ìÆùáS‡Õ¨ôÅÀsKöŒYÄÁ­›Þ*YÑðvåwÌñ‘ð“¿5fû€/멦¦Âò3ÿ˜ïæù«±ÿ¹µêMÚ×9Ø0z>êÚceJ²ÇW Ê}ñ8D1§LËAj<ç‰Âö~ðh„N=ÒúìfÁ@‚FŠ[c½ÊÆç ‰hNýO÷4F ¿;Ã0Œ<Ü_Ïîq ·þÀwÊØE˜àÞ?›nºptMá8¶¹é·Ý»íöQßkv"-P±Žµæ´Õ€£'Nwçn{‡ÖÀŸÕ‡ýê¿—?BÁY&x',†Ÿ5øßûö# *8Ç™ÈÓàÑI^NsA|]ýåÿ bDz]ä1+8ÅúçMÿvmÒ endstream endobj 62 0 obj << /Length 1822 /Filter /FlateDecode >> stream xÚíÜOs7ð{>…oµQõ_ÚaZ¦=pèäÖéLÈL°[;)÷¯¤Õ¾’üæm Iv8Ø8oö ûü²+o–ˆÄbà §´_¼þpÆÓ«»w‹ñÉï/ÎDž;ƒçÕ䳋³1f!8ø oFx68ØÜÅ›Å˫՟¿ý|Û1Rãäg‰Î.„cRÃ×d½fBé1íb5èåå«ëõê\9³Ü¾Ÿo7+%–7ëña¿¦qSš)meÜTø×iÁÏ[z¾ý;Î~ºÚ¼§—õ¸Œ >+Mÿ´:ÖöàoôïûyÝ^üV G@´–L‡nl|Tw™†ÏË40)em2U&>Ë5œmˆ¹yÏ<ùÀ$÷ªàîêÕíÍv·uÞlÇÇÛ݇¦5aC˜ÿªØ¾§ÊÏ»Ú~Ç꯻'û§E4:0ΰÁÛIݹÒ,Ýìo.¯¯ãÑåŽî•cž«GÙ=öâ ÓÎ$º¨Æ ©S.ˆÑ“‹ãèÃS¥óá[Ú˜!Œg’á”Â"Îùò÷õ?·W»õ›ÀC©å~ûöf%ýòãJºåån=R±ê`“2|¶º¯”‡{úøj§=Öœ¹K˜Î5—ñFÍÇ=)Œ&ïˆYÚ2Vc KfYÏn¯®3«ËM~’GMVÂ0V[3«/;¯e¹ª®2Žéª«në¢Å&]h$è Ër©+]*ëºXyµÜmoã¼¡É NwkÙü๞²˜;¤Z,ã˜ÅFÛ"-6Y<Šü|mÅSBN+ºqmõrýqß~Ïfà R<©¥T·uY.‚º.+ãØº¬nWŸ\—Ñ¢a]v}t|ãš Z/´·Ì»|-@ªìåöfý1.Ķ»›÷ññS<êåëøüýåæÝz?žP¯6ãþXïöWÛÍø¿F™Æ¤:Ǵâ`2°Ïƒ_ž ;ÉÂï‡ÖV3?ÈïöûWcSÄcT5Ž£Êm¹¢ÆÆc žœbNªÉ“ìïIÍžbõ¹ª§2ŽyªËm{¢Å&Oh$xŠ—„xRý=ÉÙS¬>÷@õTÆ1Ou¹mO´Øä O:4,§…Óý=ñÙS¬>÷@õTÆ1Ou¹mO´Øä O¡9éÄäÉt÷$üì)VŸ{ z*㘧ºÜ¶'Zlò„F‚')˜àÉö÷dgO±úÜÕSÇ<Õå¶=Ñb“'4÷@õTÆ1Ou¹CÓ-6yB#Á“LšâÉtöägOcõ¹ª§2ŽyªËm{¢Å&Oh$x2>¬Zà.i;{rÌÝÓ“fNÚ¼fRáÐþ%Sw4š§Ï«ñ¤£Žo•yS-7IB3AR@<˜òÎu—dŸ¸¤\URÇ$Õ­žDËM’ÐL¤ó¼HòÝ%™'.)@•TÆ1Iu«'$Ñr“$4$‰Ð™{äÐY’½÷jé±HÊP%•qLRݪMI´Ü$ ÍIÜ0ÃánÅ;K2O^R.€*©Œc’êVOH¢å&Ihæ$izLÔû:·~êòþ':*Ó£ºÒ¶"ZhD„N†\üšåWYô¾Ð­î}«î#1”÷?ÑP™F Õ•¶ a¡ÿùçÓ) endstream endobj 117 0 obj << /Length 2325 /Filter /FlateDecode >> stream xÚíœßsÛ6ÇßóWèí¤ãð“ ï¥ãúšLï&I§q®Ói;s¬ÌXºÚ’G¢“é €  ¬·©£³Nš;BNçÝýE½ºn¶Ý1]®ú'>vO4›ír½êŸøw÷þl1’-ywß¼M+H‰ ÔÅÞ/I! ö—>¤qˆ$š‡ˆ¿™·]èþ¦=JD„üɃCvÜ”¢"Ý'ñÀŽúè³(<áêî‹Úµaì¶¢X]EÓô$UAÊr Iî™$N‚$’BÉ„ê3Qúò|2ä—ÉP04ò“ñCHÝŽ!X30T ¢[ž!µw†PÙȾâvUßmë6I”„k¶¤rL¸¥Ä21„CLÄþd˜ÀéZ&@ÍÀ„¦D•*0Qì™ vìÊ€%i‡HŠ]̈́ӵ$š$¥‰IzÏ$™nçÈIr`IÂ!’bW™H’„Óµ$š$) /e ©Ü;IüÈIr`IÂ!’bW3$át-I f I0„$U{'‰9IÎ,IC8DRìj†$œ®% Ôd¬2u9)˜&U‘dœíYºœ•bºî©øû:å¥)ŸB?ßÐ^÷Xÿ»]œ3Kâ‘SÁd’Dœ®%qGS›ä"ÍV¿àfE'ªÔ¤¬\1îfIŒ«éÛ3ÁLnú¸4)ÍÒÇ(ýGF*vXôíõ >FI‹°ØÓGŸEá óv_´F%€!J*¬¶‹~ .†J3"•9ˆ¿~XÔmŸ½~´™ì¾ðú~ëÿsµžq=ýÔ?ŠÓÝûÕ•©‰m½ºrÏ-–Û¾^¾®W]ż¯oR ‘kIŠJ}¡ò–Iþã#@$€Ñš&ýÄêv Öô¥H©’Zƒ“¯ëÙ™RÓÿ¬7½ šº½ß˜V&aA…Vò€:Œç¤CÌ9ƒEl‡‹íÎ †Óµˆš!UHE˜ ˆqØù¯³³®i¾w™¡ußwñÈ÷±Òd¿òÛ“Âæ<ÂÂ6„C°ÅÆg`ÃéZØv464LZT½œt Íûm}Ý$;ÓHKvjež¨¿qkío†p¨¿‰ eE¶¿Ái‡þÔ6É’™†ÂÍ”ãèÛÛ»›æ¶Yuíq[·ÝÖ=3èkU=%Uϵ ~ñ Dá#G8Í€Ôö ìj§«—,áÊ5Ù*´GÝÐÇ•«µë,="¦vňì”/©‰¬ªã(_®(ù¥G¥((J#?“,au»¢k†'Œ†|t±^­šyJ²«.MžÒêÊ~r :ë° áƒ1qº–Á͇sB™»X©pí»Mó¡Ù4«¹ßÒíV2Z’’GPÉo0WìÜÂb‹Ý»Ø-βŧЍm eI é¦ÚAòu½]ÎMuÓªKVóæ®ÍÀbÞ{!ØñÀ’Â/"ˆ(bä ç9 Úˆ]ítåšN]ç¥C÷óªiÛåêºïÞµõ¦m®Òƒ¡îâšê®×:…LòF!ëTÔ©‘ûIò°º]‚5qÊh«@0XöSá7ïÞ~Z5›¯Ò3¢Š°’z§'EÌ9ƒEl‡‹íÎ †Óµˆš1©Ì1_êˆ{¹ÜÌØÔ<4»þ i”P)OîKU‡ˆ³ ËÝq3á§k¹5ý¹!8ÑŠîB9ý¾ÙÞõÃp{,¹¬HQ‰Óiÿ/ŸåœIXÚ†pˆ¶Øù m8]K¨h3·hó¥ôrÑôinŒ]ìbQ/Ós«î£(}:í±ã–Ëαû˜a§kÙ5C…¤‘Šyv$T!g¥ìF ÝÐ3]!iEÄg§®c?_‡ãÎÙ…ån‡¸‹àÉ ãº–;PÓsÇ+AB_¦vóUÝ_9bH«³—P¾ì.Ù¬oß,í#n›v±¶)-½U%Ñšy³–¨_{$B!(23J±ƒg¬ö`tÅ Sܘ“*ÝèêbÓÔnF¡Õ´^õ·çww7Ë9pþ®Ò¤Ðqþ.3‚ò‹AEáÀj´Â\æFPHm?‚ÚÕÎäY˜/­–—¡gŽü5_üó¾]ÜÔ[wVî[wmõ«õæ6 „égøiDÔ¿ôؤ0„Ci!ö3ÉVצP30$)¸ô ùNøý6䊌œ¾½ooL̦îñ¿Â•°»çq ¼ª8müÑ?sô&`iÂ!šbg34át-M ¦ßYqN‰Ô"ÐrÒùÕUªã¨iGÉH­LO™{CŒ3f:çg¡rV»ÂZ=„CVÇËž±§k­5ƒÕÔìœyd5OX}îÎá¬nÿ Õ”P^<ëùNÎk·DX¯‡pÈëxÝyòÒA¤®õÔôE‚U’0ͽ×(QŸñÍÕ²õλqJ3o×›dÍКðƒú%ÖoTý#Y‰ÂVF¾¥YAêv¬Àš>/°’™ï+ ¬|F @àR™ÒrÀ““ní° á±!pºP3@PhRê‚?^0PRòê`'ÿ9ÜÚa!Â!bC2àt- f¨ªûu­gÀOJ¯mÿ+†vmSw HrÌþ¼GTÏv¯ê|Àò¢!œ"k34¡D-L``I2¢üïe€ÆéäÂÚ7ë7‚ÿ°Yßú_и¬ò‘šÚÓ6IÆJÓÑÿÏÑGŽ·²X<†pˆØ® 8]K¨j7I† ˆD¿×û-†º°˜ q:•‡äÆ-7–›!â&ö0à N×rj†ÔÂáEé¹ñ™é]Ý¥ŠœÖ¨ënljýL™¼IçnZÉN#°§Ù9‡°¨ áj±í¼H¢†Óµ¨š5j¶-L{Ôt¸ftÕl¢^ˆ,zÒênØzÕß'#æ\Óì \Ô6Ï»ö)ù×Ü8W&·±C¤øuÃ0„CÄfd€tÿ èÖeî endstream endobj 152 0 obj << /Length 1853 /Filter /FlateDecode >> stream xÚíš]“Ó6†ïù¹t."¬/ô¦³ìÝv -›Ói{áu¼—ÄNÊ¿¯>mÅ‘´* ÃR.âdz½ŽÎ‘ g1ûgyíîfòâÕóGPÅ-Xàˆ|²|ôø¥3ƒ<Îály;£ñëa¼åjö[T×õüå÷ž.‡¡(Bš<òD4MfLÄEù÷gß!Æ©ÔËç .š¶_WÝ|S]×Ûݦ’׻ݦ.‹¾nþÅ?ƒ12Dˆ]3y1Ú7l´$•/ÉÑ»ð?ôÿñ—ÉÌL‰“áûgOG/ŒpË N?e'Ú4”ÐPm}¢}Œ Œ ó–Ì’šçÊBÙïã8ºX­êæŽù†qô¢jæ(‹ü‰®új»—þ%øhDÄ ¤ÆÀ;ØùN@ËŸPíË} Éè…n1{:¨´P]yæX¢sRìEñf¬d]¶‚³¾k7›ª[Üûj%À]Ûmååï1$,¡XøC19Î>¿C‡‹5¡<Œá>Lo<„é ¼šæ ˲Y’¤å#fÊ‘³ÝCQ7sÕ½|³­úu;_0@tX+__×Í19V8K†(y`ÉÉ嵚¢P¯ÇpŸ×æ¼£Üêu˜®ðÚ«9¬}J$º>X9ýêÐ4ÃâWnc^X·•˜qÓÏ}Y?oʦPÞÆpo¦÷ÞÂtoÍ“R4aÅ#+¥„Œu)ºz;OPT4¥ØIX ºœç$jwu¹·– ÉÄ·„9«÷²öTóXÏŽÑžrÖ´Ç®j6LX³aGº‰S ¨!v–çÓêAl(·ìÓ¢·¦ˆÙF–|M9coS…æš1Ü—kLã­È…êŠ\ãÕÔu Íí©Û€ÛRïh/‹­bm9ÏHTÜØ WÞ8A˜}¸sßÒ²d„{X:òÕÎR .gɯ9°”A€‘š¢tyØ÷íVõI›b¿—3®°›+š1®ÒÏk7;ë™rTÎn(%C´Ã0#A¢Ÿà@H¼Lr]L³Þ§©J~¨¦˜¸èº‚wCïí¹†µ\¬gÿb˜ÌEšùP|Æp?¦€ÂtA^M]QJA G„tŽS S ‰ž6¥n·Yκ5M$¼qý?arQ¤&?”¢1ÜG‘騃¢0]A‘WsHD‚,ÉFІ²çUµï»ÚÌD?6¥_yõÓ:µ}¼]nc%箲+#LÍ>aÿïrTMD¨£c¸ÏQsv1´:¦+õjye …éà¨ÞX~â›H±©úÞnLBñ×Åÿ ¿® Måh(šc¸MšaºM¯æl [û‰æØÒwÅn]—ÅFe–FhýÉ !•{®U ɤcÀlÝÈrâ„|¶÷®\ ¨ù a ÷`šâ!LW€àÕ@ˆ 01@ÐÕËËVH‘Dàûˆ@€Œ¢‡Ù”»ìV³j÷î³ÛœzŒ¬v‡é »'š'ç¸$E¬ÒU*T¹Ïø±mWýu¨š9†Q¿y¯)Ø¿áïõéîÏVƒˆúÃú|&¥g½ô; y^ªrà¬î9„=šGŒ]§°Úúvª}Œ ·‘ÙàÏ`¯×ía£îÜ]É—­ê/êÛ÷“«¢/€® ÅŸÚ[ù~€Ëúyà¡´g È6ªžzi&c÷ŽwEÉý›9¥QqW}k¿Ý”ŠÑ×øó)8²!¤$4YÑž\¥‚ÜÌŠòLå䤣œõ%&êzKz½–Ç/‚¹•„¼R]õÖøSa<%>(»b¿–qïÖUs´X ywœˆ ~Wœý/¹×±zÖxÝz½XnÛN^TC?Ün­›Ó•£;Çèêuݯ/ÇöŸ-%uÌPBX#×é‘êÞŒ«t@ÝœþÖÒhúJ>_ÜÖˆ2’óo¼.aîâŒp†*ÊÇa˜®Ñ«ÉIŒY9”e‰8€Äñ¦Ø]ý–‡Uú9 㡽eR§ï×[È\s”Fã8º94«l­ íwò›”5Oçú!¹Ÿ__ìv?Ôý/ûª{"G²gê” ¿ Lí@çl—ÅÁE¾îAXGyÔåû5u‘ÓäYbpLÇßµœ®wŒš<Ê¢‘WòEv¿å ¶õJ~´i‹UÍòg–¿· %ÿP«¡øb°B†ÙâƒùiÍ8’šæÃO¸gNTô·y1ÔéE H¬­¢ïÑ·êI-u žyÔªcAoêÕ]ÕÛwþ82ýt=ºký©) ]c¸oý™óîXaºbýM4Oº.6ó¬ØQÅÌeÛ”Õ®—-ÕU³ªþ¶?+Ã*åü¼·’ö4ÿ*7Ë.LÏk`kg„{Z»#³0uµv^í‚‹ Þ endstream endobj 11 0 obj << /Type /ObjStm /N 100 /First 827 /Length 2168 /Filter /FlateDecode >> stream xÚµšÁŽ7†ïý:f/jQ¤( 0$kx/ Ä>$;˜Câ4Á3‹ñHÞ>¿šít-bOéâjרþ”T"ÅRK%I%‘$ê=§ª#)%Md©WN4’±¥ZÒhø;%*ŠÿÖDÔÇa6¨P¨PB©¶D:‰ÿT¨vî©ôÏ ¶‘°P×Ä’Ö ƒ*ø{ƒØ<¥Ðø,%5M‹¦=<¥T’  u\Ñ Òl£MZÑ$ êI$`üãé–tHÈH0MŠ¢;ð“:¥†ŸÕjj” R«x´èHQôL¢Ã‰Öð(  ˆÆÊx)˜N@_4ÂÖÑÖpÏê€ðÀÏ"t{hÔ Ï —úìx…¦ŠH65µ&Ø¢“6t8|Ô^p¿%5ŒŸi‚¬¬§^à½AгQìeŽrgˆ J]FO0¡”§Þ1zð±zy4˜€Þ€É†9 ©ÍÁ˜X|Ì逇¨À†9B„Q·9D4­™}B…‡ T`×@WQi0@uÎXÐõ@eš#©€%e>5§9¯`­Î EÀvžˆ6†¡"‚ŽÁ Ì1X2ÌJUL;šFqïšÓ¹<'>OWXH<ÛõÙ†g;›•g;Àñk>_0ÈtÆfñäÕ>ÛÙT·ù‚@“dŒÃ³g‡ã«?þwJÇï~úÏépüçíÍýéæþMR¼SߎߟÞܾ½{}zƒì|ãÛÓ/¿þôõíïéªà†Âì>êõßá9¼Dçf_~yV~µôìY:¾À«Ñç_ðSÍ~¢ãç˜]xþgßÝݾ~yºOW°ëù‹t|uúý>]?È^4]ú‘Å褧˜üž³õÁæ¹<ÅP­ªåS =~uss «¹²M;Èû°z÷ae;_ª_Ø/â—æ÷¥ºÕUª«°«°«°«°«°«°«°«°«°«°«ˆ«ˆ«ˆ«ˆ«ˆ«ˆ«ˆ«ˆ«ˆ«ˆ«4Wi®Ò\¥¹Js•æ*ÍU>êøsGŽ/ßþ|þÿ7¿Þü÷püúöî—Ó÷q¹žãðã'R³`–*¬°«dn°Q[ÍX'Ðî«ó´x™Žÿº}u›ŽÏÓô9žŽ,#W,ï42–ª‹Èº²uÎ4ú;d³–>."ù©HqDëYê‰áꙪ,ʼnbÜ×8c^ŠcÎU'%[]„‹ñ+œ™êãøƳéE¤ìã!ÒƒÜgÚ0SŠ!YÚRZ§Œ<ÂiF¹Ž±× N-“¬ÅIË\ÈqM2R€¥8®˜NÊÈ@–ÒÄóάcíœ, ÞŽî-Åñ¨ðÈWf\¸ü´p}àêk b„ÈRœ>®˜Ü5#£\ŠksÅTÇiEøá¥8,ÊeøKÀ2²gVÅéN¸ªð(p¬H)Öâ°þc»ã¸ÊY-Å•<0•̲’†ý4rZÈÆRZøã¡;ð\ø2®ï„S‚C °¿Íf¶'–‹öÒKq,Ù|}®ó–õ¥´Jp(pLYX—âŠÁ£À‘åj—q¶ŽFƒG}*6ûKqVᑇLÐ<ìòK>vÂ)6=¸nÙx Û»‚×6<æÑ‡´eµ-^Ù‰‡ÄÝØãaKÙ¸®åUlc-x¸ÇFky¤ðÉ!öáõ»Ì£xsdÁ¯ØRÜ(ðÈcÂyÔ±”Ö;üqšiîýïО§+õ:Éñ‡ÿ}.“Ö’nÞþöÛõÿ-m½W˜›…O•‡’׬Ï~\¦ûÜÒœÌ>¨Í=”ë>µæÕÜÚæö7·«ûÍî7»ß4¯™÷Šyõȼzd‡æÕ#sss•á*ÃU†« W®2\e¸Êp•á*ÃUf•Ù¯×WޫĵÅUãÚ㥾zQ+¥å§¾&]éyðç¬ëÔ³/ä:$wõªÉ¢+b݉gŸœ§ˆgL‹yjðÉWDE@#¥µ©dõÞ©±÷«T—+YŸ}šì/§´¨}î1-ŠbE±‡¢Ø‡¬(NYQ³"~ø{ƒâ¤ÅQ+гV‡­(N[Q·¢8oEqàŠâÄÅ‘+Š3W‡®(N]Q»º~z<Ť*)4öòŒ°½ŠIØÊv‹b!v·µ<,LJ™ rÙ8Ì´OÑŸqò@;ÂÛÆi¦:ö*&!¼UbÂ[]Åóù¢ Éãq4å™`^ÎPx§]¥bŠë.R›Çá–òÚ<3ÕƒWн²˜g”ã“Eà µº[º!µ!eЭã}{ñ0C-Þˆ¦3}XÌ›§4x2Ó‡ Þ»ŠÀŸi¬ endstream endobj 158 0 obj << /Type /ObjStm /N 100 /First 889 /Length 1079 /Filter /FlateDecode >> stream xÚµVMoÜ6½ëWð˜\$r†Ÿ€ ©á @Q¶mÝÖŽ/º•ܵ¶nþ}ßÓnš‘ÞÐÀJRóÞ›©uÞkœwÆ9ÁSŒˆÇSjÄÓ8Lˆœ&&Î'“rÆ3›b9_Œ³.6.(ˆˆVá1`·)4€RO‚³Ò'®£DR‡¨f5ÕÆ¥Ä00J…ú@eK8fê ^eÀãθB<'t*™Wd¾E ˜ Pɇ1% e-³  ¥Ô±$… XÀ‹*Œ`ð²·Ä×¹›9(Fœååpã…ŠŠ’Y „…5YûÈi…êÀ!€k¤$êÓˆî±v"õ‘Ë@p4à”¬€‡ìÉa$20,ŒÄ@³5<¡MÌŠA¶`&{¦ Š%9Ñ€h.žÊF o ·`= ¡– Ô’  631êœk †Šb!-ÀŠÎ±„ ƒÀ•¡bñ”½!¨2TôŸzÖ¤>Ѐ¨O¾”FkˆFÒà™ à¡Ð€hdýPk‰D#Ö\ÐQš˜VH³@GifX`ÍZAGifh\-,/ZK ³@ÿkÁ4Jb¼UVÂÁ@‚ÖòŽ¥C±<7Ûݳ¿1yq¹99iºËOw½é^Ã85ÝÅîzšÇ?¬‡ß›î͸ýÐoÍ·§}ßtçýÍd®¼–ÖB&HnúÄ£ÊhøVŠÂçµ991Ý…éÞŽ—£éNÍ u/Í«W ~ߨç´õÈcÖmqP<¯žµí\3êÙÒ–òˆž|«žo=ÚÍÇÒ-ÔkóÌ}·¬©urÄöm£›5g]ìçÕsûžñâ[ëü³êaß´<¨§%¡_õyô|lü…}›#{&µ{R³oC”çÍ1:äµïSM®Å'ë™ôö}г±-áKŸªWè?¢þ«yj®ÎLkÎM÷ÓÏ¿à³mŽÅa·Ù¼ÿìs6ÓLs†:ï}Ïp\¦ƒéðÍÃ)¼D5(6m »wÛñæ¢G¤¦{wzfºËþïɈÿÖwãݧõðqŽíßÁ‚×0m××»iÜÞvý2ó«õvy;nÿøýýp?­6›Õ´‡=ú0­ÇQû5zqÞÿ¹[oût¼›VÛþQç7»õfö\ óã ó¨ÿåvÜ]oø~ì‰ÎÖWïýáå8õãvºýDµ›ÛÕð±ŸË±xÿ«ßÞ#gš®Åæki-"©Ed+¹\‹(Ö"Z¨Q8ŠÈV"Ê•xb%ž…¶ŽG5Q%W‰ÇVáq•xìÒº§cxb%_‰G*ñØ <¶u‹ –ŸNTwüQD *ÇðØ*™ÿBkÅZDaÈ=(.Öè¢P‹È×"Ò¥ö8¢¥ˆäéD‚*Õb²óÍauw;N•XO§O'BÍ^6ÿÚn: endstream endobj 299 0 obj << /Type /ObjStm /N 100 /First 854 /Length 1272 /Filter /FlateDecode >> stream xÚ­VMoÛF½ëWì19Ôá~/ …êĆQØN#»A^ÖÒÚb,‘*¹²áß7KZ–-ÒVÐ^´$õæÍÌ›·KŠÜ±ŒÉŒ3!±fiQ,7X4ãŠV˸ɱ:ÆÀà ÷\0!è^1¡äHrþ“Ü2)VǤÆJ‹g‚3•^(¦â…fJÒsÇ”Xs¦žKÎ4#)ÓJ%.mˆS3íÀ/3<2gFà¹âÌhäP‚K«b&ÇÿJ3‹Ú¤²èÊŽ¤rÌäÖ:Ôª9sx-™“2Õê¨_m˜£~µe.¿ÎYN=˜ŒåT8r>#Yžg S&@l .¨c¥2j4œspZŽ ,Ñ(ç$²U¸ ™-Âj#¸°|$-Â%ÍjsI%¡mD£w'1jÊ)ªrHª®IWhȵF=9Â5€2GR“¡dÈ U˜#©¡ Q·¿„¸ôÂ-4PxÊ­ÅP` î ¦‚1¸CsЬ‘c–м‘ 3RdŽIå9zRÉ&<˜•ÈxÈ(œ¢ ˆàé/‹ ÌCñEAhÁsr¹‹Û‘‚B`¶ ~b+D áPœ#Èrd'AóV’ŒLÂ<‚S’Ü‰Ì öJ©ä9¡0@# „J!©VÈ+ }n„†> jQƒ0”v&§¿ÔR8Vã/ô/¬u£Ù‡ ûp\]TìÃgöŽË÷ìÓ§Ñ»³*†ûªŽó‡¿3•Mç¾¼ ]%ýÞ…º)ªt™dâýÿDÄ{ˆTKtQèsµ‹8É]î[Üæn—I·ˆïs‰ë¯jMËéºI·¿—Õ=­m¢Ër†Ò¢/géÙ¼HEŸúríÃÔ§þGUð:ø¸®C3 _Uë”7¾Á}Ùø›ÐÆ´—;ˆ“åj–¡Œ>BËúâÙNŒÈžæ“Ò·C(ö ;¬Ê2L ÓÓâ×:\‡:”SôŸÐÛv)E úÍ7Å”j÷4¬â+ÐãcQÞx}Ãlû8íVä³Éù}ê_÷ǰÁ+øo¡YUÉ,Ø‹y ² 4u9÷EŸÀr Œªì­B>Ëàïým8ª«åYqE÷ËçUŸ8ݦ:¬áÓNIŸ 0^­Åthú=aãÔÌÂ7©Ð“Dr\ÕËáè˦ íŠ>_ÇEQ¦Ë?{7îcàx6ë")$Ä­Œ{Sé—TãÖÅOTñ'©^¶³Ñâˬˆ-m³Â^©ê}Êêì§H†zÚƒz±ØÌw»«}rc÷ƺZ¤ä×pâVú¯­Å0ÌrêoŸX†ÏaZøÄßuð.Á |—ò‹0vplú;˜·æOçüÁ&¼¯þ)ipÐCì:Ê È´»'é }{C¹—ò†2½•NbX6ÃOJù-Ñ¡þåÊ7¡íå 5òMê­‹²õl{p¤?Òëð{Q>å&û¶.Ëç#Aû»p™=æ¾ó8ëÛWlµ*¦Í0öx«›´âÞÇa|çÛ3¿Lë…¿êSáúßíÈ7»øÀ-£¦vëÚ?¼‚ÞåÿRN+~Oß¼ab]<å8/»¯—úyÉ“õUrhßKö‘«Û‚¯ Žk¿šÃ°‹”êêšÛ:HƯîc)?*Ú×À¡ê^lGuøgï‘Eú~7·­[þXC”þÓá1r2¯Ö‹>IކÊ×[Μùè:ÁÒÐõ¶½Šíss³•V~z‹O0¼ˆÿ•Äx endstream endobj 472 0 obj << /Length 196 /Filter /FlateDecode >> stream xÚ¹ 1†û<Åtî396I«è¢…Ц]WÁ ±ñíÍžx2Í0|üßÌ 0_–‚Zi`s"¬˜Þ2(›iB°â"F/dÇ‘v_)@F-³n cª¤jò܆+7$=×)Îÿ4æä—RÇ€šrT2Wú¥b#) YÚº—k(0xÎYîýÜПÀ e¶¢giFBˆà¾/,Êc5\W ñÛ†jc|P©OæƒQòK%™÷Ô\‹Ö_xùPÌ endstream endobj 475 0 obj << /Length 718 /Filter /FlateDecode >> stream xÚ­TMoÔ0½ï¯ð19ÄõGœ ¡ŠŠ* ,Tzp³în ‰ÇKé¿gœI¶]Ô"¡2Ͼ™7of8aðÇIÉH.%-Ó‚Tí‚ ^·&h\œ-ø—@`ò òÕrqtª጖¬ädyCϨJÕo¹"—‘ˆ¯–ç‹×Ë=â™C䣔yFxNWiH EeEJ¹L1Û‰íbÉ#ïêë·®™«È[üžY׆rŽN³ôaádP$eåô•ñC9rA3ð0Œ:sfmÝ]œ¤¼ŒÎí¦CëD÷º5],òQ²CHÅò æÅ\&Es±XC¢©‘?öYF¹(I¦2*rztyÅÈ Ï £iNn‡È–Hx—`5äÓâãœv"g”gj€bcª‰F4Žï½‰yÝ—¥•mgɱÆ ›J9ÛFFåð¶Ç®ùA£Ú97v­®± ݇.{`A³<§)‡aá’rÅGY@gâxôFº2ªÛmc&6f…ÎÆúñð†ognѸ1ÚÓHwÀ{ü‘ !¨š¼ÓUൠwºYýmp•àOn1E¸û”Ç×tì}§²t÷}>TÌžNå} ·Îzƒt†îúX¬k ŽŸ¡ãzPdŒ˜æ'+(‡›òh~àb€Laz$è¿ÕΣ'()'%ÃÓÙûϽ7[ônh§TôÍ ½ôÿ[ÁµÝH¾ Ÿ°8’¬?cÈ©ë¦1ó »ýŒk³m=lÉ.Ð:v> stream xÚµUMÓ0½÷W„ËÊ‘ˆÛ±“,´T „Ðn9 àvÝÔÚ|”4¡âß3Î8ݦíj«¨Ý™7Ï3žæ…ðc^z±4oYNÂþ´É=4ngæüp TÛ6+ Så~ bIfuSZ.h”m8\IHš(é¢iH­0¢u¦Ñ÷ˆ±õ©Wö¸õ';_0’5aÇ…Xà¨RßüDº‘J÷€`µ5®ëÌç1ùíó„h÷ÏÚ³Ï_·­ÞØ$˺qÇ…Y4Ycô·o;àš ×º¹× †©–u¹1…CÉ*Ðm5ºÙ2Q{¡þ‚2Éðóž‘M¶´Œ|©H–÷Tà ò=³Ö­øGi*SÚ€®¼Æ’©è°d 4YBR½L1éÅçªË8Up¢W^õ¨¶LA™=`Ï$\XŸ"zi†E¶}ýåÈ;óÑCËl‡n Sʸƒ¼ÓúxZ¨‰'a ãô¹‰¼ƒw 5¦8퓯Ûvs=îv;šW=aZ7ùô˜—ІPžË Þ§„F5ã2¥ñ˜Îªnð¯ºæÑmLçeÖšº¢ç:d‘¢ÅE…£¨Üt¦pj‚Æ“ª däJ²Eý<ÃT-z@FþíHíǨÏqu…9ǧ 2 $ѪaV€Y<ù¨¾:Û:ù¨êÖÅ·ëA ¬è|2 —ÄJa·‡ÆCøoH,Fbg»3´if`Ã,šmÀܸd5ú4ÝS]‹ VÑIÛ¶mî§[w‹âµŸ™½”G &×Èþ0¯ü J,,|4´äÞq‡…ëuî?°) Vÿ l%'­‹S'qÒÆÅ.”mªôXÖ]ÿúÀ|¬(¸¸MÛê†"³;] Ž]~î{ÐØo’e×´îEâ{c“µKK` å×¶Oöx’C¨1”0 9å°>3ÉÎ;8p?#-Ç =]¸Eà4å-¬VWŽÉˆ0ŒäB2ƒ÷)™ÑË8íÉÐ!õ_UC6 endstream endobj 484 0 obj << /Length 1347 /Filter /FlateDecode >> stream xÚÅXmoÛ6þž_! &+¾èmßšl)6`i—Ø€¶Àh™±µÊ’KJqóï{äQ²[23D§Ó‘GÞËsw¦A4(“ 眔¢ªÕYâ¸z qýîŒz¹ãÉóÛ³7—iЄ”IIƒÛ» ¥IE:íw;>†"ú|ûëÙÏ·ÓF)cÏÔh%Ÿ¨Ì³€æ„ÑTX•p¨¬„rÚX§ ¯¢˜†jc¬n\"³Kà‚AýBw–t½ÚDœ…î—§áCó< +K/e»Pu‹Ï{+¬´©;Ïø 5–Å®F–¦¤È ÐìTR‡Ž&a¥å~@‘LìÚ8f%¬§yÓ’Pæü)¡9Jï{„2’ÇoxYƒSrÞu‰Ú˜A!¹Y*íÉw^yfÄŠP|ÑêDÚªnÈXëú>JÓPö~!¼e¡Ôµœ5Ê("o—µ__ÉÁ¨9ÒÒ³´4ËIk¯`ýC9¡©wÐl¨›ÞŠðpS÷K¤*ë¬F¶ ä%cFIfEÊrt4;‰£ùéÍ8šoÍë›ÎÁ­jžø›‡³(†7åÝÍC##–ƒ%,sެ14d;nøGÝÎ;+²AŽ3 H˜nå•VÒØàx¦ÓøIœÆŽã´òåNËrï4 fÃâ•H‘üF $ Þ8©iÐÌe}ÎårcIc‰¾Ù4^önh«Œ"›º·{< »ïpkþ‚Ü6e^¦ÛÏQ<ùû5FJ{~óÓ›+ÕÛÇeTXÄP@“ƒ–ò—mÍH²J™Gñ}Ó5€;æÈš~S«N? ªFÉ/¨ ÖŠoSÿ“²ô%ÊÞÏl¨‡ƒç”õ¸s-¾À¬¥6Jû´Z­u·MÇ`'<ûÏ«©ì‰“$Vr4<<€yÇ¡_±"ü5~yÅYÁò#GÏE§µªú+{åÛJ6`îÌe?á,à§eUÃèÕ ·=–ö[¯}"ŒõÔÊ;;:ßÎý5*Õ4#ê{å\¸¬ç8(±Ï¥ï ÜòñNùx'³•{›„v¯úøÐ×ÇÝø|TóL{ll¹˜Â}º…ís¦Ù®;ÀµdÀ½½?å–S‘³l·¾·]_Ûð«¤Þç—¿ôYJ‹déFý|4 à­3÷°~=¶Ÿ+Wñ°Éô Kwç“Ã5.º…$2ÓÅvóÚõгŠb»8v ]ošºƒŠ$q f£W±áæ¾øtªÆÉéë4±´€Óˆ€œÀ´e‡¢Ÿ“`¡(‘'¹ 8a9ª nÎ~?4¬± ¢ wb…¯ ˜cQoͧ$Mÿ0eÐÆo–¶ùÀ°Æãn,m!Àžy ]–äc–88³Ÿf¶qð 4¿¥ZåüEÍ61•a{í¿üv«ãWÜ›^Îêè(u5;IÆf'ÈØ?9¡PZï;×mßòAíèe;—M×zĸ¯aàÿBd í/ˆŠü$Qñü1fß1Oˆ)¶×êëPke`É™ϦWëx3] *’Z§I±÷u1Ô1ìW„D1t]°“4]ëöáá‡#Ú¶"爋¹o,¡-~`ÓP¯<Ð[C¿øQ(¡ÿ½!VØ5åî— Yõ¿B !Q÷“¸Ÿƒá¥Un¤RÆH7 Ëuð\ÁLà»x«lÃg<ˆ¶xŽ?ue~Çѳî¤O穱{rµÂMïýÁ¸.-1ª‹œý‡ÎjwŒrX½˜:䜕©ï·Ý²Y™)«ÓwñJ endstream endobj 487 0 obj << /Length 1567 /Filter /FlateDecode >> stream xÚÅXßÛ6 ~¿¿"@êײå_}k¯[qÃv-Ú{ØL±u‰ÇölùÒì¯)JŽ“^×»!×"‘(Ú¢È)³Y?6˃YE~γY±½Œ´[Ïhðáí³z P\L4_//^üÇ3øy³Ùòvúªe9ûͻڈVËn¾ˆ¢È _ΜÇÞÜõ aI{ñüåO?,ÇMâ0| 5¨ù™9 ?2'ƒÅx–dÜg'“~XŠ›žšÎB?I@Z¯ÊR–óE˜†žÀ?æ½yGÓ^vwó0óðT8ßmTó ©‰ªjæaêáq¾mà?óJûòBhÕÔô\sK ªÆ§ÁIµ¨h¥ÚîÙën(ôÐÉžV†^Õë#«zµm+‰çË,òYL_{+ éÓ³°'^°ÔOã›å<‹<'w=CBØv^‚xضŒ±oÁ#Eʺp]“ ¢€Ê¥<éÚ®±ضZBK$´].*ÑÛØ©y®g&Ù«‘ZF;¹³x_Úh#E YöpfƒúäÔ–@÷¥SjK¾Hmá× wpKmÙÿC!ž"ÈÈ‹ðOÍ45•0} ­Ý±ÂjPUiuk;膚dT{5v‰Ðƒ7¢Û)+µ¡}4¸Y¿ïOO’tc]VÿX˜sC½(»j¨[ìšÊ‚÷½a¡Jj-Ï‹ö®CÉ$+èjdû¯5 ׯßWÃZYæxõþú¼^:¶êJ¦®méE-«cb¥S6FYÅr UësïÜžûÅ•«Ì”«ˆ1S:^ôâPÆP€x ×D£A„Áà|‰ÃØ[»k¢¬¬„à ZÄŠ00'…WÙb%ŽRoiê8®Ó-¹€æp*û’C"ÝSí&›Ü¤îT§ã8ãIa¹•àŽuÌx+s!”®L‚v´Z|¬ÆÇ¹Écÿ[µàÓJÆO.Ç.óYeYþBf߃ùƒ ù¤×Œ‚ÀÏøôšœ»^³·MæºËö¤E×ä™É›Á^›p¸åÕ& ñE;´ÆõZSH8ô£#©U®X›¼x’VÊ‘ú¹5‘å ,B–ñØŽYžæá¥Õ‰“(uò4³rg,eOFq²ë`[¼î[~;¸Û|P±ŸW&ÝO)õä¬ 'hŠ!œu¡Nã"èå§­!–­íåjÖg}tçÖ,‡Ç; l}6â†)§ÖÓ¸“­PÖi_ÆÑyUˆV¬T¥ô„ÆÜYvD#ÏO–ÑäOö*1~ß±VKªÕø5`O±n³Î\,áFè>\N#Ó˜Ÿ‡Y½íŽðö㻯¶ÿ8¿‘( endstream endobj 490 0 obj << /Length 1375 /Filter /FlateDecode >> stream xÚÅXQoã6 ~ﯶ‡s€ÙgÙŠíì­íÖà†k6\sØÃ6`N¬$Âl+“ì¦ý÷G‰’c§½­=¤-ж²LIäGò#e2 ᇌ¦á(ã`J³Ñª: ͬ܌pðivF¬œ‚~Oòbqöþj2‘0˜†S2Z¬û[-ŠÑÞå6ß5LŽý8޽èDZOéÄ›³½‚’¤/ÿµøåìçEwÈ$Šž¨–| NšŒ bšDV$£‰)ª$û“$òæcŸx¢aûqyB6ÛqL¼{Ð tZéñ6¯7Lá¯ñÿ­fRqa'þÖÚ¿¿šfýC£TŠ3PÒœI‚(ˆPn¨\œSBœØ;ÂéÇadt:òÉT· ~bÿ¶\2eà¤Þ¦G©×ª†íüMËýì Â÷Kh¿ °šàf)îõgHÒÇN&QÀŒUîZŒ£ ̇?¬ÐΤ^#Щ³ß>ÞÆåÛ-|’šÿÏ8î¼(ð˜ØkØ]ƒÂRÊJ7mOŸß,ÆYìåË’]в­jœæµÚ}­íª²¿„zy9&^)4f{|à ÞðzƒbmíÓ{âÔª·sÛ’ÿo/}޽—BJÐÔÙÌ•jj±ç™fR±D ò‚—{Ù6°†VÂXpƒ»T¨Ï°C@©×AÌR³æ ÷j!ý]‡ŽQ§¶å)@–"/x[@`iR°á²²Â‘ d'×õŠßfiÒÌFå xg¡¬X­ß´jýK„e®ó•¯-v_²:èqP ›EÍÖµ¨Ù`“ ¬8uˆÿ [d+®V¬,óš‰ÖÚ·l7.ÕŒ!ÌÞCÎô#$@‹q@ã¬ãôø•8=ís:ù*§GGœ~b4%ð@‡œþDæµ£³RÃtÛIvË…  ´‘+ö 0é[€¾˜—C‰¨DŹ äÑk›Kàl»ÎQ´eŸµóT]æ)°’ãBç0±j~z‚Ñ•QÈ•µÅqˆÕÕ1Åжù ÐàÜðàŒšh*>˜þº¸u¾b7Ãuk޽J½]+5˧žPOâMúmn¨ I²òþˆùco¿eøU)TGsÖ·UkqiN /W;zÓ¥äŽ=‡Ú&¯Ÿäm²ÑXPjŸ-г jÒªi%ÀV1·?ûÓ&_™+uúâ}¾ṮӘ$i×-¹&¢ÔÓÉ¡×02ÌWURîB‹­¦-»×Y–ۇ”g½jiò ǼڕÌÙ×í›ãenðú°´õá.@œipú1ùÜ4¸uýæ¢ååáâ¦wT8±ßrTÁŠB“µyY}ô£?êZ O *y“ãàÖOª¡´qy_g‚J ÃÜaçÑß%1Q «\˜¬]C ÜPåÍɽÿ¡ï³éÔ0çËß5ëÊ|‡È$Ž"hË@–:YhÁ¤uÊ ¯¥”p×°Ú-Ai/{W˜K› "·—¤‡+TyzF~ ofK‚ë+=š†ÇV;„ô*ŒH½Ò¿}8-Dúúf¤ˆ’^àPú¯ 4›V&cØnH:]ÇÿâQcÃ~v-L°¬<6·‹ž~­=„ÖZÛ¦tfl±òEï/ŸQÇ"?\· Ó9qhÛë‹ùÂa(JÍ%\Öĺ+´¶¹ÚæZ¿X î9̶ yQè¦ËùÁ5cÍ–s眼~­ƒìɵú)Ÿ–ùÜ^+òYÓ¼<†Íi¾1}µ¯[jÇo¾×¨’d’¥/ôÑàáÁà'8¹(»¾¶5\±e—{¼pµ¸÷‘Ä5ööÒ-g{Ì=ý•ó @ a¯ endstream endobj 493 0 obj << /Length 1728 /Filter /FlateDecode >> stream xÚÝXÝoÛ6Ï_a`“Jõ­¾uARlº¡Í°‡uÀh™±‰êé¤é_¿#ï(K®†&€ÛbCƒš<ÉãÝï¾ÄV!üc«2\åq”I±ªš‹ÐRûÝ o^]0âóÑŸpþpsñü:MW, ʰd«›ÛéQ7ÛÕÞåž´è×~Ç^ôbí'Iê½÷ (,ËS/_ÿyóÓÅÕÍxIE”Æp~"Nž­XÄI‘8Y‘,NPœ(`ùÚO³È{½ö™×iq¿Ž#¯ëõ~3酪*3Þóv'd‹¿w†YôJvDøËHÿüº,¦—Fˆ ¤½“a!ß\¸8 JÆÛ÷È2W§‡aP$åÊgeÀ"RêÍ^*Ô(þ&Çéfؽ Yòg½¨W"Àƒ³dzpJKáÔ,ˆðLØ—/IÀ¢  yÕ®£ÂÓŽ~ÀKZРAVV)@RB?ÃÑm×ãâ×Bk¡ˆ¾ëúÆ ›níÙ[Q?CÞvÍ<¹¡wµ[dÓ{~8Ô²âL°ø0Ÿ6OcYù”ǽ‡šW‚nT]#PˆîöDÙð0øQ³gN9Zu°Ï•îzõyIó§zÙõ=l$Êo5ƒÛ®®;c {ÙîˆP8R²­,;n¨¹Ò8"¬ï;–…Iiì†v’†ã$-‹ÂMŒˆ„ñ|,e(¦å-ÉÎv’“‰aR°ü¸’áq’%Ñ‘-M³s›ùÒzöv4]õ¶úBÃáÕÎú1Y?ñ4ÀrOˆ81¯Œ×´e/ÈKxO§’¥ §Ð´¡åÆfwrǵsÖy ð#dð?8m¬ø,ùŸ²‰ ÍnØEq† ÷J£v Ε{÷´E«=ÔdØÆ˜«÷c4˜RgÇîÄóóÌÛ&¼Ï ­t`rB+#ìÞ0ø Ü&zHaXÍšQ´¨· W B c„%X¬çˆu¤µ&® ²lÁtÉ^´K1aŒt+*ýވà ô¬Ñ%ÅV’&ù€Ÿdx¼yf -詌Và”/ˆ µcàbyñon;ôݦ{¿Ã©Ò $^w-)úNšjëÑQ¥üJQ%ŸF•è_£JôŸŠ*×òÃbDQ§ÁDóMMËUWM;ê—(mN ÃñêF¶®r™€é˜µ‰#NÌAéŽÖ+¨Ô,šè`] 6týã“X~ ¸…g…Û¯?_½|{d™÷ú—›«8$ÂèÎD·QN Ø’~_Añ£^ü=@QM6K±€ÁŽ1öÁ`7˜ðŽã0ùˆÁÖf;Pœ€4¯k°üB4~…ÝΖô`]qðµ×ÃÁ‡#ã „Uöï`å“`ø²®ëãY‘€KO6±ŽýC¯ƒg°CýQ6©Å¹ëì—Ûíè1ƒî”üHIéX»ÝŽ"@ÙËÍ …Zzâ™%ûMËZ~t-QKÙ±áû3.) @§Hz^™Ÿ½t)R5w £*=¸ µéœȱû»ušBv–ˆchüÎÝvuýŽ·ðÒuå,>7·ë!Oz® ¢xëJjÙ ŠÑ“Ù$æO¶±à¼3…†­¨²|£e”X™«taÞã’ܬAEF£ÍÐnkÛGE86jvÁvo°Ë–e@¹ä uG³û½Äp A¼9h'•ÞwF¼·¸€êÊ/ÑO*³®àªM@w ç»î܉iâb[Ôb5ÌìGù²C Lļ4}t‚a_;Á„&d/f˜$ ¢29É0'šŒÊ2ˆŠlža§Ê°?a³@l¦å‚G Ýä (uóöí°QZj]×ëÞþÒäwó) Ì©H;Þò¡Ö;U›ä·½F*ÉY ¸”P“+­÷Ôq”X^¸ï+–©#ÏÄ!o‘ [ øÔ¿C]ué‚Fog…‡½Jé‰vŒ' |¹­íYÓ'¤KÞ¢ ,mõ?jØØéª¡5¿[¡EÕ•  <ÐR‰øIæqX¸a9=fÏÝy{:Aq[M†ãs0™E¹k¹ à w]•vß.º^îdËëI)Gß^$}ézæãW;GÈPe‹ ‚¾˜Œ(:w—õ)°ãØ( ‚&åã’¾Òsì†HÛ›é`++ØP ¬EÜN0ÙN]å¤î=šÈò¹º×Ü…ÞO²Ê>±y1GàŽUL"S„¥Ç¯‘ g(qsÊN®â Sj0F~sð”wè¥íÌ CØ}d^€&¨y ½&ÅŽ=ÕŽÊ‚vDÁèV°À}ßÿìŠ*Ù endstream endobj 496 0 obj << /Length 2553 /Filter /FlateDecode >> stream xÚÅÙŽ7òÝ_1È‹[€ÕÛ÷á‡b; ¼H  lXJÍ‘÷¡m¶Fž|ýÖÅ>ä L“Å"Y¬»Já]á]Üåqì—Iq·ožíw<øé»g¡àmq;Ã|uÿìoߦé]øeP†w÷ó£î«»y¯ê4è~³ãØ‹^n¶I’zïôÅ$ÌòÔ+6ÿ¾ÿdzoîÇKÒ(úƒÔ æ'ädÉ‚œÓ»¬Hü0N˜¤_‚0ÇK¯I#?HÀX¯únÞÅñyäí”Õ÷µ²–‡º2CG¡gZ†UÝf [÷çF·xÆÀà“juío¶iZz÷G#FÑýƒÚkÉRÓõšO®Í‡M”{2Ž‚Øµã¤oÃØS~Áïÿ ·Åe ·!^™yg~ €Ú¼ðä¨,¯+žï‘¤cgö²ðS¯t¯Û½ü¡ã…JÃÓ þåhø^}4ú"øGýİ ^ß7ð¶jA{ÈÄÓ‹ zqœð= @@¿Ï¢[Šy+²Û†©Å—Èù~SÄ^¯Z[«Á·I\Ð}H_mƒ9ÉKóÊ›kÙnåŠlqEVúq’¹;þ¾FFêçQ¾F…Ü$œy¦êZôQ(t±HÑøÕODc× °CoÚqyæ©äñBQT‹z•žif;À;QØqÀZ@V¿ëÕ‡®oÔð‚'¶s¨ÊÔ5šÕ–÷JŽÒÊšú‰èÂÄ„üz¶Ãt劒L$b}‰³€ü“ZÆüDT,YmÛçCZ­e´ qL¯÷Ñ3´pwJài8"7w~MI²\l ` â„–•70/@·î–µ}Ç$ò¤îTEÊN‘Y}àñbHø­€:Ãîa¼‚Wz]ëÇMšÉ“^Z ýßÅb…3È¡é±jT êÖ6øumíä,“4b ,œ–¥÷M3ñ"F‹N!ß+ô%O¸¹; £Ãr2ÞÓË.ŃÐëNhîvº a:- ꜡·×ÎI¯¸Y‡HêY5€q¶‹ˆúnbwâuOg{åÓ,žHLDŸ³è?hì\,ê‹"%%çÙÛ[Kêmsªµ“”8Ì¢8„ß·¯~J~Ò¶;÷{ý¦W‡pä ¨ÛM$J%øEy2y5ÔM¼¸¡o>ùJÓZ>Ì»ë-¯RXæõê©UÙUOèÉ÷çÞÛ{ýß3x†k\%á‘u'g÷ŒŽD“çv×Ôzp¾Ä»B½™3—¥‰n“%¼gƒ¨ô\§O·j‡AÔJ`­è¢íëÄ«P:ðYmÈ¿D¾ï;WHp]纺Ú.|Fnµ35xRRNÂåAµ‡¹×ÎqYÑÓîëóèÿÌè*™“‚‚p‚7¢‡E¡ŸÁÿÜ¢’ Ž` XyïP㺬&Ž0Þ7qH„å˜þÀx$ œØA"ƒÈ`U¤öøß[ó{£ 2Òx íÀ{m¹9`aVGçHÐÅRö0¸6ÙLöç™ RÀÊ- ”‚yÞ€µ é<åßò„¬o:Ê®µjÀ“ZaÓ#/½n‡‘Çû\Ì‹•4øÛVºML~!QòåŸ q–N¡'$« ˆŒ$‰À—Ä ¦Ì¢<ôÈ`—äf#3g…0XãK677™sÙ#Éàe7‹‰áÏXÍñ]@Ãï$Qi# ”’òðÜòˆ+­”Ùëù{1\+ÁK)5ðÐa|i,ŒˆÝó–‡ ^ôÓKåØQ¼Ù¤s0&øT1àÝ/FjWžç´ˆOi W•ÀLÍ–¥AìixÑ¢ò0RF8j¦6í ¿i P_!‹B·Q¡’U;@k匋 ãÃovÞ°þDën€¡ödß‚(d¹P0;9È‹4Ú=ù…–Fž¤mÅ;TÅ]Cys[ Òk.A)ôN½Ù£¡¾—œnÝ +omâ.îFe<å§YRONc6©š:48'ÃFC‚LÒºZ3>`e,]'AJB‰ B)‚±±êâÐÄ \wßÏ¡Xc£‚•OŠwœRÓpœ¹ÏéÎðìÔwàÃëö9“>" •—Ô P¹­rd1@‰Z`GN¢” cÇ'ìžè€ùµDùÊ‹Dæ-˜±”ÂfÖÊqÈ–S²e;÷‹ÊêH‰ä£ëöKµÿpóv ßPÛ¥7ªZ6% œüÄGm?[œcqÿ?гh¾8óË0ºªÍ–LÙÆAàI¹¬ÍÞýxÿÍK~ÿýX¦©peZîwŽé$VïR4¯•´K¡ñ¯BdïÇ>d¯=i2§8.8Ûe[atÔˆLa\Wg× |pñ£× %]/ìR´-h+vÖn­u¯»Û²®ð¸Ë€â ; éÆÚ³‹(SÒ>zu| »ý[önª®slŵ$È\ª“sÓ>È–r.e 5$aÖIÚrµœ{Àpâ+î¼ú•—!kd=‡Êw:8ó¸ÂÏAPcKf§ ¶°um9ÉXËڇα %…¼áÖáùÓ:%Ú³\¹;O\·ûл ‘kÞ—LZ(Ù ÿZBNIè‚èüÒU÷ï/hòO†Î°Í+Æ{‡Æõòjq ™ÑYÀãQöW¥qšÓ/v{©ôRnVâW²ñ4wõMî~3„y1„ P_ÿÆ6Su·CqqO’jÃ4K|¼‚³DMµG*Æ úÙí+ *w`l SVùuõ¶ûÛÀ 's-d®Dì²?ùIéÃ5µüÐý?¹< endstream endobj 500 0 obj << /Length 2386 /Filter /FlateDecode >> stream xÚ½YÝÛ6Ï_á·ÈÀY1õe©oi°lq·-÷éz@¹më*K®DÅ»÷×ß|Q’µH 'X`E Gäp8ó›«ÅþÔ"[/6aègQºÈ¯ÖDm÷ |xÿJ ß WÎï·¯ÞÜÇñB­ýl©Åv7]j[,þí½;è“5ír†¡|·\EQì=šs•lb/[þgûë»í°I_( r~&Î&Y¨È£$q’4òU±8DËUœÞãr¥¼Æšó2 ¼¦µ‡e¨¼ dÊq|ÐõÞtL(k~~BfÓve#„_Qú7÷Y:Ý4H@¤0!iOPŽ¿f¾KáÂÄÏ”rl¯™%‰¦ê\™‚—h±R™¯Qê/kµaîKå«ÀO€" >5àÍǦ¯‹Ž/ ×(wyu³ RïÌÔ§å ^ ¿­ÞïMÁlpn˜± Oi~µmËgfÈMUù³‚‹,+ûé&ú+rß/ÓÐë« /c½öÊã©2GÃ’`@,´Ey×ÊÓµˆ¡?â9PË»¦‘ÙჲîN0¿ñLn›¶câ/ëxm¦3üI^é®32×Ù²ªdã8ã>Mû_©ÐW1ËOÆzzÿó,«n­ž·EBDb!t[—õž ']›Š‡åŽŸp*^ß¡„Ê8žl' ?MQZ™ç‡¿Åñ$‹*Y'o¶ƒ%8Îô£ÚP°ÕT1ŠEÿÄSâ>`>ÍNT…;ÝVMÿjÈŠe§[Kb4í— 6w ?í) _MVH´†Œ†:·pùžl •Ó>¹®Ü𝉾•uï˶³ÌjÆfd™¦.VêV²*;P÷­­è=Þ"É [€‹µpAàS÷GQ!š”°±”­Õ¨Ñ<"ß1Ï¢‡¶t®ª+´þ‹ý`_ƒâƒ,,È2Oäêºò ÍçQéø„{àÁÑÀòº)K6z;χ2Ç•@ø?®ƒoƒß—¦û‹ ÿÊÕ½kÈ­qF‡HA²Œ¬þ¤ÛÎGàßx_Á&FŸ’ÑGký½}sÒàqpÁIœ‰ÁáÌ`pørepH"…gß™ÉRK@ÆïÅ5òvmsäy]›Îʘ|æå|0­Ûy 4c6ts¬ Dì¦ è;‰ž0ìúÓà´òYi¿¾*)y˜n ÞŸA?¸=š)%dŸÁ©‰öíNçæû¾¬Ùµúh†à;µå[êGpª8öþkrº>„ðtTy’A죴 ™`’[sl.ühÚqBòausôÉøà8ϳînâb €’d5äà Á²á|æØªl¯Ìæ¬æÖÚÚÜE‰Û ‡’i¥œi1Ò50>F› úõS‰¨€#Ö.ŽF¤ÇïO'4m²[µ%¸_‘‘=Ú¾rëÄã`5BBÓJ·3>Æ9%foAÉÛ™ƒQSw½ ÎrM8{9_®8ø† ŽÎ+]6ÛÞÖÞV.Z_hß…SñœÐsbí€Å‰Æ… tåÿœ?çMëÜ:,Ü—Ï.Ni²ÙD~OýÞ‰qYP­å'ð?õÃD _ü ¾ÍXð¥RðWߥr°¸ðÓ(»,ø~úçÝÛw Œ$ñÜÞ}‡Ã‚“(Áç$Ac cú޼/IØHw ¢1XñŒæמ_úÓ¾…è,< ?)['ø¤D„ÐUË7Ö#3nÅß…YäŒ,s$N€òþñg¿'¦VåS«1á9L5Ÿ@æ•òAgkæao…Ù}_®°ØŽ¸ìZ%A, ²]™ÙX|\Cf#‘«¬¹Y‹2,~ÛA 8 sÓ|MmÄù)¹î ´;ÆXg†E_xÄiîÜÈ\ãöƒuå2µ,F?‹.îæÎp&ã‘-šÖ·ihTš‡\Þ~q3c´uT'c·–÷ÃØsþ-Þ ¡Rœ Å? ¹¿†ð(ñ7àºnÀÁW'ìxª3ß¼Aݵáá`QTPjgg¹í¥ŽÛêÏ+1RRVaåÒõ˜«‚IÞ[¤m.¼yœt8–®Œ†­ðE¢1ÀBYé'X€ÛÀTävlçÙòè¢ @u2®o¤¿ ©MD†OŸŽ-ç 9ðló@ÚBÔát–ã²€¾3WÆ1iÌ|†rhLí?v$ÊÚåt¥Ëù\Þ24ÄsÆ6ïõy|Hùíõÿˆ½£ endstream endobj 503 0 obj << /Length 1958 /Filter /FlateDecode >> stream xÚÍYYÛ6~ß_aô¡+µª[rß’4Ù¤H6@Ö-P4J[´ÍT‡AJ»ÙþúÎp†²ìu€]Ôi ?ˆ^3Ã9¾¡ÃI¿p2&yû󤘬ê‹ÀRõfBW!Ï›ÁÄÙhæóÅÅ÷¯Òtþ<˜‡“Åz¼Õ¢œüæ½ØŠ]'õtDZý0%Iê]Ë;”0ÌS/ ¦¿/~ºx¹NI£è‘ìàÌüdÉ? ¦“¬Hü0Nˆ§A˜ã¡Ç¼‡‘Ÿ% Y/?靈¨ð¤Vµl¦ÐêD…¤¡÷öz¥*ù Ê•{F®:Õ6>¦Þb«Pº8óè›{ÒÞA‰ªº'¢ ;d\%•¤…;-×RËf%iÒÝV­pý–—VU‹Ý;Þ¿ÛJ”8Ÿ…±¦$@o¬ÞÓÀëZø&soÕº­h`¼/to§–²¡]Ó«ëŸM'wDôÙ(šÞД}ÜVU|À¤ù©³jëèÔr?­ÛNCÕ6O¼7m$*ÓH’8•2!;By¡‘Xåå^Û¡vs«]šàNR•êÉ{"+czih©=|¼[ ×8…^,ÙÆª“% Œôâ“áÙŒ-gf~>ÉÊÞÔ;mï’΀“0¦‹ÊíE¢ìD%»N‚®²"F"²êdÍ3Ö­¦†ikI-¼>üZ íP'šRèÒ­ s ž–»J¬äÑŠ¶*O]:ÀBuÖ’`Ú,77 бQÙ!l CASnîÁœêY˜Õ1‚Òå8$zã®âŽw¶§ðV½‘DÔ7²"7$ª•ȧ}c¯ˆ83;ÔÞ+{ÖsÒùÞã˜lM&>¶Ÿ)…QÖÅ¡½ìAUñ)‚>›^¹µªÙ ûÞø¢†–e¿Â'Ô?˜¬¨ÛžL…úÖaѦUÍ.Ò Î]˜[o¤,Ù,ãhý‰6zt責ˆGè?p˜d¬«M´‘ûGžMÂÄ“,²þ…~6™Å‡IùQ6¥Yä]ムßMãÈk5‡Öa!9¬°½ÍÆz-TCß[œ%Eƹ;· ÈÖ&г+‰¾MDë|4ú¾ï éÆh@ù[gl¶G( Z¥è·z}œ°9^IÓñÈEÇ(åÜ‚â‘Cì9;d=NÙŒ‡·ÒÓ§vÚdL½O?‚ U+Ø*\,AAykÝ:ç8 2Èÿ%d‘AöEd!ƒÃ;æ¿Hæ‡ÈÀˆ«+À„ì3ŽXCÆ«îGúN4ð`Uì²XbùLO:8•¹³0÷ƒbþÏc’¿q×ï 8[éwÌ`f:³Es¬»s•^Ë…ž–·ªí•î„âг–¢ëµü ¡úQ˜m Zp·óŽ’G€8þŒY$u*?Á'‹ÿÂ'ÓGûäùÐú‚j»Ì»D3Ó .‘–;k£ V<øvn…Ó3L<Öó,…bšƒBš¾à¤ù~ WPf\PBV³xµzò´èx«¤šq¶…`º­÷¥œKÓ˜DÎm£7XQ'­5¡Êx0ØóžîÖö hÿ”{—(ð@ðï}ó’Ø%!&ärò˜,ž|€ƒÄÚÛ²ÚŒ¬¼…}.±TÃÉ9ç—1ãûþ d`_½ N ð}ýæêõ[L—¿RÂa[.©RCØ'x §À·Mˤ% ÌKû††¹r·‹Ý9-AfìÕ€Ì6!*wÖ cˆ “ ",Å WÿI½~G_ºí{ê°°¨ÆF{ÅüV4 [/€¯¶IhVC‘&sÝ ÉQ¡¥P6TèeƒÖ´žu€;’ ÕîìsÑ©ú²×¼çó{†l":“Õ›ÑQ´ atPüâ[°¡it÷H¬ì3¶ýa {y4Yò9ê/nµkúòPä5¢–æð¸aY ú…úî°D„[@ÄþÙCÅOt`‹·W¶x#sx'(]õù¯ßÛÉîÐŒï‰@¸#ÃW…Žì :‚>ø¸ úgâõÍ;z}îùÍÍßî’ÿ-¹|Êlˆá}yǯýôDÂÿð=3ÂÚÎxñÝ)‹¥ZûÔ›îïã±dü?Ëߣoœð endstream endobj 506 0 obj << /Length 1566 /Filter /FlateDecode >> stream xÚÅX_oÛ6ϧðÛd REI–­½­iStØ‚¢öº‡mÀ‰¶ÙÊ¢@Jq³O¿;)ËŽ1´ƒ“ÂGòþßd“~lRÄ“yšFE¶˜”»«ØRõfBÞ^1Çc8â|µºzy3›MXqÁ&«õx«U5ù#¸Þò¶z¦i$?NÃ,›·bo€ÂØ|06ýkõóÕ›ÕpÊ,I¾Rä|$Ï<Ÿ°,J³J°¼õÁžæµ ÊùRƒÈ†ÖõÀo‚“"’ª°@ ÐîPK`ŠjŸ2Ò:“hÖšÀ=,»—ØÌA'>diÄfŒ´Í‘-3PÄ'ÂÅ›Lo:å\zí«Yv6 ›q*š­Âʸ÷M ®}pQ´•Q˜´]£\¤}‚ã|‰Å®éÒ -;˜xçd¯K«þªßBùË «¨åN6àúʇëNéú®ÿüÂçªuq%|'œšdûÂ¥xW~CÕgÏ_õ³ïRõÀ’},¨˜{PÁ›jDvX# ÞAé8‹p. ¿ß~JÞø Ç»?\®N’s)ô½,…9Qäм\Níœfæ¸Í sw¤¹-46ŽzŠ–GZgñœ´Îâ):÷Š"…G£š°tÕÇGÙI$nhÅÞVB, êœöþÑÐüè›%þk¢Äi-c…³Gœ)”žÇlhQ@³ þû†kj9®F 3°ñjëYÈé°ÜÁ7·ÐØ"€Û+šîzíäôw»7­¦ È÷/ݵ[ ©Û+ϵe¯ExN‰ÓÕã :‘‹ù|H@#:è|çB°å¨ŸæÀ"ú1ùÇ9¬V5lýFr&ÖjM@¶ÒÑ„5, ï YŠdZ8GÏi·—¢©“Š\»=FgÍ鬜b&E3úêlİ×"—çey_»Öfä?é¡>¸Ë †‘Ö‰Ö¢Ùhz> stream xÚÅXÛnã6}ÏW¸O+kEÔÍvßš »HMƒ±EÑ-PÚ¢e6”hˆT²ùû9¤,9FáÚ~05’Ã3—3™Dð#“e4™'I¸L“MuYiSNpðùãqz3Pœõ4¯V—²lB¢p-Édµí/µ*&×;º×¬™Î’$ â§³4Í‚[ö¤@BÈ< H<ýsõËÅÏ«n—,ŽÏ4Çh¾°'Oö,àe6ÉiH’mú‘¹ÙôØv‡9H"Ôú©(X1ÅË(تy­ö0Zl£eƒ²­0ª8³c°‚k^OIPâ³ÜöÖb*$’(Xí¸[¸äS³¬Bu½ƒ© Ç­bn½c8{Íeí„ÿAÍœ 쟑$$ƒq˜äð·Ó“$ d«¯J9{‘lðµÓK^œÖ."ñßÕk?¿;›w舙CwFæa–ý7O,Ž R(tø/=ñº4AσÛûûMò/pÜ÷`oqx×ȲaJÝÔßPXÒ¾Éá͵°, ~›.à¬B¼`Kв²©n*Z²›@}²hë!å°T5‘”¾§x¬¦išx5ñ ÐIS°Ò›jßX€0è ÜP˜HšòÁEÉ­»½_èúK)C?ŒmÝgVyãæÇˆ ƒ'óŠ65¸V¡¡ÛFVƒ‡P”Ö¼‚a[òÛ§Y»sÙºÍ×méýMÒo]ôÏó IÃ$Íc»aLÂ|jP…\bÆðr:Ëò8¸5q!5`›Äƒú žaQ(3ÞÑ£PSìÿ£Qf²eÀþÂ}—‹þ¾qÅ1™{ã£0³Sö%y¸$±W{žÂ# éP[†$^¢î'Z<0@dhí\LJÑV1s`;M«aQ©èƒõù‘7é~KZßËæÅk A sÒÍXûgþóÅkœ|e×ÄMö@®ËaJì-ü±³1aÍ–n\¥Þ`Jî±a…ôu›:ì^ŒñÓqµÊ9ȸ§šï¡T g•bêF¢%ŠòJN²²¢¡å+2#û?2#:#3pEUÓ½ÚI}Nž,> stream xÚÅXYoÜ6~÷¯Ø7K@$‹:W}Kœ£-Ú ˆ‚¦@i‰¶ë‚Dy“ßÎH«õ®8Ø$0`‘œ!g8çÇ+þÄ*õVI¸i¸^eõ™gVûÛ Þ¿9Ì磳à|±9»xE+ṩ—ŠÕæfyÔ&_ýc]²Óª· ,ÿ7Û ÃÈz«¶¬‘D–ì7ž½ÚÌR"ßÿFuó@Ÿ$^‰Ð ÂØg}âuèŠ $}|7Hl'Š}ë­í«Õjk¾Õöº°a}µ@© Ç…lnÕ@ eCß{dVýP¶¼ðjñ:]/…ú1¨¬AI#Ós=7 ¾}储M…˜ØÎ‰%—ötüTÀ$\9"u…ÏVý䉄¸÷­/|7†>ð²WR+2ý Çk…–[ÓŠlr¸àа²…¥Ð0Ñnú–Ù0”aË*9 `—cʲ|GDn”«L_ªÆ>àrO«Îï`œ -ÇÖ¥î+çe/oqš°Ù`ýy¥Ëí ­¶×¤ÝdÇLDpxû¨ÛZê2£Õ¬57¸ÇV¸£„­&º€[·Ä;ú23ÁH*\´=ÞôuDàŠHÞe“Ïöy®Ì å°Ú{.m«áÄ|•—𤼽zMέY¬.ue®’M^ÁZWÉLý@^˜‹™Äα/s ~ŽÇmOm‘«±ëLXC­áäj9º³qДg!PdÂ{Ò`¿h8¾pcøŸ¸IÌEmý“ŠZ²,jþ£EÍJQKŸbÆç“ÇØ˜ÝØ=¨gÝXU9:Zƒ#¬¦Z1²Å1ï ¿zˆüÓºùï=9&ùFª…ïO+®í9·Ëf 9mâ[]µõÔH c,#MÂ!ŒNmÓ1C›r¨MŒ÷6W5Ó¸"5Šýߎ¬˜Cd,¢¨/÷1ãZõí8Õ£–ø8BPÿ'$^ú+Oü‚Ä[Oø¥ÊTÙƒ]:±{_¤izLæÐÙw…œÜuÆ‹¿Zɽê¼)¯Ï¹¿‘c³qò;ô“y×e#û¯\ú Õ-J:ŒÃ$—Z§˜ûèNÁMQ| ¸Ã6‘~ÇÓ¡¥ïìi ™€M[Ó0“ ÄÐD«AÉ‚âé&N…oéBês>è3´>º§ g­™Î€A˲)›[V²lò©±S—éd£*n€g\äÄmnòÊ«Á G ŒL¤~t‚ïÌof[tZÞµNûh¯¡9ŽD$à"ii‚»'̵;„á+Œt¡hp¾1hÄ„.à?'ÊÔ!Xà@,ÇÌ9#8YU`¨Å„,ªŠ«J¡˜ÁÐw€ºœÂõ½Ú±Ï&޼ìMÿŠ>±s^ÈÁ Oƒìe­&#qÑÕ.Bžq-v%WvÜu;‚”÷e>c+†ð‰bëH=½+T>ç-ÖqôJ¢ø@D4j÷”…å”bEh€‡ÞÒQ°XËFÞšÚ“CTO[øxFUí°uˆ¥ ÇHÓaà;¨Jez!T<[:• s|^ƒùZÕháAÀM¨Ààv&kÕ?R?OmÆÐAƆ¤ÏŒSJYÑJÇÄ9P‰è  <•±höXò­l‹r‡"ëÎÔKÕ±PÝKC½ãí7{º˜—Õ—™tÌØâz>©®Wƒ"“r|.2]·S)*×Õ!šßñÌ»~†B/&/„ܼ¡Œ`÷Ì„ŸmP•!ÍÁóàS‡~À¦NÐÔxÔHž„Vªøps­Åé G‰h:‘·Üöˆµg³˜\1z͸ngK6%»…œøŠ1Â5.LÍŸíM!ôlëûá8Øm\yË̴͢±É+I8C]ñ«êNó|?æ²a@"R§½’>µiZ•.;üÅÂ(1ñ¿mºþwÝöJz¼©Ó3ß—h¯šÂ !™.z¥hj’¾ËÌ…©ì™¾0@A­Ô|&g$‰Anû›®Ç²bFª 0ëk(ÍjžÒ£ìXkïºoíɈÑ(á[f,Fó]1†{˜€…Åšm0º Dq¿û™Ž…4‘ŠÍ4â#[õ{¢0EžGÕ88úúÇ‘K/Ñ£†üã ]'M*C£·’fl‹“ÌüΘš>&I[Üi+ U €—ð9‰Ã–¹%Mwêí)ÏÓP½G«áØøÂ_<%þÅú§>€>R>q›êXN?9‚¼ûRm~¦•D;Àë0Çv¨X]ù¸Ë´;ý,ÿ?ô' € endstream endobj 515 0 obj << /Length 2176 /Filter /FlateDecode >> stream xÚ½ÙŽÛÈñÝ_¡·¡SÃKó¶±³†ƒ`H&‹]ìæ¡EöPQ¤ÐlZ}êjŠ”4‰×;°ŠU}Ô}ôijþų<š­Ót‘g›YqxÖV3þþáM,ëBXŽVþùñÍý÷Ëå,Žy”dzǧñQåì—àÝN¶ó0MÓ ùÓ<̲eð O`âx½ âlþ¯Ç¿¾ùËãpË2I¾’\yÅÏ*ó'Ñb™-g«M¶ˆÓŒ™ú5Š×xë%óq²X&âU?Ï7iÐöÀh…jèt­ ‡p|2, SN¦)Ûy² NŒÞ"üÌ´¢6~îMS1µm˜âvúðÁ$èvæÉ…×K–ÑSkùã0OÖA_;sœÇA­Q$`>ŒÓE¼d˜[Ó6°/~ËV Ýivæ#,­ª„Ö0ÍíàDÍðDX³UÞ»¯,('šR¶´L8¯ @“‚àW1e;áŒú ‡,ØSÛ…b0^-âo4ÜȦ Μ¾/zw_´G¼úùþ¨:§™î@ªl½1ˆß¿y ÙС<¸®ÑºìD5áÒ­_GûÇZ á^§ËéÊ¢Eª“+ÝNömKGºëÓ>MÒdÌÌ‚¾Õ¶6uɽâ|Ä5ˆfiÎ!Iœ ³(,âD ÉÚñƧÙs)Æxe§#TïÚðVB7_†8*« ³}Á3Ði&¦óÿÐñž:7²‚+ÛFc¥ØlXˆkA‚å*ø7'v@èÒ°Àg»¥btl7ü8¨RÉë ëì>­•óFÚ¾ežŽÔƒ±®Cœ•æè‹‡Pà‹ –e#i:Á€¤v¸B–QÌ¡&bRa39ŠW ä²KF ó éR‡)»Pš©Õ™òyº¹?¾rf|W+L' ´¯¦yjÂάí$!!Q6'€Õƒ-˜l¢«`HîÍtéäß;ºæ#&IÔD÷*Ââ‰ÊÝ]\"B4qízC·‚´qÏ+ 0$p€!†bQŠb€}C½Ö!ü<ÉÒe RßC_¼:ƒµ¯éø &Z3Î ˆØ)Yzc)è~m5Hªoe¾qZóı†|NµTeKZeós!ØD”!Š}I¥¿ŒDw¼…Ò9}Å„ñª®96Â3­ì™LÎ÷P}@ÄNOoް²Æyöºž:(î®=âdÜî¢+Ç­Gvþc´¶”sÖ@„뎿¯àž ï¾7µî~85ÚÞÉÙ9R&äé,йPe¤¼µ8è qÖ¢§U@nK!}­$R*w™¬"<¡Ö’‹ØdO®èÊÆùîIÁhÖM“ÓÃ?¾;BøÊÏd¯¯d«§9×·‰¶/µï]_´ àXnh,au=Wzà1OKÃ: ï×n´?Þùé'ÉÁVV+º?þ,Ù~4‹BgÅd PÌAUh5\ÏÙUë°¦d’ßÇÙ¡}hñ z¼> stream xÚ­XK“Û6 ¾çWø(ÏTZ½m÷–G»³í¤É¤Î´¦Z¢½LdÑ%¥uöß @Iöz›ÍÌŽ$AŠ@'³~ÉlÏY­òå¬Ú¿ˆÔìfÔùpý"áu!, '+_­_\ý\³$ŽVñ*™­·³"I"ìúUëzöwóÖ¿¼øi=ìT¤éÄ•Î\”³d¥I‘ã™ U¹Ì£$Ëé¸le¼›‡Ip7ÏÒ@š;%¨Ã¹ºpŸt ó—×Úìça–,e±]¢¥±8U‰Né–&¶ÚÐLe$ˆÛºyÜJê÷VòÕÎS˜“f+*žü±hkÚì05m­Ú4÷$’¨=}¦ŒdeF%,|ŸÐN¨ \ ï’dQR$t³«epýÛGÛÉV°¨7ìÍÃ2ƒ›„ªS¢qgã2ú´j´•C·å®ÞÒ¢îÖ šš:¿É?×þ¬eE-¼9»<̽êUSËËjwügYpC3ÈW´§êP˜ƒ¢£ivôŽªihv÷è$Ílœ™å=е³=é°º±Q XBZšrWuKŸÚ±"§x’&sоè­@ƒµóŒ0”ç„!k8¿(‚Ï }¨’`—Ø¥¦ÙƒÑ;#ö{‚¶0Ô¢®æ ‰0¸%+Ý4°2g…¡í4ª±4®åž%›ÐiªO ¯ „’ÍBøF#ºzoI³ÑdÙ亰 QÆÆÙïÿ¬ô×| ûö´GåÌOq’{§èž ¾×†Ïä=ž9;üsÆ0Y¼Œr8¸fÈâÕ7XƯ'ˉÝÊ)]œoênsÛu‡¯®ŽÇc´k{Ô)Òfw®OžåðiöD}üê‡úœÐW“u‹¢ˆâ„õY;ïÄI°VUÔUµ,$/ß*gjpàà"K­UûCÃ{„<ÕQ E@ÞÁ~¼˜·èn!n2õá—gÑ¢£ên¹Ÿàôíã°D(ƒêmKaƒNï$€ÐÐhW–$[£÷¼’Œ±šÀUÆ)sßœt #/­À¯zê:Ù><Ö±ñ%6ó€¶r`,©8²D×µé;O7Š"¤°÷pšÚÞ2WíXÃ<aŒò”!`ì[T¾mV²÷KT×Zá|혣&‘àE‚ššx¦ê÷’ÜLâÑ­¤ƒà ¥òN+=i`dØhQûS3úqT0hÓ”y ;½áÝSH5Ð8æµ&‘´ü*Ò:ãù0O³ñp7#¨1}ÛýÁ`„,?- `Vq«M-ùP¾É6&±t!ÍL6u9Í… ‚c‚„$0rN‚lBÛVïYbû½Å÷UBXD¹äe:VBË+zRõCŠ-r`î3÷¢ÞBPPï×Vcu¤ÑÚ-¢þǬ`;®p¡€Ó·j¸8#²Ö¸\›%«(I—ÒøY¾,ü.±#ÙàXX äIAÏ›Îi(øÒ:kYï$‰0°}7²"´‡¯q¦ ðÅ%¯#j!®,- w€–¤µÂÜ_v²4òß^Y5„93$T6 œ4¹;÷UùXRb_R`µLµæöN(—è8žoäW$ÎGîø^Œ&9A0&3TÚ#< Þ" À´ÐýìÞÛBÝÛ8ÂmTæSß-!d °Ä"*}Ué}qÉÍI• ‰iÕ#v!Ü"¬>pà l Þ*×}]ØHÏ>lf˜;ˆFaÛè’Ž!Ÿìˆó»”üзa§œŸb"r ˆ_7jd ÝRBLMp4D:È÷Žcïi0áD¦1פCñ…;³èåûÚìÎe,Ã{@òV8-­'™ô„f|}ûèF^¹òý>ɇ’}jWþúýÍ3Û÷ ¼x*.ótZ@€l‡Ä§}ó™D~ ˆoéåæÓ{ûàô“€Sí03÷¬:™;%¼™-ÝU§Ís£ôɡĥ¾*OÞI#L‡.oþée¢g6îðNÄà Žô,ƒaOõ†O˜[ŸäNðj¯¦­¯±òßÐq¯çO~郇Í3;âwª£†çS-:1è=MêpŸ½Mdxò$AÃVØx¢xðö™ü+p1µ‡i•œÞSOí)ûK$ö þ‘À/+ öî4A§ß• ³bq’ q<ÈÇ*FŽ ­4—™Èb$ò/èúg©ñÀE·(¹¸—ƒÅÉ_$²‹¤nºS%ZÝymÄ™:9sdäÑKfx 9ßt£=D°ò9ÙG؉Ÿ&üÈ¿ÿæ‡E endstream endobj 523 0 obj << /Length 1442 /Filter /FlateDecode >> stream xÚ½XYÛ6~ß_á·È@¬Š%Ù}K›k 4 ÷¡h T+qm6²äêØÍö×w†3”%/lö(ü`Ãá|sSbÀOÌVÁ,"%—³|w˜Õf3£ÁÇ7g‚é@¸Qþ´>ûáuÏDூ•˜­/g±>-Õº˜ýá‰dþçú—³WëS†w¼)oÝ™&3‘ú¡ˆ%Þ R%Ké‹HÒur¾ˆ“Ðû­Í6 />–@D¡LþV5j¾ˆ¢ÈÓ-þK/£i¡Ú¼ÑûN×-Ô—´ßmùÀNUópéõ4ƒÓÂëš¹ðú¼ë‰)0« Ú¾ÞfT–ÏÃÔÛº˜õ|3Å¢,@"Ç– Œx¶Ä2"Ÿ‘º°ŠÐO`% ªóê²F*Tˆ| Z_[@1dÌ#Œ}y›ÇñMaˆCKõl„-µØt§v4Ú7³èsB‘Ò¥×öS…ø¾ïÒÁ"ZùR¬Gâ/¥øn-Þðž¬R¥K)/XT³odÛè+]mhù ªæ†f¥Þ¸‚È4ðovÙÁo² ¶îÙþo`Û‰‰å¼¦º?®PwÂ’•e®D7s##»8k¨UµØáb€ R Jz[b7Bh–ë½!SMÖ‘hú­*÷tßç ªš%Ñ»}©Ø‰À(°'î¦ôJ8s¥‹A)Uè%M¶| bËöí@yÒ¨‘ôÃûá{IA’÷ÌCc÷emxu®«eì/EúÿÅo)8L÷{J‘•[&‹Ç!˘2ÂRVÑ=p€©\v:JÒ0*U×ÒöÍÜø9M&GCƒVÙßa¡8¶™Õ(¼ßçKÉLBpe¯ÓÓx%úÒ’×”¬È&AJì&ag·T¡9€ vØQ_u«;]A™ÚЊCäÇÓwŠÓ‹ý¾Ô9eÆ“¶“ÉÊËeòÅB¦ê×*äbæÈÄϱÞršE‚[8hùZƒ–™ô "ºÅõ]†6¾¡ ”w&7ŠÅ+±â;¦úžÒÙ¬8d“h0AÑdœ"*ÒøäÎ8öþVy×Úša$æ#Ü`°iR )}BÓüjºt"ý¹&3]M›¤Q¼?·}Ž·7YÙ2ª|ÄãÇS}Mò ¯vûŽ,éÀàJZœÇÕpnÜ„=É OâN°*oH ï>½ÖM;Ä÷zï>½¿†ÂñdÖ:¯ZÎCyW7Ž r„U&)…ÑÒ%)cC–Ý„‰8à3,ÒdöPUزËdú¥Çœ4ß|"zòºi@~ö#ý/û<4OSãLÁ>™N? P0ßÁ{ÂÐhÿlb:ê!/íp0()FzÁ©æó¥þbºHš™ ÇA]ñàwohì®îBúA9ÝcðŒcø)Þd8ó ìÊ•wѳ¬º{Æâ¬‹úð ´ÜÉT-º=JYÞlG13²+¨†L;$QþôO÷N÷J Ÿ2ÓÊ‘~O÷ (¡ÉýDy &ïÁEÇ) pµdè±/\ K/#ýr$=,‘ô">’v\y èLÙíŒþ¨LÁ:ˆ,KÅ{&µ!SãÈYµ¹u“;°ËvÌ£s>>á¥dƒcò¸®¬73ƒQÛ]èö‹ÿôš/ËïöxVqåFoëÒ ÓŒÌRrÁ¡¢ضÙç¤Í¶Á{là¿e¹«\›N•Æc¥ßPFzøÝCaæÛÕS„=ÒJ"ŽœvvY¡hË8a²ýaÁåN°ßöðå#D ½zf*0, áONìG  ™œƒõä Ì©²o oèÿUñ؆Ńåm/qÎï׿2ËÕé%úðlU¼¢íÙ,ï4)ƒ6 OíÈÉ`b>gáâ–L‡ãÌT1shi×¾Ußàu#AX#zMäÊdŠÃeh† ½¢`«Rnw:|v(I2IÈ'¹‰zú§×Ý>Pùö[åt>§ endstream endobj 526 0 obj << /Length 1390 /Filter /FlateDecode >> stream xÚµXK“â6¾Ï¯àhª‚± fo™ÇNM*™Ù ìæä lÊÚ%ÛóØ_¿Ýêð<ÃËRKúúõu¿3€Ÿß™ :ã èO¸“ä';k–üyuâ³\{ ɳÙÉ/Ÿ£¨ãú“ÁÄïÌÍ£fiçoï|%Ö•4Ý^^ø©Û ÃÈûZŠ¥„©A<{þ¸ûïì·“ËÙæšh8|%”<4 ›€üá …Qg‡}? Õ?ºu½?ì`f@R³nxFe&*‰â°Ð󃾱nºèc¯ª(QÁФgYÏsi×êSš¹_©¤;{+zY©i”4ÎøDvñÇ Û®úA¼ýïZ¤tÇ´2ªX–-le)PZQš‚kÂLöÑe¡7[)Ö‘¦ÑÓLµ’Í“Ü,k[9köÛTí±ïPöòaÝímª—t>uNÛ÷t¿½¸mÅ„ýaô.çü¡ %ªÚ¨»åsä±µ/w‚¥dhlaÀTêÍÏOÁÈbImcoìUÎÑ@†`{ÚchÓZ2£EweRÃ'd4õÝny„£üWxnøKœgº|Á ŠìkO(@¶ÅØãUk‹ØÙ"ôذ/ä¼^¶ÁþQdodððð=3®º”‹ÚÙ›ä¤)DFÊ©bžò½÷ˆJAvùÞ±‘7xA×EÚ¦Š”»¼`E›°õ^¾÷—Úä»Äqܿαh´s˜[°sª/{h1zÀ olsü}œ”ªªïuÁ`SXG7²ßuY ”óº:¥Õs½Fu±0qeù‚¢¬$¿_ÈLV¬âÆ ÓÀ¯Yvê\æ¨Ü©Ý¢¾\”þ‡§’݈ü¹¼'(ÓˆãžßÉ60€,2<¥éYÚSq= ‘³ìB›•%sfA¯zÞíE‘÷Ù &T±wÙ-JŒ¬ã¸Sòþ áLÖâó:b:VEJöŸ*ýï²ñ•ÑõºÆ_¶ ‰]²6+­ùdsŒž$Üä0Gût©Êš±%,zÀ‚_P†‡ÛLÆ7Lu|ÞLíYß@ªuì¼+›Ö¸ÆQ"›ò!û8š‹R¦4Ô…[”40zW[ÍÈýCiÓ ‡ž^àÓñ!L0rέ¼¤Æ Þ—Ö=v.ÐÑdä]W´”?ùX ô[·4OÕFqiˆ}À¼°ì´ØT›Sf8X¤ø..š­…ðÕžDë˜#8Z²Cx6§‘T0æ3¹¥¨T9ûÈ÷:p˜hh' ŠÍ‘Ï@æ"óÈñ¹^“O÷/þt¼Y&FÊâ™â¾¡hî™F=ÚðNU¾v툳˜…œ1ÛiBu!b+³¨ê‚ üfzfùáá£ô™&FgÙ·'2ñcTÚÞyl­¾Ëæów–ö¿R•N¦ ŽÝ \¨RÌÝWÓU­R™Á-ÜÂÕo2ôT…™L°7X.3ÉÓL&•-¶ãµ¥ V. ¾bBW8*ÁœS/Q€ôѤèh4ô7(‚f n±ªµ#æ0Ud›ÍšŸµáüÖEƒð & ¶©Oƒ˜bî·U _)åcJyZwÄ´ÎDbYÕr…^“YoPØG§6uïÛ©fëúMð’« ˜»ÿŒÝ›nöÔÃñ‡~ks ¼(¹ñ­>âX×ÜIræå\äÕ‚3y¡(á&‡y³ùÀ,8ÏD‰_r¯ù+Åõ¥í>aÑ‹Ú|·>]’콪VîSÑÞpÜvêÜHQ±K¦5% ½¨M+‹ ¡gÄn Ú‰rg²F ""˜pÝ1tÃZi»wKK(à6(8]¿²·™$ÚúMw†lÍä;GÇøGÜO­cñ endstream endobj 530 0 obj << /Length 1143 /Filter /FlateDecode >> stream xÚ½XÝÚF¿¿‚G#Çë0÷vGﮩ"]•Ðö¡ÍÃÆ,`Åx‘mB.}çcרØ4"Q¤x=;ãùÍog†þ‰ÁÔL‚À†ñ ÙÜx$-V^¼ºFoŠ£†æýüæÍc „çN½©Ì—ÍO̓œÙZn+U GA8áíp†‘óg)W D^<8"~œÿ~ó0¯‰|ÿ•þ fÇ¡qØtHøž…Ñ`‡®Böê_OLðÔcï…ïŽAâ±Ö;-ìø,“e‰°5+¢ƒFÉ*¡“&I–…Þ´öÜ5¿Âéa¦xæCâTCáhVªÖf'Ù…‚Ývig ›ì6Š\¡ïÈÄ0c7öΊwV(Y©fÄtîcš©vð‚õŸT® °=?¢(ñQú‘ïÈ|a~Ú°q½„€ |¡qÑ9{aQ©2•TÊ|Ê ‹KŽŽé3fá[¼PÜM }P™@¿¤jmLßæe%ùøÁí‘a·4ÊÙ—”ì“ ½ä§!GØ€…¨rHVš·4ÿ‡FÑpv† .ÁE ç€r·0Ž?ïªLUoî’*Õy6 ‰ùާ >5™˜5ÔêÕ{’¿Cë…ÚRúÐP,+VµÛûµ4IÍ ¦¡Ôè1½À°sûxßbÕã;#7=ç-ä/ô"þ.l¸N)轕ü´îü¯>ÐÝ(ïÓ,ã•DCoLѾiõ͉֮>ÙbÄ'7Ní^Ž&É€Y£¡;Atµ™´¼åÏ_û½Wý‚È÷^¢¶Fyú`aéÞ ;Š…RaÀÚ„¥‹ÆÕè.]ÿ²ë0ÆÃôÒY/•fš—Pl›ïT]+ דÊ:JÕ·U2¶` !Èʼ›ª¸+û¢‰¡£^Zïš¾tIõaMyÚ—Gí.í^‘?à‘&øxOù´=˜\±úÆ ëÑ­¢„öx÷l YsÒhN[™«ì(ñ2Ëú£Ú•U|¦²;û´Z[XÒU®E¼…Yf™#­ÞkÜ;tÅë^œ»ƒ_u«þZ¼Ï·4‹]¢ÚT(m/ÿ´!.L®éÞÌ8f©ó×0UTi<{éKYà ô&ƽ+éÜôdK¬È¨Q[ eè‚M(ðB7}j­¡3þõ™¥·êë6“iÎFÜàQÎul[àÄ)ÔRA;HÔ©®}í¹ú»ßt‘~³Œþ>zº& õ±I ´QßèB±„‰ ø\a01páÎ-%ã+ jPCCF ·5”pÙÁÏFíZšø°X©¾ù„b¹ò ‘®Ö øètçœ~Á °=µøaaß몲?VÏFûòº_Ôº2?±Lºç›8i³¬õÛSxÔ[í˜÷:šž•³ªž´Œ;÷’ªöçÞI££ýÉjûŽŽ7GTë;þ¥ä?¬h4 endstream endobj 534 0 obj << /Length 284 /Filter /FlateDecode >> stream xÚ­’½nà …w?# P®1ŽY#õGÝÚXêÐvp1i\Û²D}ûB°›¤ÉЪ ÷œ£{>!qw)ŽfB0•dHD|§vï(\o#sÔéAržGW7R"àLq(_" ÀüuJå%zÆ Èk~]çß›dÿ²Ò'O:Óä°SeΔ(Í" •/f¾ô'Ä,u ©'[— ‰3¼í}ØÉÜÅjò¨ Öë®#€ ¡€ko Õ§wnZBÝlê0n÷[Y`8æ¥#…”ÁŸx¦ÛXmþ[øiC¤Ä…­Š·Ê¹W_˜øÎ–æ ­—ûP<¬L@.Ú¶²ºlS_âam‡#Øëg)ÜËiÿr;7°éÿ~¦‘ÁU endstream endobj 538 0 obj << /Length 1507 /Filter /FlateDecode >> stream xÚWÝoÛ6Ï_á·Ê@¥‰õÕ·¦ÛŠ X64ú#Ñ–Z™2$¹iþûÝñŽ’Û]á‘Çã}þîx«~bU„«,ŽƒBæ«rwZj¿]ÑâÃû+Á|>0ú Îëû«_~O’•ƒ",Äê~³J„pé¸î«Õƒ…ëÏ÷\ýv?IJ¢è'U"ç‰Î,]‰,ˆD"Q'X•æ2±$uÉÚOÒÈ»Ùí[½Ók_xfGިƦ3h A,Ó€W2 r™òý@„[¼ÛzXûq&=¸ ßÄkH0GB#BEˆ¨ ¡÷5XG‰ws_éUÝÚr¯< $X°$ËC_éÕž<1ñ¬J¼/ºD³Fât«Ëùb3y§ŒÚꊈÊT³¸ŒÄIOWÍØõà –Æ {kHÅSpÌz"!GTŽÄ±w¬‚X’V¤˜²Õª§Mk_ÊÄ:"ܼú†Þhº³í ËÙ!õ™¨ä¯¡ƒ'Ü(4ùyK/°Æ@Ú )Á¢4œoaIïc­ù¦ÂOtb:u涪tõš6ãZx5[táÞœ&”½V„ÔiH)Å•iã¨J”PS¨@ C3ÝúäONÍa»½ßjŠXËÁy©¿1t0ÖsJúéâ6ê~~)‹æù&áíÝŸäÙÁÙΙ¼½û7F€‘âüN½/k+Cxå8€q1õÁ*Ë ‹3Lt…78ñ‘ÐFEZ1í=Kè6t>6ý,”â™M¶AL†#ÙwÙ66Ô_m(+"äpÛØì. n¾X©ý ÖIIsn#7ݸlqáÊM`F'¶ë+í®tôýjkEï™Ú+n*Ä¿aí5s×j¸ÜÙ]íN). %QäE䆒ˆ†’w1ŒzkøF|7‰-®ºiöoÿ¾Á?à’ኋAíxeÓ'1}j$ E7ׯiñxà#±ó}ý}Ôo§r3qœ¾¶g°uZòP—‚‡‡ÃÀ»i2£GIþScø9{kªàÿô@xÍõÿæóÚOCi“—z=zCkj`³rì<&…´`±ôºáž1ñÿ¤qÁÃH?[°¯šaß*j„ÔÞáU†ËrºËu\ôà4€Öná!€Y¬&qÛQ×C–ºÅ}qì" yT_+)IP¦Oœƒþg(pcWc6ØYæÊo¸C­+7'=.†Â÷ÀÎÃÓ£GO7Š)¶Sýד—ÖÁ>˜Lù$f¡˜‡Üàm¶6~¸SÕ«­Ñ÷«¾Û©ã‰¹gŸf‹Š>ËÒ³â'ÜÚSè³—Ÿ»¹ÆÓeÇAƒ'–ááöîí~OÎúœçw“Âk=>imހрó3íþG‰œ¤½„åÔøìWƒmvEy˜Ïr;Ì‘ó€Î|Œqá<ïð÷1%XW#‘IûºÓcMP«pØ ¡I¢¼$Ó‚ëokÀ°jšÏÊ STöø`áEªaÍbžùl<£8Â<=RNÞ]wèK}6„"‚?¨a¶!*µEzQcœ)¤úX¡L\dAgGæŒøUcc,ÒÎ[Jf±¯÷×û?¦¿*c endstream endobj 542 0 obj << /Length 860 /Filter /FlateDecode >> stream xÚµVÁnÛ0 ½÷+|› ,^$;N|\·¶ëNÅš†m%–¡²•Évƒî°o%Ò‰æÐ X”D=òQOLY0…?äÓ`ž$qž.‚uu1õ«v ñåæ‚‘ß'ÏËåÅ»ëÙ,`Ó8Ÿæ,X–ÁŒ±Ø™½×²¾‡œE?—Ÿ/®–¤ç/ é<ŸÅœg›ÇœÍR²ÊiÌ’ÃeÑd–ñð.š°ÐÊRZY¯eãR8ÍèðäK—[Mž„»Á1\µÔh®MñEØ UÓ¦ÀÁ/w•û®"À ¥Å Sº‘‡]#Ë®GéšÖTê·XiŠiv­2=ä~«ÖhKÞ¢Fƒ€x…cåh°$f3†4ZûIVÆ{ª|Â…ÖóKR3åVD0<*cqß' ã±Uì‘Y uO>ƒòæo*9ôOnCK…,E§Ûg˜÷1 NQJýt’ã)KŽ_,­©N2^›ª5íkUS¸•#0f—¸ºØ¯;K‡×=™Åyž#ºr;?§ Æã V¦èug¥6¢ø$E!m3ªùP9Ó…r£Ž[M‡F¶hø¸%l?ñ7£ ŠÖ~+=ÜÜ_a´Â¶tbm¥“»h#‚ŒÆØ³–{4âÃ8£—¨–q4É8NÊçIˆã@À`SB`aÝó¤çKýU§t¡ê Î¥dgì.;òh_ ·W&>;iKÏ"–ǃgØha7$ ±Ûiµî…WÝ÷Hè/ÓÆýÖ¸Äö·u³Ã×¹n͉H(¡Ô:¬Ñ ʪå³'V#(\k(Œ+ ½.ºz°¨hÏkCÿ‹ìû -ÛV¾†)ˆÓËô”ð®‡BW…ÆId?f;aN"uÝå¥Ì_Õ.…ïÇÝîZAÇ~Þ>Jf‰.@{#5KMÝ _ßè¶*ÏîÑ}°¦‡&~x«_6ÌsóyÒ'øç‡> stream xÚ­XKÛ6¾çW¹TÖª(ê™K‘Mж@ÖhP´=(m«‘%Wlößw^¤e¯¶Ý…"‡Cržß ­VüÔ*V©Ö~e«òø" j¿_ñàÃûJø6À¸™q¾Ù¾øö]¯TàçA®VÛÝ*VÊÇ¡åÚV«_½0\ÿ¾ýñÅ÷[wR†Ï¼9Ý™&+•ú¡Š#¼¤J²ÈW:âëÒõ&NBïM1Ôåz£ÓØ{Ûµ¥9Šq-1¨¦~Éæí¡`S¢½rfÞ¡8¦gÂ}Ý4<2_OMQ·<º£ÁQäu;¦ŒÃO"Ñêv/'?àÉÝē֘JX:þNmeúa,Z¡Zo€ßìº^Ž…µ~„ãP”_i_ÅŠå¿§³ûÏÀ©A"”Qk¯àOkî™^œÖÊ;5uYŒu×úl´jäë( ­]2?Ñ¡ÕWlÖ÷f¤»É°w( È¿lW•û*”xWƒJëM„gõ£@‰úHFõñ;W9 &ïPvœ‹Q‘VŠ_ýõ&‰ï}׿˜ëHþA¦ûº­:¼òžçu[6Se†G§/X“Ä(úŠÍgZk&È“x¤ã+;»ÙmêMY›3 ’ðqªI%Ñ”s’çdFRòUZ kJ»ØFò¬»×ð6Ã^ÁMCÿ¤¸Ùþþåê!²ËS/'x…%öÙõ…×WÀ4Bøº>Bƒk‡‰{ Û)A໽û0;Å:²§Â“ÚÏu­¼¦°ý¬u7\Šnï~® øéþJìý¦¾½{+6í»†k‡“%âJú\K¯¹¥úa¸|°žÖÌòZE†Á·xH¥áÚäHÄÃÅ)Z ¿óçdÚRö£ÙéëREeˬE zÙU‚ñ=JqÂoe fác·Ë-[Ü~lôÁG˜Ë¹@\Ò"µ7³ÆË* Lœnȱï(XBŒJœ»zl\])åºÏô𪘠Ӗnç[£ù­ fÎ#wc|n˜Ÿºa ª.»ÄyÕÐWÈ‹«õ%ûB®i}n¤…º|¢ÎwÈ#vÄ$C9|Êΰã©W'Æmæà–¥D¸ŸÝˆål…‘ó2†ÙÙpš Tš‹%}í~\²^·öc/\‹„ãWymHÓcæ‡ÖЄŒE¿7#wýë^ýŽÅ+Тo–’„Ì~N"œqwÅÎw]Ópù£òTÞpET‡Q×6¼‹Ÿú)=õ™ÂýžíÛaК¯ãòæäž$äFSÌ]^ƒDW½»ŠŸysÇèæÎÚu3\¶Ô󨙝Ì<P[7_‡_$ýÜàĽN’Å¿/2ðÚú£aëJ&§Õ‡…t¡’££³ üˆ}øèº—›Kãu­ûK§F þÿ×ß?@ˆÃ»…Þø(TßMûO8îâè*ë…õü/@䦦áGm| ±@HlÕ…0²Æ•üÄRŒŸºnGo]9h!(ÅŠâõšŠ8—eÿþ7é‡ÑÅ „¿ûƒN_x5%¯âÓ¼šI‚ÿJÿó î endstream endobj 548 0 obj << /Length 1291 /Filter /FlateDecode >> stream xÚµWKÛ6¾ï¯ð­`+¢Þê¥h‚&hæÐЦÚ¢-%éê‘­ÿ}g8C[ÖºÉH±ÀŠçùÍGY¬Bø«2\åq”I±Úw¡•öÇ-~{ó XoŠ›™æËíË×iºaP†¥XmsSÛjõ§÷ª–§Qõþ&Žc/ÿÞß$Iê½”C³'Ñ+£÷ê4þ&ÊŠ(ò¢ØÿkûËÃOÛ‹Ó4Šžj> /KnÂ+`3]eEˆ8¡߇"G§ËTDd Ik[+M!µÂEâ}ô£ÂSçw® .¿H£R­:ÊQ‘ÕÛ6lv#2¡üšš˜3òtj›½£IÐ`aîA<›(÷öSAÃb¤íTÅš,ûF ³ötáNt¬zëMÛÚŽ‚ªÙù›4õ>(h§pn¦_XäJaŠÌFÄH%õx©^ðË5^:f“…†¹d¯MŒ½N6zÙÁÄk›a¤}s g¯†“-‹Ñ•êÙÊû0 %‘;ÚF;Ÿl¾°+¾˜Sò•)}.êÿwsàðwz;_xXá©j=oE|§É}+ñSÜ*AlÙGÚD_,Mî=~ÛúK]¹Æ‹D˶=ûEìýWjÉ5º·¿ÿx3«3’°°_m2ð“AHe "æÎŸ±î%”»mqÁX,YX˜Úh׿owm[Ê ŠÑD¯HIýSËim?’°¤ É¤&có +§Øêtb 6uXôjœzçS7-I©!›MH$@µÉí°[ºÈ¼Ð…°ØsÉk¸ ÇõV`Ë<=f‰<[ƒ8É"ìpJTEÉnò A?‘÷Ô½ä ™ÍShÆk«©ý8òÆîµ=¼íž(ì †eŠA .F*ZN]cÒxqàW©åÑB¶\ Ôž QéR‡å4™ózÊa·OÃ.®ŒËÇ݆¤×¡†^W÷˜vhô±U£µ  ÛLDâuJj»ÄäˆÐˆ9.Ü–6‹3)Xx¹iÞ;X¢G¡ÎP›©­hM¬ÈF·g:g4‹=Œ¾Xá@ÛEá—ðƒõ×úäËúä\ŸÌ;*­z;²V,«ÊÞ…°´0KÝu•æw‰öùªBV¡wš4¦ ¦Oâkƒ‘…–'ˆy‡ë{‰IæBIÚÞè"ŸÕ¨n}KÁ.ì„YpcCª?ȽZ/Fn}Ñ¡C0Ük7vOM¥ié®ÑÚ9½-v|íöENù€Œ®Ÿbì‘Õå¾í 7œ ªÃ³~XðÓ…|:›8;p?ÿØ Ç­ endstream endobj 551 0 obj << /Length 2534 /Filter /FlateDecode >> stream xÚ•Y[sÛº~ϯÐä%ÔLÄ$xë›O’¦Ç™Zm§ÓÓ™B"l±¡H IÅÇýõÝ@ʦÛÓÑ‹Åâ²»ß. µŠà§Ve´Ê“$,u±ÚßDÄíVLüéó%rÜÌ$Ú¾ùð)MW* ˨T«íý*U*DÒIm«Õ߃X¯ÿ±ýÛ[¯)ãß8%J¾˜3ÏV*c•jœV•:T‰æéŠõ&Íâືë ÌZcÝ>¬7Iž¦åïÕéÔÔ{3Ö]‹k{¾ Øg’†©V¬ñËýzEð´Ž‹ ;sã`°õcçeη¾ƒ©Óà_v?^Û{F˜–Ñ¿™2¿TÑZ[15vüíNø `05ë‘¿¦¹}oÍh“¿¿ÀÎgûyËÜÓl1áz£“OÃ~qƒ* U*Äytõx`jò4–} °:¤w œKÎ>VRÆAÊ ƒ•nyÈñB/r-¡÷qAÊ{&(Њ´Ð=RÂi™(ë¾2EìÌ)‡—„hÄ -DÿA„3< ßw2¹i°ÞLžð:´S.u±ç#nÀ„Õµ‡æŽ¦¶uH¸ÛR&qÂ?ŒáÖÎÃ+„KA“¶™`»@WÈžŠ@øzªGê$3·§"T˜W(+\Œ\ÖZWü¹nÌ00ùEª/—Ê.U†*.y†-—IŽÇ7º-÷ÚPÒ{˜C)$Ïù(°Í&Î1.~™ò\l²Ió$øÂã릑‘ƃh>Ïb¤´ïÎnXCðy`¹a´'æûä(ÜpÁ5>qšÔ*›JlæTÑ ›«$ꇓĚ{kçÈN¬~.Î5eÐ5;Ó3§{)r’¹îŸõp¶Gj C”Ç ø…hž25xˆ/u ¬e&;$p(eKСalâ^>YÓ>ˆ4Y7K¸’‡vw)Ó©‚a/*<)÷ʽÐÕÔT—£“:o/. $–»ÃâŽnÛ=ƒò˜¡`]'Û ‡“ß»^D¡ªÐ$©!ËW%WÈÂù±¢KÜIÎK\ÎóLN^ˆ³ÕÃADEûpæCœ¨—‰U+5;?Ñù…Œé‘PÏöWs<52ôÑÒ4@aÉ‘ /Œs81Œ¿ÃI’àëÝíîò–2;PQË×’R¿í" #x¥? í.3Hu`Mœ¼`{àò®„Ä!C»g*®]ä!wÊØªýt¼;’0Ž{)k(M2íj¤_¿˜Ý=3g¡ §¥Ñä…«ƒ Pß ³89 Æ1ëª7w‡ú~Üìßs¦z<Ô¶ oAÐS9-ìç@ù²Å›³Èñä˜O­eZç¤o)éóö8*_¼R‚ò©OËN.æbJ,?¡øƒš‹lôv1E’¹2—¹bÎ\s >_ñn€¸õ!¿ ¤ü—\UÌ’7×ËpË—ÄUb:ï¡gøŽMrÔÒݰ€x»¹Û%Juü=N9©ääÚª L„ ’ÀVžÙ>ˤ’àOº|Ï£bæ.Ðp½¤ ð%º‚Žgpà™}"ȈAc¸;7Ö>@ÏÙ’ ²ùŒ²J nž®Ëû®Øn¿rÔ‚€ †—îE«Åª}V bÓH1o@HœLk&Ùq©ÿ$Ghü@¹¡P ˜^ôL:(#µÔY4ïÀÇ «¨y©•ŠNî"ã÷ (,eŸ?²³³%’)Áñ•ïl_¯+åFQà-g<È•Ý=ë_Î#oqá®[.¢­(àbkpƒ†SÝ[Qå é/?9 üFÁí·_ï¶¿1W‡ñ‡_1‘ZD¯¾  Þ 4\JÏ-Ÿij6¿xôÒ‚3­ªz ‘C_8¼œäzòVäƒö“T‘¨¹²æ‚Y½i‡šîrZ¥PÒ‰ø ’*}éÑÇšcc‡aSI¦¤ÄYÐìaÊ•ØWU%0¥ƒ[Ì €Pv˜áªêÿ¿ò0s¦[:¾Øà«D˜ª¢åoG“b ÇÙ”¾ ƒã(‰ùMCõ¾“a‚Ý“œÆô”OE<ô:¼CÔÿ–z– ·†eq'KÕ¢±–y12 ee× —P ¾ìæû°OM=½ÄT‡Á‡£šÒ´x¿rÃâ Böôn{CoèEG”UöÔƒ‰m%CÏÉ ™? BƒŸ;"hO—¾»\»§7 nü;ÅKß‚³G€ÓQâî\P ÌpæÒ‘æ÷b4.vÜÒ&?\QLÑ«.Tc1:óàÀ"cÍ/Àzþ¨ PŽoi™„ëì›=DøúdÌ7-Ý>Ë6Zì2J]éÔΧ°ˆ<’Ž,òN…LþH¾ÊÇ>6è(±Û>Þz÷URвHä<ˆc׋26* ýñXÄè2ƒ'É…mÙ¶r% û>cÙ3Xq‹kë¯> ÈëÁ;¼¿ÞO×zqÎ×ÞØ\<'0Co]Ýë6¤õtÞ@»„¾`Ñú¢`ÑwÚ=§kº›åþníz¤'A­ƒiÂY éùyƒPU‹YT*À«IÀ¥Vyä”ð•;¡T‚?Ö)Ô+ÍÙ¾•'Ï—/*S…Ï!÷î@EN –ÐýgõÔN# endstream endobj 554 0 obj << /Length 2437 /Filter /FlateDecode >> stream xÚYIsÛF¾ûW°x1Tc2XI07E£¸KÃB a¸ñ}/L®þ³ý×»Ûm'B†o”w^»^Í‚h郴"ì*—A³°é2\†W‹dz×W‹À+ ró8GÙ O|B©×‰g÷Љ/­-u%ƒß´:¡èçæûëå*ŠøÀ-}úÞ±©AçÔËUÑ6W'Ó¶æß¬(˜@ÓÐDÎfŠ‚§ã¡rmTù"ß:Þ&;•ÇŽÝp(LkÐ@Ù8=õ-WGË /W ZÝòà€ƒÖXTô‰–A°>98—Ÿ`kœ²´ñZD⡵ÖMžÐ¢{?YE³%Û¡~22ÖOÈP1ÃLøeÍNY¦ÿô?ãÕ\7y)'´Ý»oØ«¡ÂM¸\kŸäþÇ”¯6Ë$X¹º2ºPpX°„NWÞ5¹ù‹>K® 2Ï"ò!¢ÀÛ#+UìyJD±÷'„ Ûæ Ò(ƒ¶1ªøqŽ {µd[¾0Yg˜®å·mxY}ËÇR-Y/ŒúxÅ«Pb0L!º 8ä5í‰Ä%7ef “·I Ô§Ê1ô<•[ì•0ß,ƒpãÂc4ŒÐéàê %á ^H%ª(xö¼r¨ÅkºâÄ"äW¤È¸ŒÆûrwûù~{{÷ÃÇÏ¿«ŽsÞsÜë²6õqÏ'¦‘‡Þ Bïg¤Ñ¨¸Keý¹z`ŽÄû/(7 qVNmœó ÛÚÕ/MfA§ Y>ð¤z&7U¼µó£³+ú Ï[Ñy†ü…¾ÚÄ1›,×±ÄÌ—*ÇcacŸŒ0Ø“-Ÿ](ÀL޵U<°{©%¸ G™Éo¡LÞèš>I@ ÷©|eåY×­áe£rŒM‹y[ËVtÀ ¤ãüÃZR"t: òKh ñð±ns°Wœ½v¸Ð•™'}d Ë"ýR\ÑÚ™X1|èvµF¹íBŒ=!±“NšnŠÅœ™–Åxeš*~Pz1fÑ*ö¶_\ÊJÃsXˆ€Ðr«dô ZñÓH03ÑPÎÜtÒeÉÔ Àšœ £\5–„dþ™íNâƒDãµ0æÉ“®!^Ô¨"”ç( 9ÈÓÀ“ aÃì¡ZSˆQ.2|(õ‘ ÍP£ÏêDÙG!äGÞïí{2fgäUµÕ\T"2‰ë0@PV ‡ÐhƒX•/^ìF#Ó6V™û9 AerŽáa·eo˜~àúû4Œ»¦nÑ182¯K¬Ÿ18w% çlÛTJÖáh«Àl ‚"г‚N€šÉ:vIüÝ5Êõ‚4M%»bŠÏ¨r¼É(L¹-âvœä6sÈN¸AAÃ̰ S¿m2£úvß9ˆ»ÀcSxk˜ëòV}³¼Þ[Ÿsáöb_“œ’Àû——›šƒ¨©ËR5óèÑ/â7ˆ:° ¦Á/B[²¤=¿NH~ òÔqíØûàNÃ-¿ÏTÝš™euZmu— ¼,ûLßMP‚Ç)\F\~øSHTÖ•C£¤ÀY¨žƒ^ŽÔç+ÀYÙª7‡èÿ}?ûÛ!úÖŽ@v PQ£ÁÕå9nV°«®Já W’!Ч˜`©¥@x r»öø²»`g×b÷îR{¬ƒ-ø;¸?qƌٔ` gž·Úa¸Ë;ÀwP~:€sþFô!SÔîzŒÎ¤\>Ž>¬Üª«¶@¾`|Bs¶¥eîµ¥UEÐ’éór8ܧ±ïÀR;Ä~Ä8Òx±†@upF^©Ød ¦Žó£x`~ì+€Î[wX!­œ5u)A(é„3YöúÑ2)=&qI‘Äl`%Ø^jX"%%qõ–—¢Áf©w}ðýpwÆÜPÀ¯ybxÕ™DÐNnŒêaSˤ†|ƒ;“+n¹½L‹s¯¿-'’éò‚¬0AFóbÌa…¹Ã-”>«Þ.ky̨G$©„NõáåˆèzlÞR9w ,Ià.°õ¿g‘Œ<\Èe‚ÞHè2ï2 k:ã(šÈÖ.Â^ƒÒ¾³„¿ã\Çë5aWN|ºAÖ¤ ÐýôY´ç“x¥¢ØŠaÁª_"xÚ;Ø 4Ë‘÷h'¾ ÛL(nU@¸‡šq>!Øbc»èß®V£7šÀW(-tÅñzò£§º‘¨ÎO|BàÍyNËiÚvïN‘÷Ï&Û9N™œÈ!4ä îBô~µÜa– ÷Á[×¢—SÿÐÑßo]ïõ§Š¯J XÖÙ½v—•F^yqNÚâÐí{ÑË {Å¡Ÿì{s¶5ïCàœš”îáÀm.Q$gj•ÿ¦u‰…Fˆjé“Ðv iêdz|³Y#EnæÝÛ6ˆW©–À¾¾…[ö ÚBIK/4(Ñ¥Ì3z×]˜ÑÕCD— âmH*q`ÿº"=u}ÿf ò_ƒ$Jëp³>¿Šà–ýpvô°¿qŠ3MVG"ï^pDï‚ðû$Î/3™Î˜3]¤î¯Ïùø;è¥smï¸TV™ÉW½ÌžA³ ÐðÝÆ#¥ô¼oqĤ2ç^ÅÍò~;Òåõ s¯KøÆvè‚§*=÷unä•ám†îíîóý—SEÚ%ØaðÿLïëRÏ+ÃwÁ©ïœy‰+Ø‚ ªX(ÅD´¬íë %°°[­‡e\Êe(wSv¢ÀT¯ ¦]$EÒ½#1åá©Ï±T$®E«‹W,ùÕÿ›ßû endstream endobj 557 0 obj << /Length 2806 /Filter /FlateDecode >> stream xÚkܶñ»ÅáúÁÚ +K¢žnQĵc×Më¹k‹" `ÄÝU¬•’Ö—û÷™)jOçÅ~9‡ónxÀ/¼*‚«L)¿ˆó«êø, è°¿âÁïž…‚·Ä­ƒù—Ûg/Þ&ÉUøEP„W·;—Ôm}õ£÷úPž&=l¶J)/¹ÙÆqâ½t95Ýž¡eÇßW§SÛT°Ð ŠŠ ð¢tóóíßž}{kYH¢èä1ŸÙ4ýPÅÌì}ÓÕý&ʽ{` -¼ñПۚÇÕ&ʼCÙí5ϧ^¾¼î»NWÈý€,ðšMèuã &¹ ýÀxeWóºKÆÎ¹á@9¤?O­žFžüüÖºÕûrÒ×(¸ï6T~˜ð-è•„xÔÒ9/×>H¿H½Ø[MŒBÜ«$\ýa±WN¼6š‘Ñù2}Ó!ƒBâø<óÄ܉ÆZh—<ßZw<¼‘é`œÎéÕ<¾]Ü,ä«¡e¨B ÛEì}¸ùç}GæU(!ƒ<€2ˆÅ¡o[^޽þn³Mï¸üÈxƒžÕÓ|Æ @6ôÚ‡M{ „8È ÑØ;ö¸8^‘ÔDï׌uwž&8{…wÚ6QÑf4 ãådQê½'¬|ÆrŽ@ÓºfèÈSžô»‹=Í…Ù!쯇j¢í¢&&…w–¥Ô"¾‡ûº?4®äÙölŸFœ§ÞØ›¶x½¿®y $HÑSfô°ðZ6’Íá|£‚Íš%Ä×PeÅÃóC9®)àŽE¢%ÜËZû„Æ#b@Nü,ÏùƒñÇ8ÐÉ4pÜi]óˆî–†@蓳^¹a»¡?2"3Ì8 뜩E °õ¯ÓOAëVÎ#K$ŠàÌB”ññ[{ çÊÊC>(ÇV;ŒÙjÁó<·ñ‰mÿ¢¸ ó Y²Ji[~èY?UÉã  0'aLº‘áI0ËÁR§päYYˆ5G\˜HØ@„^h7SÉ#›aîQ©S9ìõDQ?Eb P*榘k„ïQÍq”˜ zm3 ˆ“C ⣻Rš E°lS''`EÞMF¤£;ÈŠL°М#@;ÄQ.¹!£Ü¸Íj Æ{±¥|9U×/ñ~q©£«Pë‘uWLf£h8¸7V‚‰«®QÀ8­´FÍıò¾—´ Öäiaöd n=™¢ðP®æñùÚäPmcUüpy5<,¾Èv¿Ñ ®Ù›îÂ_/ƒE<ç{rìÝ=6¦›™Jâ)—~O%[Â"¥`1ö<’Ân›;.À8uã× ’6/«‹¬ëâ¸yÛ #…Ž4Àˆ°\fbúdÉu{!…T´ÏIª}[Ê)rЫ›¸ ãT’Üðk’›Z$)´~•yïw¼âxè"+“ø`°(.œD˨J,MÀxIÙ©*<ƒ*’˜ ®XÓîÜñ²m¨êÇ{„{mhª”ns„—q¨L"e0³ ¦>auA sõo®ÞÖ(þ,w÷ .]‚„W®S뱩´$å”<íݲjõŽ‘Çn•‰k Âãìl·Æ~0µ|ѽæ–3Æþ³é®É%^¼ÍRt evÀz”ûaž2빟¢DÞM¹¡}æþ4KLi‘xû~8òK‹V3ÑeK‰ò(ü0*˜è+i”¢Â¸N;+µQ™Yµ¶ˆ“#NÎãÄèã"3)ÍK>ó„0æ ƒ›Š¼w½ ö‹ ,0~ê9ɉܕ jYîŸëMO¼Vgi$© üÇ Ž¡"*µÙM¥ÜÂÜ8wÀF4 ˆnˆ¸RÝ¥^-ÆxÞd?•ßX6"N/©·#ó€”!€W2µ­þòk0)}ͪ£ú`Rn «è½ Sýš}s÷¡BÈ%e0c qPÊ/ß@l ¸æ\ÏÀ÷_nßßþýÛ7<E^Ò+/AW(*Om@Å1‡Üž2  Ýô yh˜àΡlã °YvHu˜XäÉ|Û\ì’‘ÎÃÉÄ:goJRgÄÍU«ä€aÎP±õ–/Ä…ÌÄ…ŒãÂ;°¹Á¼[%ùþ2‹XD‡‘'¦‰qâHÕ–ãè)zÈãÙ­A‘g¾uÄÈÛúG„™l F)€E´öê<œË"½žY`ë¼Ì ìûiÒ¡kŽ…$¸ÃÚ“\…ë,ÌXÈ ®hj]òˆÊ”(â³bp{Wžn9SqÌ©eº3Ý‘ÕãþÜøü’øNªLì0¹¡ë©´p ¦ØÉ4ý fû¡é°}ºp¢pšs·eæÑ¯Q•x&NlþBÌn´Å >ФŒ·xsÌ ÄD½oqÞã6¡dPŒI®íÀ“-µ1€³l~äÀyÎ @rÒÌÔÛhN8»Ïæ8@+\ ‡¢rãÅszÝÂ×`íl祷 øgî ·H2ü º»XÛ<ŸTòÔFÊN· –·Ç”ã3ÚÖŠ#qÞˇ‹Wç¦I6GD»1ɸ²mn “ˆd‘‹³%±ZJü ,™pÑžÚ»¦|#ª+qR饙I¤™ç<¬a»Œ–âçÍ­ ± xc·NÂZE;»ŸxK½,ÙÖî0çC3_Š)1ÁÄ\š¾!"üg”Ø0Λ'‚ k’"2yÛ€AÿiCúçz!C` µèt€¤Aât°X•ÂkûŸJ'àk˜vFzÇ[‘¿›D@Û•çvblh[ ²kèòƒ¼+G ®Y!OÁ|Xe<£tzDÍy…ô»9?”•V$ MOÿaÍó± ðµºÒ]O=8YX®‘}ÇÁê ¥ôS8Nä<:S¿­µÙ'ÍöGɇ©›£Òr<óî²±^ÉŸyy;4øÏù΀ÓA² É‹0êØO@uU[˜ùŽG]Ùl UF3Ø›*sð‹¯ìŸä½íÍ U_K’ V¿z±v0Žá>îuà|òš0„¸Eµ~æ½W›„]QƒaÜå[ªÁŸJ¾p“d±9ôÇÏø¢(’*2?u¸Î0êéfÂØûoÄ{É÷úæãÇ¿j§ÏŸÿüÇÕ{%¹e³ž|~$±½œ±uÌÔÆhð©Å1JÀjÁÑ/ó‹i¹›L(&ø|ЦNèôK“•²LõFw¯(Ô`cÙì$F¡ æ§îjWyäY¡?4]Õžk½&ä8õÓÔÚõŸÖd”"‹ñêtú®™^ðÇ?¬‘Ì$ÿ¼FôVøAþ¿|^ÿ.Ÿ+IcÝYpô%ªÛ0Jü8O–¬~C/DƬËùEìò¤5}lç‚ Þ¾©7ôDÈZ|êÙ®©gÔ]Ítñßèß*/› endstream endobj 561 0 obj << /Length 950 /Filter /FlateDecode >> stream xÚVÝoÓ0ß_õG¢%n¾ÚñÂ÷€4A!¶7qWƒcG±³®ÿ=gŸ“µeChÒlß÷ÝïîR%ðG£e•i:[f‹¨jÎOín"¼|¾8£An ‚ÓÉW«³gïò<¢Él™,i´ÚD9¥3w¤Vuô“ÌËøzõñìíj´”ÏçÿéÒIþå³È}Ò$n‹lFÓ }nœËÓè |Z€Ìe~ÞÆyA˜ìy‘¸‚ò@ιÏm‚4¬A'ØZò¤ uX¡|F\(ÅÖñt^ÿÛÃXXo¸¹wã’šRÄcJÓÍ)¦Öp»…p@Ó—¦GÅNGBÐp®½p 5:Ö¿½û`E+„SLO‹„½WêQŒÕõ 9ø šÙ Uk'¼›ù4Æ,îq{)v€Ð9QÚú`€ÙáæI%Q¬ L½AŠÝÆ”îq)@H<<ëÞZ­.;n ¯Ï'‘dð<6È*+|!€¿ÛŠÊ%±Eˆÿ &ƒÖ½ª±Å°[–CK‚¡øJò=ø£D!WØp<[ ùÐM<AN˜?F dÍ`¢dxbLÝðãø\•pÅé~Žæ9 åA îCœh(ë^xpÅÐàÂÚVŠŠ…ª àu¨¸væöH¯të_ÐÆHðY‚Ãçŧ¯ Æu©ÊÁ¾ AÓ©>Tø€:ÝÂÚ@¸/ŽA‚îð\»AÙã½7\/;Hÿ,Ž×\9mË»'Ay¨3ÌZ¶ÐõYB]×)©y‹©êѪ/œbƒç0kÃj;˜Xa”-Ž›Þ0HâˆmŸ%Ô/#Á¹ÂÝ%¤Û]Ø®I¾ˆ¦•üeÛN‚ªÂÓW5KòöŽ9‰ R ظVw{|Â\8Ä(yƒc[õ WÓÇQ§,¦% ¼0°ó`°|…· Ý50k9\ßëPêM/åÙ7@éP7HÚrä‚1ßÒÎ o´GÐ-¼ÅÖkX§PýÀÁhsßµeALƒ{(>hdXoåAß}@ñkÎ1 J>›¢è‚6m ƒžÆÏpw0U®ãÕFw™¬FÔUÅë‡r9ž]h0Ö¡_a‰¾ó!»O?­¨Ìlø‰òÇ\Ö endstream endobj 454 0 obj << /Type /ObjStm /N 100 /First 869 /Length 1419 /Filter /FlateDecode >> stream xÚ͘K“ÓFÇïús„C¬yõ<(Š„G-¡Bª(Š$Z[تÉeËìòíóïцÄ^í†õÁž™VOOÿzz’%#¤°ä„6(¼ÐÊ¡ŒhFaÆ¡í´0ÛÐq4üB@é‘EEUX¯„SR@ì¥ êÞº—Â{˜ñV‚ŠÑ:ÆXE 2ˆt¡T†0¸„˜+ôvÌ©1AQ DÝE¨ ;­Àk" G¤±¨ Zˆ/*ŽÖ° O¬áÉ•xd’2¦Á²2?"ØPœIaXâ4–Z‡@‘NS…A5GÑ%Í’® ƒq$ÃHœ'š­#„!ž{2ÜÓ±„òè†¥Ž‡á1=9À#ÕŒ,ˆcä5…ÑÉKpó#ϘHò˜0²è0yŠ»Gbc4böÈzáØŸc¾SÑDÈ\ÍÉWâË# g1!N9p9ò,ÑHs&–ŽsH(eÐÝ–òã9sëâþ}Q‹òi÷ªåqǘ»âÁƒâΛÅÇ?¥•³®Þpù>µªÕjÙL«¾éZnN×ÕfÁ•³EÏ’ÒlvQ4¬X-S«ï×Í鶬½ëÖ\Ôí´›5íœëMûIR¿iúÅc”ë{,t›¶é¿”=ǦÛMß½OµeµÙüxw_®§Ý:u›7êd.ýW ªZ·Î}Á·¨ÕÓm;[V6«zÚ¼kêÙg¿ž?\­~iú×›zýhÐü¯~îÎ’óÕ¥0~èšdoÙUÿéF/”« 1]Tí<±ô‹z˜—¶¿4?CšÙ¼î¿aøq×NëUÒÖÎêóa˜LŠ~Eùêãªå‹j^%4úºí7XŸûûË¢|YoºízZoÒvœD¿Ö³¦zÔ‹8¥…úmkôE®'5 ÈÖŸˆÞÞ!åo¿ÿ!°–þî,ú~u¯,ÏÎÎ&ó›O½štëy™ÖÀþžàğȘÃIÀ±ƒ³nq¶Z™Ú{yò¾j–}wït;ÿᓟP²7—ádrwÂìÒù¾ c³„ zìr fzs=zÜ”Ì"1ßçø4ß@»<›ßÄ‹eŽF£ÅCšµh2´¨Æ¢E}Ph.G³û¡EŸ¡Ñ5òÓör³¹I2ÏÍFSRn’Ìr“_öÆ¡ñ{ãáì(xËÑìh4:¨Y‹9šiÖTö@JŽESêfMQ޶ß]Ÿ”ËÐìMÍÚX-sœp%œÏ—wþÈsÕK»‘abÓ·5 ¸YcÑæ/'©}KûW×dþµë¢¸Sgï7É›È4ïêZÍ4­wÓk}8/ ¤ó_ÛÑô×»”Œe0ùâÒa4C¼†ìe¿Žd0ævBÎàöc01cð»WÒ.ÿû‹Ùü¶r,±Ýý n§ÎwÝ;l~F[3šþƾµÆÉÓ׎N_ëoûÊA*ljcqHÞòJ£|$=šÆÜ6Ïiöû6E2wË4.Ï4ŠW¥ùÏû‚* endstream endobj 566 0 obj << /Length 2472 /Filter /FlateDecode >> stream xÚYÝoÛ8ï_aäeeàìê[r÷Ð ¶‹.éa“C°èöA–[WY4Dªnþû›/J²­t‹q»Ý‚‰ß{ˆÜ WÉ>¾yû!I¿Þø›`ñø¼H‚`¤“z¬Ÿ½0_~yü×›_MIþä’(yµf–.‚lIŒk‚Ui¯ƒ(æå6ËU’†Þûå*ðZm÷ª[®¢,ñêñQHÇ"ÿåí±0V–;. Yöу\)¤ ¶ÐÀBñtkË:CMÃú«ìÛ [ôAÁNðRìDpL'ã9fr_igßeh3,\^ sÿb:rðÚÐ/üd/Nø³R;p¬ µ»F‰gbXì ÔÉÐàšÓé#S.› },aý•²†H =˰Dm1<“Q›šs²jùý‹`EC¢þÀ{NP@Í ¢Hz1Ì“ —H*_º^IH€Ÿ­:1qa)|¦ÚI9_8êdFS”tá'Ú·´8¯@òÂ|C‰3Êu˜2:€ÇÑØg”þÈ\ Eü®È»§–ðzã}jKÅÛŽ7Ø8 ΀غ脸œ¬ûm#‚%äR”ü*´ÌE ±¶NŸq˜gíŽ0,¸‹Ü"ÈOrÚÒ‰yÇ &Yg¹Íèh˜S¢µälø(Æäøj)ÁÍØk‹ƒ[½½º¸“³øH§€¼ÂZ¨{«ŒL‚ømØXZÝáÁÇ©wÏ~`¡Œgàs«¥í¬†ýLïl…>‰¡rq{‡¢JûÔ§rBqäݽ\[0c†¡JrîŽCÙ°Kݶhä2xîôGD$¼Hï†-N¬Z Bõ@éD׸ ÌÃ~š‡Â—½Q~‘ãnkûåï?aÔîGF‰Ì{Fz#µ>ÓrwóÁælb°4—ÏVæñeÅ2ºlzêFP™)܈€;°ç¶;‘C>:õ¬ºÕëȯZÎÇt:gÙèê×!AܨŸk]Cn]©Uu 44ªÒ–¡þ(púWÛÂ1 °ÞéîÀ$/÷£®VÞ’n;U Ë?\F”:}~îô±˜áß³—™Š§Ôâ’Á¥ã;蜹‡•³)˜8îنܻÓtûª¾Q7ÌòÛ â`¶ÃÖĽÿ:”K' áãNÀFÇHc%úëáh©¼ü^CsV}ìœJªâ€Sð;¿<ÏèSm÷sÆë'Ì|HÊp9äÕ¿)âyà&RNØq0iêæ· ž–X´ ÚLx$Nè |é©]“¦›ñå!ó'/éfÔnä¶Š™¯¿0P($®ž⸠+ðû4À³@ ð\/5ýTH´i§U^¨€vˆå’NãöÉ1Q#ÿü%! ¥ÚwŠƒóÎôdso Ô\S=™PýÄéMààÌ|,L+ނլK`ã£CLqxÛh£n^ψ¿¡ÅÔ0wºßí݇bÂpÅL¯Žêh˜Ï>¸Äp&loE™»¼” ©„à·t ´B6¶ÍˆIÒ…¨ï¥:þ €–„ã¡0 ¸ÆŸiÈhM,aÆ[®]I#O9\ÈÑ,.'€ª¢€®ÙTg>tùu:@¦¾÷¾’×Bžft6̶Eƒ»fÜÜ:7»Ça69“‰èçý<©U~àréW°ìž\“0¥·¹$̈)^Ô¥Ò0Ž—Ma óvšYÛÂuˆøeõÅŒóW äà+ ÑF‘å@ÔÍ|ÕëÃs2>°Ožƒ¨ pŸŽƒ\Tc;à”3wÒ_ÜB‡†à‡·¸±›³.%ãG iørø·{×a9 Á‰Öá>t/3ˆFÒaÌÈf˜ÎƒÁ^¤k+/2Cÿ‹ÜÖE ~ðÿ)ŒL¾?sÀÝžH¿a¦'Kê‹cDÍEïˆUå€grå!³¬Ý?šþÕ¨ D endstream endobj 569 0 obj << /Length 1795 /Filter /FlateDecode >> stream xÚ­koÛ6ð{~…×}¨\ÔŠDQ¯tš¶I·µK†&@?¤¦H´ÍE– =äßïŽGÊ’¢< Ecòx¼÷ïäÎøçÎbgzžóh–nö­V3Z|ý´çj¼ .z˜ïÏ÷ö}æ:vìÄîì|Ù'užÍ.¬ëdÛˆj¾ð<ÏŠæ Î}ë°(›µžÉÍ6´>Üns™&,‹ù‚¹Ì ,Ï/ÏÿÚ;:ï¤ð{¦¸ˆù„¼®Ãá”Ï‚ˆÛ®ÇIè³[Ù¤sYk+æÖU¢v×´kJý»´(¯æ ?°þiSäFŠÛ× «#VAÀ Piª2_|¬’AÁ¸ð•EVâ[ͦ!Ôi%Dñí3[¸¤ÇÂõl×'5®Z$í3"í{ú&v¤_ÖtT‰m%jAj ¦,FW²s׈k‘Îp€:Ûpæ0ëO}¹»”–EÖÑT= ZoÁÁ‘À²"œZä°SÊ8Z —ô 2‹x`‘¶ÉECgI‘Ñ"…š³Py ¶§×¶¢ÙÙÇ·½(Ö~NØ þD±ce¯Êj£)×tÖÖ²X¨C+’¾Ùón.ªÞueÁÝnm+p‡ï«x!H&+eˆ»yÄ-»3Hªý$ Q%Qñ\,¡ŽC:6îª`AˆÜúî¸<õPËÌ`BtIð54ñ@q#ËVS¨ñyYé°3𣹆©Ö…(c6×®mf»PÌ:Äë² BxʆVѬ1Ž™•@E5ü~“j ÚÄ|˜çhÏÐL†"#å%)èW¡Í0þ^.éW ¤.¤»ÃïP1Ò¼¬Å·.0^€6±£„C-ÜÎK†­áŸ×åHÔx" nײ«Ià ôh™dõ(n1îö tîÈÄ҅E&Ò<©Œße‰·Ô(õÈÁ%ÆÏ-Äž…›[ˆJ¼ÔHk:<¸—]:f÷_éšÁ§¨•«µ2„&€õ¦¢äÓöj¿û&K•Eš·™Ðn únå!ÜP˜¿MyÞ·CÖaÀóY6ûôy0A2ü}Š$ø%¶Àèû|1_<)潨™5Ĉ% ¢:¶ã -ún*ÚÑ%†oØO¥Q-Z˜Ðò™Á_× Ûý〯ÇzùPrîÈ%ÒÆÿ&2=ë-1¹¨Û-•¤jÇõÒáY¿¼ÕeYæ ø°<Ï'Èsqrö¾-2Ó©ä{'òêêv@ÉñnÊE®Ïl? žïúQµ˜ ¦ÈfÜ{”bl{A‡A… ’Xw_dÕ0´.ɆoµÑNN²´b>n~Øt'g_ÊZoÒ6œÛAüYñOU^AØîнǒbVTË$L@ÞœÀû^hŠ7º³ #;Œ¢ò•hÚªè‚íÍ3"õtä_ ÏÚà›˜\«ùYÜÙi•‰êû„JÊЫ‘uù“„髈ÄßA3žÀ²km<µñú-(©—+²Ð1]dF;äÀ‚˜8 @sÀ¥á€ë^‹[  MC3öÚPD# (ö¦lœœÞ»¹Fa“añ´ó-n Õ,sÓjNôÖe¯Îõf(<`:ƒYáÊÌØâ¡06mQÐ+ÔZ ½|¨ ĶËô§‘s”çnkäô¸«)p Ú͆¼Á™õïÔ‹Çvìwe®ÜŠ¢úLϘL‹á:¼t]Kò’8*ŒEPÏÚXK’ËBŸÊ1zoª5A ЉÉvÁ€ p Yƒòfö€y¨ÿ-kO ⼢؆=xÿÖe›k˜.nå5mÉñ ƒÚmpתOkºšËkÜÀ¸Å´¯›{aZûÌ:ÃO¤íýl¡êÁ¸šOµ›‹»j›FM‘°^Vå†VúŠoýM­yK`ªi°¸C`Ù* âå™Þ 1 ‚o$”>}SW+îIœrK»v‹«xhºÊL¤e§6l& z¬±Úh7©¾™$ÄUš¨`êOA±ãJF' Ñ<tµ ?ÁÕÎÅŠrk„èH÷•Ä=” E2Ycb(w$•m¾.þÔÀV³ endstream endobj 572 0 obj << /Length 2409 /Filter /FlateDecode >> stream xÚ­YYÛF~÷¯Ð›)ÀbØ<ż9gv¬g×I€m‘­cŠ”'óï÷«®j½ñ »úªã««GmüS›<ØdQäçñ~Sœß–Ú=møã÷o”¬Ûaán¶ò‡Ç7ßý˜$øy«Íãq“(åÓ§[õXn~õ¢`ûûãßÞ|xOJÂ瀛7wféFe~¨’˜îWé>öUóu*Øî’4ôÞowÊ+¿lÓÈÓMaÊí.Êïq›Ç^û\=1uÍ? s?qG=žªž¶…^oŠ¡j¼TuÍ_E» ÷ÞúÏt²²=þøÞrª Zu’!}·ÍÛ‡‡íŽNàA{äß'Ó˜NËEUC;Ó™~p§óï¹u”ËVy= mºÞ'À˜$—Š|•(–«4ƒ®jb-ŠèhüÆÞÀ‚2 ‹Á3óÖa‡PìÍvƒO`æË.(/óÚî3f”÷Ôóz+&ïÛîì³öÉ’±Åi8i?U¡3¤¯Ø”´ƒÍ÷[ âÚð÷T=|ÅŒ*÷U¸wf¤òŠK×f–ãÁ˜Æ·l¿­N°ò ûªÐuýÊä?.½,ÐüÓ9ÒJ B £&‰÷tÙ¿#”Ø/¤ÍÒ¢‘5r¥>@8@“ÎZ(WÆÐአéÚ4Y2Aæ]ÚKÏô~èŒ>ó÷K5œ„*Ø ¼³î>3jeCÕ”ç<ɦ“ix©ÜÔ˜¹²Öýx‹î†ž—µÛ8!}\=€ùwX›ëdŠa$È(‘\M p°x$°[Ûf±÷@ ÕÍèéðüCm¾†ÌO£ÐŽç˜s2ù1ôkOÿ ââ*9ìÐ’“yÜè³ìª§†,ojåèǺÿ•irMæéççÚZ¥màÐ(‘ì\]·dó—5í ®UÎΊßÎ- f$ö_|̡ʔLPWV"± v9¢éxÂ+éNHu«Ýt§Û¥º‘¥î·,Í(RÅqà}€:ÉÐàÜåö$dà$©“STz°7&¡ƒ:-ÞÊÂ…5‰`ã–hþîIÁº{åé9€1ý &MÇ!^NdÅaÎEÿÌ£H]3®w)†KçÖ×äcçý?âè8¿t‹#¢SnÀùF¢t¿þÂUfž®xÊbW+ñôNœÙeÆoôIŒ°ÿR$³¡”Ko­šÄÐX\0Ù1‰I ™M†Œ9ªbQáXÉÅÅÌ´N.0V½/P«‘‰QJ,6_·@šy£+Ó€]™²g{?Q(OÓi©p¸7f!žt— ]—8•]“–Oì{øø ‘Öâæ…g¬7Òï ë'–ÎrÌÉ|×óõ©WèfÅ×Á”äeÆT7Oí…Pñ{/A! 5µ±êQñX€9Õ«XXåð᳆C 2÷[‹–•+µØ3uo­;È’(+àÞûq»¸ªÇ‚™ËReº:ºI*ýf‘O&†lçÈ9s‘X¬X.©MGñx”8ÚI†‘>"c ,Vs“5Ë[é3²Í6âÚ:vÿ=ã+çøÚûyœ@žÔO³0w¶PC?Eâé{œŸý¥³EúŸ¯<ÜñD¨½´—{n²0$m”–oÐ,~SW¸‚0×;úóX•î]ús­m  #޲ô$„šû…PÁ³O™¯PVÒã]ú‹´À™ru^ÌzE¾“ýEjŒÎÕ òËÆ¸êZÂLªÉŒË? ›¶Ù=uúùD­÷Í[!¡ ½HÛÀÝjïºÖ[$S‚ªMgD’±Åb%•Ïþ¥]ér #¯½y2ql±SÕ"!¬:žì¢w´ÌuÅžè ú%øv‚)‚_´ÿáfÙéû_uða– ‰À(¤/÷«y~D!ѾȶlÙH¡¯ÎU˜fC+¿¤O:źQJÓ]WIæ+å*îk¬w° ÞÑüÞ;\V㢵’̤¸yÃðº:UâåXñð‘$–`ö‰í²Øl<*r@¶sÉ ŸPߨØ¡÷üž+· 3VFd(‹Œ[Ü “uɱiìP¢eË9‡÷z< Ø}Ð½ËÆîyî备ëÃY)Ù¼öYÆÖúÔzBlOÁÿÿÃ8Wh-¡FsF`¢Àç!A&(P^™Èï ó›&‘n4M“…ëm@‡¥s•»’\jÙÜB…¨¦Aae_šºêÄ/’~B®èÍjj6£paÊpi3Î@á,_qƒåU]Ê©bì±i ×z.*MmÄŠ)1Ç”˜×¼dâ%ˆ]ð ~¤aÞ®·½] ØÃ‘ã9¿nÐüÀ¿z?Y¤yç0šÖÍŽ?Yaû~ÖH^a%d?‹ÃPü”(üxy§¶.yNžÌ®{R¢Œ¡uü’ç*úÒrº}²6$&˜Êµî-BäQO^{é—ïLJí¯)Â/4k—´ÜɃŽ4V#sA(öZ7ÛïZ³ µñ×éC¸¹ }U^±&¢V¨åÛÈ n*zþ•§b¢”¥-nuíÞ9ø}œ%¤P ®i6½”Leй÷“µÌçN½}é.M#e?ýõè?œ> endstream endobj 575 0 obj << /Length 2997 /Filter /FlateDecode >> stream xÚYßoÛH~ï_ô%2P»ú5’¼wH³×^Øîb›Ãaq½ÅǺʒo$'ÍþõGòãÈRêìâ‡3Ã!9©è"¤¿èb^äI²Z§ÅÅfÿ*ª»¿@ã·¯"å[ãrÂùîöÕÛ÷Æ\Dáj®£‹ÛíTÔmuñ¯àzWëË$I‚(üa±LS\U “e»±†nEt‡zÓ/–±1Y$Ñâß·?½úÛí¸¼‰ãïÜ'sþŸFQ´Ê.²"]EIн–‡Ã›ÅÒDY0ì,m´ƒjÔŒ‚¾¾oËÁ÷hÓi¾ê¶격ÿà2aÛ9ÌvÄ,¤MSö=ˆuÓ uG‡Ì]£nq<ð¿î ÿ·•nCÖúº±‡Á¯ç¥[^ö*¤Û²¶èôË(YEúøéºáƒëè¹?òÚ¶eûî㓵ÉI’W:ë¡Ñ^ÕaÒqo!¯j’,SäÌÜØwNÙë–ˆ{ðDÁJv¶ÌV™Éh{ëUšc{W¢Ž("¹ýÐí¹ÓÜ~`»è1´+GåX0á‘ÿ•_”ïE¸nÿ±¾ÃW*xÛ,†Nºåqg[´ˆö¤‹8\5·mé6,bW?¨$9P”’y¥ªðGÚ:>G’FªÉ4V÷¤ Ð>‡QÚXÖyV·»ºGÙ4ª6õØ‹ç0©ÃoÕaä‘ìËb7ÊQVUÍ /pôv8¼<6FnµÖVº¨—s°g¬§êZK†˜Dk²š «sÇ=rÛ¿´ÄP·÷JWß9^R×b`â:`xÜÕТò‹±Pã3ùß— h_ƒ¼r,v-”Mwt½ßNU;»š' Ùvó¬ôfÂùÀ¿ä¼S ÷÷B4/4ùíû<» Ù!Å $+æ¡áŒH¼ŠÈ;³8øGvJ võ†uÏ'ÍMðK‹ßßkŠiG‡Þµy’§Á'öÂ$ö^ˆ…çñ‰‘¯2›nÅåéœí'Ë¥qì¬Ó± ¿ˆÒ—{?Öû¡®W’„úõ¾~Ù£…Y·-7öݱn*ëèVó8å!a¹·­ueC÷‘š0x7;žSþ¦lÛN¬¯xæËL™m> Â05êÂc(r~=Àl7ƒ< ©Þ/ y{be'¦¡+èÊúË!üŸõ°# \{V÷ÃoØ[ÒØìRïêÔ*ñ㣘´õ“ÈÌí>eŸîÑ"÷ÒÆ¿0MjLÖR^Ùö‰Å|eÎ>ÔÝQ—é­Ø„zŸžÙŸ»ÕÒ¦<©ò˜HDa—Ê é€]¢•»ÑáðìðzõíåŠw_ôJ1Ÿ§a‡Ø@Oy‰åº£ò‹º,8¼#¨€JçI`Ìéáô’þÄÒØR=¼×>ÂÇ…z¡gà1ODO)^”oË“NêÁZ¢»éNÏ´mk :~]w?>G²Àj_ïɳ:€Ø(•ñ¦Sƒv«3¶§ºOäip–ÄÈ¥QÙ/äÄFåèÜ€iqc;Îă“«úZ‹²}YèwEgS¢Ñ–FArlT뚣ƒ¿$ã\Pð“S('ø‡£Ïj¶J2E í‹ÀʾkFcνfT§Ì£aQ ‘ˆVß *<1ÝKêaĺ¹ÜƒL×Hh«BÇ?©Ï6Qö#ÖàîÞN¸_Ä ÿ=RH‡ëBéñ>Ê—›XäñJ1<â›QOÇç1>i`|cç³Õ'ˆÒ+E±«1'µp‡àÀ¥ÒFŒRÎܯlµsN<ÉÌÜ?Soý§Ä#úäà ø¢Q_3ün` DÿP6„Etö$à2ˆãŒÂà²Æ£™ú£9åa5ñGàâ¦õ»|:'gÓk ›e¢Ÿi<åx™ø{¸tÚoê_L-Òm¿ ªå“PÃ;5'¶J=o«Å·‚éúÿT¢)K.Ͼ¤ëãf8 v㙄$’Bu‡¦š ñˆ©„±7•á€EÛe‹Î)(šu‹Â©¦IÍyXf& äMÖ5tBkÑð·}æ,MWÊSÏ+ž™†)‚S™-Q 7zKr¿É1jH§ÃUñˆ¢™æ,Cnù c¡˜ v7``iuˆƒñdcNųÆDßÛ Ú’Œp}Y"ž1ŸAA-ÓÆd#³Se&xQˆ•é$pœÎM)Tϣģî ßô~ríDnl{/‡º™ƒþ¶óiÌ•“QÁ›ižü®’4‹=þ^¯â$ñwôýë‚Þì´ ¸g«b½>MôÀýƒ+#t2\'çÍ’à?¤Wð7 à¯ð3Yê;úïRÉ82FÊ5‘‰‹õ¯˜ª¦#Ûr_75eœ2ö(†ç.•IwÁ4YÇœMÙ è©ú¾¾ã²GšfŠ×Ò\<ƒ~¾Ek ‹Cÿ£«Åoˆ4–4$çèÇt¥s Ȫ,¥>ÔÓ$‘ˆÓÅ2yÜ@mªæq!Ò)×鮸 DPú˜²0Í~-÷RÓI‹ ѨÀÙ¨;n˜H§@¢Ÿq )4},Æb™¨gYý[Ï“)OþRLøðñý`Œ%$Ä „,”¯³àªï{]b8tæöp$”¼2?¾|N0Ê5]DÁná­EX´lò…³ÌÐÚµ(·lÊš¦´è(àÖ½¥{éæÅBR)É×ú€(Üh û«ÄsÍ\¹˜§¡˜Û%†=€¤ú'ÍÚö-^zÎEÙÔγ9­ÕYMšiDÏý¤¢9ôŠfÜpÆ ôqäÒÏÁÕ„ûïåÍ ýžø™Î£à}í䪉ÑûD‹® k/ŠfÚÆÊ›£À.DF¶Ô šMƒj&«8ÌiW²¿œ ¼f•Ç#ÇÏK”gÅšxeèøn©9ÖÁÏêHÇÆžLÙiNÏT>7ï\€ãÕ$K¸Ê}o|ᘹFá°¨ÑØ;+söõbybÑm…x«ò~AîfP¼TÙrE¢ÞwÓÈ òó!zR¨ºXⳃ>Ô|ޏ0x¡|T`¾ô¤oªÈ`8mlb/< 5ˆ D®Þ¼›(éõ Ë)¬dZCe…<ûZõ&òÁ8«„Ÿñ¤ÎkQÖ›Ya6 Úr¯-$£ÉzRw¢Ž/Ïê[F”IšjH58á6¡ç—T釣óÏòõ5¶ECÈp‰0õQ²½s‘ÝI+‘zÄ™ðõóÓ3³K‹àGWÞ£BÊ–˜S]‹H¸g¦¢nžê©Ókdä '` M:î§µ€i*ÍâÐi*Œ5µOreÑNרª—JA³ZïÉGøƒ wÔÒ2‰Và’)2çÞôàã÷’—Jð.FV>AóR,á¿E `W÷‚ý ­£:sD|“2 wÌ|‚ÂÏ¡ ŸKIºšbEF¾N(3å6ä£\O£ÕË… ÁÆßWü¶Ø²±î s3Æ5ƒÐdžÕLYÙ£Õ6{ô’·Ž4uÅ»Ñ!)>ö»É­ð¾•âò<ÚØy™HRŒ¢_»? ¾ŒI]|šâ‚žÿsµµ›v†¶×c9ùhz#Wq²¨éôú£/º@ç5õ+Ý:JâÅ-š|y¶¬9W ÷þ{ wÅŒ_À³l½\a¿éWVÀÿ‰k$XÁ?ž<8‘¼£šyù„ý%?¸Úâsod&ÅêÑýP¢f5Üœ•4"®ÿ”Õ“Êèð‹´]æë¤ÉgÈŒ0?aL1ŸzÚ†³[ë,>.b_­m^¶­C¼Œ™† ¦;Mš^3(£ «/6qô; ]4ëÎiùÚòE.ƒ°¼RR ¦ð5«”ëÙ܌ȧ.†W•2Œ&“O+ñ7ëåë§óÿæaà endstream endobj 578 0 obj << /Length 1835 /Filter /FlateDecode >> stream xÚXÝoÛ6ï_aô%4»ú´ì{h‹5Ë€µEëmÚ>¨³•EO”ä¿ß}Q¢S§ò #y$ûÝ9ñ,‚¿x¶‰fEš.7ÙzVžD4ÛÝÌXxõ$½(.Í—Û'Ï^çù,Ž–›h϶»ð¨m=û¨^íËc¯»ù"MSGÏç‹,ËÕ‹úvž¯TÙVºæ¥í|*{4•›/’<_e*M柷¿=ùe;^Ÿ'Éÿ´5ÿÛÐÕ:[ÆiƆÚ#\¼VºE{ U›²±7,KK°>/Ô‡y¬ô|«FW=«ô{ͱltßÓ`­¾ -¨Ö ïL¿÷êÆÉa×»``¿cÑ U¥Û MsÏš-k]_b˜ÀíEœ.㜹Ÿƒ½v€Ò•r{;4µÈZ³@סЖ‘Ê£øYv„jp½=°,7Twl@½DKï=q¥DÇ£ â"ãªʆeÓBj°Ÿi鵿 ‡mws¡!åPÛŠ"BÀ›w.u…¶ì[óϠɄ؎h¾æqÉtCˆà—ŨGk~Ñ(eNE¦QëœùBÔSôøðe–ݲõ4%b\âc—‚Ðù#ìl'Vœl“ Ž~eüÀÄT­ëÓÛåq»3i+ØÇg™ú›ªñÀy\Ñ‹@·œ©<[wå O#ÉrñÊüCÃú®£ÇOS_Ù²°²¥l|K9Ûïüã{ˆ1ž½.V3°3‚ºe¬N ¬ÇònPÐÓe‚AHÔ¢lÊ”L]uåqo*P‘«·¨UJrºö´[À`Ë•o¦øP Jÿ"0è 0Ä>ÑbU¡eã‹–=æ *o_Äýü±9Úg ~æÏÇÉó±Ã4T´Ï?³Ò ö¾?ç‹zñœëðé}„‰{!IѸ~ìzÇà±eWoC]_Yû½ìQ~j¡xË„¿ÓƒLÁá¾”yf4¼jJ.ãˆúì,?u‹‘E›O # Fv…‘à þ|rωnèNŒƒ¯ÐrþZ~é1o9Û3¿¥ûÉ7SÞ\wXÂ膽ü*…Þþ å·(MÜéR«ÉÃãw\휆ç\ç*}”³XS!Ø—žü«S9Æ>Œ“F%õõ+=aþKA®íd†'¼7`ÞeØÆÇÕð+Ú´%÷ÓɧÀ+ÛBý釆ôœœ5Eøa³ù-ej.ECø–XÓvß–þÿGÿ èo endstream endobj 582 0 obj << /Length 2541 /Filter /FlateDecode >> stream xÚ•Yëoã¸ÿ¾…Ñ/‘X•¨—u_ŠÜ^/·-zh›E·@i‰‰ÙèáÓc½ùï;/Ê’£Ýn"‡Ãáp8ó›!nø 7y°É¢ÈÏãý¦¨ßDíž7Üøûý»PøvÀ¸›q~ÿøî÷?&É& ü<ÈÃÍãÓ& C›Žë±ÜüÓ‹¢í¿ÿôD©o\9߬™¥›0óU˜Ä¸&h•îc?Œb^. ·»$UÞÛ<ò:óÛhšm¤¼¡zÝî¢,ñîú—mz¦äîßFÓ¶mzT’eG°‡ GÙ°a•ÃJ¡í¾ˆ8¶c%2>ð§n᫼Ò>ÉRÃÑp£Ôƒö‹J÷ýVÞîB¯ÇØkŸ˜ácÆ•0Ûæj¶ÿÜv5ª·‰“Í.ŒÁ²×“.p//Û4òô³ùïay&;š”û±ÊxÒ_@;µÏ=]~²…ÁöÞ³=Óói«öžé¸;´ü-å;m Í<ó„÷ÒùÛ]¬rï¡­ ó5:¤ôÚ–N†xÑpf°É×›N˜N•ÆÍ—ù<ˆš ØLæ~ab{làÚy‚¥uôMÒ>ð[ FGÝ<;úÑÔ¿í“$#³ ­3ý E{àWÓqû¤aj‡íÀ«ZfïM%"N]Û´cS°…°iœÉ"úeާ«Uåi%•ˆ¹°eÑWTŠJ¿2E£á°Q³ ¥E?¢U{%| Ý4­ˆ`E@ÆÙV`ÕŠ;Óðó¨;07HŒ¹^þÐM®˜v e…UÌ“ZþvF—k{C³Gy-Ú0ŠH <ÝÐ,Ü+Ú®3Ç.tÉÀnî³_z¦÷¿½à÷©JfÑ«8zE¿=".H¨–»Fâ²Æ°’!}:U¶Ð¢ŠN÷Gnž¦Y`€.Ë©aùxW#WCgãÀ &ÞY¦)PpyÛºçR휭¼0ô |Gñ—øR%õº–;¯ˆ2†~™° Ñp×PA)? Õ bF…Ÿè1`Ïr;×WÇÌ­•àÄ%§ð¿‡UîP *t/±zÌ`ÛÕè –±ûí>â¤p]´ñ›Ng‡«,è.¼8\š' G*fš%ªC-ÄË›ü'çúoÑ-ë–úiš†Ä±”=)2'ªò±xàæcðÞ¬™@Å™¯¦un8½©$òó([déÚ _äÙæò,Úu¶ta/¥àDôñ~ [??ÜWíAW?´µv´§m(gjøüÊÃðîn‘ —øtèÊëÕôìüuQñdzP9̦¥¨û„ƒ@r©ù+[ÛF³ÓeöÞBn}uŒï¾Tñü¿^(b¾éÄ×NX¥~œ¨Å_êNÅ{?H#‰×h¯ ?®ýôµX¥GûézöÒÿÕžËÕ› æÌ¶å³¾™¢‰Üv2Á±,v"ÈànU.”1?É æ6ja9CwJC7Ý$ͼz-ãaÑ5jʩަl§b‚µ]jÁ»ñؽÆáâWò×Jo'1€Ø`ÂÓ-ß÷E Ô«t{<è'f–wEöÅ«“éyMæ9òÑR@ç}[× ín`>Ä:• œÍQRq¸¦ÙÓµá\ä~ û/u4F endstream endobj 585 0 obj << /Length 441 /Filter /FlateDecode >> stream xÚSÁnÛ0 ½ç+„]*µ'Zr_ ´vÜ|[vPm%ÖæHE¬.ÈßO4•4- tÈÁOä#ù‰“鬑l¥TÙè5ëö 9G;Fàûã2¯HÄâŠy×.¾>Ô5Y6²ÖnY P"<³ÚžýäJ‹_í·Å}{éTWÕŽDæ'3“ªåZ— 4sÑî7²†R«Õ’ßD¡µâ}p~‡Pó8¸‰ÐITk^n–Þ{ó'³TbåàÑù> ñx.¿°¿Ppd­ˆ¥¸ñ=åž°ôDx²£íâ•‹«IV P%Ôdàèú·¢PÕ[…ªí8Îõóc˜£·½‹á@ÁíÄÁDJ‡'QÔ5ÿfS ¢˜®³Ï‘p‡â‡dÃøMû^¢JÉÛÁz¢d1Ô£39J¦rãwŽ€,mƒÇÒDÒÐðykéK‹LàÙx;¤µ%0¸ÌÞ¤Ëþ°ñ ÞSkÅÑ"榰Ï-^-¢ò8Ý’öˈ· ®ºÉßä¨ÝHPxŸ¿HÍ…©/>:ó2}h-aÂ+(E–óš'Фas¥4 6=wƤ¡Ä«2 öîÊǽ°sr#ðù?ôê$ì¸ endstream endobj 611 0 obj << /Length 1386 /Filter /FlateDecode >> stream xÚíšKSãF…÷ü -í…;êwwv YÌ$àJ©,,f\2e‹L~~nK­‡å¾âÂ&¸fÍõ1}>ݾÝ2ÏrøÇ3ŸgVJæ•ËnÎòú·»/Yóâúç3u .Ê—gß]jñœùÜóly—iÎYxÙª–ëìÏ™Ôó¿–¿œ],»‘´DË <ò´&ã– ®Uð„Oeœb\ªÆî|[ÞÕ|!­ž]•ëâß`ß\¥˜TF„«9S TÎlnã•PdŽycêÁ£ŠÃpíø÷«ýFWrv±žóÙ¦jÞ\•ûÇùBøYq[má÷»f47 >¦±þ²z ïç nyóC¼ãÏÿßÿxÁ(Lá,s\fFx¦”|&ÐV½ÈëP‡³>²ž.q„‘ð–åÂS£zÒ9ÀÄá­öƒ°‹÷gHõ©ºß”Eóþ÷Mñ-²aÂØ÷rœjȽy8ßB¡!Óœ»'œCȹc *B[1J¸i7å—«˜Áí[ç»j~ü±)!øõv.Ü,‘7ÏãN¿…À±PãdPCíåx¨Ãù •æÜ…:á ¡jÐy/CÝ–ûãÌ4gÖ½ùBüÚ  Úé#b0£$‚p¢s‹Á”sÀÌu›ó]±êïì¶œa³Š¿g °ÐãdQCïåxèÃùÇ :ѹ }Â9„nƒ®mÑžöÕöayl×ÊÛmÝ¡Õm0q„˜9¥ßXªq6¨©ör<ÕáËM•æÜ¥:r>lÒgZ˜Ê0ãõO¤&}]Ü­žî«Ä.³\|ÔÒÿú&AÃÄrwß«q IS%8ÊɶÃéÐ6MS›E¯ã MëMµÝ¥`â`'O0½&åsØ¿s*M9ŠS«iêÊѹjìœ$ xaÖF¢.ID]Î9W³æ°ývŒ•Ó\Ÿ°zÙkÊ2ëé¬õrœµ¨iX“(k4玵 gèp”´L¶GUwÐÕ>í d}ƒõÄÎKKRœ^*&½Çd˜Gw?Dç“‘sº$ÁNÙÙ¸ñºš.I±pÅóKWŸ_¦;%™öDÖDÒ+梅¨Õ<³®[ˆ¦œ¡ÖH§˜ÊUFµ*ÃRUmš½ôñyŠd¹9§²çÊB/ÇYÆ‚§;F·EÂk Û_‰Èá§tE‚¢a·þŸVñ |9wf¶úû¾HÏ”þè­Îøñ‡5Ê2T[¦ísGÞ­z14ÙŇÇmD×ð`nÊ1pã-pà S>2ûéær³ÛWÉ®ÅhsZ[¨ N—gœ]*"½Gd˜IDh®5"Ž"¹†ä:DBµØ–áqKšÚ)/%%N2•”^Ž“2Ì !…æZ“2áØ’¢¡m‘B¶¤|þV‰Çì*gÒžŠÉDÒ&ØÎ'Š…â ¢4D×Å”c…“LÈ®|\q³-×):4$óñèÀˆ“G% —ã ó@ ¹ÖŒÓÝ©†{žûØ×ü:Ùv"ØÐ¬î‹ªJž¢À†FžNQ^¼ÊhÙh2M‡©‘ »ßš%’en×Õ´™è÷¸+îŠ]QÞ¦Qš wzŽ4 CœL* ½Ça˜Hó@s­9¦k‹²9"z^Sv¾q ò¡‹å³° ÕÛàó¯«MyL’L¼Ï¯ \( “l-•‹å¢ÕL¬9D×ÀÅØá‚s&eô¼¡pq³ ‹Î?É#4á˜ÈOMëkûéa÷àÈg%9ÊT«i˜2)¦ˆ®©)Çvõ98ß»Ö$~qIΪ¯PHâiºïq޽ám,é0³vâu<$òåÄ:Ø)×ÿ¡‡¢ endstream endobj 624 0 obj << /Length1 1814 /Length2 11421 /Length3 0 /Length 12550 /Filter /FlateDecode >> stream xÚ¶P\Û-Ü=8„ÆÝÝÝÝÝi ±Æ‚»KÐ@p'ànA‚Kpw÷Ç‘{Nîý¿ê½êªÝ{L[c®5æªMIª¢Î(j6J\Y™XøâŠb¬,v&6DJJ «ðo3"¥ÐÙvàû-@Ühêúj“0u}S;äÜì¬ìV.>Vn> ïÁÎ| Sw@‘ vº RŠƒ½œAVÖ®¯Ëüç@cN `åååfø3 jt™›:M]­ö¯+š›ÚÔÁæ  «×• °vuuäcföðð`2µwa;[ Ñ2<@®Ö5  ÐÙhø£a€’©=ð¯Î˜)Ö —¿ìê`KWSg àÕ`2:¸¼f¸9X¯‹ÔeÊŽ@‡¿‚þ `ü½7V&ÖÊýýG!ßɦææ`{GS/ƒÀd(K)0¹zº2L,þ4µs¿æ›º›‚ìLÍ^þdn U˜¾6øw{.æÎ GW&Ý-2ÿQæu—%,ÄÁöö@WÄ?øI€œæ¯ÛîÅü×ÉÚ:€=|þ–  Ë?š°psdÖt9¹e%þy5!þk³º8YXX¸¹X@'ÐÓÜšùò^ŽÀ?š_;ðóq;,_›ú,¯ˆ>.¦î@€«³ÐÏçwÇ#DVV€ÈÜ`´9 þ[ýÕ ´ü ¿¾3È Ïòª=VË¿Þ _åev°óú7üÏóe–•U—SP¢ÿ«ã|bb`O€#€‘“ÀÊòº<÷ë‹ß—Q1ýMã·\YK0€÷/¶¯ÛôÆî €æïá üw-%ð«jšEnÀÂÉbþú`ý–úŸ)ÿ ÿ£ÊÿMäÿKHÊÍÎîO7ÍŸþÿÛÔdçõwÀ«hÝ\_@ü:ÿª ükhÅÀvÿë“u5}Q+»6ä"òZ¨€\Í­ÿÒÊ_vÍ?fÌäT»€þ¸TŒ¬,,ÿã{,sÛ׋ÃåUº€¯sóßKJ:˜ƒ-þ06N.€©³³©âë¿"N€ëë$Z=ÿ”0€™ÉìúšxmÎ` vFüã<¹YÌÒ˜þBÜfÅ€YéÄÃ`Öøñ˜uÿA¼¯y¦ÿ¢×<³Ñk¤ù?ˆóÕg¶{m÷?–?ºf¶ø ¾2þÙÌ–¿Av³Õoð•”õoÀ ú ¾Ò²ý ¾®m÷|%fÿ/|æßX½Î3ø7øJÃñÈÁõŠ^¥ þ7ë+çßà+—^™¸Ø™ºüÆ•õµ†ëoð5Âí7øÊÕý7øÊÕã_ÈöÊÕó7øÊÕëOø_Ú0wsv~½ÿœÝWáüÿyž@sÄù°9ˆÍ—¶ÛQBÆ­QÁ)Ê-ítZFŸyçv·{T¸TÚÏÙA«Î×¢©C=èK’4W" $O>Íupá-ɪ­¾Æ‰j[­ˆsã8ýc…¢_¿#1jˆlû>9ùjÚB5CtÊQ~rrãAUÉǺõè“öüú­|q8lfKuû3—<Òcù$c¬fŒA`É4ežÙÇŸxd°®ŒÄðt˜§žhÓW×S˜¹c/$r‰ôˆ~‡±ìE>z¿Øâî~z/Wj°¹táSàëáC]aOPùˆí~Ãõ)-ŽYœÍᎌ\éKú)¯…O毂çRÆ(˜ Ð‰EÑ•ëažål§e>¦ ¢&ù ïJY*m™\M>Tjü‘ôþX=I‚¾½û]×á±f'=3Ú”è¸úrzê´žF@·DÑ’@NŽåý2ÁÏÓ<5ÿ0ô„+_.–²„ I#ü¯²š—f^Ïâé[êáÚÇàl·ãôJ6ß°ldScˆ» ±fvjbè-¨µPÜžã(ýÕ¢wg†þܳaM¼wËFeZMÇX¹4ªkb™‹ì0õÖí5Ã/¿w4¹ã£^‚Æ*l›±¿{ª« #¬f¡;3r  ?Æ(/OøÇnºiƒÝ—Z÷(­<éKöÇ·L3Óö¥F³—¾ÙÖT„Á…kpR+¨I"J©ewìÑ ¿ü ÓzÉlã˜nßÜ2DîçŒü²˜ |Ñ ô#%[ëY©pÂF£žF”ñ@枸yõ#«òÈ­¹4‡¤Ã ξËI–oé1|ÖQÑ›ùšÄ%ƒ‘çÎR¦|š†¶K© ,Ù£[F^ š=ýõ˜ã ?¾HBvëm瀛¡Þu€ÛFøè¢ÉÁC3Bws†<Ž,\ÃÁ•è µ§÷ÝþX1vPÚ¨‹ì1tûöuSïÁA…ºœÍãÑ– ˜Ÿu„`vKŽVñÝb\îA\LÞårs#âe~BÚÉ4º·Â­¦o+Ÿ5vV\ØFjCnXïŒwŒ“#Ý@˜Ó˜˜‘k]BŠž\ÑûÛsz«RkÝšmíéY™\Q6ÿÈ=*Õ©mSa–Ò¶R¤h26´3uÊš1Ž3•¼»ºìAŒh»exU-ʾÀ1CF»‰ùnÁðûÉïÏ<¡¹< ¨T2%ÊŠýÜïéÝŽ¹ÇEí9ÞŽ¥xn¡”É•-¸Uô .úÙØ«‹ðAŽ4GfȽ$H^2RæºÏ4ئ…wN=”^È|Í饋ÏÈo'ŒáFf5t=¥„bN+œ¹• $yP©îQÎçx.bÏèËvãAGsIÛ.{¿‡Áé й Ò]Ç}ÀŠ<ˆˆh±=–l/p.01¸™Sšpw!Ù•>ø)„›N3Ea)™·uþžñ&ÕwDã{ vTw2ë>DÒ˜>Ÿ<˜üö~fÒ:/bêݵ q,3# öIjñ~&_úÌÈ‘u R³×8^è{†• kã,ßë Þ0*Ô§pH‚¨naêKm˯ÚKÕ“ØPn‘ñ‰²vÁ¶eƒ;˜±œÅ †„\7k§Tµša._~C¹ˆ»öÆ qÈ–æGD›Î&釰¸VŬƒðݶª½é»vY"7íaB¼p‡Áìß±ZâÄ~Ur­){0;˜:hqÂøßü~ä¸ 8ŸÄK‰¤§Á­jGÚº­ûHóVC7&Ó&Eâ‹-§ õH±ú~GiôÂïê‹Tq4¦–€;av©A©×ÇÉ’C7éÚ_.W(}©§ ¦õ9q¨<Ýr¸´Æ2Åøˆn$ͼƒàY]­¡Ep· ¼’l¶À*"w¬€¬š™r†Î%áS‚ µ¹[S;´Fyç´`~fi,ׇ&ˆþBûô¦Î©x1 ¿(²^“Š«‹¢á›/ŸéÄ™MŠyþ»#1!›‡É3ît˜KVÓtAʳmƒ™Å_¾šêmÏ×0‘Ü\G±¹tåx)Ö[mAú¨2iÓeP&j;E^,¡ªDö¥{jÕT£[>àÑX~9 t/µ×ú™É—¹xÈA5¥MÀòÂ0Î.6Úß| ©¬Ëg¶aGº¹y%[zqÙ@ ÿ`mÿ´ßtëÈaÇ)³2DöCû£sÝjô”º¶‹¹> $Ià+ gfr>>QÌÝK{žZëÖ]î8c7&€ËfÒfE³dû*„ÞÈÌÎBŒ˜øeÝìÂú0¹€!ºˆž67¢Ÿ›“–ÝÔ8ƒîpmpçúééÜ”Qþ\µÚ/ñz.!†Ë5T:g_Î=îû»&x¨IºÜR‘ĺT3Š[Â/>¥ÆWÓðèÓœîžl\—;VÔf ï{ÂÒû4®IGd—R‹¼Åä0FÑ #ÆtVÑv¦!ÇÕ'q ù˜ÂZ2ó£›ÂnËæ"Uñ/GéWÑS—Ìò0Á-í°Èa}éºá3ï•»’x†OpÀfJ8.lb½böuXïùøõ2‚—pÌÏôY6Ë?{ÔSÚï^çsŒù{àw§É"ï];Û õÔ©|0I{"Pà “µTЉ½Öoèj@FU\…NKmeŒi;+)–€V±3ÒbäzßÓºÛ„N’Ø<¥ïñÖqûCqv—Ü¢''3D8”©Xó_MæÚ‹È†ÂÉ*Þ¾ß'hKÂÑÀaÇe­\]0vo¯i¬™!'g+¬4YµLŽï‰gÀH%”·<#âþ{Û&OÆ$¶<“‰†´ç„¶+8/’jBo¯ïÔ!$Áçß÷Ý› *wÒ÷% ÄzíÖ>"&±:;æØÎ'ÁÔ¾ÀϬ«³4¼«e'­=˜‡5Ñò¥¿ò— ÒÐl{2Œ¼ÒÊ»ù°üd’úK>£ŸŽ·Ré’“žÉøä7~Ò¡škb°Þc÷ âY3’õ€¨A!ºx®´ÀÓ«ÊŸhùÍêðÒØ§Êå¹@¯ó͵6,¯Ýt“¦`9 nÿ¤´’Ìõ)z–ÙE9Õ=ß¶jŽsƒf¼×‹×ïÊà vóÊ)sÕy]YQ&£zNˆ‘²Ó±§Lêú.ÙÕbô ŽH~Fç‚r æ Ÿ¶÷H×LUQI=cò£ŽW"€ f$ w¼r²Ð¼ê;cÇÀÍàèwV‚Bµ36Ï^ëÈØ9AHC%ôTÝåQ‰¬à?>Çgçqô|–º¹ŒÞÂHÇç9›z×ϰ‹2²B߀ŸæT3OÓ˜úÞ¥°è{HŸÁ­eW¼ ²IÄu‘ÒîxŒ³ã¤}2CЫa+¸¬í4ÈLT…'sæf›íd;¥sïjðÉm¨‹ 5Uz± o¨XÆNZ6…ïÚ úo×ihÈ3Øc;^øÊ¤ ±?ô„vá ʾ0à=ì‡k‘ÎDžKóÓ½ toµ!L‚¦C©ÞíGÒñàh)áÍ#F‘@:ã’*YÆ>ÓŸŠs¥¶À›ËÝ8À„½E$­X-8ðF@y’TÛK-ö‹ƒŸ-€:'|ë/áA} í*¼™] –78Œ;6äcO¢ü—CŽŠÃ‹aW¢VnAüE[haB“]ÏÿYEg/S˜ÿWjå!».Åsa'3‰Z8r•°íu!eOd`ìÖÊÍþ|í}›ô!|á§7 j\èHúeÕ‹by$Ö`,lÙ_ß*ØK ÏW™å2XÛ>Ùý 2©ç7±Ì‘.ššr¤C.„)}"N§ÂÅSæm¢¡dêÝh””¼wÊTA‡´Œ h­wG7-ü–|r÷9~ó[?·W'FŒ,ÿ”rP FQ#¬FbÔ=þ–ïwÞR(ô 4Wšˆ7÷XçYl Jï9}ㄬæGƒ`ÃCù1U꤂£éßÌK+Dò ì}nãÖ¡ï]$ÚX6LÞÒ¬Ô˜ô¨²_OÔŽ\϶*€y" SF ¿CN¾À‚µyGòCiµ.;‰mJ5U·½Kj•yåY„ö)&Ì…t>îTM(Ù%3°l‡‚e &4ÍoŠ|”ŒQ$N‰qá}ç<Á»µ}ud»¢ëŠ‚Ö,»;Ú`oѰýdŸbÄýì³›k¶«+ÓÂ^ßÕùÙ`?FÅ2¶Dž§>øÃ²Vž†7îxtzò*ëo4dR×’±§Ó^è Í3‹½P“†@°/Dš_l» ùÊÿjRßo"”ç÷³`¼µ¨ÿ÷ÖSÃgÝã&çäÖ¤­«2ßóø¹Q|\îÝrÜ$[›´ÜÈ.ðÁsntÄ%moo÷µŠÝ‘Ô œëælgŠ›=Oim!¼ÝI;w n1ï'µ(áú’&ÄTäo¿†Mqu_ûþ|<\N”lj¡)pï½”£¥ÞæñÍûöÎnüÁWô'• Æ xƶ$CxÓ z¶¹ùq–´Ê:¯o™åûXͬJü³ŽÎ-[Ý<Ç`–GòñS4iÁI€Êô’©nL¯„ÍvüO™æ«”†"‡³Ùö…£[R¡Æ¥A%PÖ|èQœÁ ƒs6då\c‚¹e»$à3¡Vñ„½~,AVfÞÑäðÏ´ÎÂb¦Ä2»“u7ì §ìÖ ªXU“º{úMºKî„ÎÍ{™ê:ŠÍ’+M©ÑvÓ̼óZ1£¹‘ž8oÅ#tä´O"Ì1¦vÂÄîüãIY*®QfCÈä®®Û`ÏVt#ć ÀßᛠĵxŠneå)bø§Ã#MȬ§¶¯Ž£žÞàt|^O ÔFu“Ò +çôÃ><æˆ*CñTœÀN$–nñ1#½üäJ¸tÛÉrP üpŽ£`•Uû k莕ªtagû¸&éKñxÖ×0]ßWCWh¨bdÖteŒšé½¨èÔ¥;Ÿ._’UÔâF„üûkÌ‘}§îM§Ãs D’”øüãHíÓ¡ò„N5´{ B¶o÷= H8B Z 7;ÇÜ#ÖQ¿`_ ·TonÉöJ8\U•H¸ýá‡Z"Ó£…qˆ5š´Š;}OöÊæ”æÆù(^ZQÇHÄz©¬G=r,þ5RÑ÷kv» q&–È1OJ¤F<ÕGjýia7Ì©ý4tÍGjìt¼E&))š ³ã|‚l5•ªtÅ·g4çÝ¼Š³16@q”O˜ûx•ÿnä9yl=!¬’àI(—»ŸJ 9¾”~)Ë>0¾-Ùƒš¨þò•.OŒ^N­@ƒã§¶ ¤ý#>rnÓù bøÞLÏp£Qòà(ÑoØ`Öç¸ø#ÇôOù­ÂKù½<µÓOÒ5àÍ(B ÁÕÏ;®%æ`?Ú§FŸØG­žvåf6T^ήp™èÙM&/b62袂‰¬Vì~þú¬˜»ÂµF?k pX˜Ml°º>˜±Œ®ãTÁEø±6FÞË`@î£-aôµÉkò1ų­q §[7𶶑̸.õW’Ø õ™Mɪ.·™Uq%w˜ÕDz<4[õWWÿÈ»ó|¬ÊoBu¦èÈLë+üðVú£Ïs¯yÌQŒ@á ü~ ªA-@K¢S±ƒy&‹x} 4e“9×Å•÷’ä÷Jø]¿úƒë•‘ÑÝF¬@˜p~÷$#cøƒŒl9е‹ƒ“Ù,Ü)®õ 5Çx¨}kݯw„ÆîÛÇiS¥Xçæj¬wC‚L­×–G[MoÛDôC7ˆ›szòfÂð ªò Ÿq\E¿8¼£_²íÈ­ß(ycÉíh>†šZŽ,Ým¸É×ëËʲxro¥R5’EüàÞ³ù`i#J9`õþ †6ÇJµuòì‡ÍQ*ZlÜQÿgÑ@aâáÔv­–m¾Ù%V_°is&o¿~òxPn\®HB&DþÄ=¥=ƒöM~ôKÐôÆæ(5 W±˜„u~‘–÷ºù@ë®l ŒôTØ{Ž"xÞXÌpj ‹Óoߥ‡€ùÀ_–ßÍà?Tá§ÚÈ Ó'ߣ§PTn{AÜÙúöÝý©‹8›¼˜,±xWI§=šªwµGŠY–ã׉dÓ꦳r¤vЉt½É4ù!MÜ~Q€õ¥Öðçòâ>OÓ º/Ìk+fÃ@¯X­·:Ÿ[W4lµ1‹sñ³‰C†4Dv{_.Ê– ·&Z‚~8m\™¨1ÊJ×c‰¶ARÂÊÌN6:½ì~q>½.±¥Ö'n íuͧ6S’XŽ øÄêpߣïÛì†o4øEF’ñ#BÏWèfCQÛ_zÔ3ò*ø¬æNÒ¸,²Õ‹(TŠè4ö±´I¶·V½LæœØ8¡Z°ŒNhë:ýUDDª¤ ù'^ÕO@Õçë³J~›Zz¾ýýûz EKr‘éÄÏ̧~!txòMvçÝä2vî)–I=îI¾ùØø$W 1g¸oYlåwt~„=÷ÅÝŸˆöÙÎaœlƒ‡Ç&‘ã&¼=¢¹ºÏc"±q¸ç*óFdh¡׿F w„GK›ÈP¦äVÐ’ÄX¡ÌŠVïE|ˆ»ZØ€$&@©¨å–:Vô¤bqŒá0×™Ø!-ˆÈ\8"Eüþ6AAö„$LƒA¯SR ÂÂEsÄ{Ý„ë¬ñØ3_—cwÜcŠü䄤`xä*¿Ïº.¾ƒÚœĉø‹fѰ—)ä¢N‘FÓ¼úÞ(2ªßÌÌÄÔ¡-Ùë“ÒŽÜ7ìT&îŠë“x>=—¶*ðz+ƆüÅ~R´ âM´HøQN£Mg½¥Fe‡Š8*Ï›DÈù+J#Ø[ÿê½jq+?þÂ.±]òÉ‹FµY·sfrë'™Ñ‚Ë!èî,W­R~\xÐ1—o÷ãHáåp¡]jØæb¼«hü£çì•Ðî&äVZ­³r)˜WÆ$³Ð!2Ãöò 1„>^g¤Qt$)8¡]kv˜¨hÅWÈ(Ø…T»oB»"-ÓÕnÌž!Ö'!eç½u]bÅÆÔ ÇÝ ó#ü"`6eG\…V% )“—üó–õ©>‚.ß ÷ƒêíi¤+µÒ3‚^ø6‰R‚1I«N;Í{1Éb÷ÊZÕ"„·nq·­LCW«ôzmQï~ÍE'ÿÌâ ô²™_L±"9ìïÌ ®š®Æ—ŒÒ‰âZ~ö/¼-0›ãe¯,©µ§¸8kDiÊg¨âÞK Äêø’¢·OÇm@™Í(·ÌîáIôÐ ¬Àç8/©o{­›–Aò±²ST>B/TQ@*ÎþœkR+Îî ªpÖîëuh«ô¥ô^¶ª‚Þ$ùͼç»4µ­E·Ó† ƒžsŠ!¨† ̉o†\© áÕÜ:#F²"Y†À¡G˜:˜ôL~lÛégùÐ9êäB—$da Q×Ì”±zƒEÈæÖÒ ˆx‹‚KÚLƒÆQS2!°w‹ö ÉŸ~Žš]CÒÓ”IZ”æ. /Öì mCÐùýlÔ=Âd^EC‚¬U‡î—<ÈìÔG@ðb3ÀçaÉK–*ܺVÑòY¥E%ÁÈS[°Âî² ‡£(ÍÕÒüÓM†ØeÉ…óçKÔ ì1?vhê¾;ÇãêR]iý@ò@pÿ¼Jš‚ÎúÖ„½‡¹¯P„~C–£àÀ*Ù£ù4”fgº#wy C© KRßc@ƒ}áçóÓIß\ór*ËÞøÛÚ‘ñ?¿ËÝBÁ·õ+5\YV½ }Ðpm•¡›cÅÇæ!~„©£Ö½ÄBº_«Œ ­¿æ>‘Ï>À¢ƒÀhNÑÔ%\ Ð{°[n׿3l1v1í[¨ošý;ºÓ[¨ÏT+{0H>6O/eHph W¿6GˆÚs‘øÉ2¼¾$O™¬ê9,ÈLv¯äbt¥­ÐƒtãÈã®Ëlm‚³;"݈ { Ì*fo%giM²M Q}Qbþ[ÿÅQ$\FR9«$Ý­vX£&Íš^8$;¤=ì ¡‚Šùƒ?ÌTs{¹î”î'J‰Z,´š­ã@ghþ „K»_úF>ž ^ OgX©çð' AΩ‘û‡gcÏñJžÁTÂÛ³¹«µÏö#L¥ŸÆñhK³Uó5\Äç¨UÚS>4®`Ïeá&Íõ [áƒcÏÒ1Y¢Ÿ9Áù(^ñ;wse‡]Õm…ÛXÛ­ì°qÕp?ŸwÁrsU£šƒ•ôz<­¼½Ò8>ízÕ|ż_IP6— %°Ù p:ÞJôD,üUäš·aí´¸pÆÎY³1'tÓµ®M[‘á·Ä1Ó Yó;2ŸYS%;²_Èòʼ¾ 6·HÂlq±Ü+ÍÇøÐZã-#/”ϼ'ÚqÁt¼˜êçÝ\h²Å2Fµ°ua ËÎð5 *CF¸Ì6pe@C£Ø·´<+计,2‚t=Ïâ­Ž¹ªŠ‹êaV³pá€5üÌiï‡âg'”~‹ kÌQY™Î×h_ß§’Çí¦;¾j—÷•wŠé ”¸‹ŸŠˆK‘dø1Èþ}í(Ç!˜òàhs'üÐÒèÐqmë…)ŸÇˆ>B_¹ c3B|ãã9© š…¡ëWµŒ75©´¡N»–%æ;âÉ·»3 „_YCè1O‘ÃVŽæp¤ a¸é1®áËy3½`eø…w䄸°+b´¾µ«¶>$ì0©­DYø›c_æQ m§‡eì^„Ý'Øf‹hØM³>ЮâÓ—^VDí;Åt?†üÞ–b0‘ øy‡4W+½½+þà6 ÊQr<„ÐkI3ÆI)Ö:ÿƒØˆùÔ#g·vÚúíY¿B†ÊÛ£¹eøÔ-ÅðÁjW©¥jÞ?\x²uŠÎEÉhÇ¥ö(ÀSÖ@¢z‘AÈâÉ •í§3‚“ §ÏFs”zÚ¿ª"Qׄ«ë=ÒN’Ry‰α&ùRÍPlI6 =ñƒ¼|ˆTe[?®N…Å':¾í£uuV2Hh¥ïf< >©7)Õ$82SŒ€ÔÂ2G±Ösö¸ŸgÐÙÄ+ËE]Cùx-gÖq­Ür`âY‡ž<òBolu]†X(†Qª$¼‘xë'D ž,Ò•ž %L@ÀÑAœRD3»‘ðP üòº ˆÖugƒñå‹™%«ÕT‹Ý ÃL¬pwIvà7ì’ãI!P8úÄ{Ôp[ø@{¥ŸYétªnQÎêÐ&"8†Ù®ÊcsƲ0»³²Ð톘”q÷ a@\¦]m’ÌnŠK¡¼kâÑöe·-à‚=Þ—‘¢²>eièêè¤{©²Ú ^„åR±ç%5д㤚OÈbp'ÍWv­f6ü4ޤ4èÀ˜‚ÄòÍO# 1<Ôœcå¶—,¼f…;W³J7Uç¸çÃ)ý²C²œSˆ£­ŸóRX“S6“õ[?I6;òè' 9yù¦‚î«âãk(£t ¾Â ¬^µÑ›±`»Ó7t$ˆ+â ãöä'–b1+Þûy~È0Ò¸aß¾øLn â(À \|†HCAéœA ÂÈü`zʆ«.`oHƒ×— %ßB&ÛÏ)"Q›!d÷~BT`ñªŒä§q3A£bø1dæýjrC’Å-Ô^×ìRÑ`C1¸ñ¥àsŒüÕRð^¦Ü5OÉȘþ0ibZƒ(í L&¥}áÅÞ47â:]“Í@¨Ú%pTz«£¥ñ2b€l$?ºH¦+Å#QSB–<þsðåäh']ÝYŠc•JŒ¡?­’©\¥ª‹ûléÈŸ_ í¥yXçxÆÈÿ 0Ü·L`þÞÕû–œlƒÅˆ}Ô'ÿ—ˆõ¼ ÇŒ€áÃv"Nyϯ¥”UJ# ŒÔ­çÙH„ÕrM²‡º8œœsì·‹¥¼´‚Å*¹ÑEãEö¸n‰Š+¥kŒd Cަ®0£aèJeãù)¶9sÕO<̖鮸؄h„E]‚#þÚœöú–Ë;š½³V$ë‹V=Çæ¸Ð´˜°Ùî°?Rù*•^noV¾oµ3 \"2oßK‹rºù?³4Amgp•…`^lég š¼3GtÛªçX@ÿÖ.µOËpó½hÁl®À3À-†Ëd@/µ©9_’d™?š¤ŠÓ—…*ôwÉØ¿Š*ò‡µœ¼¡Ý·;¥€mR1ÓÌ*R÷.?ÏN>fö^ӞŤoÙÏ„õ9+l-ÇRÂeV á­„ÚBµox¯§ JLN¾r9+W'ûйO‚ZÅw%»s@ÌË ¶+ª´ûzõ.mEÛBc%î ôˆ«»q<Ì]úù4ÃrÐIÀzÖ"´Ægµ¨>ʤõê—ò•CL»‡GæÇµréˆÌ ¥Áž*}Âí>YCÆ&-cK¹oÝT»lh›š÷Øœ×x¼Ü TèGÏtøö²Ò…&f±.»Üjõ"=17ü=<ÔçÅeY]ƒ2\ÌÇHƒ€ï‹Q—„6ÓãéCèð2xÉÜó–þéÅ©øˆ£\¥M¨qŸu\ÞëZŽ Gº” ÌåL•¶§RâUÁ¯*2Іˆ89Oé5Eã=Ñ9.ŽFbOì[Þîøüü4fêã;mH¦¤·Ÿ"å‹j‡TÒð«U“]Þ$ÓO,"˜êÖI~SÆóIdl„H¢üô´òV%UÅ_Ÿ¯OÁÏ)Éè–e¢ŒàNoý·_g]DmÔ¢‹©ƒÜWº ßÐlÜhŠW…áãˆSÈ…Z# =‰äÝPA¼»Ë‰¡7²9Ea¤2ÐoržÂï¹^(I{Rcš5O8ª¿÷ÿ„¦^_Šëª•Ãô>V`’³ÿRìoS„Ô ÓÁuÒrAÈk[ë'ûv!ÒÒ“-BÃö˜Aä€Ü¦ßSöe7ÓUN»• “ôzëB&’ï…½åßIz]ª¹êĈ?©åô#–"^„ŽPó×ׯ)ïu¢ì}]_–p³ÛÂ*»ŒƒŠÃ<ÛÏtu!yê{V¨´è!3@ÒtÒ£þø©Û'"E€SsçÖ…Õ,æ¡„HúÉ'£Q_ûwIúa!«UüÖ%cÝàe£à ðÙ¡¿ÀãÝeìSÚ¨¹È&eGE~P þ5zN‘€:A+i¼í6*S/¤‚(ã^Åêù—1$‚ìñîeQ/ɤ8åK¬‹„Ck$Ä aóõ‡ó¦¡Á?›µâê 0üRB @À¢ñp†6,Qi`)}‡ù/xhßòèÙ‹ñç&Ó¸ãTâuaRµS=wí~ÎD±Ž/½ÄõS¨ù ‘&%vsb¿~dqn½lúQÄ¡ ÛÀÛõ%WAŒ·2Yìãa ±¸ˆœUg ¾\§SÁe÷`6óæ—JUÜÞ»%úÜ 9íïbÅ“…ó×íOëà¸qù`¢öÇìú}® $|»DŽnõÝSé@d#yŸqåÊÕ^È›-/§hd‡Ù¨‹Œv;¤§ý¹sgT! <‰e¥ŽÄfTð¶úÛ/ì[„Âs{›|[ëGBJ±KÈd0|KuT¡®"³¹AB»õ`-u³§üHÿß@sÂÄ”Úo¿0}&6 ²:`/!OÒqñ$éD‹x-Þ©­¼$Aíô6v²‡Q÷Þó¶±¼Ð'Ú[/™la#»ÇŒÃ†Ëq9.ß–WoÐ ë$k‚EÈ׺ð2[ˆ<æùéÉ=TˆÐøm܈÷-µ†¨£yš«X1§ þ$õ3cãÖÄ3‡Xž„çtÔNºÖx¸¥þMW©”ÿ¬ü×Ùùþ•Uá}|ùcêã=‘A‰Âŕܑ¬ÍTKq5:ŸJãÃ0Ÿ¥m‘]!JÔo¿s#¡þ‘Ϊ^&#GÜhoüFY&gqÀ„^«£çXìbø~Ç~ ÿ #"êL”'8óR@Ú×hŠ×tüѪ÷¾ž‘¸Ž¶¯¾Ž¶mr´®b»d?]/ ŠØø)i¾é FJÉ¡Ò;*cÆ×Úš¦³š‡< r~o1lCR/ ˆuÙ1õq7ã›0£Õî.òèôÀàÑ%K¨„se†Ä1ìªÀCºX{(µ"µìPˆÄõQ÷ò‡î…wYïäÎÞÌ„ßçÙÛÙódq R\b5%í<'Vkr?„v߃ýØaõ•¹¤Žƒ¾„!{ 1æ5e\Å\’"‰¯¶ÈFš$ñ© %£9G\Šô›ˆ’4‹¯õ²›—ô :²>ö*ó`Ó‘íyVÁVÅ»Šl[&@÷k9„´§Ø…ò…öhm‘ZôoRnpQl¬æh–°œÐK:^x?™ð+}¸V0ãèÊÔx§‰L+¨Dèb§SF^~¦!ßÔ2×þDŠˆLÝ«ŠÝÅ7Sîz­yAÕ³"{Ó ç̧Ì]Y®Ú/Wú¸s ÝæédÌ´ž{¿ùibÜÊ2Êã²þ´t…¶¡ÇKû0f¥¼H€×ªÅNºg#Oºwm’Æ)±§>ïNÑlç+dÝ–°3lÆŸi÷Š*°[q;òÙ\Hë>ŸX=?á–ãÄÓÐ?‡×·±~C…^ô* ëÑpJç:Ý—Ò'©nDã‘A±±nˆ­¸Ln“3ÊÉËËéK2‡¿Ý §çþFq ž‘]ÒÇDßùeþÔà8wU½Y•±jÿƒõ–Ùå>GŸM|•Žjà§°ù1§Wh¨{…Hü†œ"ÏV©êvt«§i*½È–Äæb]œ‡»ß~“‰WO¼¼ªÎà¨þå©ÐÆs83Pƒ¨ àž>WÝ?…j’äIûa*Qf4} À­)§tìÚ´¡…›]ñ íÅWF.Q†/lï5Œ@T—^Â9—/ä¡2ò:¾ýq½€ƒê+Oæ~Äð³c›ä»‰=·ËÑW”xÚ㡵”µøM}úú~û'y¤u%$Ç·¹oÎô‡W}¾ÑU]ÿ”ááOžvÌ¡Ël‰PÃÄ!~5ã¢'àñ øÁ’®n,¤¢Ãp…ôCÀ¦ÇH?0‘ÿaàÕÄ;e¦êØ£¤ AŇªj'£;¸ï_OW±¶l£ [¡z—+óåNPÏžî7oÎÙÐ7\˜ajcYìàüÚô›Öí—îsW ÏÉ-ý6£~‘ß(ªˆqüB7P©£Ú¬øKå5ïIÀÍ '÷µ^| ¨msæJ!¡ôŽˆ {8pæ Ðý~ÁÍ7°àÔáã‰Tå]áÈÕOÙ\%@Ðq”`vœ›ÿrcË›Øû»s|rMŽTwÐ C¹)ªÁ*Ç·MôÓÞÜŸ˜®z“D– AÔSíÉRÍ/nÔ`®¼F¹$p²Í¡ïwÊŒ˜½BSORHâx¶8Þó‡™H™S’œ=pô4ó~¨kˆãÉh@°ebËÉ 2ý°ü1 eÅ莔—Í? {F—rT°=¦Ô'BQ¿ %`éî­*rÏ>ò8a2*9Ƴñ%.Öõ`ŒòàÜ•Rpȸ?3ê<), #âž">Åæyu휦CÔâ‰ç¹žY[,S¹ê&©m]÷€b®æ;‹ì¸³¹ùȃޔiÆt|0A!6cÇGîf6‹»»#88ª¼Ìw4¸q‰›sR³eî(²‚°~»»Ýžx÷ ˆÐ¡Ø•j<õ͉kPCïÍtT!9è™CæŸe²×oC;íõ[4h–®Ÿ}ÿ‰¹hJ endstream endobj 626 0 obj << /Length1 2371 /Length2 17785 /Length3 0 /Length 19157 /Filter /FlateDecode >> stream xÚŒ÷PZÖ€‹"ÁÝww‚î®»»»ww·à®ÁÝ-8Á‚»ÃåÌ™™œùß«º·¨‚þ–¯µ×Þ]Ë+Ñ Ù‹ÙÚ8Ñ330ñ„e„Ô™YLL¬ LL,°ääÊæNVÆÿ‘Ã’«;8šÛÚðüÃBØÁèô!:}ÊØÚ$­Ì¬ffN&& ÷ mx"@s#€ @ÒÖÆØ–\ØÖÎÝÁÜÔÌé#Ï>¨ ©ÌÜÜœtÿrZ;˜m2@'3c댆@+€’­¡¹±“ûÿ„ â5sr²ãadtuueZ;2Ø:˜òSÓ\ÍÌŠÆŽÆ.ÆF€¿ZÈ­ÿÝ,9@ÙÌÜño…’­‰“+ÐÁð!°274¶qüpq¶12v|d(IHäìŒmþ6–þÛ€ðïᘘÿîßÞ2·ù—3ÐÐÐÖÚhãnnc 01·2ȉI38¹9Ñ€6F­m?ü.@s+ Á‡Á¿JÄÀÿÝŸ£¡ƒ¹“#ƒ£¹Õ_=2þæcÌ¢6F¶ÖÖÆ6NްÕ'bî`lø1wwÆ®¥­«çÈÄÜÆÈä¯6ŒœíUlÌí%Dþmó!‚ý#35v°311qrpŒíÆn†fŒ%Pv·3þ—’ù/ñGÞžv¶v“6Œ½ÍMŒ?þÀz:]ŒNÎÆÞžÿTü/Á23ŒÌ Ʀæ6°¢ˆMþæów0wh1}¬3€é¯Ÿÿ~ÒùØ0#[+÷?æÿ:bFM U1 Ú·ü_¥­À“ž@ÏÂÎ `ffåp²3¼ÿ7Ž<Ðüßu0ýñ•°1±pÿ]îÇœþS²Ë¿w€êß„ð¿±dm?6×@õgѵ™Ø™ ?~1ÿ^÷¹üÿÛò¿¢ü¿.úÿ­HÌÙÊê_zª¿ þô@ks+÷[|l®³ÓÇ-±ý¸ 6ÿ×TÍøï«+dkeôuNÀ» hcjõß1š;Š™»É›;šý½.ËUþºhVæ6Æò¶Žæ=-zf&¦ÿ£û¸]†–χãÇNþKeüqyþ7¥¨¡­Ñ_·Œ…tpºÃ2}¬ ;;À“ùã:»ýk‹Œ 6¶N.€æ¼&¶°(;€Qð/ÑßÄ`úCœFá?Ä`ùCÜFÑÿ'€Qì1Åÿ €ñëb0Jü!6£äú¨Eê}d—ùCÙeÿÐGv¹ÿ×Gvù?ô‘]á}dWüCÙ•þÐGvå?ô‘]å}LBõ}Ô¢ö‡>²kü—¸?tÀ?sùˆ tú£ü(Ûà}8þ—Ø?t†¶V'ÿÉ_ ÀhôühÅøýGIïÞƒîLþà_dþÇžõ/tùG€¿ô¶Îÿðÿ01ý~oö_dûˆ™»™ñ? ü™ÿ?J²ø~ŒÂòøÑ Õ?ð£{ë?ÈüÑëŸÈì®6ÿýGó¶Šùp¶ýõG3vÔ…Ø}¼&¶ÿ˜ÞÇ·3£ýŸƒù‹œÿuÕþ{  mŒ­ŒMþŒõãü[êð¿ÓfþÏ?†Çü1 Ç? üEÆ.ÿû‡¹ãÇ+þÇá#ÛŸpo!£“™ƒñ?Îçc"N®¶ÿpøŠó?ðcž.ÿÀ2]ÿqøÞÿHÆòÞýÏ|>\=ŒþŽý?ˆ¡³ƒÃÇ×连ø×å?ü¯ïlcc7cCØ•E[ÃÏAuAßñ\é÷&ùæÈ÷ÔR©é=W:Ÿ¡’¨k26î“Fú×vE©n¿¬½z·6@…¶%(´?{½èÅ)ÎìµÃ.OcN ÖÀàÓ+Ù÷zµ÷Rõ·oí–$ϵwæB”ÏG{píw«(ÿ9²¸§°_Ã!÷R>K¥òMÛ¿dž<Ï k›Ò‰žšõ iþön5gêH2ŽÖû$еÈSs‹%úqÁc½R™Å±‡ G›üu|†ÂSè0Ykɳ´8F2$²Ø„@w±™¿ hÏVKܽÂ[>6µ=†}¤ç/\Ž´;c¨°C.4rd¥”Ó…š[ÏY2ûʬWë¨ÐuðŠéY5Ÿé(0hét*Ïšö#ÞŠ0è–J²ë0ô0y‰c'p€Ûg–²!þÝ÷KÜ2‹Až“V¯'Ð á´ ŒóáÒ{jJÜ:[ëFYã”_y„8ÊlFœóRÿ4[mx°õÝ’¯,jLÊb¼vS²Ûñý‡lö±a Àª.ïþãx°­%{å=ç e£r-ã™èt É^›OcRϤ,Jùßµ²„ PÆ+e@lƒê8kJÀÂäð|JÜ–PÓ›’{yžÉ†™²Ù0¸#£!£x¯‰òé³à¯º®a2HÕSƤ""çÌY¬j =á ãÓ×Ý’ ˜KÕó¼©Ê82#'$üAØT8•²CÙÉð;¤üÍš½wfù#´©*o®5ï—»°/ d±¿~Lïho«É2Q©ÎjŸËîïãçvöµ°¢ BÌ \Yé!;ö–É„È7ß—ÃuE»›(¹—n/vl¡LüÐçv&°‹¼“ߎý.ëì°H-ÍçlV½0;,2¹’×Ö+?©[âÝÜBÑÓ3û‹¾tÒC…fâ'!kåÏÝî×"W¬@=°…¨v"ÄÅí †Ä C·¶rÌì”r\ªôT^MÞŽåtv©Ÿóéõ s´/(âyL Ô=¾• 6i‰¿÷Náïrq˜´q^M¤á3>-/~Jêð—ë÷^]Ÿ8ΨêAÿ D5J¹ºOäŸÒkRˆðÂXd¨–(’:ôŠSÊ8ú¤8H¥TÔ6‰–ÿ©e¶;ý…Ìî-xš„`íš»þ›"€SóÊ»,s-V‡öØÃ8[J+mÒº‘¾‹fs·g‹­l%QUD“¾&¹·:m^mU*Ù®±þ,¿¥)ÏGÙù¾èbQ#®’øÑߘAÁÉVxñíhm¶{ŠŽ¯v¬\U ËpŸu€õûΗåœÙ‰Ä)¤U;Æ  tì&0}¯1 ùN¶ga¾›ç"¯D+l"LjgÚÜc1ÍâUøY†å—þ8»CµtÌ5Oö¯úÂá§­ª® Ÿ­7Ã\Ô%}˜Ò­p4bn=~ùß5ÞÐb…ewUüËû©hIM©P{Ðl \Æ`*д’ا8–(8ð¼üt_}ªu+†AUøk|PP7|¨?qc%‹çУëÑN͇B¦°r»ð™‰öè©S ºÇ†È>¤BQqã–`±/òæo¨³•C´³£Ç\À« g@~%”¼‹®èjFÖ^ž×QÏCÇnK&l¨ÎxY±¢i™ÇãÑÀo¤çÇ·á¼Kj‘n{nZÖÌö©²º}¼­Œ@m7Jc.œàaô˜Ó¡Áv®yGå!*LÒ^@q³ªzº’¢¬Å«›v8Aˆ?ºÛÓnïW\"ÌJ6$ù C@Âì»Ü[0:L/¬fjÈ#S³}7Y¤•³S× sò°'kÅ(j’ñšå o¸¦v]>³É ¢%ºštû~}d5õ hÔB*²>ñ¸ORÄx #˜{×ÍeóD î·óPdT{ÕíÛÝ]}]ÉÖ¢ åI½Â7¬&ÒaÄßn‹kü{U3Ãn% ×<ˆÞé‹|¼ô»AŒWå© G·T¢4‘¼úئ‡bqŽfˆáì½÷»ÿ)59–ô²”‰ Òzµÿ΀Jv¾A%¶†¾Áø½ÓÁ7çÛ•3¼bE«û7eK+Lþ6Ê­º¯§sðÜ3ô‰ÔÝÏε°=δèV F·¿ØZ<Ê ¥C0”%!µx *]&q_‚÷¿ ¨…Ë>DÊ`д!|—…0??“6¹6›g,€+O´Ež×Nç®!ìývÒ¹õÐîÄÊ€¨ÜHTdLs`+<><Æ”y*MÆ\ÉXsõ>7f§ŒÖ¹òmÐ쑟 ´^Zj*v¨– MJ'PÒƒã ÀNb ”G®Ý³Š{)ƒâP¦¯æÅØôëòƒÅÌæ.RæÒg´|òÛð[{èr•‘SŽ­q”LSÀkkxê ô„‚yöïTÞèj¾a©Vʼn«–uÜœ~¾Bòí" \5ûvõ“ ‰nûš?g?÷ÚöH*e•äkÖT â#goߘ-ý"¹_Äþ–M2¾¤Pþ›}ÐwA¦£>³tE1îï9Ê‹ðž±Tù©d›Á±¾ž³aÂ&®;^iOåyðc‚g :­ñmC‡ÞX²yÙ7iÌÐA£6çeÜläÞ‘u2ß7âiP¯Ñ1#{P©+ë€èTênZ{93îðÖJÞp%ÆŠóbŠ\”S´I‘/ã½ü³t˜5GÄrØL?J;ÇÁÙˆóòó½y« ž^×Y8¬­˜ÞLš¡å­lÆ|ä‘~þ“ËÆ5KzÒÏ´ø_d¤§3žoçÐ/;ÕMÚb.·*'jpÝ~Vg°änZ¦ óȧÁ>E¨Âpók$ññº–VÂuçîHmkäøoDÔÓä6Mj b™rŒ è2ÈiîU¾#èó>ךö§e«DæùÁþdÅ9ÂcÊ4nå:ÏåÉÔ7Dæ9  Nlšɪ ó:Ö{áþªs q«rÏ þ~Õ·Ô¦ æo­°Wäô`’*ƒ¹Z&ß•Õ9çpƒ C1#ý¡U>…ÑÝ›qžsÉä³MýƇñ8äæÙ¯ß¶x³vp¹Í¿‰&EàÏ…6ðs»jßÕ»o/“þÑÒŸç^RžøýfŠiFñ £§É±‚ð¥w…ÑhôðÒÏò®Cýq 8[ûkÎLìmû7ùÛæS¿n™9Z]JºTÄ3=ÆŸjžfË#ç#Œá3é¿Ç-ꕼgßN%C=àfC"š~El/Z`Á”nÔûxdH{Ú jƒ(Κ‘QGòxÈ*IJ¯»ã[èf÷'Å4‚ÆâRÏ*OûLKi‚ b<É3AÄ@JÊcúPñûpïPü(ÚpéÝÑ}'„è¢î Ug?Àã3— Ê"/ו‘G1Cì,º@2¯™ºø±qÔsú½‹Ã<&~»n”½yíµÈß‘c#(íD_é2Xß+luÊ»r¿Ú¯ß»½¤8÷¼vUТՌŒÏ·o¥mÝþw¾kmC·i!c#j"o Wª(NP£ò©ªA±†«/ýA6«´à=K 9‚O§¿Pˆ¸|KVÀO#âü€rIáβǓW~¸/E`ŒÑ —ÜP±Á?dÛ¦ƒøMàîUz7::WÑš,’³žrÖïtæ&x"Š3ãBY]Šg ¯ÛÇ Ú÷E¦²F88ÐX#,%¨‹ªŠ>Žj×[9Ñ¥g_‚é‹«c>±˜¼ƒD¹H3Z$ÁnLè (»¯pi·šžžQ?n6ˆ‚°áO¹Æ†(›4az'ô€ä¦F>í¾±»‡RjóÇ*¹!W wù‘£²Y!ùwt€iã3s˜0+þ¦—ƒªmÃÝ‚ZF+¡Ütpà{úý\¸.YˆL5 45Ãv‡˜i´£àp¬o¾}ªtF~ ÚdŸ‹+ð•{ÈÑe¸zEN|[¦¥s5<ÃEHÙàE^-¦·Á©ô 3¡YÞL srÕ¥õ5]¥À¼”«{õ¼CG÷>ñBbüGGeB 3R0Mº"oïæÕNÉ9ø±ÏdÚ4EÕsÈJ£2L"ˆ4ž,w½¸-p²˜Çø´ÒNÕûÛ >:÷îÀ]nÖ25¼O°S`Ó9K'åû6æ–ºãì”%½T0Äâš¶y$KÖÒ+è«j{s WÑê•1:8=VèJ{Û0i‡šntåY_'C¤Ð9”iûœAÓÌwû²£+Ó7ëþ,nÔz+_ÂA\GN(µa·G—¾kc׋I(í£&Bëå8j¤&ÎQ]çÎ eP¥Î!%^TGÚÆ9sÀº@ŒÇFbƒ0)˜,y½‚Š™´M„ñ™Á4FDjtlÍ6@³xús«ÛuÇ1f ñKPŸ£uRßh÷ ^ŠèV³Ó9&º0–‹,k¤Ì­.ÇýòÔ½Yö@qƒ’¯Ä–´rK1VÀ‹{½4Tù| Cý§0ƒj‡ÏÛìá7µ;m1±xmGr¿2[­‘;¦Ysì©håXàJo¾¥-ÝPgè ?‡;"$G²§~E¢–6°òO—ÑÕ²Âhñ›ˆþü…Ùõ‰² ß›qÿ§:Ôˆë£Õ.#‰Pxµ7Ub“’‹Ó~ÒÕ€®ª uù!p¼ú\§¦•ž^G6x}ñ¼)AÛÎô‡Žµt.ÅkeÃ)HÑô¥ãÒáõý²UØÔo CôÐâÚ†PÜ@õÞnVÁæÙD‰ý–ñçGèêO–L,Cµsa8[ÙkܸY®£Ç2½€`Úñu§ßëËVz¯Ý…žù>úQ6W…#i°ô)SúŽŠbç3_„>µOZ0†ÅHñäšÃ &Þ wMt{A¥ËÁGŒ xGòÅBlþ:YuPòhÂ$ËW?Û*Íýj}ûjèJ$é¢<üú£ˆõ—œà8+ÐY/—<û.MËSuÍ'[ÅÊã Û92óË‹@ñ±‡6ó3µâêl1öàTç„Û@ˆGíA!ÿÄ*Öäæ2}½ÛÂÒ:0¶Å÷j€s^Å7úi0G&­°J4zå¢2à Ðl‚~³íÜ_¯›Çü1¶Þñø u;…ЮGVF£“Nwç˜ `”ZÆõÕÄ‘¸þ¶HözzÀ@d 6 $Ä;§—ö”OǾ†î2qJÞ°½lèÆîÅ4ú"XŽŒ²µÇóv¹{¥l÷ayV±Õ°!kYã‡é F9®&fIFXà„}—ÌÏ· ë@9Ùp³ Ø6[3,&m5qÓMXôi¾®A‚U·Ó4’®ü.ÐÚTç¨zoÎ"fœé+ÝGœvÍ=wY Y\,1‰¸°‘Ë7W†¿ž )˜pQ”êJûˆ²,½³ÕÐÒS:2MëÒq´|Áè–G³±òI2¨Ï%Ñ–hæ ä}±)7ZOÎ…`LÖʸ|ªÓJìMkòpR„“¦ s! Ž…(U©E¶¿s¤ˆO¢˜g$¿¸sJRÇîÚ2|Iz?êË””@z`".Kr×if r%àiÝ­ zôý3]¹6<ŽA¶TñuyiE9Ä(Âøžù[™ Cã¹ù,êw쪔FìLCÐóûR“Y©ì€okuNì´´CD¢LWÝŸ®è\øøUWmB^©ˆ£€Ð´×l‹ä¥=j3?ÏÝÃIh^F5*–&“"Òo ÷†ß3k›Û`Ža¤‡®²CŽìØi í7`•"5ºíIs õ´æ±-@[q7ô^èjOÑÙ6K~{@ Wð|å–#ÏgZ:ô}j|‘I¼1ùAø{‰&§¡¿8éƒÿ˜¤ËgÖàÊ“ñ x€tÀÍÆ}vidPuؘa*×[È¡=¹6&1ÞÈK~kØ= #Ô†JeæÛû>P^£hsƵ5TÆ’ƒ¼©›. ø2R¼³%øð¦ÆzÃîóŠ&ÓÂ,}q²‘œ°(ßósQ(“d¸“ÓÏëæB¿mä@¸“ðx/·­ÅisëÐ"'zMQ­w_ÕôÕd­4øÖw·éÞܾUAÎ5NÌÌ`¶þԇʺ;Ä¢o}[=]ò¨H½À©Û©ÚS–ì¹·J%¥+…Ÿ¦¥xG­ÚspeyewûœAü·!oŸÒ™Å+/¢´u²4ãáuÜ[Æ•©[«Gïø›’ä‘=À÷B¹ ›p:Ý8!èõºz#uHì0Ûr„™˜ Ä:p€±¶ lõ½ ™°Y–ÂA®ïž(³Ac˜°nè_Èé"\›x‚š½œÁªD`ÆÐ^Ð9.d,И?ÚºÇjF¦0ƒ±XÓq“àÑFbë|žÍšcœ&˱Wj;´!3ý ‰'Ž]õc9Yv#êœc$ãûƒ§Ùò+æ^ÿR™ƒáëazPFšþ´jx¦’¤(¶×t²·E9û íœÐÙéóÍÁ@ùŠmÖ73›9wÇ;#mEöB$ÆÓÛbNÊ/¼=µ±(il›E§z> Ÿ”— “NÄ÷Uä¡©®Úkq›Myíàå§E¢û\ÒAü: °YøöÀÆîãOq×WM‰kÑ^Ö¤·,”¼A8è Þñk˜m·è.ªxȶ^ÐgOTQyeFA˜àÁ§âÇ7WimKè¦IˆÄ‹K‘¤_ζJÕýâö™Ï³À?þž\–Á„­<ìQ?‘”gBÔ>­Œ2‘Ö'ðÜÏrŒ´w0–pÃsDëC#ít[6vw©ÍºÄlLm öšcúŽúX–dN’•Ý<É ¤4¥Ap’xâ~‰ ›Žß˜¸slš„¶yŒéâÓü ùØÎË·AÉ$^Ðâ±#ŽŸ HO"ÿ"˜å}“‚c2$·¦üe–Ⱦe¤|Öö ñû¥rÚ®[îÜy‹ÛzÜÅïì}O×ãRžºÉþ)T2ûPYQyÃàüNK5ö 1 G£ˆäDŸ±gÜM5 º¬×è'K•1Vßx}›?U³píA´íf´ëØ8?YŠÊ¶lÞ1¼| ™èæ”`÷keô™Ž•#ÆÖ~ù™F¾rÌŠ/¬YS·Õ¼Ó{ö w‡3"“pÞI_¼`’v‰üå"\'¬²èšq 4fè;ƒjš$5æÆ÷Ë(rûtâ¢Ø– *ôV ëC.Då²÷´™"f"šŒa›BvX~š »L“Ê…‡¨bœðÔK6h“¨­U´Ú¼\¦²ú¦\Óõ·\”üíÞ6¸$nï“Ò‹†\KÌmkCŽšHãõ¥÷¬ c¹asñ göA ,%åè}¬ú#V?¨~ѽ®â¦i½ vS®IJN]×c ¹e$’ÝÄ ÷F˜"X´|5Ü®Ðßï¹ÎÅ‘®f`bQ©6ŽÅ(ÛL€Ìú"ëÎŽÿy¢e3çv6‘Τ—}ÀúO€ªÿ®;›Dj6GÐg8±°ËÝö¤-k}×gß*í§‰uÎQ[cßb1¹^ÚvZ‚ÌS–˜¡7~Js¶IÿÂÛ Žß=ñÁ×x[#:£$øéó<+¶q8£‡¾ÇÓ„úg@‹ì1Ò&¯Õ¤Ò4Zu`÷\ â¯œ• ¹ÌxQòÁBİo8äbÚ7³Þ ¤×PP½W£÷Ú©Û>E+K/è?¼‘{<–§µ@PÖ­ˆÐ~)KÙÓ;2ŒëêrÆ€0k‡cÔ¥; j¼Ÿ©Y "ú‹=¡—à'í~mî¨Aÿ’|Wˆ4êF›<(h N¬C'·¾9’Ã[>±Ðcvhk—]á‰Û·KZ©K‘ÇZÐVå>}ôÍÚ`Ýb†Å´*à*˜–è –v×J6jEXE.èfÝ.Óa™Öyç}Þù¶Ã±ê<ô“;*ALmjƒæ/À«\XTJZÚu¤{¥÷˦`ùÂjM‘Ÿîssq³Ÿ^Ãt‡b±¾ð?(÷1çzŸIU~‹¡ÂÍÑŒ®ä °ùŤ6FV"Ǭ!>:…I¾èYÔ›8[anÖóUÀ•q3Šew|ߺ-·Eóœª,bn5|»é@¾¨žøé3%Ž\#m?ð8YÛì63޵E(¿A·X˜ë(/û–ðd‚¹Ë‹‚ 1Z?Óåq”lT*¶sÂ8ðI¦ê¨„·wçÌÿ†ª61%C˜K˜Îä+åƒJôÃQ„/„6èg"Á(’ëq7za]{AHæ¼dg3‚N ÷¢K±¥pt à;¸ôFWì÷5"ï•5Ú¾ñ|thyæä† »~K Õ¿aúUùm‡ú-Á}-±ÙßEèÙyß@lØNŒº_£³9T`¾Ðo*gÄq|Ó½˜ÀäÖcQŒÔæ¹OGbM‰JûV€^å*§çòû®šé{Ø Âr*yÐ×~áæ÷.7¹®[ÍS>×* âHïcæ™àÜt‚«ï†²ñD§šÿ ǃëîVœš¥æ©‰‚C)mõóªy߉”:ØÑ8NH Ë\<Ee"b¼UHrtV¶äh¥¯jKu«dqÅ_ÅÃ/ÂH]¬òy Ññýóå6%ÁdûC u¡ˆ£¸ÅD‹²0Qúv¼Î¤¦KãÁ”×îñmóPGÓ¿¢P¶ÜëĬ!„ä"øŠ×+Ʊ ^Ÿªø»³Ð¶2I‚…9áõf÷æÓÕ™W¾ø]¿áĦôGª{ˆQçÒݱï…Ì¥,.L¶*@3=¨ú´ £Ùd>{WòS1;?–×|ãgª`s…ßóvâºár»_²Ñ‚z[ÃðY¬OCqÑ— GoÏì(·Ú¹ùÆôÊÕêŸ>þ*.2—µ³ÿ¥ñ^åüY=H¼Œ¥ÖµŒÁBHIìÔAã8à¤_;ÇY|³Ù˜h×ð¥ÑLÒ½Þ PÚÈŽCŒ_Ê­uŒ4ÏKTºm‡ÛÏ\)miô¢q­çús`u…šùÙÔoiÛSŠZÏ0>-R´Ž“S€8 Jƒ–} R¯šô@O|ôÕºž‘Zô.¬½ÎÙT½%{±-=ðd¨´û¦Ü]®#â‹H76ÈÛêž+; !ªÕΤ~_KÇ)¢„P ºÚÁ!ÞØ€µYôF‚à}’ç7Cá®Øj¥1Qù ¹î´ž¹ŒA­“&£¬_ð ¥Ã&&«ŽÜŸpvâËóÞKÖŠjÆ¡h Ò¢ïáܹM7§b…+Ñ›¿†Í'Æ 6úÔæ”EÒký;Kg›­øžw2õ麺Þ÷GÔ“3¼Ç)hÕíÀ©¦^_úý¸! Š%ºÖ-V\Ó0“n'Ü7t¹õ‚ɽèIdÏ£Foqk×ñÒ&>½ï÷®éOo_óÉ\~"¶Þ¶vl$8ð1ÚWäk4nÿ‘wÖÊK?ÿÎ×€_­î0|žª¿J¼þdò ·8 ŠC…Ž<é5ò)ý÷1 ði7¿–ºd‚`ê¶$gGÑüi$¼·SŒ|ÛVηÈã ÚJ–C‡ ‡V;?G‘üiì<õËSJ›²oJˆÑQóÚçJ'e`uÜ›¥&Ö§KD{Ï3@© µto{Ø4ÕìŠy­Ó—Qƒ ~’¸•__ß9Â)‘FÔׇ‰ÁÌ:;ä}€·ÁÄû$äS÷‹Žÿô ¼˜°ßѱ‘Â7pß"›½ö% ¬kô «œÂ‰S9Ÿb Ì ×]šã žàø!¸ ¸Aû2„¨¶w¦+zäêZÌØªjjí D2ÝîžÞ’°ŽÒ”£‹)¦¥ŸÁYÙÝH¯ÂXæ*4†FK½êåóÕÌ…KÆÞ”ìq“ªUÒŸº ñ–ÄÔÕÅî1Æé²™Ï#£õ8,ÃX/Ýcá}Ü¥'Òò7ºeÖÛÙ];(„,ÖíC¼a”ÙÞ;µ= íÀb´-ï¡f›’·¹+Ït>æ±)œõ”‡ ’h d¹¹ˆOrÎö© ”ÿ%á7S‚[4–k=§…e0­X¥Y Û> ñ'Ï—å^•þØúÚq7Çbq!Ù%`9Ø5mœT†›ôÖ“«`.ôâWJ%4Én†ÇFdD2XW¯m˜…ä÷ð3q:ÙYy! °PˆlRV|ï!4I3Í™Z_iÒ’ÌÍRëÕh+ldO6ÝέêÈ.B¢Ñü‚˜0UÂóÆWÇ>wË4?¥aßÿ,w¯85T¦%â¤è¹Ý‘dÿ9¶ 0 ÖÅ43B\09÷)ÞTÑ0˜»Š•Dà§çŸ ¡Òð4#†œèWè†É|í!øb}Õ´n›ÈñÉ*aƒ³UÇ©D£ññ´2ÈýüÊæ³«Ÿ‰ úƒ*‡´fèÕX,™Æðu˜œ6Lɨ·mî;œó™&×úׯC~9¿ˆüìæá)G,Xýøˆ P2øææ‡p:•!J=™ç¯ëyê ®o8£>¦ îï2«EdZâd~Ý!¾E—·³—ýJq*ÆüµZE8ñ˜Ùi.®'äÍ jÆ(=tq4Y/§€DžœøAVÃ4–ÛVùñ=ãú $4³¨*)#Š1źq*·‚¸/~÷“l—¥«{Ï1(zˆ¯'ÌÑjúÿW=ùâK ÕÝB&ç­I)~ÞþRLïzîüÚ×ÏåeàŸýß© w”3‹%(DœAvåGHÕ“…ÜyÜ܆̱Ò&¿VVÐá{SÞ(ÞÝ;UôLªß9@Úh½kÚÑ¿’é…­¾sÓØÚ«[±ÙXàĬ¬VQ¥}[Ú te6̵«•'ªM#Ø|ΰüä¿ d‹ÉÜÛ~ä»:úP×É"ò*v-šWñó|Q0ûªÑÄ3 ±W¯,׊%‰àñŽr@ñ”¸ ó+©Ô+ÌúR7fÙóˆ8ht[ƒuý»x²#þ±ZÈ5 ˆ¨Þ€4ñ2:ÄÚ}›F}DÈïIQ8tÛgÝ´+û‘þèfüâYö®à†R3vßÑMùk1ÝÏÌo§4]Ã’dXv‚îÇ¢´8Xƒ: [íÝwœüò÷0ìÕ@r|O޶ä,8‚! 8qPhß«ÁÎÅòÓèL0õÇ(PtøNl¼Í§‹VOåKú”cØåÚ’MäRÜ}“ýÆwøZøAÔ^NkrÓ¨¨=ë*zV†nA¡GÖv..´‹Q8A5TLöËT×ZŽúi³Ï[Š»Ç‡ä¸Í 低ºuoúÉL÷<â1?Hý=|‘k¾µÇBo‰<²½©ó0+øœn$jѼ³€»¡É «û÷jÁÌ2ª‚J¸,­¹ÜqæbN«}ý!}–WvÜçÁõæVî6?º&†¶Ͳ¼Tb-{ìír–k§‚½/“(ø ;M{ù}¼ç:$wM%.¡‘ãw/$¬£â¼íqèü=)}¦K muËDŸÛx˜õP#(«Û"Ð{1”ß;Üh9ïgÏ±×ØYL™LX_õP(dnº7>S^#÷õ—`¾$òBÿ»®Â)kÓ5Þï tû¨÷·üIc!ݪÉc €O¬åÏ>âö¸ëûÇ4ìÜòÞ9½¬>†sÕÖÉgÃÄ š]£óÀ›}WvVÚ yŒÄgÉDœÈ±ÈÜUVÕè:Å\[á·‹ÚVÿì‹ÀGÅߦfòkÕ…ƒ÷ܹÄDn?®žú ¥<ñÞDrÃã½»•—Õ š€0ò ˜/&gÉU{à Ân¦PäÔ@îÏ-&äAeœÚ‡9Fþã‚3‘ŒÏßPsE¸Ã¨òèéȼg>#쎠F{šÏ‰4áRe²—êòJ?!?v„](-©Ûm†8?\Õ¯æR¼Ppõ‚“Ÿkj±uz õ´/ö‘•¼ŸÉ;˜XúÐMž_Z¯â¦¥è/=ÝïÎ å»›ýH´ú’6ÆàßÌÂã=â<v¸Ü’(F2²j=cþû&Tj{b!²ƒrj ®U’»ˆËWñµQ¦l†uÊËêã¿Ï{ܪWF-ÇŒ™·¤H¡Y&*ËötÔZòõ ÚR,šL|MöNp‹5ScfÐÃz.]DPÈhWËr.ö‡áݺŸMæ¦3="vL£•I;Tñ•˜÷FP²×þŸÉb¿½Ø¯>G ^£÷ÒbjuPË‚‰ú1•Jhïw÷ʇòùÝ"Dª«X«ß—XGa$×J%’îÙ¶O¬ÝJt¨ÀI×· ß”j…H(FL¤0nÝ/³Ræ´)Õš VÙ~TÂÓfkLÏC6°ÒÕ%ï¶ëØkRI•¤)¦3ÏG[²\””½¾ ×/ï€z‹˜±Nä÷¼àclåŸØÈ zêg/å«§]W¤ñÑ…ð]>é‹·Ã:ÔVLœ>Ç‹|=ÌàPºÿü‹Ü´5dô+©j¼ÿëÑ%|‡…-n ë4ä¾;Öc<¾mva¡S£†õ‚UGûêH»aüÜ<Û…;…t §[§{ÞB]60Ê{•kO.…Þ á-;{ÂÌRã3e!oEJè}‹IÐMJ#ÅŸ+¶LE‡9<–Ê¥¦ß± —Á_`còGˆ 'Ëåq˜j½úäÀ/-F£X·rÖrÂêO¡H,·•ÃÖ9½£œ>J×xR0´Êï(sa­‰D sXG™ŸÚc½37ræeêŽ`"“ý ©’çÀ°¶=Q0ŽPßÙ»ªÌ`‰†ðZãR6ݳðì¹É„§^3rßZ¶ìoÞ–;ÒÉâ$QÑ»Oý… —ÉgW¯(¢ä¤”¾‹²×ûJ-2mcª%)-tIêµKÑ~Ö °u¡goˆ¾\ï˜Ø¬Q¸Ö•>p) ²2…~ž}îVDÑyp¥ØxFY“e&rR"áÇ+t(XULñ¸˜w=‰ü´:®¶LìðpžÇ}L0=mP³3A±K¥ÆúúÜ’Œ $§)ÉÍE_íZ± K]+«nApõKkMóî*iÊB)`ásò†©4%‚iãí„”O¸»»:E^ÍÉl4òõ«:š²’oÅí}ð§¦àƒevš2wQÂ0cÔ0ðNM°¨VFµt}j–œ+q,ntIàˆ]œºáøáMƒü˜NÐØ¬–˜?Ί–zl8HòEÁ¥\HëéVõ@ˆax¨6‡ã|ôœž\ÞíÎTH-Ô dñ0óĺdÛö7ÜUæ Öʾ€TI¸Óx ½eÄØ9¡.¶W¦Î!Ö‘ó<šˆö5»ê/þþ¯̻ÇIÛ~Ñvó˜NÉéÑCi^P[¹%­º6ø–ÒÁÏÕÁ^*¦&œ3´bC¿M™kmÜdP9èükªj÷b6ì>éyôÝQBVŠáÞY,©CÂzèÒza¾Mh}±¦ ÚœiÄq‡èö¿bAé.ç%·õ_5¸ÍÁqÊyíøŽKzhÊJÄ”qPì;K4ÍR6>±´­Ë¥ì*9sV&ããÙ‚ ì¶E—«Rذóm1ü&B豾кØnh¿èÇU‡¾`SÐþÒÊÒúm.¤§A¬û5ÖúLqfßÁs®1”Iƒþ'{õ¸´E_-œàwy’Ñã5 Èê\X#®÷±ú[J–„ ŒÏ6MÏÍòú¼'¦\Ç–ëïõúŽÍÂDÙ_Ë_nH\§]ƒPÎ?gÄCrÍYË[üê'ñã/ͯ³ŒÞ…#\LA‹n;QUfÍ=I\i5힘cÔÑ áiC£€†Ênµœñì‹›ärÄ3ŽÉ®EBé»”u}»»`žG²€(Ú“4‹qù&‡kæáÂ#M”“>s>ì¾Iì½Iæzmëû~°†Óûã»S`kIû©Þœ´¸ •>ÄÎ’Ùk¤Àð(Z @°µ|”‘v=6¼³o8Ãã€I§&k/1(ˆª¥~KôÀøbíÿ1 ÎöĘrmÃ/›œœº(»lA&Rò þúJZTY§*¥<Éæc”2ËÊ$ÈGëU¶c6© P¦)a±þù»\W ”5 }öiÝ;Ö¤ÄdíÔÚs`ª ‹—P ²é“Üð^$±ÖjG‚(…zãÞ/¨tŸc]éñívÆFÞøñxuÇWf#ÿ•*Sj ††ddÃן‚Z©q¾Fw„НLÜǧ8PZª¢ÃsÂZö²\þE±.¬D·°0[V(cWæ—5 d?˜]š£d5>ÚߊêfÙÏvJuu¡ËJî+!ÅnɤhÖ¢LÎ,jêIGwJˆ…_êÙ¾þFÖS,Æ=?8ÓµÞŠwF¡$éƒ$iµà´´îQ%ä8ñ0-!Åܘ‘á\))¦¶ ª]‡N_"Îå¸Ú¢A-0­æ4¯¨üqÍEÊÇó1:¨‡ «o3Àº ë1ÉQ ðvÚŸí>ç:~¡IX—® ûº_€êED ÌÁ¸íÉF•@ß & µêÿx>Ë02£)«ù,Zc u;D{s\ˆûÚ (Ç¡Õý:¼Å0ZâdÑݯý±®À^LO§'êÀä‚~®úèA¼QÒ¹Fèg“¦Üçí„KŽ&†Ü/~¦ñ ƒû™Á_t¿ÆhVêI.ØÇkW'êóØ•ß'=hRØ»¿-ŸªM\1‰p Ñ©ŽR–Ö/q<0•ôº˜à›Y¼GõAI'qö…éï@Ô7ºžJùjÐýß»!ÚÑËÒ‚ªCýâé )4âumÈ4èÙ ´?M¶¹¬g¦Ü¤Þ¥Ö.§pŠÝ,̺iõàÉùgâ^Žvk¶½W¥Ô»™óä¶RKw÷á“ÊÈíÌÛooèu&P}K@vÆ:ëâðâ 7K\xìC5Ê=‹EÀY1ËõPî~d£Íê¢Î]E Ww*Ô²Þ§i54ühs,„טð ¢H'”Ÿÿº”ò|Ú–O]mzg~k3«V ˜û' ‹Ü'ÕºBwV°g5‹ƒÌCdLÊŒC<”ïÔÒžEl…¯ìÉK/`CæØÐ”.GI¼üù6ÙŽp9–h¡˜e–šc#Þ¥Ê*®ŸjÄߊLÒ{žV&3b4º6qTÎâ‚Íeˆu•M—7#ûyp%(n²T@˜ ÛCTâ¤~É”¬{ ê'_qÆh^9@Úfn!âÖ­ÛIW&èÒb ¹ÛÑGÅ­c¢¤Ùk(À‚ˆe"3/IÀ?Eƒ_×}=vÖÅpnÊžÙA¦‚h£ÿNfÙ§¤°m¯ß†Êi¸NàA¸ À‰Ø¿xþFy˜…Õ)³qУ¤Uf}ÂOŽT þô•(&Áà ƒñÙ5âþV]ÛÔZäg ãÀÒž§¶w¹ÔÞ>zgÇE.¶ô¥cÃV¯ŸàG3çƒw4×NÉÉ& Ú·y×]5IÝç;äŒaa˜EJqÞÈÀéòI- ‰–¸J‚DJ-­·å‚øÜ¢Þ<'­‰ d<Šÿ¥?Æ~žæ¥aYU§?* Y$…È O¥žËõ—uAH¡sW¢#@7¨[Þ6kâšÉÜ>3(c2…NNîúÏu-ÈIဿ“ƒöj7?Iæ¹cšÝ;À»¤¬r ê;­¾µÐaÊ6ª fp–l<‚^«æüZ‚Ê Ž;ZÉÃËøaû¿ó[_æœÁ µ‡Ú¶ñ_¿)@u3¿½ý‘/k¹"Œæ5$9Ý-o–¬ÜëÖCuÖ¢¾$EŠ­T7qþäÌSïƒkB‹ƒ6÷±½ Ù9Ãöªv¢°T£i~Ryl8‘½©V×/¥þZ଺@#DŸ¿é%QÔ\ yñ¶,VÛd¡¤ìßë{xÉU47yŸƒÿ—?A¦…¤±r÷Üt‹(y9jL¨¦P8bÉ×o2o«'ÀF©¡€Ðx0YøöᯘޠÎävÃG%{6ûª¾‹Øîl8cÍæô<‘íÒ¬d¿VÿV_µL\üË~ž~™—n±Ùh¼§ç`FÃt‰uØø8’Ìÿ™#Ä”ŒÌ2>!†p›@ÄøÎI$5íþî|‘a¯I—V¿»T’PÈO. „¦1Ä$ Âðò£uzª g$bÞ®ò¯€œz*] Ó#/Y]>}ñ¡¥øL&•¹x“5ÅÂ7Ëyw­Ñ÷¨yN’û‰ ì ô™§œq·œèð®æ& tˆÊ°eºd¸ å[Ë/[˜ v¸¦Ì½ )5ÇË÷É> WÚÝ#%hÀà9cq*n­!yÛÜŽ ÈË<Äâ2È,‘×>„PoàÄÉ^áuÃò›%:£€¶h$ý§jÆw ËØOØÓrlbôœl$Rr‘S¬w'-êzò¤šŠÈ"§¬±b‰Ä¥t}† Á±® Ÿ{"ügɺ¥™%%³ƒŠMÚ°¥ØZ9á¤Óܤe'f꺛´ä'²í˜¸l›+h˜1˜0ïÚ@Zœ¨šÔdtíºàž©7t!æŠtoÑàS1\f6¼Á%A×ù5¡|’é§A&²]­#Wÿ?ÄÙÔ\Z‹’ )S´¦ö¯´YØ…GGÚŠ…Kô =þâ­›“ù¨K“åFR~ª éùt×¹Ô=öÓé´K½âŽ(GÕÄó‡^˜–öVFÒ.k¥*„»?Ëy©xŠß_ëÓln`ªo_·`¾sûõZ@%ƒâ\ ¹ÁÐYKȘˆ‚ø6`žÞÏÂÍœ6gØ Õi à!ÚÒ÷ºÑc¶€°• Šêð¬ÑÍý¡¢êÚóùŽMø+1{ýo×3ÇdÙÞÊ»JµØÑöJ »á¦ùç;ŒÕªPjÀ«ðà΃í2À*’7zŽÚ<ô“H 7Ù§jФ`«‘út¨¤3зè©ÃsÒxÈÔ¬Ž<ͤžE¨‡šê¨h{¾Ïx4@šÑ Bæjjxɼžû&Ý´ºR–¹é§Ÿd0-!hèü/#ñü‚Á=ɽ±.¯ ¥¶íL¬è”ι‡jÊé8\kz8¯úŠá¾”V xMõ³Ï{Ÿ0'ºÍ]†ÈU, <ß&Çå;5Ó¢?Ø endstream endobj 628 0 obj << /Length1 1398 /Length2 5888 /Length3 0 /Length 6843 /Filter /FlateDecode >> stream xÚwT“ë²6‚´ RD¤JD`ÓIh"½÷^U@I€P’„Š ½)½7é*½ƒ(U@”ªt"EEéEàuŸsöùÿµî]Y+ygæ™öÎ3ßúÂ}ÃÐDH †²ƒ«£8!°0H¨¢§§A 1aHÀÍmŠÀ¹ÀÿÖ¸Íá,…”þ„ Átª¨‡BµÝ]€`1 XR|KŠ‚@·ÿ¢0Ò@UˆÔj£p,€[…öÆ q„<¼P> øöí[‚¿ÜJ®p  Aõ 8G¸+!#â4AApœ÷?BðÊ:âphiOOOaˆ+V…qçz"pŽ@c8Žñ€Ã€ç-õ!®ð?­ ¸¦Žìoƒ Êç ÁÀ…  Gb .îH$dšhé Ðpäo°îo€ ðÏåÁÂà…ûã}üå BQ®hÒtÚ#\à@u]aœNAÂÎ,Šàñ€ \ vÀ¯Ò!@u%# „ÐáŸþ°P à c.ç=Šœ‡!\³¦‚ru…#qXÀy}ª J¸wo‘?ÃuF¢<‘>Kö$Ìþ¼ ˜;ZÄ ‰ps‡k©þÁT€ëà8 Hê–˜”î„{AEΘz£á¿Œàs5¡?4 ´'´÷CØÃ ?,ÄÄaÜá~>ÿiø§ƒ0´ƒ; €G'¨áö¿eÂü1/ %ˆ@?0tþù×ÉšÀ0 éâýoø¯‹¨˜ikê« üiù_Fee”ÐGHL($*‚AâRÀ[„ƒß?ãBêø_-¤= xì¼^ÂEý]³ÇðþÙ>à?ƒé£Ô…yÿÍt+JøÿŸùþËåÿGóó(ÿ+Óÿ»"uw—_vÞ߀ÿÇqE¸xÿA¨ëŽ#¬а Èÿ†ZÀﮆpwýo«BX%¤ÒB`qaøo=«Žð‚à 8¨ãoÚüÖ›/œ  7Daç‚ô_6–A ,›¿M,aåp¿y.à KõÏ:ÔPì|ûD%$ â Ÿ I}À„5…Á½~±("ŒDá.@BÏ~@{p>h ) š0ì\øGl¨;CHþ‹„ÄË¿Ö÷‚Cã(¨L°SupËA¥«§Ðò ,éfêÁQ¡Á‚û¸.µa›…x“¬ÌIgê`õûNmúÊnÙ³¶}–j8j½Å÷„8ÔW8ìbÇÏö.Œ&øì³qŽÓ4=±HV¾.]Œé"2d¢m§T€9t™pÓøþUÝñ1Á“‡¡Dý–vH‹~k{eI¦.#Ûmó/ŸŒqMv½¦Ë;Lå|r}´m‘¢ŸÎ©#Ûzˆ÷¬ ïéë¦ëd¨íñpù;W(ŽNM¦—MUœ¼Â|:ïòÏœbtz;+а®çs|ÉÕú[ŽK[Ö7xÛo9Ú&ÚGƒ¿àÙéÐÓ Ê©˜Üü•HØTvIC|Â>Ö¼# ¡ùz¶ì»³vXˆŽ÷ähÇÐüOw-ËwÝÁ¼‚zñr§¥K_üê¸_Æx؇7ÿU™L·¤&À˜É·îg”×Íå’5½Ç2j!j)•êØb*_4};¸9à˜µ"µÜì²HÝçò»{>xñÓ¼íÖVežI·Š(d }4~¾fÚ7½àÉÑ&XäM-4­*Zï麰ç[áµ`­ÛãŠ*ô+÷¸J|ÿ@÷(% äÈ~ºÞÃ$ÜÁY6µØ¾{½”8FT¢Ÿûüh'ñm7ª…H àQ}´?Ù NêеxÒg†WėÛ${òº¨ˆå'Ï~È7§h‹»*NŒÅêÇ›øz}Zò›—èoÓ-„ Ü—ßé%.(Ò8ú ]™â}DýÁ¨7h-þqt‹ÒüNSNßHëè×K-%r·Ÿ~ÎÜØs`eÙΔ»ÌaÙjÃqfw†²¹ú]™Í¼`î¨ûa?yý–'ÇWfâ¥ú¬Œ×ó­5Ô=u¬A_pb÷&Lt«É3ZÿEÙˆ¦ü®ªßîwŠ©¬¸®»I—[¾ÖVî•9”\&kÛµ6ej?ƒøÚ¶:ÆÛ=à{åy7hjÉrJü^}‡è–÷àJª#³ICHé?zô©Ððºýø} äxÜÐÅê"Ž7_Û^EoÏ·±ÛÄÀ+jø‰ñ¾ÉqIá†Û|zÒ2”CMÍaÅÞ=~ìœ+x?Ú.>ý;¾¿‰BÕ"n£L¶¸~…”~ú¸{ð¼)04I7ræ‹E]µh•©zœù<‚¤ÕK¾ÏþƒfÍ‘%‡µ©ÚÞ+§tãÞHcª¥%Æu`z*팋ÔþÎt<ºz''#Kó†ùþt ¬þF}€ Lécgúr Åž,ôÓ×Ü2ŸÝá žðöv@߬ۋ}EóGûßêæä¯L.Õšæ~ìE}3öLY„]Ï€7mD¶(#šWÙÙ^11zm¼ìœ†[™¼“ÔÌy+`Ë 8ƒšk1W’HòÚ`ô8"p!°€€ ™gú¡¢ÖPdaO|ûLn“ý-&í…‡÷T…ã}þWš:U¾V;ïFx^©cÑÛÈä¯ëŒôð~Vx»èZe§$¤¥–î2üîZº_,‰äSQ? Ð7óJÆÁÑäS"Å’íþý -gåøðîS—oòžñ³wÖe?iÞ©ì¾èåAÿòŠ_À’ºWg†à Þ:¼³ª‘±N¦¦çòšSAcg–3Õ’>óžxÙ™øaÚÎ\Íô™“†­Ãp˜Ñ³ªjJÞ¢Ï2ý•FÔfÁ*h»Õ·Š2*D·ák<ê–¼Q€¼Ÿ!‡±‡E ƒL1¢È¯©-Í6;å!ätÃö³ï‰KrJÜA3ûq1Î"ñå<»—Þ —Ö}¤ ¬šÓ½k~ï™Ýñ;Ù– ÷'FyµQçê€êwºÚuc[ëžôÄ™¥Tîe,õÂ\ŽL5Ùz‘çÞp³îØ¥‹Ó™‘¨1ŽA_k`…uÚÒ +¾)pF¿œ'‰%QcÌ ¬X*,r›X¦gHëÂú;u|"WQk€ÙGb—ö’^nó¹ì”Þ€jO¿ª‡šš"5üÜGSvIÎ ?ïVy£¼Þ×;•Kñʯ6y™Jbå]LJ¼¦Ðœm¾úP»žùú!™G/«3$$×’?=`ŸZ@ŸòÁ^‹ÆÒžYŽXžQl„»åÇÓrÚ·gåõ¼¤mVB÷nD3_ÏÞÐîhò±aŒöbëØ$öò˜2Ùéú‰ÈJ8ÓaÚ—3òÌ38½Å(ñ3ü&«tÒÁ<3F]C…¸ºž¾kú*å+&z{cˆÍ1êIù¤ËtÝïö×/-ÿãÿàtÓ¢#Ku]j5ŠkkÄw+ûFƒzä\ß@dã)ËÚ¤n‚ŒÍÌ(Y[‹«¾9¹ãn/ïG&FWc·Õ+ûùÚ–Lñþöã´$·“ŸKÖ|ºf>Êñ÷R½ØxÊf"Hª~¬DAµ=®4Ú5çíÂûpQ÷BÓ;Ü‹\’M³Xúo_V)Û™Ÿ»*ó3Çš2ÜŽRk".´0pšLMS©¹†^aº Ñ$»ÎIa…/8yM+2Z¹@Á¨*•a+s^©­‡ÙmF ª”»mwð„žÜ¹²¡•ŸÑ=šzóÒjªþõÃ7gŸŽá([ø…f ìZáË»ÑòŠLû1•Á«dUOÇ›,H÷С£ÛÎdyAƒ½J¹´¼ÖzKÌèh(iö¦cï– $U¹Ì¼{ï-ǶSr/¡ÈŒç:}Øý: êw6‰D?~©ôرƒ¥ ynKªý6áÔ9ª¥i@CÍq”gUájP0ÿÊ|9«mRÖ¢âí¨©(+E݈iе1Žê ¾­â/þWûf2¡BjC,Ë! ¨¦vŸfÚ$–*Ú~¾Ml•þEÇËM¬£pþ ®˜½,c-ö½ïÅîpPþ€ÜŠZœbEs¢ð¦èýyLM¡t/»¦|)|uÒp`¦fT¦bÿcχ'Á~®™kB?êô”ñX[¬_lvôÄI¶Q‘Á&Û"Bœ’½¨ÞLc¯öúyŠË·¨YG+ [» {ëRé \¼³[½÷ÍÄ®T¸¥×Žîn.n«r>?óh‹jÜu:¥#ŠQHÍ9šîWbiX‘.ÁJ·Z÷°ÊhŠ–‡¼¬Vpi«­†2Ð/îïÜ€SäO­ áÀ>аˆôÄÙɆ&%LŸ8‹,ûÌ‘­ %¢2s¯?~ÛM²ø¥PJƒ›.=Øòf£»Aï‡ôHÒòä5Ô$`ƒUâÆ³øìfPRä§IÅÉõþKª”#7¥d.=x²U{¶½Èžs½RÎAå{^\màŒÂáêÆ<¹LŒuB ÆŸðO3¡"B÷“ªc{URåé- ‡GM©‡oX¥i•ånsí’ÿèÙ`âÊàoŒÛ=êuÄÐìޢ䀗ʬö_¶è.ùïkœ‚ÔR)‰ fÁKõ…1^ˆÊHógn—â+ž'–ÑŽ£?;è_ðô¶ž·ÊœÆŠº¹~;UÈþX¨S´'ã³»kÚ$þ6´=çõãbý¼ÍQÚy²VçùNؼ×+-G5¹ž âðBëxk Ð4¾Ýºù›ÖÃ㯢3Ìå7© Ã.¦®wYRV¦Æâ¡î'ÞMfÆÎó$±„7’º¾ÖçoÛBƒ}[îŽæš¿ìâ]ÃÏ­»úx¼|Ô¡ãÏø‘¥%RM«`‰§²‘Á9Î ed­‹³sדª—n¦1_:˜ùZÍrDÉ ‡·<ûÆ¾Š›wú=¨:¥É)ÊCš*„ޤÒÙô¯Œ°[Ü»!ç®¶m´–˜BÁ»¡*+SãTÙÙ×p47¡µ|(Še`Ï«Ÿ;VªuÕHx«oÒ íýÙüC/:³xkLåÑ}åÜ…¨ÕJ¹LìmòC¦‹[¯¨õL[š>œ5Kg5TÃþE¡x NÞÿAu?&uë2ÃU:[C“39™3µÃÖŒ žíˆ|Œ—(%—å‡h¯q´X+ÑÆ§»fOJÝ‚Hëø‰ms1À§ûJTe fRÝ=]¨X~4öÛ!µZáž‹s±"ÒH`{@Æ8.™!êý.´‚1x¢Þïú‹Uµ:æ¦A7ŸK±,Dg'¡Õ¤[=û²²‡Õ ôT 9¥rZ»kÅÚ=¶ßß$Þá3öÚœ_‹%éô¢”žt,¹IѬªÉ¼ž3ê%†Öù¿jbÔ.¼´Ú¸X(ív‘±»×Ñ[g¦öT]FöîYÎûŸþ¾[Ïæ(Gé®ì˜Š`ÚNŠ8*6•:íÖ[zòk—\J¹]ð; tˆ?ös‚ª¡Š¾¸ŽUýÌÖŠ‚ÚÍÆÈáý$Îõç›39;ñŠ&¹G¾ÚT|g;šVYÉü‡=ÌTeùú“7­ 2N ¾%½ø_úivMã}Ý«R¢†tS®U-½½ï(¢t)Fq=vßʆ¶›9r¶’,ݤĤq8ê+ƒRÎ}×y«d²v‡I™9M‹9Lá×eä¨3.jL=x€—¢½e‚Aó„VsE8ï.½U\¤¨+J‚è„¿N¾Æp³¯î{œºcWñézÕ%œn˜ÔP(¥/Ü÷ÝÈz«Áu¾9·÷Ë´êI8Êdƒâ|9¯êÂæ.Ò¨IêE6+]rg ´')÷—C•ü˜žXQ-xß§”ó²‰~õÜŒôÅãö¹'’aNÊ“‹R ! ÁŸ—UI_ÄűY>ÚñVMœh#wµ(²¹o9Köõä£Ó²§)ë@@ ¾nìK!aí,S4§X¯’"ÏŠ·â˯ŒŸFŠ‘…·'£Döã†X¨¼¨’¶wùoÕoj¾³90’Ýa{` š‚L/ÔL9I¤Àî`’5UÁœ-з–ݼ‡e{®/xQÉíez„_ü©ñŽÁ¯ònÓ7<4mt§â‚ø‡«ùøo©nzò¢…CÔÓ §˜A9‘*š6°º©Ÿšõ±'sÅ&ÜlxE•ê+T Õ¥½¼Skz‘.çÞ¿—ŽŽ8óŒU÷ˆ%ôÖha™†À½öþå誹ȶu¹F ~ž@Ó[Ï¥ü„ÅÞLžïnsIz-Åqµž£ºëe££öqCÑ«\¶<^§˜3»e~F9_\4« t8Dßriج¬}‹•5oö$*í'î?áàçx¬Î´•"TÒ1UsH÷’ê-œ~^+%¡U{pÜÇÓÁðð#YwqÁÁÝ&aPíŒÐØâ¤‰­Ê%¢‡·Üà¦éŒÅ²v…Th4®ºav¸gja`Ê6ü]\ØÀ‹Ë+Þë3ÝGw™sKû¤t4l¾jnŽ£vðEAßúÒ=d-[StjZÚ~Ž›^ôüüëfZÚêøP3¹¾¥›À#mq7²³%-¸èð¬ N&F¬CžA­x,6fõÍD_ZêI>ã_׊æ(Ìfù–Fí¸‡Ž'QÑ ©«ò‘’Ô‹=þ|©”ñ€çO{îxJ¼áì_ðuN+á…3s‰0Íj?oÕ jœO¸Þ³û*› ¤·‹ºéˆ2]ãîÜZ¾ dœË+_È?xD9\ò¥WT"ܱeu³ÙWKXÂý•­‘aþþøC>ÛOSŒŒzê×x’ï‹'H0%ÕÜ/š ~È 7W g§Ðà·Uxk¬®WB=ßp:6à°øhÝn?9GŒ$9%j•èÓÀJ šâ¾êtnÐ[ê¼Ý(k•Ûë¹:ÿbï“\»a±1Œ=R»Zß­Õ´)y x¬eúŠ+,ætÐ;c"ì[ÂÍd4¢iåÌê˜mÍäÂ35÷D½cFºé5­AÁ×ÍÞHŠªÒ%DQtD!Ü|Ää ¦Å =¯„“ÞNÝ”#¶×0zþ#é°qЦ¨õ-/Þ/ÍâhªrC©~6á‹ìÙØ~;ÙÝG5ÖºF¡ Mþƒz¯IåáÂB“¨g#WOU˜Ë™i.&?épé£Ýì²òg6¸ÊåÑJV-L›t£8õ<\Ï]…p„_ú¬ªÄ¬òoì•ãsË‚&,yŠºxÂÚÏVFº —Gõ°·Í¼/ »Ö9X¸Ñã’hî%¶kšõìÒ·®ž…ÌÎ?R+‹’Ž3y‰ô¾†ðô5Ö;ŽºªÂ)Ëày‹¨û0\æA®ïã³Á=)d½˜-”*ÓD/ŒRd›L×}T1è¯Î6‚þŠãSÊIÞ"w¯¯ËÉV$Aí²–v–¬3ô/äQQ‹…§¼‹âº |æ½ • §åšŸ\£û8ÒŠ¢AöÁ+}÷h³¤Å®ôPnÕ¹ç[²|2}u^c(hÅà>¡Hý\ÄI-u¯fïf[`¸9–Ç£x«úãUCαwÅ6z5tz0#KÞÅiÖ²¹–Ñ÷x̯õ0¸×H’“ä3·ú…æÑ8M¤xmL}³ù±Gv endstream endobj 630 0 obj << /Length1 1398 /Length2 5888 /Length3 0 /Length 6843 /Filter /FlateDecode >> stream xÚuTÓýû6("LAB¥a”Ò0º¤$¤[’±ml£AºD@º;%¤„$DAB:Dº‘þ3žßó~ï{Îûž³}?÷}Ýõ¹¯ë;NV=C~E(Ú¦ŠFáøABÒÀûÚÚê a ˆ€0€“Ó‰³‡ýmp>„a°H4Jú!îc``Þ¦ ÆáÚhPÃÙ‚Ä¥AÒBB@a!!©¿hŒ4Pì‚„µ€h à¼vtÇ á¾Îß@.7$%%Á÷+¨èà !`PŒCÀð!`{ !‚„áÜÿ•‚KÃ9J ººº €°h \Ž›èŠÄ!€0, ノ Ô;ÀþŒ&à!ØßC´-ÎŒñ{$†ÂâCœQPˆ¯4T×ê:ÂP¿ÁZ¿|À?— €þ“îOôÏDHÔ¯`0‚vp£Ü‘(8Ðiêªj àÜp|@0 ú¶Ç¢ññ`0Òlƒüj TUÔ‚ñþ™ Á qX,Òþ猂?Óà¯Y½vp€¡pXÀÏþ”‘ïî‚–û…vEyþ}²E¢ ¶?Ç€:; £NÎ0uå?¼ ð ÃÅ„$%D$Å0' Ì ‚üYÀÈÝöË úiÆÏàíéˆvÚâÇ€y#maø€'ìâ0Î0oÏÿíø÷ ¡Hhƒ#Q€²ãÍ0Ûßgüþ1H7 ¹ž~  ÐÏÏž,ñ ƒ¢QöîÿÀ­XPMOQÇÈ”÷ÏÈÿq*)¡Ý€žü" ¿°˜$$,”À?xÿ;ù§¡bÕQ¶h|Äï~ñõwÏ.HÀõG!ÜÀ'ÓAã© rýÃt !1!þ ôÿÍ÷_!ÿ7šÿÌòÿdúw¤êloÿËÏõðøÁH{÷?í›x,"Ö ™˜ù™-þÌ*;­jàÛ\?Ò3Hs4~e¶gÁþZkÿ®4v/DiÑžÏÓІávI¯ fü&Y°êìwT<®¡kGõj DY·ŒŽ¼½¤æ icäàx¬ Gë_í + €Æ¦êmý1ð–Çg‹êjà 0•ý“®DÜxQÁé™t_‰Ä¬TÜÕ¸ø8š¹­(/A«ZùØ(iFÚ5’,]è÷¥µ= 'Åu%÷å/ Ë&5 ƒýd¶³ ·®UyôãŸ6÷·÷Fš¯O–l 2:T µ-_ò£®ÏÈë¤ë¡ÍÜ›Ô 7¿Ç"ªBªÕPpgítž<¼xGBüÖ¹½óše®RïI¦GЕn¾l“³x%lÎ_lò¨q© Õ‡_ëYoõ›Öz.±ZÁ½Ê\f@žþn"1”åïb+;²4I—jæ!#Ó] .¥te& Ú<°Ž°…€Ù2š?Ä‹B¬\éI¤Tj°À#•Æëý$ã>å—š 7 4U[¿Ü\ݦRO”iƒÍŒ%ÈæZžz‰¿ZT9uŽçª+è^®Br«4)ŠO†=•_ôñ?Ÿ¤•LfÔ¢æ›]ôªc¿#U˜F ˜ÝÙfˆ™è}ž‹d€ó?ãì÷–ôñfµ|ª/s/Žs¬ÕU{@RØcsË+aÆU:¹•hû;®’¼®‰\•,iX ŒÐRìR’l%ªux1dûä"í%q‘Mê’†ý|á“KYfØfÊ$£eí“7ºQÉk.a+;zËÊ ñêTLù‰ý;„ÆÓã’ß®Q±ðV·z<ŽàìDô,2¶NÙ|¸ÉNóÕèŠs=¼:l4ö`Pxo-W™©übÂ.—;œhøæi÷+»>ú ?ɅŶÕÎSp.—‚wn•CÒe`aßP³èÀJÉ^!M$´ŽS£Í|{º¿Ø1‡§K‘ ‡‘šügã ÝÇwY2³\ Ð=ù¦ïÌ€|…Ç0³Be›¬éý˜µ©€= £~BFǤY œ0GF·¤¾BÌÑŸÇÞÖÅ–LUTÁ}N^4š\aAT|ÕÈìå~ÌüÊ“4¥0í¨l©3ôЗñN©eì‘ Íníï¦]/a& ,Åå^/+“z`[,ï;©®ˆ–Þ_`Dyé²…]søôp¥'µJùú„⻌“žUf²ÝÜÃÔ‚)©Æ±¿‰ü'»oíP•ñ^&!®–Ã`#ÞqÙNOMUyI‘+PNqÅÉúÇa­hNî23µAšÔÙg÷cß­Û]ë£'õ>)ÁÒ§:¬MúñžsÍ£c`ØD%³LuŒˆ%KàÚ:ƒZŽ$nþ‰þDð ‰N³Ø=ó¡^Ç$céUßEƒ× ^q›ºí6ÆŽŠ]ŸÞ÷½æ¥üï9k-ï!ú ›>i²V´@‹ÂÛ’ ¿˜ôUŸ9](Wõ‰„ÄRÓ(o’|@"Δ¿‘ïèùíŠ9KË̼kî7×¾ìLƒË8Õ>×ða<“Pb9^{ÞÔT³s®çé^Å  VWs[í1ÍM£‹MöÝÜØ½|‡¨:ìšÇä`Î @n]êz”(¤Î8¯"u¡ÝɃî:˜L7HkÛÐ1WÎ^V¡¥÷™aó’X ¼BÖ¼eÙØ3ňè¿Ð’Sº(âT:U‡§O™>y“²ŠÈçi0Bê†Ú OEg½K×ÉTÍSÑ$ù<î« .Žá~‘ºuséè©%UcíñƒœÀÝ…1UѵÎú½âï_ˆ® tâ JŽ,j‹ Û]Íðä⃒µ·ópÿ»ƒ7–j]¨@ªöb©pTÖEÍFN_çtà$ß`Ð øÞgëa‚•ýI¹´òÖ ÷ã7r×0—oˆÜ¸eÁaÑA›5ÒÓYyP£±Aä}) ~ÃiîªÂÃw6ésÏÔÑÜ|_+Ôç3„<’||/Zý.Ïô ‰!3ÆÉÁºt‡d#Ìd=Î?ÜpKTXXã-¿¶ìG5ªLº7vÊp©*rPéÙ©™˜èNž«¶Yñ² ┪ůªjvONF)ž÷Ò_çpù!*&|UÓûÍïa\à¢[QV oÏ„âEú\ñØÁxAœ‘ÎGrUvƒöúšB=t+bÅ­ƒ…·ÁHÜv¢ÄDýfýhc_,!B©ï¢«ÍÿÕíß=»eê>Ðd«j?ó…ñ¹žnW˜É»\¢–ZéýñKk¨’"žˆ¬°gÊ%±w õf[0Ûõ^ň®|µSu_? (Â51ÿzkEƒÏôW×÷ùêa|f ´m-‹8Rè JÚ´¥„ÍÆR3áüÃàìDØö€òÉøb¥[.êÓØÊ–£E?h‹ŠkoA€Xc\²òfVÅò¢Ë^ð,ÆæîZtm^q¥MY´‘{¬ç±¨|#—òÜÞ $ëÇø ƒâ*ˆœß­½SR3èa¹Ý20šOûšÆh£ã{n7°}ØñéѨç†ÙD$ÁŠq$‹ŸôÝ)âÔ‚£²ñ;G/òï9 ŒÆìRÚ»^Êóèì ½ÿ*öá„}<¿9Þë[f¿sL«Â^`-iw§mf—Ù,'<@ÞàÑ{ŠÔ ñô+ì‘»ßVùvåòÔFÉ,(Å*Cd¬gÝ),¨¥V¤cŠWÛö¶ 8>öòSö) ïGÆp`V¶O*ç>&%Oímotí g_ra:#¶2µÏ"Æ—òê 9æžß7øòc¼¸K‚µT¿“Ü£Á»qaé÷ ^à<­kè%ˆu“mߤ5ÃzëŒCvè ÕMNŸ êa€úèá¿À ny@‘ŠçÂêØ ±í>—=³{¸ð†râžÃ›Á ¡­ i¸P·½èJ«6F[ëüÂZöºÕ«b&ÛWU=ÑÔ“§BÍ}k--_»=ä .úHÖF´ÉüŒ,`ZzWM<€Y¿wöܵuØDxè†Ù=@5Ì3’6S”Sèqvd S“K…°¾éOèÅ3#|íè’VH^ñ–«.­kk]PêwG“ÁÌ@ëjêàˆ@I Ùï«Öü:Åörg½áù /®,ßOx˜ˆÖÊ×éÓM«ìøx™ó1A@лó8Õœ§3GvcÑ‹V;:4{‹ÀfÛ×yÄHœpúQ=ÈVÅ©ºÛ\ñmÄY„ peMÑÐ2Ø48#ò¸¢d6­°c-6RÌõ˜*þ¾Çû‘RŸ%i§sÕ‰G«<,ÏLÁ/ìjƒòQšê ñ–&Õ°.šÃÌB?vFÖ5‰¼l± ¾ö>‰WKÁä'ÛbV[¬ù„Ó÷ëIK_ic‹aÃ9 ºÚ,Jh¥~±û$Æã×ëÚ3^Õë¡ÈÜßhÖ§’}ÐáÖ¦¿»À¬¼·R§Y(ª÷3qüâ]LaÕ¢Ø0:äw²“‘R]@g —Dº‰Å­37AZ‡hx*ëlÝ?¿TÊÏ ì"Q\]”|!¢hΖ·‹kAøÒÃßM$æÍ÷ºå€C$Qä>”ùÓAâ%ö~¯bv®sñ#¿>¦„bR_ººçùÅ7TÌ¿xùEǾ§6 tk@Ôˆ½1:cèm$i¤9M”ýªU}íÖ-„ëù@Ù3·§ò?ØôÔnꦨx¹{¼ÐìWÊ8M ÒßäHŒ4›õ,ØØë ¾CY<V('®^—uÄ}±ªgw2™±¾Ml¦TÏí¯Ä>Æ8Ñÿ–=zÏêǦô]0ˆlûFÚ’ZR)…þÝ-òég”ÈB(V½6‰nóŠþe›-ã1¥ÜNþ›¸LØ{c#‚°lcþñ^®Ëö ŸoÓg„e¼Õ®~ÄЙ;Ødº<Ü©þfép/#°œy=Î܇Krþɤe¾#âc¤MZ€_Ò)Gb‰NrZâxÅYÒr@zNMÆ_“„LØõ€Ò*»o\¾/i‘Pa T+L,¯ióªN—Uuz6‘~ ‚ì,×›X_·*ÛYU÷-\&,ÚøX9u{Ջ䘌½YtÍað)¶­L|“‰@!ÚÖv3Ã~¿4¦Y];Ó-²=×TLÖÚ¿ È­~)×&{%Äm}Ü„4d³¢Tsµ Œ®¼„´ð*ò®Ë¶‘A·’§ç[‚B=ǯ$£Ú AOÚÉNŒ›wew\r¾m_v?ÙÂ=ÌØðyyUà?3oÒ$çÏjâHî¬ÍIö 6°#Úd°4d–]+Ö$˜„Ù?R}O°¼óе`;åÍë  ñÔ“NïÐp)},ƒì¸…šÊÁóÓUãŽG—ö߃N£i£¤ßN3õêT–—­WŒ$è]5˜Yjçc¥¶ÃiójØ|ahZ—蟅«Â9 l핯ô¿ÞH&n&Hó }ó âMx“ÀõHzÿòRk•Ú^i>çp?³Œ¨þšqÿu ÒÆy*~=‹£ó/íýUØåÑ»ÃÊ2_‡öRÁ•ÎÅ˘a‚üGì쬶MûijßF‹6/OnKÌ?}" Q ô·§|NÇeiG4í”OÙ¾AòS¡UxtI^¶5fhÙ"ªs7ž’à‚“—*=«|öfJ AȸJ(ì/BOrg h ³©5ñžàÊ5ÉŒ®jÞ„áá‰ÙÂÚîµI>Óí…ëeõÍ,¾ôåÞ<¼60å)_¡¯aUì›.ŸK/èÅv=ßPÉŒ›Xõ1,4§Â¸2zß3>o«…¥Š©$@‡*~°ÖKù7}2¡SxœPé8êý‘´Ä5÷”Émh1Œ>mÇ«ÛÜ–›_ÌgòºyÁ$îŠYÄ_ªóo(öhJ/ÂÚöȼÀ=«Ê¢€ð S ^¥»Y(×N6oY~ßqZ¤ßZñâ+"·à׊ ;"]PnÅ)µÜÖlÈÆP“÷Ö’I‹6ÿd‹ÆjŠg¹¥âǼ`×ÌœYß’Ä9ÈeÊñг!¥å­1‘˜«‹¥7  ªÙ “xóõA?öPÅüU¥+øÙ‰§ùD˜vì/Gù¬¼ˆ?ß°?ƒ_¤jƒ_šìœ¨µ×u++<§3¹ Ï•-'æ›2ᡟE/µÊŒªTDõ‰‘3mc* Ÿ&|T²-Hyt(uý³1½‘ ”6ö×븽Ñ~L©nY!Oí$ÁqÄ×¹ÁZñÉöû}nãôgyá˜dùÕôjÓÍDLK~â«dâKô$ߘ¬œÝÝ™P×Ì +˜sX¾ÌIÓ·LÉæ®|þØöó9¯û*Óëº_øµ‘¡t’¸tV5æ<êIç™l vÚ­‹ç „^3Ç}<5ï˲ïÂ¦Ï  m! +*Ú|i#y4Ì´Ü~›RP×y'щË$ðìÙ1 ƒ€”-O÷À„‹·Ô.:5ßÛº%lMá’'Ä¥ŽÇ9E' —ÏúBJW%ej¾ä;™Í C/‚(__‚‘xÕìîŸÈtEÐo­¦«i´õm’j¿z(ЉÊR·½°r‰}2×ò“éêùÀ&md›‚Eè/½dÃÿÃQ <Öê/=ä&|ˆÂ¾kï xpímTëýX²ORcÑòÕ"Ô|°è$“øÜ§kåÚë{‹´/¹:âÍuÖÖŠ›»n]^{¦›Â ¥=ÃTd~@Ý $1Ë™jRÅ)\u›.·8¶Qëk —kÉóÆÎÜË'¥*ESÛÝ#È\®W› Á”Ï{îôb™ê¸ ‡‡.Ž4+ &±›ï6wójóë> stream xÚtT”ïö.‚€ C "0”„twHˆ„0  13C HKJ*¢€t§t#©tç )¥Òñãœóÿ{׺wÍZß|{ïgïwïw?ÏÇÁ¢«Ï+g ·‚(Ãa(^> @AKKM ñ‚$P”#䯛„Â@Bá0‰ÿP@@@(ŒO„Âà´à0€º«#@@ ðPB@TâÿÂEÔ ÅP‡Ã H¸³'jk‡Âó¯W˜ ..úàw:@Î ‚€‚A0€eqœ9ôá`(åù\’v(”³?¿»»;È ÉGØJs?¸CQv€Ç$á±ü  r‚ü™Œ„``EþñëÃmPî €q8BÁ“á ³† ˜ÃújšgìXóààïÝøþ]îoö¯BPØïd wrÁ<¡0[€ ÔÐQÖäCy @0ë_@#ŽÉ¹ Ž + àwç €²œ„ðïxH0êŒBò!¡Ž¿FäÿUsËJ0k¸“†B’üêOŠ€€1×îÉÿg³0¸;Ìë¯a…YÛüÂÚÕ™ßuq…¨)þ…`\$ÿñÙBP ˜¨˜0â€x€íø•7ðt†ü ürc&ðñr†;l0C@| 6̉䠮¯ÿø§E" °†‚Q+ˆ-FòŸê7ÄæY>ê0b¸'þúýûÍC/k8ÌÑó?ðßûå×ÕSÓ4Påù3ñ¿còòp€¯ 8€WPŠŠD1/>ÿ,£ ‚þmøŸ\5˜ “ñ§]Ì=ý«e·¿ àú«nÀ?‹iÃ1´…¸þÃr3 ŒyüsýwÊÿ⿪ü¿Xþß )»::þsýŽÿaÔÑó/ÃZWFZpŒ`ÿ }ù£Z-ˆ5ÔÕé¿£j(F r0[ ›y„ù€ÂüP¤2Ôb­ Eíþpæßð—Ö¡0ˆ. ýõqÁdÿà ì€ù€ 1Äü!1jCý^ã/‚ÑÓ?ûP‚áÖ¿„'(òB @ž$˜Õc,€—F¡ÖßÔðóÁà(L 3³ÀŽ ùµf1¿3f7pë_~’Ô»"˜ÃSsð¿ìß ‡@< `’é 8øQ}EPãI™ƒ;ïÚ$þ^Ò‰± ïPö3"T—ÒˆÅrœ~zÚŒFòt§€ò3ûmy—“Œ…Éï^èJæ*Oá#^få [f«˜‰ë#ì±x¯cFÖ Š:¬¬' òL]Xºw#n¶ËXÛvésPx߫蘊wç¤ÎSUnÔnn-ËKÓ¤e7ÚYyŒª·ê5XùAw/sÅ):p5Ò,,Q;…UC²ù”$νôæRO_ïeçݶu·€µ}ö—(J¥G½ŒŠÂ„¥FsïÈ/2?¸m§PyY©Ü’ݶî*\äN8©Ð>´Cn›³Üwę́¥ë$ÚÉÑT‰{‘’Õ';[ö=Öl¢(¶@í!0Ô"ãåçQJ?`uú2§/X^HC  ÝÕ¢…#fý"½ú¿.oþ ÆywU\ •–Ô@¼¼4äeÚŸvAµSe|µ[)\ç°ý™„ÛÀäÈÊ'F3wbžqd¤N¨F}õÖ ‰5,ð‹(É#¥N­Ul¤û`vk,mÂÑŒúH¶0Z¼€Ý»Š_0+>«Ê¬üNŠ÷Ñù–@P¯ÖÙ'ooü­RWHÒͲhŠ˜EÈ'B³ yߘÐkÈÈ’œë¶²jçéýºr±©’§¯Ðñ‘ÆÕ³žù¡¥8Láo–äŠ6e7:ö¨Š=)îÖh“ÉÈrh™Ô§'§Ó0, ˜ó7’Í”øaõqúªÝ¶Q.å:¦›2*ÎíH°—º®%³Aï yÚoïEþVd+xÜÇEåG Ѝ¸žØI£veÞ ò„ŽlyEªšØiû±s蒥Ƴ¹8D'änLv>ø9¨»«QPFF}îåB×òÚIÐ =­ó°®`‡ÞbÑ[‚ÇÏ×UÔ|“ˆÔ(?LJ”²P=T¾êÆÜtM À)õÓ0£y ‘y7{­°Küjéën¶¾¢ÀyzC•‰På™ÃfEÓg NC ·)úøÖvFÏ•‡Q‹Í¾Ý…ï±[¥¹å è¨=M°—¦Ýë Ô›N­ýè9ÚvyÖ®"ÞV´Î`Ì–ý#Ä,Z&¹§¤8E‹±èà…á}Ó冷QOž› -çóV¢E\ۊǯê½È®X÷’{®•¾8ͪû7›ÞMƒ©¥S·gíõžtÍÇ¡d ›ä(å±5†Ôðûë&twmáxÍ ²°ÎXß'+ðJÉ£C ëdîÔßÜYç;±Æ¹m@Fò¸Í!7 w÷ÊyõÄ)Fy~£‰‚½ ïd!ø½$gdÜ–NZäÁXPéWÜØžB•ªºLÆ·œSãy»:¹ŽDvjøü‚ûq†Õcœ/I/}”D›÷`wÖ±c±ç’™$ôà;=¬X7ãŒâ·Ï\]›8“È%A±t|ã á—>;Ñ5m Qûçéã??-z’Òã+}äRê*¼^pzmxÖ̳œÓÒÆ!âìxEÄVÝmÊ2ÓŠR§ÒÖ5hÜòãZªØÏ`Éæ—]Óêï0×îæåC8àBïXK“¿œw§­„äSP=ÑÍ£’6ÊBÍR–çOƒLV’Y°EnkD ê¨ØëízÀù>ºã¹rLIsðT–KXêë±ù i|O¾XI•z€&lC¸òÚ·¡gêXìœOÊ‚ìÌgÆ'[CíêC¦s& w›Š?a¯µI“ܧ üÖï WßEMå:û§þ&‹›ð4½‘ª9R#;Æ~ÃWºI8aFéæï öüJ×*Öíסsån§–cijË?UKûC¾Jn®ë¸;Ç.§½âÊÑ­û ×Þñwã‰ga·Ë•Yº„w.¬$¨†{enj‰û+„–É£gnMÈ– ·7Æ6\*=*¸A˜Íkç•yâ_×cƒKÓŸG|öÂú#pú*GpiKÚ/pûIB6˾&õž‡±…­gÆ7q1Ÿœ ¾•‘Ì—Ç~¸z\Á”| ;âœ$.™Äµ2TÄÓX›¶él¦+Tkû6K ʉËÀظI…#üPŠ7m\âÛô<«x.|~I "Šyèù` Ûϼ8…ã éè¶+G9Þ,KN)ç1’‚…&DŒf }þÂ~p1†ýî.Ń缒1ˆöñÅBíÎ =e¾lÛ÷lm±»–oÏŽ®^N¼xnõÝž <:.‘àëˆz”/¡– ô§ÛòV Rž±âµôö)îŒY0•çüøåÓýº„Z‘*•»Ë¯”íªy%ý̈»ëÀÂïMüšý3ƒ§lW+*)F Þë…c=†V™f=¨[0ö¨µuo)c|qe,X5.¸ÏÏžL+ÏKAú˜WÏ–öxw¶Ãm—8 Ä5ôÁþ s7.Ñq,àZûÕ¸È 4¬@OUl»úã„!c²©ô'aIð±ìÇÛ‚â8POe’D*3%­A;Á¶Öù·g¾œiMÞºGI5''xÒŒxô#Ïý£àÄŽÈ}Ç-ó^ç?dQ#ëâ%x,x:îÄdJ,{¡4¤ ®ÆV#Jˆû9-uÍg$h7·ËÛ,l°Y«÷—±ˆ’<Ún$gñ@óøWd|¢æå–ùW-\³P–:; b:8Wú­~ñœycOßLÞm›‘­šAúƒ™Éߢ­=>*“Ë'![0@OSº@yê¢ñêŒL¿g“J^u˜B¿tŽç|P_=BõM6Æ¡è:FO{%sýQ†…1Ôäýé±Ý‹1ÙU‰3׃¯ÔC]†¢%øñyTãR~SàµË©‹|¸Ø¨jÒÓEwßœxÐAú"©™ÝFå¡ÁN˜ÖXÜJUÂÈ,)1•s¦9 ÷ñâö¬K( c™dBí‘ʺMo[»U÷ &6,?ÛPqákhpÙnãuÆWo¦6ø®’ï2¯m0‹z°‹¸0ˆE’t—(8ÚM‰fîÃK7ì¦5ós­ˆY㨠|{Ãᵑ¬„P+®ÃÚÚ´ýÃÆ‚N¥uø š&Õ—·vÑ U²¶ííi–2ãÓÇ7¯×ßqd{sˆ/¤^å”W—ã ä¾²OÜ,jgaLX~)œ2e$`yLì‹;oÅX/*ŦnZñT,°òöŠ£¡_˜"F[íªŽ|8W&4D¤IòžÕaê3€SÚz¯±¡.4Ínr2Çc‚x'òÌoÙ¿Ür<ô:qµÉë+ã.h$»à8*†ÄT7©Øœ|+ÑR<_ ²00¸o±Ä®Ï?*-ÎzÄvSmҽȃ¥1^àtS²tw"ßV?ôHíõÎÍ_Ï”à˜s _ &?£YðÒS¨µL¯ô Öë9Ú‡Í;µR™P)39Ÿ JH&Ž¥íÕùãÄl7_y_Ó=tµÈK -RÌ‘,•u~k¼ìp‹S×ó¡hÿêƒRWk5ÃáÉÜçê!)÷F»¬ÂmìÐç_p—Ê©ä†m’‰TýµHãX]˜—¼o¢Q(`áÅíl?éèIì~“ H/°ÇL©Y°Ôñ— á0ö¼Í“OÌöC«<ÃÕv•ªÐëx”R©ïðä"AF´RSÉé#Š€Zâò`íªýœ8ÔH”¹HíŸíÀ=~¡tQûÕï§bãëš!9““üÜBëå]­çþâÖäí ï EÌ5É'm`õêd|Ã[&Gè”×﬽òôn4lãÅÊ|¤Þ ¸ ¡DGŠšÒ•ï ”æS}¥å}öÎ kI¢Æ­W ß­ê¦ì~$È"!õðòNWÆ…1ë[5½¯Ûã Q^Sj¥›_kdóŸÑXò¯Ê¡5ÔÕ²_ôÊÀ}à¸dÉ Dý4ÚÉM/jÖ²vì”®”bÞìbl¿ðÇsy`/ËÁ©hWTüóà~W_~°0o"Ëè¥Kèã³®qxÀ‰ì3©C—h5¯_k_ÕðÓëü+¡îÉæÁèÅsjöWЂ×È|~^FkdÓžnBËÜx\Û|mö çä½gßoåWíLH®f(Qáô!XÛÞÝÍ2ørÖqjZØùAß§réŸMÕß~91"žžXZ)"»³'즶’(Ir.ò¡P9 òî „’©†.‰6M?%•àG"[!ÏVÉ•¡²Ò’“HNæow oR_@‘7|xÅj(AÙ”yZbEã ùÏ._:tϯc/œöëñr+/ªm÷òœä»í6’ﬕ)Ä[rSþhwXWKôÙr鞘Ù*’¡wÍrµa˜ÒÆ›ý(ÏÑ©„U‘S£YÊŸ‰Rág0«ƒÆPÁƒ¯e~ê¿€J¾GŸtb×7²êªóÄ ËžXÅž1áäy÷ô¦æ&pMOÔŒµ6¨txãÉ„×tô·Í¶\ýŽ¯È¥ý$’ÂóÚi48”N‰ ój»a7gUR‹§Õ‡Þ˜¢7ûqÇOÞÞïƒ<ËŽü×Ú,ÓíÄfÞÂ(Þ÷’rôc¸`ï”\£¡þ›6|iÂ8­6`šÛ>Õr%XœU0$r|ù º]JÕe¡Íq–;òMÉú6%ïŽëåÚ“ ¯äÊe¯´$ 5ïø'à“R~%ägùxiÇØÅTæ¨4ðbñÞ´?ÏaGùƒÓ\á‰Dâ€GÊpV’¸È‰@Ð÷ðݧ—ÖÞx°ÂÚÍ¥ç´ï^O"¨øH$—éžg@©K3²aO}DùãØLÆÄëï=„»|OAÌÇû/5ÑÃ*wv×?JT…o›Dç~2Y"¥–žòÕ N{Ps7˜ì>šÌ¹ÚÓñJPÖ·7Ó‰t-BÃ`3‡/NA­¥Èývâ§9Õ=Œ?{þùÀKPºe|sL…À¼3ÙÄrwz(Š”ú\ ïÀ>¿'äË–ïƒá®ü’O+JÜ Ò6 ÷„.û¥'vä°*ëԪ͓Koݸ=¢éürevy—ÛÕÒßðÉ>.$|N2ˆËr!"¾b×~J¶²ªG‚ŸÌñJútÈcD]0È@³zþ°´ <7¹+†SŸÿ¾OúXã¼-³Û´Ó©ùëÃbuzåé¡[ªŸM•å]ÆIá&$O.NÑGQem㸻b>ÍLé7JV¯%kò¯‹qÕÚËTÑ.¨p|óÈ×¹J4¹ótfIÖìý-‰i|®ùúЛô…Ì úJØ?Ó'ƒ€’`Uœì˜+Š5¸Ü¥2(ö¡ï#O’±q»e—Í¥¼9iê7ÑÈ‘äøœ…®&CÞNÓÀÃ}ŸQÈ;c•j.g"¶V»£Îjöô¼-eÿUN¹µoùk@ê] o<È›‘ÁæÀ¹Yã¼ì-x’ɾ‘zBh0[¤»¤XA€Ö7®ND_§½©£üBv5> ý|¹“‚{1ËH÷Ö$Ý)¦³”·QþøKœ– ßÍkõZ2Øâuõõëí6ƒ0ÜŠÒ½§¨#Â?SÌÆh-ëÎÂ`±KŸY¼‚öÂÖÑTQòæ@…݃–zþŒ>/·šÁTÉe¬´ù J6JùÇæu¹U¥êëR_Ò])Ò®b;ùC×»µ[ÜGšb†²Ëã…ÜŠ”Ó«3ý]nGo9 T<«xrzç.Ø=o0º?ŒëÖ‹ -q¦nߦ€.>Ÿ¤w4hÊUñ¢ÇAÅF¬ê¹ž;¹Ç†Ââòá KŸY§jòYóf5o¯±®"öAÈ÷ú¹™VΟ²%°–öÀ/FU%W$\7F¾s/W{œÝsܨ˜¿/ýi<¡BFk›øÝëú†ùÉÚ)q»bà£H¼øæº,Ÿt)ûGFÕc…P¢ûŽRˆË¨lN6J&ÐÓ¤;4@áë\ÈJìsŸ;ŽV¢(û&jµkIz“YÙÑ©*<\Qsx §ë«œ+¬þ$FãV~ ™²feDÜ=ì¸a½„ î§Œ<úÒ9ÍÅÐëÆŽÙDæÆÆV¶{«?îœѧ29ðuæñ÷¤ñµ€j©j½'̓]¹QuûéäjLõ(:=|îÍ(rjE£ øEéT){Qrøè~QTøCÝ·Vá ŠšÝ?î Ï91˜&Èîè¬ß9wŸ£v/Yliz¿WÄØ‡&‰«ªn½µÂCxå†î€º‰‰ˆz¥si5H´¸Â.ïè-|è£üü.&Z|ÀÌÌȺ?õ<µàêVõp>¯$p›ÌË–çÑ&N~ßøÐee«âð/»­Ö‡­5_Ϙ›(®Ñß6Št¼%Óœþôµï »WUzûÛM¿qê:w¬¥4q¾¯òFõfÝ_p"9—ƒÒ±ïRV‡h¿5–/霃–´žI¹‰9UMu1ë°}ÌêËJOTó^ˆ“#LO¹i KiPÓÐÜeÄÖxëñá‘ äÄŠ'ùÂ3:Óž§føõØj¡Ë­›^šL!Å'÷×kwˆØ½‚6ÛßdÞ-‘óe&ß­DjÛÁ´iäU¯³Ž¨Rù¼­ð$R}.®CÙÏâ¦*V™±&Î#»¾à´'á²Ï»<¹zÄÀðé4—-`­Q¯5™OÊ‘ú$ªm};“YíV„côöíCö©–*+rd]F%©5).Ü€jwØ{¡Ê3ÒÑ+ß´§ï°úPì®MëÒùdòÖÿ¬ììí4Ôq)xyóâÓ~o ïlÇûÏ}»{í‹)Ó”Û‘?-¦ñ>jîê?Nbû”õZ2 &(3Œ¬ç‚Ÿðz€+G²)Q•²Df󺈓Ù§PM?û=âépYñ£vËGW~ãÎòDblñoÉe«(QâgÐÁ"CVVÉ– ìK0]¤¬k+¶íMò”|*_i)Úf4þl¹á¢jP³F6ä–Zñ² Od9«bB]ŸÈb[õfxާü2ž3JëtI3&c†ükIq.‹é=Úo·ôÇÓÈÁ‘t3z\–7«~0ø‡-£¶s¬ü§Þ˜ŠiBí†üõÝfêñp.»¿ÉLM½À·Äaß+i}4<ô½HY¿u/LŽaŒùud`3U׎%ùpÿý!*Ÿ‚Ì­g5_ù[Œf»9äx„+rßÊ™®îp+èɦ*êN:Ý2…î÷OÝ¿014ÿ¹:Aì endstream endobj 634 0 obj << /Length1 2760 /Length2 24470 /Length3 0 /Length 26017 /Filter /FlateDecode >> stream xÚŒ·P\Y´.Œ;ÁÝ‚&¸[pw÷à»{p—à®Á]ƒÜÝÝ î ò:3s'™ûÿUïUÍùÖ^ò-Û§›‚TA™NÐØÖ(fkãDÇDÏÈ –Ubb02²Ð322#PP¨˜;Yÿ#P¨Ímm¸ÿPv8d"N =Y[€”³€‰ÀÄÎÍÄÁÍÈ`fdäúE[n€ˆ‹¹1@– ektD ¶µsw075s…ùŸGµ €‰‹‹ƒö/s€ 5ÐÁÜÈÀ kàd´E42°(Û™Üÿ゚×ÌÉÉŽ›ÁÕÕ•ÞÀÚ‘ÞÖÁ”†àjîdP:\€Æ€_ ä ¬gF@P13wü[®lkâäjà€VæF@G…³1Ð P–”ÈÛmþV–ù[ðOmLôLÿºûÇú—#s›¿Œ ŒŒl­í lÜÍmL&æV@€¼˜ ½“›-ÀÀÆø—¢•£-ÈÞÀÅÀÜÊÀ¤ðs€˜ "À”à?é99˜Û99Ò;š[ýJ‘á—P•EmŒ…m­­6NŽ¿ø‰˜;@ewgø»³–6¶®6žÿsc“_I;Û1¨Ú˜Û;%EþQ‰~ËLN6FFF.Ðt32cøå^ÅÝø×!Ó/1(oO;[;€ (  ·¹ ôÁÓÑÀprpz{þyð_„ÀÄ067rMÍm~{‰&cPóÌÝÚŒ Ùc0þúû÷é#h¼Œmm¬Ü«ÿÕ_%EEQ1¡÷güï™­À“Ž•@ÇÌÆ`ú5d ïÿºQ00ÿ‡Æ¶’6&¶®¿Ù‚Êô?Œ]þê–ƒð__r¶ ©¨¹#£èƒéÿyÔÿ2ùÿ›ð_^þoCþ¿ ‰9[YýuLý×ùÿçØÀÚÜÊýÐÐ:;@Ö´6ÿ[Uø÷ÒÊÍ­ÿ÷©¤“hmL­þ-£¹£˜¹ÐXÁÜÉÈìïiù[®úkˬÌm€ ¶Žæ¿®¨5ÿë ´ZF– «Ã4’A›óߢ6F¶Æ¿VŒ™`àà`àŽj2±<™@»h tûkˆ ô6¶N (=o€‰­Â¯Ž²³‰þFì¡ßˆÀ üqD~#.ƒè¿ˆƒÀ ö1Ä#fƒÄoÄ`üX R¿ˆ‹ôoâ"ó¸ÈþF .r¿ˆ‹ü¿ˆÄEá7qQü@\”~#åßÄEå7qQý@\Ô~#õßÄEã7qÑüq4 þE, Mk;ÐòüºÿGÊ âdàš8sGËßå‘1púídiør2t00²‚ÞX&h±ü+ÿ{ëþ=‘2ú±œÙZ&î_ ¬¿$ÖÖ¿©þEã? ($ð·P9€ÿ‰ÀþëÜÞ´¾ÿ& "š;+ë?¼€R5ù A6&@Ö_Ðü7þ¥ü²±ü‚.¿I0ýüŽÇöKÝÖÙáh Ó? È¿Ùï”Aý5s·3Úü¡’ýŸ”¥ÅÔKË? ¨ŠV@P‰ÿÈt3üöÌ2µ­óïâ€"Ù8[þºGMÿ`ð«$¶¿9‚|ÚþaÅô«$v¿A1ì@/o›ÿ +Ó?ÒÿŽ+(Ðä™ÛþÑÔ_´ÿÝÂ_Èèø×]ôïä0ÿÚ: ­þ†…õ÷Áÿ6öNþ«Ïõô¿ÊL¿ºþGϘ@…qü]7‘#ÐÚü¿ÓÊöKèòGçØ@NA¯Ë“ÕÛÑÊÀÑìÇ V¿Ã‚ÞC NfÀ?FTL'WÛ? @>œÿ€ v»üAÌ\ÿUµÛäÞý*¢Çor O@‡¿Cýç.7rvõÍ鯷-è¢ÿü×w' Ð h„°4okÄhQØv_-HàJ·7þa†bO=…†ÎsÉ¡Ýùñ l"MU†ÿ†Ã­`âP7êêŽ(õe’gÏãæzØ–xÅÖŸ^Oz±JS{­‹“ØýùÇ‚u}Dð„t*ß½ží½Ôü,!›Á¿IQäØ;s¾QÈøwíw«ë+] žßSü^Å.øT:M¥©ãW4K‘k˜9‡KãDG÷ý eöÇí zöÄ+‰Tì{ï“(–O­Mæè‡9µrfÇNÓv>#£'tø(á[Ž×e´wEÃ…\Çæ,Ú‚•+úÇ€×v¹WÃoÉùxf,¢úÁÔ¹é¢]a¹ë1TŠ<µÀ†Ù€R†‹Í lz‘w™¸m¶ÅËòVIñž½…Ê¡pw‹®/ôgjª­ŸÙ¾(’îžDÐ4ø õrÝlß–• ébÚª=\T¸† Eo©pæ†u(ùfw:Ê§Š F@ÞíÌõÀ¾=Ur!µnŒAQWùð¸3ÖYøäJ[*)BAU°$Û'}ÈâµôqQ¤ ¯ÚW;ìG£/sm»ü=5RêZ4EÆ÷È·zíCj—/øBÊ*÷yo=6Áz¦ÇvHG¦vÈ=­*tŠX{›T:êÔ®cþà *û Ó© N¾!ªz?ùý‰=1{ÚM!‹ta A† §F;+ íf§à i¤I†?œÑZØïæ`mLÒ¥†‹h.i w ÚæË¤à)”*zè¥ÞZa©q0)§R0ÊO˜Ïì5oýÔ&{&;çæ%æâ¯#J†ßˆ-˜º’‰±%ĸ^*‡’{U½úÙ*òŽï'#"Néû|åÍ$fb,ñ‚K}åm=´>¯o|XÌX2»XÏ Ü¨8ô…kh¨®NçÂÓç¿æH:ÆFÔÍÖNì¸ætSàeeš#ºþà4q/¶Œ‚ÌÞÚÜäí íÌtÈò3MU Ú< »^©¢vjÆûÖ—xþÅLj˜BgÃþÜW§¥å;«<« ©vºÞdK^õy]ÕVÿw£|Æ ¢²+Y©ÙlMÆòÑOö Ü„yû„C¶ýP Þ‡;È„L•iMiúUiÜ£!š.ZñaiOƒPa-!ñ¬vb"÷ê7áÒTÁ=ÌòŒ3jÉ•ì’ ääV?Ë›èâq6µ;qgcC÷øpxÒ£ ”̦ †U!wR£x©´Î¶>²å̽¸ëÎq©9!³ìïÒZß"÷u#—M½r}/Þàïý"€mDƒ;2q·¥sašíTAÉ_²=Ñ{óÓF娵=þ{yޱœŽpSzþø²üíü„@:³É§=©Œñtåí±Ï.“Cä Ðš›ÇSRƸ.Í\[òӇɻ_ŠÞŠoSCX®[ë[ÌmK{6•zÏü’f#(ιBÖgb08Ü Loà“ŒáJÝÙïü;—×DbÈŸ26lÊW®”%tÇ3ÕUYâ÷Å\G¸©âv©GŸÛ$ŸÌäëç=wåÑoR˜ e\Œæ¬± Í ;)ÉdOެ{Õç‚+pó+¬W )—R ß=ê§ÃöæÆoÄ3˜üèÉ´j§PeÎå&V¤Q’aøÎ[Š}ƆQ*œ%øeã.ÓŠ§Òs¤‘úmË¢´L\X X §§Ò¢mZW¯ õ®žú„¡àË'i/[YD=Œù™du´ÂØvd÷]ÙƒWvß²œÝö;§,8y¦ã\†L0±K’„¯,îÄoSwŒPde&Åû´ž×´!­Ë_[<&"Å>ÁÀ£[•>”‘uKñU¡Õ„bÔ…½÷Õh>C­*®˜ãÑæžû­+¡c7a´·ŠE @–¶+dÒ´Ë@MùºÝCâêik¨…¢á \ß(æT!«(¼þp Èy@ÓÆÙ½,ã8|2‹lŠwƾü©ÿÞÊî¨x7ÿYOÀ‡_bCÁÀeÊOu K¯:{ ³_«Œ‰ø]éî@zUŒìûC;ß`ϵÒQx¿ Eì55žÅܶ±Ð™7Èè•òôòY›æ´mœœeóÄ'=ÁA¦Ùt>l ‰m>J‹Ý«äþL‰íPó‹¶¢¶2­ìÊ\6œ®ˆZ#m:(KšÑÙz~0`Ud©õ”qmÛ«4âu-Oó£ÓmÞxÄvÁÁV|ÙÏçž'”ÉòÀûvQê€^Wà"'Ò!+ÎÁE.)cþB/¸hJ°ecÅî"#&ßpÅ+ ¿w¬0–/-(ˆ;ìÿi}Ú*r¿á^so¡žjiL}yr/€²3ÑOð‚‡•Æ`o¾4í o˜…ß-ŒÀ9Ðë!(Q0—ÍŽàN¥ãÖ¼½æÄ$è\Qš‰d'8A¯ÍúEy‘ÙÐ5á½À©$ÿLˆkF(2Z»†ØG–JJì³[ÆóžÃN'ßÕ ]s[AwM´rlõ  0[oµ9I¼ánëâЗšXɪcêŒI•Ó™þÚùýÙÎÙã5Ïí'¡ú) ÛÖª7ÈAÆG´ùAŒSM{ w[Í"!RAÄÝ¢fˆÂã ¸¸ªhÞÉõKäÅŒt@çŠD$Um¸–¢À8ŠäҦŗÝפŒNíbŽ^ÊŽ§³q›L¤¼CMªÙƒî¯*=—TŸf7Rlôl!¥dr±ᨓj÷sF&Ó*äˆ<¥Å6V.t-Ó ×»mŽ|°Oõeª¾|„[1ÈWÍoîó| EwÙ>—ÙXmùžÇÔBþ ÃÁZðõÌ1³»ÿúÊFkò]j뇒»aǶ阆ž±îóˆp¤ÂÂ$ž8Fpôꟴ¾žœgıAÜ4´ 2uTH1&§›Ò¹­ŸM§”áµû…Þ„b…äÕì“^ÏyðH?Ô›ôõ½Éø€‡{±KÉ–^­GåpHvð 3¿Ël ÄÑuÛ… pƒ/¤œxsùÖI+!¸¦®K¤°p÷{bðšîÊ}.ƒ²!R+¬l…æËãáI’2]HÃÅü‘Ö6ÏJD7 ´CýMîÜX}%‚r°¼Ž`ÕŸêyVĉç1Q51ÈX„nØ–®Ÿ¾ßoIèÍ”iÃÜ3%§ž±ÉÝs•Úñ1sHµ =_782@ž…5¥¾)qÃR¤}ãħ]¹Í9/îØ×äÇM¢DÎõ‘“2ôÑÚ½’Ƽ/ÜeèТûV½8B¦WIH—HIÈÀêÛ±[^΂f&w-›lQÔÆ÷³ÌópXŒèÖ ”‚OÅ?,òƒ6û–rI½×õÎŽE(Õ }Kwç5šÉa$6ŠöQF$ó+Úà? ÎÑ/i^ ,Ú`•9$¡êݜجúuÃ!wÈ?í8 ÊAÓÉ Û$E$óCë­cëê­˜bÆ5øda÷ÇðDéWOžK …¬_°{¿v­’TÅ6!ð%X}S´‹ Æ/Ëû4CÓü5ó¡¡àŠ!ŠV I·ù÷®”T…À¦[Y]€(5£ø0Ïx ÖŠ¢=DtÉ@‚¥ UóE*Oïg{›Å]g?'+a¦x^Û~2‚}ìB¯ýtÿnĤ“°òûNÂ/ L=>ÄÀ!eæ1D–2©$ÙåáÀD+êË™r8âà⃵›4¸ú30Ü‹¦geqÝ \"©bS«y¦ŠÕ9JÕû[_ï~ÏM1 ¦*`Št$I3ñäìt\nVs¯x&OšâÀ¨@´ªé„øgú¡¥QɾÊ0Lw€·×3-hfoFµƒeÌJ5éöü}”^Ü Ø² šâ%s“<Ä\PQ„¡J¦p4Á°#‚Ø|ãÖ6¦¨ñî3bù3{‡D$,BòPw±°üÝV“¾Ówó-OÎWUåNX&W.[õòP&U½åÝ_N«¾~¦1™ÚóH×ohäÏÛ‘4P– Lâ}…n‹;ƒºØ€qbøeŠùêì¨Õ”²ô]T’º»·íp_μÇÌ2"ýâväo8!û2¶Å`âͲ‘”~u~2®é€zH$òã–;&jÙ˜V©r /脆tLWú™“f»Å 4¨Ål{‚K{¶ÈùNy—K:/­WEºÄ@ƒ|×Õt(þ«|€ö6„[ý@Àw(Iê¤×6 T6™¢RÉN£o/3âNòX‘m Õ‰îÏ®­šQï۟˵¸ÇÏ÷{'òû2˜¾]5X}Zv €ë;ß @à{A•Ÿ`ͯ†Ô§õë.³œ1d¹OýÔ7¸ÈE/D×®GÕŸîÍúÒíŠß}b@L€”ëñÝüJÆ ÝÛb¸zHàç—ð=ï¾On(ßÏÕ¿BæîÙ„8F§0Ú¼{ãù¦ÊŠ_«Äã:"q=‚¯iŸó”ÄŽNfŠrðËOÈsi}>€~}1E·~RÞÙÚ·!ÇRþ—‘Ö~]§°wqXóÏŠÃ[År†&AïWÚ:Ö³lÉࣖŠTáÛ<¦®MLÇ v£?;׋åL¥òö`h<º¯5•–OB<¾kƒ4½}eå×`þØý™µX"m,/}á*M·kÒ^h[›‘¢zzíƒtW7ÉÁwBÓŸ*aó9 ¢¥¸BƒìÐS$X‰—ÙéY¶oàæÁq¯Ð÷§%—¤ÆMœÉ—’Œ)Èí׉çŸï1– 5DOŠ’Pé¶H;'{ÈÞI­(s¼é\Ö$®‚#<€>·XA&¢œ^‰á«‰ËÌÓ¾ßÇvÄ*ÉßÔeh*±¯ïº7‹ìC)xÐ".÷)q@b¹¢§¥gÈ. ðYÐðª›éïʶ…ò½.ä ½úl7OÕD¤æ¼’[Z4P¼§Š„ÂqúUMpŸ!R¾Ä%(xó@‡“Í´IßμUÉi|#v÷¨³ÿ|§;I„‰È“ ßéu¤ÑéõG–pžeUì{žL¡ÊTd4äq{ÛMÂrM¢<Ê]jaˆvºBÑä$ ËÀ7œ+ÿz–Aä ¶î×çö±º¦fû<»«á£¯Uæ$›mªö~î¤*­e1†yI¸Nœb—ä•ÄìØÍ$I'¿ ÷©À¢Ø9ξÜ+"¬²F×c o9M«Ù¦ú<Œ_;«I³˜H£YÌ ýb ®2ôq«÷3-b¨–\“(Ö¤0øMÕ¢&b”4°Á£{öö‚¥mZáë¢ÓéË‹æ›~ Ž˜^º[WT¤j–W•F\Ã@H ¸Šê<*»$¢Ijàþê-ß÷šÞOˆ!¾¹B®w’ŒÞØ3 :dž‹Xpç,ªËý—Cλb&£KùA?6ЇiD?‡r¢ø?©d<ºÒT^˜b„`ÙÏro[¼-h®ZÅ 5ƒµ@,Èhs´E¦kˆC†çˆÙ!«ðRœ ø^ú¸кòpô ò÷þÒ+3W¯Œ^ÀíkR:gÝVÔ-Èr3¡ŒÈÜû/v^»Î¸q1þI*Cgµ›¸‚ð Ûèd×÷éÅ fĩÂiª?]pßá%«²sªòoTÊ¥›VšÄ þª>h"Qmýóç „”§tÅÀzíÕu^Õ. nB(ÿå~£÷·›5ð§r­«BÊl\Á÷]uàQ¥Yd=ó½u¦*‡mk»º†%ê}p0+ÔµïÈ‘®0å÷4Xá‘ñ;Aº˜r¤=š¼Á”8É<‚Æ’Âú ¡~Þtpv«+”Ñçð iVüwc~Òtx kêÊ{ c•‚¥âT½Ø½«8u“Ó£¢çÌ‹“ ]8Uħš»êCtµbC袲± Ó…¶³ÉÑÁ>^2Sð*6ßöùi¦»E¼s8zRýéËÀÛåOãB;ש@"0óGó#[8.‡ø1UOovå×ôvN±ýÂTmŠ*vŠrJÚEáwò¶ùÏêòì¥ôÆý[ø¤û É‚ºø•8ûÒˆ•«Â<N«£óA­ Ðß•ß7©w!k7aä‘,Ç%„ÞÎ0"øˆ? ŠòD—¦BÉ%O‹µauÞìÛÞ?˜õ‰,ºƒ 7J°(Úlï!ŒúîÒŽ¾1ÓÆ¦D†ÿÚ— fžíõòr <¬wÚ{ËJñ¶2t‹¸*t»t^(Jï,Cª5ÞOø€()’œPÂâ<ïâ¬antêef¹&‰ BeGÀ¢)ŸNßJ1RSýŒà€Kdc „VÝ»Ñöö†Bæäê3ŒÊþ}aM ÔÔA¦VëË ù’z¥+µ£Ÿ@dlÛ Ø©ÆîÒy6l´ß2s(W=fÒ£-ÙÈw·Q%c»kBBvŽQ|Çͺ\o‘ÂU&2¿&5`é8§Ì/ aNl1÷(«ò@4‚{¸&M¡"§Å~|säÁÌZbtw; ÃJ~ɼ"VSvìÊ»¨¿]¼ÉAó¦¼L¯g ‰1Sròú|Q+ Õʤ9¥j­ã|SçàÔéÌGíòpå*AÌ—ÌíZµôW¬yMˆˆÑï\F‡n?AßlÏ÷ÝãP7êù¼³zí‘í½û”ó«6 Àv–'$JüÙSòƒög6ˆÑÛn|pÁ ÛÓë<ã‘ôf±©BÛ»k70:jíÆ—Óü‡x»dkÊ:Õ­pkÙ>Fड़mÿ[Úü6‰U¡B¾t;'mWÙÔšJüŸš“5IÛ·þù¦ûâʉ›˜ÄC–+wèãñåÛÑÛßö«?Þ5+"¾æé› ŒQQ8Õ¬`iÖǦ Ú:Àñßr Þ fÎ÷XMžÏm¤ø¡ëwôÓòÞm¨ËŽi†.N©ÝH„e^J³×ê Æ`Ÿ©Ò£$á©þdÔÌTо–Ú)q¹‘.‹3‘«¸×ý°4áj¼KÀ ïäj¤¨$Ï”ÐԹء£´_™>ëß—¡éeïAõþ«±¯–EëäçþFAòýB„›ÑŽ€  d(ß)9lÁ0Þˆ„÷›V™®JD;qüoNC~n+L‰lnèÄ#Ë8ã„»íäQZ\¢©+áq¸0ä‘(¤]÷b¦Èõô¢ùq fzð{#Ô,íöïR k_êü8=ÅjF‚°ÇÕ­RY\®"¿°v‰NË¿…åó¨ËëYQSŽ`‰q§•ìQ]9ê"aÆH”Ïõ #Æò‹ŽÕúj“3ß¹C£Áݦý©*x r¦ÆÉµƒL)¼„vå¡¶—Óx&=ÿ84ÁÊ+™ 1Œïöbågb6|Ê…ÐLô»7þýŠ‘.*d\ì“n|O˜€)}Ç-™"ÌÔºDthûIÊsغ%àVå±ùRs‹øKƒÙŸ)œåšn,pŠŸöÂú ÜÕeŸO*¥•ü̘ÀU8–!æXëKz~ŽáÍ RÕÙr ·<ß´ÔÆ¿ìa²¯¢± ïåãôV\Ö]â¶ÈÎLç ²RSóRg¬áôö%]ù–Šy\œa:;ÃÝçÉøÚô•”Þ*2§‰Åʃ›iù­ë“ö­aKÚRšÙvÒBeù¤æÝî÷ÓÄÕÐå¯7‰ÒgÁ‡ñðÅ–.xx}uä³î"ËvÞ €0ðÇiÌÚ“îò˜;¿÷z0“ìÕ Ô ¯eî¹:~þðþ:â·èŸ‡¾okŽEQœYÕÅ«ûä__¿>A#Sn*>ª¸‰Ü LO\LhZuãá¿¥œ—D¡1‡+{:°êÞ l\AîŠYÈéÌÆ;ìdØï¥¬ÌS @´·%Pã…Ýyæâ…k_Ê9°â|XPÞg³¿þIØzýÙúÝ2]öç”°V=f©ïÞàf5Ô%dÍè›Ú«˜Y;ÜssEüXË8êÚ‡jèd”~øå\ìISÇÇÐ^LOŒÝ쩆¡X"Hqw7}’-Ø/V‘¨Þ~B“¸Ù‰sÐc ›¾bË|†Rö;Wó¨&¨¯Í÷ ^…¬M±'lÄq ~†½¤{®mÞ¥OQ‰õ+ŒˆÕ½ºªbÿ^ñŽ"Mq<{Ëû+"~¸©ÿýØY>:l\-Ÿ¸þ1•D®+ÖZüæ€Úü2./t´S0Ï•©mH‹A.÷úmæ*è7üà•b»Hûùä!ÍAeï¤"ÅbnØÏSa~['Xõ&É´§Wp÷Ähh÷¦„ÑO³˜:Ó;áèl]orÆó­u"í³•BtíÕû1}…eçóß’ÑŒ\ŠM½‰Èg™¿î­ÚÄÄh}µøà6Óõ°:"aåïr¬{o7m¿9¶iè²èÏxC!û­Ô1t‚¶]áÀ¢É 3ß»HõͰVú ÉÇêÍðûÞ‰‡Ô)©Ð–ÍU;Æxrù÷:vºp³…RÒqPíw¬w´³å±D.Îõæñqt2Â^.\ ¦0úûr’º fßÓ’¾ÉJÇú‘x©·0åðfÑE(™—½±Ô®ÇÉC¦·pnVOþæ¡!ïàþà‚;ÇóÅÞäOd-˜.ƒiÛªnST_œ‘¹p¿¶'»×­1¥Lt` Ñ©]5iÝ—|Ʊp•62%{6?AhiÑuUî?\{”H¶nv»óp’Æþ ü!4 F¨_‘›Ÿ€?]§]ûH뙀ª•²Wñm¨fÜ-M–ÈFhÁP‚¨qÕi¯æOB‚a÷礆 ‹ƒF›‡…Ë.¾µFבּ‹ß,·TÁ(ø]ÎÆ×íni)U²“@™y÷Îlb÷è$ø›#b?ÂU¸’¶û²3×÷÷ï="0ºoæ²eU»P¡ýx¶úPÃq ³‘[ìå1›•‚6V‹\Ç“¼eºôC[PwB%8R1¹õlP'L$Ÿ¿/ãåøŠñŒ‚Ö™ç=·Ód1[2f°HÜdøÆ$>` ža¦kÿè¹Ðs?a|^ú®~µ*¡ûšeöhškEÊg§vq·…5hA¾±…L½ á‘ò _êë"×qø[B‚{Ã&ù“sƘï¨áQ ÜTUÒ´ªØGY¬%G…BÖTz¨÷ÆÆF‹w8#Œ8'Z­àVÜ{0)ý|ÅEMz¨”ÑÔfÙ*fÑsß©p?⌛65Ålä õ„§h|9å-%r%Åk#ÃF'¼¹8*\1Dÿ¥‰FFzW6œˆCŸ³+e“orÍÛpµè“‰õþCòh/Ö¾aÌšð‡23+ýd«‰åÓ—ÊøŸQ£*0 û Òð˜¶*U¹T$1ÚÓ5¹JbÝL܉£]3‹ÏsO®U$ÃðF38"Dú=â^&Ì/|ߤ/=&rW…Ò庂õÔHNlGªÖ£6D³Í¢ÌAç²ò¨Ð;aoSÚ”/5ÄreàÏuRv¿£“Z”]¡®îM‚Tj<\º§Ÿ NÃ'tú¶äœåå¡éÛéþ(™HQíRʇlï±FòÊmJ†Ÿ‹”‘›ì¸Î¯¬Uë‰èflWšæºÎ%ô€,aèœv· ³_G+Ïnç‚ÑóAg ­§önûõ…ð »ÝÓÃøú€ÍñÎ,íüh3BV(Tï8e˜¤¼Ñ¾,Ÿ¾¾qîqMW^¡bQ½§H9  J¢‘öÆ]Ê×&’lu7ñðWÞÖªSµ07¶uN(5uÓrDÀ^:þ…j{€å¶Ë–ì¤Ø5}@›#o%6#,Îæ’&Á°”wù‡hÎøiCyü‰oä1öÀDy¼tü¼—×Ò1©C¶Æ] ¦«N"naÉì¹FÙ‚¸ lQ¨j%¯zð2ñÛ5S$œøº‚ÝkœµÌ´÷Ëò¤"ýµê ðÀ”ÚšÎk&j|rÈ×çb2YÞkFŠ3{H–6YNéþ “¦ìÉ”¤•€0Õ/ä¨j•ÿ‰—S7=oØ"Fn62÷?^ïvÅ":úèÖ†žsÌ}O­MR7;/Kו"…÷¹W(ÒÄovO†kQð[ãe`ÏÎÄb¸qzzó Þµ.­íNh"tË8ß N‰;8³ô­½ÍîÀ4ŠËÂo[ ñ-ñW<ÃsðòF–s ÒBÕœþÄßÐoÛi%>óÕf•Ç¢3øg…ò¹º©KïÇ¥8°Ãè-ôçl|†ûB­ÅºíiÌÉs`g(»±“;Ò¥š8Cb‹Ü¿!)«'›°1ŽàƒÇsæp1ïú–B¸ô‘ÏcÀGqk·ï°ömZþæÕ¤xŽñ“‘óÃ>”ñ¦ÒݹÞ<¤®YF œXç@*ç¡ÚGÌÞp&*_RUc$zÈÛ-$‚¢½[ÕœaÞ K<åý=¶&Ê·ó£Mù…ÙÆÜÕ¾·m[4±3”À<ûIsÓáÑ8= yßÍé–罃aµt+3læ,™ÅQNïjÓö¨•‘#äîa;ø»á£E»5$íaví=\Fq†å0üᇲáÓF ’ñ^ÁÈkN‚Ußâʘe˜?¬"¼õZC¯G&¿)dB; úØ7ºª zÌÞó/V‹à¥ÄÓ©¤[j'}h„_Ê;óɾNü,GÊݺ×(p!†<ê-Ëö6•‹Y¾1ys-ƒm‰¦•o6¾|bfÙI&¥’à0;K „`­+yÊrgQÈ2ñìi¶\7ŒÂÇZf¸–5?öC¨Ë“@Îq.#|Ù+…J?›Q—m|u@æ • ¦ÁÏÞ-lçÑù^=·O•‘&G4oòÕYéiöÐàòsÉÁø +ê™Á ·nßß_53Ì‚1U"¤<™EÒn(Ñbe‚9)ÊÖ‡}úr :#Å_âø°Ö ƒHHFžK}‚nR6|‚!À,Å©trŠ9´v1C¢«”½šÂâŒMUÝÜ}¾A˜¾ÔÙð‘ïFsågF©Ø¹ýæ¥ëh‡¦^ÿ™—)0²ÐÒ›CJ=6´zß¶KX?ßsQ§Ìsʬ«¹ósÌ'ÊÄ@xÁÝåºiÄø^.QÑ ÷þÏÔ¦•·F\S=ÇÒ„Òzkm£€~Ü.¦ÔͯBÌ÷êü0æT¡ÊL_“FÛôÛ•Üñ¬žÖÁ¿uÑêÈ1E¯½@WS”Ž^À™ ‹Nwc e'¹°aãXMÜÞ<@XBx9­z“…BØÜ™=®ø˜ÿŽnÛýÂÚ´®•Ia WjEÞЉ'<ùñdÁH{ÀZ¸ë y·¡f¹†ÖÝ\Îà³­Ã:B(ÆÔx_=VŒµùѧ)©Æƒ|¸, À¡gÈÉM>d” _“j[(<ß%¿t_‘uÔV‚ÝtC„l¬+ë¡«kÃDÊåAÖ—žŒ¤Þ»Ǫ̀õc_„áuÛ‰{à4­G¿þ`ŒQÍVÔZ”Có炎¤l“œ1ÖôCöF2ÙµRºï'ûÛ_%øéa˜9qƒË˜}µ«ÃªŽôŸJƒpáÓ„&°çWië®Åƒ)sÅÌ’íi&2DÏ Î]òäÇ‘ÜQ&oÐ¥îíÂ+¢÷79IÅÍL=Eï¾Ã,Zë>عó¦;&nH˜XeÊÞpx™·j·ü%ufH“‹#YLªÇÈmbkžP%T!x™eïÎÑyÀ$'r¬wÍ“S<øhælñQ¥«„å”ä1É+g޳Â*Ë­NB÷¬äšó˲ìR瑉„-k1D/ä¼4½Dh|C,Û ÍÀô­Ëïë÷î>Ó sÎ:Qm}±)æ¯Gw|ò¯ÂŸZ3eÛúÈz€ALþìÆâÉóœ8(£¿‚¢0ymÊî«p¾ö‹Oôñ{êmqóhÜÀ1~\g¦êÙn¡MZa=”¯iøš³H{ð^°êN•”ݤÚ!™ärìmtƵtE_@w½ÆåŸ?¦!Û¥Ô|s¸6 ƒËnå‚jÌš—•6ÐDÙW\䜘¡tök®7Þ­²7ÙÔ3»•oo¾MofÀÓü„PB”oê3 ^§u_<¿ù”¥XA˜Sè•ͤ©62ië‚-Ò€kǺÎ,h’:`@ ÛvF»6zõè ‹D Žzì!Ôü̲GÜG„@ÔJoßþƒ·º¯àKë³ u.Ô³šüi·@ º€®é­½áŽÞÌŒ‘¿ Ü»M òêG­å7-êvY?>È—²ä]Gñ?(q?Ú²Š T¾Óí¢Í(&}ŽH,GþŒÇé \D„°^xeÐ4|b—íÚ*^T̓—2›€¥|+àaïÿûË`Â+¬Ö–éš–þ ;Q’’KmÍw} #ÂJñÙ+ÞCt/Ìr”Ñãáa«mÔ›µrI¤D“'Þ!ô³é{<ô ÏŸž„òâXµÉvÈOÙ[K"Uc|³Ãõ‡Ow"Jø3#F;ë¶í¢ð}¥eƒÇm©ÖJ"õKf&šî>£wÍ‚s±nªã‰±±Ês=¨ÚLà>ËøÉïD ñ·\Ç<žàÚ¨|e´ï÷ж]‘µ7‡¡¦Zƒr9ø–S càËÎyaX>÷k[¿ÚR*«n-̶«Ì­óȽñ8ÆËš“zò‘ôÁJ“Ð' ”[ 5É«…¯<Ö”ÆÈ¯Òo$z᪀÷ýq/@^ܺÅŰf;J)?ƈc0Õ{ã{Ñ%êÿò«§´¤Mî¾ôK q†ŽâuH}U̸šá ÏÊd¢ãUõ®8kEÊl;,}ñyóvz,b.˜Eã%¹™cT†ë£baKöd¿SÀSS{Ùž¿ŒÜ9n¿ ûR’º”ìpt;üÂ%u*™ÝdF%òn]ÉŒ2-ƒwÞ!T>圓ÓA‡[rˆn&ÿÒ˜˜â} Wÿ³—CÎ{Ó!m2²ÂG›Û7÷$ä!Aû^ V3dÅ·þé^K~‡0MÓ‡ÕÒ\¾¥¸>Òç̱—iYq(^›ïPgÎNr }ËŠß䱌"DªBð3)³DRn`”¸áªQL7~NÄý·ujhè'Vôö›°l©¨ê`‹+ÉŠÌyÕ °82ù¶«˜ßEèN®£n­šUÕú¶o½pñµc:¤Ì5WTÊÒS(î[ŸöƲ#)Z `M¤‘G–\îf”Î'†íQr§D¥ð=ñ»á©ò¼Ì—5¼>Žåä3å+˜¹™ÃŽ”HšA@ÓÛ÷þމ}ç×Äž‚æ\}X³ˆmºÏåfÄqõÄ…e#ðäé×ï&v±Nskv?Â5·²äˆÖ:¢¤A4Á†ŒO|JE¨51xì¸<>•ö'ÿ0j¦óÞ¨3õ»ôf‡ê¥äògÿ³çÅ2fLg¨þŠ¢Çð–]Ép¬8b0˜›‡Í$-Ôòt¿¹Á¼¸3›iì>±çwý˜þ²b'¥¬$uKÛk m‚·‡2Ã]\Z°cÊÌV›nU^Ò‹]ê±¾¯ßb¿¬=Ó©íÎõh;E—‡£]}š9=Æö¯TŒ«æ+ÓÎòÖá®sk!J žìw¼9SÉø¤Á\ä,©»öÖxUáÓeïÂÀ%tMù¬n¥i¿‚ Ƈ®â§ ÁƼ¾ —´µ-š6ýKsëiovë¾0nW¦OsÙòD„t­^¡û{῎uSãa%Ä-ñ%áJ73Õ¸óYSIÐ,$QoïÚ†³å˜Ü,.©Äq|£[†óð§g´5²Sœl¢ÍrÃp“¹O½ûñSp¬tµåÂ^oæ †IÀJ …ß÷PódöOòTm ámÛ|2ÙybÐÚ'²qL.'1Ù²³¡A%JµRrèʳw!áâÖê¸Ip×5Ï–L;¸­žß – Ö¸Fcj•Má~ürš ãÖX4Js`Fœ¦|Ã|PX¨æË&½òU™€– ¹`>Q4æÈßî¹|*äkþ{*]H `"j1X‹:Ò¢\êtyè¨Ã´ÔÜȾ‘-æƒ;üüÂl'œh„>'þ…­{¸Aç“lir'ZhYî~¯Û蘮=ÉVB®®Žé®‹V% ¢ÑéøÏDl&Ρjýör=7 ÓŽFÃÞB“úáfÊ-1y{!‡úð9 5$:‰Â~ô`ƹ°–‚ïµÆýƦªD¦—Vô>5©¨©a©X¡-Žr°¸Íò†r°£Zót/¢µåÄý=¾‰÷;^ù\&Dø´m™Š™Á§TžSpQÕ&¦ÜD`l§f¿ü  f|$ÒvC€Òˆ>þ𹾩µ »0õ¦Ð‘,ÍÂXUT áK5®‡tñˆö*ÉÖÝáèq™Lõ #\}–e5¾–¨!3†P|øu%nÜÕ£ë]ÒV1O~%”[“Z³Ky9'…MªÓ뽘œÊ1áìÃä¼W8î„fzc¨çq3æfv&!rl˜\‡bDógcýwâØ¤Ä¹j5ÕL$7lXUu’O}½¹9Jäcæð™ö¸a(ÌÖ_Öoj€´¢pï¦öײ"3ÙÄ:Ê4Ú1ãì¿ò{ÃßÓ„vñ^»pÅ]g•%\ð<Þ Ô°›Ë×êj”Â}-ø†"„üÂ%£M²ÐKÏ{/ q ˆ„x\›ÇR_ éÖ' BòVp±\Èjûj.é ‹ðiž‘]\xúíY‚¶Ñ]]è«se† ˜ƒ1ýã¦ò«5/zú±°…ÞB*7h4í„Û‘émíèÏÆJ-². ø3’À¾y÷z-s=D”kÞMÎ\²‘_¦&I˸zÓEú>úaet? ÆWç¸Ñø= |Ž Â›gº>)|¢®,‚=j3>¼ð·áÃ\‹K×ಯ~SÝ~þ¯Å&Ëàk$l›±Þ'Ãöþ´aŽÇ!&‹\½ЖŸ©æ¹«§+œ³àÅràBb#´¦…YNø®$…õâ© «¾à®¸T’7/˜(ÖQÞ©ì8Fža)ÚÞüôPCeÌ^ël]ÒÀ\Sbó—Ò}p΢Ú@Ó\üª¬4síB{x!ùQ·i21—£.?ì£\®¼Ç‡¢žýžîµ¶Vôa}âBäøôA»†Çf°(ËmFF» [ ‡Nꊌî3¢‚"êãóÖ–¬®-ŽAå`ËvpyBÉõÇæèèPåÈÁw‹%¸~0mcWx?÷*먠¶Êhƒ©.:Õ=âø^æEÚøÿ4kºG´ÕÕã¤Õ=ŠÞÊë`1å…¥|‚Túœ5W*U`ÒIÄ w—ÇÄjDUu^¡õÕ#†+Ý7›—]‘ û8áª[!Þm)J3‘pˆCe'z+…”Ûk„zóEëñ¥ð‡Œ¬Z@¸¹àÕêQ­î»þæ?K?IIè1b}ø hÃöP›è ¿ÔÍEvƒùœbtáY6㇭«Ž¢ðþû“ËÛ|^q-¬ÕΦ霶¸3´ÀŸºµ}Yík§tN•£øÛÿ2±øcÑ"My½é"잇¤a(í²üœ¶1Òª#wJ@¬ÄsRÇzG”Ž.Ëý¦ç8ëüꤰ*B°[&;^F*Ü{9¨ª€ý†žš[ºûgýù+éH¾°H'Gh•ˆMÎ-™np”c·XO)¡°+9§wМ,c¥=îZ&bšdòÅî:ÉØ©_4iƒ<”•Že¯V"}XP¤Y~è«ct¥ÂûÎóu ® Ö#žÏ–¥Ú¿ù¸ÿ Hœ^“mV‘£|ž*ÇuX»o¦ä6N’Ê!’ ªú¦w‰œ!ˆIõ¢õö%wÏGÿI—ïÝRÐaDúIÓkp]OÕ$‹èGÁkO uñ¥/ä´^f7Œ{—@k}5ä+¬ü㙨籛+„…=¤ìè"rþ0• )-Îbñ «~…n…lù¸út·[ »»+š?,â`Ì?<ÅAá\¹öPõ)¡ }Uï/ùbþò©Ä2Œ¯Þˆ†ã3”èù1X±,ê¾Ð·#%çl‡Î@ö}Ö —u#¢30l)KÃhß ƒTVcœÒ°I’`öyI²œ“–X‹gÀ9¢nJh…ëúó‡ €\Ÿ¥£ÿBŸ8^< *­`ˆÇp7nÏ2ÜzÓFŸGaøþ§½aéð­…‡¤¶=b¿©g ³J;ÒI¢Á»¬’!… ÙBàÐ(¼Ñb}÷4 >„Áxe:wÃà;œÛj-™˜·±6M„e}î"¥m“ù£+DÅqˆÉÕåiÖps?ZSá–IÌ÷«åÀž¿UÌ2aŽNõÖyšhIcº$ßÜÈñÕèß»Ð*’ò´û*} ¯œØö®WÇVómçós%š-Ë÷{ðÅýVcà€+ZÁÊ)hغÊÅqå°öÍ´¶Yô1°žPþ©÷Œå‡5ö~¶M»‰eDna´._f9‡c Ÿ»¸óyd\*©Aس´Jk:¯YwŸÁMùè–Þgƒ±ðbUü0l;)øý(˰ÞkÄÐÒM¶ 'ß÷¿”|N`­PcMCpøPDê"£¿ é[öÓis—® ѧ”) Åz0¤9'©À­ñ‰ÒY;Lse>|˜SiÏÀñøixNBÆ1Ž@I$`X/xr»ÆõsóÖíÓw{i3ÃË ¯O¬;¯ÈQFŽÚ_~ ju¢ ^ܸxjªÆšõ­·D AzÂÒÕNÁŸ7×<æ?<T‹QŸðU`y3å4Tÿ×ÿå'zî<¥ûÏ~BðZÿO^š¸ŒÝJnF°¸«a—fÊ}.[÷6lý~^ѶoyÝÿ'³#LÜ"³Ñ¿69–ˆÒ¸©æÂ­Û¥zȵž_ëôÂK$Yøâ&ÜiõÐeÀP]X=AqºŠå™m“#\!")©”x r« îÅcÈ_àÀ妇¤ž³¹ƒ$š¡‘ƒ®ÀØ5^@Þ!Ð2vü¡\QÌŸ}ž!ü7\ùpd-·p]ǯÜÞßÓì^ƒNª4‡ÿuD˜D¬ÏVnN_ÝxÉb=VåâAìÅ’o•+„-ìœ+fY1~ê¿æÞ’´û4ù¡-Ša,Xáð{¶×Ú&rÍüý§'ÊšáZ0ó¾ClÃI.&;ËQ)âÐÒÙ¹¿h†ÿ8QLãÚÝi&>½«¼ª4oФ.,”-RMmÝ_fZŽ`’2gD%#Cã%¿ÿÇuò'× Í]Ë|ˆÒ;]99‚xÑûhðÑNþz/C¤myOìó"eÅÙæ†šB~<¥ŽcÍÝ{{XØ«D‘îÍ`˜²Cvy^JîG˜_¿„'í©°gg0NTæ»qóR0-F{4¼oûájíUBò¹HóûH âø½Bu¾T=§Át›‰×²‰÷Z™ÁjxÌ5ʨD…#äûaR‡~·1ÚZ!¢£’žF®Æ;з•¶W|s¹/g^^¨nqð¬ì³À¿.„-Ã"Àë*ö"ѰÝ6ÅÙ;6åâï%ì¡æé÷¦M,$©¶eº6Š$'¯hLµåºö6Mü[¤¨ K(œ•³ó:Ù wSïwŒ®(™ÚÆ5&¹èD.ìø–P@_OíÍ,Þ áãñ‘P¡¸Y5jáUÃk›¼O-QcÊÞEªa¾oò_@XЍÍÀÇÃ#(H(™6®"²Ø“÷ƒæ'vlÎΟÙF’7m+GÔ¼¸nîh2¿ÞbÖñÓ-Ý&ßöXrÆË ÞCƒ®¨C]ç>Mµ*Þ]äIܲË^«î—rÅ|:€ˆ’Q|Æ´jýš©}ÓlÑŒF*¹*5Ê õ¤|ºÑ,p!x­ƒ4WÌü± Õ·KíåEîtUìgºÀSòñÁt,æ¾!áÙϰG "W2*Ë÷œÔ#›dépK&-.@vËï%§þÍ߇¡RÜ‚%÷€¦´®Ý ‡‹IjöÝ |Åx%{ús»êòKiô€²“˜CyƒêÀcšANœØÈ—,@I6ƒ7‡ZòLÚáé|Cç6Bt .ƒRb-ó .øCFßx|”Å{\ Bäv’œo¸œf¸41RÆ/4º8ô¦lX¯TÈš{Á]Ö¢uo“ÄyòË“YqZÏi Ý´jF’e;8`¼$ZÿÁ(…=N‡…Õ! RÚOŸÁf< V ÏŸAmÛ–?gÖÊîF/ù4› š8P¸ñ³öÚ¦mãe°)Á¾DvÄêßñ‹âå¶<_0zÜ¿ýgAs{ DÔ^5euŠ+7m/Ì]Ãܯ•oü}P_¡ÄÕ…ëfSž ºÀÚÈNzhžX”|6eñ§e°»·ÜÆ­ Ä_\½œLóÅ|#%õ˜«3‹„ržÎkz¸íJ‡”·Î¡òwWßÑwó9Kýâo¦—ú\h¨øD•\ÇöCC8ê£EžÌ®òüÁÌÃ^Rl.ÇxÆ$£n—z¶ZæcYì?ÊÏ0.úЖ(Ññ´æ¬g ¤¶âVÂŒNV[-_ Aqࢤ5Nx=-¡<~°=^Uú)1~¯àâòòz «rÀ}:ôèÛ¹7ˆÿãé¦ËåR×%OX_€U— æºeZcîiðnEÎÐÁÁâŒûýkàð%åÉ©Íf»é›ÔR²DZWrkã[)RÝÆG¨Ö*çaÒžz.aiè¾&‚@ŽÄižó;f«¸V•Ù4ñ=±ÈiÃm°Ÿ?ÿ5q¸ñLÕùMœP¸ë$à Né«þÆ0|:L½ªŠ,¦[HùËXy;Ø0O˜Ù‘UÍÊî¶Nµù_>±oøÑB‘Ä#)ɦ›ïò¨‹Váœý®äpÅ *)Ía|Ù¶+Élö'·x,¬1ÄŒÓY䀑ÿX<íû„kæU㥇¿tÃòEꥪ÷ÆNôþì‡ÊÐíÓb¹h2ùC@÷„žºË+ÖÑ‘A™%C jïÏ"ô‡ã´÷²´Ôÿ¸—jäÇ(bo›t oÌ';1+ß·SÓ„þˆãƒÎ®2U€û 9iu¹{2œ §_ŒÚ“Ý¿›jÒqãx›Ïì!•7¬˜áflvª/8ê[øóu,ÀÚ:‹D8mðÐfv'¯FC.º¨”ó¥ÁæÌÝÏ…R(«5&ï8K2þòÉK¦Î÷ò±õj  Ä1xkàS}kNPL ëwl”¦µlýM TVsŒ4·+xô]8¥Î©þß*iŒ}¡VÔ6ðuqϸÓr™mò±\ã¢$}—ê†Z%ÕX*sªY•€T1ºvÛöÈD†W?ŸýÔ-Õ>ø›MI›ÉtÙvÒ¬’“ åIÝgëÀßDªžr‘76§VÚÒ6C#ĺ[Z|ž$9£ÙÏÉ0Vîm™jãÅø”V­)mÔÊncº˜·ŽNŸÂ«T'Ô{ªmȺ/û8<7W_ܯƟBè3üúÃî)v³ñX— ’7Mt5ïï³³+ì¼L1G»=ÛNÐ/y0[@.vùtÍVˤµbßók@Ûí/5Ó¼¥ÎÝpŠÈ‘Ñ&’}ªìñk-ôˆ)VqkÛ´BéðbÚö_n8ÏXù¤‘" dA•ðKJ[ “~–§:öô¨èêlãogê‘9øÌu¨ÃX[¿Ø‚ñ@(wpþ¢/45Ž Í–&p[íë: eivG" büæ} >+ŸÅÚ<8aøB ÅkÌy+•l×=5—D3ßegüç*$+CB§‘^S¾<Ü¥'ã68ù@¾ØîW£Ra†ø Ü[jÊî%âc>m˜ZŠbVù#¹qãKÚÒ©4 Z²¿D¶"X±žÌE—Tø–öO»º“žA¡‚Ã\^£/|ŒÞ¸Qµ!›zhzɺ·/ã¹Aã$õTãO]Õä“bP¨-¸Fõ–kwŸ)©¤å;Τœ´ÆÌ}4Q^Ÿ{5{jüÌoÍ¡£K[0bdsgëwv/kGw2dSn@Sl]²˜\0H–ŸliŠî¹Y.Éd½¸Üœ›4jyÑÆœmÙUþà¸ö ´vÝòE·ÉG:–ÂÅ=û[ôƒ?˜OMBÀkgQ¿¦Ùn”“šî{烛Œ²)5ÈBÄ &bƒÏhM櫵O)©05|Òª¦^…Ñæta.|(Ô{UZ °d#ÝMÉ”ÍA H3+™ü’²Ö(èiƒÛŸB®ÛsbÔyÉ@E*”ysȼÍFXˆðùÿÅ^ò×\[÷þl!ßQåö° €{:Í|j‹<Ës2å­É43B •ÀÃŒ½ÆÜެ‚BŒˆD;í ôœÐBÓ€‚ͤ߰5ÎPÃ’q4OFÓvZÊ>)B!_UžñãÛ¯Yܘ]ÎÆÚ³=Yl³ònÝZÖd}·¬ZÄýA¶+ÃS5lÑ-¥ünÂí†Û1.ÕÈ2>vjìä<Òº cñ¾+ @ë™VGÁ‚ÕÉüUŸPʔѕ<ûùó‹àÇÝ‹xi¨AòJ#¸v+’Ÿµ¯¥2rˆ¼¡š$á]`CÚ5LNá²CJ–yh›‘%¾„©Ò+ Â¢Í ®Ð<ÃÅÇÉ®|jpPumNgá/,ÞY©,8IÊС¶Í2Àέ*K ­>¬øÎ*¡%ñîKyiYá¹cãˆKGišá÷§yÃÄͶno©¿˜v”RÅ¢½‹T#Qð[·}=>>é% S»©NÉÀÚò ÃÏÎH¨vùʸ©¢åf/wd ZxR¹®KW™É[‡ÔE*´&*„>ÌéCÛ¸7{pRû9v–*%åú!IßÙÈñkå–¸|³UYikŠ_OÍ¿1q»_6çωÙDWôÏÿìý‹³à e]yœO&/¾ù7åzQwX_äÔV 4ð1ƒæ)>½ìõÛ@ Ñ¢›¡g€ƒËßêþ‹r´+ÁÎùû_«[.ªO^˜Ù›z?äá½N +„\X×М2:¬…F9hÙze}ó¶†nàЛ¥X=йƒ{H}õú'bKãÇñ~lsM)J —®Ï˜: #x¼/ö²¥À)ÁN "Ïç7á~ØõVµCGíT]ëH}½_fE˜g/ÿ—¡•#s}<ßøþEìÏ+‘¢ «èiŽ?m„jD¹ögÞÁj¸Þ„1ÓBKöF*p\Ø‹Óß #ðs¦ãónu-¾uö»þ¨ ,¶›Tº0Øqö ¹ÎªÓÖ¥­rÔ¤+ߨã9H=n2«ãy‘Kæ¶söÿ< ²©qD3§è˯âÈ]Õðâ›_”Y¯§Õ”³sxoµ¸YMPÉԞΎhL))F×–X©¼ ÎÕ÷Wyk¹Ã/˜@žÊe54 ,ž<⬥.•æÚŸVáK†øŠŸ¨¢¾xÝ%ø›õ©‘@§E>L;쟔³äö«$ÄR޼ aὨð®1ã&šv’u •´¯Û7YÐNŸ|¤†:šwI);æË8ã:SBÐlc«'óÐ`ôÞ¸À£5±ÒVƒø¯õIYŠ;ˆ»Ëû|A‡#K4nt¹‡­ðë@ý ªþXqíßh‚Œ–Cz>ôý;ÞY"È>ìè)¾‰ÆØp»–¢œÑôþ20ÃçãXr*ý”iÿòÇýì5¾R{™ºÿÇ™¹€¾È‚r{ýîG.)Ñ¡—?ñ$è4É×a"> T‡«7P»OÉ!yuMÑšU&‘7T?Þ1s»W¿>Z,BõÅ…6¿OçHÙ;1ž0a§Hƒ§•¿ñéÁ/$IÒš+ÔÅ·ÛÄ,(YmCÊWäBP!=>åÔG Ø>+ܦ°•Ú²0”°w—úJÔšKÈtôbÔo´¢sº³H,ù#]œx¹g²€ÿ‚ï98õÕ‚/Rq'¥´×ÖC¤CXÈYœb©©W³XØxz9ßÄ­68iö–CLj•IÅ“¡ï–ÁmE´'F¡,LŒñ-¼pWÝ€¾vuóΉ‹#‹/î=`µVU¸ÃD œ†#Ìú"/MÁ‰@FÁû`¸d\‹¬¤ÄFw£œ¾÷×Ô~ ÒÖNo#-ˆÁ?©DäÇ<³[Ü7{Þ5! Ã*ï‹IgüÈæàéCÄn{7iZŒf¾8ÆL`®&J6 ÝôÑׯ–ÄÄ0Üg(Êî-fá¶w˜ß&tæT^,ƒ‘”¤lnˆ~½†u÷&è1‘tr1ÄÒ’›J/ ­¼>ÁÏÅ3zG&Õ}¾}û-­•»V£<_.uúËãýkZ~›=Ç}ÝáÐêø(‚ÒN€äd%)”ÙÝ@nßà/ûLrö¡ò-FË'-óçºmƒ¿íÉú‘¤<Çþ¥qKŽ:ð½¡0=¨Œl8*ZzúÌ6R3ÁPúÛìþ‘‚9ÝTa¸ "s`EÔ ªA]I*[û,­¨OÊP_tÕL"`g©±žºRd^gµT¯§ÛŠN'åíûÎÁ&aíâA\/ŠB<‹/¯¬Á¤ÜA|‘<ÐÖ’‚•P¾mê÷ŒVUN1 ¤4’"Õê©÷ ʯ¿æ ³¸ö4Ü#oØ¢ûÒjk¤éÈIã\EÓ«)Q óþš ·–»Žè²uû¡ä Ü鳨|=‚e²YÚ"&Ü$VqcX\1Æ÷H Bñ|¼LØÒûõçÕ£éÕiÙøæÁÂÆ’Uœ,s&E¿@_µÊA ¹ÏÍNüvPÁ3í)ãý(2P¢ îŠîÖo…>¸þ°æx´oY'Ï׈§²ýO÷I˜ž†K µ€! qçh5£–ƒ—ð,ôZ{Ìwá¬eñh€ÿþ‘ýëfÓY C p ¥3ÔÀÒ'|×\(±"WZ½£³¿+â6Äd[ÃÈàÏ`UºKèÇd¹"¦] ê…ÍYëÕD( ûË16ï)Ä~€…šÙÌË´­ÅObŠè­:bêáÔ¬Sò¿MôV¬Wý=ºI'-0ÞLÓAXÁ[Z Oã ˆUâA{, í4Ûfèq"8ðXZ½ÔUž¥¥…¾½‹¸%bñ»â€!‡Þ'¹&w!½A…6’_²{Ï®±28¤…G¨Zâ m/Ÿÿ0€›žÅ*Èè€JÕގxÈOV~…S´Q—ÿŽÒê"qŽ=§ÂNE]ÙÓ‚ÍÁwÑÜìܘÖÈòBþ *ÁÆk¼¾!K{5aT¬[-/˜×Ä™@F÷*Sž[i R.IÚŠ}Wè”=dï›ìy¥ò¸ Ì׬Ã æ“ ˆ"x ½–º®ž”û¾²ÍžxÐÚk×–Áí·!†WS¿b7eñ(ÌâuÌz"í/Õ›eÁ—µÄP0)còŸ«HM¾Ÿ(]ÕZ§Èœ‚Ÿr:¿í®š'$nHÀ±ÌÄîÒ £×ƒÍI€í@£Vƒ@Æ`ÆŽ$óüÞC’ž\qÅâï!Ëbΰ¬Öáè‰0nKÞ 0L,îñ,az²ÛøRö´@v¬rô Xl–Ü©½þIæƒíSp>âÀöñ’_œá¢èK:nýEˆÕÙÜ‹³.›CFÏí³ÜCR$¿ó”4ã÷X«€‰K¹fTÐýpiYâ §Š'÷ýcÏíáÊSY›“óèE®ËA¬Y¤«¬QãšØÙ5˜Þ…€×µ¾la6ðÖÓ¦bq½ë|-mÞ`ä[ףÿ9qa  Ù¼. ’ÝÎ¥YÁÓì˳²8Oñ€mhˆä75¼üÓüZ|Ô¡ U /bÓ$g„ÒE¦b²Ûw,bÇã 7éUV‹Æ6ܼã}p•›ñÐæ´/©ø¤O::Xf먛 ~ ,ÂÚ+l¨0 ï]}¼Šæ­Ëx¦Ã…©Ä×LÜšž9EêŽb"ðîxæG¬T«=ռà Ÿ¬ÞJ:Å: ÇçUâÕ>݃ÿ9Ħ§CßcV‡nWJHíîÇÞ…Š¹ë©­º§ŠþÕã‘M¹eÕy .¾Y)+° l/í¹¿ª÷ëÈ〗?jèª5Æ»M^Ñ„wV ×aåÁ~í¹NkûÓ(}eÌÔSÝSDC%z ™âyèd†¤qŽÔ76‘Ú¿/5õâq´üŸxú†²úIô€zM=N´,;\›)?ª:´ýÊh )ÃØ¨å‰Ä¤b«ÜÓ,glg„H@BÃ³ÃØ^ÞWئ€yÉÿœ°#$³Hì äà¦O½L²‚“¤ÂB4ÔJ3Œ€/)ñë‘_$ø«…±AÔþñ4¦tÎpYCÛ¬dŒù‡:¸U¯Qn8ÀyÙïà”‹€T§„Þ1ÑÎo¿/ä¦È5¯–/vÛj9|ûéÌ¡Hl€gœºß‚L%ɇq½B'¨†…Üœñ† k1éɪ ]276MD ù§t#«¨¤(JQ§¸U Ï[ào̓‚áÈrƒ¡ kYÑCÙ2^<7ö5×RÐÃß 3y! /ø¹9«¨§’›À¼ÐÚèH9S ½«'¹Å©jõ>s;TS‰P›«wHœjByÑ›ÎïþÓ ›……Eµþ2F_À×î‡øþÜ z¹…"q~ëÛ Ìe‘Ù”ãn/㨯º£”ݾýIVsY! ºãÏ+gÛÕ"¦ñ²V_S¸­“n¢¡r„×,CPÙÃ)ºÙªSg›H(9ýðµi"éugŒ˜ìŠ0{¹oÝ3-b`K¸®)~ÏQ#]ùÆLÙl;šˆ¼LÞd+ùO§½cA¾£¢mÑô©¯Y]ðQº4ã‘\@«-v0ª4‹ÿ¢Owðµ´N} §œÓžŠöGTCdÃŽh7åOŸ®gºØ¸“×ÌGU¿~c3UöÕ¨{*kýM›Ù+ûŠƒçò!Ð;8Õq7T‘ñv‚©G×¥½†‚ =ç€0»÷>«f9ï4i>?q¹Þ3‰ÀáeËÃö«øƒ"*…–µî¬í“ ¦jh¤¤/¶6zãÎd^Ø•*Ý´,Ë!Œªì3yË»þ ahÕõ¶›¿ðÙÃpCO5œãD_Ѣ९î<äYL¸©¸Náê@šÊ «'Õ]£g ˜ÞrY¨W#³¤hÁœÜ? Ô¨ƒ†Þ¼h0Ã>¾ „RôÒDº¡Oê"C¡z>NâܨyNÇl•SWóaËÁU+t„cÏ´ž:çï8lç‘Ó³2·IñÁ>[± S3@€çÐÇš €t£Ê4%è5öã2uû¼‡NþPÊ Õ›74”»’sÀãÓúvu#öAÚ‹íªh\t'Œ–Ÿœ™ KÄ/»P«ð *ÏA|’|qú}'š ÊU­w°Çµö0ß9*tR7Ýçð·’ÀÎýVj³?“‰QÀ‰]qv¡ÚÅñ²i_‹:j0KÑ z¦.õÖg5¡öíMóhTš 0{câ«rÂÛMÏbkÉF£ 4å9’.‡¿œeÖ#_s[ò?;?è…À2÷Y¥Ï€¶Z¾Ìì<,£éæß^_ ×G‡æäÛ‡;YõÇÞAR¾B퀧:™íi†{ǶpV÷eéÂàc†â¼THi Ø ОNnN9±0±òµ¿µ‘2[ëôèï9øÑŽÑ¶ÑN5@S­"¿ˆ°'Žÿ„{ÕDS îT{ƒëß%}J9ôq¥x5}?] v‡i5W¶`Žõë ^‰Í{:žèd-ov$(©µ¶Z})p¥l×~V E ØÄP'|±j÷…›[[}s?˜Å¢v‘0¾@¢ÉÅþ- ~:ù¿æA î=Qâ½µŒ3À‹ê管åü ‰ßXÃ@{ên;QÎ!iÝM­í„ý½¯P¿¾¶$À+€¼…ˆ,4iÝ:Üxëõ­“÷ìïÇ4Es%/F§žþ첋‚ w8ø–—÷C뮪ʲ%×3á#0ŒÕrïtÌg”õŠ ÐRZšÔ*ŒÐœ_h†ñ-S™¾ii/]^n±™Òv¿.g£9@¨‘ >üsf&jzY  è·ž~ðù_¨8oûó0¤“yMsd‹ƒ¹ªèT‹‰ö‘·ÿöG‚uäÈÚþ»}`³ƒtÞoy’Õ?&lÐB©N> ™k¾ÊFjа3šÿNc¿³›Iö»7Gæ¥üÅ% ©[©Ñ•{GðÂBávO^%3ÜØT™³lÂÔà`¬ûtáE¶Æ§‰iŸ…• ŽtÈ5–O\kQ ³ýp„l´¦~*Õ€™°k¸Õ½”Y“#ägeøï*6ËݽX×r ä/ô¶P¢ª ©Òó Õ;‡úæDÖæ¨|Œ›Ž6A°E‰8nÇ»G@ßÛä ÏÍÆ^ÖaÌÁMΗüûcŠªOƒreË'M˜©Æk«­u˜÷É[V#ôßݾùVcröO×­Ÿ´ÐÈÔSæ÷ëutÞ÷ôà3h©ÙMÞLØ®ÀvaCw'-clFNt_‘¦ åžg… ©#c}];ØfWQÚñóÙ6k¦´³Àâ?Ч÷£8vÑ{Rä0T»^œªhÊW‘Æ*|ãËbÛ4 Ô³<{õalj«‰B^äÀýŠ{ŒÕ)È×ËÒ\%Lò p—P ûWHÔSâ] îZâ o›`l>kŸ§½XlD@òž¡ùæ¹Ñ‰j¡(óEÀ Œß¹ýã_EÇGÐ!/CÚõ„‰|¤²‘â9ú-ú®'5H —Ãë³îïåO%±¥¸Û,±«›ˆÕí€Ã»[FHH¯c3¼s¦@·Du‡A9?š‚@÷ûΤ ßäÆLTÉ}P^0'¾dLp#Ü­¾ÎN·œ}ƒ¹Ðœ{“Ò“¨¸‚­5ÿ À'ù"|·ìuŒ¼ê4t|v4ŠWl Cذ¡ëÍvEž§3«6âÕ30C^“¸ýX-—åÐRW ûÍp·½ß¹ë¸ý:½¿À˜ P¦÷—}M[©ÍtLÏŸTôhŽ/‘tõŸOUWÚ­~¿'‡Êtò:íNUr^} ‚‰.YÏmkÿGa‚W,•CeOrðܳcõ…ÿ@ahÓÜ? Áùð~ ÊT7:fú ³Û—LË[”À¬¡¤'3K¦ZŽýërë 8÷œgã¹9ˆêPæo¯zéý…"ì7Esw³ðm8³^Èú+/O­ˆ'»_¦Pªï2µ‚þTð,$r-³›·î |÷¡6'BNÝ'Q—ˆq‡qo=5ÿ%O‘ë`6ÏëÒ5É ½Òt§¨­Þ»Y†á¦"öM´ªlçwikY2w­w5«ØhÁåBfÎäÏ5úéÌt€kð„t ve‡Hëvƒ#iæƒ ËÜ&| çw¹#­Päèt½j>¶¨%òúç7 º¢N@WÌŠ Â' –©”¨ütÉÖ!}+²Á+l2' ƒ«œºc*Íy­ØçI%·œóŸ•ÖÝÈÿ\ Êða…C+Fb÷Zá-@¶˜w06ÚdÑQpÌ­r>a§ñŸ¥éR{D3Iüv³½œˆ =é{Àæì—&P7 ô±•Y$£óˆÞ¶;v2aI~ç&R„^D͈º0Ì^[î4Êa<úŒ´Rõê ªˆÄ‡KMÐ`èiËæóŒu³Ô±Ó~w‰ë¹—‡w#5ÜTÐÀÝZ–5D·zw[f¦ü­Sým wç"Ørs"IÞeº[ã ¸…)[ïÆ¹äyࡆEÔ[Ä !ðLûIl·§†~©úcþÜoø<~ÙûÌ¡7 Aº4Ý endstream endobj 636 0 obj << /Length1 1969 /Length2 14690 /Length3 0 /Length 15898 /Filter /FlateDecode >> stream xÚõPÚ¶ŠânÁFƒ;ÁÝÝ=8»»Cp‚;ÁÝàîînÁ%¸Ëcï}îɾ÷ÿª÷ª«º×˜¶Æ´ÕäÄ Êt‚ƶ†@1[':&zF.€°¬'€‘‘…ž‘‘Žœ\ÅÜÉ øŽ\ èàhnkÃõ/½°ÐÀéC&bàôa&kkr¶0±˜¾p1±s12˜9ÿÇÐÖ bàbn ¥HÙÚáÈ…míÜÌMÍœ>nùŸ#€Òˆ ÀÄÉÉNû·;@Ðè`nd`5p2ZÜhd`P¶52:¹ÿ¯”åƒ ð¿cÉÙ~L,@ùgÀ¿2²1}|1ýó¿]þÿM÷_Qþ_üÿòs¶²ú[Kù—úÿGk`mnåþýǼ:;}̾¬íÇØü_Suà?ë* 46w¶þ¿ZI'ƒ´1µúoÍÅÌÝ€Æ æNFfÿŒÊ?rÕ¿ÌÊܨ`ëhþ׃ cbdü?º­2²üx4?æñoðciþ÷•¢6F¶Æm3Û€ƒƒ;ÜG‹?À“éc nO0€ÞÆÖéÃð‘ž7ÀÄÖî¯~~a0þ%ú±„ÿ Nƒè;#€Aìb0HþA¹?èÃOþ¿ˆãÃOáb0(þAÌ¥?è#¦òÄ `Pùƒ¾Ôþ žêÿEœÈàúàbø}p1ú/ú«Â Æÿ‚l€ÿ…dø§½ >šü1ø hbîò/¿Ô¶Îÿrø01ýüHÂì_ð£Úæÿ‚T­þ?¸ZÿL\mþ?¸Úþ²~Ø~üüKýAÅî_ðãâÑbú¸Øñí¥ãÇÛòGý‘ùŸ¬?v”ÁÉÌø¯{½èÅ*MïµÂ-MaLæŸÖõÀâÓ©ì{½Ú{©ù[‚·€vJ‘gÛ;s )ä¢=¸ö‰»Õõ—®Ž…,ì)îW}‘†)¡‹Rüê_4Gžc˜9MåDGCzá†k:ÄÒ$nC½ƒKaÓΧRs‘übã+_N¥2±ìÃ@øÀó/…tó¦M>ó0wÄÆþŠÃW®€òÀÌ„àch±ÜÜ7hßîP¨ ±¸ìñ[ÃvÚòÖF]!ÅHÖ¶ÛÝÓCÖƒ‡>»ÌE8Ò„>[F¿#nyvœú4Aäì³¶ÁÊ! $f¦ñŒ]pÃF&£®?õ*x^ ±¤Êlªy:F`ž OWMjGÇq}¼8ŠgøÞ›8WžÇÌü~ãÒº>áŠàºïît7*mL2²gB¬•9ÌOÜ88Xp>v«bÝ+ôjµ/q“‘=*ªª¤%P[¢¯xãN¥¿1µö`j Ä“L.pP¥òyÇ‹p»5=c ‘Ö8¯@Œñì^ö-¯»OKD Úg?"{«ß»L‘}.Íãÿš> E‰'ƒ±SãAþbWZNê%^¿¯,Æ{AýKsn_6¶ L”ʹ£Èt’pvýÖ¶µxçy9¸<ås +jóÙ>Ú77ÉÕ jy’¤.ø&8'&n2«€¡±wrÄ~@tγiŽM®÷âŠ_ëóÆçšÚB%eÝìÌY…цTƒob·GÕД>™µØõwH¤H-]%AAëèå«A¥KB”Ó’øÐ=Ÿ~ìïŽÿ"ò£ÛNáòÜs!k¶æz€û<â]8[„f¡ûõø½ï'ß®ãë0iÈ´Û’˜v­a!Áù¢ Ÿ”³ÑÙ;®Û é9i7ÛèHFm|@0´(§È05ËY΃ÿiFÿw7¢ž~Pª5÷ «ów#l7‡ âÎu!á®¶ïÎ$Hß>aK‹G+ Ø&M·=zðXªXuFñãdlë?¯§.®ò5µlì¾ F-5™%äÍ[ðòá3Õø&HZs>ë?kQ䍿|ÂPÖÌPµ~Úª…]ìÔµÉófjR[v·õð–ÒWW)ØI%»»êË=JŸßK.øœÐ(UäcC@Suíׯøv\N²¡Ý–è2Í:ã§ PA#c7Ð̲t4=é鯳ó¥×h)zP«¨(ïów’ëÊ.b=Ò•"7Ù{;69í7j%wÇä².C†³:€fªàˆôš§Iñò¦O {å,Ñ=ì#Ì6_Uw åè6ºb?lX—î‚q¡ÉF*al“Œ«°.ÓfÞ©¼#È׺>ßò‚Ÿpƒv¤h¢ÙÁ'Ñ?c’lÉÍÍßÛU8ðaz\hÉ)<¿,‘H’(8ó©Z!ÌÚ¤{ÿÎ:ú±3¸[šw ½è| sh™³æž…,¡«•þß$ŠC°¦74:²cCú ÕL¯¾Z}nÍ~¼gR½äØ< ´—õ¤cŒÞFGfI9Ãñ°!íîôf)Ôî¡GZÖÉÞ~‡Z@ižUÃÎ*‡^ ¤x±…Ť›°˜Jy_ž:I“ ~&Er¼–€·G‚zQQîÏa§lHNSÓ¨û]hÇEØuik‚xo7íÛAbz-aÓuÁ«åDc·à7<œ.“„"”ÓÆfœ“´„¶ÒÓ¬S~ü@]ô9ßLÂ>Ñß]|a PÖæŠ³Ø£|Y2ïÅé„/gpaÃ×Å^”GàÉÌ|[xÄÔQþþxŸqÃÉÃsäü°ØñÁæríø>!^©; u2A·ƒÀËyÊ,sÑTóõ¾\Ó€÷Ž'%Ý6s©FÞAS˜]ò­;­,ù€X0!(fUÒ±x§&æ­©À¡+;Óé`CP_ ê{Ò6øRª5NµdmÒ®¸ÔwöÓÌ-héÞPž‘hØ|3ï!¯ L(Ò¼–ãqoaÑ—Ár† gÁ]l}Yi½ ?¨2Zâb VøïÌŸSPöÀQjÒ3`ÝjuªyEDа Nx³–B7úÁ=oµ lU»·µ ­Î°ƒ/‹Š¹‡ë)Dà¯3H{¹ÛýÇ¢·­º7Ð,|IA ø="ïçh a0Èi¤ ŽâÈÛHþùßÒHàžkr*¥55Ÿv߃8ça}õy·½!»(är0˜wEGºò¥hþü¸”Ï”ˆ/’’a°¬¾¡oõEhubl“ø§‚d[!ªÚè¡HìÄqÊÇs…o›ú¶üМ•aEfžbQ–œBŸàd˜*ïO*Üm)±ÅcÉS«uX*HÁhå¥ 9¼|¶ÏI"Ož·ÌöÊ×ÚšRöµºîošž%´B±z+á‘)l­Ú°ãFî?w!6‘ûjò=M¨µÊÙžú.EÝX ¬#ÁXdñr»ýŽ|뫸IéaAÞ£‚Z&¿vªm]2‘ÒÁ ¦„¹aö\£2w`Šâ`H2ÎÐìÒd4åQ}\L3;R}ó¾Ùuhn×¥“µ¤ ŸX1Ü­³ó±Zue£Gê¬á4@Qi‡‰X Ê/ë%DÍ&î@Ñ3þÌ ;_ËŽm€øÕ—ý”—K4ì7Ç7⊚w¾Aû‰@gÇÊEßÏ,Ü=ƒgßcãF³”öåœ(m¾óÁ!“”"!ŒÀáÊ#¿ÿÔGLްýäf8ü[ñf&-]žR*z½ù¦ÖiZ<1hÐÌÀÈÎüúÔµ^™s²Q'’Ÿ´©ò„t¼üâ„}|5MdÞŒ––44©y»|xñTƒwõ [ Ò(>’¨2x>ž•ßžïWñé{úga¥I„Z®;¯”×âj5’# f,ãEUÈL‰zËØ9pßæ;gƒn†Ã ]ZáœðB§{ÛúÈøÜÏyOèv¼ÂËE:‰Ö$„ÊÞ~Ž620ôüZß €4¶^x„àWîÃ{”ÇCí¶aŸíß8UÝŒW?6Y^Ï]lEBžr{­°.hííY™ÓK ,ÉW28Á_|Ø´Áéž žç}Û©rÙLÜd~;<ܺ-\t:&?BïGÀ´mjxÅ8[øGØ&R¨›<ã“/Üš† 1ºg¬Àâ)Ô ÄýŠ…G‘—µ×˜|ÄT©nÚyël»]o_I ŠL¿ƒ¿¡²M™ANr/Yû©º•Py¥öï)Ú™ÀRkŠ&J ¡u9"áÒÂQtôóÒ&±Bzœì!YZ^à»ð‡J©ˆz0njè™*“l¨¬wŠvÌÅ›¬¾Ô§h&Ãã+cžësf $¯Ôå;‚AG Ú½?ñô/ñ‹LûÏÝèT=Þ¥íÁîub¦½ ŠócÖrÔ“ø;ÍpŠ>(cS ¡Îô ýrã²5Ø>69„©Š¡HÖÃãy£Dd¿}O—K’ùü“|Vé¹S|»ò '¸»XxóUßÊÅ×ÍÏÂnà>2r­T3ý¿Õö!c6në~Ê3®“ì¢uMÌÜQ+²Î®ñi»œ~›£:{ð’üåžQàÛ”†'€—ûý]<*ÑÆó­‘'šEO¹ /‚—@úb®TË›JÈ|ÔýÞBŠâÄrÛyáØÑ÷ÍtIrWT›H‰Ë•{Ž*ëIELsÓ"°›Ñ™K&Z%yc4ú4úž —Øê‹ø$åÃw%) Ö°™¢½‰o"”÷@õÛïG‰¢Íò€$¨³JC 9γã|TI‰›(fûaÙ˜,’P)L»{¼Í:Ô6󱘙E7Î&Jx‹ O7]˜ÛÅßs3ë¦ÊÔøgI÷†=@Šð’O×fZzòÅ{ùjФYÇRÜ}å8¥Ã ,(ö_–¤5üMJFÆ`_FeQŠyjžR^Žš§úÌöQ¤BðÛbæ{ÈXRC+š¶Rxߊá8{ËP?¦MzWÝ'ÕÌI'¯ð9ÞY)ªD¸šŒå)@»Äx™ôì¾Yö× ð} Ø^‰•ÕG{+£ dÜÛ«ŠÁ1åÖˆ²n€Ž}÷Úå¢aŒ‘E¿ü Éf(b¥½¡ÞŒÒšaqÄ'µç|I£´V¼5•Üÿ­Wöù<ƒ;PU¬zêl³¡d©õ‹‘Såu×(aW”¢õ‘7•µl+ZýÚÏvóF&‡­uP›80"ª Ŭ߾aŸ–ê;»ê&:N\<[¯óc_¶j0B%Y¸'Y£M·oik¦ö÷°3»S»WÏŒöÛ,C Nƒõ”iÝ#@㪠ƒ/ù<—ð.ˆD Ð¥YÀûéð=Ð> ? ¥5$Æ/A’0Ñ”œöyµú]sXÛû"-Y¥µG 3oÕ_¼Åâ÷i¦£¦¡´:B{'W‹FaʈT‰O*SS Èq„±Q ¬Ò¦c»Þ>4̤±ò¶Ï}!‘õpŠÎÒY”¢Ò‘‰Ï€r𤖴Iªú!¬{ H,ÙŽZ„…©¨—Q}‘¾©Uû‚jμ2ÿ]%$ž{F(2¹IÌðRl¾*1–ãÆ ÂFãGC²$A„  @7ò6–º' =È–þ(éë“òùöîÞ2DŒ¦¤ó©;¶†c?<áSAWçõT W¾8d¥qÕ=hñ™”i)䓌ã/O!{Í œÄ“7M¡‡“èð³ Û+óìÑk¶Z;åH¨²náºÚl{.¸pNN7 ”ŽÒ¬§‡p ø·Ÿüîò?•è÷i¶THõ_¤¨ë¨‹+对à™èjÛÄ PHÄ4 Û ™SúåÅhx» 1vèƒ*Tš ”jïÒp„ 5­ZqÓ9cQÏ¡¡ëò\™µ¿jt£÷¹d 9KÞ‚LÛ Q‹Ä=i¦è¡øÎò€Hò _µÏ£[¦ŠtÈ ‡üðH¥Ù#ˆ2玟‡”,b3,™Óùö(ðuk×q”<¦yM>…%Q=˜Z®Çvûf(¤`ÌSµ[ ;M;KŒÜ›ã2¿g½/E[CÍSYà\ 6ÔÆ+;Æé­A ½ªÄ²ý$ÈL#h|B²ã"öVô6Nû7=rÎĬ–œ\€ÁnÏ‘6Fdžê…ôÛL=¥ôöÆ, tH k«û¼@1Ædfô”Ðü¹¶&Qs[Â-l9þ˧Èİ„ØËñXâ‚":¯’[%5Y‡/°ÆdŸ,¢îË\+¸?~VDQ’ÓëÓß]!:uÅÃéc_ù†fÞÕÇØ0í™m<¦WJ™[~¤6Ö¿Ð7ä«ÁÞ–C°]{\å©å,AÜŒÂ3SßÕòæº9Ë%zì9ª™‡ó'?±\æN\]-úΧßäÒû+§AÑ a P ·‡Ç~í›ÖéÊ4TßÌ!ΕÛ(°[Æ0è=gŒ3‰i³ŠY·i…‰B¨·ƒ>vຬ¾&ø´7wªˆÁ›÷ $ö}g,S½“Ó0ÖZXu©‰»IÑé o7S»2\k³õ“Å@Z½—&¸"+Ñо0†préËö×Þ“ˆLñ'¢_®àL°$”(wQm%-:¥ó”´zzaŠ@ؤ.8½ÿ“ºä°à|ƓȆ¿äËUq¬;Øâ”eº ôö¦àF[ÍKŒ|k€ZfFÞz¿l­ÎÑ·$K¾¬M°HœÓ¡‘‚-' &Ç­£ÞvQûõGŸï•›ögHËVó}ð&?ÇÛñû ]LíR}µ‰Bâ¶GÇÅk¾%PÖuDe;:å„”ø ÜuXŵ({?ô];~§‘ô‚Ðb·QÕÅò"ïÉ´qЧØ0ä\Ný»ØC‚Òþs\àÆ½ý3¯j/m`8A%}λÈ!E(N_Àw—­ï”ÇÑ~x¶ÅæÖ‹ŽŒÂ>çŸIR{—ãa«_H™—*·CÙ‘1 ~¸ÁšNï±3¨4o ³ *´O²6¬iÖÊßM/ °ûÀlíu‰ÅäõÖÑ:*6 [Ëüt`ÓÓd-Õûê`Ÿ\Ú¾¸ µ÷™|>ŸUT;SÈÏ2ã¼ûm•¥ìm)zùÔ)HH\ÜP˜:R™ñ#æù“•¤sl™aºƒCŒ Ÿ =•}¯–ÉêóaöŸ€ƒ|IïÚnÑ8“äÄ B¢7»ô®1L æ\Wô4ü|Lð‹DuTêÏQºÒܨb«#\+p"‘|ë w>³÷’¬ ¹ùâï”óÉç” ÅË‘<¸àRNí„ï¡Á  B8t¢ é‘\îÐEäu>äFîÅF¦Þd9Ò/JGÄáæðÈ:´¨MvbN±~yf‰½ \ÂHzëŸãU”ÚÖØFr¾ÐÃçòXäÜÄQì`kŒì’¾]ð…A ؾãu)Šj&¦‡£A•:I&wüV¢?úI+.±Öb†œà¥s„’®Ê쌑G0ãr ÁØñÜxéudsŠƒƒ‘ð³§¾X ¹­ÌN4Ü·¬2/ìT1—ÙV‡/|ÍU°d8"( ¢[ZÿG0F&..!uG—ýË%þ¾ò`r“Øp§·3)AèWüT‘½3.š|î¨òø9»Ö_‡_K…WšNÂ]©Â¹Eû‚ùUv}ÝSA’­eMFýW§@ç›Lú7,%ÁŽæH9·ÄN]œâ(E!Éä«Ûj‘+oV¤pÄ# Ÿ³ óŸ‚b¹d°ÉÇÃ^e›xÈÁël¡Šù’›ë$ Δù1åJžR}Úi±€¨Ò.ªþ|9]8I÷Š<…¥ ÊVÑÈeÑæ&š{éŸÙSÿ@¾xÿ•'Y'b‚}vƳ2·Ÿ »pÆóhVh²”§v•<‰Ü o»Eê)´Žë-¬²Ý…Þ«íg)#ŠSGQ]7¡D8ˆ¤AË¢ãAØ@-Â?FQ®˜Ù„V¤Kýë6Ú"iª"Žôb÷žºÀ_d…í<ñ/§ZF)WÎCµ:ý„taØY5Æ»çbNuáêŽûî.Q#CråN¤Æp—+ôÂãÏ탟H¶ßáðMÀ» >‰¶ŽÛ/£ÉB¯ÀÂÚ=Vð:Þû kFWÌÀÿ’ÎJº]¸4Ô|޾ 2ºSî—Mú¼ãü¸NÀ¬óÔ^›«Ä!U‡ïÿI ó$:v’Œ¾‹¤2Á±Ú3] vÁTz*¶É>Œ½œB<ëð§H5«ø~ä=DÖ$¢wôÞh3\8¸}¦öëc®ïv½om§•õ“žeMG0UÁTàC!;éýžkvð”ää/Aûv³R8#çž/3KÅåZײ%LDÕ îßÂç>Iyåô¢¤Ñ&øµeymE¯ôõ¯jQVšn¯õϸð?å-è¹øGÏ4 ‡y¨sˆ-6V¶u*([sE`ûÅlÏ·ˆ4¿—.]ªYêìÚGìÝÍz×®…¸Z[ž£üì˜E²SÓ/!peG½GJn­—¹eeÄT8]ÊK£ÓÊÙëL±á*Y¡7HIt3³õ´œ¥|Ág”ýˆ²Yb×Í<±•Ròô]9»+J„»KzÃÊ€ïeìmM.0bÓ.$^yKF£G |  vPãg ÔLì+á = Æq4Ì^çÚï›7B¦;à·«á)Ž»E"•›Ðý¬>c±oÊÑ¡žý>Õ1õ‰Ÿ•;½Î­€g¦E‹Éú0”üNÞî9k¸¼Ÿ€UÜ1ÃónÝfª|hVz5¶µîA 5ül…cYâ{Þü›ª«³èµµ%3Í›}ç˜U†N’Üö³Jþ;™U~¿ Ú¥HÍmÄcÀ›;®"ž!Š/:‹Ž7oYŽÓ2@sôGaŠŒ‡FмWð¬¸àP#ÿ$S›;÷ZîÂéKæ-ó_«&»ÉÍÙf‘ñw|¶(˜MÚôÏœ†Š|uã² ö Ž$·,ZŸ'°“ês’ÏÈáîPÔÝ÷ZÄ:eë*s¶};\œæ¤Ù)iÁ´AÿÅw›ë–À)(Õro¥SÝ6=ðxѪvÏõUnˆÀdŸ­²jnéÔˆÁ—@ŸS ŽKÓn¸ÎÑí6—ÓIñ*0G^¦ü8þz¼˜¡,ä2pá[ÌwHHlvÔ\Ý–Ïì)ÈÞ¸i…X`®aœä×cø>kÑ•í8>;)*%ò@çйMy_žªT®3žÎÅc®í©ZœÅJýÍto|d%¤æ@yBV‚MQTIÄh%ã©ÈÀVI|–‚\‰”Ú%¦'3 bóÃrÕ>ôpOµ'JÙÉ×l YìOéÑqxÜúP}¬È¥Æ4WªP±)Љ\¯¼á$È®l9†çã]Ò²2Vå#,ü@VM¾ è~'1C @»³ÿwó(•)AÏ„¶ÕߊŶLe¢¶Öéx#šWBQT ¯]¼£¹’YµÆ N¢›rßö;‰ô8÷JG×NÛ- T‹ ¾6»8avjÑ^ 5Ò+T`Lõßç^S« :@‰ZjPdq‰áô"—y¥š§'yC¥§Núþ)DÒ•ÞÂ%WùËÐ!r‡Åçº.h0÷¥NÝCI.A¼6Kc°3K‰Suâ{7Óß+‡•—èÄQÓóÇÆ_²ÔišáD˜c1Á¼ðá«Ç“¶šn°4°sC÷H‘Êþ®òRxz.ěޓÿš ìSyv°:…ªf4ª§ú8ê}½”÷%ª‡1Æ# @²d`°þP7"ߔТ¢•1åJ’—¤ ›ëVbP§¼-”¨šwJøæ=Ñ<U¶q¤gÏgÀ,LœùJ˜—®‹È·Óòw‡›¿sÛ'‚ǰ¹¨^H°>¤ŽµI.G<ŒSÆ%°ã Jñ¦\oÉSÑâñÌÛ]–6“ü8õBjâ]Ÿ&®¢<:ƒöR+hfÁùg,¿ß¼`m¬ÒJ§ž\¸ªCƒzk'4yª@äïVÄ ²~‡–ïQd½…’« ø¾ÎÐQ¸¸µæâB_*լł°´„§1÷2âçü9”€\j\‘éó î?ƒí\ã|V8m1gU¯²½®{ìÔ´­ý\ ¤2‡‡$—œ?ÿ LÛfÕa§ZƒOš¶Ì)M¬[âmÎUKñV$ið¨tgú? ]WݸÀÀ®&ŽÐVT¸9Ãú~ÍàP€+6Á øm’2Þeiáj&&?×\ïRÕBª¿ÕÃ÷-w±¡àÎÅöñ܇ƒÐ «¸\A¨FNã+¬ºi¿Ž–¹™?ev%Þ.êÒŸ<Õ|óä½_©ðš gíÅRî´'^ò˜ ¹3¾ /úâEA%§)*áÛÍ0UŸƒÙ Ûö¾!ãl¶”H$ QþF¿^6¿¸óCˆ1DÍ,‚@¢œÊê‚£´¾r ©¤]ÎWIóqŒ˜[.¸- ödõ­¯†ª4î(âÝÒ@(Q‚·¹èãRåÑBfZCVƧyÇ­7¼: eCGýóÜEHZZ2g4@¾’8B)éÑÌÓpiåW†2sÆtÞÈ©9½`ÚË:/?Ñ;ßø2ɾŒ ©¥!>37?uk`kø‘ÃÆY¤r½aLÌ¢&ÎÄçgó0è–A8Æ )þ:‰JÍ›–l\±fýfzp¥ßg´|t[ßHÇvƒÖ1’YC,À[=q½õ*ep‹º$ò$ê}Ž‹}ÑÅí¬³È+MõÝ$ÞD¤ðjÙóU@U:É,õÜŠÇÒF?] Å ÈKDáìL§³›0—xÖ«21`ðì¥ë1 Þi÷.¢ûrå€ëY¤P8IÎ#õ …‹’f S;¨ê¨›éÖžà<-íÝ71¿¶Ö ÆòFo¬ôŠ>¿µ rÇÉÈ¥“¤aÉOÈÔÜ4û·õÿ¹Š…L]1‘wv¬I«:"·ÙÅz[På$®ƒ@ØÝñDÆ3 >ç«\\ñ³¬ÃûÄໆB×öL7µ?P¹½6KÙôiî8{h÷Š×ÁîÐYtw2«<ä'€a¨±¸qrÓ­‘†}=Céi‹;=XÝQ3ðYg_*gIüǾ½á¯ú¶°md×lä+rÄöªº6RÆ(Z‘ º0b§¢[žN_Rþ9–ÆgõXhH.Rpµ‘ùPâÂ{Äø@NT±‡ËÍwÉéølò6žnH^Z1/“†Äæ«îrÑ&ªÞCƒéŒÇ:”…Â󯇋%d^uÍŠˆ½§~oÅ*ßt^G‘c·.ƒÂbŒp~Ãxç€Èzè¦õŒ& ø‡L ¥lË…² SÏ#J‚ió ëC¼FTûeá¢)výOÂ`…ßÐ%Úµ}¿\ùØ?n>à°ì´É,%ëÈ@[BIµÂÿL¸×{÷ôzÃ÷qߟ)G,bWc)‹Ùª6&ÈgöM.Ê ¢”PÔIÂö)\AZÆú.a!÷rûô›¯T®Îï´JF¬Ø³©2I%ÑåÍwòÓ˜`v x³îzú{%Rça1 „…¯‘—CSÃuÜáæÄ‘ÖÂâú72ù6ÿBÚèy##W¦RgwÝRüA½è: BoJÙÊ"y?;RæBù“䂪¢òœaᜦíÙÝn¢g|×ñþT¡Ø‘]šªR­>Aàµ>ù ‰jÅœŒ_éèMßqSÛ £•„Å–4@SÂ#Cà÷ ‘ÕFùÒµ˜°5c]W²õ·¹ ’Å y¼P|ØÅÏ–ðâîÇ4+d:ÃV‹‰£ jÂO­Å“>Å2Öyð"Óàx9ñ’ wáÝgob´A[òÔ˜R.:åÊK¤ÙLüóÖôÅ2^¿’¾?‡¤ÌëYPôâY˸ >8U¼ß ¶r$ÕÑs áH¸Ñ½¬,õ €9ÃÑ”J2„óÊçÜvªÂÕ¼Û°œì¹W¦#èéÕ¨hÓLvÇhSãarjÒK9tý7% 4ç~ÖÁ.²i?“¬l¥0µ*U3+ZgGegñùhKlÝïÑÄeÑîMR“ÂÏo“›Ó&£·zhƒ­ç³Çlõßå_%$/SŠ-Šnò!ÀÀ³t"FC,èÃ)5·ÐÈÀã Òðædu¾ž˜M/ò²•‘‹SÐÄÍ ØO]Ÿ‹çe"‰Iy=I©nÁ¹ Þ¿…ÊÑl!Ÿ!t¥uÛñ ƒQ¼z‘˜F+ îÖ’Yßf»zŸ¢sè_llÓÐ .¯â·Îˆjý\-U†©˜ _n2]Xž:2ó•å@áJ’(º¨™¼V9ÝüŒŸ oË£ôUöPSÁ²8©j~®‰ÂQyR¬øzëÐH&ÂVÉzÅçüÓ42~™jóWçvGïýáè—¯a>Úcèaì–Å خ/׸“@ÉM^£÷ßæÂøÎÒ™­9~œ¾eÝäl(à/ù^hõËÖÄ^ò|MÞoKC-õ!Üsº9H㎺ŒoHK“í¤,Ñl„éá˜óˆèá¸5ç•Òñ`U1Ó¿$¬‚T%O¶ˆMA´!A\¸]s°‰îc<7C4GÝöŒNº—ÁÌ•kGºÏÚz!ÈYÇ¥ßI0M?ó¾ÜjùâKX½°¡-"ÂÞa¸*HeÑ› °Ç[‚²Ñ €Jo:ÊÏÖïZ^‡q¸ŸO¢.“MXf'^,Wû“ïúU-XÂQVxN~¥ô$° MWâÌó¢àÍZÓ”v\7´EÌt)¯ïgp»ÿ”~ÒœB…ç¥ánœþ¼úDRË _$ËÁqê¦išBò+†7ê¼®2ÚÒ¨‡ÜAeK‚'c%}žÞª Ü$^ôw\-4:‰>cAòYnÏ™%Úig!*ÕrÁ4 q°:ÄÔ]ÓÌ zhŽò‚ºIk=©÷§l–F£ƒ Þ¬Â+…°*ÏDSAóÔN«¢ÜýªÛpTlXäw|úÁîyѲf&y{©÷îבg?[­5ª“ ø•|O¦ð:ÚyIÀãîÛdwu„gìÔ[ôe¹ÔþN”nú»ß`û§K}ǾC‘U¢¸V#üð{×Ín'}÷hÿµªßNK¾k›ðêX­=i JöŠçjA„P1Çq[M8©n×ÅS ðŒ·*¢>*p·FÊqB²Ž 2m±×!k-Ö·®›è¹©É7™×â°¼'À]¹iu„tû‡p:û/Â+’øHSÙ-y·ÚàÎÕ ­à\*‡Î¹†À³Š°°¤€,úØÆØË2­Èº€  Øy(¡÷7Ífœ~·‚æ±Y,·§ˆ0²¼o13²X|í&$4D*Cž?¯@íËÆx—Âû,²Næ,*Š<œ‰imJ&FùÄ1o"·T FÝõEb·e6…~n{À{uìïÊ·ž‘±µ‹Ï°"s_ Šèà\û)ÆXŠ…kž¢[º"åáßÉX}%L,¶’$hc~—ŸuZ„„©ÉëlíÈš‘'ì îk¡äé{V¯¸-³Cîjц›‰×èY6Ñ?Ô¤ÏÔ°KûÉkÚr‹¹ 9Š_VqB©6ELó«nME=’/>£Ÿ ¢½½ùdñQB,íÅ+TZ’÷C}"T¤ nYæ+±$ü¯÷1’íÁ€Îª1ýâ]yu9Œ Ú ˜ÚöÊNe¥P­UÚí65.okßñ -&®]ȃÝ'ŸAÒ8ÍшêÖ9²ÝyºíÀª­‚GenÒ×õeÅË8Á´þ~Ú[Úôk937ø5wrºus+õDúÜÉ÷ã4²¢GmÄ‘E×áj®uÜ8,‡a8‘ö>jt½•˜®õ3Ò]¤JUÍqå+ÝÝY£óMz•hÅŽ5þùš'ßšhã'ÖÓ&í@\-êô’r+ùŸ÷PžcÛÛO¦x‰Së¸ßÌAA¯³Þ£Ä"è,^¶¾A›ÈGÎY›Ç3¸Ã_ð)íÁÃy$K~4h°3ª©!¨ SÙ“(β#>öÕw!¨¹È…‰/ØÉ1оêW˜WJó µóM1 tb$Ž2p²­h;9Œk›8/Qò085Êf^ê"éë2ü*t<Ü(±/Ùé/þixE¤ÀÞã¡jRþ»|áx¯ (\:¶œ=)¼#eÕH`ü¶£ßC°JL•º0ƒþ(ce䱈­ãoZoŽ…‘+pª& OT/3þR™ZCD'м±ðÏì ÇMÒSÁÅx³CúÖ=?Uü•cÒÃCN7š»;$CMß(:`I¤µ":‚côÇë¤(ž"a .¹:6GÏ6²W°Ñ¡‚Œ' û€VZ3"?]rª 1Gº  Kñ§‡L¦ò­ÎÉðñbÆwÛýü<ß[ï`Ó³J?¯Œ¥¶*!­4?Á¹ù˜‘ž·DÌák#J€D‰¿ù8y?ó‡wìnJNò•z0´¤l´9¾¢DÑ¥h?þŽÒ“Ìo]é¹ß:‡TÍР.ÖÒYéîtZ¢&׆i°óø„GççjÛ‚†ÒÅkæ¾ç—x>ÛÌ,MÀ¡L˜ùõ¯’¾TYKÿÍÂSïKruÎqøWg–‡rÞ3£éfø&táøÀÎ[o«TÅÂéÍ›™^mÁéìë<%€_´mvy׺"A.ço×r½¢rÊjl=,X·Ãžrü\×'‰n³7KÓ£›]=µ¬Z¼l$¦ï:áB¢;ÄT…¬¥ y’Ëó1ƒ÷—ÑõªeDBH¨÷É?9†é‹~R[Ž%›RÙI?Žg8ýΣϯÒpL6ܱۛØD¼/è ·qœÔûõ7gžÅ¸Í7ú~‰Ðô‹4"zè=ãL=öÈqd ô¬ÿ‹âbó\ž¤M†L¨Èyy:©¿Ëò6:{¢´Lƒ„õÒT91wK‘³ÏâÑÀäg¸^1Ä6ÃÜðfÿÝ1x‘`\{×ÊO)i%¹ÒǪ¸•À¶ôk>Aè`Ñýòp–zJ»^S²šÝiOpvI½bD"ƒö´ð'‡SW™â€^'‚ô’µÐ_2 ;8«ò„&×tPôÛp \[Õ„¹ôb`hw˜=Á´ễ¡Ý¬¡þ4ß(9çÅ©RAÜOç2H{K›ì–y6’•°ÝŒ‘gp`Äoù/óKZ¯x•åÖÅ#u[TS¡Lé—R´WÌž×XÅÃ’L“fEðº4(eyj{'况ºGèˆoÔ®ôŸL Õ˜”áêÑlÐÜS9‘5D¹Õ3J÷ȸ‹¹®2"Ø|ùÝ.õƒƒüÑøð,/3ªƒÙ¿á >ý ˜™Ô‹½¾“Ý~”@…:8˜ßÏ R½{6¡•iWEŠø¼ ƒ×G´ÅËÕn’9ãO•{ÔwbÊ­Nç;—-žý]k̇ñB¨Piƒk€Ó°“Eòòn|„£|+há(¢'^MHÿÌõ¹¢¸3·`x^éà.(#e/œ¦ 'VD:Âzó Ñ`s-¿‚ºÁ<í‹Ç«Ä=”»]M­mâ„!¿yg’ãØ(q/Y:-NMæ!Ž+.úb@¹#Œ@åõ½BJQ»òhe½fpæ{vÚ!‘ν¾^¹ëx:ì†:KI¹D‡›‹7³¥}ë«]ª¾Úœ?' *DÊz¡|ºm‡ˆý¥jjb6í c rºÔÓm§ÕÄ­A§ò6·'%ŒéùÖæ¾}„.L ÌN-¹Þ™G5vpm™ ‹(=(Y»LesYJ¬æ¦×õ¦ýº0RŒ’WžöÃ3Ë Œ‹ô'?ÕD¤þg42¢(¿ÄÒí@É ¦„°~¹±b¤'F.’èKŒ¨m¶éß¶lËÉx-tÓ–¿Ä¿óÔó)ô÷Aná²Ø9²ÞÇùxF…ÈIΤ^Sn]gšµ²€[·'­¨¢7µKÐÏ™XÝ 7+›¦5Îí®©WŒ‰®¦ÝÒÄïîLDÛ~“QLÒ˜¿õá†gjŒñ€6T2Õ½Œpï-Á¼—Ôb²÷GhП½Åì6ŠíÙIr¬‹ãdAº†íkŒWôuïÓej翺ÝrjOˆC´ÿ‚aóG U ¯0>tñ*¢Q§ÈöTào lNê©„]cÀöëa–óÚNDœê•ó¢âWÍ €‹W¿®é‚°2HüÉF³j¶ê³R¢4‰‡åk^)Të_œ`vUͣŸdhpSÚ{÷JFK~Rò+)?®þ)ˆìÎod3ý.ÁüÓUC·¦Ú­¡]r–§NGmSá*Iû6RîM,/º«$ tL·)ÃzÞçëítë†öŒ†êÍy€v€Ïí{\tá& Š{Òñ"wX Ýs4îïܵµã-S‘Úçì£Ã³‚10dã…:63O§ø¼ŠK”Ìa¸ ody"7ÀÈ”VÁF=›4Â×ãXg×›†y=œ æWÅŽI"ÕóËYuÏn\<¶{ì¶`å_®ô'ÜT6dUö6¸›ã÷•‡”b6ª~>•ïΧIcŸöÆ«±\¢¡~­å§@®ã ¬às ç|»8’[Ä}°¼4RÝp‚]bg 'ÔØ#‹+'Q ¯Ñ*Þ­(S%Ã^ù$ä¯nôm!šðÇÁÔ ù%Š`àÐö´ÈŽ>yª¼ŠçºÙÛî:>ü«‰÷…Ö}ð±Ãû±)v¬¦_(ÍzÑì>±ÍÎô•뀯րU˜àË>¢:Dgà.buÇþÐQ)tKzYn2¹ øË¯xTfå ›+éoÞ/á#¨¢kCyɦ1©¢~…ù*ÍÃ0¢»6Ppu~¤‹_Qëìv:™Øû®¥bLL6NŠQÕ8Ñqæ_ƒjØnC>w•Vìbk(ÛGŒÌ‡I‘×Sß BÍ*RõÎ/¨ºµ2ûuQËõwnáæîu¡‰ë³lÅ6{¢Àå­;`ÝQ¿Y(ãXF ÏŒbǤ¸P{Ü1ŠÑ•´—¾¾«zQ  OŠ@-uÐ{Er)úÚ¼§$í„”"G%t.=jc¬.°êÌ&ïúÁ[ÑÉ¡ùù†6Z…ÿÿÄãõ endstream endobj 638 0 obj << /Length1 1453 /Length2 6547 /Length3 0 /Length 7532 /Filter /FlateDecode >> stream xÚ¸TÓï?Ž€”¤t¤{twww1`06b4H§t— Hƒ„t H—¤‚ŠÒ"èoÆç[ÿÿ9¿ßÙ9ÛûyÝ׽ϽÏ}Ýg;ceÒ7âUpD8@Tp$/O@ ¤cdñ â±²C‘0È?8«)ÄËŠ€KþCÉ B¢0eEÔAÀš>0P•ŠI $þ!"¼$Ê _¨#@‡ ‰€C¼ñX•^Pg$jŸ`NPBBŒç·;@ÁâƒàÒâŽÚ ‚Œ`(ð_!8¤]HI~~???>»7ÂËY–“àEº !Þ/_ˆ#àWÉ];äoi|x¬c¨÷ƒ éò‚P †À½Q.>pGˆµ;ÀHC çÿ!kÿ!ðþÈüW¸¿Þ¿Aá¿A`0ÂÝ€ÂNP §ªÍ‡ôGò@pÇ_DÌòù‚ 0Šð;u@UÁBUø·>o°ÔéÍç …ýª‘ÿWÔ1«À•îî8ÒïW~ÊP/uîü›ëGøÁƒþY9AáŽN¿Êpôñà7C=} Ê9(ïߘ3  žˆ?Ø…ÿׯ߯ß0ª† „À U$êA}àyƒ|!¤—$$è? ÿ½ÂŽP0àq†ÂñþCœþ¬Qý÷‚ú¬Pò~½þõdƒR˜# ø7ýw‹ù•Íô4Ôô¹ÿ–ü/£¢"ÂÄ+(à•@Q€˜˜ ä¿ã胠óø_ ¸ ñ']Ô9ý“²ï_ püNÀÇÒE ” pü[èÖ"`ÔðÿYî¿]þÿTþ+ÊÿUèÿ›‘ª öÛÎñ‡ðÿ±ƒÜ¡°€¿ ”r}¨)ÐA fþ¿T3ÈŸÑÕ8B}Üÿת¡¦AîŒR4/P˜O@øõV…úCõ¡H°ËÕüÁM~Í ‡è#¼¡¿n”—€ÀÿØPCvCÝ"Þ(iþ6AP3ôßûªÀÁÇ_Ã&(" yyðP½F­DA@ÔT:Bü‹ÀÏG Q.T!'„Þ¯Æü^ 0qBþ²ý……þÂÚø/\£ŽòŠ †zað¯®ÿ1üWŽ`//ÔÀþª€Ö¿oÄÆ[]B€¥¢\ŸGõ\5*Ðúñ~˜Âz·ÙŸj1'‚d[~䢯6ï©hïøŒj"G¥:fn)˜–ëèjÚßz 0|#[½‰¦2¼­xÂ[2öílÀÂàˆ qžˉß&9N3 '²·Â´bÏ0[º‰Ú­ÿXvÛç½k)±pT\3eÓ"“ŠúöÑY0±l"Ç-¬‰“ï{Yåúk˜ÌÜ¢?‚&_*ö$R ضJÎ__U82œ#tZª5Ô ú,†”š,P“©h"}”š<­P³ÝMQäB©:+•™ºÜ=†mÃ^lãûBéHwÚ¨O«³®Rø=½‡“m>Í‘%™¢ÁS:»ãoüTéñ.<9,Ь Žhã¹Ç B°â!L Vsß›Ÿ: ˆÊªK môµ¶D쇑B¶g©®ì“òÓ€‚6Y20ñÑ÷OEõa Nfk7ÒYRVR} ]&×MŸ‰<|_ŸCkÍ3àçŸ:^õŒÆž XŽèÉçÃSÍ{ó÷_kˆ\¼&1åRE6i-#úí8SŠRB ‹‹0õ»ûÔ¤,å%Vf™SL…ˆJŒI–µwÑruq-$£Âˆ IÝŽªéë×êD'ŸÈDtÈd‰‡ <|3{rGÙà …¸iûžÁà·»¶©^'ü‚8¶ZÅ}–.ö•ºìšHáThÛ~êÍ'E‹ùð±¥bÅ&¡v¤U­‹’¾'Ý=o=.6Wh޳„ÅgöχnÛ=¤ïµI¦Ë}1{0ÔËžµë¯Þz}yBê0®&9ÊU«mKéRZ!7±i÷œwàx N:µÃZ]J ï„{Ø~jÕ=öø^㩨 ¸Oľ-!´ýL'ŒM"?Î4T™à«ø}Ðlk„àœÍÅ© o&§µFQºoÅò¨#¤ùZÍãäbˆn´«‰Ž_s4|‰Q¡*þÝW_èí{~s=ÑW ˆþ¦£‡û»6fž´Ê:XqÂï*Ïb:HJ-R'KÍõUN´o·í;ï=ë¬F¨gá)ýç©ÉÆöØû{|¨ƒ»W×fºŒô†ù*™§‡y) èçßÙ2·saŒª?)¬CµIÐ ]€õ ªE_*žÍ„pÇ”®låo9p¢è|‘ÜN3T…:û‡ŒÍ!—09:0×FóÑ3ÛPú65î1;į¡•QZ5zcóÉL÷Ÿ/<ÿ¾KõÕä‡rÁL*¯òKî¨<ǃ$×d%éÂ=“'…AÁÛ_¿„€„>¨VÁ0²úÎÄý1ëh±Ëæ‘éêf UƒÏ¶¤š™ÖL7f(u“Eš"šsÞøv¤Ë 6g2Je6ÉL¼•å‰Ù®¬í³f®ýÖ–•O9gxx××P)k¥³Ð@ÙšpAÞŽ§h”b¢¨×í>E’ƒlWAãJß½¦9Ïo5Ÿ´ÂQcL=Ð|)éÿ=•!a,üÀhÜD_£Ù)HkºzÊ›&ÿhÊ¢¡§äÿÀw eƪ¤óû C‡6«^‰ü~žzdLÆ}é }ödͧoB}ÓyFXZ˜]L*uäΛ÷å63<¸–¢Ä| —)eÞè½C¶Õˆ2äËtÓElO„²â?4‹;uÅh *b#;õ8£ZêÄ>γFãF©á—]§>%=;sú;kK¢ìòö\z§4(/oK1kbo)äúÅÈj‘· »ÒYÀÆV£ÝhýB½¼ ˜A<£ N#æÉIýñŽVܰ›ž åáZù%@zÕ[Ϻ>BåÑåG7ô×y\„b8žVkLX—×íÓ+Ÿ¬Ý¶Ë,íl‰ÎNmHÄaY);íÞlQQü©[[¶œùLÆ^†ÎÐ7ëŽVg›7)Â{˜K¤R>eÝøØ¢Åã)ˆœæ‰*ʼ)õ…¿É3ÞÆy–—Ò4ÓÃ=wYMjÃ5Å772&_¼Íýˆ.Jxç¶ šö€½ÙnYx¿TC [vìÂêý­æóI­syS·Œ"bçCéÚÎôhd?¨:ßæü“Ü">úᩲ–‘ëB,šöS/ÎwЮËðód³DªÀCÿÉÀãw •ö²ÓKô²g@ª¼Ù2ûSÿÈŽï ƒ„~I2E«zz€‡òØò6 ÕúX8+ybeS·^ਦ$ÇÌ Y/÷cúÔ”=%š4Qn¨ÿ‰åc{§äÏÞלc½É*V>•;²× }è§åílÃ%ˆÆO; `ý’»ÚO›¸ò–ß}"ºÁò†æe©6¡øÌ‹óÕ$ðÄYë ‚l½.¡@[½üu—ÖÛó³¶"Îܯ؞EÜËoÀYÃSÝåÅwðHít&oíyå›±î›bÝÒ²ŸÎ4Í^T#ªÆÊˆåÖ›ÌÉ1I9"-"£_^ºéšµZ¼8T]‘þ¤ÒœýÙ­ùÍö;ÃC޵Å[ÁVbt…›Û÷¨n´Äi¢Ï°`÷HÄ«ƒjajƒ]äÏ¢J“g¤¬ù2Þ?æ~˜ZVÌð2S¥œüúù*FºÎÈþ2ÿ³ zŠ}äJ4Æ:$?fU_©å³¯îÑ.³šh~ÅÁvq‘M+°D2õEb&wðn#ÇN§éâ—w jUu0±-'Z3²À ¯b»C™ïjÌAì5Â1æ:€ Ž~ª¡¬¦˜cê@þ·Ím«óÚC–QÁñÊwF„y‰¾m ¨z´%ÐX]wœ)ŒnÆÖáÄ5¿Ú¤^éPØÉìèEÂúš¦ÕoK¬ÐŒÃý½§uJé£õã¹Zž@ Õ)N}h~nk±T Wê@N1œª(sÒìÐq‹ýÊð–Ú!S9hÿýûñg»â#ÃÁý岎?]Œó“‡ZMÝG?ælR{VN:+S§¥¯¼èÊ¿#x·ûƒqœÒF(ÿKäî´áܘ»•z®Ã‰Ä¯™EG%דC­ R×’.>\¬©+n`ãÒó/øC0eícK ¡ðË6}^8â¼ç´—]zÖ¢÷„÷ÈE˜X,žÈ¥"ò Ç1öK"9;ÈF©F–å†*n 3Ól×SDÚÂ]ׄ׼ºßçʧž!NÅS†µü œ×“< ¹€¶¤„|K q§÷›ðµMãž¿úysåN@Mذ’ð1WاvWÛÕ´CéBiv<^\ '3Œcc{§£‹ð™G¦`ÐÍOÕs~ùHWj\rˆVqáÔ*.u«­Lp]­-Å¡… RÖ¨ÕÓo2zÆ·§ìƒªÍ >³F-Pi>ï\1/£)Bj¼ì{ʇ¹ð ~Ø*ãA}¤ò•×é ª\µU_›6r}½ô§ábð{e$óN‘\ ´æ’_ûveG{ò%¹¦6´éЧ’ȇ$ÒÙ@é®RÜôAäݱ¸œ³k éÎCZ\{áæZƒèoLÛØW-Ï&è×8qáG3÷š{2I†òRßhO¿#ÔÜ?>ýl« ­ºµª8‘ô–~ü¶Cpé Ù†IìupZö¬o"¦QûNs& {žúá!—7óÁ2?óQ¿gEô‚õ‡°>yçK|©dHÙùÁ…GÏíì¡ÆÓÈ3 ìZ+(B¢4!Vðu?ý8»¡5g…Ž8”ï3¿j-íXç„@i6Ò°p³+™Î‚ïBCÝO¨ö²³äîqz¤‹h‘olÚÊÿiw²§0*T¹e@þ¹_‘Áôü!ˉ„JiEª« Þ#9@í§ÇA~wìˆD„.ËUœú›…+æ}Ú)8P¨ª½¿Ùëù|æd‚ˆñÝ‹9áVì†Ø²ÔÙ#`½¾Õkܺ3ž%£ábÑóíž»tO¼Ê*­ÒÖ|íßã÷´6}O¢<ïõ¿TcùYLU¾7ÃRÒ9}o2³½ŠòíLŸêT^&¸±)?-B†êÙ€åF®‰Þ>,þ]?¬—ñ†â]ò««ò À½òCºlî9EëOeÍ™^¹gA¾ŒËOÃ(Í~2Ï›*©ºz,þÚr1í®tÀU¡®({¯¼ªw˜¯bä©ÛRþ2&øœ¸ÃMAÃ&–“RçŠ(´Í¨ôãO‹ìUx+MDV^Ê"[—m2ýhû Xh‹ê†­},XúÝôpYÎeÃÍaãýŸ{«5Ü™`ÂgamÒ%ØÝ¼¥óL>‡Kx0Ùõ¡Wô¬}Ýa¯Ð-Pk9Þ¼›+Kˆ>\5õÂÕ¦å>üLÈ\V³$PnUù0LF÷*úN¯œ€>)È“ÒÁ‚C–yUœëÓ£¾±)·ª¡+ÄVÂÚ[@ØY¼úö AвßVç•MY~/m*ù¾ã“ •tòñò¡G~á«Ô›y$|,䦛».4È‹@777áýr̰SGÉuq·¦Y¶üéÄÙw¡Ç9Œ0ƒ†'óâ16«Èù=Îî´ž=¡3ÎðìSÇ´û±¨@’Þß'5xý³Ô]+9ˆ-PJz±¿+ÜýtÛ *69CѲ_øô ;Å­§y˜ñø)Ršv1Ñí”G®ZК³hbÆé¼³á0ks«ô*àÇvƒ=ëZP -q%SC!¿›÷;ÿÎs§]ÅZîºE¯GÇ*skÎzZtIOY®YžËѼX.”Ûs”sÛÕÐdî-Ò-¢±ré„¨Ó Ñä}./’Rr|º™{wÌË£—ºHæz[¬JBCÜŽö¦Gfª±_n)Ygwypb>ã¼ÀúQhǘORÊÙ´ÈÑy]PÞzOG§ ¯µ9ŠÀsÄ—­­aüRéÝ!]´6mKïf?c}Ÿ 4 ïž®™Æ+ý¢GܼŸU—˜<ÊiRýjr¥ÏÜ­5Ã]Û3oÑ#•¨åȺÀ:ÒÒæk·H9»aK Üç°ÐàMM„Ù×=’²_$ßý¨0‹£.ÙRÿdÓBޘѺխ>Ôá9jhk1—OMȃ÷„Eµêu¶ºòê©)œÇ)vÀ\N'™þ«ªLwÄàèˆb,ÖÅêE‰šÖоKóCÝ«Lq»½¸0%œcŠÀy'Ü]\é…ìÌÄ›ð;ö¨oeà’&{Ïíæ:‹}ˆ!.QöZ¨uUÉ–® ›S)è á£)&ô8”x¯åÔws¯ÿ¿\)£ÓGß,ÑÏ`C"‰Ð/|Ô¥´œ…×Îæ’¤Ú}8™?7K]¿5ÊÊôí8¹ùªô°Y®_3²›?]•YÔ„¯Q@v ýœû­–ÁB”5óøBíœÌ~øïχ‘þM›Íå¦I¿Q½u¾GEaÈý‰P’“RÓ­‰êfî:’òöºg/nèÅšM¼#òë—ªGv?Œ¿ÌÀ6.NT¹QórÞ2ÁzI,2É’›“ÈܘÒÚŸ€ó0k]­fgE¼(g ¤KÇ÷Ã;WJdeäö;Á—™Rø—Ûi›aôI3ªh½•4š8wB¾Ä§ÉÏNp ­ú(gsºÒ®>âü`Ø}Ù|FºBøB*„‘è$ÚZ'ô1x‰Cr’Ò$w³Mj™'Ì ç‹Y=ü©l°z—ˆT>±Ð¸.°Èº`fÑ ¶7Ð y_újûÔG9¦0#ž0äŒ-ìö¥¸ßíRe÷®¯"˜;T¥Ÿ[L¤"Ž &qnÞ©/; w>ÇÕPÝ•”Df®¤b™èMƒG]•Ü­Êß×ê‰É†»™]»•—V÷¢O˜7°G>?¢¯ ($"”6©|¾¬ûF\áèúÆ{™Pˆ8V?ï-Í—ì9$»y–#¹·ŠXÓ‰îNžc¢xаÍi¢{çcþXê{#_ˆ‹º—“ÉËi|©Y Ç`Yd_ü`ôCxžÎcÊSy©ÿXLUA5óÒUŸHbëôsÁ€s†bÂãÄéáUý£äs)E[ƒ½ê ¡oý\Š÷„š#}àÝ,íï4F÷~ÛéaA~Ø¿ÆcÌeyñÎ>"„W‚Ü€ÿeùfHX‘ÜÊÀèØÞ|cëâ— ›„ ‡“~ÜÛÏÝ{µv{‚ÒsWSÙ#ܘÄHºÁšF«™Â¦8jÍ’Õzòe¬:iŸ ­+¾X‘1‹Ö4üÛsC§:¦ªäã"?§¹Ý4>šIÈ:e‡T·ˆg¯^¶ !cÛjv•¸ÖÄT 3W¶|v'î};nôš¥Þà;Ü’öyéYZ…®îû¾ úhÕŽ‚»l™£vT2d§b‚Û¤ì1‰†ñ}¿³^1®5[‚—°lŽ# è Ìj9&4®Iïj±¢N¾þ‹’>Ži>–vdÏ™3jž:pïèÅØ¬Àüß³‹ún‹š?W"îWÖbÐæˆu*àp–÷³qª0Í›´Ú }¸ŸTýö™Á–HAÈ·wtK¯Àw¾®MðŽ/>^àõãŽë Õu2‡w¬ fÒY0!Àº7n‹"9ކ öÃÑòA©2wÌdûOâvd¯Óvä?ÿì4Ù¼Æùý—ºÔ(8(ûD:@ÑA¬ÆÄæŸÒurW¾:öõq¯c æ›^Ÿ=k´Á)ô̹¡—ì>GãÁäL²o„¾ ´$Qõ<µ]¬Ï¤â\Ìã j×KélÔ[º$6¬l!òõi‡1Î`çÜOÑy6m«çÖè¶»¨€y¹Vàpr(ÕÙ”«°h­²|w`b/ÞëÊM¿]K~Âöâ‰PV.lh<itùñ%+}ø!ç'~ÃÑ«Õ5ÌT‚­>x¹*t‘+î—«Þ•–§ì48dM•_sßï:Ä<§9?i4‚Ý/v¾¤RÓbûR£o„m=då#Õ ´Ö%+IˆÚ½Ù¾¤PÙÃæÙ†˜ ΓÈèP"H9ÉxÃ5Á£¦ïË$çiLVç:dÇ€q˯2˜‰ú ̺žDêÝ~KæÒ üÞÅî8sgÖZ°Ý¼{»²2Cšr°'³/v?Ó‚*¯åâêÕÉ‚|\ãjB¡ÜÍdBÞ& È›¯E—ÿ'IaV°ØJL÷ºÎy?x[U_œ!{Uí¡±N.Û3ú¾2V?ƒœd«{…sî_0¿|¬&Ìà6D¬µH]3>(¾5`\¥P9ž bŽÇ¾g§v3](ëýöãcKm_ÙÁ/61ª…Ïßæ|%ÄÐ"| â[!ä§&GKX ¸Áß+Ò@<_ýé¶å7êÙýJS;³âh¦defѶƒ?úI<[Ѻ‹Ðù–xqSÛúI¼å‹ÝÂ{Lt»)-ÏëUµ¾ÆX¯#Úç©lá2˼~¡B³Iëë6½c |Dµðï_<îâ-`øÆÃœb9­Û*%MŸO˜— 2ó/C‹ŒOÉVILϸˆEL¼\\nñ5p(MŽŽmp® “…§U:¾El>q:×»ðÜS{J˜+{Ä+ÑyËkM¢gâ~Ü÷(hõœXZ\ÜiÌV7 NÃDœ’/3U‘ôC¸ç.DenÓc7êGn÷0¬“¤rßwíò¶ã¯öÍ=™S‘O’·ôˆ$ÉŽð‹¿\ç³à°W“ Ä3ùST '×L÷)$ŸÐÔçž>~õ´²Gï.Ë'Áæ«£b†"ðÞÎ14ž±G6%šÄ*}Ú1µqÑC´"zòÕ0¸S™ÍQßO\Î rÔøòiU§o+Z©kýHu*‡ ›Ùó£I¹[UÍেÛPóú[‚¬¸wNÔîe2BøÁl«ZŠ`ÅM J{øyV)?1”X]Û™SË@¾- íÇ7—âj/C‘ÛAIq(ízÉÍ@Ÿ¿½¸)Ù~fŠã«úböG–W”é!š÷X sFËåû2Ýõ¶< r˜®åÉ#e©wÌÊ*¯ÈËS¤»yÏbné±ÎÑ70+ÊúäM²–°×°YÞÑ|ûÊSøVw zåö†èŠÊgZÿW99G.¦” šp Üî1ÞjH“uú÷¥¼ƒxÌÄ£»){LTBey&~雨I¬Õæ2tLû…ØÚójýè-Ä\··šÊJÒ¦B؇UkñZ¾Pp­ŽÛ’ƒïü74ël32ÀTx!QÅrˆãÕ›5 ó\áÌ$Ÿ´O¯_yÜMÿ?†Í endstream endobj 640 0 obj << /Length1 2431 /Length2 16688 /Length3 0 /Length 18118 /Filter /FlateDecode >> stream xÚŒ÷PX׊âîN°ÆÝÝÝ5¸{»{Ü=¸kpw îAÜí2òMfþ÷ªî­®¢{mY[Ï9%©Š£¨¹ƒ)PÊÁÞ•‘•‰… ®¨®ÎÊ`aagbaaC ¤T¹Úÿ'G Ô:»€ìùþe!î 4q}“I˜¸¾*:ØäÜl¬ìV.>Vn> ïÿ œù&î s€"@ÎÁè‚@)îàèå ²´r}‹ó¿Ÿ3Z+//7ßîQ; 3ÈÌÄ hâj´{‹hfb Ps0]½þCA#`åêêÈÇÌìááÁdbçÂäàl)DËð¹ZT.@gw 9à’J&vÀ¿KcB ¨[\þR¨9X¸z˜8o[ÐÞåÍÅÍÞè x‹P“U(;íÿ2VøË€ðws¬L¬ÿÐýíýÈþOg33;G{/½%Àd (K)0¹zº2LìÍÿ04±uqxó7q7Ùš˜¾ü™º @Jô=Àä­Â¿ës1s9ºº0¹€lÿ¨‘ùš·6KÚ›‹;ØÙí]]þÈOä 4{ë»óßõ±wð°÷ù²Ù›[üQ†¹›#³†=ÈÉ (+ñ·Í›á·Ìè àdaaáag@O3+æ?¨{9ÿT²þ!~«ÁÏÇÑÁ`ñVÐd|ûBðq1q\Ý€~>ÿVü!°²ÌAf®S %Èá7û›hñ~›¿3È Çò¶~¬–?>ÿü2xÛ0s{[¯ß掘YF^Z\Q•þï’ÿQЉ9x|9ŒlììNvn/Àï¿,*& ¿³ø—§¬½…€÷¯dߺô¿„ÝÿÞš¿-à¿\Jo{ Ðü^s}N³·?¬ÿŸ—ýO—ÿ;þËÿëšÿߌ¤ÜlmÿÔÓüeðÿ£7±Ùzýmñ¶·n®og@Ñáí$Øÿ_S-à_Whr³û¿ZYW“·³ joiûO#A.R O ¹ ÈÕÌêÏÝøK¬ñÇ9³ÙU\@Ü,FV–ÿ£{;\f6o·‡ËÛJþ©¾ÿF”´7s0ÿã±qrLœM¼XÞ6‰“àÃúvÍž.1€™ÉÞÁõÍðVÀÂÁá‘rq˜Eÿý…¸Ìb¿7€Yü7â0Küƒ¸YÌÒ¿ÛÛöýFìfÙßè-‚üoôÆ¢ôñ˜•ÿA<,f•ßèEí7zcÑøÞòÔüÞXtþA¼oY›üƒXÙÞLM\Ì@o=¶5þ#ç`ûCü6f‹Íï9Þ„®¿™Þr5ýÞ*6u61³¾½ÿ²bÿGþײÿ£xKËìÄùFfæ`û6çR{7³ù¿à[€ß ¾M“ø>V–·œ-~¼Åµ¹ÿË㵃›ó¿ÞL,W÷¦·üãuþÛä­d«ß]y법—£ðßY¾É@ÿ‚ouØþæ|+Áöýü­«Úî7|»ˆ˜“q¾ÍÆþm¯ÿ¥+Úáwü7g‡ÿ¨ßrvü­~#s|{°ìÿ3Ö¿¥ÿm?Ç[ßæëð»Åoýp´uûW¶o8³Ó?ý­Nn®@sÓß%¾Ý• ÿ”÷o郲²¾Qü«½¬oÍûŽóÍÉhúïpþatÿWÏ9ßH\Þ®ÿò~k›‹­‰‹Õ¿ˆß²úöíbevµrþkÞZåêáð/‡7·Á·1ºÿ ¾eæñ¯CóÆçõ;ü›­7Ðù/²ÿÜ>fnÎo}wýóx»šþ‡ÿ|ï@O ÂÊ¢ƒˆu]HÇÝQƽIÁ9Ê=­4ZFŸçN·ØdÚš¬à çÑä‘>´µIšk‘U’gŸãÖذ¶Ä÷í¾OFñª3{íËÓ8CS…Ç¢õƒDð„Œê"û¾ÏN¾šA6­àÝr”¹Nn<(*ù˜wÒžõƒå߯C÷Þï×pÉ#>•Ï2FkDé•ÌSæ™~^À#ƒqe$‚£Ã8óD¿¾™ÃÈ™z%‘‹§Gð;‰f/òÑÝd‹¹_ð^¯TgséÁ§À×Å#‚¼ÆŸ¡òû‘"‡»äSZµ!¸”ÍB˶1>Hâ;ÖMú“OOA—ÅÖy…WzœÂ¯½ž9H» >kOÍØ‘®Îñe ÞÂÃCJ:_¹¥xÀp8 þ6Ü™Þ\Ñ=VÉËgkêZçøZþøgÝ”ž÷¨žÅ6<Â6öZ³ØºÄs˜“–" áÕ>Oo¡ufE­O¿õÔ‰ãœç¾§ZçP…ä/7ØÂätT4ÌÂŒ&nÊ‘øëZL}øÞvS0xý^Z½üU)oLNçû/?óÆuÓxä½=<½l“¦Še9M1šI¬ÍâêbWB ¤G0$rç.Ž”Ë×òÝ‘‹È}3¯™i—:ŸP ;¸í5*Ï{4G'·¤¯{8lþ!t5¯û9Ì$ ¥9U‹0Bé+B†S‡yuG@·n¨ðGa^Ø`"8äD‘ÞØ$Un´,bÇ…Ûä¨]˜T<+G‹æp%½ª,J±§‘Ñ‹©>aKÕtù²zƒOqjs*Á-=¯¨±•E‚×åÛzã„ý‰+_ÈýÓÆuçzu—½F=‡k¢êÂj¿iQIèÅÏ‚eRa4îµ-ð“ñ¶Tñ»÷ëŠßèîŸ1¹^´f2zžŒÎ]“!i\·ß6<ºòˆ™Slž£ó´kYÀÙשNÅ:YCfrÞìŒs´ða‘èñå©8È9üÌopÄ\Óeå;5ÍtW¢* õ}ä‹ü<¤]–íá•ÖZ näúWâæü³g;©wë§DŸR» VÒGØã¤äýeqB‹¸EpÔ¹EוUP"˜øcÖã¢dFéA¡ÚµÙü~u wÙXûÖƒ:Ú×’Kn$œ_ۿʼnÉvoåE¨pžÊr¹ßwFs°˜Ë¤Ï/pœ¹é {ètö§ddï}fëÐsžMY-ˆjȶºJh1ÍÚz¡[!‚ D0*2Ž ¨|Dú˜ù‰/,8÷¼Œ6¦ÌWcæt¨ì8Êæ¾S¢±ÐõmÞ<µ¯$W°23‹sâ²#€ž ©ð—5w/å1Hä5gs|&|LlÚ)üÆÚ´Ôaím\+k’«äTðlóz¾òL~ .+~A”¡ªp ãçäÏ}ÅN8!°†Y¤Qt¬–·l=yÌŹ9-ìÝ"Ûú_¸½¿™xͰÒ~jfÚL?» Š”ô Ö¡n.¿=â —2 ´·îbÛî\€Y4ÃúçÁŠýt7þƒ=Ð4GÖ ,+¢×«¥Ž/f|Ùb1¯lí(2qïè¼ø±ÔÂò„²Û1ïQtN¢LLCíS»P7†âQñ¢¶¯̤æ‘x=›!Ø®g›šìÙ÷#¾•ª [(u˜‹n‹ÿ‰iõ¡7õ—nq âñÊ+ur\U( ¸²ÏŒTÚ§~“­L­á Ç»)~Îõ¬B;Ñùaú\Í¥QïõÑ‚„L3’0ó’_‰þÜ¢þ*vLq°ö•öH$¡Ž¯„F‹zŸ2 ìElPº ŸÑ9a\=/4yG…"Æ`ó²ô€ -`²B’,Óí¼}Egó¡ÌøT}ÆÐ˜¬&¹jŽÆ.ýQžU~{™Z(=KrSE‰Oñ‡O„»4›*Š—~Φ0ãÙ‚!Žv4uà·×R8LNViýз:9¶Á&å¥ã+JÕŽ%ÆUUWÛмµ0»FXr–³¦¤Û©Hã.A£ê³I`U=¦Á#|ZN¤ ¡<öDã×…eP°QÔ{}Æ›V†0}Hêê±²ö2Ÿ€¶»Mùè 1·ý¹Æë7‹;Ai7KëêRbÇð A¨ ÖÖý›ŠO¹Ý3•¥Ì'ÊÐê”ÆT'„>!4xòƒ|Lâ'  yÞünO™AFL÷mɧyO#Nâð½ØÜ•¶§ˆŒ†«ìóm[NjÓ1Óu'†™&€râ—<ƒ[ðJJö·ºÒаNnÄÍ_k“ º®z-çÍ™!!˜`~úÓ t¦`lµu¡Žv±ïÆXÕù9 ʃФœúˆ¾›vQÜ!2 #e7Žùá£ùb\da€a”ή–Ð<®²v»ç(‚k?-‹ZÇ‘jB]~°á<¢ÊÔÉ;¯x\†Žùâ–â}u¯‰TzïHAÕ~>4–ú°-«LÚSñâ=”÷µ¿@’‰–§@4ËÕ˜>uÒáhå( ®º 9ðƒ7–ñ>©ïK@• ]õ„ùb,-“«,¡•SüÒK81 d®Ó¯À¶ÚÀ¡ƒ%ì¯ðƒìC$ñ›Ü¨¼Ê®Mzì¾ÑgœÎ,—­ŽCË/Ë<°ÉZi„N ƒ1>k?ë°‡Í=’|—B¥å^½™›³~ÈPwéR„|ZK_Vœ,ä‰.ÜŒ‰ÒE/„àÞð©QpüŽÞ«IK‰‰±õÃftýCÈIººCᓸ½‡P³î«óðŸvgÜ^ ÝW^ÉòœÅyéê-·xÞU¡Mc|§® æàÂ-ÿCÏí”Xµ¾Y¼$K•Â=ÚçLnÃbžÒ¦’OLZüÓzàq‹Ällä}`y-à,-ŸÀm}+¨:gñP‡Mè æ)n>u»“¯5 pkœ˜Lô7ÁV€Q7C`…Ù·(¡N§O²Fek}ªx-]yÕ\C*KSrƒ¡ç}]EåàFô’F¥™é{ÙØ@. Bîë‰ «òÝFqPî3Jò­4Ó}!ô+Üÿ Ò¬(J²Þu¿)bRôLÙ#0Ž;"›ÄNÕéùxú+k÷Ó¡z±¥Xƒ-æJ4¯Æ³Ô‘\0†ž£Aâ*ô¨ã¤UÔroîdOBéy¨OàÔB¢wÞÁ÷.…PáúÀˆDÜ'>bùHþêë‡<­WÊqí¤k(Šå0>\Ó^Ç)Có ±IâE9Up.=FuºŸ¤YÑ3^:`ÆÔŠÏ4ˆUp5?G1+TDɇ,âÕÉ,£È „·©/Ú%T ª]’_ JÙBÀ¸ Î…­hy¨Æ±™ÅLÐ,>ܤ$’â¶±„7ž¹¢5+ FBj³€{w²nPpQ`7û=i l°Zï¶¹¹ž)º8jà_êe { î“yênï8´ò­_žû5J6Œ•Ò쨎M°0%v×İ~§E4ĉü@~9* 3Áߨb€‹Ñ9ÒxÞŠ£ Þý’üô#¹M’!‰lX8ósbÐÍŽ©XÎÔäðÓïÚ7é©ìïë§úüm2HöC[0flá5ž$Ú“0X¹¬¤Â|›Ø[è­){h8®äÄý›8”­3·É–!jÝ@=ïŒàØG?Àè†mêƒÄ ¤5ãÃG¸å.÷ko·Â8Óð‘ƒð ϳ¡ucçoTÎ=„È(²'G0±ø±«­FBèpAȬjGjæÐW`x{:¿>ÓöU]Ï à-ñAGàüêNF7@¼SÅ0˜–’­V·ñ<Ë´¶4Í–I4‡c¢áCèÝ>­È"dŠš†H¥,ttê.¿ ¨2<ôödXõ1L˜03pÎÜær¨nml½Îþ^é*“¨¾&þ<µHVæŸvÚ2๧Àòji wPpFô´èiª¤ HÝ úÑ] ¼§‹DÁx(p5wÉÇÉWò6kjÏ(y æ”öŸXîkÉŽØ"‰æÍ+1À#v L]¼©»‡ùö¦L´DÊÓ…8ðèž!Š9Ý6åˆÕ/ªe±ÁyJu¶šqì[0§§|žjƒP;îà²]_gýTžN’\°óKä<ë“y–†çT ¿m1áêûŒ»­¿êa‡4–\Q¶²÷†Ç>}äîÓ_p¶U’#i–ÉÓpÒÃÚû cN.§ÀŠ#Œ©Ø0,ŒI6˜iZ2þ¾…ð´«Õ¬yz.ǹ¡³QÀÒÖ?ú45žS§F~J0HmïÜàØA$¼0ЖsAÆe3øñz {èˆùb»-rÜF“pÝmßr7 é9/rñš5‡mòtÒžÈ}M·‘²ìF+7~æ³Oœ!”·£¹óž'²A^ç8É·ÜÆÌâù]ÈÒ\ÏmƒÚç²êœwÞ>ø­Ç¦Esf6*¦pþCA`Ë,yµ}ýwÅÞ;²sU¤!ÈêZ"UË)抈ƒKO˜sˆžlQI¦ÁðôÖ§}R„÷иÍ:áH]^`ÈÚ‡éo´Ò— t裮ã éš?û·ôx¯µ |÷ ÒØŸ MÕ)%È‘0hÛ°sû:Éõè§|ˆ/ɤnÚ¨‹¾ÐêŸnÄ¡™ßð ?¦€Cõ,–§°nºñèl ¹Ì!T.5F«—ª»ÕWK—æ>ähZF~Dd?l’Û\¹¿`4ÄI+2Ô$þ¿f­ 7›Ï—Ö˜ŽLQ`†8ÍëpiÛšWIV:mˆ3Úja•Q?1â~WØt»—¡ÆRÙžš{äi¸¼ªš÷ä|(5?ÑËGV@ØNhÖh5þ¥‰îÀö€°t®ò†ûž,oÒ4P}V$…ì=A’‡ã¤u&vâ‚•6ëm=?õué4tƒa±ªÀÍéeÀC/§tbÍ(ÎdÒ‘€ÄÞ<•Þ¶ḂÄõÅÈÝYSùN~(xœLÊANp¹Õ‡ KætÏö¼/J3?‡æ4Ø„/,Åa½ªÀ"wDðÓ‘…•× ¾ gèš»M;UU'U± Üj©ƒï%Æ!o‡»N*‡'¨ eØŽÇÞ¨ûÐ鳨#NS‹­îå*å"Õ C³$¥:â¿þ|Q8kHÒn¨E^ý~/‘d¢³'d„áÜÁ±”¸ ‚oÞUžÚ›tà^ÉUqԖŠİP¥o6TA¼ºT|ÓŽç!zɘŸ¶³‹ ÌøÆ/YU£p4`%ã[¥–Ø÷¥6¬@~=Ü Û]rv7FÔP²wð¥§}µÜö庎à>}0|[z¢Æ…‚s±,üÕÛMÊ'¦£n‰–³ S뇣ž§n’6žS1a9o™SÜ>ÿr¦]lDïšÄšÇF+ºˆâ³QzwºcöaéKn|E©· Ýû±²Tµ%Õ=s:’[¥Ÿ¸Ë±¦˜Ö#aeXnFƒ%x„,xìEFÝvý‚Ì?6ÞŸ_Õ»Y\mç#œSËÂ+Aå·o `:Y—Ÿ§Ó"ŒÆgÌÕÑg7å‰b|!švÎßn/㢒™Nç]´s†öíçv®Ã¸”¾§ä »s~iøNSa)mØ7ÐPï_ã©rc(¿ý}·wSçAç£ÄX"Ù]K–°E37qêjƆzk‚öØ®Ãðö§,êmzõ@_îkÿÏ;^©®„E˜ÑD@2–ÂøiZhÎ WÉŸ(á#op»ÈlßebW.ÐÁL×·© šB|Xo†±<û€8Kv öX·Ù5ÄÿŽÝW4Þ[jK‡ãF vYPf4Mn«$ûÖÿ‹2«ÄT¯]Y¸ÿ|;GÕ#l£õ«dg0Y¶Öžo ÿBµ,ׯhˆ$mj}óˆò÷W.~lQø>ïEi=ÞɹÂjoÆ`ƒØÝ¢T1Ø!Ô38ãM}‰ýÙ{¸ñMEý>夿+RОWæ:xdF£†0æ#™š?ï„hènˆ/%nÇ>籌’§¸–fH~W4öò“>*Φ5KXƒþ~™’ñʽ%HÊ#6Úc >´†ápM<…Ó¸àîŽ ß¢&<Á¢+PNÔq¡h˜í ±µxš„, nn”G6ôÿºÙHOŠÒµ)`'ÝêíeÉÂ+TÒ@FÌzXüS¿ 8Y)Û„¤æ‚>"&«Þµ0ï~±üјG¯ÚnãnKá[º=aqr<ëDxï 6ãì°#óð>¼>ÝÝûü sðÃ0|åœ#Ö¸ôë8°Ìô6­M¸B“ºÆÄó ›©nkþkx»¤âž¸øUþ§ê¤k–Y2ç —ÌI5ñê}Á¾Y¯Q¤G½ùÇyCRÆbVŠ/œ IßÑÑe…^p’d±†™“gaÈñþ¢J—…üH^ ˜´ŒÙh2£kC§/­Â^“Ò²7Uô›RÕqK7Ul®rÏ806²T´áÔupXÇÚ%,Í©ÿ0k‘ é»ñSºOhþi¹ñx"œ!-·2mÇÒfÄB’³Y2-gÙØ$\‰Ùئõ`rû Yúà:Oì7 ²ãË/^¼f`â̵³ }¢ÕÂÑ!¦ŒsóéýÉ'ãÒc9#±šMb«’y§óCL$Rþ¦‹©¯ÝtÝ Š·•_O2M»“ŠåñSM|Lä3e÷íg4BZ<,‰.Øz¢}ãU»œˆ„ÑÏ*¨ÊP÷ÁÕd5õ`¿€Õ-‡#£õŒ6tN¬C « ^’8 kJ©•xÓr¯÷Rœ4µpÏl-¼'¤bX•­ý€6ÓÔ!­lññç6Ub™JgK•,^Fúëqa,Hu,5÷‡7_°ž ƒâèAhjÆ !ï@ÖÖ½ÚKåjåÉ/[¯C ßÙ^³øÈ¬fkçVž#’=b(/M$ŠVh(¤½—ð˜Ú^8@ÌÁÝ»w=Дœ’æ,1ì&‚k´²¡ ¸Ð‡ùç_üdcŠ&íúò2ðÉ‘›ã òxŽ%Ä#}Wk!ŽÂ‰׎þŽ(Ç^ ¾"¥IÍ@~xy^–3Žy‰˜VÝ­/­ï+T÷#r!Ö@â¬ÖÖSS_xÛÞ7¤Ž¡ù#Â{š÷»(ý|W9ÁŸpsç.íŠ=63êe{fa¾Ä?pÊMŽö83@Vi†’2 fƒ1Ž—Á ½çp©B5ØJëA»Jåp¯ìÖé¦-¿IoOV®h©©Ç;^=Ü Kü®i¦^zù9/HFË& Îiš=*ˆ0°a'1µ¹^ = Œ[ &Ê»uÓtxšÔ€g"ÑÝÁ†î•hOñlj&ì²§½GTÑbæ œÂü¾Z›߇õª-[WëL??¥íK\×ÜwËù> ¼FÕ¸E ÑY+§/Î ªO±ÒM}ª\L‰Ô¶‚Ñô»ÌI„kK&Qïß½¡:P:O·X/ '0z|ÚÒtoˆ Y-ÜKwÙúîSõù½\¶.»Õy¤HÈë6 ·œÉ·;Ñå ¡¯jTx14“õíMï4n@7ÃW.3§?_óÁàÝ ólßèèÒà1jÍ?ãa<ß!¾ºÐ5ßмÜnDVì39™ß«æ—:ŸÄ›é¨{ÁŠ£Çî_¡C–Šp‰qjÁ`ßÛ-{ÐÂ\-Ö¡ÃhžßZdfõ‚«4GfÖݺå w®[¦<4—Å'§"ôÒòJ&?u´¹Úö‡Ö^G,¡Xå*™ Z_A'µ€±Ç{’ÈU×!ô»y1ã\†(<’óP"WQ~ÿ¤T^8 ŠÉÁ~e—kO¤¦•«á:Q$…PUc æ…DH„°`cmâì —ŽÄ±ŒúmBP¬x£{Ô¥tg”«>}lª‘Û­ÀHAÙë¶”R£ô&ʼôMï+›¦%ûå|#¢ü·ˆÇP¢ëÈŸå(–ªò\´,빦‡ØŠ\‹ÚÑYÑ©÷ð4b ÎÏÓGÙªŽ À"Á£ŸÏiÐ~ëG÷œÙS;ß?ÍN»h~‹LÀqüj)dèªÿYršgõ‰žzq]\UzÃ׸u4µ<Çq¶$ x¥u¨åf|ä†-dÌw¾7½‰úMq]H½ø ì¦E}µ ŽÛ»( h?ƒ>z8$;î’¶ìTŽbw­?φ¸(M̹œE°~žSêÎÍZ;Òôˆ‹UÕÕw®;öC‡`¿£-Óo­wMÛ¦0[­t±a£™5cãÍ=,7½ÝöÎþÀà óÏ]ë“35Ð'}é+%r"ʉ‰–U=çôeVë°úÃYB€d\:øžà²¢˜jX˜úÚ*ý‚ÝèKˆœf⟔¨ÉÚé§–L:¿±·ûÂKéµ¼Ÿéð…•©¹Ð@<#"IAÚ´»ï¡’\â9ñ¸þ‘\lã£)ê3­`Í›5õ§AÀÒ‰Ú³²á‹iï….rÓu˧÷trˆŽkÎÖOš8„²ê´¾Áylúu;ëô¹JµS¤ÒŒ†PÈ`–"ù8qf tN×)¤¦q™£Ó’LJ=€ çÙ[ûûfÕõPì]Îk¾•0‘Q‚¹ !0á­±=MNWK'@…!ٚ™¼—ÝýAÎèØd½§if*{´½…+Ó!3ƈ¶Õ Zë*g,nù~Ò(DŽ´{*O»"”ÜáÓŠºà÷QØzÉ:ñ›’%â^]ÝêNqd/x„üØÄr´ŽÌˆù±uùн²ï&ær'á7érß=}ÞèA6te,6žfq¦Î M1EÂh‡}–Œƒºn#›«2ã7fK‚¦ÈœéÓ;vŠØêud~ýÍöǃzŠ écž#bÔ•7 Ê…½¬®ïØ!;4Ê» Ï­p0… ùêáw­È4Øâd9õ³Â)*ú¦ÜçŒp2̤•~N× $â•ËgåT÷›Ã½š¯TþT7W’5BÂÅýõfSB_9 —Eì^°wò‡tÕD´^0ä¯ÏÍÅäýÁF|+Ì¡J!™HòÒtW†rÞîj¿ éVë—›ÛµÀÜðõ¢¨÷$O^¶ «Î˜OËÙ®öÓHÁ®Pýz ^5"ÂÌ€iò÷Ö”¸^Ê©m;§ï ïuŒŽ&A?={ÿÊ“Í;ÙC¼0Ÿ218B³ÒüÒ3#ìªó¶(NÇ7 !£­^X>Ÿ7}·øµ-¯-¢Ê¾ÅÕŽ›MFÊ­"GÅͯR«<ïŸ<娒ƒåj´›šÍ¶ÚëZÎ=1çá¶ø¿h>Jl@´º¬6žØx@¤G)#R‹7MUœw‘¦ê@òŸÂñÝ“Sh‰kj]ôkŒE!jÅÈPêÀ†&^FÌ+ÿÊ7°GICß›;;YË/ÑL9ë㻇šµ¨%_ÍÎA—^»å*ÿ¨x:æ±P5cœ è’?{ç=áü ÅSý‘cH¯ÝÕɤĺ›Ü†³°Ì$oñaAþ„:M$­vïó–÷Rèw™ãtY—Žíao)Y÷ýˆÂ;•§S:9AEÆ“n¤ ¥\üË%WÜæb+*  Éçœ@ÊŸàËk5œ]œ)ÈuOšÙé·<øÅÁ ò‚o‘/¡&ªiªG7ôæˆ9Úû–!­úäYëɵ†1ý.å’´â@Y6Ä:ëzô8#^)«O- ”Ú(÷¿dºñŽ3{yüwWinë+]0á’ ²m`k!XHÈyI›2¬éíÊŒú#€l„ÅYˆÚ{!ÍɈ˜"É‘%o ÙãÅ’uʧ/ï§ËK ÐÝ€NëµòéÀjèTsÏq8/ÿHS›¯¬@‘š~™} M›8zôE2­ƒŠÓ]\+’¯•â—¼’–»Ù®ÉWx ŒLÇeµ3â‚|k]vB›Ÿr®:Â'º­ýü¥ÁxÑz;´Ñ.›bi5åy?ÇT­ó9ü5„áÐsVM¥`ÁÝQ\õìåý¡ï úi¥~êo‹¤Ð•ÛŽ«É(sÌz#Hi ò˜å ˆÎ?„†ñ‡•ñÕ‚º:¸ðöè×Á{jòw4¬´Vyɯ“ HfcÕ‰ëFÖïJ[=uß®å@Œä Aþ0—F—Ø(†ÿÙï.×ÃôÚDZ1^,ñ(‹Ï–[É._˜g³ØÌ‰ãä´Ø´×àã½0 ­ô)u»óÇ Ýô¤Ë C„ÿ7©ÁÅ¢zï¨ê9|*²,ò£ã ‡êã#9#Êȧq¡@ª³k(Òo×hi<¹š÷X°G:“8 c¶/ˆ2ÄoHûI ?ßÒþˆäš$ æZ*ìEjCÒm/ð‡«”øõ1Ý_®[®‹”%’ÿXŽûÁ÷r|LÍqökýÌø<¹SDaÔ÷e´©áVÇqÑ´´~ Ú´º^Q÷n,Z<s©þˆDlž÷bßìϽ]Ø!ÄH‚Äøiëã»[úð°yG; ~\n 2xè€']G¿WW*9+e¿¯Ú w´UÞØT‹O×…&(gà'›ØyòD0o¥ì. TÔ$×äö.õ¹‹«VˆÛ­¼´£ÐDØ pªˆµ¯'º³^|ÿ´©SiÂF!ï ‘×iüñ‹š–aΠK$8¼»¸±Úë|ê%iÍ–:†+6¿¢›í™Ú}›Æ'çl7¢u|ÝlCIG£¥oç¡Ð;Œ!žÕyŸ¡;‘L`vHhO¢<ŠE]óQSÑZ3;&wé×ñpù5.7*pìàÄ31RDÀÈHhøœÖM¥6/j¹%9@Z??ŒŸ|_ÓM W^û†øãrè\—('wcvX3(`<þ‹Ú'±¸•ž6/¤,Êe7áŽkì8Ü¿æ†[‚þÜñ9×ÂÐ|^ifRÜ×\TS<ÑhÞ»òE›`ô4•œæ½>v¦bÁÅë4’kÙE*v-·}_®p'ƒ„M)7ôïß©½g›0m´)Ä™8¢"UÓO +ô‰Æl~w'c‚šï¼X£Ô竼9ôS¡NôÑtÅï]g M;PH–ò„AÄ®k?$›G¢8P(Tä…އES“ŒÔaY;aâòÙ(Yá©?CM¢ ǼNÅ•:Å.Ñ’Á¨¶ôzã€U7¨ß‰­Pü ‘ãèVºŽâן÷ŠE:³Õô¢XšYRsÚï~–W/E}J)PÞ…¶€|a`Ün{á<êÀÀ?èÇš…âò3—rÅ4¢ûídßÝ™>|éRyøºƒË[ ú  PÉo{¥`TJÞ“Èû^± ù¥@<"âb74ýI¤Üi³ˆ£VK3ÇΉ‡»yAuq¡ñìÜ6OÞѳ¯¥U–õÌ%Ý ¡HÄàê‚;„—Zç^¼{¹ªp~õŸ׸áK}|6 'P"?E–/3ÔP ù•á £´}f¸ß~æœØNGð±`Ãçº`©â©‡Õ_º”¾·&*W¯3ü›ÃálCœ ŠÇ ”^ú=Ô”¨e”§ùóàwò'±¶ò5y]Ø+…U×*ÓììÊÄ›$È w¼fŸ„¦VÜ×i;5Êé÷]¯–­÷7/¹À‰»º¡üôhÒ,åBŒ¿Tðq=iÉÏYf£P_x™>3‡1ÎujD<‚Ù, µE‡íq¦Ô–¥s·GΧ*Þ9nÞiˆ­äê²ÈÐEú}ø¾klÔõšDÕ!ÓÈ¢yЕ&1&ÎE#7bÅX:õíDT±“d´-Ò¾ä•d9G¸TÅ*¼ï ÿ@*=ÀBåR%÷³A]ë‹Õ.v«”¥ü]ÚVm ÆãØ´Øxà ç—·{\ºæ<ŽeL†ƒF¶üúô"ÖÎô$12ш§,7“É@Xµ,@ˆ`<_'14Ì|í‹ ¿ôŽ Åïìצ÷Äg%>¥iŒöö1Nôv†“J—JýþèV*?P.÷¤s™ÆiÔsaåÈFDQÓ6Ó £‘œ¯¤wµ.\”zU©é*DÛ,ÚZ¯š½3¼{8Õ€¿‡|d6bY˜ò]ß;iR¼^ÿò^ªýõŽ"~{ä"Wâ Øƒ`%%T£·Ú¥Aë;h0}fþ,«'8 á.¹Ã†w“âAïßFÉtmXÀ*?TÆ4Û ÿ)¹ç'Yý€˜ ­ƒæfægf¢«ÂÒ•8ë.­¾Kò'BMŒ"XîáÜb{á–õOzàÝÙàåu©ôTñFwJƶŸwtRÇã–k©nFgú™§åžõkHžÉaØ FÑÏö¡G@÷ê´€¸È?ŒW~`”UõñU‚^Ci70Ög Žš…fý¦þÌíÈ8JϺ`]' ñ(·z&_:¹ÅY„î²§)x6U8›ŸNÖ«ýŒ{@Ó˜v¯b7™#ö=øêGT˜‘ýÎc<×#FùÚaœ\¹¼KnÖVFçNå5Á»:Q&”½"÷ù‹òx‚€Õ™DÄw‰^Õ[öÞ˜ÙÃK‰\|Ñ@±£aZI´¥ºôpÆÑ0Rã ²¤µ$ºp…Ï.s9x1þK:¤ )(T>çm( wY–R‚ަƒ–ô…hþª3èÓ1R 3’k•rùèü¥%ýÓ’ý¨9.8å~È+èÆò@Ò#Þ¯Å>ªx%Æ uúÃÏ×Pt¸=b÷ÀË/ ¨Û¹urìªé¼aš_J@Uv-Ò¶}˜Y ãµH[ôp OD+¦‹øTaÛÛ¨Íá<È\Q*"P° ®C¹µ˜ü›Á×y-ûð]…á…8,´¶X‹LqËc…¹,¾$·ß&å‚[:f5|Ò B05šÔc³¿¸ÓÙ†š/½ýÛˆ:Ëtípg¨ˆ|¾æßb¢.ôžÐB8±Ç¤–hsG]EH×½/§Ç  áɧ…¨g©{À Öýü¾Jf›Œ‘SmN¹Ÿ˜Z å¸ gÎ8 Æ]1u«í;DÈäóf/€'Óeÿ>·èË\ò4PNûýÀãnVòhKÝÛñžÍåÒÆ‘cö¢¡ÿ¶»žfUW°L;îX!yÁ8àõÚnÕ‡ÎÎoÞÎVÆ\çž\Ú÷êÃÞuGçš<ÉN–PKnWYXΣ‰©€^?P¢÷ÇA:©uh€>w¨ ¥Ât¼Þìäk»¨™+bù’~ѧ¢zzÎäx™à½ç1Oh&»íçH‚QÔ²E$—oô§8@;8ºÇÔÁù†EÙrêÛ—Ð éÖt!œ€ÔÒê52d=Ù“•^‰ïÝȼÞ]—ÊK×ÂÝ:ŸB3Ê$Vý¬ëzÂÕy¹ñ Hïdä#²öõs†nNJ8^s7ÔãÄŸÇdý”õíyï_Ø…ây¦Æ†o¯¾Ëåm¾÷­KèGm/®*²ô¸ïK/}éjq˦娃CÍuJ5Ol½Pà¶+ãö.9Kjùè½µó½J€p=¹Í¸" H:åL@CQ—³íÕT5þ,ÿõ˜éVeqa;Õ!`Ù‹[ÖP¥Š%úž6H—- :€ß8Ðó|VâPÕS‹4|Cl5b²£ïƒ ˜~hWñWzºYäñý@¯E3~¼|:Ír¬Úˬú. ì¾§{Þ· ÎÞÇ_0Å‚ÀSéðÄß|(.êõ95 ãC]â/1ßà´_ôlÀôHÿ ¬œØ#g›€ #îáFNd°CÇÚC{Ù*ÔÊHÂ/`Å¡ ‘‰ð|õÞi**³óó½’ÙŒ*vn¨Õ=B^6ý8iJx,á>­Ý5 °µÃC6§Ä† …iÕ Ï€ÐQ×ï´aîsÁ6ÿE0Ü£‹‹•jùö‚©ÄÏH´ú¨ž‘5k!•klµ×DÉàÀ®æé&Ut©‘6k5´&ø‹‡H„}*º*(úÀÌE]Û-ÃrÍtAgÍÕ½¢«ó²Øž—ÞŠsÙc¹£”e†õ€]÷í¢4Eeeô”s;գ⠋Ò!NÀW\®…Eeð-™\s¾=A†fÍÊ%G*оs¿º‹G+LgaºÅø¼Ú»}̬£¤h¯Ñ+jIe ù¯¹;aCñ->*I4?QZ í˜&”Ó,㈛‚œm¤¯ÂåžSÂP áIëý¥5Î`ªiml49>{FµUÑ’[šBRŽZj]qœ¿ø’T_ÉÞåfµ¾Ã¼ëÖŸ”½ÎVbLœþŽÍ=cç¥xÔ? m‰Ôð<ä1eKÄV<â8ñlô ß©s«˜æ«æC˜·††¨nB|ã9»°­ýžŠX~â({þgd{käR'%¯AŽ_e² ÜÁœWrâŒ19aMþt²û誠·m¢öø£÷b€‚«ç(S’]7-矻”;¡‡ Q¦!ŠÈ‘SX)î±2ÄêMªêÀö£»Êu`NfÌdvR¹¬Lyp6AW†+ vŸŠ•“탋þñ2”® ¼eÖ;üò*)Ù¼â_ÌVÕºeÝhE"¹º×‚âNdB3*1ÄæáGÖ‹¡Q.ןoe¾–„Åå`„ùƒÀc|½›*_A–ê1 Û? Î'U5ß™Ñ~«Èó¾ „ ñ0Ú®CÍ4¬Þ;:úùR[¾Š…jòyH¿‡ü92e&¹Ø<Õzß͵P~1å•k1#ž¦íÕÀ«(¦ës³Q»-Dh=9õÝáT·IÕYk{¡uóÇ9íSàD ˜B;õ“›sÝ*ÖÇØ#2þ¥ô",ºP·õbÌêïïø/Y‡>¯žÎd¥k+×ŨÈèw4˜ãÌ>Œs†Ùž #¬vQvúèÒ{ü”yZóH –0Î6…åerÍû #‘ÃIଠ¿%¬ýp0‘—ÿÔÏ‘À|ÑØ¯¢5i}™{ üXmj4ZNàTMóÁD²wlÜ•{] ï·ŽÔÃ÷i[{~ŒédÛÓ:Qå Y°o`tÉ_:ƒÉ(ŒŠ~F3tkýHMq~yò>£"/Lß2ˆ|¨šö,Œª0nftõ8¾¤Fã{ؽå|±?†*%ïpÔ„måMˆÉü¥ý‹Ž«˜Gc™Ò÷j þìzƒ{é{ù‰”S€k£eë쀱¥…ÞRl ®½tïÙpG°›Ä¾}ïf¿÷0u"³¦!'ôz×ȼIaüêc?†… <0…²¥P‡³ø=£öß>ÈjŸhÅüCƒÚÍE,…ÎBž-ãKKh—ÔîŠ2çæ}wddY,J¡/9Þ±Sz¸¡ˆ7«SÈÇâ«S/êÒ-ù°˜²ùê’‰âùšõ$0¹Ic(óèºïìDõÞª»2S으4%úäjõ¶«†Øq—n‚xú5hb9ljæÍð9Dh(%Ö× ®á<¨íï8ï±Oof!@ÅWÛÁ…&Eí±_¸ÃŽ)|³Í†QÓ™rDÙüýìzéíà,;Ç;ß…6l“¹ËzÚôÉÞ SŒ9þl·4؇¯™pL³h³<˜øt›þó¨šDŒ,¶Òåunqøòúô<ž”³]ºN@Ád!wÝãˆwx,71¶}÷vøyÑlÛ¥A¼ú=ÖëwÛ›±•ï z¤Ln(ª`·pÚ=°±É­%¸ùÏá&Í:ÈfbØ q}dïuLö2À§{ÜQ‹ªÝÓ ‹'?ÔOî¹£þ”\ù‘›KÕnþ5匱M2|HûÝ€»<Õ–tmò‘,&o¡×ÓÇÜ|‹·&”¾ÂÑió]!•¢ò¯ù¨W+üKõh34¬/XUy<{Ûg¹ ±¨ÝJ_Ölä³›“$ÖZ/åñrŒ³7ëš—Ë'ômUÙäoÍSÊsÔ;Þœ} Í(óí`ÉÆŸ$íóÁÞvE¶¡®å ÎVÅÆÖ"klÅ™%¶éÜV³ž÷5!ѦA0‡6Ó¬ÞŽ¢î#a½GÝáÂÐÎMÔ¦³ Ì-4LœP‚!™V±D\ÌÆ^¯^y «Üä1PÞ„Âܾw?/ô®»[/!„5BçRŸú‚;¤Úðþ3 l„´\mßÌ:“YèXÅ ëÌÐÊså1ÃãÝeZGdS€éÓTl³«7‹ì>Û kkPvrË~š^Ï|%"%! $K› X1…ê!S'wýÚ‰’ØA¢¼šÄT7æÅ«I>©†q?²ý?ëú¼´\«€3cf>¡þJ–ˆjü|bÆÐ ¹|o )u)½;|0‡,vЖ/tÆÀ`ºë–XhT`]ÅŒ8Dí1SXN«~Û®hd*ug9ñÖÀþ0‰Kæ)$.ÿ?š—à-ÖÑuªzé¦òpÏÑ…@÷èÞÆ¿TîFÐéçßÜÔA;·.iÄÔ+128è!6è•ýÃGPË/üÿUø•äcáµb»ê½¨w¶QtÛE¹©š×'FáÖ¢‰»êMqUOÉ©ñ«ÞF~äã^T 4åÁ­ÓÂCôÌ»óÚœƒ=}=8šøU .·ÔÔ/&K›ZŽ1#’öFÚ…Cêp¤"t`؇Œ†EA5©Y!ÜPU½ÅÍwÁžè`ç*« *•ÆRÊø'ªè¶w[!Ù}ÔÑW€RÐB‘D©¬V£@ÿ]JIÈÇ=ÒN޲wᵨ'XýöªÝK}ÚE\®2ú@. ?æ¹Wõy¥‡Ð¡@ÂÕnoé9p<óÏp¿Ü›ùNM¢ÎÊ£.ȹ’뙹½,ÂKú ÉÔ€AYéÑñA¶¼êúÕ»}¾Àq—óâ{:ê·ÃõSàÒà€+‹%ÍùeÂÉ6ßh¬ñ½!o•”•}zJÚ9m‰àì%á þîÙͶ‚Ø”“£–Î\Ù¬uo!¡î!Å>±íËsÏÐé›U5Aö£?Ç_ÓáKÄÂŽC+­5¥^4üŽÛÓŒÑíLoff5ÅmÙu¡q~òåÚbs¦¿Heh¡7- b~Œ µ8æL¡:¯PÉîžÁ$+Õä(û1ÔþtìùíÙˈ­t4´|Ko½PöÜ|êóO$Ý€AÞèì^–#t­‹‹„t ±×¼ÃN@îl;F¸ÚLüWž[–îÃR¦{«=Œã¬’ô6kñJ›œºfÜ{:ù ë‘Ѧu“/zÆ?\¦zfÛÚ2ÕèêöÄ S,‰8PgÇ#²Œy¡-Ûv«æU¥Ñ!É{«ÿ–ÂëDLN ¢•6=Dé@MmΔG-•0Ód–Çáë~×ÑÃÌ{m¢!0§ª°qpIÃßmD8Ǥ…Ø$íd›¨úÒcõþçéc]:”÷§†Â`fwJeÙ˜ïdÇ^éc€4¥“7ºju–NG°hï#ý]¹èT¾RieoUˆN3}_}^E‚Ú“9,øÝäw`ÌÁ¡5éβ3ÿÁ¹–n¥_[ÿžý1T|Î& W×yZ¶£I éÿg¨7ä˜õÔw1=sÜ0¡×Ùzvv’Ï7`Œ…ŸÃ9ÐtêïGÎ6ÖìÅP¿RͼëǽÜB´ÍòÂdÔ|x Õ)Ž^Q–r£æÉT£¾s×Ô»¥ÝÈFܤ#ÃX1mp+þ€ùç?ÿ‡Ä*3zBíTI1lêM¡–a up?C–k#´»ï¥^Gz~îVè6±ŠÄaaoiº‚ÏôÄÍT< ¢¸Š¸K×;1âªsÞ#&žè÷øjªFÅ#7P[%MHÉÙ=tÿVEôF¥aÜ/m!hû´ßõÆMÈ݃;W'³¡vƒÚ —U 3›PÆT`òï*¿Û2‹s‘èYj< ­êƲ}¶®´I\„kXe’Òͦ¸(…BpžLÊF5H¤–ÎÛ/ÆÛåwVÓh€)FdïZ+Þ†M®K gKy€qDÜýÙ×ãÃRh4ÍÅ…ž¢E÷(¯úØÑ’ûj¤ endstream endobj 642 0 obj << /Length1 1580 /Length2 2947 /Length3 0 /Length 3946 /Filter /FlateDecode >> stream xÚT 8”ëß¶ÄAIˆH'¯} 3c‹A;‘½¬1Æ; cfÌbF–B„RJÖ"!Q(’I¶’$”¢(Ê:8Ñÿµ´ï»®ï»æºfæ¹ûï¹ïGFÂÆ^åMôMˆª2BŽ ­ª®¦‡«òÈÈ8à¨xð;Î#s $SpDòC2ˆ¦B˜š 9Z €  Ô„&q ‡ªp¸öwG" ¡ƒpÞ€• `A$€C")˜Œóñ¥Bu¾ÿä1 B[û ÒF8€ É8 šX¡©¾`TƒÆöD ¤ÿ–B^×—J%!a0:®‚ ¨É>‡”:Žê Øzë#GÑàÖh*<2€ƒ/޲i°'b©t4 À B#xƒdªØ›[Ö$°él¹é l-@¨ ~¤ÛŠ^O„#l£1b MÆ|,Ö&–*TU @¼×Ñx ŠG¡qx´ä°Ñ:0AÙhh­ù(2ŽD¥¨Ppøõaëi 5¼ ‰ JáYïÏG1ÐÞƒa[—ëO Ò !ßOXÁ»>†7s$ài ¹Ñ–ñüÄ|@* ‡ÃµÔÔ0_Øz‡`¸aD¬ÃÐ a!$" ÀBc€a8,ýð„PÐA @%ÓÀ°_ ¿ŸxÀ‡¡^ ŽÀó3;ƒØÍ3tÿdp…CôCðõÏîü‰|ðO÷+†³v29°5ò£‘„(#eU5u@CUÐÔÖÂ~ÏbƒÆmuÿiNÀíÍf¡-}o8h‹ò[òP~Ïu”ñäÒÜ ®Ç@_ˆÿ7Ù7Bþ7ޝgù?iþïŽLhxü†]~ÓáØÑ8|ð–Ä[Ò€Ráß®ÇÁMáZÞ8ZÀ¿­æT4¤Áÿc‘8Š ŽzÛà¨ß nlÂŽë:Ãã  ‘‚[Yeþ/$.Œ?ôzP Jn˜@H;¿W4&`ˆÞë"SÕÐÐd2:˜1IUCA@jô$`*"  éÂ,‘̳~¥Pls"ÞDÔñø  Dù  >ëÏø `øõFD`h„€º6#þz†*“ ½Æh0 =9?u„ðãŒ`T_2øKwPa*ø3­; ’7ßV…¡‘ÉÐ{±ÁfhßÏ2@ OÿK"F'Êï^Tí?¥(1ºòh—ª:oË\Ü<×ñÆ¢AmOê.1ÕnÄ¿B5¾‹_z'ðYµàÛ'a¸ÿ‰·¡iñHáþòZ¬×{¥ÐgzËŸ)–4Õ±# .žjoáéJ»Vú¼~Â¥ÀÙÑÞÌqS]ÙÊâ¿ïøNÿ!WñEe[×¹ø?D´´Ôv°EÕ¡2ëŠ î¢z^Ô›KSæô»&/ýi2¾”ö¨]Uc¤e P‰7œ&61ÁK:2Ÿ9q(õS“æÞ#žÏ€™MÆ"+äOÏ×FEÈ{Q:l.ä©ïÅ:Ì=øœG³–ŒŠ WNÞû`ö´è¶êûç‡ç쾌Rôq½8ªÂ7`iÀU\=BV­àº`#_«ë¬lû,ÜÀ§¸s1ï°”3E?Û<Ä©aVn×Ë>Çgò jaˆA ÿI»^Œx,îFÒìüTN)GlÂðÜò«Ðåë$ý«¦eïÛø˜^çæ¤Û†³W†äŸ3F8¼œSáØiñD§¿sr^_‡¹(–~Éw*wëYŠÖåcˆ˜tíû"ë|õåé@#²¤bª5]/ÁC7®Än7¢y»Ù ½éArª­t%óâ ‘ÙÃkZ(x¶1ý*]ýâàloXÑ<¹ÝãMå™·{d*ïðV|<Ï^Fml‹ÿÄM8¿h®¤×øè˜Ä|ƒÊ޽w«,&æwÕÇN³KXòW,_)Íp*‹y*2ÈsÅ÷d ‹_ž`–[™!­˜Íº;çýùqßÝ-nïø‰pXëÒ¼–WÑ­TÒK?Unl*ååZ÷¡R)”ô„ +5ŸÌŒŽÂ¦Gn?Õ‡‰Í±ÒþćtY”˨ºÙ³³óv7÷Çz«¹±û«ó7‘^Ò¸^îµÌÒv …‰Ý–ç–=O~pÊ21b¾s½:¢ƒ¹³ŒÕÇ=÷3 f¶2ðùzbëŠV‘FµtR·bû§$ã ³åÉUZP#©èŸ¤ù ɤÉ8¯›¨0×ê© °——n—[8¬eäÛZôiùð4ªœ¨ëª—X&Ï2³®JäZÌàêªyÒ—}¶é9RÇÁ·F3»Lî=ÉŒwÉtT§dRïÇ‚„‚Gýâì¿ÇñÍËþmp|Í颱KHfyòëG–ÛzÊ»vm³H“ÚÍÙc)g}PE ™´ý)Û%íÙ–/:­öi–ÒZ£”¿Z\?rHú¼üLs!ûó˜ñóþÊ^‰_j{æçÓⓉýûýòm#ñZ¥8ß`Ó[yw“#ªý¸öwËûQ?yu2¦Éla“…y;œ²l?L}aÖ^P/[*ö˜3â9%¶ïJÔŸ¬E×›^cOì ^ù_§þ”Àî[–¯oÄØÝ0©‡Ýb]ˆvùvG¢K>®ö<¹ðºt4íûþ¯Yu¶tTïrVÛ(Rîaª„Ûeª\ê÷Ïǧ¨sLÆáíŸ8PR7ßù¦ÆÁäv¹dj6Ý Ÿ]Éu´s˜ÂƦî””ÊþÐ<„ÓK5÷Ä^òËAÌG/Vß²Q(,Ȩ¾ðòŠ~ó›Ü>Ï…Ç®ÔgŸä‡J¤Y•–™ëfIùãUÊKÖëLå| – Š}‡¡d¬8÷]‰· ¨äœêsCÛ/MÆêGu‹í¸•D’ätÞwàpÕ­•3Æ;o~¶òìä>ôAèÄZÇäÛÌÅô•®eõ8±¸$ߊ&ágò0—k¬±T±){‡ÛæÛÿ¢~K-l¬è¶ÎGvÅ{íEp &]%+¸‹/t…Gë®D®Üî?¾rYÔcê«ÿÑ¿ÞÚíZõ…E^¾%(¼UÁŸrÓ+½84ö /ôæÙËF ƒB°Š[zÿÒ ß;W$©Œ™rT«×rÀvé²6ÝÛ&ª’hôÏSÙ–ÙÈûþzœŽ†8·²x•›GD›ÀÀqÍäs+·8wœ1ÈjÚ!3Êþð±ÿî¢?‡E.uvøÞS6-E“ÕðN¡Þ£¬ëx’5£ÏÅ‚ÙÑzŒ½öÎÔ“&µ€@µáÕ‚}Û_íÐh ÉH¹gxÄuâ]ýpŸÃûÆUË‚²O'Â\ͼ úüsÕºØxv_iñíþd…¨p‘Î~;? ™[mkÛJ>/Yõ/ê䀡‰uÖ빟E¾I¹#’£•Å‚ãÒA´7–E½Ø’e*Ü4ýöLcÔBîÞºÖ–©ül¬Ó <ÿ’Ûƒâ{Nã9¢aɃ1­â §{#Þ0¤¾îê KÃ9ú %´MÞïçܾl»-¬'Õ~t™¹]€gKfñã«w½’¾°sµrÚ±&"Z#\ŒzKüv²I´dpV©jÀYº¡Í.Àú8EuÿÎF»ûç2K¸×¤MlK"}—³ÄSö4åÛú½숊ëp7ŽßÉê— ?zÉ%‘KkIkžéQfí1žèQ«È[¢½û=å.UÙÈä>ñç[Ð4ëfns íœ01ì¶»ÛácÛ^u’û‘ßN íJ[hÁlî±|!|ª`Z^Y\5KÆ©s§g¦*4#“HΚ)•߸\ÔÃå:ô°g·~̺ÿòaoŸ>±Å'xÅK›!Ÿ¸«”njP"¼³ßç?í¢tS¯JÌ{ ôªŠxK¸›:Í…Q>»‡”"åô·}ÌGWZæTÞ= æíµ‰„ yf×›ÏéDq뼺–ûBŠ\â;Ì_À§_sç$ÛªÂÇcÚéi¶\‰A¬z ÝjMƹq"ĺd¦¦å+Œ .q|ÎaiàWéñi‰}ß>M<åÔÄݱ"ϑȞ9†öÓ¯ëõ|^‘ñ®[àˆ0œ=ãôY•4Âqäcdq> stream xÚí[Ys7~ç¯ÀcR[ÜW•+U>"[ñ%[²ãÄåZšX\S¤LR޽¿~¿0Ãá%‹4µ»›Š ¦ÑÝ_w£ !ëÌÚÈ´cÖY&…dÒ&#=¦´B˜ý–¡ñì™Ñ‘Y/™UýŽ9%{Ö æ¬G¿aÞ€Ú!Ñi¼EíY´ýr u`°à‚R¢G:¼V*jx׳Œ´%µ‚F#(æ$ñÒà<“A4 eÔD™ºDÁ”tP:J¦”‡6QU´=5SV‚8§-SÞ1Ы`Á0z¦"ðØH63a+%,sB0­¥GC2mTDC1mì9I; …aÚÃŒ4ÙÀ Çt 4 F‘FfÔN¬ E²¯%šH†Ö@j˜1œ¥¥FIÇP4@ÁÕ¿‰’ÌÐ >!;˜p„ ¯5Ó¨¨Ç2oé9噊ˆ# Š^E0šðŸ£á°uC5< íш,z(åŒd1±Îhr.(¡˜^˜Õ¾HááDâ?ôHÃßàZ;‚£Ð²Éh8C°HOá€ÿ%éL$J8ß3?É»~’J‘ŸiœÒÔ‚nàM-xR*K-O}-ƒ#µ(îTRÐÐØ(¨Eü¢=¥¤É-‰Ñgà)©)Œ qÖ h &‡„ÕAgé-¼MžB‹40$C“Fá¤B¦)„–Ó½»w{ü!{gü‚½büí2„š‡7FWÃáûÞ/¿$šƒñhÆîÞeüÂB¦= ­\jƒŠMƧÇõŒ½cüèáã'õ×kœ|»¬ñ¢ÿ±îñ`VfSLç4¼Ç_ÕÓñÕä´ž¦™ŸºžÕgƒþýñWöŽT#çø¨ÞCL‚±É°DWØ' v ð£ßœ¸ Çï 'ü¤Æ¸7d^­ óbWdHÞÿCÈì*2½32³'d;£ «hÜÍÐø¸‚Æÿš]!„ÕP bWAþ—VÃ+èÑl^;êí¤\Ö›¶ÛèÍïFc°z—6I¤ í‘rmJ;¤\ËR«RëR›RÛR»R~±ð‹™í‹r-K­J­KmJmKíJíKù-™&áèñ㫳ôüt0úÔã÷Ç“³z’m Þ“¡Naa|°µÀž¦Jû·JÐöLÛÊyÝKÞ9füÑødÌàÓŸ”ý™|ôãe¨hÔŠT¶’Á­—iö$S¸Êc—ÞÊ”¦òB­—ö#¾¯bìȦÂÞìVm‹I\yì.™ˆOà¶·j[¬K•Böje]áȰV¦{’©U…c+R‡*Ø a+÷#燊N L]eôz™z_2«è€ÖÊ´ºŠ2¬—©÷$SûJ‹ŽL£+«ÍZ™rOa‹ã[…cë\¦•æVm«Bȵ"5Ükµ¼•Ùi¥ª<–WJµ´æØtÂÔUöVfI+O"D±2%y pÕ|jOò„­ V¦$OJØÓÞª<¬ºΕYž•¹eqAœ6‰ÃÆ 2î–å)À+â4¢ÓßN²iÅ‘Çè#É“€Õ­$ÔFž±”ó÷ŒÖÇ[5'%o²=)Á`v¬—çö$/'GÉÅéì6°u¦v×noBó½Ã‚J›áÜé Ó÷wàÈœ¶BÄ V!¶[™x,”>"Ô˜A[—2÷x/°/õH™‘y£¨ŸRLzçð.°€M-t:}f •L£/ˆF5|ò¸Ì9—–FÓ ¿pÏt©”/ÕB—K̳Ê](«° \O¹ÔÌ-~ZšÎÛLú €)Ï¡UkN™ßAq‹ ‹pŠ•ï¼Iàå±´¥Z5OÌâ¤qÓyD.5$!^RÛxís™{¼Mo‘1`>•ú#+¥~Zç@½ÅnxÂo%Ñä:ÑwîüäÑrmËÛ„/óBŽB—]F=RèL˜TÈDI…÷5&™rIêd¦&Q•vR<ÃM†H½]#X5ç’ìL3§Î&•:)L3^/¼ÍfÊíTÂERt¬_,ûÃebšŠõ½¼yO‡xþœmšËµ¤ÊÛB™]ŸÊp¸+¥`­}²—E‚šCFu*•YšSÀåÉ£ò—ä¯lG}Zú!~´Éç Ï|æ~ ð‘ ;úJ/R’!ç»Hj„…Áø*ïX\bàÒ94}[GC•"Õ 7,Æ~êš²c²b«e±~J£$õ–K’£hÍûÿ¿ÿà?²zè$ŠTæÔ‘Ë…ô²&SœÇKw¢Ðs*MÕ´@øNŽ›§ü’§ÚV—J§Ù™KÛ™Îé]G½]—Õ™Ñë–HyJå…ƒP¸ h Z•šjD§M%ÛÁI?ÅżŒØFó<¶p×ó,_øÛlN)T+Þ6émt¹Õ1Áê’‘ÚûX2t”´øä%#;äº%#KFt‘’)4e±\jd.”8®#=:jo*ƒ‰Ô&]¼B™~}NïY”¥¤£êox+Ò-È"1SçöœÊ¤gÓ¡èph[×kx“²pìh–hIÖN%=g¬´å N—¶{:ÐŽBо$ àˆ:’oé‡a ¶˜ÎÛŠ~‡wžÌ”hÍA4º ™V!)íÓĶcÁ™D“ ± åf.]˜ûŠät­ÑEd«Ò·Ñä§T§Õ¨ë_ê]ð:pJOöJ×Òæ÷Æ’ôY'/Íße åv*ßwAt¨xXOO'ƒËÙx’ÏûxsxxüÛÓçÿxðì¾èö?N™É÷Óç÷;°Â•f¡”4ÿè,4=¥ðØàõøƒþåãzðñÁáˆSçww$½<œõ‡ƒÓ{£Ãšýñ¬¾xC¿–÷øÛ2Ó<Îû:¹üÄñgü9?áð>ÿÀOùéx8ñ3^ó¿øG~Îüò >âc~É/ëÉ`|Æ'|ʧÃþôœÏøÿÂÿæ_ù·Ÿ3ˆƒD;eº¿r|Ï&Ïþ<|spH6y+Õz£XMF¡[:îÉ(q£QîñûüÈå0Ðc~ÈãO’¡^ð#þ’¿âÇ0Ùkþ†ÿž ן-Ù.q…ÿàÿ/°åøj’Ìyþíò¼Áªÿlí:ŒjwŒ²5ðgþùªžÎ`÷ùj<«‡õ_³Üš$ÎÉõpš¾Â ³óI]óÙßã¹;ø¿êÉxÑ'nŸ\!î0/“Óa}:¾ü6™-bÞ*é?~òÌ''S „¾­kÀp(‘r1=¶ˆ•R»'”œLž”X9N $%éé`0 Ïêm³Ç¦èú8©û`ÔÍC>¬§Ó5[krÃåðjšDNûÉk¶(f«åï×o^¼=Ⱦݰ Óz®és}ж?îÛÍ‹y±þÜöÅòÉØÙÐdælÏÎÞ­5ʪ16,ßV¨ZÜïOëô3ÆòébÁtéì’îð &Ó©Î 6ËOûåA*ðú}p6;Ÿ¦Û¿‰ödüz—žÕLn¯ÎòÆ~Y¿¬Q­×Gé=è³¼©]Ö'.ëcCGzhÍã¶—¾¼]’®åÍ¥ûí¥/m—…ë› 7Û _ÚØ- _‰Kš8P8P{ˆƒÅ½Ã²6+Qiº¦2vla÷ Íòº¼¬ÏJTJÝÕGèŽ>q{ñËKä’x³–Ú,8Çuœ#—Í¡·×g9­/룯Mb®+âêÐÉ)]’¼¢u¡½ðH÷ùÓà'ƒ³){—ïÊrÕ0ßD”å’²´ùÙä+ÐïwáoÊ%c“oÅ¢Ö¥v¥Î·!M¾M¹›ŒrãÒ”›•¶Ü¤´åæ¤-7%­Ü‡-&²²ÈPE†*2TéÏ g7ºÜ5冩)2Mé·åªý¶ÜJ-CÑüBs¿¹î^.‡_'Ãtdؾ¹A[x…&¼Ä÷xê®â®Ë´ÜU0¾ÄMs«¶ÄªÕÅþùšûMõv‹zÇïŽ q±kƒ}iЋ«Ù{£i™ÎL6(Bó™W6!™)–fð{a¼nî$Ó/Ó¹Ùj\’øÑ¤þ’þÒ¦;ïËh;­¯]²ÚsºßÑè´ÄKÍy‰ëx•¿.hx­ÓËÎQY-/»ÀK®ãåæ¼®Åh0Úuí£½£YÀX´\äeæ͵å"¯uÍc3‡ /Ó,E/µn´ž–ëGgÙf-ÑŽ.çÒvt£y–½°¿jU)aÞ¤…æwR˜ÿœö endstream endobj 648 0 obj << /Type /ObjStm /N 100 /First 884 /Length 2101 /Filter /FlateDecode >> stream xÚ}ZA\· ¾Ï¯ÐÑ{0"’"%A€ @£…[í©Éa›Lƒìµ±Þ8é¿/9Oo8|«ÕÁ~ÒHü>’ú8#»¤œ Q*M9èkBd}–Dô ‰ìsÐ=Rôɉk×'&)ºž{’ÖO%KjY×3¥&¢ÏœzSÛ^äB:( º@Rµ–ê€7`‚‚9‘2@ix¢* X1¨’úÇj^ÕÑzñJ‘›Æ@ê´®æ 3(—ba®¬N¬›5,[*]•OT$!uåRç°¨ËTrBFÅ!͘Ϛ¬æ³f«…céi¶„ºÔÍg[ΤÙ…È]Nd4PìEÇ¢nhrˆ$ÛF£Q+M±æ»˜»êf×%±̧j.4Ë‘‚)¡%«Ÿð’PaóE3¬é×Hô(@7WÔb èáØ_h§@ÊŽv|vލ”¢ÉD®©°f¹Ø©*²æ¨T=w4-4=xó»´ª›‹"w&ËV⌊¬IgȺYóàN¡æ‡ US›ø’6Õ«8NšuX€ª f Ð$$ jˆ«¨‰àÚYÅÍÔDq·5Q’5@P¿%k€ B~’˜› BRP¡¦{Ô' KE¤‰Ö$þÑ(U;Iªº ¢K-›¬°©âÔ"‰’ž„sªÙfjPAÔBõ£F¤J•šè ¤jÉÕXUu ©ÖËæšj×üˆê£öËæ®ÕAíôí·§oþùðüá¬GSµúþqúæ{ò6üûýÓùñùR’6ÿî»°¿ø~Œû5³ÛüéüõR±—ÙûóŸ†Õ·ÙO_l*Ûô¯÷·³>ý®8oáH WJì‘r'”uâ06·–¥u ç;ͱ6ë¹'èÖyžºÁM!Y»c#Y9$‹$Я$P‰”zn¦[ÊÒ"%ʾ¦§,1®dPöIV€ÜÖÓýùº?·%›Ü¼ pŸ½"Àì5’yN¹‘LÎ^1'b/[‡ã‰äP1{4¯œH¾V õX1W’²OtJ½¹µ,­ƒæsža±cÅŠÙ­ûÑ÷çw»­˜=Ž‘,{É{²®³ùéR»V µº¢¬=PÎÜoâX±®ÖÃ}œY“[ÃÜzãn<³¾Õ¶Œ#¬ ³Ý±‘ºu†ÊZ’ç@9y•P-nsëÍÅ*3k׸,5.5`…ÑîØ·Ê2\ñÂW cÌJA¼„Vß%‡² /ƒk4Û÷@Ž/ƒz¤ôj’C5•p>Ü&³וu â”Ya° £„ÂàYa°ÃÜzãæYa°FiË8$`ÅÂàP¼.Œâ…QxIyûþ؃9`y™œc ëY™/ê+ÕQ(“]Ï#øÊdœð<(ÉËäÐR(1P–YÑx»I‡vój=ÜŸZ{ð‡ÎñÀ=kuÉ;GÂuá)¾‹ö~mKÝÞÚ½¢ôpV”N~Önºìá {„Yðà †ƒ‚çûÝsÀ9Ûæ+Ä/`¸ík®³W^Õàçyèýbz`oôįPb†¾<ïýèÐûQžåÁ»=:t{W§¶¬ï_ÝéÐß]g¯äÁû;ìmA‚=|£ÍÆ^‹—XAå³n{q,\bÝJb÷ò€å1¶¾Âj5`Íblͱd‰UÖ,ÆÆŽEK¬Ûîx÷ò€…Ž•WXµ¬2Áª×·5ÖºÄâ€3,q¬²ÄÂ[¬ÚfXäX°Â’°x†uýJCYê^$`Mz ×½,u/·ºß½<`¹îe©{ º—™îÅuÏKÝsнÌtÏ®{^ꞃîe¦{vÝóR÷tÏ3ݳ랗º/A÷<Ó}qÝ—¥îKÐ=Ït_\÷e©ût_fº/®û²Ô=Ý—™î‹ëž–º§ û2Ó½_ø!-uOA÷4Ó½wgHKÝSÐ=Ítï½âR÷¡sÃYç†Þ¹!.uîüpÖC¢ßù!.unqÖ’¡ß".uîw/#–_ô!,uA÷8Ó½ßà!,uA÷0Ó½ßç!,uŸƒîa¦{¿ëüÔ}¸ëÛ½ŒXÞÈa^ê>\éáìJ½ÉÃe“‡9è>Ïtï½ô•î¡ÝÏz9ð›;è²Ä ºŸõrà7wÐi‰u«{˜Ý(‚ßêA_é­ÞîeÄòë:h¯è~XÃÌZÜš–¿ üh ÍúÕÍѬÇßtÔœý¡Ë;p†.f—|à]＀ ¹˜uyà]º¼#ÖmÕìËïò .c”ã¬Ëñ×lG¬°p†å*–W.ß7k Q½¿ÿxþ’þýæ-Ü¥­³JoÞâ]‚í+O'¤+¶IÆ0ߥ-(ëç[ŽV©<||xÞ!méç#\ðû°5üí¡“b¶ މØdw£Þ%ÞÞ;·„†kk/ ›î§¶Ûdx®[{¬Ãl eLÀ&û&ó_Äg¨¶ö‚/!í°—F2ñÒˆ-$‘£…$#Xl–ór$4\[{IØmÿðV7É # ‰Ç‘…ÄÃ+²x8BæïÖ :Eµµt¤!qÛa-$¹Õ úq±iœulÐ(7õÞޛɱiê8qu¥Ž£ùáÓã/çÏÏ?å’ß=þzþó.•ýuéùéá?¿?zúb^]?þü¿‡Çßî.ÿáâòÉ»Ÿ?œ?jqÜ??|z¼KôòtípÛ^8øîñËóý‡ö ߟÿ0ú6þÛ×óÓׇówöß¶´ªÿ{Öâü嬉F*ÿõåþ·³9ó"C‘hl¼ºó—‡_u“l¿’l?4.ÿ–¾=q> endobj 661 0 obj << /Type /ObjStm /N 2 /First 13 /Length 100 /Filter /FlateDecode >> stream xÚ333P0P033R02ä²±áÒwI-.)V03µ qÙÙC* RôKsòÓ¹ôÓSjLÌÀjôýKKr2óÀ"æ¿Ä\lvD½o~ ЈÐâT˜jÙ·Å!^ endstream endobj 664 0 obj << /Type /XRef /Index [0 665] /Size 665 /W [1 3 1] /Root 662 0 R /Info 663 0 R /ID [<3CD8D918CA0E7BDAC3CB7C1F6ECC8042> <3CD8D918CA0E7BDAC3CB7C1F6ECC8042>] /Length 1521 /Filter /FlateDecode >> stream xÚ%–ML•G†ç\@”?QDÀ”ÿ?ADQM›.š¦I“6iÒ¦±ir›îš¸psê¦iÔUÓ4é¢&&5“4i]¹mºh7®Û4¶±÷y»yrÞ¹ß;ßÌûž¹!„ðÊB¨ r (Y ¹* d飂ÌųàЊ-T>×6uóªçÀ\.XªU ìÁaÐŽ‚.Ð 4}?ˆ`œ§À Ã`Œ‚10&À$˜Óà4˜³@GqÌs`œ àXK@§º .Ë`\×ÁX×Àq õg´%Wy­~p 10Á% ç®ƒ`l3Á pl€Mp l=rÜ)ÀùIǬž8Ñ‹Ös¬çXϱžc=—ëV-4?ÖwË9¼"°ì»,ô¶ÈÊU çá],²€\ž=pl때íal‰}cõŒ±9Ž•YòW©ð³×"ÙNÇÔ®‡ÙbÇÙÞÀŒ±÷ŽÇ]’ópŒîMHÎÈq»BrnŽåý0’³t|ï­HÎ×1¿AræNü(81ðN$Þp²àÇøÅ „cù<r²àÇ‘øÊ±²÷"ñšïGâ?ÇÞ>€Ä“ŽÇýŸ:F÷!$ÞuÜî#HüìXÞÇxÜñ½O ñ½ SH²àúÆi¤žÓô³H2ãZ Ý,¯Iµpò›'[®·¤Íåµm Ý,O]û·„ÔrµÙËH²ê:™ËH½›Îò ’L»þR!«\G’}'L¾ŽÔ®‘¿‰¤ñ81ðM¤¶˜,øRž$~©ó(¤Â²Bãøçi2™2£*ÅÈcT%`†gŒÞ”•‚2d'ÕN@RòT´¹L1 ›e»b0ÍX;’&˜)Ú°#Ƚ@1 f5@1h¥¢cfõ|C›Ø‚Ü4ÐŒ~š)ÍT€bpˆŠF›)ªôˆbÐD¥ù}M+P ©´fÅ@¿¡·T b¦-Q ´ m¢bÀr³ èNÅ –ª(z߃j*Zd¦hsbÀÖeÃ@1ÐvŽÅ€ÍÎÆb ˜Š]*›ŠNk(åTg€b £åòʃ2ªy È @1À%-<Ó©Ê9bPLEoÏt‚²Ù P rT4ýL1'Wb¨Ö1ˆr1÷BF âmª @ â6Õ-@ â•ƈAÔL 1øý=õqÝ.üd"‘©ëKÄ Þ¤âe’îÝG¼y"ñXG²W‰ÍNåFúYsâÜR¥…Ñ9ýÐ2’“Nœ~Â/©ÚÂÄëzë¥ ÓIbÛÔdaî3I,šš-,¾”$3©ÕÂÊcI<™Ú-¬¯ÒJ~S§…×v蜘2 o=”ì…‹ùÝ’X/õYø Jò°p÷I¼–-|úBÓ_Fb¸4F,|þDÏ“îÿ"‰‘ÒŒ…/žI΂sଅ/?Ö˜þá¡4oáÑ‚ÆÎœ“.Xxü~«$aÙÂ×/ôÜ5pÅ·÷%1H*ÜÝOžJêÜÖ-üÐ$ÉÁ§ ?¯Hbš´eáy—¦Ç„Q¸cá··5¬¨®Q•|Pø ûâÉRPbáÏ7%õ'¡Ì¿O%wƒ ³Ò÷%¹üc¥YÍG’WA ØkÖøÆ¸Þc­Yûˆd ¯Åý€–ºY<hd±ÐÃb  }Å6@çŠí€¦;ý*vZUÌ€þŸö:RÜgÖ1«,€yÐhP1zS< hKqБâ01ë~¥ FÍ6?T5föð'UãfÏþÿtÂì×~U“f/ßP5e¹í»ª¦-÷ NÕiË=ù[ÕŒ• ©¢KEzD\´‡¸fEm¦ m 誼tKn]·€îÆm k±Ð r÷ 'Ýý Ü3+ʾ*ÈžOÂIF  endstream endobj startxref 208261 %%EOF gorm-1.2.24/Documentation/INSTALL0000644000000000000000000000114413426755207015117 0ustar rootroot1 Required software ------------------- You need to have the GNUstep core libraries installed in order to compile and use Gorm. The core packages are, at a minimum: * gnustep-make * gnustep-base * gnustep-gui * gnustep-back See for further information. 2 Build and Install ------------------- Steps to build: * make && make install Please note that GormLib must be installed for Gorm.app to run. 3 Trouble --------- Give us feedback! Tell us what you like; tell us what you think could be better. Send bug reports and patches to . gorm-1.2.24/Documentation/Gorm.texi0000644000000000000000000012635613410616261015667 0ustar rootroot\input texinfo @c -*-texinfo-*- @c %**start of header @settitle Guide to the Gorm application @setfilename Gorm.info @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,2009,2010 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 @titlepage @title Guide to the @title Gorm application @sp 3 @c @subtitle last updated February, 2001 @subtitle Version @value{GORM-VERSION} @subtitle (for use with @samp{gnustep-gui} version @value{GNUSTEP-VERSION}) @subtitle (and with @samp{gnustep-base} version 1.10.0) @author Gregory John Casamento @author Richard Frith-Macdonald @page @vskip 0pt plus 1filll Copyright @copyright{} 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. 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. @strong{Note: You will be performing a valuable service if you report any bugs you encounter.} @strong{The full gorm manual is available at http://wiki.gnustep.org/index.php/Gorm_Manual.} @end titlepage @contents @node Top, Copying, , @menu * Copying:: GNU Public License says how you can copy 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. * Usage:: How Gorm is used. * 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 Gregory John Casamento Is the current maintaner of Gorm. Has implemented lots of new features and rewritten large portions of the existing code. @item Richard Frith-Macdonald wrote the original version of Gorm as part of the GNUstep project. @item Pierre-Yves Rivaille Is also a major contributor to the Gorm application. @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 @item Debug and stabilize existing code. @end itemize @node Overview, Usage, News, Top @chapter Overview Gorm is an application for creating the user interface (and possibly entire 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. You can find out more about GNUstep at @url{http://www.gnustep.org}@* 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. @section What You Must Know To Understand This Manual This manual assumes a working knowledge of Objective-C and C. These are necessary prerequisites to understanding some of the technical details and examples given here. @subsection Major features @cindex features @itemize @bullet @item Drag-and-drop creation of GUI elements from palettes. @item Run-time loading of additional palettes that may be written using an API very similar to that of Apple/NeXTs interface Builder palette API. @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 @section About this Manual This manual is ment to cover basic operation of the Gorm application. It is not meant to be a complete tutorial on GNUstep programming. @node Usage, Implementation, Overview, Top @chapter Usage Here is a description of the menu structure and what each menu does - @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 @* A panel allowing you to set preferences about how Gorm operates @item Help (not implemented) @* A panel providing general help on using Gorm @end itemize @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 New Module @* Contains a submenu, which also contains: @itemize @bullet @item New Empty @* produces an empty document with only NSFirst and NSOwner. @item New Inspector @* produces a document with NSOwner, NSFirst and a window which is the correct size for an Inspector. @item New Palette @* produces a document which is like the one by @samp{New Inspector}, but it's window is the right size for a Palette. @end itemize @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 All @* This saves all documents currently being edited by Gorm. @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 Translate @* Contains a submenu, which also contains: @itemize @bullet @item Load Strings @* Load a string file. This file contains the strings to translate. @item Export Strings @* Export a strings file. TODO @end itemize @item Miniaturize @* This miniaturises the active document (or whatever panel is currently key). @item Close @* This closes the currenly active document. @item Debug @* Prints some useful internal information. @item Load Sound @* Loads a sound into the .gorm file. @item Image @* Loads an image into the .gorm file. @end itemize @item Edit @* In addition to the usual Cut, Copy, Paste, Delete Select All, this menu also contains: @item Set Name @* This allows the user to set a name for a given object in the Objects view in the main document window. @itemize @bullet @item Group @* Which produces a submenu @itemize @bullet @item In Splitview @* Groups views into an NSSplitView. Gorm does this based on the relative positions of the views being grouped. It determines the orientation and the order of th views and then groups them either vertically or horizontally in the order they appear on the screen. @item In Box @* Simply groups all of the views into one NSBox. @item In ScrollView @* Simply groups all of the views into one NSScrollView. @item Ungroup @* Ungroups the contained views. @end itemize @item Disable Guideline @* This item toggles between Enable Guideline and Disable Guideline. This allows the user to turn on or off the guides which appear when placing views in a window or view in Gorm. @item Font Panel The Font Panel allow you to modify fonts of your views. @end itemize @item Classes @* Contains menus for working with classes. @itemize @bullet @item Create Subclass @* Creates a subclass of the currently selected class in the current document classes view. @item Load Class @* Loads a class from a .h file into the current document. @item Create Class Files @* Generates a .h and .m file from the currently selected class in the current document classes view. @item Instantiate @* Creates an instance of the selected class in the current document classes view. @item Add Outlet/Action @* Adds an outlet or an action depending on what is selected in the document classes view. If the outlet icon is selected, it will add an outlet, if it the action icon is selected it will add an action. @item Remove @* Removes the currently selected outlet, action or class. @end itemize @item Tools @* Contains the inspector and the palette menus @itemize @bullet @item Inspector @* Shows the inspector @item Palette @* Shows the palette @item Load Palette @* Opens a file panel and allows the user to load a palette into Gorm. @end itemize @item Layout @* Contains a menu for working with alignement and layout of you views @itemize @bullet @item Alignement Wich produces a submenu @itemize @bullet @item Center Vertically @* Center Vertically two or more views. TODO :explain what is the reference view @item Center Horizontally @* Center Horizontally two or more views. TODO :explain what is the reference view @item Left Edges @* TODO @item Right Edges @* TODO @item Top Edges @* TODO @item Bottom Edges @* TODO @end itemize @item Bring to Front @* Bring to front the selected view @item Send to Back @* Send to back the selected view @end itemize @item Windows @* Shows currently open windows. @item Services @* Shows currently available services. @item Hide @* Hides the application. @item Quit @* Quits the application. @end itemize @node Implementation, Concept Index, Usage, Top @chapter Implementation @menu * Preferences:: @end menu @section 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. @section 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). This information is needed by Gorm so that it can mark the connection. The editors mananging the drag-and-drop operation for a connection must call @samp{[NSApp -displayConnectionBetween:and:]} to tell Gorm to update its display. This method sets the values currently returned by @samp{[NSApp -connectSource]} and @samp{[NSApp -connectDestination]}. @node Preferences, , Implementation, Implementation @chapter Preferences @cindex preferences @cindex defaults The preferences panel contains a number of useful customizable options which can be used to modify the behavior of Gorm. Some of these defaults can be safely modified from the command line by the user. @itemize @bullet @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. @item AllowUserBundles @* If the user sets this to YES, they will still get a warning, but Gorm won't quit. @end itemize @chapter Basic Concepts This chapter will explain some of the basic things you need to understand before starting work on a new application. @section Getting Started First you need to understand a few basic concepts. Gorm's main window includes a few standard entries which must be explained before we can proceed. They are: @cindex NSOwner @cindex NSFirst @cindex NSFont @itemize @bullet @item NSOwner @item NSFirst @item NSFont @end itemize @section What is NSOwner? NSOwner is the class which ``owns'' the interface. This is, by default, NSApplication, but it can be any class you like. You can change it by selecting NSOwner in the document window and going to the ``Custom Class'' inspector in the inspectors window. From there, you should see all of the classes which the NSOwner can assume. We'll discuss more about this later when we go over how to create a new application @section What is NSFirst? NSFirst is your interface to the responder chain. NSFirst is representative of the current ``first responder'' in the application. When you want a message, such as a changeFont: message, to go to the current first responder from, say, a menu, you connect the menu item to the NSFirst object in the document window. By doing this, it means that whichever object has first responder status at that time in the application will become the reciever of the ``changeFont:'' message. @subsection Responders @cindex NSResponder A responder is any subclass of NSResponder. This includes NSWindow, NSView and all of the NSControl subclasses. @subsection The Responder Chain @cindex Responder Chain The responder chain is a sequence of objects which are called to determine where a message sent to the first responder will go. A message invoked on the first responder will be invoked on the first object in the responder chain which responds to that message. The object which this message will be called on is determined in the method [NSApplication targetForAction:]. The call sequence is as follows, it will only proceed to the next step in each case if the current step fails to respond to the message which was invoked: @itemize @bullet @item The firstResponder of the keyWindow, if one exists. @item Iterates through all responders by pulling each in the linked list of responders for the key window. @item It then tries the keyWindow. @item Then the keyWindow's delegate @item if the application is document based it tries the document controller object for the key window. @item then it tries the mainWindow's list of responders (as above) @item the mainWindow's delegate @item if the app is document based, it tries the document controller for the main window @item and finally, it tries the NSApplication delegate. @end itemize If all of the options in this list are exhausted, it then gives up and returns nil for the object which is to respond. @section What is NSFont? NSFont represents the NSFontManager object for the application. This object is a shared singleton. This means that, for any given app, there should be only one instance of the object. This object is generally added to the document window when another objec, such as a Font menu item, is added to the interface, which, in turn, requires that this object be added to the document. @section The awakeFromNib method This method is called on any custom object which is unarchived from a nib/gorm file. This method is called on all objects after the entire archive has been loaded into memory and all connections have been made. Given all of this, you should not make any assumptions at all about which objects have been called and which have not. You should not release any objects in this method. @chapter Creating an Application If you have ProjectCenter, you need to open it and create an ``Application'' project. Create it with the name ``FirstApp''. From there you can open the MainMenu.gorm by clicking on interfaces and selecting MainMenu.gorm. If Gorm.app is properly installed, you Gorm should start up. If you don't have ProjectCenter, you can create the Gorm file by hand. First you need to start Gorm. You can either do this by doing @samp{gopen -a Gorm.app} from a command line prompt, or you can invoke it from the Dock or from the workspace's file viewer. You then need to select the @samp{Document} menu, and then @samp{New Application}. This should produce a new document window, with a menu and an empty window. This should be the same as with the ProjectCenter gorm file since this is the basic starting point for an application. For the sections below... only do one or the other, not both. @section Creating A Class In Gorm @cindex Creating Classes There are two ways to do this next operation. I will take you through each step by step. First click on the classes icon in the toolbar on the top of the Gorm document window. You should see the view below change to an outline view containing a list of class names. Once this happens we're ready to create a class. Select the class you wish to subclass in the outline view. For our example we will use the simplest: NSObject. Select it by clicking on the class name once. Then go to the Classes menu in the main menu and select Create Subclass (you can also type Alt-Shift-c, which will do this as well. The new class will be created in the list with the name ``NewClass''. @section Using The Outline View @cindex Classes Outline View From here double click on the subclass name to make it editable. Type the name of the class and hit enter. For our example, please use the class name MyController. When you hit enter an alert panel will appear and warn you about breaking connections, simply select OK and continue. This method of inputting the classes was inspired by IB in OPENSTEP 4.2/Mach which had functionality very similar to this. For users of that the transition to Gorm will be seamless. @subsection Adding Outlets In The Outline View Too add an outlet, select the round icon with the two horizontal lines in it (it sort of looks like a wall outlet. This should become depressed. Here you need to go to the Gorm Menu, under Classes select ``Add Outlet/Action''. Each time you press this menu item another outlet will be added with a name similar to newOutlet, as you add more the number at the end will increase. For now add only one outlet. To rename the outlet simply double click it and change it's name like you did the class above to ``value'' for the sake of our example. @subsection Adding Actions In the Outline View The procedure to add on action is precisely the same as adding an outlet, except you must click on the button which looks like a target (a circle with a + inside). Add an action and name it ``buttonPressed:'' for the sake of our example. @section Using The Class Edit Inspector @cindex Class Edit Inspector This way is much more inline with the ``OPENSTEP/GNUstep'' philosophy. For each object there is an inspector, even for Class objects. Once you have created the class as described in the previous section ``Creating a Class In Gorm'', you must skip to this section to use the inspector. In the Gorm main menu select Tools and then select ``Inspectors''. This will make certain that the inspectors window is being displayed. Once the inspectors window is up move the pulldown on the top to ``Attributes'' and select the class you created which should, at this point, have the name ``NewClass''. You'll notice that the ``Class'' field at the top which shows the name's background color has turned white, instead of grey. This indicates that this class name is editable. Erase ``NewClass'' from the text field and type ``MyController''. @subsection Adding Outlets In The Inspector Adding outlets is very intuitive in the inspector. Simply select the ``Outlets'' tab in the tab view and click ``Add'' to add more outlets, and ``Remove'' to remove them. For the sake of our example, add one outlet and name it ``value''. @subsection Adding Actions In the Inspector Very much like above only with the ``Actions'' tab, add an action called button pressed. @section Instantiating The Class @cindex Instantiating In the Classes outline view select the new class you've created, now called MyController and then go to the Gorm menu and select Classes, and then Instantiate. The document window should shift from the classes view to the objects view. Amoung the set of objects should be a new object called MyController. @section Adding Controls from the Palette Go to the Gorm menu and select Tools, then Palettes. This will bring the palette window to the front. The second palette from the left is the ``ControlsPalette''. Select that one and find the button object (it should have the word ``Button'' in it). Drag that to the window and drop it anywhere you like. Repeat this operation with the text field. It's the control with ``Text'' in it. We are now ready to start making connections between different objects in the document. @subsection Making Connections @cindex Connections The type of application we are creating is known as a ``NSApplication delegate'' this means that the MyController object will be set as the delegate of NSApplication. To make this connection click on NSOwner and hold down the Control button, keep it pressed as you drag from the NSOwner object to the MyController object. The inspectors window should change to the Connections inspector and should show two outlets ``delegate'' and ``menu''. Select the ``delegate'', at this point you should see a green S and a purple T on the NSOwner and MyController objects respectively, and press the ``Connect'' button in the inspector. In the ``Connections'' section of the inspector you should see an entry which looks similar to ``delegate (MyController)'' this indicates that the connection has been made. Now we need to make connections from the controller to the textfield and from the controller to the button. Select the MyController object and Control-Drag (as before) from the object to the text field, this will make an outlet connection. You should see the connections inspector again, this time select the ``value'' outlet and hit Connect. Next, control-drag from the button to the controller, this will make an action connection. The connections inspector should again appear. This time you need to select the ``target'' outlet, to get the list of actions. The list should have only one entry, which is ``buttonPressed:'' since this is the one we added earlier. Press Connect. You should see an entry like ``buttonPressed: (MyController'' in the Connections section of the inspector. It is also possible to make this connection to NSFirst, but to keep things simple, make it directly to the object. If you make the connection to buttonPressed: on NSFirst the functionality of the application will be unchanged, but the invocation will take the path described above in the section which describes ``The Responder Chain''. @section Saving the gorm file @cindex Saving At this point you must save the .gorm file. Go to the Gorm menu and click Documents and then select ``Save''. If the document was opened from a pre-existing .gorm, it will save to that same file name. If it is an UNTITLED .gorm file a file dialog will appear and you will need to select the directory where you want to store the .gorm file and type the name of the .gorm file. @section Generating .h and .m files from the class. This is different than saving, some people have gotten this confused with the idea of Gorm generating the code for the gui. Gorm does nothing of the sort (grin). Go to the Classes section in the Document window and select the MyController class yet again. Now go to the Gorm menu and select Classes and the select ``Create Class Files''. This will bring up a file panel and it allow you to select the directory in which to put the files. It will first create the MyController.m file and then the MyController.h file. Simply select the directory in which your app will reside and hit okay for both. You can change the names, but the default ones, which are based on the class name, should be sufficient. When you look at the .m for this class, you should see the @samp{buttonPressed:} method with the commecnt @samp{/* insert your code here */} in it. Delete this comment and add @samp{[value setStringValue: @@``Hello''];}. The class should look like this after you're done: /* All Rights reserved */ #include #include "MyController.h" @@implementation MyController - (void) buttonPressed: (id)sender @{ [value setStringValue: @@''Hello'']; @} @@end You recall, we connected the textfield to the ``value'' variable. The call above causes the method setStringValue to be invoked on the textfield you added to the window. Also, note that the name of the method is ``buttonPressed:''. This is the action which is bound to the button. When it is pressed the text in the textfield should change to ``Hello''. You now need to build the application either by copying in a GNUmakefile and making the appropriate changes or by using ProjectCenter's build capability, depending on if you use it or not. This app is available as ``SimpleApp'' in the Examples directory under the Documentation directory distributed with Gorm. Hopefully this has helped to demonstrate, albeit on a small scale, the capabilities of Gorm. In later chapters we will cover more advanced application architectures and topics. @chapter Another Simple Application This chapter will describe an application, very much like the previous one, but using a slightly different structure. This application builds on the previous application and uses WinController as the NSOwner of the app instead of making it the delegate of NSApplication. @section Adding Menu Items Select the first palette in the palette window, this should be the MenusPalette. The palette will have a bunch of pre-made menu items on it that you can add. We want to keep this simple, so grab the one called ``Item'' and drag it over to the menu in main menu nib (the menu on the screen, not the one in the objects view). As you have this object over the menu, the copy/paste mouse cursor should appear (it looks something like one box over another box at a 45 degree angle). Where you drop the menu determines it's position in the menu. You can always drag it to a new position after you've placed it by simply selecting and dragging up or down. Once you've placed the menu item, double click on the title and change it to ``Open'' You can also change the name in the NSMenuItem attributes inspector. Now you must add openWindow: to MyController and make the connection from the ``Open'' menu item to NSFirst. In the connections inspector, find the ``openWindow:'' action. You could simply make the connection directly, but this is an exaple to show you that this connection will work as well. Whichever object has First Responder status will be tested to see if it responds to this method. The implementation for openWindow: in MyController should simply be: - (void) openWindow: (id) sender @{ winController = [[WinController alloc] init]; @} Also add the winController attribute and an include to allow WinController to be referenced in the MyController.m file. @section Making a Controller-based .gorm file Create a new .gorm file as described in the previous section using the ``New Module'' menu item. Under ``New Module'' select ``New Empty''. This should produce a .gorm file with only NSOwner and NSFirst. From the WindowsPalette (which should be the second palette in the palette window) drag a window to the location where you want it to appear on the screen. In the window add a button called ``Close''. Go through the same steps you went through previously to create MyController, except for adding the outlets/actions, but this time with the name WinController. Add an outlet called window and an action called ``closeWindow:''. @cindex Setting the NSOwner Now, instead of instantiating the class go back to the objects view and select the NSOwner object. After that select the ``Custom Class'' inspector. Look for the entry for WinController and select it. You now must connect the ``window'' outlet to the Window you added previously. @cindex Connecting to a Window Switch back to the objects view, then Control-Drag not to the window on the screen, but to the window's representation in the objects view. In the connection inspector select the window outlet and click Ok. Save the .gorm as using the name Controller.gorm in the project directory. Generate the Controller.h and Controller.h files as described in the previous section. @subsection Add the init method to WinController Add an implementation of the action ``closeWindow:'' to WinController and also an init which loads the gorm/nib file and declares itself as the owner. Here's how: /* All Rights reserved */ #include #include "WinController.h" @@implementation WinController - (id) init @{ if((self = [super init]) != nil) @{ if([NSBundle loadNibNamed: @@"Controller" owner: self] == NO) @{ NSLog(@@"Problem loading interface"); return nil; @} [window makeKeyAndOrderFront: self]; @} return self; @} - (void) closeWindow: (id) sender @{ [window close]; @} - (void) dealloc @{ [super dealloc]; RELEASE(window); @} @@end The Controller gorm will be loaded and the connections will be made to the current instance, i.e. window will point to the window object instantianted in the .gorm file and all actions declared in the .gorm file which are attached to the object NSOwner will be resolved on self. @section Running the App Type the command @samp{open Controller.app} on the command line in the project directory. Once the application has started it should look very much like the first application. Select the ``Open'' button from the Menu and you should see the second window pop up, now choose close, this will call the method ``closeWindow:'' which should cause the window to disappear. @chapter Advanced Topics This section will cover some topics which won't be of general interest to most users. The details in this section pertain to the internal workings of Gorm. @section Gorm file format The current Gorm file format is basically just a set of objects, encoded one after another in a continuous stream with some markers indicating when a new class starts or which class is encoded. @subsection The Name Table @cindex Name Table Each object in the .gorm file has a name assigned to it by the application. This allows Gorm to refer to the objects by a name once they are loaded rather than an address. Each name is associated with it's object in a dictionary which preserves the overall structure of the GUI which has been created. @subsection The Custom Class Table This is only used when the user has associated a custom class with an existing instance in the gorm file. If the user has, for instance, added an NSWindow to the gorm, he/she can use the custom class inspector to select a subclass of NSWindow to change to. @subsection Connections Array This array is used to form the connections after the .gorm file is loaded. The method @samp{[... establishConnection]} is never called on either NSNibControlConnector or NSNibOutletConnector objects while in Gorm. This prevents the connections from having any effect while they are being edited in Gorm itself. Once they are loaded, the establishConnection method is called and the connections are made. @section Custom Class Encoding @cindex Custom Class Encoding Custom objects are an interesting challenge in Gorm. By definition, custom classes are not known to Gorm, unless they are in a palette (covered elsewhere). For classes which are not in a palette instances of these classes in Gorm are encoding in one of three ways: @itemize @bullet @item A Proxy - This is a standin object which takes the place of the custom object. This is usually used when the superclass of the object is a non-graphical object, such as a controller. The init message is called on this object when it's unarchived. @item A Custom View - This is a standin view object similar to the one descrribed above, but it is a subclass of NSView. When this is used the initWithFrame: message is called on the view instance which is created (based on what view subclass the user selects) @item A Template - Probably the most interesting of the three. This is a standin class which uses an existing instance created in Gorm to build a custom subclass from. For instance when a window subclass is created, call it MyWindow, a template class called GSWindowTemplate is used to hold the NSWindow created in Gorm as well as the name of the subclass to be created when the class is unarchived outside of Gorm as well as some additional information. When the classes are unarchived in the running app, the designated initializer for that class will be invoked, except in the case of NSControl subclasses. See the Apple documentation for more information. @end itemize All custom instances have awakeFromNib invoked on them when they are unarchived from the .gorm file. This allows the user to do whatever additional setup that needs to be done, such as setting attribute. Classes which are ``known'' are, of course, directly encoded into the .gorm file. @subsection Restrictions On Your Custom Subclasses The restrictions here are the same as those in Apple's InterfaceBuilder. In general, you cannot have additional information which is expected to be decoded in an initWithCoder: method from a custom class which uses one of the methods in the previous section. This is because, by definition, Gorm doesn't know anything about these classes and allowing you to use them in Gorm in this way is a convenience to make it simpler for the developer. Gorm therefore, must use one of the proxies to encode the class since it cannot encode the class directly. How can you get your classes into Gorm, you say? I'm pleased that you asked me that question. The best way to make your class known to Gorm so that you don't need to worry about the above restriction is to add a palette which contains your class. In this way, because you're literally linking the class into Gorm, you're making the class and it's structure known to Gorm so that it can encode the class directly. With the new palette loaded you can load and save classes containing real instances, not proxies, of your class encoded directly in the .gorm file. How to create a palette is discussed at length in the following section. @section Palettes @cindex Palettes @cindex Inspectors @cindex Editors @subsection Graphical Objects In A Palette You are, by now, familiar with the built in palettes which are provided with Gorm. Palettes are a powerful feature which allows the developer to add his/her own objects to Gorm. It is possible for a developer to write custom inspectors, editors and palettes for use with Gorm. A good example of a custom palette is palettetest in the dev-apps/test in the GNUstep distribution. Assuming you don't have that, however, I will explain precisely what you need to do in order to create a simple palette. The entire process is very short and suprisingly simple. First open Gorm and selection Gorm->Document->New Module->New Palette. This will create a palette sized window. Once that's done go to the classes view in the main document window and find ``IBPalette'' in the class list. Create a subclass of that, the name can be whatever you want. For the purposes of our example we'll call it MyPalette. Drag a custom view to the window and choose the class you would like to add to the palette from one of your custom classes. Once you've done this, generate the code for the classes (discussed in previous chapters). In the code, you'll add a method called ``-(void) finishInstantiate'' leave it empty for now. In the makefile for the palette make sure that the library or framework the view comes from is linked with the palette. Now build the palette. After the palette is built you're ready to load it into Gorm. Go to the preferences panel and go to ``Palettes''. This should bring up a table view. Click on add. You should see a open dialog open. Select the palette bundle with this. If the palette is successfully loaded, you should see the name appear in the list. One thing to note here. Once a palette is loaded, it can't be unloaded until you close and restart Gorm. This is because by loading the palette bundle, the code in the bundle is being linked into Gorm. This can't be undone, once it's done. Now, you should see the palette in the set of palettes in the palette window. Simply scroll over to it and select it's icon. When you do this, you should see the view that you set up using the custom view displayed as an actual instance. Note that we used one of the techniques listed above, it is possible to use any of the three for any object you add to your palette. You can now drag the view from the palette to a new window. @subsection Non Graphical Objects In A Palette You may recall the creation of a method called ``-(void) finishInstantiate'' in the previous section. This section will make full use of that method. Re-open the palette you created before, but this time add an image view to the window. Then add to the image view, the icon you want to represent the non-graphical object. Here you'll need to add an ivar to the MyPalette class in both Gorm and in your source code called, imageView. Once you've done this make the connection between the image view and it's ivar. Assuming that the class is called ``NonUIObject'', in finish instantiate, you'll need to add the following line of code: id obj = [NonUIObject new]; [self associateObject: obj type: IBObjectPboardType with: imageView]; This code has the effect of associating the non-ui object with the ui object you just added to represent it. When you drag and drop the element which prepresents the object to something, it will copy the object, not the ui element, to the destination. Congratulations, you now know how Palettes work. @chapter Frequently Asked Questions @cindex FAQ @subsection Should I modify the data.classes of file in the .gorm package? My advice is never to do this, ever. Some have said that ``they're plain text and I should be able to change them''. My response to this rather loosely pronounced and weak rationale is that if they are modified I cannot and will not guarantee that Gorm will be able to read them or will function correctly if it does. @subsection Why does my application crash when I add additional attributes for encoding in encodeWithCoder: or initWithCoder: in my custom class? If you've selected the custom class by clicking on an existing object and then selecting a subclass in the Custom Class Inspector in Gorm's inspector panel, then when the .gorm file is saved, Gorm must use what is called a template to take the place of the class so that when the .gorm is unarchived in the running application, the template can become the custom subclass you specified. Gorm has no way of knowing about the additional attributes of your subclass, so when it's archived the template depends on the encodeWithCoder: of the existing class. Also, when AppKit loads the .gorm file, the initWithCoder: on the subclass is called to allow the user to do any actions, except for additional encoding, which need to be done at that time. This is particularly true when non-keyed coding is used, since, with keyed coding, it's possible to skip keys that are not present. The application may not crash if keyed coding is used, but Gorm would still not know about the additional attributes and would not be able to persist them anyway. Please see information in previous chapters regarding palettes, if you would like to be able to add your classes to Gorm so that they don't need to be replaced by templates, or proxy objects. @subsection Why does Gorm give me a warning when I have bundles specified in GSAppKitUserBundles? Some bundles may use poseAs: to affect change in the existing behavior of some GNUstep classes. The poseAs: method causes an issue which may cause Gorm to incorrectly encode the class name for the object which was replaced. This makes the resulting .gorm file unusable when another user who is not using the same bundle attempts to load it. @subsection How can I avoid loading GSAppKitUserBundles in Gorm? You need to write to Gorm's defaults like this: @samp{ defaults write Gorm GSAppKitUserBundles '()' } Doing this overrides the settings in NSGlobalDomain for Gorm and forces Gorm not to load any user bundles at all. To eliminate this simply do: @samp{ defaults delete Gorm GSAppKitUserBundles } @subsection How can I change the font for a widget? This is a simple two step process. Select the window the widget is in and then select the widget itself, then bring up the font panel by hitting Command-t (or by choosing the menu item). By doing this you're making the window the main window and by selecting the widget, you're telling the editor for that object to accept changes. Then you can select the font in the panel and hit ``Set''. For some objects, the font panel isn't effective because those objects can't have a font directly set. @node Concept Index, , Implementation, Top @unnumbered Concept Index @printindex cp @bye gorm-1.2.24/Documentation/version.texi0000644000000000000000000000011413426755204016437 0ustar rootroot@set GNUSTEP-VERSION 0.25.0 @set GNUSTEP-GCC 3.3.0 @set GORM-VERSION 1.2.24 gorm-1.2.24/Documentation/Makefile.postamble0000644000000000000000000000351713410616261017506 0ustar rootroot# # Makefile.postamble # # Project specific makefile rules # # Uncomment the targets you want. # The double colons (::) are important, do not make them single colons # otherwise the normal makefile rules will not be performed. # include ../Version # Things to do before compiling before-all:: version.texi autogsdoc -MakeFrames YES \ -DocumentationDirectory InterfaceBuilder \ -Declared InterfaceBuilder \ ../GormLib/*.h 2> /dev/null autogsdoc -MakeFrames YES \ -DocumentationDirectory GormCore \ -Declared GormCore \ ../GormCore/*.h 2> /dev/null autogsdoc -MakeFrames YES \ -DocumentationDirectory GormPrefs \ -Declared GormPrefs \ ../GormPrefs/*.h 2> /dev/null autogsdoc -MakeFrames YES \ -DocumentationDirectory GormObjCHeaderParser \ -Declared GormObjCHeaderParser \ ../GormObjCHeaderParser/*.h 2> /dev/null # Things to do after compiling # after-all:: # Things to do before installing # before-install:: # Things to do after installing # after-install:: # Things to do before uninstalling # before-uninstall:: # Things to do after uninstalling # after-uninstall:: # Things to do before cleaning # before-clean:: # Things to do after cleaning after-clean:: rm -f *.bak *.cl *.fns *.pr *.log rm -f version.texi rm -rf InterfaceBuilder rm -rf GormCore rm -rf GormPrefs rm -rf GormObjCHeaderParser # Things to do before distcleaning # before-distclean:: # Things to do after distcleaning # after-distclean:: # Things to do before checking # before-check:: # Things to do after checking # after-check:: version.texi: ../Version rm -f version.texi echo '@set GNUSTEP-VERSION' $(GNUSTEP_CORE_VERSION) \ > version.texi echo '@set GNUSTEP-GCC $(GNUSTEP_GCC)' \ >> version.texi echo '@set GORM-VERSION $(VERSION)' \ >> version.texi regenerate: mv ANNOUNCE README INSTALL NEWS .. gorm-1.2.24/Documentation/Gorm.cp0000644000000000000000000000152013426755056015316 0ustar rootroot\entry{features}{15}{features} \entry{preferences}{21}{preferences} \entry{defaults}{21}{defaults} \entry{NSOwner}{22}{NSOwner} \entry{NSFirst}{22}{NSFirst} \entry{NSFont}{22}{NSFont} \entry{NSResponder}{22}{NSResponder} \entry{Responder Chain}{22}{Responder Chain} \entry{Creating Classes}{24}{Creating Classes} \entry{Classes Outline View}{24}{Classes Outline View} \entry{Class Edit Inspector}{25}{Class Edit Inspector} \entry{Instantiating}{25}{Instantiating} \entry{Connections}{25}{Connections} \entry{Saving}{26}{Saving} \entry{Setting the NSOwner}{28}{Setting the NSOwner} \entry{Connecting to a Window}{28}{Connecting to a Window} \entry{Name Table}{30}{Name Table} \entry{Custom Class Encoding}{30}{Custom Class Encoding} \entry{Palettes}{31}{Palettes} \entry{Inspectors}{31}{Inspectors} \entry{Editors}{31}{Editors} \entry{FAQ}{33}{FAQ} gorm-1.2.24/Documentation/Gorm.toc0000644000000000000000000001353113426755056015506 0ustar rootroot@unnchapentry{Copying}{10001}{Copying}{1} @unnchapentry{Contributors to Gorm}{10002}{Contributors}{2} @numchapentry{Installing Gorm}{1}{Installation}{3} @numsubsecentry{Required software}{1.0.1}{}{3} @numsubsecentry{Build and Install}{1.0.2}{}{3} @numsubsecentry{Trouble}{1.0.3}{}{3} @numchapentry{News}{2}{News}{4} @numsecentry{Noteworthy changes in version @samp {1.2.24}}{2.1}{}{4} @numsecentry{Noteworthy changes in version @samp {1.2.23}}{2.2}{}{4} @numsecentry{Noteworthy changes in version @samp {1.2.22}}{2.3}{}{4} @numsecentry{Noteworthy changes in version @samp {1.2.20}}{2.4}{}{4} @numsecentry{Noteworthy changes in version @samp {1.2.18}}{2.5}{}{4} @numsecentry{Noteworthy changes in version @samp {1.2.16}}{2.6}{}{4} @numsecentry{Noteworthy changes in version @samp {1.2.12}}{2.7}{}{4} @numsecentry{Noteworthy changes in version @samp {1.2.10}}{2.8}{}{5} @numsecentry{Noteworthy changes in version @samp {1.2.8}}{2.9}{}{5} @numsecentry{Noteworthy changes in version @samp {1.2.6}}{2.10}{}{5} @numsecentry{Noteworthy changes in version @samp {1.2.4}}{2.11}{}{5} @numsecentry{Noteworthy changes in version @samp {1.2.2}}{2.12}{}{6} @numsecentry{Noteworthy changes in version @samp {1.2.1}}{2.13}{}{6} @numsecentry{Noteworthy changes in version @samp {1.2.0}}{2.14}{}{6} @numsecentry{Noteworthy changes in version @samp {1.1.0}}{2.15}{}{6} @numsecentry{Noteworthy changes in version @samp {1.0.8}}{2.16}{}{6} @numsecentry{Noteworthy changes in version @samp {1.0.6}}{2.17}{}{7} @numsecentry{Noteworthy changes in version @samp {1.0.4}}{2.18}{}{7} @numsecentry{Noteworthy changes in version @samp {1.0.2}}{2.19}{}{7} @numsecentry{Noteworthy changes in version @samp {1.0.0}}{2.20}{}{7} @numsecentry{Noteworthy changes in version @samp {0.11.0}}{2.21}{}{7} @numsecentry{Noteworthy changes in version @samp {0.9.10}}{2.22}{}{8} @numsecentry{Noteworthy changes in version @samp {0.9.2}}{2.23}{}{8} @numsecentry{Noteworthy changes in version @samp {0.9.0}}{2.24}{}{9} @numsecentry{Noteworthy changes in version @samp {0.8.0}}{2.25}{}{9} @numsecentry{Noteworthy changes in version @samp {0.7.7}}{2.26}{}{10} @numsecentry{Noteworthy changes in version @samp {0.7.6}}{2.27}{}{10} @numsecentry{Noteworthy changes in version @samp {0.7.5}}{2.28}{}{10} @numsecentry{Noteworthy changes in version @samp {0.6.0}}{2.29}{}{11} @numsecentry{Noteworthy changes in version @samp {0.5.0}}{2.30}{}{11} @numsecentry{Noteworthy changes in version @samp {0.4.0}}{2.31}{}{11} @numsecentry{Noteworthy changes in version @samp {0.3.1}}{2.32}{}{11} @numsecentry{Noteworthy changes in version @samp {0.3.0}}{2.33}{}{11} @numsecentry{Noteworthy changes in version @samp {0.2.5}.}{2.34}{}{12} @numsecentry{Noteworthy changes in version @samp {0.2.0} snapshot.}{2.35}{}{12} @numsecentry{Noteworthy changes in version @samp {0.1.0}}{2.36}{}{12} @numsecentry{Noteworthy changes in version @samp {0.0.3}}{2.37}{}{13} @numsecentry{Noteworthy changes in version @samp {0.0.2}}{2.38}{}{13} @numsecentry{Noteworthy changes in version @samp {0.0.1}}{2.39}{}{13} @numsubsecentry{To Do}{2.39.1}{}{14} @numchapentry{Overview}{3}{Overview}{15} @numsecentry{What You Must Know To Understand This Manual}{3.1}{}{15} @numsubsecentry{Major features}{3.1.1}{}{15} @numsecentry{About this Manual}{3.2}{}{15} @numchapentry{Usage}{4}{Usage}{16} @numchapentry{Implementation}{5}{Implementation}{20} @numsecentry{Notes on implementation}{5.1}{}{20} @numsecentry{Connections}{5.2}{}{20} @numchapentry{Preferences}{6}{Preferences}{21} @numchapentry{Basic Concepts}{7}{}{22} @numsecentry{Getting Started}{7.1}{}{22} @numsecentry{What is NSOwner?}{7.2}{}{22} @numsecentry{What is NSFirst?}{7.3}{}{22} @numsubsecentry{Responders}{7.3.1}{}{22} @numsubsecentry{The Responder Chain}{7.3.2}{}{22} @numsecentry{What is NSFont?}{7.4}{}{23} @numsecentry{The awakeFromNib method}{7.5}{}{23} @numchapentry{Creating an Application}{8}{}{24} @numsecentry{Creating A Class In Gorm}{8.1}{}{24} @numsecentry{Using The Outline View}{8.2}{}{24} @numsubsecentry{Adding Outlets In The Outline View}{8.2.1}{}{24} @numsubsecentry{Adding Actions In the Outline View}{8.2.2}{}{25} @numsecentry{Using The Class Edit Inspector}{8.3}{}{25} @numsubsecentry{Adding Outlets In The Inspector}{8.3.1}{}{25} @numsubsecentry{Adding Actions In the Inspector}{8.3.2}{}{25} @numsecentry{Instantiating The Class}{8.4}{}{25} @numsecentry{Adding Controls from the Palette}{8.5}{}{25} @numsubsecentry{Making Connections}{8.5.1}{}{25} @numsecentry{Saving the gorm file}{8.6}{}{26} @numsecentry{Generating .h and .m files from the class.}{8.7}{}{26} @numchapentry{Another Simple Application}{9}{}{28} @numsecentry{Adding Menu Items}{9.1}{}{28} @numsecentry{Making a Controller-based .gorm file}{9.2}{}{28} @numsubsecentry{Add the init method to WinController}{9.2.1}{}{29} @numsecentry{Running the App}{9.3}{}{29} @numchapentry{Advanced Topics}{10}{}{30} @numsecentry{Gorm file format}{10.1}{}{30} @numsubsecentry{The Name Table}{10.1.1}{}{30} @numsubsecentry{The Custom Class Table}{10.1.2}{}{30} @numsubsecentry{Connections Array}{10.1.3}{}{30} @numsecentry{Custom Class Encoding}{10.2}{}{30} @numsubsecentry{Restrictions On Your Custom Subclasses}{10.2.1}{}{31} @numsecentry{Palettes}{10.3}{}{31} @numsubsecentry{Graphical Objects In A Palette}{10.3.1}{}{31} @numsubsecentry{Non Graphical Objects In A Palette}{10.3.2}{}{32} @numchapentry{Frequently Asked Questions}{11}{}{33} @numsubsecentry{Should I modify the data.classes of file in the .gorm package?}{11.0.1}{}{33} @numsubsecentry{Why does my application crash when I add additional attributes for encoding in encodeWithCoder: or initWithCoder: in my custom class?}{11.0.2}{}{33} @numsubsecentry{Why does Gorm give me a warning when I have bundles specified in GSAppKitUserBundles?}{11.0.3}{}{33} @numsubsecentry{How can I avoid loading GSAppKitUserBundles in Gorm?}{11.0.4}{}{33} @numsubsecentry{How can I change the font for a widget?}{11.0.5}{}{33} @unnchapentry{Concept Index}{10003}{Concept Index}{35} gorm-1.2.24/Documentation/NEWS0000644000000000000000000006151013426755207014570 0ustar rootroot1 Noteworthy changes in version '1.2.24' ======================================== * Fix for issue where Gorm was referencing private variables. This caused a crash when built with clang. 2 Noteworthy changes in version '1.2.23' ======================================== * Fix for issue where NSPanel was being saved as an NSWindow in some cases. 3 Noteworthy changes in version '1.2.22' ======================================== * Fix for bug#45040: Fix allows Gorm custom class functionality to work normally on OpenBSD/NetBSD/FreeBSD. * Fixes for Solaris * Memory leak fixes. * Objective-C parser improvements. 4 Noteworthy changes in version '1.2.20' ======================================== * Bug fixes #28643, #32827 * Corrected issues with updating document when there is a change. * Add cells as objects to the document so they can be properly edited. * Changes to prevent recursive frame change notifications. 5 Noteworthy changes in version '1.2.18' ======================================== * Code cleanup, removal of warnings when building with clang. * Removal of use of call to objc_poseAs(..) which was preventing building with newer runtimes. * Stability improvements. 6 Noteworthy changes in version '1.2.16' ======================================== * XIB reading. * Bug fixes for standalone views. * Stability changes. 7 Noteworthy changes in version '1.2.12' ======================================== Requires: gnustep-base-1.20.0, gnustep-gui-0.18.0. Reason: Parts of the runtime which Gorm used were refactored and it was necessary to make corresponding changes in Gorm to use it. * Correction for bugs #27295, 28643, 29085. * Added a DO server which allows modification of internal data structures using a simple interface. * Tooltips now show the object name and the object type for informational purposes. * Opens default document when using NSWindows95InterfaceStyle. 8 Noteworthy changes in version '1.2.10' ======================================== * Correction for bug #25401 * Correction for some nib loading issues. * Limited support for standalone views. * Fixes for various bugs. 9 Noteworthy changes in version '1.2.8' ======================================= Requires: gnustep-gui-0.16.0. It will not compile without this version of the library. Reason: Nib and Gorm loading were moved to a more sensible file structure. Additionally, Nib loading was refactored. * Correction for bug#25001. * Correction for bug#25111. * Fixes for nib encoding to use the proper template class instances. * Changes to use new headers. 10 Noteworthy changes in version '1.2.6' ======================================== * Corrections to allow Gorm to build and run properly on the Darwin operating system. * Corrected sizing of Controls Palette. * Added preliminary support for IBPlugin API. * Added preferences panel to add plugins dynamically. * Moved load/save logic for gorm, gmodel, and nib to plugins. This change should allow plugins for virtually any format to be read/written by Gorm. * Correction for bug#24146, bug#23889. 11 Noteworthy changes in version '1.2.4' ======================================== Requires: gnustep-gui-0.13.2. Reason: Due to changes in popupbutton controller logic. * Corrected bug#'s 19640, 21845, 19792, 15637, 17892, 18171. * Added error panel to show the detected inconsistencies in a file. * Added preference setting to turn on or off the gorm file repair logic. * Added capability to repair logic to fix window level issue. * Added ruler switch to scroll view inspector. 12 Noteworthy changes in version '1.2.2' ======================================== Requires: gnustep-gui-0.13.0. * Moved to GPLv3 * Added text field to NSTableColumn inspector to allow editing of table column title. * Corrected issue with selection. * Added button modifiers for special keys to button inspectors. * Corrected issue with loading of older gorm files. * Fix to allow Gorm's menus to be Mac-style, but not the one being edited. * Other miscellaneous bug corrections. 13 Noteworthy changes in version '1.2.1' ======================================== * Minor corrections to previous release. 14 Noteworthy changes in version '1.2.0' ======================================== * Corrections to some editors to not change selection if connection is in progress. * Force menu style to NSNextStepInterfaceStyle for editing purposes. * Correction for memory issue when closing document. * Minor bug fixes. 15 Noteworthy changes in version '1.1.0' ======================================== * Changed Gorm architecture to use NSDocument classes. * Abstracted model loading mechanism. This was done by implementing a set of "Loader" and "Builder" classes which handle filling in the data structures in Gorm and exporting them to external formats. * Implemented GormNibWrapperLoader and GormNibWrapperBuilder for reading and writing Cocoa NIB files. * Implemented GormGormWrapperLoader and GormGormWrapperBuilder for reading and writing GNUstep Gorm files * Implemented GormGModelWrapperLoader for reading GNUstep gmodel files. * Updated icon * A number of bugs have been addressed in this release. 16 Noteworthy changes in version '1.0.8' ======================================== This is a bugfix release. * Correction for bug#16587. * Correction for handling non-string identifiers in tableviews. 17 Noteworthy changes in version '1.0.6' ======================================== This is a bugfix release. * Entirely new icon set, for palettes, gorm, gmodel, nib and the application. * Replaced some of the images for the inspectors. * Corrected the following bugs since the last release: #16049, #16050, #15988, #16049, #15989, #15987, #15817, #15780, #15642, #15556. * Changed formatting in some of the inspectors so that they are easier to navigate. 18 Noteworthy changes in version '1.0.4' ======================================== This is a bugfix release. * Corrected some bug#15236 with window style mask settings. * Corrected bug#15236, which caused window fields in the inspector not to update when the field was being edited and a new window is selected. * Corrected bug #15178. * Corrected problem with standalone views 19 Noteworthy changes in version '1.0.2' ======================================== This is a bugfix release. * Fixed some bugs with table column selection. * Corrected a minor problem in the custom class inspector. 20 Noteworthy changes in version '1.0.0' ======================================== PLEASE NOTE: This version of Gorm requires base 1.11.1 and gui 0.10.1 to be installed (gnustep-startup-0.13.0). * All inspectors are now modeled in .gorm files. * Added autosizing to form attributes inspector. * Utilize and maintain parent/child data structure more pervasively * Reorganized code in palettes for cleaner implementation. * Removed code to check for user bundles, since bugs in Camaelon which prompted those changes were fixed long ago. * Added documentation to GormCore 21 Noteworthy changes in version '0.11.0' ========================================= * Improved implementation of canSubstituteForClass: the default implementation of this method tests the classes to see if initWithCoder: or encodeWithCoder: is implemented on a subclass to determine automatically if that class has the same encoding signature as the original class, if it does, it can be substituted. * Improved handling of classes which use cell classes in the custom class inspector. The inspector now autmatically replaces the cell class with the appropriate one when the user selects a given subclass. * Browser based class editor in document panel. This interface is more like the one on OSX. The user now has a choice in preferences to determine which view they would like to use. * Translation tools. The Document->Translate menu allows the user to export string and import strings in the strings format, so that someone can easily translate just the strings in the file and doesn't need to directly edit anything in Gorm. The strings file can then be loaded back into Gorm and all of the relevant strings are updated. * Alignment tools. In the new Layout menu there are options to align views, center views, bring views to front or push them to the back of the view layers. * Implementation of IBViewResourceDraggingDelegate. This allows updating of the pull down in the inspectors panel dynamically. It requires the developer of a palette to implement some code to enable this, as on OSX. * Lots of bugfixes and usability changes are also included in this release. 22 Noteworthy changes in version '0.9.10' ========================================= * Gorm now has a full implementation of canSubstituteForClass: which is used to determine if a class can be substituted in the custom class inspector. This allows classes added in palettes to say whether or not they can be used as a subsitute for a kit class. * Better separation of Gorm into libraries. As well as the ability to compile on windows with a simple: "make install" * Implementation of IBResourceManager class. This class is used by palettes to register drag types to be considered by the top level editors in the document window: object, sound, image, class. * Gorm now is able to switch views in the document window when you drag a file into it. If it's an image it will switch to the image view, if it's a sound, the sound view, an object the object view etc or if it's a class (a .h file) it will switch to the classes view. * Drag and drop parsing of header files (if you hadn't gathered from the previous item). * Better support for standalone views. while the user cannot instantiate from the classes view (there were too many problems with this approach). They can now drag any view from the palette into the objects view and have it work. * A myriad of bug fixes. 23 Noteworthy changes in version '0.9.2' ======================================== NOTE: This is mainly a bugfix release. * Some improvements to the procedure for removing connections. * Corrected various issues with header parsing. * Now closes windows which were opened during interface testing such as font panels, info panels, etc. * Minor corrections to background color for a number of inspectors. * Improvements to gmodel importation. * Better detection of when the user is utilizing a user bundle. Gorm will now warn the user with a panel. * Various improvements in documentation 24 Noteworthy changes in version '0.9.0' ======================================== * Images/Sounds can now be dragged into a matrix cell. * Fully implemented date and number formatter inspectors (these classes still need work in GUI). * Added warning panel if the user attempts to edit a .gorm file created with a newer version of Gorm * Modified data.classes format so that only those actions specifically added to FirstResponder are listed. * Greatly improved gmodel importation. (experimental) * It's now possible to add methods to classes which are not custom. This allows the user to add actions which may have been added to those classes by categories. * Completely new header parser implemented. * Improved cut/paste. It's now possible to use cut/paste from almost anywhere. The class editor now fully supports it. * Improved implementation of some of the InterfaceBuilder framework classes. * Object editor will now remove all instances of a class that has been deleted from the class editor. * The class inspector and the classes view will now apply stricter rules to names of actions and outlets to ensure that they are properly entered. * All inspectors work perfectly with customized colors. * Fixed a number of bugs. 25 Noteworthy changes in version '0.8.0' ======================================== PLEASE NOTE: It is important for this release that you upgrade to Gorm 0.8.0 when using Gorm with the new GNUstep libraries (base-1.10.0 and gui-0.9.4). This version of Gorm contains some features which are reliant on changes made in those versions of the libraries. It is stated in Gorm's documentation (the Gorm.texi file) that this is required, but I felt it important enough to also mention it here so that it is known beyond a reasonable doubt. * New gorm file version. * Full custom palette support * Palette preferences panel to allow the user to configure palettes to load * Experimental: Standalone views. This feature is to allow the use of a view without the need of a containing window. This allows developers to treat these views as they would any other top level object in the .gorm file. This is experimental functionality. * Improved NSTableColumn inspector. The new inspector allows the user to change the data cell used for a given column. This allows the user to select from a list of cell subclasses and set the appropriate custom or non-custom one they want to appear in that column of the table. * Improved layout of some of the inspectors. * Removed old class parser. The parser was somewhat buggy and was actually causing some issues. A new parser will be available in the next version of Gorm. For now users will need to use the class inspector or the outline view to enter classes into Gorm. * Experimental: "File" section. This is essentially a per-file preference which allows the user to control which version of GNUstep a given file will be compatible with. It also lists the potential compatibility issues with the selected version. * Improved controls palette. New items for some of the standard font replace the old "Title" widget which was a System-14 font. The new widgets use a selection of the standard System font to allow the user to easily build a gui using these and reducing the amount of time the user needs to spend fiddling with the font panel. 26 Noteworthy changes in version '0.7.7' ======================================== * Important bugfixes in editor classes. * Rearranged some of the editor classes to be in the palettes which contain the classes they are responsible for editing (GormButtonEditor & GormTabViewEditor). * Image and Sound editors will now display system default images or sounds if they are available. * Document window now uses an NSToolbar (experimental). * Improved the layout of some of the inspectors. * Corrected some minor issues in the inspectors * Added code to allow NSTableView and NSOutlineView to show some data during testing * Gorm will now show an alert panel when a model fails to load or test properly. 27 Noteworthy changes in version '0.7.6' ======================================== This release is mainly a bugfix release for 0.7.5. * Improved .gmodel support * Corrections to previous repair feature. * Important bugfixes for Menu editing. * Important bugfixes for class inspector. 28 Noteworthy changes in version '0.7.5' ======================================== * The 'reparent' feature in the class inspector. This allows the user to change the class hierarchy from within Gorm. * Some important bugfixes * a property 'GormRepairFileOnLoad' (untested) which should repaire old .gorm files... It is HIGHLY recommended that Gorm not be run with this on constantly and that you back up any files which you want to repair before opening them with this option turned on. * A shelf inspector in prefs that lets you expand the size of the names in the object view.. * Support for NSFontManager * A way to restore a complete NSMenu if it's deleted (a new palette entry for NSMenu, not just an item) 29 Noteworthy changes in version '0.6.0' ======================================== * Several major bugs corrected. * Clarified some of the inspectors * Menu items are now properly enabled/disabled when appropriate * More descriptive title displayed when a class is being edited. 30 Noteworthy changes in version '0.5.0' ======================================== * Enabled defer in NSWindow inspector. * Added code to the connection inspector to prevent erroneous connections. * Added support for upgrading of old .gorm files using the older template mechanism * Grouping with an NSSplitView now operates using the relative positions of the views in the window. * Custom Class inspector now shows all subclasses, not just direct custom subclasses. * Bug fixes, eliminated memory leak, code cleanup, etc. 31 Noteworthy changes in version '0.4.0' ======================================== * New Menu and Menu Item inspectors. * User can now specify the Services and Windows menus in the menu inspector. * User can specify a non-custom subclass as well as a custom one to replace the class when the .gorm is unarchived. This can be used to turn a NSTextField into NSSecureTextField and etc. * New set name panel. * New switch control on the font panel to allow the user to specify if a font is encoded with its default size or not. * Added NSStepper and NSStepperCell to the class list to allow creation of custom subclasses. * Windows and Services menus now function correctly. 32 Noteworthy changes in version '0.3.1' ======================================== * New custom class system. * Images now persist correctly when added to a button or view. * Fixed DND * Various bugfixes 33 Noteworthy changes in version '0.3.0' ======================================== * Preferences added. * User can now enable and disable guidlines for easier editing. * Refactored code into GormLib which is a clone of the InterfaceBuilder framework. This facilitates creating palettes and inspectors outside of Gorm. * Added class inspector for easier editing of classes. This gives the user the option to use either the outline view or the inspector to edit new classes. * Added inspectors for the following: NSScrollView, NSProgressIndicator, NSColorWell, GormImageInspector (for images added to .gorm files). * Improved look of NSTabView inspector. * Removed all warnings from the code. * various bug fixes. 34 Noteworthy changes in version '0.2.5'. ========================================= Many fixes and improvements to make the app work better. * Better parsing of headers * Interface code redone as gorm files. * Re-add multiple selection via mouse drag. 35 Noteworthy changes in version '0.2.0' snapshot. ================================================== Gobs of improvements, mostly due to the hard work of Gregory John Casamento and Pierre-Yves Rivaille. Thanks guys! * Custom class support/translations implemented. * Added NSScrollView, NSPopupButton, NSOutlineView, NSTableView editing. * Improved test mode support. * Improved drag n' drop support on many items. * Intelligent placement hints. * Read gmodel files. * More inspectors. * Sound and Image support. * gorm files were changed to directory wrappers for more flexibility. 36 Noteworthy changes in version '0.1.0' ======================================== * load/parses class files for entry into class list. * Pallete/inspectors for date and number formatters * Pallete/Inspectors for browsers and tableViews * NSStepper, NSForm, NSPopupButton pallete item and inspector * Most inspectors greatly improved and fleshed out. * Custom views added. * Ability to edit cells in a matrix. * Ability to change the font of some objects. 37 Noteworthy changes in version '0.0.3' ======================================== * Create stub .m and .h files from new classes * Works better with ProjectCenter. * Handle Ctrl-Drag and Alt-Drag of objects - automatic conversion to matrices and/or increase decrease rows and cols. * Edit NSForms titles in place. * Edit NSBoxes and add subviews. * Support for custom objects. 38 Noteworthy changes in version '0.0.2' ======================================== * Add popup and pulldown menu controls * Menu support * More inspectors * Some support for connections * Much more fleshed out - too numerous to mention. 39 Noteworthy changes in version '0.0.1' ======================================== * 8th December 1999 * 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. gorm-1.2.24/Documentation/Gorm.log0000644000000000000000000001360413426755056015503 0ustar rootrootThis is pdfTeX, Version 3.14159265-2.6-1.40.17 (TeX Live 2016/Debian) (preloaded format=pdfetex 2019.2.7) 7 FEB 2019 02:11 entering extended mode restricted \write18 enabled. file:line:error style messages enabled. %&-line parsing enabled. **\input ./Gorm.texi (./Gorm.texi (/usr/share/texmf/tex/texinfo/texinfo.tex Loading texinfo [version 2016-08-16.20]: \outerhsize=\dimen16 \outervsize=\dimen17 \cornerlong=\dimen18 \cornerthick=\dimen19 \topandbottommargin=\dimen20 \bindingoffset=\dimen21 \normaloffset=\dimen22 \txipagewidth=\dimen23 \txipageheight=\dimen24 \headlinebox=\box16 \footlinebox=\box17 \margin=\insert252 \EMsimple=\toks13 \groupbox=\box18 \groupinvalidhelp=\toks14 \mil=\dimen25 \exdentamount=\skip18 \inmarginspacing=\skip19 \centerpenalty=\count27 pdf, \tempnum=\count28 \lnkcount=\count29 \filename=\toks15 \filenamelength=\count30 \pgn=\count31 \toksA=\toks16 \toksB=\toks17 \toksC=\toks18 \toksD=\toks19 \boxA=\box19 \boxB=\box20 \countA=\count32 \nopdfimagehelp=\toks20 fonts, \sffam=\fam8 \textleading=\dimen26 markup, \fontdepth=\count33 glyphs, \errorbox=\box21 page headings, \titlepagetopglue=\skip20 \titlepagebottomglue=\skip21 \evenheadline=\toks21 \oddheadline=\toks22 \evenfootline=\toks23 \oddfootline=\toks24 tables, \tableindent=\dimen27 \itemindent=\dimen28 \itemmargin=\dimen29 \itemmax=\dimen30 \itemno=\count34 \multitableparskip=\skip22 \multitableparindent=\skip23 \multitablecolspace=\dimen31 \multitablelinespace=\skip24 \colcount=\count35 \everytab=\toks25 conditionals, \doignorecount=\count36 indexing, \dummybox=\box22 \whatsitskip=\skip25 \whatsitpenalty=\count37 \entryrightmargin=\dimen32 \thinshrinkable=\skip26 \entryindexbox=\box23 \delayedbox=\box24 \interbox=\box25 \secondaryindent=\skip27 \partialpage=\box26 \doublecolumnhsize=\dimen33 \savedtopmark=\toks26 \savedfirstmark=\toks27 \balancedcolumns=\box27 sectioning, \unnumberedno=\count38 \chapno=\count39 \secno=\count40 \subsecno=\count41 \subsubsecno=\count42 \appendixno=\count43 \absseclevel=\count44 \secbase=\count45 \chapheadingskip=\skip28 \secheadingskip=\skip29 \subsecheadingskip=\skip30 toc, \tocfile=\write0 \contentsrightmargin=\skip31 \savepageno=\count46 \lastnegativepageno=\count47 \tocindent=\dimen34 environments, \lispnarrowing=\skip32 \envskipamount=\skip33 \circthick=\dimen35 \cartouter=\dimen36 \cartinner=\dimen37 \normbskip=\skip34 \normpskip=\skip35 \normlskip=\skip36 \lskip=\skip37 \rskip=\skip38 \nonfillparindent=\dimen38 \tabw=\dimen39 \verbbox=\box28 defuns, \defbodyindent=\skip39 \defargsindent=\skip40 \deflastargmargin=\skip41 \defunpenalty=\count48 \parencount=\count49 \brackcount=\count50 macros, \savedcatcodeone=\count51 \savedcatcodetwo=\count52 \paramno=\count53 \macname=\toks28 cross references, \auxfile=\write1 \savesfregister=\count54 \toprefbox=\box29 \printedrefnamebox=\box30 \infofilenamebox=\box31 \printedmanualbox=\box32 insertions, \footnoteno=\count55 \SAVEfootins=\box33 \SAVEmargin=\box34 (/usr/share/texlive/texmf-dist/tex/generic/epsf/epsf.tex This is `epsf.tex' v2.7.4 <14 February 2011> \epsffilein=\read1 \epsfframemargin=\dimen40 \epsfframethickness=\dimen41 \epsfrsize=\dimen42 \epsftmp=\dimen43 \epsftsize=\dimen44 \epsfxsize=\dimen45 \epsfysize=\dimen46 \pspoints=\dimen47 ) \noepsfhelp=\toks29 localization, \nolanghelp=\toks30 \countUTFx=\count56 \countUTFy=\count57 \countUTFz=\count58 formatting, \defaultparindent=\dimen48 and turning on texinfo input format.) texinfo.tex: doing @include of version.texi (/home/heron/Development/gnustep/apps-gorm/Documentation/version.texi) [1{/var/ lib/texmf/fonts/map/pdftex/updmap/pdftex.map}] [2] (/home/heron/Development/gnustep/apps-gorm/Documentation/Gorm.toc [-1] [-2]) [-3] (/home/heron/Development/gnustep/apps-gorm/Documentation/Gorm.toc) (/home/heron/Development/gnustep/apps-gorm/Documentation/Gorm.toc) (Copying) \openout0 = `Gorm.toc'. (/home/heron/Development/gnustep/apps-gorm/Documentation/Gorm.aux) \openout1 = `Gorm.aux'. (Contributors to Gorm) [1] Chapter 1 [2] texinfo.tex: doing @include of install.texi (/home/heron/Development/gnustep/apps-gorm/Documentation/install.texi) Chapter 2 [3] texinfo.tex: doing @include of news.texi (/home/heron/Development/gnustep/apps-gorm/Documentation/news.texi [4] [5] [6] [7] [8] [9] [10] [11] [12] [13]) Chapter 3 [14] @cpindfile=@write2 \openout2 = `Gorm.cp'. Writing index file Gorm.cp Chapter 4 [15] [16] [17] [18] Chapter 5 [19] Chapter 6 [20] Chapter 7 [21] [22] Chapter 8 [23] [24] [25] [26] Chapter 9 [27] [28] Chapter 10 [29] [30] [31] Chapter 11 [32] [33] (Concept Index) [34] [35] ) Here is how much of TeX's memory you used: 3407 strings out of 497106 35047 string characters out of 6206933 77944 words of memory out of 5000000 4463 multiletter control sequences out of 15000+600000 32778 words of font info for 114 fonts, out of 8000000 for 9000 51 hyphenation exceptions out of 8191 14i,6n,16p,1063b,755s stack positions out of 5000i,500n,10000p,200000b,80000s Output written on Gorm.pdf (40 pages, 210038 bytes). PDF statistics: 664 PDF objects out of 1000 (max. 8388607) 602 compressed objects within 7 object streams 47 named destinations out of 1000 (max. 500000) 805 words of extra memory for PDF output out of 10000 (max. 10000000) gorm-1.2.24/Documentation/news.texi0000644000000000000000000006036113426744420015736 0ustar rootroot@c -*-texinfo-*- @ifset TEXT-ONLY @include version.texi @end ifset @section Noteworthy changes in version @samp{1.2.24} @itemize @bullet @item Fix for issue where Gorm was referencing private variables. This caused a crash when built with clang. @end itemize @ifclear ANNOUNCE-ONLY @section Noteworthy changes in version @samp{1.2.23} @itemize @bullet @item Fix for issue where NSPanel was being saved as an NSWindow in some cases. @end itemize @section Noteworthy changes in version @samp{1.2.22} @itemize @bullet @item Fix for bug#45040: Fix allows Gorm custom class functionality to work normally on OpenBSD/NetBSD/FreeBSD. @item Fixes for Solaris @item Memory leak fixes. @item Objective-C parser improvements. @end itemize @c ==================================================================== @c Keep the next line just below the list of changes in most recent version. @section Noteworthy changes in version @samp{1.2.20} @itemize @bullet @item Bug fixes #28643, #32827 @item Corrected issues with updating document when there is a change. @item Add cells as objects to the document so they can be properly edited. @item Changes to prevent recursive frame change notifications. @end itemize @section Noteworthy changes in version @samp{1.2.18} @itemize @bullet @item Code cleanup, removal of warnings when building with clang. @item Removal of use of call to objc_poseAs(..) which was preventing building with newer runtimes. @item Stability improvements. @end itemize @section Noteworthy changes in version @samp{1.2.16} @itemize @bullet @item XIB reading. @item Bug fixes for standalone views. @item Stability changes. @end itemize @section Noteworthy changes in version @samp{1.2.12} Requires: gnustep-base-1.20.0, gnustep-gui-0.18.0. Reason: Parts of the runtime which Gorm used were refactored and it was necessary to make corresponding changes in Gorm to use it. @itemize @bullet @item Correction for bugs #27295, 28643, 29085. @item Added a DO server which allows modification of internal data structures using a simple interface. @item Tooltips now show the object name and the object type for informational purposes. @item Opens default document when using NSWindows95InterfaceStyle. @end itemize @section Noteworthy changes in version @samp{1.2.10} @itemize @bullet @item Correction for bug #25401 @item Correction for some nib loading issues. @item Limited support for standalone views. @item Fixes for various bugs. @end itemize @section Noteworthy changes in version @samp{1.2.8} Requires: gnustep-gui-0.16.0. It will not compile without this version of the library. Reason: Nib and Gorm loading were moved to a more sensible file structure. Additionally, Nib loading was refactored. @itemize @bullet @item Correction for bug#25001. @item Correction for bug#25111. @item Fixes for nib encoding to use the proper template class instances. @item Changes to use new headers. @end itemize @section Noteworthy changes in version @samp{1.2.6} @itemize @bullet @item Corrections to allow Gorm to build and run properly on the Darwin operating system. @item Corrected sizing of Controls Palette. @item Added preliminary support for IBPlugin API. @item Added preferences panel to add plugins dynamically. @item Moved load/save logic for gorm, gmodel, and nib to plugins. This change should allow plugins for virtually any format to be read/written by Gorm. @item Correction for bug#24146, bug#23889. @end itemize @section Noteworthy changes in version @samp{1.2.4} Requires: gnustep-gui-0.13.2. Reason: Due to changes in popupbutton controller logic. @itemize @bullet @item Corrected bug#'s 19640, 21845, 19792, 15637, 17892, 18171. @item Added error panel to show the detected inconsistencies in a file. @item Added preference setting to turn on or off the gorm file repair logic. @item Added capability to repair logic to fix window level issue. @item Added ruler switch to scroll view inspector. @end itemize @section Noteworthy changes in version @samp{1.2.2} Requires: gnustep-gui-0.13.0. @itemize @bullet @item Moved to GPLv3 @item Added text field to NSTableColumn inspector to allow editing of table column title. @item Corrected issue with selection. @item Added button modifiers for special keys to button inspectors. @item Corrected issue with loading of older gorm files. @item Fix to allow Gorm's menus to be Mac-style, but not the one being edited. @item Other miscellaneous bug corrections. @end itemize @section Noteworthy changes in version @samp{1.2.1} @itemize @bullet @item Minor corrections to previous release. @end itemize @section Noteworthy changes in version @samp{1.2.0} @itemize @bullet @item Corrections to some editors to not change selection if connection is in progress. @item Force menu style to NSNextStepInterfaceStyle for editing purposes. @item Correction for memory issue when closing document. @item Minor bug fixes. @end itemize @section Noteworthy changes in version @samp{1.1.0} @itemize @bullet @item Changed Gorm architecture to use NSDocument classes. @item Abstracted model loading mechanism. This was done by implementing a set of ``Loader'' and ``Builder'' classes which handle filling in the data structures in Gorm and exporting them to external formats. @item Implemented GormNibWrapperLoader and GormNibWrapperBuilder for reading and writing Cocoa NIB files. @item Implemented GormGormWrapperLoader and GormGormWrapperBuilder for reading and writing GNUstep Gorm files @item Implemented GormGModelWrapperLoader for reading GNUstep gmodel files. @item Updated icon @item A number of bugs have been addressed in this release. @end itemize @section Noteworthy changes in version @samp{1.0.8} This is a bugfix release. @itemize @bullet @item Correction for bug#16587. @item Correction for handling non-string identifiers in tableviews. @end itemize @section Noteworthy changes in version @samp{1.0.6} This is a bugfix release. @itemize @bullet @item Entirely new icon set, for palettes, gorm, gmodel, nib and the application. @item Replaced some of the images for the inspectors. @item Corrected the following bugs since the last release: #16049, #16050, #15988, #16049, #15989, #15987, #15817, #15780, #15642, #15556. @item Changed formatting in some of the inspectors so that they are easier to navigate. @end itemize @section Noteworthy changes in version @samp{1.0.4} This is a bugfix release. @itemize @bullet @item Corrected some bug#15236 with window style mask settings. @item Corrected bug#15236, which caused window fields in the inspector not to update when the field was being edited and a new window is selected. @item Corrected bug #15178. @item Corrected problem with standalone views @end itemize @section Noteworthy changes in version @samp{1.0.2} This is a bugfix release. @itemize @bullet @item Fixed some bugs with table column selection. @item Corrected a minor problem in the custom class inspector. @end itemize @section Noteworthy changes in version @samp{1.0.0} PLEASE NOTE: This version of Gorm requires base 1.11.1 and gui 0.10.1 to be installed (gnustep-startup-0.13.0). @itemize @bullet @item All inspectors are now modeled in .gorm files. @item Added autosizing to form attributes inspector. @item Utilize and maintain parent/child data structure more pervasively @item Reorganized code in palettes for cleaner implementation. @item Removed code to check for user bundles, since bugs in Camaelon which prompted those changes were fixed long ago. @item Added documentation to GormCore @end itemize @section Noteworthy changes in version @samp{0.11.0} @itemize @bullet @item Improved implementation of canSubstituteForClass: the default implementation of this method tests the classes to see if initWithCoder: or encodeWithCoder: is implemented on a subclass to determine automatically if that class has the same encoding signature as the original class, if it does, it can be substituted. @item Improved handling of classes which use cell classes in the custom class inspector. The inspector now autmatically replaces the cell class with the appropriate one when the user selects a given subclass. @item Browser based class editor in document panel. This interface is more like the one on OSX. The user now has a choice in preferences to determine which view they would like to use. @item Translation tools. The Document->Translate menu allows the user to export string and import strings in the strings format, so that someone can easily translate just the strings in the file and doesn't need to directly edit anything in Gorm. The strings file can then be loaded back into Gorm and all of the relevant strings are updated. @item Alignment tools. In the new Layout menu there are options to align views, center views, bring views to front or push them to the back of the view layers. @item Implementation of IBViewResourceDraggingDelegate. This allows updating of the pull down in the inspectors panel dynamically. It requires the developer of a palette to implement some code to enable this, as on OSX. @item Lots of bugfixes and usability changes are also included in this release. @end itemize @section Noteworthy changes in version @samp{0.9.10} @itemize @bullet @item Gorm now has a full implementation of canSubstituteForClass: which is used to determine if a class can be substituted in the custom class inspector. This allows classes added in palettes to say whether or not they can be used as a subsitute for a kit class. @item Better separation of Gorm into libraries. As well as the ability to compile on windows with a simple: "make install" @item Implementation of IBResourceManager class. This class is used by palettes to register drag types to be considered by the top level editors in the document window: object, sound, image, class. @item Gorm now is able to switch views in the document window when you drag a file into it. If it's an image it will switch to the image view, if it's a sound, the sound view, an object the object view etc or if it's a class (a .h file) it will switch to the classes view. @item Drag and drop parsing of header files (if you hadn't gathered from the previous item). @item Better support for standalone views. while the user cannot instantiate from the classes view (there were too many problems with this approach). They can now drag any view from the palette into the objects view and have it work. @item A myriad of bug fixes. @end itemize @section Noteworthy changes in version @samp{0.9.2} NOTE: This is mainly a bugfix release. @itemize @bullet @item Some improvements to the procedure for removing connections. @item Corrected various issues with header parsing. @item Now closes windows which were opened during interface testing such as font panels, info panels, etc. @item Minor corrections to background color for a number of inspectors. @item Improvements to gmodel importation. @item Better detection of when the user is utilizing a user bundle. Gorm will now warn the user with a panel. @item Various improvements in documentation @end itemize @section Noteworthy changes in version @samp{0.9.0} @itemize @bullet @item Images/Sounds can now be dragged into a matrix cell. @item Fully implemented date and number formatter inspectors (these classes still need work in GUI). @item Added warning panel if the user attempts to edit a .gorm file created with a newer version of Gorm @item Modified data.classes format so that only those actions specifically added to FirstResponder are listed. @item Greatly improved gmodel importation. (experimental) @item It's now possible to add methods to classes which are not custom. This allows the user to add actions which may have been added to those classes by categories. @item Completely new header parser implemented. @item Improved cut/paste. It's now possible to use cut/paste from almost anywhere. The class editor now fully supports it. @item Improved implementation of some of the InterfaceBuilder framework classes. @item Object editor will now remove all instances of a class that has been deleted from the class editor. @item The class inspector and the classes view will now apply stricter rules to names of actions and outlets to ensure that they are properly entered. @item All inspectors work perfectly with customized colors. @item Fixed a number of bugs. @end itemize @section Noteworthy changes in version @samp{0.8.0} PLEASE NOTE: It is important for this release that you upgrade to Gorm 0.8.0 when using Gorm with the new GNUstep libraries (base-1.10.0 and gui-0.9.4). This version of Gorm contains some features which are reliant on changes made in those versions of the libraries. It is stated in Gorm's documentation (the Gorm.texi file) that this is required, but I felt it important enough to also mention it here so that it is known beyond a reasonable doubt. @itemize @bullet @item New gorm file version. @item Full custom palette support @item Palette preferences panel to allow the user to configure palettes to load @item Experimental: Standalone views. This feature is to allow the use of a view without the need of a containing window. This allows developers to treat these views as they would any other top level object in the .gorm file. This is experimental functionality. @item Improved NSTableColumn inspector. The new inspector allows the user to change the data cell used for a given column. This allows the user to select from a list of cell subclasses and set the appropriate custom or non-custom one they want to appear in that column of the table. @item Improved layout of some of the inspectors. @item Removed old class parser. The parser was somewhat buggy and was actually causing some issues. A new parser will be available in the next version of Gorm. For now users will need to use the class inspector or the outline view to enter classes into Gorm. @item Experimental: ``File'' section. This is essentially a per-file preference which allows the user to control which version of GNUstep a given file will be compatible with. It also lists the potential compatibility issues with the selected version. @item Improved controls palette. New items for some of the standard font replace the old ``Title'' widget which was a System-14 font. The new widgets use a selection of the standard System font to allow the user to easily build a gui using these and reducing the amount of time the user needs to spend fiddling with the font panel. @end itemize @section Noteworthy changes in version @samp{0.7.7} @itemize @bullet @item Important bugfixes in editor classes. @item Rearranged some of the editor classes to be in the palettes which contain the classes they are responsible for editing (GormButtonEditor & GormTabViewEditor). @item Image and Sound editors will now display system default images or sounds if they are available. @item Document window now uses an NSToolbar (experimental). @item Improved the layout of some of the inspectors. @item Corrected some minor issues in the inspectors @item Added code to allow NSTableView and NSOutlineView to show some data during testing @item Gorm will now show an alert panel when a model fails to load or test properly. @end itemize @section Noteworthy changes in version @samp{0.7.6} This release is mainly a bugfix release for 0.7.5. @itemize @bullet @item Improved .gmodel support @item Corrections to previous repair feature. @item Important bugfixes for Menu editing. @item Important bugfixes for class inspector. @end itemize @section Noteworthy changes in version @samp{0.7.5} @itemize @bullet @item The 'reparent' feature in the class inspector. This allows the user to change the class hierarchy from within Gorm. @item Some important bugfixes @item a property 'GormRepairFileOnLoad' (untested) which should repaire old .gorm files... It is HIGHLY recommended that Gorm not be run with this on constantly and that you back up any files which you want to repair before opening them with this option turned on. @item A shelf inspector in prefs that lets you expand the size of the names in the object view.. @item Support for NSFontManager @item A way to restore a complete NSMenu if it's deleted (a new palette entry for NSMenu, not just an item) @end itemize @section Noteworthy changes in version @samp{0.6.0} @itemize @bullet @item Several major bugs corrected. @item Clarified some of the inspectors @item Menu items are now properly enabled/disabled when appropriate @item More descriptive title displayed when a class is being edited. @end itemize @section Noteworthy changes in version @samp{0.5.0} @itemize @bullet @item Enabled defer in NSWindow inspector. @item Added code to the connection inspector to prevent erroneous connections. @item Added support for upgrading of old .gorm files using the older template mechanism @item Grouping with an NSSplitView now operates using the relative positions of the views in the window. @item Custom Class inspector now shows all subclasses, not just direct custom subclasses. @item Bug fixes, eliminated memory leak, code cleanup, etc. @end itemize @section Noteworthy changes in version @samp{0.4.0} @itemize @bullet @item New Menu and Menu Item inspectors. @item User can now specify the Services and Windows menus in the menu inspector. @item User can specify a non-custom subclass as well as a custom one to replace the class when the .gorm is unarchived. This can be used to turn a NSTextField into NSSecureTextField and etc. @item New set name panel. @item New switch control on the font panel to allow the user to specify if a font is encoded with its default size or not. @item Added NSStepper and NSStepperCell to the class list to allow creation of custom subclasses. @item Windows and Services menus now function correctly. @end itemize @section Noteworthy changes in version @samp{0.3.1} @itemize @bullet @item New custom class system. @item Images now persist correctly when added to a button or view. @item Fixed DND @item Various bugfixes @end itemize @section Noteworthy changes in version @samp{0.3.0} @itemize @bullet @item Preferences added. @item User can now enable and disable guidlines for easier editing. @item Refactored code into GormLib which is a clone of the InterfaceBuilder framework. This facilitates creating palettes and inspectors outside of Gorm. @item Added class inspector for easier editing of classes. This gives the user the option to use either the outline view or the inspector to edit new classes. @item Added inspectors for the following: NSScrollView, NSProgressIndicator, NSColorWell, GormImageInspector (for images added to .gorm files). @item Improved look of NSTabView inspector. @item Removed all warnings from the code. @item various bug fixes. @end itemize @section Noteworthy changes in version @samp{0.2.5}. Many fixes and improvements to make the app work better. @itemize @bullet @item Better parsing of headers @item Interface code redone as gorm files. @item Re-add multiple selection via mouse drag. @end itemize @section Noteworthy changes in version @samp{0.2.0} snapshot. Gobs of improvements, mostly due to the hard work of Gregory John Casamento and Pierre-Yves Rivaille. Thanks guys! @itemize @bullet @item Custom class support/translations implemented. @item Added NSScrollView, NSPopupButton, NSOutlineView, NSTableView editing. @item Improved test mode support. @item Improved drag n' drop support on many items. @item Intelligent placement hints. @item Read gmodel files. @item More inspectors. @item Sound and Image support. @item gorm files were changed to directory wrappers for more flexibility. @end itemize @section Noteworthy changes in version @samp{0.1.0} @itemize @bullet @item load/parses class files for entry into class list. @item Pallete/inspectors for date and number formatters @item Pallete/Inspectors for browsers and tableViews @item NSStepper, NSForm, NSPopupButton pallete item and inspector @item Most inspectors greatly improved and fleshed out. @item Custom views added. @item Ability to edit cells in a matrix. @item Ability to change the font of some objects. @end itemize @section Noteworthy changes in version @samp{0.0.3} @itemize @bullet @item Create stub .m and .h files from new classes @item Works better with ProjectCenter. @item Handle Ctrl-Drag and Alt-Drag of objects - automatic conversion to matrices and/or increase decrease rows and cols. @item Edit NSForms titles in place. @item Edit NSBoxes and add subviews. @item Support for custom objects. @end itemize @section Noteworthy changes in version @samp{0.0.2} @itemize @bullet @item Add popup and pulldown menu controls @item Menu support @item More inspectors @item Some support for connections @item Much more fleshed out - too numerous to mention. @end itemize @section Noteworthy changes in version @samp{0.0.1} @itemize @bullet @item 8th December 1999 @itemize @bullet @item 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. @item Load palettes Loading of palettes works. You can load palettes from the 'Tools' menu. Gorm automatically loads all the palettes from its Resources directory. @item Basic framework So far, the app provides a basic framework that needs fleshing out. @itemize @bullet @item It has a palettes manager object that allows you to select a palette and drag items from the palette into your document. @item It has a special per-document editor object, which keeps track of a matrix of icons representing the top-level objects in the document. @item It has an inspector manager class, which updates the inspector panel when the selected object is changed by an editor. @item It has special inspectors for handling an empty selection or a multiple selection. @end itemize @item 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. @end itemize @item 18 December 1999 @itemize @bullet @item You can drag views from a palette into a window or panel. @item 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. @item You can delete/cut/copy/paste views betwen windows. @item You can move views in a window by clicking on them and dragging. @item You can resize views by clicking on their knobs and dragging. @item You can control-drag to mark source and destination views for a connection. @item 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. @end itemize @item 22 December 1999 @itemize @bullet @item Connections inspector is now working - but it needs some effort to tidy it up. @item 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). @item The view size inspector is working - allowing you to set the size of the subviews within a window. @item The attributes inspector for 'FilesOwner' is working, so you can define the class of the files owner (it defaults to NSApplication). @item There is a crude panel for setting the name of the selected object. @item I've created a couple of new images and got rid of the two NeXT images that were lurking in there. @item 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 ... @end itemize @item 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. @end itemize @end ifclear gorm-1.2.24/Documentation/GormObjCHeaderParser/0000755000000000000000000000000013426755205020014 5ustar rootrootgorm-1.2.24/Documentation/GormObjCHeaderParser/Untitled.html0000644000000000000000000000263113426755205022474 0ustar rootroot The Untitled Project

The Untitled Project

The index below lists the major components of the Untitled documentation.

Title Index
gorm-1.2.24/Documentation/GormObjCHeaderParser/OCHeaderParser.gsdoc0000644000000000000000000000302613426745047023630 0ustar rootroot OCHeaderParser class documentation Software documentation for the OCHeaderParser class GormObjCHeaderParser/OCHeaderParser.h Description forthcoming. Description forthcoming. Description forthcoming. classes Description forthcoming. initWithContentsOfFile: file Description forthcoming. parse Description forthcoming. gorm-1.2.24/Documentation/GormObjCHeaderParser/Untitled.igsdoc0000644000000000000000000002071413426755205023002 0ustar rootroot{ categories = { NSScanner = { OCHeaderParser = "NSScanner+OCHeaderParser"; }; }; category = { "NSScanner(OCHeaderParser)" = "NSScanner+OCHeaderParser"; }; class = { OCClass = OCClass; OCHeaderParser = OCHeaderParser; OCIVar = OCIVar; OCIVarDecl = OCIVarDecl; OCMethod = OCMethod; }; classvars = { OCClass = { className = OCClass; classString = OCClass; isCategory = OCClass; ivars = OCClass; methods = OCClass; protocols = OCClass; superClassName = OCClass; }; OCHeaderParser = { classes = OCHeaderParser; fileData = OCHeaderParser; }; OCIVar = { isOutlet = OCIVar; ivarString = OCIVar; name = OCIVar; }; OCIVarDecl = { ivarString = OCIVarDecl; ivars = OCIVarDecl; }; OCMethod = { isAction = OCMethod; isClassMethod = OCMethod; methodString = OCMethod; name = OCMethod; }; }; function = { lookAhead = ParserFunctions; lookAheadForToken = ParserFunctions; }; ivariable = { className = { OCClass = OCClass; }; classString = { OCClass = OCClass; }; classes = { OCHeaderParser = OCHeaderParser; }; fileData = { OCHeaderParser = OCHeaderParser; }; isAction = { OCMethod = OCMethod; }; isCategory = { OCClass = OCClass; }; isClassMethod = { OCMethod = OCMethod; }; isOutlet = { OCIVar = OCIVar; }; ivarString = { OCIVar = OCIVar; OCIVarDecl = OCIVarDecl; }; ivars = { OCClass = OCClass; OCIVarDecl = OCIVarDecl; }; methodString = { OCMethod = OCMethod; }; methods = { OCClass = OCClass; }; name = { OCIVar = OCIVar; OCMethod = OCMethod; }; protocols = { OCClass = OCClass; }; superClassName = { OCClass = OCClass; }; }; method = { "-addIVar:isOutlet:" = { OCClass = OCClass; }; "-addMethod:isAction:" = { OCClass = OCClass; }; "-className" = { OCClass = OCClass; }; "-classes" = { OCHeaderParser = OCHeaderParser; }; "-initWithContentsOfFile:" = { OCHeaderParser = OCHeaderParser; }; "-initWithString:" = { OCClass = OCClass; OCIVar = OCIVar; OCIVarDecl = OCIVarDecl; OCMethod = OCMethod; }; "-isAction" = { OCMethod = OCMethod; }; "-isCategory" = { OCClass = OCClass; }; "-isClassMethod" = { OCMethod = OCMethod; }; "-isOutlet" = { OCIVar = OCIVar; }; "-ivars" = { OCClass = OCClass; OCIVarDecl = OCIVarDecl; }; "-methods" = { OCClass = OCClass; }; "-name" = { OCIVar = OCIVar; OCMethod = OCMethod; }; "-parse" = { OCClass = OCClass; OCHeaderParser = OCHeaderParser; OCIVar = OCIVar; OCIVarDecl = OCIVarDecl; OCMethod = OCMethod; }; "-scanUpToAndIncludingCharactersFromSet:intoString:" = { "NSScanner(OCHeaderParser)" = "NSScanner+OCHeaderParser"; }; "-scanUpToAndIncludingString:intoString:" = { "NSScanner(OCHeaderParser)" = "NSScanner+OCHeaderParser"; }; "-setClassName:" = { OCClass = OCClass; }; "-setIsAction:" = { OCMethod = OCMethod; }; "-setIsCategory:" = { OCClass = OCClass; }; "-setIsClassMethod:" = { OCMethod = OCMethod; }; "-setIsOutlet:" = { OCIVar = OCIVar; }; "-setName:" = { OCIVar = OCIVar; OCMethod = OCMethod; }; "-setSuperClassName:" = { OCClass = OCClass; }; "-superClassName" = { OCClass = OCClass; }; }; output = { "../GormObjCHeaderParser/NSScanner+OCHeaderParser.h" = ( "GormObjCHeaderParser/NSScanner+OCHeaderParser.gsdoc" ); "../GormObjCHeaderParser/OCClass.h" = ( "GormObjCHeaderParser/OCClass.gsdoc" ); "../GormObjCHeaderParser/OCHeaderParser.h" = ( "GormObjCHeaderParser/OCHeaderParser.gsdoc" ); "../GormObjCHeaderParser/OCIVar.h" = ( "GormObjCHeaderParser/OCIVar.gsdoc" ); "../GormObjCHeaderParser/OCIVarDecl.h" = ( "GormObjCHeaderParser/OCIVarDecl.gsdoc" ); "../GormObjCHeaderParser/OCMethod.h" = ( "GormObjCHeaderParser/OCMethod.gsdoc" ); "../GormObjCHeaderParser/ParserFunctions.h" = ( "GormObjCHeaderParser/ParserFunctions.gsdoc" ); }; source = { "../GormObjCHeaderParser/NSScanner+OCHeaderParser.h" = ( "../GormObjCHeaderParser/NSScanner+OCHeaderParser.h", "../GormObjCHeaderParser/NSScanner+OCHeaderParser.h", "../GormObjCHeaderParser/NSScanner+OCHeaderParser.h", "../GormObjCHeaderParser/NSScanner+OCHeaderParser.h", "../GormObjCHeaderParser/NSScanner+OCHeaderParser.h", "../GormObjCHeaderParser/NSScanner+OCHeaderParser.h", "../GormObjCHeaderParser/NSScanner+OCHeaderParser.m" ); "../GormObjCHeaderParser/OCClass.h" = ( "../GormObjCHeaderParser/OCClass.h", "../GormObjCHeaderParser/OCClass.h", "../GormObjCHeaderParser/OCClass.h", "../GormObjCHeaderParser/OCClass.h", "../GormObjCHeaderParser/OCClass.h", "../GormObjCHeaderParser/OCClass.h", "../GormObjCHeaderParser/OCClass.m" ); "../GormObjCHeaderParser/OCHeaderParser.h" = ( "../GormObjCHeaderParser/OCHeaderParser.h", "../GormObjCHeaderParser/OCHeaderParser.h", "../GormObjCHeaderParser/OCHeaderParser.h", "../GormObjCHeaderParser/OCHeaderParser.h", "../GormObjCHeaderParser/OCHeaderParser.h", "../GormObjCHeaderParser/OCHeaderParser.h", "../GormObjCHeaderParser/OCHeaderParser.m" ); "../GormObjCHeaderParser/OCIVar.h" = ( "../GormObjCHeaderParser/OCIVar.h", "../GormObjCHeaderParser/OCIVar.h", "../GormObjCHeaderParser/OCIVar.h", "../GormObjCHeaderParser/OCIVar.h", "../GormObjCHeaderParser/OCIVar.h", "../GormObjCHeaderParser/OCIVar.h", "../GormObjCHeaderParser/OCIVar.m" ); "../GormObjCHeaderParser/OCIVarDecl.h" = ( "../GormObjCHeaderParser/OCIVarDecl.h", "../GormObjCHeaderParser/OCIVarDecl.h", "../GormObjCHeaderParser/OCIVarDecl.h", "../GormObjCHeaderParser/OCIVarDecl.h", "../GormObjCHeaderParser/OCIVarDecl.h", "../GormObjCHeaderParser/OCIVarDecl.h", "../GormObjCHeaderParser/OCIVarDecl.m" ); "../GormObjCHeaderParser/OCMethod.h" = ( "../GormObjCHeaderParser/OCMethod.h", "../GormObjCHeaderParser/OCMethod.h", "../GormObjCHeaderParser/OCMethod.h", "../GormObjCHeaderParser/OCMethod.h", "../GormObjCHeaderParser/OCMethod.h", "../GormObjCHeaderParser/OCMethod.h", "../GormObjCHeaderParser/OCMethod.m" ); "../GormObjCHeaderParser/ParserFunctions.h" = ( "../GormObjCHeaderParser/ParserFunctions.h", "../GormObjCHeaderParser/ParserFunctions.h", "../GormObjCHeaderParser/ParserFunctions.h", "../GormObjCHeaderParser/ParserFunctions.h", "../GormObjCHeaderParser/ParserFunctions.h", "../GormObjCHeaderParser/ParserFunctions.h", "../GormObjCHeaderParser/ParserFunctions.m" ); }; super = { OCClass = NSObject; OCHeaderParser = NSObject; OCIVar = NSObject; OCIVarDecl = NSObject; OCMethod = NSObject; }; title = { "NSScanner+OCHeaderParser" = "NSScanner+OCHeaderParser documentation"; OCClass = "OCClass class documentation"; OCHeaderParser = "OCHeaderParser class documentation"; OCIVar = "OCIVar class documentation"; OCIVarDecl = "OCIVarDecl class documentation"; OCMethod = "OCMethod class documentation"; ParserFunctions = "ParserFunctions documentation"; }; unitmethods = { "NSScanner(OCHeaderParser)" = { "-scanUpToAndIncludingCharactersFromSet:intoString:" = "NSScanner+OCHeaderParser"; "-scanUpToAndIncludingString:intoString:" = "NSScanner+OCHeaderParser"; }; OCClass = { "-addIVar:isOutlet:" = OCClass; "-addMethod:isAction:" = OCClass; "-className" = OCClass; "-initWithString:" = OCClass; "-isCategory" = OCClass; "-ivars" = OCClass; "-methods" = OCClass; "-parse" = OCClass; "-setClassName:" = OCClass; "-setIsCategory:" = OCClass; "-setSuperClassName:" = OCClass; "-superClassName" = OCClass; }; OCHeaderParser = { "-classes" = OCHeaderParser; "-initWithContentsOfFile:" = OCHeaderParser; "-parse" = OCHeaderParser; }; OCIVar = { "-initWithString:" = OCIVar; "-isOutlet" = OCIVar; "-name" = OCIVar; "-parse" = OCIVar; "-setIsOutlet:" = OCIVar; "-setName:" = OCIVar; }; OCIVarDecl = { "-initWithString:" = OCIVarDecl; "-ivars" = OCIVarDecl; "-parse" = OCIVarDecl; }; OCMethod = { "-initWithString:" = OCMethod; "-isAction" = OCMethod; "-isClassMethod" = OCMethod; "-name" = OCMethod; "-parse" = OCMethod; "-setIsAction:" = OCMethod; "-setIsClassMethod:" = OCMethod; "-setName:" = OCMethod; }; }; }gorm-1.2.24/Documentation/GormObjCHeaderParser/ParserFunctions.gsdoc0000644000000000000000000000161013426745047024163 0ustar rootroot ParserFunctions documentation ParserFunctions functions

stringToScan stringToFind Description forthcoming. stringToScan stringToFind Description forthcoming.
gorm-1.2.24/Documentation/GormObjCHeaderParser/FunctionsTOC.gsdoc0000644000000000000000000000056713426755205023363 0ustar rootroot Functions gorm-1.2.24/Documentation/GormObjCHeaderParser/ClassesTOC.html0000644000000000000000000000152613426755205022651 0ustar rootroot Classes

Classes

OCClass
OCHeaderParser
OCIVar
OCIVarDecl
OCMethod

gorm-1.2.24/Documentation/GormObjCHeaderParser/OCIVar.html0000644000000000000000000001007313426745047021771 0ustar rootroot OCIVar class documentation

OCIVar class documentation

Authors

Generated by heron

Software documentation for the OCIVar class

OCIVar : NSObject

Declared in:
GormObjCHeaderParser/OCIVar.h
Description forthcoming.

Instance Variables

Method summary

initWithString: 

- (id) initWithString: (NSString*)string;
Description forthcoming.

isOutlet 

- (BOOL) isOutlet;
Description forthcoming.

name 

- (NSString*) name;
Description forthcoming.

parse 

- (void) parse;
Description forthcoming.

setIsOutlet: 

- (void) setIsOutlet: (BOOL)flag;
Description forthcoming.

setName: 

- (void) setName: (NSString*)aName;
Description forthcoming.



Instance Variables for OCIVar Class

isOutlet

@protected BOOL isOutlet;
Description forthcoming.

ivarString

@protected NSString* ivarString;
Description forthcoming.

name

@protected NSString* name;
Description forthcoming.





gorm-1.2.24/Documentation/GormObjCHeaderParser/OCHeaderParser.html0000644000000000000000000000576113426745047023505 0ustar rootroot OCHeaderParser class documentation

OCHeaderParser class documentation

Authors

Generated by heron

Software documentation for the OCHeaderParser class

OCHeaderParser : NSObject

Declared in:
GormObjCHeaderParser/OCHeaderParser.h
Description forthcoming.

Instance Variables

Method summary

classes 

- (NSMutableArray*) classes;
Description forthcoming.

initWithContentsOfFile: 

- (id) initWithContentsOfFile: (NSString*)file;
Description forthcoming.

parse 

- (BOOL) parse;
Description forthcoming.



Instance Variables for OCHeaderParser Class

classes

@protected NSMutableArray* classes;
Description forthcoming.

fileData

@protected NSString* fileData;
Description forthcoming.





gorm-1.2.24/Documentation/GormObjCHeaderParser/OrderedSymbolDeclarations.plist0000644000000000000000000000143413426755205026176 0ustar rootroot{ "NSScanner(OCHeaderParser)" = ( "-scanUpToAndIncludingString:intoString:", "-scanUpToAndIncludingCharactersFromSet:intoString:" ); OCClass = ( "-initWithString:", "-methods", "-addMethod:isAction:", "-ivars", "-addIVar:isOutlet:", "-className", "-setClassName:", "-superClassName", "-setSuperClassName:", "-isCategory", "-setIsCategory:", "-parse" ); OCHeaderParser = ( "-initWithContentsOfFile:", "-classes", "-parse" ); OCIVar = ( "-initWithString:", "-name", "-setName:", "-isOutlet", "-setIsOutlet:", "-parse" ); OCIVarDecl = ( "-initWithString:", "-ivars", "-parse" ); OCMethod = ( "-initWithString:", "-name", "-setName:", "-isAction", "-setIsAction:", "-isClassMethod", "-setIsClassMethod:", "-parse" ); }gorm-1.2.24/Documentation/GormObjCHeaderParser/ClassesTOC.gsdoc0000644000000000000000000000056013426755205023001 0ustar rootroot Classes gorm-1.2.24/Documentation/GormObjCHeaderParser/MainIndex.html0000644000000000000000000000063613426755205022563 0ustar rootroot Index

Classes
Functions

(intro)  (unframe)
gorm-1.2.24/Documentation/GormObjCHeaderParser/Untitled.gsdoc0000644000000000000000000000065313426755205022631 0ustar rootroot The Untitled Project

The index below lists the major components of the Untitled documentation.

gorm-1.2.24/Documentation/GormObjCHeaderParser/OCClass.gsdoc0000644000000000000000000001017413426745047022332 0ustar rootroot OCClass class documentation Software documentation for the OCClass class GormObjCHeaderParser/OCClass.h Description forthcoming. Description forthcoming. Description forthcoming. Description forthcoming. Description forthcoming. Description forthcoming. Description forthcoming. Description forthcoming. addIVar: name isOutlet: flag Description forthcoming. addMethod: name isAction: flag Description forthcoming. className Description forthcoming. initWithString: string Description forthcoming. isCategory Description forthcoming. ivars Description forthcoming. methods Description forthcoming. parse Description forthcoming. setClassName: name Description forthcoming. setIsCategory: flag Description forthcoming. setSuperClassName: name Description forthcoming. superClassName Description forthcoming. gorm-1.2.24/Documentation/GormObjCHeaderParser/NSScanner+OCHeaderParser.html0000644000000000000000000000453513426745047025331 0ustar rootroot NSScanner+OCHeaderParser documentation

NSScanner+OCHeaderParser documentation

Authors

Generated by heron

Software documentation for the NSScanner(OCHeaderParser) category

NSScanner(OCHeaderParser)

Declared in:
GormObjCHeaderParser/NSScanner+OCHeaderParser.h
Description forthcoming.
Method summary

scanUpToAndIncludingCharactersFromSet: intoString: 

- (void) scanUpToAndIncludingCharactersFromSet: (NSCharacterSet*)set intoString: (NSString**)buffer;
Description forthcoming.

scanUpToAndIncludingString: intoString: 

- (void) scanUpToAndIncludingString: (NSString*)string intoString: (NSString**)buffer;
Description forthcoming.


gorm-1.2.24/Documentation/GormObjCHeaderParser/NSScanner+OCHeaderParser.gsdoc0000644000000000000000000000246513426745047025464 0ustar rootroot NSScanner+OCHeaderParser documentation Software documentation for the NSScanner(OCHeaderParser) category GormObjCHeaderParser/NSScanner+OCHeaderParser.h Description forthcoming. scanUpToAndIncludingCharactersFromSet: set intoString: buffer Description forthcoming. scanUpToAndIncludingString: string intoString: buffer Description forthcoming. gorm-1.2.24/Documentation/GormObjCHeaderParser/OCClass.html0000644000000000000000000001676513426745047022213 0ustar rootroot OCClass class documentation

OCClass class documentation

Authors

Generated by heron

Software documentation for the OCClass class

OCClass : NSObject

Declared in:
GormObjCHeaderParser/OCClass.h
Description forthcoming.

Instance Variables

Method summary

addIVar: isOutlet: 

- (void) addIVar: (NSString*)name isOutlet: (BOOL)flag;
Description forthcoming.

addMethod: isAction: 

- (void) addMethod: (NSString*)name isAction: (BOOL)flag;
Description forthcoming.

className 

- (NSString*) className;
Description forthcoming.

initWithString: 

- (id) initWithString: (NSString*)string;
Description forthcoming.

isCategory 

- (BOOL) isCategory;
Description forthcoming.

ivars 

- (NSArray*) ivars;
Description forthcoming.

methods 

- (NSArray*) methods;
Description forthcoming.

parse 

- (void) parse;
Description forthcoming.

setClassName: 

- (void) setClassName: (NSString*)name;
Description forthcoming.

setIsCategory: 

- (void) setIsCategory: (BOOL)flag;
Description forthcoming.

setSuperClassName: 

- (void) setSuperClassName: (NSString*)name;
Description forthcoming.

superClassName 

- (NSString*) superClassName;
Description forthcoming.



Instance Variables for OCClass Class

className

@protected NSString* className;
Description forthcoming.

classString

@protected NSString* classString;
Description forthcoming.

isCategory

@protected BOOL isCategory;
Description forthcoming.

ivars

@protected NSMutableArray* ivars;
Description forthcoming.

methods

@protected NSMutableArray* methods;
Description forthcoming.

protocols

@protected NSMutableArray* protocols;
Description forthcoming.

superClassName

@protected NSString* superClassName;
Description forthcoming.





gorm-1.2.24/Documentation/GormObjCHeaderParser/FunctionsTOC.html0000644000000000000000000000114113426755205023215 0ustar rootroot Functions

Functions

lookAhead
lookAheadForToken

gorm-1.2.24/Documentation/GormObjCHeaderParser/index.html0000644000000000000000000000072013426755205022010 0ustar rootroot Autogsdoc-generated Documentation for Untitled gorm-1.2.24/Documentation/GormObjCHeaderParser/OCIVarDecl.html0000644000000000000000000000554613426745047022572 0ustar rootroot OCIVarDecl class documentation

OCIVarDecl class documentation

Authors

Generated by heron

Software documentation for the OCIVarDecl class

OCIVarDecl : NSObject

Declared in:
GormObjCHeaderParser/OCIVarDecl.h
Description forthcoming.

Instance Variables

Method summary

initWithString: 

- (id) initWithString: (NSString*)string;
Description forthcoming.

ivars 

- (NSArray*) ivars;
Description forthcoming.

parse 

- (void) parse;
Description forthcoming.



Instance Variables for OCIVarDecl Class

ivarString

@protected NSString* ivarString;
Description forthcoming.

ivars

@protected NSMutableArray* ivars;
Description forthcoming.





gorm-1.2.24/Documentation/GormObjCHeaderParser/OCIVarDecl.gsdoc0000644000000000000000000000276313426745047022723 0ustar rootroot OCIVarDecl class documentation Software documentation for the OCIVarDecl class GormObjCHeaderParser/OCIVarDecl.h Description forthcoming. Description forthcoming. Description forthcoming. initWithString: string Description forthcoming. ivars Description forthcoming. parse Description forthcoming. gorm-1.2.24/Documentation/GormObjCHeaderParser/OCMethod.html0000644000000000000000000001220613426745047022350 0ustar rootroot OCMethod class documentation

OCMethod class documentation

Authors

Generated by heron

Software documentation for the OCMethod class

OCMethod : NSObject

Declared in:
GormObjCHeaderParser/OCMethod.h
Description forthcoming.

Instance Variables

Method summary

initWithString: 

- (id) initWithString: (NSString*)string;
Description forthcoming.

isAction 

- (BOOL) isAction;
Description forthcoming.

isClassMethod 

- (BOOL) isClassMethod;
Description forthcoming.

name 

- (NSString*) name;
Description forthcoming.

parse 

- (void) parse;
Parse the method.

setIsAction: 

- (void) setIsAction: (BOOL)flag;
Description forthcoming.

setIsClassMethod: 

- (void) setIsClassMethod: (BOOL)flag;
Description forthcoming.

setName: 

- (void) setName: (NSString*)aName;
Description forthcoming.



Instance Variables for OCMethod Class

isAction

@protected BOOL isAction;
Description forthcoming.

isClassMethod

@protected BOOL isClassMethod;
Description forthcoming.

methodString

@protected NSString* methodString;
Description forthcoming.

name

@protected NSString* name;
Description forthcoming.





gorm-1.2.24/Documentation/GormObjCHeaderParser/OCIVar.gsdoc0000644000000000000000000000426313426745047022130 0ustar rootroot OCIVar class documentation Software documentation for the OCIVar class GormObjCHeaderParser/OCIVar.h Description forthcoming. Description forthcoming. Description forthcoming. Description forthcoming. initWithString: string Description forthcoming. isOutlet Description forthcoming. name Description forthcoming. parse Description forthcoming. setIsOutlet: flag Description forthcoming. setName: aName Description forthcoming. gorm-1.2.24/Documentation/GormObjCHeaderParser/OCMethod.gsdoc0000644000000000000000000000531713426745047022510 0ustar rootroot OCMethod class documentation Software documentation for the OCMethod class GormObjCHeaderParser/OCMethod.h Description forthcoming. Description forthcoming. Description forthcoming. Description forthcoming. Description forthcoming. initWithString: string Description forthcoming. isAction Description forthcoming. isClassMethod Description forthcoming. name Description forthcoming. parse Parse the method. setIsAction: flag Description forthcoming. setIsClassMethod: flag Description forthcoming. setName: aName Description forthcoming. gorm-1.2.24/Documentation/GormObjCHeaderParser/ParserFunctions.html0000644000000000000000000000224113426745047024031 0ustar rootroot ParserFunctions documentation

ParserFunctions documentation

Authors

Generated by heron

ParserFunctions functions

lookAhead

BOOL lookAhead(NSString* stringToScan, NSString* stringToFind);
Description forthcoming.

lookAheadForToken

BOOL lookAheadForToken(NSString* stringToScan, NSString* stringToFind);
Description forthcoming.


gorm-1.2.24/Documentation/Gorm.aux0000644000000000000000000000153513426755056015517 0ustar rootroot@xrdef{Copying-title}{Copying} @xrdef{Copying-snt}{} @xrdef{Copying-pg}{1} @xrdef{Contributors-title}{Contributors to Gorm} @xrdef{Contributors-snt}{} @xrdef{Contributors-pg}{2} @xrdef{Installation-title}{Installing Gorm} @xrdef{Installation-snt}{Chapter@tie 1} @xrdef{Installation-pg}{3} @xrdef{News-title}{News} @xrdef{News-snt}{Chapter@tie 2} @xrdef{News-pg}{4} @xrdef{Overview-title}{Overview} @xrdef{Overview-snt}{Chapter@tie 3} @xrdef{Overview-pg}{15} @xrdef{Usage-title}{Usage} @xrdef{Usage-snt}{Chapter@tie 4} @xrdef{Usage-pg}{16} @xrdef{Implementation-title}{Implementation} @xrdef{Implementation-snt}{Chapter@tie 5} @xrdef{Implementation-pg}{20} @xrdef{Preferences-title}{Preferences} @xrdef{Preferences-snt}{Chapter@tie 6} @xrdef{Preferences-pg}{21} @xrdef{Concept Index-title}{Concept Index} @xrdef{Concept Index-snt}{} @xrdef{Concept Index-pg}{35} gorm-1.2.24/Documentation/GNUmakefile0000644000000000000000000000126013410616261016124 0ustar rootrootPACKAGE_NAME = gorm include $(GNUSTEP_MAKEFILES)/common.make include ../Version # The application to be compiled DOCUMENT_NAME = Gorm DOCUMENT_TEXT_NAME = README NEWS INSTALL ANNOUNCE # The texinfo source files to be used Gorm_TEXI_FILES = install.texi news.texi Gorm.texi announce.texi ANNOUNCE_TEXI_FILES = version.texi ANNOUNCE_TEXT_MAIN = announce.texi README_TEXI_FILES = version.texi README_TEXT_MAIN = readme.texi INSTALL_TEXI_FILES = version.texi INSTALL_TEXT_MAIN = install.texi NEWS_TEXI_FILES = version.texi NEWS_TEXT_MAIN = news.texi -include Makefile.preamble -include GNUmakefile.local include $(GNUSTEP_MAKEFILES)/documentation.make -include Makefile.postamble gorm-1.2.24/Documentation/readme.texi0000644000000000000000000000214613410616261016206 0ustar rootroot@c -*-texinfo-*- @ifset TEXT-ONLY @include version.texi @end ifset @section Introduction Read the NEWS file for the latest user visible changes. Read the INSTALL file for installation instructions. Gorm is an acronym for Graphic Object Relationship modeler (or perhaps GNUstep Object Relationship Modeler). Gorm is a clone of the Cocoa (OpenStep/NeXTSTEP) `Interface Builder' application for GNUstep. Gorm is part of the GNUstep project, and is copyrighted by the Free Software Foundation. Gorm is released under the GPL - see the file `COPYING' for details. Documentation for Gorm is located in the Documentation directory. It's also available on the wiki at http://wiki.gnustep.org/index.php/Gorm_Manual. @section Status Gorm is usable and stable. Please report bugs to bug-gnustep@@gnu.org Known problems (things to do) - @enumerate @item Support for IB 3.0 functionality. @item More palettes. @end enumerate @section Acknowledgements @enumerate @item Icons - Mostly by Andrew Lindsay. Gorm application icon by Jesse Ross. @item Code - GormViewKnobs.m adapted from code by Gerrit van Dyk. @end enumerate gorm-1.2.24/Documentation/COPYING0000644000000000000000000004312713410616261015115 0ustar rootroot GNU GENERAL PUBLIC LICENSE Version 2, June 1991 Copyright (C) 1989, 1991 Free Software Foundation, Inc. 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA Everyone is permitted to copy and distribute verbatim copies of this license document, but changing it is not allowed. Preamble The licenses for most software are designed to take away your freedom to share and change it. By contrast, the GNU General Public License is intended to guarantee your freedom to share and change free software--to make sure the software is free for all its users. This General Public License applies to most of the Free Software Foundation's software and to any other program whose authors commit to using it. (Some other Free Software Foundation software is covered by the GNU Library General Public License instead.) You can apply it to your programs, too. When we speak of free software, we are referring to freedom, not price. Our General Public Licenses are designed to make sure that you have the freedom to distribute copies of free software (and charge for this service if you wish), that you receive source code or can get it if you want it, that you can change the software or use pieces of it in new free programs; and that you know you can do these things. To protect your rights, we need to make restrictions that forbid anyone to deny you these rights or to ask you to surrender the rights. These restrictions translate to certain responsibilities for you if you distribute copies of the software, or if you modify it. For example, if you distribute copies of such a program, whether gratis or for a fee, you must give the recipients all the rights that you have. You must make sure that they, too, receive or can get the source code. And you must show them these terms so they know their rights. We protect your rights with two steps: (1) copyright the software, and (2) offer you this license which gives you legal permission to copy, distribute and/or modify the software. Also, for each author's protection and ours, we want to make certain that everyone understands that there is no warranty for this free software. If the software is modified by someone else and passed on, we want its recipients to know that what they have is not the original, so that any problems introduced by others will not reflect on the original authors' reputations. Finally, any free program is threatened constantly by software patents. We wish to avoid the danger that redistributors of a free program will individually obtain patent licenses, in effect making the program proprietary. To prevent this, we have made it clear that any patent must be licensed for everyone's free use or not licensed at all. The precise terms and conditions for copying, distribution and modification follow. GNU GENERAL PUBLIC LICENSE TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION 0. This License applies to any program or other work which contains a notice placed by the copyright holder saying it may be distributed under the terms of this General Public License. The "Program", below, refers to any such program or work, and a "work based on the Program" means either the Program or any derivative work under copyright law: that is to say, a work containing the Program or a portion of it, either verbatim or with modifications and/or translated into another language. (Hereinafter, translation is included without limitation in the term "modification".) Each licensee is addressed as "you". Activities other than copying, distribution and modification are not covered by this License; they are outside its scope. The act of running the Program is not restricted, and the output from the Program is covered only if its contents constitute a work based on the Program (independent of having been made by running the Program). Whether that is true depends on what the Program does. 1. You may copy and distribute verbatim copies of the Program's source code as you receive it, in any medium, provided that you conspicuously and appropriately publish on each copy an appropriate copyright notice and disclaimer of warranty; keep intact all the notices that refer to this License and to the absence of any warranty; and give any other recipients of the Program a copy of this License along with the Program. You may charge a fee for the physical act of transferring a copy, and you may at your option offer warranty protection in exchange for a fee. 2. You may modify your copy or copies of the Program or any portion of it, thus forming a work based on the Program, and copy and distribute such modifications or work under the terms of Section 1 above, provided that you also meet all of these conditions: a) You must cause the modified files to carry prominent notices stating that you changed the files and the date of any change. b) You must cause any work that you distribute or publish, that in whole or in part contains or is derived from the Program or any part thereof, to be licensed as a whole at no charge to all third parties under the terms of this License. c) If the modified program normally reads commands interactively when run, you must cause it, when started running for such interactive use in the most ordinary way, to print or display an announcement including an appropriate copyright notice and a notice that there is no warranty (or else, saying that you provide a warranty) and that users may redistribute the program under these conditions, and telling the user how to view a copy of this License. (Exception: if the Program itself is interactive but does not normally print such an announcement, your work based on the Program is not required to print an announcement.) These requirements apply to the modified work as a whole. If identifiable sections of that work are not derived from the Program, and can be reasonably considered independent and separate works in themselves, then this License, and its terms, do not apply to those sections when you distribute them as separate works. But when you distribute the same sections as part of a whole which is a work based on the Program, the distribution of the whole must be on the terms of this License, whose permissions for other licensees extend to the entire whole, and thus to each and every part regardless of who wrote it. Thus, it is not the intent of this section to claim rights or contest your rights to work written entirely by you; rather, the intent is to exercise the right to control the distribution of derivative or collective works based on the Program. In addition, mere aggregation of another work not based on the Program with the Program (or with a work based on the Program) on a volume of a storage or distribution medium does not bring the other work under the scope of this License. 3. You may copy and distribute the Program (or a work based on it, under Section 2) in object code or executable form under the terms of Sections 1 and 2 above provided that you also do one of the following: a) Accompany it with the complete corresponding machine-readable source code, which must be distributed under the terms of Sections 1 and 2 above on a medium customarily used for software interchange; or, b) Accompany it with a written offer, valid for at least three years, to give any third party, for a charge no more than your cost of physically performing source distribution, a complete machine-readable copy of the corresponding source code, to be distributed under the terms of Sections 1 and 2 above on a medium customarily used for software interchange; or, c) Accompany it with the information you received as to the offer to distribute corresponding source code. (This alternative is allowed only for noncommercial distribution and only if you received the program in object code or executable form with such an offer, in accord with Subsection b above.) The source code for a work means the preferred form of the work for making modifications to it. For an executable work, complete source code means all the source code for all modules it contains, plus any associated interface definition files, plus the scripts used to control compilation and installation of the executable. However, as a special exception, the source code distributed need not include anything that is normally distributed (in either source or binary form) with the major components (compiler, kernel, and so on) of the operating system on which the executable runs, unless that component itself accompanies the executable. If distribution of executable or object code is made by offering access to copy from a designated place, then offering equivalent access to copy the source code from the same place counts as distribution of the source code, even though third parties are not compelled to copy the source along with the object code. 4. You may not copy, modify, sublicense, or distribute the Program except as expressly provided under this License. Any attempt otherwise to copy, modify, sublicense or distribute the Program is void, and will automatically terminate your rights under this License. However, parties who have received copies, or rights, from you under this License will not have their licenses terminated so long as such parties remain in full compliance. 5. You are not required to accept this License, since you have not signed it. However, nothing else grants you permission to modify or distribute the Program or its derivative works. These actions are prohibited by law if you do not accept this License. Therefore, by modifying or distributing the Program (or any work based on the Program), you indicate your acceptance of this License to do so, and all its terms and conditions for copying, distributing or modifying the Program or works based on it. 6. Each time you redistribute the Program (or any work based on the Program), the recipient automatically receives a license from the original licensor to copy, distribute or modify the Program subject to these terms and conditions. You may not impose any further restrictions on the recipients' exercise of the rights granted herein. You are not responsible for enforcing compliance by third parties to this License. 7. If, as a consequence of a court judgment or allegation of patent infringement or for any other reason (not limited to patent issues), conditions are imposed on you (whether by court order, agreement or otherwise) that contradict the conditions of this License, they do not excuse you from the conditions of this License. If you cannot distribute so as to satisfy simultaneously your obligations under this License and any other pertinent obligations, then as a consequence you may not distribute the Program at all. For example, if a patent license would not permit royalty-free redistribution of the Program by all those who receive copies directly or indirectly through you, then the only way you could satisfy both it and this License would be to refrain entirely from distribution of the Program. If any portion of this section is held invalid or unenforceable under any particular circumstance, the balance of the section is intended to apply and the section as a whole is intended to apply in other circumstances. It is not the purpose of this section to induce you to infringe any patents or other property right claims or to contest validity of any such claims; this section has the sole purpose of protecting the integrity of the free software distribution system, which is implemented by public license practices. Many people have made generous contributions to the wide range of software distributed through that system in reliance on consistent application of that system; it is up to the author/donor to decide if he or she is willing to distribute software through any other system and a licensee cannot impose that choice. This section is intended to make thoroughly clear what is believed to be a consequence of the rest of this License. 8. If the distribution and/or use of the Program is restricted in certain countries either by patents or by copyrighted interfaces, the original copyright holder who places the Program under this License may add an explicit geographical distribution limitation excluding those countries, so that distribution is permitted only in or among countries not thus excluded. In such case, this License incorporates the limitation as if written in the body of this License. 9. The Free Software Foundation may publish revised and/or new versions of the General Public License from time to time. Such new versions will be similar in spirit to the present version, but may differ in detail to address new problems or concerns. Each version is given a distinguishing version number. If the Program specifies a version number of this License which applies to it and "any later version", you have the option of following the terms and conditions either of that version or of any later version published by the Free Software Foundation. If the Program does not specify a version number of this License, you may choose any version ever published by the Free Software Foundation. 10. If you wish to incorporate parts of the Program into other free programs whose distribution conditions are different, write to the author to ask for permission. For software which is copyrighted by the Free Software Foundation, write to the Free Software Foundation; we sometimes make exceptions for this. Our decision will be guided by the two goals of preserving the free status of all derivatives of our free software and of promoting the sharing and reuse of software generally. NO WARRANTY 11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING, REPAIR OR CORRECTION. 12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES. END OF TERMS AND CONDITIONS How to Apply These Terms to Your New Programs If you develop a new program, and you want it to be of the greatest possible use to the public, the best way to achieve this is to make it free software which everyone can redistribute and change under these terms. To do so, attach the following notices to the program. It is safest to attach them to the start of each source file to most effectively convey the exclusion of warranty; and each file should have at least the "copyright" line and a pointer to where the full notice is found. Copyright (C) 19yy This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. This program 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 General Public License for more details. You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA Also add information on how to contact you by electronic and paper mail. If the program is interactive, make it output a short notice like this when it starts in an interactive mode: Gnomovision version 69, Copyright (C) 19yy name of author Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'. This is free software, and you are welcome to redistribute it under certain conditions; type `show c' for details. The hypothetical commands `show w' and `show c' should show the appropriate parts of the General Public License. Of course, the commands you use may be called something other than `show w' and `show c'; they could even be mouse-clicks or menu items--whatever suits your program. You should also get your employer (if you work as a programmer) or your school, if any, to sign a "copyright disclaimer" for the program, if necessary. Here is a sample; alter the names: Yoyodyne, Inc., hereby disclaims all copyright interest in the program `Gnomovision' (which makes passes at compilers) written by James Hacker. , 1 April 1989 Ty Coon, President of Vice This General Public License does not permit incorporating your program into proprietary programs. If your program is a subroutine library, you may consider it more useful to permit linking proprietary applications with the library. If this is what you want to do, use the GNU Library General Public License instead of this License. gorm-1.2.24/Documentation/InterfaceBuilder/0000755000000000000000000000000013426755204017272 5ustar rootrootgorm-1.2.24/Documentation/InterfaceBuilder/IBProjects.gsdoc0000644000000000000000000001031413426745045022320 0ustar rootroot IBProjects documentation Software documentation for the IBProjects protocol InterfaceBuilder/IBProjects.h NSObject Description forthcoming. applicationIconForInterfaceStyle: style inLanguage: lang Called to retrieve the application icon to be used for the interface/language combination. containsFileAtPath: path Returns YES, if the file is in the given path. filesForFileType: type Returns an array containing the list of files of that filetype in the project. isAncestorOfProject: child Returns YES, if child is a child of the reciever. isDescendantOfProject: parent Returns YES, if parent is a parent of the receiver. isLive Is there currently a connection to the project. languageForFileAtPath: path Returns the language for the file at the given path. mainNibFileForInterfaceStyle: style inLanguage: lang Returns the nib for the interface/style combination. pathForFilename: filename Locates and returns the location of filename within the receiver. projectDirectory Returns the full path for the project directory. projectManager Returns the project manager object. projectName The name of the project. rootProject The topmost project in the project hierarchy containing the receiver. subprojects Any and all direct subjects of this project. superproject The project which is the direct parent of the receiver. gorm-1.2.24/Documentation/InterfaceBuilder/VariablesTOC.gsdoc0000644000000000000000000000056713426755204022601 0ustar rootroot Variables gorm-1.2.24/Documentation/InterfaceBuilder/IBApplicationAdditions.html0000644000000000000000000001241613426745045024503 0ustar rootroot IBApplicationAdditions documentation

IBApplicationAdditions documentation

Authors

Generated by heron

Software documentation for the NSApplication(GormSpecific) category

NSApplication(GormSpecific)

Declared in:
InterfaceBuilder/IBApplicationAdditions.h
Description forthcoming.
Method summary

linkImage 

- (NSImage*) linkImage;
Image to be displayed with making a link.

startConnecting 

- (void) startConnecting;
Start the connection process.

Software documentation for the IB protocol

IB

Declared in:
InterfaceBuilder/IBApplicationAdditions.h
Conforms to:
NSObject
Description forthcoming.
Method summary

activeDocument 

- (id<IBDocuments>) activeDocument;
Returns the document which is currently being edited.

documentForObject: 

- (id<IBDocuments>) documentForObject: (id)object;
Returns the document which contains this object.

isTestingInterface 

- (BOOL) isTestingInterface;
Returns YES, if the reciever is in testing mode.

selectedObject 

- (id) selectedObject;
Returns the current selection from the current selection owner.

selectionOwner 

- (id<IBSelectionOwners>) selectionOwner;
Returns the current selection owner.


gorm-1.2.24/Documentation/InterfaceBuilder/Untitled.html0000644000000000000000000000613513426755204021755 0ustar rootroot The Untitled Project

The Untitled Project

The index below lists the major components of the Untitled documentation.

Title Index
gorm-1.2.24/Documentation/InterfaceBuilder/IBViewProtocol.gsdoc0000644000000000000000000000433413426745045023170 0ustar rootroot IBViewProtocol documentation Software documentation for the IBViewProtocol protocol InterfaceBuilder/IBViewProtocol.h Description forthcoming. acceptsColor: color atPoint: point Returns YES, if color can be set at the given point in the view. allowsAltDragging Returns YES if receiver can be alt-dragged. depositColor: color atPoint: point Sets color at point in the receiver. maximumSizeFromKnobPosition: knobPosition The maximum size for a knob surrounding the receiver. minimumSizeFromKnobPosition: position The minimum size for a knob surrounding the receiver. placeView: newFrame Places and resizes the receiver using newFrame. gorm-1.2.24/Documentation/InterfaceBuilder/IBViewAdditions.gsdoc0000644000000000000000000000132413426745045023301 0ustar rootroot IBViewAdditions documentation Software documentation for the NSView(IBViewAdditions) category InterfaceBuilder/IBViewAdditions.h IBViewProtocol Description forthcoming. gorm-1.2.24/Documentation/InterfaceBuilder/IBInspectorMode.gsdoc0000644000000000000000000000756013426745045023313 0ustar rootroot IBInspectorMode class documentation Software documentation for the IBInspectorMode class InterfaceBuilder/IBInspectorMode.h IBInspectorMode is an internal class in the InterfaceBuilder framework. Description forthcoming. Description forthcoming. Description forthcoming. Description forthcoming. Description forthcoming. identifier Description forthcoming. initWithIdentifier: ident forObject: obj localizedLabel: lab inspectorClassName: cn ordering: ord Description forthcoming. inspectorClassName Description forthcoming. localizedLabel Description forthcoming. object Description forthcoming. ordering Description forthcoming. setIdentifier: ident Description forthcoming. setInspectorClassName: cn Description forthcoming. setLocalizedLabel: lab Description forthcoming. setObject: obj Description forthcoming. setOrdering: ord Description forthcoming. gorm-1.2.24/Documentation/InterfaceBuilder/Untitled.igsdoc0000644000000000000000000010415213426755204022257 0ustar rootroot{ categories = { NSApplication = { GormSpecific = IBApplicationAdditions; IBConnections = IBConnectors; }; NSCell = { IBCellAdditions = IBCellAdditions; }; NSNibConnector = { IBConnectorsProtocol = IBConnectors; }; NSObject = { IBNibInstantiation = IBConnectors; IBObjectAdditions = IBObjectAdditions; }; NSView = { IBViewAdditions = IBViewAdditions; IBViewResourceDraggingDelegates = IBViewResourceDragging; }; }; category = { "NSApplication(GormSpecific)" = IBApplicationAdditions; "NSApplication(IBConnections)" = IBConnectors; "NSCell(IBCellAdditions)" = IBCellAdditions; "NSNibConnector(IBConnectorsProtocol)" = IBConnectors; "NSObject(IBNibInstantiation)" = IBConnectors; "NSObject(IBObjectAdditions)" = IBObjectAdditions; "NSView(IBViewAdditions)" = IBViewAdditions; "NSView(IBViewResourceDraggingDelegates)" = IBViewResourceDragging; }; class = { IBInspector = IBInspector; IBInspectorManager = IBInspectorManager; IBInspectorMode = IBInspectorMode; IBPalette = IBPalette; IBPlugin = IBPlugin; IBResourceManager = IBResourceManager; }; classvars = { IBInspector = { object = IBInspector; okButton = IBInspector; revertButton = IBInspector; window = IBInspector; }; IBInspectorManager = { currentMode = IBInspectorManager; modes = IBInspectorManager; selectedObject = IBInspectorManager; }; IBInspectorMode = { identifier = IBInspectorMode; inspectorClassName = IBInspectorMode; localizedLabel = IBInspectorMode; object = IBInspectorMode; ordering = IBInspectorMode; }; IBPalette = { icon = IBPalette; originalWindow = IBPalette; paletteDocument = IBPalette; }; IBResourceManager = { document = IBResourceManager; }; }; ivariable = { currentMode = { IBInspectorManager = IBInspectorManager; }; document = { IBResourceManager = IBResourceManager; }; icon = { IBPalette = IBPalette; }; identifier = { IBInspectorMode = IBInspectorMode; }; inspectorClassName = { IBInspectorMode = IBInspectorMode; }; localizedLabel = { IBInspectorMode = IBInspectorMode; }; modes = { IBInspectorManager = IBInspectorManager; }; object = { IBInspector = IBInspector; IBInspectorMode = IBInspectorMode; }; okButton = { IBInspector = IBInspector; }; ordering = { IBInspectorMode = IBInspectorMode; }; originalWindow = { IBPalette = IBPalette; }; paletteDocument = { IBPalette = IBPalette; }; revertButton = { IBInspector = IBInspector; }; selectedObject = { IBInspectorManager = IBInspectorManager; }; window = { IBInspector = IBInspector; }; }; method = { "+acceptedViewResourcePasteboardTypes" = { "NSView(IBViewResourceDraggingDelegates)" = IBViewResourceDragging; }; "+canSubstituteForClass:" = { "(IBObjectProtocol)" = IBObjectProtocol; }; "+objectForView:" = { IBPalette = IBPalette; }; "+registerResourceManagerClass:" = { IBResourceManager = IBResourceManager; }; "+registerResourceManagerClass:forFrameworks:" = { IBResourceManager = IBResourceManager; }; "+registerViewResourceDraggingDelegate:" = { "NSView(IBViewResourceDraggingDelegates)" = IBViewResourceDragging; }; "+registeredResourceManagerClassesForFramework:" = { IBResourceManager = IBResourceManager; }; "+registeredViewResourceDraggingDelegates" = { "NSView(IBViewResourceDraggingDelegates)" = IBViewResourceDragging; }; "+sharedInspectorManager" = { IBInspectorManager = IBInspectorManager; }; "+sharedInstance" = { IBPlugin = IBPlugin; }; "+typeForView:" = { IBPalette = IBPalette; }; "+unregisterViewResourceDraggingDelegate:" = { "NSView(IBViewResourceDraggingDelegates)" = IBViewResourceDragging; }; "-acceptsColor:atPoint:" = { "(IBViewProtocol)" = IBViewProtocol; }; "-acceptsResourcesFromPasteboard:" = { IBResourceManager = IBResourceManager; }; "-acceptsTypeFromArray:" = { "(IBEditors)" = IBEditors; }; "-acceptsViewResourceFromPasteboard:forObject:atPoint:" = { "(IBViewResourceDraggingDelegates)" = IBViewResourceDragging; }; "-actionsOfClass:" = { "(IBDocuments)" = IBDocuments; }; "-activate" = { "(IBEditors)" = IBEditors; }; "-activeDocument" = { "(IB)" = IBApplicationAdditions; }; "-addConnector:" = { "(IBDocuments)" = IBDocuments; }; "-addInspectorModeWithIdentifier:forObject:localizedLabel:inspectorClassName:ordering:" = { IBInspectorManager = IBInspectorManager; }; "-addResources:" = { IBResourceManager = IBResourceManager; }; "-addResourcesFromPasteboard:" = { IBResourceManager = IBResourceManager; }; "-allConnectors" = { "(IBDocuments)" = IBDocuments; }; "-allowsAltDragging" = { "(IBViewProtocol)" = IBViewProtocol; }; "-application:didModifyFileAtPath:" = { IBResourceManager = IBResourceManager; }; "-applicationIconForInterfaceStyle:inLanguage:" = { "(IBProjects)" = IBProjects; }; "-associateObject:type:with:" = { IBPalette = IBPalette; }; "-attachObject:toParent:" = { "(IBDocuments)" = IBDocuments; }; "-attachObjects:toParent:" = { "(IBDocuments)" = IBDocuments; }; "-awakeFromDocument:" = { "(IBObjectProtocol)" = IBObjectProtocol; }; "-cellWillAltDragWithSize:" = { "(IBCellProtocol)" = IBCellProtocol; }; "-classForObject:" = { "(IBDocuments)" = IBDocuments; }; "-classInspectorClassName" = { "(IBObjectProtocol)" = IBObjectProtocol; }; "-close" = { "(IBEditors)" = IBEditors; }; "-closeSubeditors" = { "(IBEditors)" = IBEditors; }; "-connectDestination" = { "NSApplication(IBConnections)" = IBConnectors; }; "-connectInspectorClassName" = { "(IBObjectProtocol)" = IBObjectProtocol; }; "-connectSource" = { "NSApplication(IBConnections)" = IBConnectors; }; "-connectorsForDestination:" = { "(IBDocuments)" = IBDocuments; }; "-connectorsForDestination:ofClass:" = { "(IBDocuments)" = IBDocuments; }; "-connectorsForSource:" = { "(IBDocuments)" = IBDocuments; }; "-connectorsForSource:ofClass:" = { "(IBDocuments)" = IBDocuments; }; "-containsFileAtPath:" = { "(IBProjects)" = IBProjects; }; "-containsObject:" = { "(IBDocuments)" = IBDocuments; }; "-containsObjectWithName:forParent:" = { "(IBDocuments)" = IBDocuments; }; "-copyObject:type:toPasteboard:" = { "(IBDocuments)" = IBDocuments; }; "-copyObjects:type:toPasteboard:" = { "(IBDocuments)" = IBDocuments; }; "-copySelection" = { "(IBSelectionOwners)" = IBEditors; }; "-deactivate" = { "(IBEditors)" = IBEditors; }; "-dealloc" = { IBInspector = IBInspector; IBPalette = IBPalette; }; "-deleteSelection" = { "(IBEditors)" = IBEditors; }; "-depositColor:atPoint:" = { "(IBViewProtocol)" = IBViewProtocol; }; "-depositViewResourceFromPasteboard:onObject:atPoint:" = { "(IBViewResourceDraggingDelegates)" = IBViewResourceDragging; }; "-destination" = { "(IBConnectors)" = IBConnectors; }; "-detachObject:" = { "(IBDocuments)" = IBDocuments; }; "-detachObjects:" = { "(IBDocuments)" = IBDocuments; }; "-didLoad" = { IBPlugin = IBPlugin; }; "-displayConnectionBetween:and:" = { "NSApplication(IBConnections)" = IBConnectors; }; "-document" = { "(IBEditors)" = IBEditors; IBResourceManager = IBResourceManager; }; "-document:didAddDraggedObjects:fromDraggedLibraryView:" = { IBPlugin = IBPlugin; }; "-documentForObject:" = { "(IB)" = IBApplicationAdditions; }; "-documentPath" = { "(IBDocuments)" = IBDocuments; }; "-drawSelection" = { "(IBSelectionOwners)" = IBEditors; }; "-editedObject" = { "(IBEditors)" = IBEditors; }; "-editor:didCloseForObject:" = { "(IBDocuments)" = IBDocuments; }; "-editorClassName" = { "(IBObjectProtocol)" = IBObjectProtocol; }; "-editorForObject:create:" = { "(IBDocuments)" = IBDocuments; }; "-editorForObject:inEditor:create:" = { "(IBDocuments)" = IBDocuments; }; "-establishConnection" = { "(IBConnectors)" = IBConnectors; }; "-fileName" = { "(IBProjectFiles)" = IBProjectFiles; }; "-fileType" = { "(IBProjectFiles)" = IBProjectFiles; }; "-filesForFileType:" = { "(IBProjects)" = IBProjects; }; "-finishInstantiate" = { IBPalette = IBPalette; }; "-helpInspectorClassName" = { "(IBObjectProtocol)" = IBObjectProtocol; }; "-ibIncompatibleProperties" = { "(IBObjectProtocol)" = IBObjectProtocol; }; "-identifier" = { IBInspectorMode = IBInspectorMode; }; "-imageForViewer" = { "(IBObjectProtocol)" = IBObjectProtocol; }; "-indexOfModeWithIdentifier:" = { IBInspectorManager = IBInspectorManager; }; "-initWithDocument:" = { IBResourceManager = IBResourceManager; }; "-initWithIdentifier:forObject:localizedLabel:inspectorClassName:ordering:" = { IBInspectorMode = IBInspectorMode; }; "-initWithObject:inDocument:" = { "(IBEditors)" = IBEditors; }; "-initialFirstResponder" = { IBInspector = IBInspector; }; "-inspectorClassName" = { "(IBObjectProtocol)" = IBObjectProtocol; IBInspectorMode = IBInspectorMode; }; "-isAncestorOfProject:" = { "(IBProjects)" = IBProjects; }; "-isConnecting" = { "NSApplication(IBConnections)" = IBConnectors; }; "-isDescendantOfProject:" = { "(IBProjects)" = IBProjects; }; "-isLive" = { "(IBProjects)" = IBProjects; }; "-isLocalized" = { "(IBProjectFiles)" = IBProjectFiles; }; "-isReadOnly" = { IBResourceManager = IBResourceManager; }; "-isTestingInterface" = { "(IB)" = IBApplicationAdditions; }; "-label" = { "(IBConnectors)" = IBConnectors; IBPlugin = IBPlugin; }; "-language" = { "(IBProjectFiles)" = IBProjectFiles; }; "-languageForFileAtPath:" = { "(IBProjects)" = IBProjects; }; "-libraryNibNames" = { IBPlugin = IBPlugin; }; "-linkImage" = { "NSApplication(GormSpecific)" = IBApplicationAdditions; }; "-localizedLabel" = { IBInspectorMode = IBInspectorMode; }; "-mainNibFileForInterfaceStyle:inLanguage:" = { "(IBProjects)" = IBProjects; }; "-makeSelectionVisible:" = { "(IBSelectionOwners)" = IBEditors; }; "-maximumSizeForCellSize:knobPosition:" = { "(IBCellProtocol)" = IBCellProtocol; }; "-maximumSizeFromKnobPosition:" = { "(IBViewProtocol)" = IBViewProtocol; }; "-minimumSizeForCellSize:knobPosition:" = { "(IBCellProtocol)" = IBCellProtocol; }; "-minimumSizeFromKnobPosition:" = { "(IBViewProtocol)" = IBViewProtocol; }; "-nameForObject:" = { "(IBDocuments)" = IBDocuments; }; "-nibInstantiate" = { "(IBConnectors)" = IBConnectors; "NSObject(IBNibInstantiation)" = IBConnectors; }; "-nibLabel:" = { "(IBObjectProtocol)" = IBObjectProtocol; }; "-object" = { IBInspector = IBInspector; IBInspectorMode = IBInspectorMode; }; "-objectForName:" = { "(IBDocuments)" = IBDocuments; }; "-objectNameForInspectorTitle" = { "(IBObjectProtocol)" = IBObjectProtocol; }; "-objects" = { "(IBDocuments)" = IBDocuments; }; "-ok:" = { IBInspector = IBInspector; }; "-okButton" = { IBInspector = IBInspector; }; "-openEditorForObject:" = { "(IBDocuments)" = IBDocuments; }; "-openSubeditorForObject:" = { "(IBEditors)" = IBEditors; }; "-orderFront" = { "(IBEditors)" = IBEditors; }; "-ordering" = { IBInspectorMode = IBInspectorMode; }; "-originalWindow" = { IBPalette = IBPalette; }; "-outletsOfClass:" = { "(IBDocuments)" = IBDocuments; }; "-paletteDocument" = { IBPalette = IBPalette; }; "-paletteIcon" = { IBPalette = IBPalette; }; "-parentEditorForEditor:" = { "(IBDocuments)" = IBDocuments; }; "-parentOfObject:" = { "(IBDocuments)" = IBDocuments; }; "-pasteInSelection" = { "(IBEditors)" = IBEditors; }; "-pasteType:fromPasteboard:parent:" = { "(IBDocuments)" = IBDocuments; }; "-pasteboardObjectsForDraggedLibraryView:" = { IBPlugin = IBPlugin; }; "-path" = { "(IBProjectFiles)" = IBProjectFiles; }; "-pathForFilename:" = { "(IBProjects)" = IBProjects; }; "-placeView:" = { "(IBViewProtocol)" = IBViewProtocol; }; "-preferencesView" = { IBPlugin = IBPlugin; }; "-project" = { "(IBProjectFiles)" = IBProjectFiles; }; "-project:didAddFile:" = { IBResourceManager = IBResourceManager; }; "-project:didChangeLocalizationOfFile:" = { IBResourceManager = IBResourceManager; }; "-project:didRemoveFile:" = { IBResourceManager = IBResourceManager; }; "-projectDirectory" = { "(IBProjects)" = IBProjects; }; "-projectManager" = { "(IBProjects)" = IBProjects; }; "-projectName" = { "(IBProjects)" = IBProjects; }; "-removeConnector:" = { "(IBDocuments)" = IBDocuments; }; "-replaceObject:withObject:" = { "(IBConnectors)" = IBConnectors; }; "-requiredFrameworks" = { IBPlugin = IBPlugin; }; "-resetObject:" = { "(IBEditors)" = IBEditors; }; "-resignSelectionForEditor:" = { "(IBDocuments)" = IBDocuments; }; "-resourceFileTypes" = { IBResourceManager = IBResourceManager; }; "-resourcePasteboardTypes" = { IBResourceManager = IBResourceManager; }; "-resourcesForObjects:" = { IBResourceManager = IBResourceManager; }; "-revert:" = { IBInspector = IBInspector; }; "-revertButton" = { IBInspector = IBInspector; }; "-rootProject" = { "(IBProjects)" = IBProjects; }; "-selectObjects:" = { "(IBSelectionOwners)" = IBEditors; }; "-selectedObject" = { "(IB)" = IBApplicationAdditions; }; "-selection" = { "(IBSelectionOwners)" = IBEditors; }; "-selectionCount" = { "(IBSelectionOwners)" = IBEditors; }; "-selectionOwner" = { "(IB)" = IBApplicationAdditions; }; "-setDestination:" = { "(IBConnectors)" = IBConnectors; }; "-setIdentifier:" = { IBInspectorMode = IBInspectorMode; }; "-setInspectorClassName:" = { IBInspectorMode = IBInspectorMode; }; "-setLabel:" = { "(IBConnectors)" = IBConnectors; }; "-setLocalizedLabel:" = { IBInspectorMode = IBInspectorMode; }; "-setName:forObject:" = { "(IBDocuments)" = IBDocuments; }; "-setObject:" = { IBInspector = IBInspector; IBInspectorMode = IBInspectorMode; }; "-setOrdering:" = { IBInspectorMode = IBInspectorMode; }; "-setSelectionFromEditor:" = { "(IBDocuments)" = IBDocuments; }; "-setSource:" = { "(IBConnectors)" = IBConnectors; }; "-shouldDrawConnectionFrame" = { "(IBViewResourceDraggingDelegates)" = IBViewResourceDragging; }; "-sizeInspectorClassName" = { "(IBObjectProtocol)" = IBObjectProtocol; }; "-source" = { "(IBConnectors)" = IBConnectors; }; "-startConnecting" = { "NSApplication(GormSpecific)" = IBApplicationAdditions; }; "-stopConnecting" = { "NSApplication(IBConnections)" = IBConnectors; }; "-subprojects" = { "(IBProjects)" = IBProjects; }; "-superproject" = { "(IBProjects)" = IBProjects; }; "-textDidBeginEditing:" = { IBInspector = IBInspector; }; "-touch" = { "(IBDocuments)" = IBDocuments; }; "-touch:" = { IBInspector = IBInspector; }; "-validateEditing" = { "(IBEditors)" = IBEditors; }; "-viewResourcePasteboardTypes" = { "(IBViewResourceDraggingDelegates)" = IBViewResourceDragging; }; "-wantsButtons" = { IBInspector = IBInspector; }; "-wantsSelection" = { "(IBEditors)" = IBEditors; }; "-willUnload" = { IBPlugin = IBPlugin; }; "-window" = { "(IBEditors)" = IBEditors; IBInspector = IBInspector; }; "-writeToDocumentPath:" = { IBResourceManager = IBResourceManager; }; }; output = { "../GormLib/IBApplicationAdditions.h" = ( "InterfaceBuilder/IBApplicationAdditions.gsdoc" ); "../GormLib/IBCellAdditions.h" = ( "InterfaceBuilder/IBCellAdditions.gsdoc" ); "../GormLib/IBCellProtocol.h" = ( "InterfaceBuilder/IBCellProtocol.gsdoc" ); "../GormLib/IBConnectors.h" = ( "InterfaceBuilder/IBConnectors.gsdoc" ); "../GormLib/IBDefines.h" = ( "InterfaceBuilder/IBDefines.gsdoc" ); "../GormLib/IBDocuments.h" = ( "InterfaceBuilder/IBDocuments.gsdoc" ); "../GormLib/IBEditors.h" = ( "InterfaceBuilder/IBEditors.gsdoc" ); "../GormLib/IBInspector.h" = ( "InterfaceBuilder/IBInspector.gsdoc" ); "../GormLib/IBInspectorManager.h" = ( "InterfaceBuilder/IBInspectorManager.gsdoc" ); "../GormLib/IBInspectorMode.h" = ( "InterfaceBuilder/IBInspectorMode.gsdoc" ); "../GormLib/IBObjectAdditions.h" = ( "InterfaceBuilder/IBObjectAdditions.gsdoc" ); "../GormLib/IBObjectProtocol.h" = ( "InterfaceBuilder/IBObjectProtocol.gsdoc" ); "../GormLib/IBPalette.h" = ( "InterfaceBuilder/IBPalette.gsdoc" ); "../GormLib/IBPlugin.h" = ( "InterfaceBuilder/IBPlugin.gsdoc" ); "../GormLib/IBProjectFiles.h" = ( "InterfaceBuilder/IBProjectFiles.gsdoc" ); "../GormLib/IBProjects.h" = ( "InterfaceBuilder/IBProjects.gsdoc" ); "../GormLib/IBResourceManager.h" = ( "InterfaceBuilder/IBResourceManager.gsdoc" ); "../GormLib/IBSystem.h" = ( "InterfaceBuilder/IBSystem.gsdoc" ); "../GormLib/IBViewAdditions.h" = ( "InterfaceBuilder/IBViewAdditions.gsdoc" ); "../GormLib/IBViewProtocol.h" = ( "InterfaceBuilder/IBViewProtocol.gsdoc" ); "../GormLib/IBViewResourceDragging.h" = ( "InterfaceBuilder/IBViewResourceDragging.gsdoc" ); "../GormLib/InterfaceBuilder.h" = ( "InterfaceBuilder/InterfaceBuilder.gsdoc" ); }; protocol = { "(IB)" = IBApplicationAdditions; "(IBCellProtocol)" = IBCellProtocol; "(IBConnectors)" = IBConnectors; "(IBDocuments)" = IBDocuments; "(IBEditors)" = IBEditors; "(IBObjectProtocol)" = IBObjectProtocol; "(IBProjectFiles)" = IBProjectFiles; "(IBProjects)" = IBProjects; "(IBSelectionOwners)" = IBEditors; "(IBViewProtocol)" = IBViewProtocol; "(IBViewResourceDraggingDelegates)" = IBViewResourceDragging; "NSObject(IBObjectAdditions)" = IBObjectAdditions; }; source = { "../GormLib/IBApplicationAdditions.h" = ( "../GormLib/IBApplicationAdditions.h", "../GormLib/IBApplicationAdditions.h", "../GormLib/IBApplicationAdditions.h", "../GormLib/IBApplicationAdditions.h", "../GormLib/IBApplicationAdditions.h", "../GormLib/IBApplicationAdditions.h", "../GormLib/IBApplicationAdditions.m" ); "../GormLib/IBCellAdditions.h" = ( "../GormLib/IBCellAdditions.h", "../GormLib/IBCellAdditions.h", "../GormLib/IBCellAdditions.h", "../GormLib/IBCellAdditions.h", "../GormLib/IBCellAdditions.h", "../GormLib/IBCellAdditions.h", "../GormLib/IBCellAdditions.h" ); "../GormLib/IBCellProtocol.h" = ( "../GormLib/IBCellProtocol.h", "../GormLib/IBCellProtocol.h", "../GormLib/IBCellProtocol.h", "../GormLib/IBCellProtocol.h", "../GormLib/IBCellProtocol.h", "../GormLib/IBCellProtocol.h", "../GormLib/IBCellProtocol.h" ); "../GormLib/IBConnectors.h" = ( "../GormLib/IBConnectors.h", "../GormLib/IBConnectors.h", "../GormLib/IBConnectors.h", "../GormLib/IBConnectors.h", "../GormLib/IBConnectors.h", "../GormLib/IBConnectors.h", "../GormLib/IBConnectors.m" ); "../GormLib/IBDefines.h" = ( "../GormLib/IBDefines.h", "../GormLib/IBDefines.h", "../GormLib/IBDefines.h", "../GormLib/IBDefines.h", "../GormLib/IBDefines.h", "../GormLib/IBDefines.h", "../GormLib/IBDefines.h" ); "../GormLib/IBDocuments.h" = ( "../GormLib/IBDocuments.h", "../GormLib/IBDocuments.h", "../GormLib/IBDocuments.h", "../GormLib/IBDocuments.h", "../GormLib/IBDocuments.h", "../GormLib/IBDocuments.h", "../GormLib/IBDocuments.m" ); "../GormLib/IBEditors.h" = ( "../GormLib/IBEditors.h", "../GormLib/IBEditors.h", "../GormLib/IBEditors.h", "../GormLib/IBEditors.h", "../GormLib/IBEditors.h", "../GormLib/IBEditors.h", "../GormLib/IBEditors.m" ); "../GormLib/IBInspector.h" = ( "../GormLib/IBInspector.h", "../GormLib/IBInspector.h", "../GormLib/IBInspector.h", "../GormLib/IBInspector.h", "../GormLib/IBInspector.h", "../GormLib/IBInspector.h", "../GormLib/IBInspector.m" ); "../GormLib/IBInspectorManager.h" = ( "../GormLib/IBInspectorManager.h", "../GormLib/IBInspectorManager.h", "../GormLib/IBInspectorManager.h", "../GormLib/IBInspectorManager.h", "../GormLib/IBInspectorManager.h", "../GormLib/IBInspectorManager.h", "../GormLib/IBInspectorManager.m" ); "../GormLib/IBInspectorMode.h" = ( "../GormLib/IBInspectorMode.h", "../GormLib/IBInspectorMode.h", "../GormLib/IBInspectorMode.h", "../GormLib/IBInspectorMode.h", "../GormLib/IBInspectorMode.h", "../GormLib/IBInspectorMode.h", "../GormLib/IBInspectorMode.m" ); "../GormLib/IBObjectAdditions.h" = ( "../GormLib/IBObjectAdditions.h", "../GormLib/IBObjectAdditions.h", "../GormLib/IBObjectAdditions.h", "../GormLib/IBObjectAdditions.h", "../GormLib/IBObjectAdditions.h", "../GormLib/IBObjectAdditions.h", "../GormLib/IBObjectAdditions.m" ); "../GormLib/IBObjectProtocol.h" = ( "../GormLib/IBObjectProtocol.h", "../GormLib/IBObjectProtocol.h", "../GormLib/IBObjectProtocol.h", "../GormLib/IBObjectProtocol.h", "../GormLib/IBObjectProtocol.h", "../GormLib/IBObjectProtocol.h", "../GormLib/IBObjectProtocol.h" ); "../GormLib/IBPalette.h" = ( "../GormLib/IBPalette.h", "../GormLib/IBPalette.h", "../GormLib/IBPalette.h", "../GormLib/IBPalette.h", "../GormLib/IBPalette.h", "../GormLib/IBPalette.h", "../GormLib/IBPalette.m" ); "../GormLib/IBPlugin.h" = ( "../GormLib/IBPlugin.h", "../GormLib/IBPlugin.h", "../GormLib/IBPlugin.h", "../GormLib/IBPlugin.h", "../GormLib/IBPlugin.h", "../GormLib/IBPlugin.h", "../GormLib/IBPlugin.m" ); "../GormLib/IBProjectFiles.h" = ( "../GormLib/IBProjectFiles.h", "../GormLib/IBProjectFiles.h", "../GormLib/IBProjectFiles.h", "../GormLib/IBProjectFiles.h", "../GormLib/IBProjectFiles.h", "../GormLib/IBProjectFiles.h", "../GormLib/IBProjectFiles.h" ); "../GormLib/IBProjects.h" = ( "../GormLib/IBProjects.h", "../GormLib/IBProjects.h", "../GormLib/IBProjects.h", "../GormLib/IBProjects.h", "../GormLib/IBProjects.h", "../GormLib/IBProjects.h", "../GormLib/IBProjects.h" ); "../GormLib/IBResourceManager.h" = ( "../GormLib/IBResourceManager.h", "../GormLib/IBResourceManager.h", "../GormLib/IBResourceManager.h", "../GormLib/IBResourceManager.h", "../GormLib/IBResourceManager.h", "../GormLib/IBResourceManager.h", "../GormLib/IBResourceManager.m" ); "../GormLib/IBSystem.h" = ( "../GormLib/IBSystem.h", "../GormLib/IBSystem.h", "../GormLib/IBSystem.h", "../GormLib/IBSystem.h", "../GormLib/IBSystem.h", "../GormLib/IBSystem.h", "../GormLib/IBSystem.h" ); "../GormLib/IBViewAdditions.h" = ( "../GormLib/IBViewAdditions.h", "../GormLib/IBViewAdditions.h", "../GormLib/IBViewAdditions.h", "../GormLib/IBViewAdditions.h", "../GormLib/IBViewAdditions.h", "../GormLib/IBViewAdditions.h", "../GormLib/IBViewAdditions.h" ); "../GormLib/IBViewProtocol.h" = ( "../GormLib/IBViewProtocol.h", "../GormLib/IBViewProtocol.h", "../GormLib/IBViewProtocol.h", "../GormLib/IBViewProtocol.h", "../GormLib/IBViewProtocol.h", "../GormLib/IBViewProtocol.h", "../GormLib/IBViewProtocol.h" ); "../GormLib/IBViewResourceDragging.h" = ( "../GormLib/IBViewResourceDragging.h", "../GormLib/IBViewResourceDragging.h", "../GormLib/IBViewResourceDragging.h", "../GormLib/IBViewResourceDragging.h", "../GormLib/IBViewResourceDragging.h", "../GormLib/IBViewResourceDragging.h", "../GormLib/IBViewResourceDragging.h" ); "../GormLib/InterfaceBuilder.h" = ( "../GormLib/InterfaceBuilder.h", "../GormLib/InterfaceBuilder.h", "../GormLib/InterfaceBuilder.h", "../GormLib/InterfaceBuilder.h", "../GormLib/InterfaceBuilder.h", "../GormLib/InterfaceBuilder.h", "../GormLib/InterfaceBuilder.h" ); }; super = { IBInspector = NSObject; IBInspectorManager = NSObject; IBInspectorMode = NSObject; IBPalette = NSObject; IBPlugin = NSObject; IBResourceManager = NSObject; }; title = { IBApplicationAdditions = "IBApplicationAdditions documentation"; IBCellAdditions = "IBCellAdditions documentation"; IBCellProtocol = "IBCellProtocol documentation"; IBConnectors = "IBConnectors documentation"; IBDefines = "IBDefines documentation"; IBDocuments = "IBDocuments documentation"; IBEditors = "IBEditors documentation"; IBInspector = "IBInspector class documentation"; IBInspectorManager = "IBInspectorManager class documentation"; IBInspectorMode = "IBInspectorMode class documentation"; IBObjectAdditions = "IBObjectAdditions documentation"; IBObjectProtocol = "IBObjectProtocol documentation"; IBPalette = "IBPalette class documentation"; IBPlugin = "IBPlugin class documentation"; IBProjectFiles = "IBProjectFiles documentation"; IBProjects = "IBProjects documentation"; IBResourceManager = "IBResourceManager class documentation"; IBViewAdditions = "IBViewAdditions documentation"; IBViewProtocol = "IBViewProtocol documentation"; IBViewResourceDragging = "IBViewResourceDragging documentation"; }; type = { IBKnobPosition = IBDefines; }; unitmethods = { "(IB)" = { "-activeDocument" = IBApplicationAdditions; "-documentForObject:" = IBApplicationAdditions; "-isTestingInterface" = IBApplicationAdditions; "-selectedObject" = IBApplicationAdditions; "-selectionOwner" = IBApplicationAdditions; }; "(IBCellProtocol)" = { "-cellWillAltDragWithSize:" = IBCellProtocol; "-maximumSizeForCellSize:knobPosition:" = IBCellProtocol; "-minimumSizeForCellSize:knobPosition:" = IBCellProtocol; }; "(IBConnectors)" = { "-destination" = IBConnectors; "-establishConnection" = IBConnectors; "-label" = IBConnectors; "-nibInstantiate" = IBConnectors; "-replaceObject:withObject:" = IBConnectors; "-setDestination:" = IBConnectors; "-setLabel:" = IBConnectors; "-setSource:" = IBConnectors; "-source" = IBConnectors; }; "(IBDocuments)" = { "-actionsOfClass:" = IBDocuments; "-addConnector:" = IBDocuments; "-allConnectors" = IBDocuments; "-attachObject:toParent:" = IBDocuments; "-attachObjects:toParent:" = IBDocuments; "-classForObject:" = IBDocuments; "-connectorsForDestination:" = IBDocuments; "-connectorsForDestination:ofClass:" = IBDocuments; "-connectorsForSource:" = IBDocuments; "-connectorsForSource:ofClass:" = IBDocuments; "-containsObject:" = IBDocuments; "-containsObjectWithName:forParent:" = IBDocuments; "-copyObject:type:toPasteboard:" = IBDocuments; "-copyObjects:type:toPasteboard:" = IBDocuments; "-detachObject:" = IBDocuments; "-detachObjects:" = IBDocuments; "-documentPath" = IBDocuments; "-editor:didCloseForObject:" = IBDocuments; "-editorForObject:create:" = IBDocuments; "-editorForObject:inEditor:create:" = IBDocuments; "-nameForObject:" = IBDocuments; "-objectForName:" = IBDocuments; "-objects" = IBDocuments; "-openEditorForObject:" = IBDocuments; "-outletsOfClass:" = IBDocuments; "-parentEditorForEditor:" = IBDocuments; "-parentOfObject:" = IBDocuments; "-pasteType:fromPasteboard:parent:" = IBDocuments; "-removeConnector:" = IBDocuments; "-resignSelectionForEditor:" = IBDocuments; "-setName:forObject:" = IBDocuments; "-setSelectionFromEditor:" = IBDocuments; "-touch" = IBDocuments; }; "(IBEditors)" = { "-acceptsTypeFromArray:" = IBEditors; "-activate" = IBEditors; "-close" = IBEditors; "-closeSubeditors" = IBEditors; "-deactivate" = IBEditors; "-deleteSelection" = IBEditors; "-document" = IBEditors; "-editedObject" = IBEditors; "-initWithObject:inDocument:" = IBEditors; "-openSubeditorForObject:" = IBEditors; "-orderFront" = IBEditors; "-pasteInSelection" = IBEditors; "-resetObject:" = IBEditors; "-validateEditing" = IBEditors; "-wantsSelection" = IBEditors; "-window" = IBEditors; }; "(IBObjectProtocol)" = { "+canSubstituteForClass:" = IBObjectProtocol; "-awakeFromDocument:" = IBObjectProtocol; "-classInspectorClassName" = IBObjectProtocol; "-connectInspectorClassName" = IBObjectProtocol; "-editorClassName" = IBObjectProtocol; "-helpInspectorClassName" = IBObjectProtocol; "-ibIncompatibleProperties" = IBObjectProtocol; "-imageForViewer" = IBObjectProtocol; "-inspectorClassName" = IBObjectProtocol; "-nibLabel:" = IBObjectProtocol; "-objectNameForInspectorTitle" = IBObjectProtocol; "-sizeInspectorClassName" = IBObjectProtocol; }; "(IBProjectFiles)" = { "-fileName" = IBProjectFiles; "-fileType" = IBProjectFiles; "-isLocalized" = IBProjectFiles; "-language" = IBProjectFiles; "-path" = IBProjectFiles; "-project" = IBProjectFiles; }; "(IBProjects)" = { "-applicationIconForInterfaceStyle:inLanguage:" = IBProjects; "-containsFileAtPath:" = IBProjects; "-filesForFileType:" = IBProjects; "-isAncestorOfProject:" = IBProjects; "-isDescendantOfProject:" = IBProjects; "-isLive" = IBProjects; "-languageForFileAtPath:" = IBProjects; "-mainNibFileForInterfaceStyle:inLanguage:" = IBProjects; "-pathForFilename:" = IBProjects; "-projectDirectory" = IBProjects; "-projectManager" = IBProjects; "-projectName" = IBProjects; "-rootProject" = IBProjects; "-subprojects" = IBProjects; "-superproject" = IBProjects; }; "(IBSelectionOwners)" = { "-copySelection" = IBEditors; "-drawSelection" = IBEditors; "-makeSelectionVisible:" = IBEditors; "-selectObjects:" = IBEditors; "-selection" = IBEditors; "-selectionCount" = IBEditors; }; "(IBViewProtocol)" = { "-acceptsColor:atPoint:" = IBViewProtocol; "-allowsAltDragging" = IBViewProtocol; "-depositColor:atPoint:" = IBViewProtocol; "-maximumSizeFromKnobPosition:" = IBViewProtocol; "-minimumSizeFromKnobPosition:" = IBViewProtocol; "-placeView:" = IBViewProtocol; }; "(IBViewResourceDraggingDelegates)" = { "-acceptsViewResourceFromPasteboard:forObject:atPoint:" = IBViewResourceDragging; "-depositViewResourceFromPasteboard:onObject:atPoint:" = IBViewResourceDragging; "-shouldDrawConnectionFrame" = IBViewResourceDragging; "-viewResourcePasteboardTypes" = IBViewResourceDragging; }; IBInspector = { "-dealloc" = IBInspector; "-initialFirstResponder" = IBInspector; "-object" = IBInspector; "-ok:" = IBInspector; "-okButton" = IBInspector; "-revert:" = IBInspector; "-revertButton" = IBInspector; "-setObject:" = IBInspector; "-textDidBeginEditing:" = IBInspector; "-touch:" = IBInspector; "-wantsButtons" = IBInspector; "-window" = IBInspector; }; IBInspectorManager = { "+sharedInspectorManager" = IBInspectorManager; "-addInspectorModeWithIdentifier:forObject:localizedLabel:inspectorClassName:ordering:" = IBInspectorManager; "-indexOfModeWithIdentifier:" = IBInspectorManager; }; IBInspectorMode = { "-identifier" = IBInspectorMode; "-initWithIdentifier:forObject:localizedLabel:inspectorClassName:ordering:" = IBInspectorMode; "-inspectorClassName" = IBInspectorMode; "-localizedLabel" = IBInspectorMode; "-object" = IBInspectorMode; "-ordering" = IBInspectorMode; "-setIdentifier:" = IBInspectorMode; "-setInspectorClassName:" = IBInspectorMode; "-setLocalizedLabel:" = IBInspectorMode; "-setObject:" = IBInspectorMode; "-setOrdering:" = IBInspectorMode; }; IBPalette = { "+objectForView:" = IBPalette; "+typeForView:" = IBPalette; "-associateObject:type:with:" = IBPalette; "-dealloc" = IBPalette; "-finishInstantiate" = IBPalette; "-originalWindow" = IBPalette; "-paletteDocument" = IBPalette; "-paletteIcon" = IBPalette; }; IBPlugin = { "+sharedInstance" = IBPlugin; "-didLoad" = IBPlugin; "-document:didAddDraggedObjects:fromDraggedLibraryView:" = IBPlugin; "-label" = IBPlugin; "-libraryNibNames" = IBPlugin; "-pasteboardObjectsForDraggedLibraryView:" = IBPlugin; "-preferencesView" = IBPlugin; "-requiredFrameworks" = IBPlugin; "-willUnload" = IBPlugin; }; IBResourceManager = { "+registerResourceManagerClass:" = IBResourceManager; "+registerResourceManagerClass:forFrameworks:" = IBResourceManager; "+registeredResourceManagerClassesForFramework:" = IBResourceManager; "-acceptsResourcesFromPasteboard:" = IBResourceManager; "-addResources:" = IBResourceManager; "-addResourcesFromPasteboard:" = IBResourceManager; "-application:didModifyFileAtPath:" = IBResourceManager; "-document" = IBResourceManager; "-initWithDocument:" = IBResourceManager; "-isReadOnly" = IBResourceManager; "-project:didAddFile:" = IBResourceManager; "-project:didChangeLocalizationOfFile:" = IBResourceManager; "-project:didRemoveFile:" = IBResourceManager; "-resourceFileTypes" = IBResourceManager; "-resourcePasteboardTypes" = IBResourceManager; "-resourcesForObjects:" = IBResourceManager; "-writeToDocumentPath:" = IBResourceManager; }; "NSApplication(GormSpecific)" = { "-linkImage" = IBApplicationAdditions; "-startConnecting" = IBApplicationAdditions; }; "NSApplication(IBConnections)" = { "-connectDestination" = IBConnectors; "-connectSource" = IBConnectors; "-displayConnectionBetween:and:" = IBConnectors; "-isConnecting" = IBConnectors; "-stopConnecting" = IBConnectors; }; "NSObject(IBNibInstantiation)" = { "-nibInstantiate" = IBConnectors; }; "NSView(IBViewResourceDraggingDelegates)" = { "+acceptedViewResourcePasteboardTypes" = IBViewResourceDragging; "+registerViewResourceDraggingDelegate:" = IBViewResourceDragging; "+registeredViewResourceDraggingDelegates" = IBViewResourceDragging; "+unregisterViewResourceDraggingDelegate:" = IBViewResourceDragging; }; }; variable = { "enum IBResourceLocation" = IBResourceManager; }; }gorm-1.2.24/Documentation/InterfaceBuilder/IBInspectorMode.html0000644000000000000000000001670513426745045023161 0ustar rootroot IBInspectorMode class documentation

IBInspectorMode class documentation

Authors

Generated by heron

Software documentation for the IBInspectorMode class

IBInspectorMode : NSObject

Declared in:
InterfaceBuilder/IBInspectorMode.h
IBInspectorMode is an internal class in the InterfaceBuilder framework.

Instance Variables

Method summary

identifier 

- (NSString*) identifier;
Description forthcoming.

initWithIdentifier: forObject: localizedLabel: inspectorClassName: ordering: 

- (id) initWithIdentifier: (NSString*)ident forObject: (id)obj localizedLabel: (NSString*)lab inspectorClassName: (NSString*)cn ordering: (float)ord;
Description forthcoming.

inspectorClassName 

- (NSString*) inspectorClassName;
Description forthcoming.

localizedLabel 

- (NSString*) localizedLabel;
Description forthcoming.

object 

- (id) object;
Description forthcoming.

ordering 

- (float) ordering;
Description forthcoming.

setIdentifier: 

- (void) setIdentifier: (NSString*)ident;
Description forthcoming.

setInspectorClassName: 

- (void) setInspectorClassName: (NSString*)cn;
Description forthcoming.

setLocalizedLabel: 

- (void) setLocalizedLabel: (NSString*)lab;
Description forthcoming.

setObject: 

- (void) setObject: (id)obj;
Description forthcoming.

setOrdering: 

- (void) setOrdering: (float)ord;
Description forthcoming.



Instance Variables for IBInspectorMode Class

identifier

@protected NSString* identifier;
Description forthcoming.

inspectorClassName

@protected NSString* inspectorClassName;
Description forthcoming.

localizedLabel

@protected NSString* localizedLabel;
Description forthcoming.

object

@protected id object;
Description forthcoming.

ordering

@protected float ordering;
Description forthcoming.





gorm-1.2.24/Documentation/InterfaceBuilder/ClassesTOC.html0000644000000000000000000000177513426755204022135 0ustar rootroot Classes

Classes

IBInspector
IBInspectorManager
IBInspectorMode
IBPalette
IBPlugin
IBResourceManager

gorm-1.2.24/Documentation/InterfaceBuilder/IBObjectProtocol.html0000644000000000000000000001527713426745045023341 0ustar rootroot IBObjectProtocol documentation

IBObjectProtocol documentation

Authors

Generated by heron

Software documentation for the IBObjectProtocol protocol

IBObjectProtocol

Declared in:
InterfaceBuilder/IBObjectProtocol.h
Description forthcoming.
Method summary

canSubstituteForClass: 

+ (BOOL) canSubstituteForClass: (Class)origClass;
Returns YES, if receiver can be displayed in the custom custom class inspector as a potential class which can be switched to by the receiver.

awakeFromDocument: 

- (void) awakeFromDocument: (id<IBDocuments>)doc;
Called immediate after loading the document into the interface editor application.

classInspectorClassName 

- (NSString*) classInspectorClassName;
Name of class inspector.

connectInspectorClassName 

- (NSString*) connectInspectorClassName;
Name of connection inspector class.

editorClassName 

- (NSString*) editorClassName;
Name of the editor for the receiver.

helpInspectorClassName 

- (NSString*) helpInspectorClassName;
Name of help inspector.

ibIncompatibleProperties 

- (NSArray*) ibIncompatibleProperties;
List of properties not compatible with interface app.

imageForViewer 

- (NSImage*) imageForViewer;
Returns the NSImage to be used to represent an object of the receiver's class in the editor.

inspectorClassName 

- (NSString*) inspectorClassName;
Name of attributes inspector class.

nibLabel: 

- (NSString*) nibLabel: (NSString*)objectName;
Label for the receiver in the model.

objectNameForInspectorTitle 

- (NSString*) objectNameForInspectorTitle;
Title to display in the inspector.

sizeInspectorClassName 

- (NSString*) sizeInspectorClassName;
Name of size inspector.


gorm-1.2.24/Documentation/InterfaceBuilder/IBPlugin.gsdoc0000644000000000000000000000541713426745045021775 0ustar rootroot IBPlugin class documentation Software documentation for the IBPlugin class InterfaceBuilder/IBPlugin.h Description forthcoming. sharedInstance Returns the shared instance of the plugin. didLoad Notifies the receiver that the plugin will be loaded. document: document didAddDraggedObjects: roots fromDraggedLibraryView: view Notifies the receiver that objects were added to the document. label Returns the name of the plugin to be displayed. libraryNibNames Return the array of custom nib filenames. You are required to override this method when creating a plugin. pasteboardObjectsForDraggedLibraryView: view Notifies the receiver that one of it's components will be added to the document. preferencesView The preferences panel/view that should be added to the preferences drop down and preferences window. requiredFrameworks Returns the list of frameworks needed to support the plugin. willUnload Notifies the receiver that the plugin will be unloaded. gorm-1.2.24/Documentation/InterfaceBuilder/OrderedSymbolDeclarations.plist0000644000000000000000000001236713426755204025463 0ustar rootroot{ "(IB)" = ( "-activeDocument", "-isTestingInterface", "-selectionOwner", "-selectedObject", "-documentForObject:" ); "(IBCellProtocol)" = ( "-cellWillAltDragWithSize:", "-maximumSizeForCellSize:knobPosition:", "-minimumSizeForCellSize:knobPosition:" ); "(IBConnectors)" = ( "-destination", "-establishConnection", "-label", "-replaceObject:withObject:", "-source", "-setDestination:", "-setLabel:", "-setSource:", "-nibInstantiate" ); "(IBDocuments)" = ( "-addConnector:", "-allConnectors", "-attachObject:toParent:", "-attachObjects:toParent:", "-connectorsForDestination:", "-connectorsForDestination:ofClass:", "-connectorsForSource:", "-connectorsForSource:ofClass:", "-containsObject:", "-containsObjectWithName:forParent:", "-copyObject:type:toPasteboard:", "-copyObjects:type:toPasteboard:", "-detachObject:", "-detachObjects:", "-documentPath", "-editor:didCloseForObject:", "-editorForObject:create:", "-editorForObject:inEditor:create:", "-nameForObject:", "-objectForName:", "-objects", "-openEditorForObject:", "-parentEditorForEditor:", "-parentOfObject:", "-pasteType:fromPasteboard:parent:", "-removeConnector:", "-resignSelectionForEditor:", "-setName:forObject:", "-setSelectionFromEditor:", "-touch", "-classForObject:", "-actionsOfClass:", "-outletsOfClass:" ); "(IBEditors)" = ( "-acceptsTypeFromArray:", "-activate", "-initWithObject:inDocument:", "-close", "-closeSubeditors", "-deactivate", "-deleteSelection", "-document", "-editedObject", "-orderFront", "-openSubeditorForObject:", "-pasteInSelection", "-resetObject:", "-wantsSelection", "-validateEditing", "-window" ); "(IBObjectProtocol)" = ( "+canSubstituteForClass:", "-awakeFromDocument:", "-imageForViewer", "-nibLabel:", "-objectNameForInspectorTitle", "-inspectorClassName", "-connectInspectorClassName", "-sizeInspectorClassName", "-helpInspectorClassName", "-classInspectorClassName", "-editorClassName", "-ibIncompatibleProperties" ); "(IBProjectFiles)" = ( "-fileName", "-fileType", "-isLocalized", "-language", "-path", "-project" ); "(IBProjects)" = ( "-applicationIconForInterfaceStyle:inLanguage:", "-containsFileAtPath:", "-filesForFileType:", "-isAncestorOfProject:", "-isDescendantOfProject:", "-isLive", "-languageForFileAtPath:", "-mainNibFileForInterfaceStyle:inLanguage:", "-pathForFilename:", "-projectDirectory", "-projectManager", "-projectName", "-rootProject", "-subprojects", "-superproject" ); "(IBSelectionOwners)" = ( "-selectionCount", "-selection", "-drawSelection", "-makeSelectionVisible:", "-selectObjects:", "-copySelection" ); "(IBViewProtocol)" = ( "-acceptsColor:atPoint:", "-allowsAltDragging", "-depositColor:atPoint:", "-maximumSizeFromKnobPosition:", "-minimumSizeFromKnobPosition:", "-placeView:" ); "(IBViewResourceDraggingDelegates)" = ( "-acceptsViewResourceFromPasteboard:forObject:atPoint:", "-depositViewResourceFromPasteboard:onObject:atPoint:", "-shouldDrawConnectionFrame", "-viewResourcePasteboardTypes" ); IBInspector = ( "-dealloc", "-initialFirstResponder", "-object", "-ok:", "-okButton", "-revert:", "-revertButton", "-setObject:", "-textDidBeginEditing:", "-touch:", "-wantsButtons", "-window" ); IBInspectorManager = ( "+sharedInspectorManager", "-addInspectorModeWithIdentifier:forObject:localizedLabel:inspectorClassName:ordering:", "-indexOfModeWithIdentifier:" ); IBInspectorMode = ( "-initWithIdentifier:forObject:localizedLabel:inspectorClassName:ordering:", "-setIdentifier:", "-identifier", "-setObject:", "-object", "-setLocalizedLabel:", "-localizedLabel", "-setInspectorClassName:", "-inspectorClassName", "-setOrdering:", "-ordering" ); IBPalette = ( "+objectForView:", "+typeForView:", "-associateObject:type:with:", "-dealloc", "-finishInstantiate", "-paletteIcon", "-originalWindow", "-paletteDocument" ); IBPlugin = ( "+sharedInstance", "-didLoad", "-willUnload", "-libraryNibNames", "-label", "-preferencesView", "-requiredFrameworks", "-pasteboardObjectsForDraggedLibraryView:", "-document:didAddDraggedObjects:fromDraggedLibraryView:" ); IBResourceManager = ( "+registerResourceManagerClass:", "+registerResourceManagerClass:forFrameworks:", "+registeredResourceManagerClassesForFramework:", "-acceptsResourcesFromPasteboard:", "-addResources:", "-addResourcesFromPasteboard:", "-application:didModifyFileAtPath:", "-document", "-initWithDocument:", "-isReadOnly", "-project:didAddFile:", "-project:didChangeLocalizationOfFile:", "-project:didRemoveFile:", "-resourceFileTypes", "-resourcePasteboardTypes", "-resourcesForObjects:", "-writeToDocumentPath:" ); "NSApplication(GormSpecific)" = ( "-linkImage", "-startConnecting" ); "NSApplication(IBConnections)" = ( "-connectSource", "-connectDestination", "-isConnecting", "-stopConnecting", "-displayConnectionBetween:and:" ); "NSObject(IBNibInstantiation)" = ( "-nibInstantiate" ); "NSView(IBViewResourceDraggingDelegates)" = ( "+acceptedViewResourcePasteboardTypes", "+registeredViewResourceDraggingDelegates", "+registerViewResourceDraggingDelegate:", "+unregisterViewResourceDraggingDelegate:" ); }gorm-1.2.24/Documentation/InterfaceBuilder/IBCellAdditions.html0000644000000000000000000000225713426745045023121 0ustar rootroot IBCellAdditions documentation

IBCellAdditions documentation

Authors

Generated by heron

Software documentation for the NSCell(IBCellAdditions) category

NSCell(IBCellAdditions)

Declared in:
InterfaceBuilder/IBCellAdditions.h
Conforms to:
IBCellProtocol
Description forthcoming.

gorm-1.2.24/Documentation/InterfaceBuilder/ClassesTOC.gsdoc0000644000000000000000000000056013426755204022257 0ustar rootroot Classes gorm-1.2.24/Documentation/InterfaceBuilder/ProtocolsTOC.gsdoc0000644000000000000000000000056713426755204022655 0ustar rootroot Protocols gorm-1.2.24/Documentation/InterfaceBuilder/IBResourceManager.gsdoc0000644000000000000000000001431613426745045023617 0ustar rootroot IBResourceManager class documentation Software documentation for the IBResourceManager class InterfaceBuilder/IBResourceManager.h Description forthcoming. Description forthcoming. registerResourceManagerClass: managerClass Register the given class as a resource mananger. registerResourceManagerClass: managerClass forFrameworks: frameworks Register the given class as a resource manager for the frameworks in the array. registeredResourceManagerClassesForFramework: framework Return an array of classes for the given framework. acceptsResourcesFromPasteboard: pboard Returns YES, if the pasteboard contains a type the resource manager can accept. addResources: resourceList Add a resource. addResourcesFromPasteboard: pboard Add resoures from the pasteboard. Invokes the acceptsResourcesFromPasteboard: method to determine if the resources will be added. application: appName didModifyFileAtPath: path Called by an external application when a file owned by the GUI builder is modified. document Returns the document with which this resource manager is associated. initWithDocument: doc Instantiate the resource manager with the given document object. isReadOnly Returns YES, if this resource manager is non-modifiable. project: proj didAddFile: file Called by an external application when the a file is added. project: proj didChangeLocalizationOfFile: file Called by an external application when the a file changes localization. project: proj didRemoveFile: file Called by an external application when a file is removed. resourceFileTypes Returns a list of resource file types this manager can accept. resourcePasteboardTypes Returns a list of pasteboard types this manager can accept. resourcesForObjects: objs Returns the associated resources for the objects. writeToDocumentPath: path Writes a resource to the document path. IBResourceManager variables

Enumerated type to allow specification of where the resource lives. kNibResource kProjectResource kPaletteResource kSystemResource kUnknownResource
gorm-1.2.24/Documentation/InterfaceBuilder/MainIndex.html0000644000000000000000000000105013426755204022030 0ustar rootroot Index

Classes
Protocols
Types
Variables

(intro)  (unframe)
gorm-1.2.24/Documentation/InterfaceBuilder/IBCellAdditions.gsdoc0000644000000000000000000000132413426745045023246 0ustar rootroot IBCellAdditions documentation Software documentation for the NSCell(IBCellAdditions) category InterfaceBuilder/IBCellAdditions.h IBCellProtocol Description forthcoming. gorm-1.2.24/Documentation/InterfaceBuilder/IBDefines.html0000644000000000000000000000146413426745045021757 0ustar rootroot IBDefines documentation

IBDefines documentation

Authors

Generated by heron

IBDefines types

IBKnobPosition

typedef enum ... IBKnobPosition;
Description forthcoming.


gorm-1.2.24/Documentation/InterfaceBuilder/IBInspector.html0000644000000000000000000001675413426745045022360 0ustar rootroot IBInspector class documentation

IBInspector class documentation

Authors

Generated by heron

Software documentation for the IBInspector class

IBInspector : NSObject

Declared in:
InterfaceBuilder/IBInspector.h
Description forthcoming.

Instance Variables

Method summary

dealloc 

- (void) dealloc;
Releases all the instance variables (apart from the window, which is presumed to release itself when closed) and removes self as an observer of notifications before destroying self.

initialFirstResponder 

- (NSView*) initialFirstResponder;
The first view to be selected in the inspector.

object 

- (id) object;
The object being inspected.

ok: 

- (void) ok: (id)sender;
Action to take when user clicks the OK button

okButton 

- (NSButton*) okButton;
Inspector supplied button - the inspectors manager will position this button for you.

revert: 

- (void) revert: (id)sender;
Action to take when user clicks the revert button

revertButton 

- (NSButton*) revertButton;
Inspector supplied button - the inspectors manager will position this button for you.

setObject: 

- (void) setObject: (id)anObject;
Extension - not in NeXTstep - this message is sent to your inspector to tell it to set its edited object and make any changes to its UI needed.

textDidBeginEditing: 

- (void) textDidBeginEditing: (NSNotification*)aNotification;
Used to take notice of textfields in inspector being updated.

touch: 

- (void) touch: (id)sender;
Method to mark the inspector as needing saving (ok or revert).

wantsButtons 

- (BOOL) wantsButtons;
If this method returns YES, the manager will partition off a section of the inspector panel for display of 'ok' and 'revert' buttons, which your inspector must supply.

window 

- (NSWindow*) window;
The window that the UI of the inspector exists in.



Instance Variables for IBInspector Class

object

@protected id object;
Description forthcoming.

okButton

@protected NSButton* okButton;
Description forthcoming.

revertButton

@protected NSButton* revertButton;
Description forthcoming.

window

@protected NSWindow* window;
Description forthcoming.





gorm-1.2.24/Documentation/InterfaceBuilder/IBPalette.html0000644000000000000000000001373413426745045022003 0ustar rootroot IBPalette class documentation

IBPalette class documentation

Authors

Generated by heron

Software documentation for the IBPalette class

IBPalette : NSObject

Declared in:
InterfaceBuilder/IBPalette.h
Description forthcoming.

Instance Variables

Method summary

objectForView: 

+ (id) objectForView: (NSView*)aView;
Description forthcoming.

typeForView: 

+ (NSString*) typeForView: (NSView*)aView;
Description forthcoming.

associateObject: type: with: 

- (void) associateObject: (id)anObject type: (NSString*)aType with: (NSView*)aView;
Associate a particular object and DnD type with a view - so that Gorm knows to initiate a DnD session with the specified object and type rather than an archived copy of the view itsself and the default type (IBViewPboardType).

dealloc 

- (void) dealloc;
Releases all the instance variables apart from the window (which is presumed to release itsself when closed) and removes self as an observer of notifications before destroying self.

finishInstantiate 

- (void) finishInstantiate;
Method called by GUI builder application when a new palette has been created and its model (nib/gorm) has been loaded. Any palette initialization should be done here.

originalWindow 

- (NSWindow*) originalWindow;
Return the window containing the views that may be dragged from the palette.

paletteDocument 

- (id<IBDocuments>) paletteDocument;
Returns an object representing the palette which conforms to the IBDocuments protocol.

paletteIcon 

- (NSImage*) paletteIcon;
Return the icon representing the palette.



Instance Variables for IBPalette Class

icon

@protected NSImage* icon;
Description forthcoming.

originalWindow

@protected NSWindow* originalWindow;
Description forthcoming.

paletteDocument

@protected id paletteDocument;
Description forthcoming.





gorm-1.2.24/Documentation/InterfaceBuilder/IBViewResourceDragging.html0000644000000000000000000001620413426745045024465 0ustar rootroot IBViewResourceDragging documentation

IBViewResourceDragging documentation

Authors

Generated by heron

Software documentation for the NSView(IBViewResourceDraggingDelegates) category

NSView(IBViewResourceDraggingDelegates)

Declared in:
InterfaceBuilder/IBViewResourceDragging.h
Informal protocol on NSView.
Method summary

acceptedViewResourcePasteboardTypes 

+ (NSArray*) acceptedViewResourcePasteboardTypes;
Types accepted by the view.

registerViewResourceDraggingDelegate: 

+ (void) registerViewResourceDraggingDelegate: (id<IBViewResourceDraggingDelegates>)delegate;
Register a delegate.

registeredViewResourceDraggingDelegates 

+ (NSArray*) registeredViewResourceDraggingDelegates;
Return the list of registered delegates.

unregisterViewResourceDraggingDelegate: 

+ (void) unregisterViewResourceDraggingDelegate: (id<IBViewResourceDraggingDelegates>)delegate;
Remove a previously registered delegate.

Software documentation for the IBViewResourceDraggingDelegates protocol

IBViewResourceDraggingDelegates

Declared in:
InterfaceBuilder/IBViewResourceDragging.h
Protocol describing those methods needed to accept resources.
Method summary

acceptsViewResourceFromPasteboard: forObject: atPoint: 

- (BOOL) acceptsViewResourceFromPasteboard: (NSPasteboard*)pb forObject: (id)obj atPoint: (NSPoint)p;
Ask if the view accepts the object.

depositViewResourceFromPasteboard: onObject: atPoint: 

- (void) depositViewResourceFromPasteboard: (NSPasteboard*)pb onObject: (id)obj atPoint: (NSPoint)p;
Perform the action of depositing the object.

shouldDrawConnectionFrame 

- (BOOL) shouldDrawConnectionFrame;
Should we draw the connection frame when the resource is dragged in?

viewResourcePasteboardTypes 

- (NSArray*) viewResourcePasteboardTypes;
Types of resources accepted by this view.


gorm-1.2.24/Documentation/InterfaceBuilder/IBProjectFiles.html0000644000000000000000000000672513426745045023000 0ustar rootroot IBProjectFiles documentation

IBProjectFiles documentation

Authors

Generated by heron

Software documentation for the IBProjectFiles protocol

IBProjectFiles

Declared in:
InterfaceBuilder/IBProjectFiles.h
Conforms to:
NSObject
Description forthcoming.
Method summary

fileName 

- (NSString*) fileName;
The file name.

fileType 

- (NSString*) fileType;
The file type for this file.

isLocalized 

- (BOOL) isLocalized;
Returns YES, if the file is localized, NO if it's simply in Resources.

language 

- (NSString*) language;
The language

path 

- (NSString*) path;
The path for the file.

project 

- (id<IBProjects>) project;
The project to which this file belongs.


gorm-1.2.24/Documentation/InterfaceBuilder/IBObjectAdditions.html0000644000000000000000000000233213426745045023442 0ustar rootroot IBObjectAdditions documentation

IBObjectAdditions documentation

Authors

Generated by heron

Software documentation for the NSObject(IBObjectAdditions) informal protocol

NSObject(IBObjectAdditions)

Declared in:
InterfaceBuilder/IBObjectAdditions.h
Conforms to:
IBObjectProtocol
Description forthcoming.

gorm-1.2.24/Documentation/InterfaceBuilder/Untitled.gsdoc0000644000000000000000000000065313426755204022107 0ustar rootroot The Untitled Project

The index below lists the major components of the Untitled documentation.

gorm-1.2.24/Documentation/InterfaceBuilder/IBCellProtocol.gsdoc0000644000000000000000000000271713426745045023140 0ustar rootroot IBCellProtocol documentation Software documentation for the IBCellProtocol protocol InterfaceBuilder/IBCellProtocol.h Description forthcoming. cellWillAltDragWithSize: size Called when the cell is about to be alt-dragged. maximumSizeForCellSize: size knobPosition: position Maximum size for the cell. minimumSizeForCellSize: size knobPosition: position Minimum size for the cell. gorm-1.2.24/Documentation/InterfaceBuilder/IBPalette.gsdoc0000644000000000000000000000671413426745045022136 0ustar rootroot IBPalette class documentation Software documentation for the IBPalette class InterfaceBuilder/IBPalette.h Description forthcoming. Description forthcoming. Description forthcoming. Description forthcoming. objectForView: aView Description forthcoming. typeForView: aView Description forthcoming. associateObject: anObject type: aType with: aView Associate a particular object and DnD type with a view - so that Gorm knows to initiate a DnD session with the specified object and type rather than an archived copy of the view itsself and the default type (IBViewPboardType). dealloc Releases all the instance variables apart from the window (which is presumed to release itsself when closed) and removes self as an observer of notifications before destroying self. finishInstantiate Method called by GUI builder application when a new palette has been created and its model (nib/gorm) has been loaded. Any palette initialization should be done here. originalWindow Return the window containing the views that may be dragged from the palette. paletteDocument Returns an object representing the palette which conforms to the IBDocuments protocol. paletteIcon Return the icon representing the palette. gorm-1.2.24/Documentation/InterfaceBuilder/IBProjects.html0000644000000000000000000002033213426745045022166 0ustar rootroot IBProjects documentation

IBProjects documentation

Authors

Generated by heron

Software documentation for the IBProjects protocol

IBProjects

Declared in:
InterfaceBuilder/IBProjects.h
Conforms to:
NSObject
Description forthcoming.
Method summary

applicationIconForInterfaceStyle: inLanguage: 

- (id) applicationIconForInterfaceStyle: (NSInterfaceStyle)style inLanguage: (NSString*)lang;
Called to retrieve the application icon to be used for the interface/language combination.

containsFileAtPath: 

- (BOOL) containsFileAtPath: (NSString*)path;
Returns YES, if the file is in the given path.

filesForFileType: 

- (NSArray*) filesForFileType: (NSString*)type;
Returns an array containing the list of files of that filetype in the project.

isAncestorOfProject: 

- (BOOL) isAncestorOfProject: (id<IBProjects>)child;
Returns YES, if child is a child of the reciever.

isDescendantOfProject: 

- (BOOL) isDescendantOfProject: (id<IBProjects>)parent;
Returns YES, if parent is a parent of the receiver.

isLive 

- (BOOL) isLive;
Is there currently a connection to the project.

languageForFileAtPath: 

- (NSString*) languageForFileAtPath: (NSString*)path;
Returns the language for the file at the given path.

mainNibFileForInterfaceStyle: inLanguage: 

- (id) mainNibFileForInterfaceStyle: (NSInterfaceStyle)style inLanguage: (NSString*)lang;
Returns the nib for the interface/style combination.

pathForFilename: 

- (NSString*) pathForFilename: (NSString*)filename;
Locates and returns the location of filename within the receiver.

projectDirectory 

- (NSString*) projectDirectory;
Returns the full path for the project directory.

projectManager 

- (id) projectManager;
Returns the project manager object.

projectName 

- (NSString*) projectName;
The name of the project.

rootProject 

- (id<IBProjects>) rootProject;
The topmost project in the project hierarchy containing the receiver.

subprojects 

- (NSArray*) subprojects;
Any and all direct subjects of this project.

superproject 

- (id<IBProjects>) superproject;
The project which is the direct parent of the receiver.


gorm-1.2.24/Documentation/InterfaceBuilder/IBProjectFiles.gsdoc0000644000000000000000000000323113426745045023120 0ustar rootroot IBProjectFiles documentation Software documentation for the IBProjectFiles protocol InterfaceBuilder/IBProjectFiles.h NSObject Description forthcoming. fileName The file name. fileType The file type for this file. isLocalized Returns YES, if the file is localized, NO if it's simply in Resources. language The language path The path for the file. project The project to which this file belongs. gorm-1.2.24/Documentation/InterfaceBuilder/IBConnectors.html0000644000000000000000000002556713426745045022531 0ustar rootroot IBConnectors documentation

IBConnectors documentation

Authors

Generated by heron

Software documentation for the NSApplication(IBConnections) category

NSApplication(IBConnections)

Declared in:
InterfaceBuilder/IBConnectors.h
Description forthcoming.
Method summary

connectDestination 

- (id) connectDestination;
[NSApp -connectDestination] returns the target object as set by the most recent [NSApp -displayConnectionBetween:and:]

connectSource 

- (id) connectSource;
[NSApp -connectSource] returns the source object as set by the most recent [NSApp -displayConnectionBetween:and:]

displayConnectionBetween: and: 

- (void) displayConnectionBetween: (id)source and: (id)destination;
[NSApp -displayConnectionBetween:and:] is used to set the source and target objects and mark the display appropriately. Setting either source or target to 'nil' will remove markup from any previous source or target. NB. This method expects to be able to call the active document to ask it for the window and rectangle in which to perform markup.

isConnecting 

- (BOOL) isConnecting;
[NSApp -isConnecting] simply lets you know if a connection is in progress.

stopConnecting 

- (void) stopConnecting;
[NSApp -stopConnecting] terminates the current connection process and removes the connection marks from the display.

Software documentation for the NSNibConnector(IBConnectorsProtocol) category

NSNibConnector(IBConnectorsProtocol)

Declared in:
InterfaceBuilder/IBConnectors.h
Conforms to:
IBConnectors
Description forthcoming.

Software documentation for the NSObject(IBNibInstantiation) category

NSObject(IBNibInstantiation)

Declared in:
InterfaceBuilder/IBConnectors.h
Description forthcoming.
Method summary

nibInstantiate 

- (id) nibInstantiate;
Invoked after loading.

Software documentation for the IBConnectors protocol

IBConnectors

Declared in:
InterfaceBuilder/IBConnectors.h
Conforms to:
NSObject
Description forthcoming.
Method summary

destination 

- (id) destination;
Destination for the receiver.

establishConnection 

- (void) establishConnection;
Establish the connection.

label 

- (NSString*) label;
The method to which the receiver will be connected.

nibInstantiate 

- (id) nibInstantiate;
Called after the document is loaded on connections.

replaceObject: withObject: 

- (void) replaceObject: (id)anObject withObject: (id)anotherObject;
Replace anObject with anotherObject. This method looks at the receiver's source and destination and replaces whichever one matches anObject with anotherObject.

setDestination: 

- (void) setDestination: (id)anObject;
Set the receiver's destination to anObject.

setLabel: 

- (void) setLabel: (NSString*)label;
Set the receiver's label.

setSource: 

- (void) setSource: (id)anObject;
Set the receiver's source to anObject.

source 

- (id) source;
The source of the receiver.


gorm-1.2.24/Documentation/InterfaceBuilder/VariablesTOC.html0000644000000000000000000000100713426755204022434 0ustar rootroot Variables

Variables

enum IBResourceLocation

gorm-1.2.24/Documentation/InterfaceBuilder/TypesTOC.gsdoc0000644000000000000000000000055313426755204021770 0ustar rootroot Types gorm-1.2.24/Documentation/InterfaceBuilder/IBInspectorManager.html0000644000000000000000000001060313426745045023636 0ustar rootroot IBInspectorManager class documentation

IBInspectorManager class documentation

Authors

Generated by heron

Software documentation for the IBInspectorManager class

IBInspectorManager : NSObject

Declared in:
InterfaceBuilder/IBInspectorManager.h
Description forthcoming.

Instance Variables

Method summary

sharedInspectorManager 

+ (IBInspectorManager*) sharedInspectorManager;
Create a shared instance of the class for the applicaiton.
Create a shared instance of the class for the application. If a subclass of IBInspectorManager uses this message it becomes the shraredInspectorManager.

addInspectorModeWithIdentifier: forObject: localizedLabel: inspectorClassName: ordering: 

- (void) addInspectorModeWithIdentifier: (NSString*)ident forObject: (id)obj localizedLabel: (NSString*)label inspectorClassName: (NSString*)className ordering: (float)ord;
Add an inspector for a given mode. This allows the addition of inspectors for different aspects of the same object.

indexOfModeWithIdentifier: 

- (unsigned int) indexOfModeWithIdentifier: (NSString*)ident;
Position in the inspector list that the "mode inspector" appears.



Instance Variables for IBInspectorManager Class

currentMode

@protected id currentMode;
Description forthcoming.

modes

@protected NSMutableArray* modes;
Description forthcoming.

selectedObject

@protected id selectedObject;
Description forthcoming.





gorm-1.2.24/Documentation/InterfaceBuilder/IBInspector.gsdoc0000644000000000000000000001023313426745045022475 0ustar rootroot IBInspector class documentation Software documentation for the IBInspector class InterfaceBuilder/IBInspector.h Description forthcoming. Description forthcoming. Description forthcoming. Description forthcoming. Description forthcoming. dealloc Releases all the instance variables (apart from the window, which is presumed to release itself when closed) and removes self as an observer of notifications before destroying self. initialFirstResponder The first view to be selected in the inspector. object The object being inspected. ok: sender Action to take when user clicks the OK button okButton Inspector supplied button - the inspectors manager will position this button for you. revert: sender Action to take when user clicks the revert button revertButton Inspector supplied button - the inspectors manager will position this button for you. setObject: anObject Extension - not in NeXTstep - this message is sent to your inspector to tell it to set its edited object and make any changes to its UI needed. textDidBeginEditing: aNotification Used to take notice of textfields in inspector being updated. touch: sender Method to mark the inspector as needing saving (ok or revert). wantsButtons If this method returns YES, the manager will partition off a section of the inspector panel for display of 'ok' and 'revert' buttons, which your inspector must supply. window The window that the UI of the inspector exists in. gorm-1.2.24/Documentation/InterfaceBuilder/IBEditors.html0000644000000000000000000003170313426745045022012 0ustar rootroot IBEditors documentation

IBEditors documentation

Authors

Generated by heron

Software documentation for the IBEditors protocol

IBEditors

Declared in:
InterfaceBuilder/IBEditors.h
Conforms to:
NSObject
The IBEditors protocol defines the methods an editor must implement.
Method summary

acceptsTypeFromArray: 

- (BOOL) acceptsTypeFromArray: (NSArray*)types;
Decide whether an editor can accept data from the pasteboard.

activate 

- (BOOL) activate;
Activate an editor - inserts it into the view hierarchy or whatever is needed for the editor to be able to provide its functionality. This method should be called by the document when an editor is created or opened. It should be safe to call repeatedly.

close 

- (void) close;
Close an editor - this destroys the editor. In this method the editor should tell its document that it has been closed, so that the document can remove all its references to the editor.

closeSubeditors 

- (void) closeSubeditors;
Close all subeditors associated with this editor.

deactivate 

- (void) deactivate;
Deactivate an editor - removes it from the view hierarchy so that objects can be archived without including the editor. This method should be called automatically by the 'close' method. It should be safe to call repeatedly.

deleteSelection 

- (void) deleteSelection;
This method deletes all the objects in the current selection in the editor.

document 

- (id/*<IBDocuments>*/) document;
This method returns the document that owns the object that the editor edits.

editedObject 

- (id) editedObject;
This method returns the object that the editor is editing.

initWithObject: inDocument: 

- (id) initWithObject: (id)anObject inDocument: (id/*<IBDocuments>*/)aDocument;
Initializes the editor with object for the specified document.

openSubeditorForObject: 

- (id<IBEditors>) openSubeditorForObject: (id)object;
Opens the subeditor for an object when the object being edited is double clicked by the user. If there is no sub-editor, return nil, otherwise method will return the editor for the object.

orderFront 

- (void) orderFront;
This method is used to ensure that the editor is visible on screen.

pasteInSelection 

- (void) pasteInSelection;
This method is used to add the contents of the pasteboard to the current selection of objects within the editor.

resetObject: 

- (void) resetObject: (id)anObject;
Redraws the edited object

validateEditing 

- (void) validateEditing;
Causes the editor to select the text being edited in the current text field.

wantsSelection 

- (BOOL) wantsSelection;
When an editor resigns the selection ownership, all editors are asked if they want selection ownership, and the first one to return YES gets made into the current selection owner.

window 

- (NSWindow*) window;
This returns the window in which the editor is drawn.

Software documentation for the IBSelectionOwners protocol

IBSelectionOwners

Declared in:
InterfaceBuilder/IBEditors.h
Conforms to:
NSObject
The IBSelectionOwners protocol defines the methods that a selection owner must implement.
Method summary

copySelection 

- (void) copySelection;
This method places the current selection from the editor on the pasteboard.

drawSelection 

- (void) drawSelection;
Draw the selection.

makeSelectionVisible: 

- (void) makeSelectionVisible: (BOOL)flag;
This method is used to draw or remove markup that identifies selected objects within the object being edited.

selectObjects: 

- (void) selectObjects: (NSArray*)objects;
This method changes the current selection to those objects in the array.

selection 

- (NSArray*) selection;
Return the selection in an array.

selectionCount 

- (NSUInteger) selectionCount;
The number of currently selected objects.


gorm-1.2.24/Documentation/InterfaceBuilder/IBDefines.gsdoc0000644000000000000000000000103413426745045022103 0ustar rootroot IBDefines documentation IBDefines types

Description forthcoming.
gorm-1.2.24/Documentation/InterfaceBuilder/TypesTOC.html0000644000000000000000000000073513426755204021637 0ustar rootroot Types

Types

IBKnobPosition

gorm-1.2.24/Documentation/InterfaceBuilder/IBEditors.gsdoc0000644000000000000000000001544213426745045022147 0ustar rootroot IBEditors documentation Software documentation for the IBEditors protocol InterfaceBuilder/IBEditors.h NSObject The IBEditors protocol defines the methods an editor must implement. acceptsTypeFromArray: types Decide whether an editor can accept data from the pasteboard. activate Activate an editor - inserts it into the view hierarchy or whatever is needed for the editor to be able to provide its functionality. This method should be called by the document when an editor is created or opened. It should be safe to call repeatedly. close Close an editor - this destroys the editor. In this method the editor should tell its document that it has been closed, so that the document can remove all its references to the editor. closeSubeditors Close all subeditors associated with this editor. deactivate Deactivate an editor - removes it from the view hierarchy so that objects can be archived without including the editor. This method should be called automatically by the 'close' method. It should be safe to call repeatedly. deleteSelection This method deletes all the objects in the current selection in the editor. document This method returns the document that owns the object that the editor edits. editedObject This method returns the object that the editor is editing. initWithObject: anObject inDocument: aDocument Initializes the editor with object for the specified document. openSubeditorForObject: object Opens the subeditor for an object when the object being edited is double clicked by the user. If there is no sub-editor, return nil, otherwise method will return the editor for the object. orderFront This method is used to ensure that the editor is visible on screen. pasteInSelection This method is used to add the contents of the pasteboard to the current selection of objects within the editor. resetObject: anObject Redraws the edited object validateEditing Causes the editor to select the text being edited in the current text field. wantsSelection When an editor resigns the selection ownership, all editors are asked if they want selection ownership, and the first one to return YES gets made into the current selection owner. window This returns the window in which the editor is drawn. Software documentation for the IBSelectionOwners protocol InterfaceBuilder/IBEditors.h NSObject The IBSelectionOwners protocol defines the methods that a selection owner must implement. copySelection This method places the current selection from the editor on the pasteboard. drawSelection Draw the selection. makeSelectionVisible: flag This method is used to draw or remove markup that identifies selected objects within the object being edited. selectObjects: objects This method changes the current selection to those objects in the array. selection Return the selection in an array. selectionCount The number of currently selected objects. gorm-1.2.24/Documentation/InterfaceBuilder/index.html0000644000000000000000000000072013426755204021266 0ustar rootroot Autogsdoc-generated Documentation for Untitled gorm-1.2.24/Documentation/InterfaceBuilder/ProtocolsTOC.html0000644000000000000000000000350713426755204022517 0ustar rootroot Protocols

Protocols

<IB>
<IBCellProtocol>
<IBConnectors>
<IBDocuments>
<IBEditors>
<IBObjectProtocol>
<IBProjectFiles>
<IBProjects>
<IBSelectionOwners>
<IBViewProtocol>
<IBViewResourceDraggingDelegates>
(IBObjectAdditions)

gorm-1.2.24/Documentation/InterfaceBuilder/IBObjectAdditions.gsdoc0000644000000000000000000000136513426745045023602 0ustar rootroot IBObjectAdditions documentation Software documentation for the NSObject(IBObjectAdditions) informal protocol InterfaceBuilder/IBObjectAdditions.h IBObjectProtocol Description forthcoming. gorm-1.2.24/Documentation/InterfaceBuilder/IBDocuments.html0000644000000000000000000004525613426745045022352 0ustar rootroot IBDocuments documentation

IBDocuments documentation

Authors

Generated by heron

Software documentation for the IBDocuments protocol

IBDocuments

Declared in:
InterfaceBuilder/IBDocuments.h
Conforms to:
NSObject
Description forthcoming.
Method summary

actionsOfClass: 

- (NSArray*) actionsOfClass: (NSString*)className;
Description forthcoming.

addConnector: 

- (void) addConnector: (id<IBConnectors>)aConnector;
Add a connection

allConnectors 

- (NSArray*) allConnectors;
Returns an array containing all connections for the receiver.

attachObject: toParent: 

- (void) attachObject: (id)anObject toParent: (id)aParent;
Attaches an object to the document and makes the association with the parent.

attachObjects: toParent: 

- (void) attachObjects: (NSArray*)anArray toParent: (id)aParent;
Iterates over anArray and attaches all objects in it to the receiver with aParent as the parent.

classForObject: 

- (NSString*) classForObject: (id)obj;
Returns a string with the name of the class for the given object.

connectorsForDestination: 

- (NSArray*) connectorsForDestination: (id)destination;
Returns an autoreleased array containing all connections for the given destination.

connectorsForDestination: ofClass: 

- (NSArray*) connectorsForDestination: (id)destination ofClass: (Class)aConnectorClass;
Returns an autoreleased array containing all connectors of the given class for the destination.

connectorsForSource: 

- (NSArray*) connectorsForSource: (id)source;
Returns an autoreleased array containing all connections for the given source.

connectorsForSource: ofClass: 

- (NSArray*) connectorsForSource: (id)source ofClass: (Class)aConnectorClass;
Returns an autoreleased array containing all connectors of the given class for the source.

containsObject: 

- (BOOL) containsObject: (id)anObject;
Returns YES, if the receiver contains anObject.

containsObjectWithName: forParent: 

- (BOOL) containsObjectWithName: (NSString*)aName forParent: (id)parent;
Returns YES, if the receiver contains an object with the given name and parent.

copyObject: type: toPasteboard: 

- (BOOL) copyObject: (id)anObject type: (NSString*)aType toPasteboard: (NSPasteboard*)aPasteboard;
Copies anObject to the pasteboard with the aType.

copyObjects: type: toPasteboard: 

- (BOOL) copyObjects: (NSArray*)anArray type: (NSString*)aType toPasteboard: (NSPasteboard*)aPasteboard;
Copues an array of objects to aPasteboard with aType.

detachObject: 

- (void) detachObject: (id)anObject;
Detaches anObject from the receiver.

detachObjects: 

- (void) detachObjects: (NSArray*)anArray;
Detaches an array of objects from the receiver.

documentPath 

- (NSString*) documentPath;
The path of the file which represents the document.

editor: didCloseForObject: 

- (void) editor: (id<IBEditors>)anEditor didCloseForObject: (id)anObject;
Called when an editor is closed.

editorForObject: create: 

- (id<IBEditors>) editorForObject: (id)anObject create: (BOOL)flag;
Returns the associated editor for anObject, if flag is YES, it will create an instance of the editor class if one does not already exist for the given object.

editorForObject: inEditor: create: 

- (id<IBEditors>) editorForObject: (id)anObject inEditor: (id<IBEditors>)anEditor create: (BOOL)flag;
Returns the associated subeditor for anObject, if flag is YES, it will create an instance of the editor.

nameForObject: 

- (NSString*) nameForObject: (id)anObject;
Returns the name associated with the object.

objectForName: 

- (id) objectForName: (NSString*)aName;
Returns the object for the given aName.

objects 

- (NSArray*) objects;
Returns all objects in the receiver's name table.

openEditorForObject: 

- (id<IBEditors>) openEditorForObject: (id)anObject;
Creates an editor, if necessary using editorForObject:create:, opens it and brings the window containing the editor to the front.

outletsOfClass: 

- (NSArray*) outletsOfClass: (NSString*)className;
Description forthcoming.

parentEditorForEditor: 

- (id<IBEditors,IBSelectionOwners>) parentEditorForEditor: (id<IBEditors>)anEditor;
Returns the parent of the given editor.

parentOfObject: 

- (id) parentOfObject: (id)anObject;
Return the parent of anObject. The File's Owner is the root object in the hierarchy, if anObject's parent is the Files's Owner, this method should return nil.

pasteType: fromPasteboard: parent: 

- (NSArray*) pasteType: (NSString*)aType fromPasteboard: (NSPasteboard*)aPasteboard parent: (id)parent;
Pastes the given type from the aPasteboard.

removeConnector: 

- (void) removeConnector: (id<IBConnectors>)aConnector;
Remove aConnector from the receiver.

resignSelectionForEditor: 

- (void) resignSelectionForEditor: (id<IBEditors>)editor;
The current editor wants to give up the selection, this method iterates over all editors and determines if any editors will take over the selection. If one is found it is activated.

setName: forObject: 

- (void) setName: (NSString*)aName forObject: (id)object;
Set aName for object in the receiver. This replaces any name the object may have previously had.

setSelectionFromEditor: 

- (void) setSelectionFromEditor: (id<IBEditors>)anEditor;
Sets the currently selected object from the given editor.

touch 

- (void) touch;
Mark document as having been changed.


gorm-1.2.24/Documentation/InterfaceBuilder/IBObjectProtocol.gsdoc0000644000000000000000000000620313426745045023461 0ustar rootroot IBObjectProtocol documentation Software documentation for the IBObjectProtocol protocol InterfaceBuilder/IBObjectProtocol.h Description forthcoming. canSubstituteForClass: origClass Returns YES, if receiver can be displayed in the custom custom class inspector as a potential class which can be switched to by the receiver. awakeFromDocument: doc Called immediate after loading the document into the interface editor application. classInspectorClassName Name of class inspector. connectInspectorClassName Name of connection inspector class. editorClassName Name of the editor for the receiver. helpInspectorClassName Name of help inspector. ibIncompatibleProperties List of properties not compatible with interface app. imageForViewer Returns the NSImage to be used to represent an object of the receiver's class in the editor. inspectorClassName Name of attributes inspector class. nibLabel: objectName Label for the receiver in the model. objectNameForInspectorTitle Title to display in the inspector. sizeInspectorClassName Name of size inspector. gorm-1.2.24/Documentation/InterfaceBuilder/IBViewProtocol.html0000644000000000000000000001015513426745045023033 0ustar rootroot IBViewProtocol documentation

IBViewProtocol documentation

Authors

Generated by heron

Software documentation for the IBViewProtocol protocol

IBViewProtocol

Declared in:
InterfaceBuilder/IBViewProtocol.h
Description forthcoming.
Method summary

acceptsColor: atPoint: 

- (BOOL) acceptsColor: (NSColor*)color atPoint: (NSPoint)point;
Returns YES, if color can be set at the given point in the view.

allowsAltDragging 

- (BOOL) allowsAltDragging;
Returns YES if receiver can be alt-dragged.

depositColor: atPoint: 

- (void) depositColor: (NSColor*)color atPoint: (NSPoint)point;
Sets color at point in the receiver.

maximumSizeFromKnobPosition: 

- (NSSize) maximumSizeFromKnobPosition: (IBKnobPosition)knobPosition;
The maximum size for a knob surrounding the receiver.

minimumSizeFromKnobPosition: 

- (NSSize) minimumSizeFromKnobPosition: (IBKnobPosition)position;
The minimum size for a knob surrounding the receiver.

placeView: 

- (void) placeView: (NSRect)newFrame;
Places and resizes the receiver using newFrame.


gorm-1.2.24/Documentation/InterfaceBuilder/IBViewAdditions.html0000644000000000000000000000225713426745045023154 0ustar rootroot IBViewAdditions documentation

IBViewAdditions documentation

Authors

Generated by heron

Software documentation for the NSView(IBViewAdditions) category

NSView(IBViewAdditions)

Declared in:
InterfaceBuilder/IBViewAdditions.h
Conforms to:
IBViewProtocol
Description forthcoming.

gorm-1.2.24/Documentation/InterfaceBuilder/IBApplicationAdditions.gsdoc0000644000000000000000000000464313426745045024641 0ustar rootroot IBApplicationAdditions documentation Software documentation for the NSApplication(GormSpecific) category InterfaceBuilder/IBApplicationAdditions.h Description forthcoming. linkImage Image to be displayed with making a link. startConnecting Start the connection process. Software documentation for the IB protocol InterfaceBuilder/IBApplicationAdditions.h NSObject Description forthcoming. activeDocument Returns the document which is currently being edited. documentForObject: object Returns the document which contains this object. isTestingInterface Returns YES, if the reciever is in testing mode. selectedObject Returns the current selection from the current selection owner. selectionOwner Returns the current selection owner. gorm-1.2.24/Documentation/InterfaceBuilder/IBResourceManager.html0000644000000000000000000003020513426745045023457 0ustar rootroot IBResourceManager class documentation

IBResourceManager class documentation

Authors

Generated by heron

Software documentation for the IBResourceManager class

IBResourceManager : NSObject

Declared in:
InterfaceBuilder/IBResourceManager.h
Description forthcoming.

Instance Variables

Method summary

registerResourceManagerClass: 

+ (void) registerResourceManagerClass: (Class)managerClass;
Register the given class as a resource mananger.

registerResourceManagerClass: forFrameworks: 

+ (void) registerResourceManagerClass: (Class)managerClass forFrameworks: (NSArray*)frameworks;
Register the given class as a resource manager for the frameworks in the array.

registeredResourceManagerClassesForFramework: 

+ (NSArray*) registeredResourceManagerClassesForFramework: (NSString*)framework;
Return an array of classes for the given framework.

acceptsResourcesFromPasteboard: 

- (BOOL) acceptsResourcesFromPasteboard: (NSPasteboard*)pboard;
Returns YES, if the pasteboard contains a type the resource manager can accept.

addResources: 

- (void) addResources: (NSArray*)resourceList;
Add a resource.

addResourcesFromPasteboard: 

- (void) addResourcesFromPasteboard: (NSPasteboard*)pboard;
Add resoures from the pasteboard. Invokes the acceptsResourcesFromPasteboard: method to determine if the resources will be added.

application: didModifyFileAtPath: 

- (void) application: (NSString*)appName didModifyFileAtPath: (NSString*)path;
Called by an external application when a file owned by the GUI builder is modified.

document 

- (id<IBDocuments>) document;
Returns the document with which this resource manager is associated.

initWithDocument: 

- (id) initWithDocument: (id<IBDocuments>)doc;
Instantiate the resource manager with the given document object.

isReadOnly 

- (BOOL) isReadOnly;
Returns YES, if this resource manager is non-modifiable.

project: didAddFile: 

- (void) project: (id<IBProjects>)proj didAddFile: (id<IBProjectFiles>)file;
Called by an external application when the a file is added.

project: didChangeLocalizationOfFile: 

- (void) project: (id<IBProjects>)proj didChangeLocalizationOfFile: (id<IBProjectFiles>)file;
Called by an external application when the a file changes localization.

project: didRemoveFile: 

- (void) project: (id<IBProjects>)proj didRemoveFile: (id<IBProjectFiles>)file;
Called by an external application when a file is removed.

resourceFileTypes 

- (NSArray*) resourceFileTypes;
Returns a list of resource file types this manager can accept.

resourcePasteboardTypes 

- (NSArray*) resourcePasteboardTypes;
Returns a list of pasteboard types this manager can accept.

resourcesForObjects: 

- (NSArray*) resourcesForObjects: (NSArray*)objs;
Returns the associated resources for the objects.

writeToDocumentPath: 

- (void) writeToDocumentPath: (NSString*)path;
Writes a resource to the document path.



Instance Variables for IBResourceManager Class

document

@protected id document;
Description forthcoming.




IBResourceManager variables

enum IBResourceLocation

enum IBResourceLocation enum IBResourceLocation;
Enumerated type to allow specification of where the resource lives.
kNibResource
kProjectResource
kPaletteResource
kSystemResource
kUnknownResource


gorm-1.2.24/Documentation/InterfaceBuilder/IBCellProtocol.html0000644000000000000000000000536113426745045023003 0ustar rootroot IBCellProtocol documentation

IBCellProtocol documentation

Authors

Generated by heron

Software documentation for the IBCellProtocol protocol

IBCellProtocol

Declared in:
InterfaceBuilder/IBCellProtocol.h
Description forthcoming.
Method summary

cellWillAltDragWithSize: 

- (void) cellWillAltDragWithSize: (NSSize)size;
Called when the cell is about to be alt-dragged.

maximumSizeForCellSize: knobPosition: 

- (NSSize) maximumSizeForCellSize: (NSSize)size knobPosition: (IBKnobPosition)position;
Maximum size for the cell.

minimumSizeForCellSize: knobPosition: 

- (NSSize) minimumSizeForCellSize: (NSSize)size knobPosition: (IBKnobPosition)position;
Minimum size for the cell.


gorm-1.2.24/Documentation/InterfaceBuilder/IBPlugin.html0000644000000000000000000001232613426745045021637 0ustar rootroot IBPlugin class documentation

IBPlugin class documentation

Authors

Generated by heron

Software documentation for the IBPlugin class

IBPlugin : NSObject

Declared in:
InterfaceBuilder/IBPlugin.h
Description forthcoming.
Method summary

sharedInstance 

+ (id) sharedInstance;
Returns the shared instance of the plugin.

didLoad 

- (void) didLoad;
Notifies the receiver that the plugin will be loaded.

document: didAddDraggedObjects: fromDraggedLibraryView: 

- (void) document: (id<IBDocuments>)document didAddDraggedObjects: (NSArray*)roots fromDraggedLibraryView: (NSView*)view;
Notifies the receiver that objects were added to the document.

label 

- (NSString*) label;
Returns the name of the plugin to be displayed.

libraryNibNames 

- (NSArray*) libraryNibNames;
Return the array of custom nib filenames. You are required to override this method when creating a plugin.

pasteboardObjectsForDraggedLibraryView: 

- (NSArray*) pasteboardObjectsForDraggedLibraryView: (NSView*)view;
Notifies the receiver that one of it's components will be added to the document.

preferencesView 

- (NSView*) preferencesView;
The preferences panel/view that should be added to the preferences drop down and preferences window.

requiredFrameworks 

- (NSArray*) requiredFrameworks;
Returns the list of frameworks needed to support the plugin.

willUnload 

- (void) willUnload;
Notifies the receiver that the plugin will be unloaded.


gorm-1.2.24/Documentation/InterfaceBuilder/IBDocuments.gsdoc0000644000000000000000000002500413426745045022472 0ustar rootroot IBDocuments documentation Software documentation for the IBDocuments protocol InterfaceBuilder/IBDocuments.h NSObject Description forthcoming. actionsOfClass: className Description forthcoming. addConnector: aConnector Add a connection allConnectors Returns an array containing all connections for the receiver. attachObject: anObject toParent: aParent Attaches an object to the document and makes the association with the parent. attachObjects: anArray toParent: aParent Iterates over anArray and attaches all objects in it to the receiver with aParent as the parent. classForObject: obj Returns a string with the name of the class for the given object. connectorsForDestination: destination Returns an autoreleased array containing all connections for the given destination. connectorsForDestination: destination ofClass: aConnectorClass Returns an autoreleased array containing all connectors of the given class for the destination. connectorsForSource: source Returns an autoreleased array containing all connections for the given source. connectorsForSource: source ofClass: aConnectorClass Returns an autoreleased array containing all connectors of the given class for the source. containsObject: anObject Returns YES, if the receiver contains anObject. containsObjectWithName: aName forParent: parent Returns YES, if the receiver contains an object with the given name and parent. copyObject: anObject type: aType toPasteboard: aPasteboard Copies anObject to the pasteboard with the aType. copyObjects: anArray type: aType toPasteboard: aPasteboard Copues an array of objects to aPasteboard with aType. detachObject: anObject Detaches anObject from the receiver. detachObjects: anArray Detaches an array of objects from the receiver. documentPath The path of the file which represents the document. editor: anEditor didCloseForObject: anObject Called when an editor is closed. editorForObject: anObject create: flag Returns the associated editor for anObject, if flag is YES, it will create an instance of the editor class if one does not already exist for the given object. editorForObject: anObject inEditor: anEditor create: flag Returns the associated subeditor for anObject, if flag is YES, it will create an instance of the editor. nameForObject: anObject Returns the name associated with the object. objectForName: aName Returns the object for the given aName. objects Returns all objects in the receiver's name table. openEditorForObject: anObject Creates an editor, if necessary using editorForObject:create:, opens it and brings the window containing the editor to the front. outletsOfClass: className Description forthcoming. parentEditorForEditor: anEditor Returns the parent of the given editor. parentOfObject: anObject Return the parent of anObject. The File's Owner is the root object in the hierarchy, if anObject's parent is the Files's Owner, this method should return nil. pasteType: aType fromPasteboard: aPasteboard parent: parent Pastes the given type from the aPasteboard. removeConnector: aConnector Remove aConnector from the receiver. resignSelectionForEditor: editor The current editor wants to give up the selection, this method iterates over all editors and determines if any editors will take over the selection. If one is found it is activated. setName: aName forObject: object Set aName for object in the receiver. This replaces any name the object may have previously had. setSelectionFromEditor: anEditor Sets the currently selected object from the given editor. touch Mark document as having been changed. gorm-1.2.24/Documentation/InterfaceBuilder/IBInspectorManager.gsdoc0000644000000000000000000000477513426745045024006 0ustar rootroot IBInspectorManager class documentation Software documentation for the IBInspectorManager class InterfaceBuilder/IBInspectorManager.h Description forthcoming. Description forthcoming. Description forthcoming. Description forthcoming. sharedInspectorManager Create a shared instance of the class for the applicaiton.
Create a shared instance of the class for the application. If a subclass of IBInspectorManager uses this message it becomes the shraredInspectorManager.
addInspectorModeWithIdentifier: ident forObject: obj localizedLabel: label inspectorClassName: className ordering: ord Add an inspector for a given mode. This allows the addition of inspectors for different aspects of the same object. indexOfModeWithIdentifier: ident Position in the inspector list that the "mode inspector" appears.
gorm-1.2.24/Documentation/InterfaceBuilder/IBConnectors.gsdoc0000644000000000000000000001307513426745045022653 0ustar rootroot IBConnectors documentation Software documentation for the NSApplication(IBConnections) category InterfaceBuilder/IBConnectors.h Description forthcoming. connectDestination [NSApp -connectDestination] returns the target object as set by the most recent [NSApp -displayConnectionBetween:and:] connectSource [NSApp -connectSource] returns the source object as set by the most recent [NSApp -displayConnectionBetween:and:] displayConnectionBetween: source and: destination [NSApp -displayConnectionBetween:and:] is used to set the source and target objects and mark the display appropriately. Setting either source or target to 'nil' will remove markup from any previous source or target. NB. This method expects to be able to call the active document to ask it for the window and rectangle in which to perform markup. isConnecting [NSApp -isConnecting] simply lets you know if a connection is in progress. stopConnecting [NSApp -stopConnecting] terminates the current connection process and removes the connection marks from the display. Software documentation for the NSNibConnector(IBConnectorsProtocol) category InterfaceBuilder/IBConnectors.h IBConnectors Description forthcoming. Software documentation for the NSObject(IBNibInstantiation) category InterfaceBuilder/IBConnectors.h Description forthcoming. nibInstantiate Invoked after loading. Software documentation for the IBConnectors protocol InterfaceBuilder/IBConnectors.h NSObject Description forthcoming. destination Destination for the receiver. establishConnection Establish the connection. label The method to which the receiver will be connected. nibInstantiate Called after the document is loaded on connections. replaceObject: anObject withObject: anotherObject Replace anObject with anotherObject. This method looks at the receiver's source and destination and replaces whichever one matches anObject with anotherObject. setDestination: anObject Set the receiver's destination to anObject. setLabel: label Set the receiver's label. setSource: anObject Set the receiver's source to anObject. source The source of the receiver. gorm-1.2.24/Documentation/InterfaceBuilder/IBViewResourceDragging.gsdoc0000644000000000000000000000633613426745045024625 0ustar rootroot IBViewResourceDragging documentation Software documentation for the NSView(IBViewResourceDraggingDelegates) category InterfaceBuilder/IBViewResourceDragging.h Informal protocol on NSView. acceptedViewResourcePasteboardTypes Types accepted by the view. registerViewResourceDraggingDelegate: delegate Register a delegate. registeredViewResourceDraggingDelegates Return the list of registered delegates. unregisterViewResourceDraggingDelegate: delegate Remove a previously registered delegate. Software documentation for the IBViewResourceDraggingDelegates protocol InterfaceBuilder/IBViewResourceDragging.h Protocol describing those methods needed to accept resources. acceptsViewResourceFromPasteboard: pb forObject: obj atPoint: p Ask if the view accepts the object. depositViewResourceFromPasteboard: pb onObject: obj atPoint: p Perform the action of depositing the object. shouldDrawConnectionFrame Should we draw the connection frame when the resource is dragged in? viewResourcePasteboardTypes Types of resources accepted by this view. gorm-1.2.24/Documentation/GormCore/0000755000000000000000000000000013426755205015601 5ustar rootrootgorm-1.2.24/Documentation/GormCore/GormResource.html0000644000000000000000000002555513426745046021121 0ustar rootroot GormResource

GormResource

Authors

Gregory John Casamento (greg_casamento@yahoo.com)
This class is a placeholder for a real resource.

Copyright: (C) 2005 Free Software Foundation, Inc.

Software documentation for the GormResource class

GormResource : NSObject

Declared in:
GormCore/GormResource.h
Conforms to:
IBProjectFiles
Description forthcoming.

Instance Variables

Method summary

resourceForPath: 

+ (GormResource*) resourceForPath: (NSString*)aPath;
Description forthcoming.

resourceForPath: inWrapper: 

+ (GormResource*) resourceForPath: (NSString*)aPath inWrapper: (BOOL)flag;
Description forthcoming.

data 

- (NSData*) data;
Description forthcoming.

initWithData: withFileName: inWrapper: 

- (id) initWithData: (NSData*)aData withFileName: (NSString*)aFileName inWrapper: (BOOL)flag;
Description forthcoming.

initWithName: path: 

- (id) initWithName: (NSString*)aName path: (NSString*)aPath;
Description forthcoming.

initWithName: path: inWrapper: 

- (id) initWithName: (NSString*)aName path: (NSString*)aPath inWrapper: (BOOL)flag;
Designated initializer.

initWithPath: 

- (id) initWithPath: (NSString*)aPath;
Description forthcoming.

initWithPath: inWrapper: 

- (id) initWithPath: (NSString*)aPath inWrapper: (BOOL)flag;
Description forthcoming.

isEqual: 

- (BOOL) isEqual: (id)object;
Description forthcoming.

isInWrapper 

- (BOOL) isInWrapper;
Description forthcoming.

isSystemResource 

- (BOOL) isSystemResource;
Description forthcoming.

name 

- (NSString*) name;
Description forthcoming.

setData: 

- (void) setData: (NSData*)aData;
Description forthcoming.

setInWrapper: 

- (void) setInWrapper: (BOOL)flag;
Description forthcoming.

setName: 

- (void) setName: (NSString*)aName;
Description forthcoming.

setSystemResource: 

- (void) setSystemResource: (BOOL)flag;
Description forthcoming.



Instance Variables for GormResource Class

data

@protected NSData* data;
Description forthcoming.

fileName

@protected NSString* fileName;
Description forthcoming.

fileType

@protected NSString* fileType;
Description forthcoming.

isInWrapper

@protected BOOL isInWrapper;
Description forthcoming.

isLocalized

@protected BOOL isLocalized;
Description forthcoming.

isSystemResource

@protected BOOL isSystemResource;
Description forthcoming.

language

@protected NSString* language;
Description forthcoming.

name

@protected NSString* name;
Description forthcoming.

path

@protected NSString* path;
Description forthcoming.

project

@protected id project;
Description forthcoming.





gorm-1.2.24/Documentation/GormCore/GormStandaloneViewEditor.gsdoc0000644000000000000000000000141013426745046023537 0ustar rootroot GormStandaloneViewEditor class documentation Software documentation for the GormStandaloneViewEditor class GormCore/GormStandaloneViewEditor.h IBSelectionOwners Description forthcoming. gorm-1.2.24/Documentation/GormCore/GormImageEditor.gsdoc0000644000000000000000000000123313426745045021640 0ustar rootroot GormImageEditor class documentation Software documentation for the GormImageEditor class GormCore/GormImageEditor.h Description forthcoming. gorm-1.2.24/Documentation/GormCore/VariablesTOC.gsdoc0000644000000000000000000000056713426755205021110 0ustar rootroot Variables gorm-1.2.24/Documentation/GormCore/GormNSWindow.gsdoc0000644000000000000000000000701013426745045021156 0ustar rootroot GormNSWindow class documentation Software documentation for the GormNSWindow class GormCore/GormNSWindow.h Description forthcoming. Warning the underscore at the start of the name of this instance variable indicates that, even though it is not technically private, it is intended for internal use within the package, and you should not use the variable in other code. Warning the underscore at the start of the name of this instance variable indicates that, even though it is not technically private, it is intended for internal use within the package, and you should not use the variable in other code. Description forthcoming. _isReleasedWhenClosed Warning the underscore at the start of the name of this method indicates that it is private, for internal use only, and you should not use the method in your code. _setReleasedWhenClosed: flag Warning the underscore at the start of the name of this method indicates that it is private, for internal use only, and you should not use the method in your code. _setStyleMask: newStyleMask Warning the underscore at the start of the name of this method indicates that it is private, for internal use only, and you should not use the method in your code. _styleMask Warning the underscore at the start of the name of this method indicates that it is private, for internal use only, and you should not use the method in your code. autoPositionMask Description forthcoming. setAutoPositionMask: mask Description forthcoming. gorm-1.2.24/Documentation/GormCore/Untitled.html0000644000000000000000000002243413426755205020264 0ustar rootroot The Untitled Project

The Untitled Project

The index below lists the major components of the Untitled documentation.

Title Index
gorm-1.2.24/Documentation/GormCore/GormProtocol.gsdoc0000644000000000000000000001361413426745046021257 0ustar rootroot GormProtocol documentation Software documentation for the Gorm protocol GormCore/GormProtocol.h Description forthcoming. classManager Description forthcoming. classMenu Description forthcoming. connectDestination Description forthcoming. connectSource Description forthcoming. copy: sender Description forthcoming. cut: sender Description forthcoming. delete: sender Description forthcoming. displayConnectionBetween: source and: destination Description forthcoming. endTesting: sender Description forthcoming. groupSelectionInBox: sender Description forthcoming. groupSelectionInScrollView: sender Description forthcoming. groupSelectionInSplitView: sender Description forthcoming. inspector: sender Description forthcoming. inspectorsManager Description forthcoming. isConnecting Description forthcoming. loadImage: sender Description forthcoming. loadPalette: sender Description forthcoming. loadSound: sender Description forthcoming. palettes: sender Description forthcoming. palettesManager Description forthcoming. paste: sender Description forthcoming. pluginManager Description forthcoming. preferencesPanel: sender Description forthcoming. selectAllItems: sender Description forthcoming. setName: sender Description forthcoming. stopConnecting Description forthcoming. testInterface: sender Description forthcoming. ungroup: sender Description forthcoming. gorm-1.2.24/Documentation/GormCore/GormObjectEditor.gsdoc0000644000000000000000000000417613426745046022036 0ustar rootroot GormObjectEditor class documentation Software documentation for the GormObjectEditor class GormCore/GormObjectEditor.h Description forthcoming. setEditor: editor forDocument: aDocument Description forthcoming. acceptsTypeFromArray: types Description forthcoming. draggedImage: i endedAt: p deposited: f Description forthcoming. draggingSourceOperationMaskForLocal: flag Description forthcoming. makeSelectionVisible: flag Description forthcoming. resetObject: anObject Description forthcoming. gorm-1.2.24/Documentation/GormCore/GormResourceEditor.html0000644000000000000000000001041713426745046022257 0ustar rootroot GormResourceEditor class documentation

GormResourceEditor class documentation

Authors

Generated by heron

Software documentation for the GormResourceEditor class

GormResourceEditor : GormGenericEditor

Declared in:
GormCore/GormResourceEditor.h
Description forthcoming.
Method summary

addSystemResources 

- (void) addSystemResources;
Description forthcoming.

draggedImage: endedAt: deposited: 

- (void) draggedImage: (NSImage*)i endedAt: (NSPoint)p deposited: (BOOL)f;
Description forthcoming.

draggingSourceOperationMaskForLocal: 

- (unsigned int) draggingSourceOperationMaskForLocal: (BOOL)flag;
Description forthcoming.

pbTypes 

- (NSArray*) pbTypes;
Description forthcoming.

placeHolderWithPath: 

- (id) placeHolderWithPath: (NSString*)string;
Description forthcoming.

refreshCells 

- (void) refreshCells;
Description forthcoming.

resourceType 

- (NSString*) resourceType;
Description forthcoming.


gorm-1.2.24/Documentation/GormCore/GormControlEditor.html0000644000000000000000000000205013426745046022102 0ustar rootroot GormControlEditor class documentation

GormControlEditor class documentation

Authors

Generated by heron

Software documentation for the GormControlEditor class

GormControlEditor : GormViewEditor

Declared in:
GormCore/GormControlEditor.h
Description forthcoming.

gorm-1.2.24/Documentation/GormCore/GormSoundEditor.gsdoc0000644000000000000000000000123313426745046021707 0ustar rootroot GormSoundEditor class documentation Software documentation for the GormSoundEditor class GormCore/GormSoundEditor.h Description forthcoming. gorm-1.2.24/Documentation/GormCore/GormViewWithContentViewEditor.html0000644000000000000000000001127213426745046024424 0ustar rootroot GormViewWithContentViewEditor class documentation

GormViewWithContentViewEditor class documentation

Authors

Generated by heron

Software documentation for the GormViewWithContentViewEditor class

GormViewWithContentViewEditor : GormViewWithSubviewsEditor

Declared in:
GormCore/GormViewWithContentViewEditor.h
Description forthcoming.

Instance Variables

Method summary

groupSelectionInBox 

- (void) groupSelectionInBox;
Description forthcoming.

groupSelectionInSplitView 

- (void) groupSelectionInSplitView;
Description forthcoming.

groupSelectionInView 

- (void) groupSelectionInView;
Description forthcoming.

pasteInView: 

- (void) pasteInView: (NSView*)view;
Description forthcoming.

postDrawForView: 

- (void) postDrawForView: (GormViewEditor*)viewEditor;
Description forthcoming.

ungroup 

- (void) ungroup;
Description forthcoming.



Instance Variables for GormViewWithContentViewEditor Class

contentViewEditor

@protected GormInternalViewEditor* contentViewEditor;
Description forthcoming.





gorm-1.2.24/Documentation/GormCore/GormDocumentWindow.gsdoc0000644000000000000000000000274013426745045022421 0ustar rootroot GormDocumentWindow class documentation Software documentation for the GormDocumentWindow class GormCore/GormDocumentWindow.h Description forthcoming. Warning the underscore at the start of the name of this instance variable indicates that, even though it is not technically private, it is intended for internal use within the package, and you should not use the variable in other code. Description forthcoming. setDocument: document Description forthcoming. gorm-1.2.24/Documentation/GormCore/GormResourceEditor.gsdoc0000644000000000000000000000412113426745046022405 0ustar rootroot GormResourceEditor class documentation Software documentation for the GormResourceEditor class GormCore/GormResourceEditor.h Description forthcoming. addSystemResources Description forthcoming. draggedImage: i endedAt: p deposited: f Description forthcoming. draggingSourceOperationMaskForLocal: flag Description forthcoming. pbTypes Description forthcoming. placeHolderWithPath: string Description forthcoming. refreshCells Description forthcoming. resourceType Description forthcoming. gorm-1.2.24/Documentation/GormCore/GormObjectEditor.html0000644000000000000000000000774513426745046021710 0ustar rootroot GormObjectEditor class documentation

GormObjectEditor class documentation

Authors

Generated by heron

Software documentation for the GormObjectEditor class

GormObjectEditor : GormGenericEditor

Declared in:
GormCore/GormObjectEditor.h
Description forthcoming.
Method summary

setEditor: forDocument: 

+ (void) setEditor: (id)editor forDocument: (id)aDocument;
Description forthcoming.

acceptsTypeFromArray: 

- (BOOL) acceptsTypeFromArray: (NSArray*)types;
Description forthcoming.

draggedImage: endedAt: deposited: 

- (void) draggedImage: (NSImage*)i endedAt: (NSPoint)p deposited: (BOOL)f;
Description forthcoming.

draggingSourceOperationMaskForLocal: 

- (NSDragOperation) draggingSourceOperationMaskForLocal: (BOOL)flag;
Description forthcoming.

makeSelectionVisible: 

- (void) makeSelectionVisible: (BOOL)flag;
Description forthcoming.

resetObject: 

- (void) resetObject: (id)anObject;
Description forthcoming.


gorm-1.2.24/Documentation/GormCore/GormPrivate.gsdoc0000644000000000000000000002647513426745046021101 0ustar rootroot GormPrivate documentation Software documentation for the GormClassProxy class GormCore/GormPrivate.h Description forthcoming. Description forthcoming. Description forthcoming. className Description forthcoming. connectInspectorClassName Description forthcoming. initWithClassName: n Description forthcoming. inspectorClassName Description forthcoming. sizeInspectorClassName Description forthcoming. Software documentation for the GormObjectProxy class GormCore/GormPrivate.h Description forthcoming. setClassName: className Description forthcoming. Software documentation for the GSClassSwapper(GormCustomClassAdditions) category GormCore/GormPrivate.h Description forthcoming. setIsInInterfaceBuilder: flag Description forthcoming. isInInterfaceBuilder Description forthcoming. Software documentation for the GSNibItem(GormAdditions) category GormCore/GormPrivate.h Description forthcoming. className Description forthcoming. initWithClassName: className Description forthcoming. initWithClassName: className frame: frame Description forthcoming. Software documentation for the IBResourceManager(GormAdditions) category GormCore/GormPrivate.h Description forthcoming. registerForAllPboardTypes: editor inDocument: doc Description forthcoming. Software documentation for the NSClassSwapper(GormCustomClassAdditions) category GormCore/GormPrivate.h Description forthcoming. setIsInInterfaceBuilder: flag Description forthcoming. isInInterfaceBuilder Description forthcoming. Software documentation for the NSDateFormatter(GormAdditions) category GormCore/GormPrivate.h Description forthcoming. defaultFormat Description forthcoming. defaultFormatValue Description forthcoming. formatAtIndex: index Description forthcoming. formatCount Description forthcoming. indexOfFormat: format Description forthcoming. Software documentation for the NSNumberFormatter(GormAdditions) category GormCore/GormPrivate.h Description forthcoming. defaultFormat Description forthcoming. defaultFormatValue Description forthcoming. formatAtIndex: index Description forthcoming. formatCount Description forthcoming. indexOfFormat: format Description forthcoming. negativeFormatAtIndex: index Description forthcoming. negativeValueAtIndex: index Description forthcoming. positiveFormatAtIndex: index Description forthcoming. positiveValueAtIndex: index Description forthcoming. zeroFormatAtIndex: index Description forthcoming. zeroFormat Description forthcoming. Software documentation for the NSObject(GormAdditions) informal protocol GormCore/GormPrivate.h Description forthcoming. allocSubstitute Description forthcoming. imageForViewer Description forthcoming. GormPrivate variables

Description forthcoming. Description forthcoming. Description forthcoming. Description forthcoming. Description forthcoming. Description forthcoming. Description forthcoming.
gorm-1.2.24/Documentation/GormCore/GormPlacementInfo.gsdoc0000644000000000000000000001714213426745046022202 0ustar rootroot GormPlacementInfo documentation Software documentation for the GormPlacementHint class GormCore/GormPlacementInfo.h Description forthcoming. Warning the underscore at the start of the name of this instance variable indicates that, even though it is not technically private, it is intended for internal use within the package, and you should not use the variable in other code. Warning the underscore at the start of the name of this instance variable indicates that, even though it is not technically private, it is intended for internal use within the package, and you should not use the variable in other code. Warning the underscore at the start of the name of this instance variable indicates that, even though it is not technically private, it is intended for internal use within the package, and you should not use the variable in other code. Warning the underscore at the start of the name of this instance variable indicates that, even though it is not technically private, it is intended for internal use within the package, and you should not use the variable in other code. Warning the underscore at the start of the name of this instance variable indicates that, even though it is not technically private, it is intended for internal use within the package, and you should not use the variable in other code. border Description forthcoming. distanceToFrame: frame Description forthcoming. end Description forthcoming. frame Description forthcoming. initWithBorder: border position: position validityStart: start validityEnd: end frame: frame Description forthcoming. position Description forthcoming. rectWithHalfDistance: halfDistance Description forthcoming. start Description forthcoming. Software documentation for the GormPlacementInfo class GormCore/GormPlacementInfo.h Description forthcoming. Description forthcoming. Description forthcoming. Description forthcoming. Description forthcoming. Description forthcoming. Description forthcoming. Description forthcoming. Description forthcoming. Description forthcoming. Description forthcoming. Description forthcoming. Description forthcoming. Description forthcoming. Description forthcoming. Description forthcoming. GormPlacementInfo types

Description forthcoming.
gorm-1.2.24/Documentation/GormCore/GormGenericEditor.gsdoc0000644000000000000000000002112213426745045022171 0ustar rootroot GormGenericEditor class documentation Software documentation for the GormGenericEditor class GormCore/GormGenericEditor.h IBEditors IBSelectionOwners Description forthcoming. Description forthcoming. Description forthcoming. Description forthcoming. Description forthcoming. Description forthcoming. Description forthcoming. Description forthcoming. Description forthcoming. editorForDocument: aDocument Description forthcoming. setEditor: editor forDocument: aDocument Description forthcoming. activate Description forthcoming. addObject: anObject Description forthcoming. close Description forthcoming. closeSubeditors Description forthcoming. containsObject: object Description forthcoming. copySelection Description forthcoming. deleteSelection Description forthcoming. document Description forthcoming. editedObject Description forthcoming. fileTypes Description forthcoming. initWithObject: anObject inDocument: aDocument Description forthcoming. isOpened Description forthcoming. objects Description forthcoming. openSubeditorForObject: anObject Description forthcoming. orderFront Description forthcoming. pasteInSelection Description forthcoming. rectForObject: anObject Description forthcoming. refreshCells Description forthcoming. removeObject: anObject Description forthcoming. selectObjects: anArray Description forthcoming. wantsSelection Description forthcoming. window Description forthcoming. Software documentation for the GormGenericEditor(PrivateMethods) category GormCore/GormGenericEditor.h Warning this category is private, which means that the methods are for internal use by the package. You should not use them in external code. changeSelection: sender Description forthcoming. groupSelectionInBox Description forthcoming. groupSelectionInScrollView Description forthcoming. groupSelectionInSplitView Description forthcoming. groupSelectionInView Description forthcoming. setEditor: anEditor forDocument: doc Description forthcoming. ungroup Description forthcoming. willCloseDocument: aNotification Description forthcoming. gorm-1.2.24/Documentation/GormCore/Untitled.igsdoc0000644000000000000000000036664713426755205020611 0ustar rootroot{ categories = { GSClassSwapper = { GormCustomClassAdditions = GormPrivate; }; GSNibItem = { GormAdditions = GormPrivate; }; GormDocument = { MenuValidation = GormDocument; }; GormGenericEditor = { PrivateMethods = GormGenericEditor; }; GormViewEditor = { EditingAdditions = GormViewEditor; IntelligentPlacement = GormViewEditor; WindowAndRect = GormViewEditor; }; IBResourceManager = { GormAdditions = GormPrivate; }; NSCell = { GormAdditions = "NSCell+GormAdditions"; }; NSClassSwapper = { GormCustomClassAdditions = GormPrivate; }; NSColorWell = { GormExtensions = "NSColorWell+GormExtensions"; }; NSDateFormatter = { GormAdditions = GormPrivate; }; NSFontManager = { GormExtensions = "NSFontManager+GormExtensions"; }; NSImage = { GormNSImageAddition = GormImage; }; NSNumberFormatter = { GormAdditions = GormPrivate; }; NSObject = { GormAdditions = GormPrivate; GormOutlineViewDataSource = GormOutlineView; GormOutlineViewDelegate = GormOutlineView; }; NSView = { GormExtensions = "NSView+GormExtensions"; }; NSWindowTemplate = { Private = GormWindowTemplate; }; }; category = { "GSClassSwapper(GormCustomClassAdditions)" = GormPrivate; "GSNibItem(GormAdditions)" = GormPrivate; "GormDocument(MenuValidation)" = GormDocument; "GormGenericEditor(PrivateMethods)" = GormGenericEditor; "GormViewEditor(EditingAdditions)" = GormViewEditor; "GormViewEditor(IntelligentPlacement)" = GormViewEditor; "GormViewEditor(WindowAndRect)" = GormViewEditor; "IBResourceManager(GormAdditions)" = GormPrivate; "NSCell(GormAdditions)" = "NSCell+GormAdditions"; "NSClassSwapper(GormCustomClassAdditions)" = GormPrivate; "NSColorWell(GormExtensions)" = "NSColorWell+GormExtensions"; "NSDateFormatter(GormAdditions)" = GormPrivate; "NSFontManager(GormExtensions)" = "NSFontManager+GormExtensions"; "NSImage(GormNSImageAddition)" = GormImage; "NSNumberFormatter(GormAdditions)" = GormPrivate; "NSObject(GormAdditions)" = GormPrivate; "NSObject(GormOutlineViewDataSource)" = GormOutlineView; "NSObject(GormOutlineViewDelegate)" = GormOutlineView; "NSView(GormExtensions)" = "NSView+GormExtensions"; "NSWindowTemplate(Private)" = GormWindowTemplate; }; class = { GormBoxEditor = GormBoxEditor; GormClassEditor = GormClassEditor; GormClassInspector = GormClassInspector; GormClassManager = GormClassManager; GormClassPanelController = GormClassPanelController; GormClassProxy = GormPrivate; GormConnectionInspector = GormConnectionInspector; GormControlEditor = GormControlEditor; GormCustomClassInspector = GormCustomClassInspector; GormCustomView = GormCustomView; GormDocument = GormDocument; GormDocumentController = GormDocumentController; GormDocumentWindow = GormDocumentWindow; GormEditorToParent = GormDocument; GormFilePrefsManager = GormFilePrefsManager; GormFilesOwner = GormFilesOwner; GormFilesOwnerInspector = GormFilesOwner; GormFirstResponder = GormDocument; GormFontViewController = GormFontViewController; GormGenericEditor = GormGenericEditor; GormHelpInspector = GormHelpInspector; GormImage = GormImage; GormImageEditor = GormImageEditor; GormImageInspector = GormImageInspector; GormInspectorsManager = GormInspectorsManager; GormInternalViewEditor = GormInternalViewEditor; GormMatrixEditor = GormMatrixEditor; GormNSPanel = GormNSPanel; GormNSSplitViewInspector = GormNSSplitViewInspector; GormNSWindow = GormNSWindow; GormObjectEditor = GormObjectEditor; GormObjectInspector = GormObjectInspector; GormObjectProxy = GormPrivate; GormObjectToEditor = GormDocument; GormOpenGLView = GormOpenGLView; GormOutletActionHolder = GormOutlineView; GormOutlineView = GormOutlineView; GormPalettesManager = GormPalettesManager; GormPlacementHint = GormPlacementInfo; GormPlacementInfo = GormPlacementInfo; GormPlugin = GormPlugin; GormPluginManager = GormPluginManager; GormResource = GormResource; GormResourceEditor = GormResourceEditor; GormResourceManager = GormResourceManager; GormScrollViewAttributesInspector = GormScrollViewAttributesInspector; GormSetNameController = GormSetNameController; GormSound = GormSound; GormSoundEditor = GormSoundEditor; GormSoundInspector = GormSoundInspector; GormSoundView = GormSoundView; GormSplitViewEditor = GormSplitViewEditor; GormStandaloneViewEditor = GormStandaloneViewEditor; GormViewEditor = GormViewEditor; GormViewSizeInspector = GormViewSizeInspector; GormViewWindow = GormViewWindow; GormViewWithContentViewEditor = GormViewWithContentViewEditor; GormViewWithSubviewsEditor = GormViewWithSubviewsEditor; GormWindowEditor = GormWindowEditor; GormWindowTemplate = GormWindowTemplate; GormWrapperBuilder = GormWrapperBuilder; GormWrapperBuilderFactory = GormWrapperBuilder; GormWrapperLoader = GormWrapperLoader; GormWrapperLoaderFactory = GormWrapperLoader; }; classvars = { GormBoxEditor = { contentViewEditor = GormBoxEditor; }; GormClassEditor = { browserView = GormClassEditor; classManager = GormClassEditor; classesView = GormClassEditor; document = GormClassEditor; mainView = GormClassEditor; outlineView = GormClassEditor; scrollView = GormClassEditor; selectedClass = GormClassEditor; viewToggle = GormClassEditor; }; GormClassInspector = { actionData = GormClassInspector; actionTable = GormClassInspector; addAction = GormClassInspector; addOutlet = GormClassInspector; classField = GormClassInspector; classManager = GormClassInspector; currentClass = GormClassInspector; outletData = GormClassInspector; outletTable = GormClassInspector; parentClass = GormClassInspector; parentClassData = GormClassInspector; removeAction = GormClassInspector; removeOutlet = GormClassInspector; search = GormClassInspector; searchText = GormClassInspector; selectClass = GormClassInspector; tabView = GormClassInspector; theobject = GormClassInspector; }; GormClassManager = { categoryClasses = GormClassManager; classInformation = GormClassManager; customClassMap = GormClassManager; customClasses = GormClassManager; document = GormClassManager; }; GormClassPanelController = { allClasses = GormClassPanelController; classBrowser = GormClassPanelController; className = GormClassPanelController; classNameForm = GormClassPanelController; okButton = GormClassPanelController; panel = GormClassPanelController; }; GormClassProxy = { name = GormPrivate; t = GormPrivate; }; GormConnectionInspector = { actions = GormConnectionInspector; connectors = GormConnectionInspector; currentConnector = GormConnectionInspector; newBrowser = GormConnectionInspector; oldBrowser = GormConnectionInspector; outlets = GormConnectionInspector; }; GormCustomClassInspector = { "_classManager" = GormCustomClassInspector; "_currentSelectionClassName" = GormCustomClassInspector; "_document" = GormCustomClassInspector; "_parentClassName" = GormCustomClassInspector; "_rowToSelect" = GormCustomClassInspector; browser = GormCustomClassInspector; }; GormCustomView = { className = GormCustomView; }; GormDocument = { classManager = GormDocument; classesScrollView = GormDocument; classesView = GormDocument; connections = GormDocument; deferredWindows = GormDocument; filePrefsManager = GormDocument; filePrefsView = GormDocument; filePrefsWindow = GormDocument; filesOwner = GormDocument; firstResponder = GormDocument; fontManager = GormDocument; hidden = GormDocument; images = GormDocument; imagesScrollView = GormDocument; imagesView = GormDocument; infoData = GormDocument; isActive = GormDocument; isDocumentOpen = GormDocument; isOlderArchive = GormDocument; lastEditor = GormDocument; nameTable = GormDocument; objToName = GormDocument; objectsView = GormDocument; openEditors = GormDocument; quitItem = GormDocument; resourceManagers = GormDocument; savedEditors = GormDocument; savedMenu = GormDocument; scmWrapper = GormDocument; scrollView = GormDocument; selectionBox = GormDocument; sounds = GormDocument; soundsScrollView = GormDocument; soundsView = GormDocument; toolbar = GormDocument; topLevelObjects = GormDocument; visibleWindows = GormDocument; window = GormDocument; }; GormDocumentWindow = { "_document" = GormDocumentWindow; dragMgr = GormDocumentWindow; }; GormFilePrefsManager = { archiveType = GormFilePrefsManager; archiveTypeName = GormFilePrefsManager; currentProfile = GormFilePrefsManager; fileType = GormFilePrefsManager; gormAppVersion = GormFilePrefsManager; itable = GormFilePrefsManager; iwindow = GormFilePrefsManager; showIncompatibilities = GormFilePrefsManager; targetVersion = GormFilePrefsManager; targetVersionName = GormFilePrefsManager; version = GormFilePrefsManager; versionProfiles = GormFilePrefsManager; }; GormFilesOwner = { className = GormFilesOwner; }; GormFilesOwnerInspector = { browser = GormFilesOwner; classes = GormFilesOwner; hasConnections = GormFilesOwner; }; GormFontViewController = { encodeButton = GormFontViewController; fontSelector = GormFontViewController; view = GormFontViewController; }; GormGenericEditor = { activated = GormGenericEditor; closed = GormGenericEditor; document = GormGenericEditor; dragPb = GormGenericEditor; dragType = GormGenericEditor; objects = GormGenericEditor; resourceManager = GormGenericEditor; selected = GormGenericEditor; }; GormHelpInspector = { toolTip = GormHelpInspector; }; GormImage = { image = GormImage; smallImage = GormImage; }; GormImageInspector = { "_currentImage" = GormImageInspector; height = GormImageInspector; imageView = GormImageInspector; name = GormImageInspector; width = GormImageInspector; }; GormInspectorsManager = { buttonView = GormInspectorsManager; cache = GormInspectorsManager; current = GormInspectorsManager; hiddenDuringTest = GormInspectorsManager; oldInspector = GormInspectorsManager; origFrame = GormInspectorsManager; }; GormMatrixEditor = { selected = GormMatrixEditor; selectedCol = GormMatrixEditor; selectedRow = GormMatrixEditor; }; GormNSPanel = { "_gormReleasedWhenClosed" = GormNSPanel; "_gormStyleMask" = GormNSPanel; autoPositionMask = GormNSPanel; }; GormNSSplitViewInspector = { orientation = GormNSSplitViewInspector; }; GormNSWindow = { "_gormReleasedWhenClosed" = GormNSWindow; "_gormStyleMask" = GormNSWindow; autoPositionMask = GormNSWindow; }; GormObjectInspector = { browser = GormObjectInspector; gets = GormObjectInspector; isString = GormObjectInspector; label = GormObjectInspector; sets = GormObjectInspector; types = GormObjectInspector; value = GormObjectInspector; }; GormOpenGLView = { rtri = GormOpenGLView; timer = GormOpenGLView; }; GormOutletActionHolder = { "_name" = GormOutlineView; }; GormOutlineView = { "_actionColumn" = GormOutlineView; "_attributeOffset" = GormOutlineView; "_edittype" = GormOutlineView; "_isEditing" = GormOutlineView; "_itemBeingEdited" = GormOutlineView; "_menuItem" = GormOutlineView; "_outletColumn" = GormOutlineView; }; GormPalettesManager = { bundles = GormPalettesManager; current = GormPalettesManager; dragView = GormPalettesManager; hiddenDuringTest = GormPalettesManager; importedClasses = GormPalettesManager; importedImages = GormPalettesManager; importedSounds = GormPalettesManager; palettes = GormPalettesManager; panel = GormPalettesManager; selectionView = GormPalettesManager; substituteClasses = GormPalettesManager; }; GormPlacementHint = { "_border" = GormPlacementInfo; "_end" = GormPlacementInfo; "_frame" = GormPlacementInfo; "_position" = GormPlacementInfo; "_start" = GormPlacementInfo; }; GormPlacementInfo = { bottomHints = GormPlacementInfo; firstPass = GormPlacementInfo; hintFrame = GormPlacementInfo; hintInitialized = GormPlacementInfo; knob = GormPlacementInfo; lastBottomRect = GormPlacementInfo; lastFrame = GormPlacementInfo; lastLeftRect = GormPlacementInfo; lastRightRect = GormPlacementInfo; lastTopRect = GormPlacementInfo; leftHints = GormPlacementInfo; oldRect = GormPlacementInfo; resizingIn = GormPlacementInfo; rightHints = GormPlacementInfo; topHints = GormPlacementInfo; }; GormPluginManager = { bundles = GormPluginManager; pluginNames = GormPluginManager; plugins = GormPluginManager; pluginsDict = GormPluginManager; }; GormResource = { data = GormResource; fileName = GormResource; fileType = GormResource; isInWrapper = GormResource; isLocalized = GormResource; isSystemResource = GormResource; language = GormResource; name = GormResource; path = GormResource; project = GormResource; }; GormScrollViewAttributesInspector = { borderMatrix = GormScrollViewAttributesInspector; color = GormScrollViewAttributesInspector; horizontalRuler = GormScrollViewAttributesInspector; horizontalScroll = GormScrollViewAttributesInspector; lineAmount = GormScrollViewAttributesInspector; pageContext = GormScrollViewAttributesInspector; verticalRuler = GormScrollViewAttributesInspector; verticalScroll = GormScrollViewAttributesInspector; }; GormSetNameController = { cancelButton = GormSetNameController; okButton = GormSetNameController; textField = GormSetNameController; window = GormSetNameController; }; GormSoundInspector = { soundView = GormSoundInspector; }; GormSoundView = { "_sound" = GormSoundView; }; GormViewEditor = { "_editedObject" = GormViewEditor; activated = GormViewEditor; closed = GormViewEditor; document = GormViewEditor; parent = GormViewEditor; viewWindow = GormViewEditor; }; GormViewSizeInspector = { bottom = GormViewSizeInspector; height = GormViewSizeInspector; left = GormViewSizeInspector; right = GormViewSizeInspector; sizeForm = GormViewSizeInspector; top = GormViewSizeInspector; width = GormViewSizeInspector; }; GormViewWindow = { "_view" = GormViewWindow; }; GormViewWithContentViewEditor = { contentViewEditor = GormViewWithContentViewEditor; }; GormViewWithSubviewsEditor = { "_displaySelection" = GormViewWithSubviewsEditor; "_followGuideLine" = GormViewWithSubviewsEditor; opened = GormViewWithSubviewsEditor; openedSubeditor = GormViewWithSubviewsEditor; selection = GormViewWithSubviewsEditor; }; GormWindowEditor = { dragPb = GormWindowEditor; dragType = GormWindowEditor; "edit_view" = GormWindowEditor; isLinkSource = GormWindowEditor; subeditors = GormWindowEditor; }; GormWindowTemplate = { "_tempFlag" = GormWindowTemplate; }; GormWrapperBuilder = { document = GormWrapperBuilder; }; GormWrapperLoader = { document = GormWrapperLoader; }; }; function = { GormDrawKnobsForRect = GormViewKnobs; GormDrawOpenKnobsForRect = GormViewKnobs; GormExtBoundsForRect = GormViewKnobs; GormKnobHitInRect = GormViewKnobs; GormShowFastKnobFills = GormViewKnobs; GormShowFrameWithKnob = GormViewKnobs; "_GSObjCMethodNamesForClass" = GormFunctions; "_GSObjCVariableNames" = GormFunctions; allSubviews = GormFunctions; appVersion = GormFunctions; colorFromDict = GormFunctions; colorToDict = GormFunctions; cutFileLabelText = GormFunctions; defaultCellSize = GormFunctions; findAll = GormFunctions; findAllSubmenus = GormFunctions; findAllWithArray = GormFunctions; formatAction = GormFunctions; formatOutlet = GormFunctions; identifierString = GormFunctions; minimalContainerFrame = GormFunctions; promptForClassName = GormFunctions; subviewsForView = GormFunctions; systemImagesList = GormFunctions; systemSoundsList = GormFunctions; }; ivariable = { "_actionColumn" = { GormOutlineView = GormOutlineView; }; "_attributeOffset" = { GormOutlineView = GormOutlineView; }; "_border" = { GormPlacementHint = GormPlacementInfo; }; "_classManager" = { GormCustomClassInspector = GormCustomClassInspector; }; "_currentImage" = { GormImageInspector = GormImageInspector; }; "_currentSelectionClassName" = { GormCustomClassInspector = GormCustomClassInspector; }; "_displaySelection" = { GormViewWithSubviewsEditor = GormViewWithSubviewsEditor; }; "_document" = { GormCustomClassInspector = GormCustomClassInspector; GormDocumentWindow = GormDocumentWindow; }; "_editedObject" = { GormViewEditor = GormViewEditor; }; "_edittype" = { GormOutlineView = GormOutlineView; }; "_end" = { GormPlacementHint = GormPlacementInfo; }; "_followGuideLine" = { GormViewWithSubviewsEditor = GormViewWithSubviewsEditor; }; "_frame" = { GormPlacementHint = GormPlacementInfo; }; "_gormReleasedWhenClosed" = { GormNSPanel = GormNSPanel; GormNSWindow = GormNSWindow; }; "_gormStyleMask" = { GormNSPanel = GormNSPanel; GormNSWindow = GormNSWindow; }; "_isEditing" = { GormOutlineView = GormOutlineView; }; "_itemBeingEdited" = { GormOutlineView = GormOutlineView; }; "_menuItem" = { GormOutlineView = GormOutlineView; }; "_name" = { GormOutletActionHolder = GormOutlineView; }; "_outletColumn" = { GormOutlineView = GormOutlineView; }; "_parentClassName" = { GormCustomClassInspector = GormCustomClassInspector; }; "_position" = { GormPlacementHint = GormPlacementInfo; }; "_rowToSelect" = { GormCustomClassInspector = GormCustomClassInspector; }; "_sound" = { GormSoundView = GormSoundView; }; "_start" = { GormPlacementHint = GormPlacementInfo; }; "_tempFlag" = { GormWindowTemplate = GormWindowTemplate; }; "_view" = { GormViewWindow = GormViewWindow; }; actionData = { GormClassInspector = GormClassInspector; }; actionTable = { GormClassInspector = GormClassInspector; }; actions = { GormConnectionInspector = GormConnectionInspector; }; activated = { GormGenericEditor = GormGenericEditor; GormViewEditor = GormViewEditor; }; addAction = { GormClassInspector = GormClassInspector; }; addOutlet = { GormClassInspector = GormClassInspector; }; allClasses = { GormClassPanelController = GormClassPanelController; }; archiveType = { GormFilePrefsManager = GormFilePrefsManager; }; archiveTypeName = { GormFilePrefsManager = GormFilePrefsManager; }; autoPositionMask = { GormNSPanel = GormNSPanel; GormNSWindow = GormNSWindow; }; borderMatrix = { GormScrollViewAttributesInspector = GormScrollViewAttributesInspector; }; bottom = { GormViewSizeInspector = GormViewSizeInspector; }; bottomHints = { GormPlacementInfo = GormPlacementInfo; }; browser = { GormCustomClassInspector = GormCustomClassInspector; GormFilesOwnerInspector = GormFilesOwner; GormObjectInspector = GormObjectInspector; }; browserView = { GormClassEditor = GormClassEditor; }; bundles = { GormPalettesManager = GormPalettesManager; GormPluginManager = GormPluginManager; }; buttonView = { GormInspectorsManager = GormInspectorsManager; }; cache = { GormInspectorsManager = GormInspectorsManager; }; cancelButton = { GormSetNameController = GormSetNameController; }; categoryClasses = { GormClassManager = GormClassManager; }; classBrowser = { GormClassPanelController = GormClassPanelController; }; classField = { GormClassInspector = GormClassInspector; }; classInformation = { GormClassManager = GormClassManager; }; classManager = { GormClassEditor = GormClassEditor; GormClassInspector = GormClassInspector; GormDocument = GormDocument; }; className = { GormClassPanelController = GormClassPanelController; GormCustomView = GormCustomView; GormFilesOwner = GormFilesOwner; }; classNameForm = { GormClassPanelController = GormClassPanelController; }; classes = { GormFilesOwnerInspector = GormFilesOwner; }; classesScrollView = { GormDocument = GormDocument; }; classesView = { GormClassEditor = GormClassEditor; GormDocument = GormDocument; }; closed = { GormGenericEditor = GormGenericEditor; GormViewEditor = GormViewEditor; }; color = { GormScrollViewAttributesInspector = GormScrollViewAttributesInspector; }; connections = { GormDocument = GormDocument; }; connectors = { GormConnectionInspector = GormConnectionInspector; }; contentViewEditor = { GormBoxEditor = GormBoxEditor; GormViewWithContentViewEditor = GormViewWithContentViewEditor; }; current = { GormInspectorsManager = GormInspectorsManager; GormPalettesManager = GormPalettesManager; }; currentClass = { GormClassInspector = GormClassInspector; }; currentConnector = { GormConnectionInspector = GormConnectionInspector; }; currentProfile = { GormFilePrefsManager = GormFilePrefsManager; }; customClassMap = { GormClassManager = GormClassManager; }; customClasses = { GormClassManager = GormClassManager; }; data = { GormResource = GormResource; }; deferredWindows = { GormDocument = GormDocument; }; document = { GormClassEditor = GormClassEditor; GormClassManager = GormClassManager; GormGenericEditor = GormGenericEditor; GormViewEditor = GormViewEditor; GormWrapperBuilder = GormWrapperBuilder; GormWrapperLoader = GormWrapperLoader; }; dragMgr = { GormDocumentWindow = GormDocumentWindow; }; dragPb = { GormGenericEditor = GormGenericEditor; GormWindowEditor = GormWindowEditor; }; dragType = { GormGenericEditor = GormGenericEditor; GormWindowEditor = GormWindowEditor; }; dragView = { GormPalettesManager = GormPalettesManager; }; "edit_view" = { GormWindowEditor = GormWindowEditor; }; encodeButton = { GormFontViewController = GormFontViewController; }; fileName = { GormResource = GormResource; }; filePrefsManager = { GormDocument = GormDocument; }; filePrefsView = { GormDocument = GormDocument; }; filePrefsWindow = { GormDocument = GormDocument; }; fileType = { GormFilePrefsManager = GormFilePrefsManager; GormResource = GormResource; }; filesOwner = { GormDocument = GormDocument; }; firstPass = { GormPlacementInfo = GormPlacementInfo; }; firstResponder = { GormDocument = GormDocument; }; fontManager = { GormDocument = GormDocument; }; fontSelector = { GormFontViewController = GormFontViewController; }; gets = { GormObjectInspector = GormObjectInspector; }; gormAppVersion = { GormFilePrefsManager = GormFilePrefsManager; }; hasConnections = { GormFilesOwnerInspector = GormFilesOwner; }; height = { GormImageInspector = GormImageInspector; GormViewSizeInspector = GormViewSizeInspector; }; hidden = { GormDocument = GormDocument; }; hiddenDuringTest = { GormInspectorsManager = GormInspectorsManager; GormPalettesManager = GormPalettesManager; }; hintFrame = { GormPlacementInfo = GormPlacementInfo; }; hintInitialized = { GormPlacementInfo = GormPlacementInfo; }; horizontalRuler = { GormScrollViewAttributesInspector = GormScrollViewAttributesInspector; }; horizontalScroll = { GormScrollViewAttributesInspector = GormScrollViewAttributesInspector; }; image = { GormImage = GormImage; }; imageView = { GormImageInspector = GormImageInspector; }; images = { GormDocument = GormDocument; }; imagesScrollView = { GormDocument = GormDocument; }; imagesView = { GormDocument = GormDocument; }; importedClasses = { GormPalettesManager = GormPalettesManager; }; importedImages = { GormPalettesManager = GormPalettesManager; }; importedSounds = { GormPalettesManager = GormPalettesManager; }; infoData = { GormDocument = GormDocument; }; isActive = { GormDocument = GormDocument; }; isDocumentOpen = { GormDocument = GormDocument; }; isInWrapper = { GormResource = GormResource; }; isLinkSource = { GormWindowEditor = GormWindowEditor; }; isLocalized = { GormResource = GormResource; }; isOlderArchive = { GormDocument = GormDocument; }; isString = { GormObjectInspector = GormObjectInspector; }; isSystemResource = { GormResource = GormResource; }; itable = { GormFilePrefsManager = GormFilePrefsManager; }; iwindow = { GormFilePrefsManager = GormFilePrefsManager; }; knob = { GormPlacementInfo = GormPlacementInfo; }; label = { GormObjectInspector = GormObjectInspector; }; language = { GormResource = GormResource; }; lastBottomRect = { GormPlacementInfo = GormPlacementInfo; }; lastEditor = { GormDocument = GormDocument; }; lastFrame = { GormPlacementInfo = GormPlacementInfo; }; lastLeftRect = { GormPlacementInfo = GormPlacementInfo; }; lastRightRect = { GormPlacementInfo = GormPlacementInfo; }; lastTopRect = { GormPlacementInfo = GormPlacementInfo; }; left = { GormViewSizeInspector = GormViewSizeInspector; }; leftHints = { GormPlacementInfo = GormPlacementInfo; }; lineAmount = { GormScrollViewAttributesInspector = GormScrollViewAttributesInspector; }; mainView = { GormClassEditor = GormClassEditor; }; name = { GormClassProxy = GormPrivate; GormImageInspector = GormImageInspector; GormResource = GormResource; }; nameTable = { GormDocument = GormDocument; }; newBrowser = { GormConnectionInspector = GormConnectionInspector; }; objToName = { GormDocument = GormDocument; }; objects = { GormGenericEditor = GormGenericEditor; }; objectsView = { GormDocument = GormDocument; }; okButton = { GormClassPanelController = GormClassPanelController; GormSetNameController = GormSetNameController; }; oldBrowser = { GormConnectionInspector = GormConnectionInspector; }; oldInspector = { GormInspectorsManager = GormInspectorsManager; }; oldRect = { GormPlacementInfo = GormPlacementInfo; }; openEditors = { GormDocument = GormDocument; }; opened = { GormViewWithSubviewsEditor = GormViewWithSubviewsEditor; }; openedSubeditor = { GormViewWithSubviewsEditor = GormViewWithSubviewsEditor; }; orientation = { GormNSSplitViewInspector = GormNSSplitViewInspector; }; origFrame = { GormInspectorsManager = GormInspectorsManager; }; outletData = { GormClassInspector = GormClassInspector; }; outletTable = { GormClassInspector = GormClassInspector; }; outlets = { GormConnectionInspector = GormConnectionInspector; }; outlineView = { GormClassEditor = GormClassEditor; }; pageContext = { GormScrollViewAttributesInspector = GormScrollViewAttributesInspector; }; palettes = { GormPalettesManager = GormPalettesManager; }; panel = { GormClassPanelController = GormClassPanelController; GormPalettesManager = GormPalettesManager; }; parent = { GormViewEditor = GormViewEditor; }; parentClass = { GormClassInspector = GormClassInspector; }; parentClassData = { GormClassInspector = GormClassInspector; }; path = { GormResource = GormResource; }; pluginNames = { GormPluginManager = GormPluginManager; }; plugins = { GormPluginManager = GormPluginManager; }; pluginsDict = { GormPluginManager = GormPluginManager; }; project = { GormResource = GormResource; }; quitItem = { GormDocument = GormDocument; }; removeAction = { GormClassInspector = GormClassInspector; }; removeOutlet = { GormClassInspector = GormClassInspector; }; resizingIn = { GormPlacementInfo = GormPlacementInfo; }; resourceManager = { GormGenericEditor = GormGenericEditor; }; resourceManagers = { GormDocument = GormDocument; }; right = { GormViewSizeInspector = GormViewSizeInspector; }; rightHints = { GormPlacementInfo = GormPlacementInfo; }; rtri = { GormOpenGLView = GormOpenGLView; }; savedEditors = { GormDocument = GormDocument; }; savedMenu = { GormDocument = GormDocument; }; scmWrapper = { GormDocument = GormDocument; }; scrollView = { GormClassEditor = GormClassEditor; GormDocument = GormDocument; }; search = { GormClassInspector = GormClassInspector; }; searchText = { GormClassInspector = GormClassInspector; }; selectClass = { GormClassInspector = GormClassInspector; }; selected = { GormGenericEditor = GormGenericEditor; GormMatrixEditor = GormMatrixEditor; }; selectedClass = { GormClassEditor = GormClassEditor; }; selectedCol = { GormMatrixEditor = GormMatrixEditor; }; selectedRow = { GormMatrixEditor = GormMatrixEditor; }; selection = { GormViewWithSubviewsEditor = GormViewWithSubviewsEditor; }; selectionBox = { GormDocument = GormDocument; }; selectionView = { GormPalettesManager = GormPalettesManager; }; sets = { GormObjectInspector = GormObjectInspector; }; showIncompatibilities = { GormFilePrefsManager = GormFilePrefsManager; }; sizeForm = { GormViewSizeInspector = GormViewSizeInspector; }; smallImage = { GormImage = GormImage; }; soundView = { GormSoundInspector = GormSoundInspector; }; sounds = { GormDocument = GormDocument; }; soundsScrollView = { GormDocument = GormDocument; }; soundsView = { GormDocument = GormDocument; }; subeditors = { GormWindowEditor = GormWindowEditor; }; substituteClasses = { GormPalettesManager = GormPalettesManager; }; t = { GormClassProxy = GormPrivate; }; tabView = { GormClassInspector = GormClassInspector; }; targetVersion = { GormFilePrefsManager = GormFilePrefsManager; }; targetVersionName = { GormFilePrefsManager = GormFilePrefsManager; }; textField = { GormSetNameController = GormSetNameController; }; theobject = { GormClassInspector = GormClassInspector; }; timer = { GormOpenGLView = GormOpenGLView; }; toolTip = { GormHelpInspector = GormHelpInspector; }; toolbar = { GormDocument = GormDocument; }; top = { GormViewSizeInspector = GormViewSizeInspector; }; topHints = { GormPlacementInfo = GormPlacementInfo; }; topLevelObjects = { GormDocument = GormDocument; }; types = { GormObjectInspector = GormObjectInspector; }; value = { GormObjectInspector = GormObjectInspector; }; version = { GormFilePrefsManager = GormFilePrefsManager; }; versionProfiles = { GormFilePrefsManager = GormFilePrefsManager; }; verticalRuler = { GormScrollViewAttributesInspector = GormScrollViewAttributesInspector; }; verticalScroll = { GormScrollViewAttributesInspector = GormScrollViewAttributesInspector; }; view = { GormFontViewController = GormFontViewController; }; viewToggle = { GormClassEditor = GormClassEditor; }; viewWindow = { GormViewEditor = GormViewEditor; }; visibleWindows = { GormDocument = GormDocument; }; width = { GormImageInspector = GormImageInspector; GormViewSizeInspector = GormViewSizeInspector; }; window = { GormDocument = GormDocument; GormSetNameController = GormSetNameController; }; }; method = { "+classEditorForDocument:" = { GormClassEditor = GormClassEditor; }; "+currentVersion" = { GormFilePrefsManager = GormFilePrefsManager; }; "+defaultFormat" = { "NSDateFormatter(GormAdditions)" = GormPrivate; "NSNumberFormatter(GormAdditions)" = GormPrivate; }; "+defaultFormatValue" = { "NSDateFormatter(GormAdditions)" = GormPrivate; "NSNumberFormatter(GormAdditions)" = GormPrivate; }; "+editorForDocument:" = { GormGenericEditor = GormGenericEditor; }; "+fileType" = { GormWrapperBuilder = GormWrapperBuilder; GormWrapperLoader = GormWrapperLoader; }; "+formatAtIndex:" = { "NSDateFormatter(GormAdditions)" = GormPrivate; "NSNumberFormatter(GormAdditions)" = GormPrivate; }; "+formatCount" = { "NSDateFormatter(GormAdditions)" = GormPrivate; "NSNumberFormatter(GormAdditions)" = GormPrivate; }; "+imageForData:withFileName:inWrapper:" = { GormImage = GormImage; }; "+imageForPath:" = { GormImage = GormImage; }; "+imageForPath:inWrapper:" = { GormImage = GormImage; }; "+indexOfFormat:" = { "NSDateFormatter(GormAdditions)" = GormPrivate; "NSNumberFormatter(GormAdditions)" = GormPrivate; }; "+negativeFormatAtIndex:" = { "NSNumberFormatter(GormAdditions)" = GormPrivate; }; "+negativeValueAtIndex:" = { "NSNumberFormatter(GormAdditions)" = GormPrivate; }; "+positiveFormatAtIndex:" = { "NSNumberFormatter(GormAdditions)" = GormPrivate; }; "+positiveValueAtIndex:" = { "NSNumberFormatter(GormAdditions)" = GormPrivate; }; "+registerForAllPboardTypes:inDocument:" = { "IBResourceManager(GormAdditions)" = GormPrivate; }; "+registerWrapperBuilderClass:" = { GormWrapperBuilderFactory = GormWrapperBuilder; }; "+registerWrapperLoaderClass:" = { GormWrapperLoaderFactory = GormWrapperLoader; }; "+resourceForPath:" = { GormResource = GormResource; }; "+resourceForPath:inWrapper:" = { GormResource = GormResource; }; "+setEditor:forDocument:" = { GormGenericEditor = GormGenericEditor; GormObjectEditor = GormObjectEditor; }; "+setIsInInterfaceBuilder:" = { "GSClassSwapper(GormCustomClassAdditions)" = GormPrivate; "NSClassSwapper(GormCustomClassAdditions)" = GormPrivate; }; "+sharedGormFontViewController" = { GormFontViewController = GormFontViewController; }; "+sharedWrapperBuilderFactory" = { GormWrapperBuilderFactory = GormWrapperBuilder; }; "+sharedWrapperLoaderFactory" = { GormWrapperLoaderFactory = GormWrapperLoader; }; "+soundForData:withFileName:inWrapper:" = { GormSound = GormSound; }; "+soundForPath:" = { GormSound = GormSound; }; "+soundForPath:inWrapper:" = { GormSound = GormSound; }; "+zeroFormatAtIndex:" = { "NSNumberFormatter(GormAdditions)" = GormPrivate; }; "-_currentClass" = { GormClassInspector = GormClassInspector; }; "-_isReleasedWhenClosed" = { GormNSPanel = GormNSPanel; GormNSWindow = GormNSWindow; }; "-_refreshView" = { GormClassInspector = GormClassInspector; }; "-_setReleasedWhenClosed:" = { GormNSPanel = GormNSPanel; GormNSWindow = GormNSWindow; }; "-_setStyleMask:" = { GormNSPanel = GormNSPanel; GormNSWindow = GormNSWindow; }; "-_styleMask" = { GormNSPanel = GormNSPanel; GormNSWindow = GormNSWindow; }; "-acceptsTypeFromArray:" = { GormObjectEditor = GormObjectEditor; GormWindowEditor = GormWindowEditor; }; "-actionColumn" = { GormOutlineView = GormOutlineView; }; "-actionExists:onClassNamed:" = { GormClassManager = GormClassManager; }; "-activate" = { GormGenericEditor = GormGenericEditor; GormViewEditor = GormViewEditor; GormWindowEditor = GormWindowEditor; }; "-addAction:" = { GormClassInspector = GormClassInspector; }; "-addAction:forClassNamed:" = { GormClassManager = GormClassManager; }; "-addAction:forObject:" = { GormClassManager = GormClassManager; }; "-addActions:forClassNamed:" = { GormClassManager = GormClassManager; }; "-addAttributeToClass" = { GormClassEditor = GormClassEditor; }; "-addAttributeToClass:" = { GormDocument = GormDocument; }; "-addClass:" = { "(GormServer)" = GormServer; }; "-addClassNamed:withSuperClassNamed:withActions:withOutlets:" = { GormClassManager = GormClassManager; }; "-addClassNamed:withSuperClassNamed:withActions:withOutlets:isCustom:" = { GormClassManager = GormClassManager; }; "-addClassWithSuperClassName:" = { GormClassManager = GormClassManager; }; "-addNewActionToClassNamed:" = { GormClassManager = GormClassManager; }; "-addNewOutletToClassNamed:" = { GormClassManager = GormClassManager; }; "-addObject:" = { GormGenericEditor = GormGenericEditor; }; "-addOutlet:" = { GormClassInspector = GormClassInspector; }; "-addOutlet:forClassNamed:" = { GormClassManager = GormClassManager; }; "-addOutlet:forObject:" = { GormClassManager = GormClassManager; }; "-addOutlets:forClassNamed:" = { GormClassManager = GormClassManager; }; "-addSystemResources" = { GormResourceEditor = GormResourceEditor; }; "-alignSelectedObjects:" = { GormDocument = GormDocument; }; "-allActionsForClassNamed:" = { GormClassManager = GormClassManager; }; "-allActionsForObject:" = { GormClassManager = GormClassManager; }; "-allClassNames" = { GormClassManager = GormClassManager; }; "-allCustomClassNames" = { GormClassManager = GormClassManager; }; "-allCustomSubclassesOf:" = { GormClassManager = GormClassManager; }; "-allManagedPboardTypes" = { GormDocument = GormDocument; }; "-allOutletsForClassNamed:" = { GormClassManager = GormClassManager; }; "-allOutletsForObject:" = { GormClassManager = GormClassManager; }; "-allSubclassesOf:" = { GormClassManager = GormClassManager; }; "-allSuperClassesOf:" = { GormClassManager = GormClassManager; }; "-allocSubstitute" = { "NSObject(GormAdditions)" = GormPrivate; }; "-archiveByName" = { "NSImage(GormNSImageAddition)" = GormImage; }; "-archiveTypeName" = { GormFilePrefsManager = GormFilePrefsManager; }; "-arrangeSelectedObjects:" = { GormDocument = GormDocument; }; "-attributeOffset" = { GormOutlineView = GormOutlineView; }; "-autoPositionMask" = { GormNSPanel = GormNSPanel; GormNSWindow = GormNSWindow; }; "-border" = { GormPlacementHint = GormPlacementInfo; }; "-borderSelected:" = { GormScrollViewAttributesInspector = GormScrollViewAttributesInspector; }; "-browserAction:" = { GormClassPanelController = GormClassPanelController; }; "-buildDocumentForType:" = { GormDocumentController = GormDocumentController; }; "-buildFileWrapperDictionaryWithDocument:" = { "(GormWrapperBuilder)" = GormWrapperBuilder; }; "-buildFileWrapperWithDocument:" = { "(GormWrapperBuilder)" = GormWrapperBuilder; }; "-canBeOpened" = { GormViewEditor = GormViewEditor; }; "-canInstantiateClassNamed:" = { GormClassManager = GormClassManager; }; "-cancelHit:" = { GormSetNameController = GormSetNameController; }; "-changeClassName:" = { GormClassInspector = GormClassInspector; }; "-changeFont:" = { GormInternalViewEditor = GormInternalViewEditor; GormViewWithSubviewsEditor = GormViewWithSubviewsEditor; GormWindowEditor = GormWindowEditor; }; "-changeSelection:" = { "GormGenericEditor(PrivateMethods)" = GormGenericEditor; }; "-changeToTopLevelEditorAcceptingTypes:andFileType:" = { GormDocument = GormDocument; }; "-changeToViewWithTag:" = { GormDocument = GormDocument; }; "-classIsSelected" = { GormDocument = GormDocument; }; "-classManager" = { "(Gorm)" = GormProtocol; GormDocument = GormDocument; }; "-classMenu" = { "(Gorm)" = GormProtocol; }; "-className" = { "GSNibItem(GormAdditions)" = GormPrivate; GormClassProxy = GormPrivate; GormCustomView = GormCustomView; GormFilesOwner = GormFilesOwner; }; "-classNameForObject:" = { GormClassManager = GormClassManager; }; "-close" = { GormGenericEditor = GormGenericEditor; GormViewEditor = GormViewEditor; GormWindowEditor = GormWindowEditor; }; "-closeAllEditors" = { GormDocument = GormDocument; }; "-closeSubeditors" = { GormGenericEditor = GormGenericEditor; GormViewWithSubviewsEditor = GormViewWithSubviewsEditor; GormWindowEditor = GormWindowEditor; }; "-colorSelected:" = { GormScrollViewAttributesInspector = GormScrollViewAttributesInspector; }; "-connectDestination" = { "(Gorm)" = GormProtocol; }; "-connectInspectorClassName" = { GormClassProxy = GormPrivate; }; "-connectSource" = { "(Gorm)" = GormProtocol; }; "-containsObject:" = { GormGenericEditor = GormGenericEditor; }; "-convertFont:" = { GormFontViewController = GormFontViewController; }; "-copy:" = { "(Gorm)" = GormProtocol; }; "-copySelection" = { GormGenericEditor = GormGenericEditor; GormViewWithSubviewsEditor = GormViewWithSubviewsEditor; }; "-createClassFiles:" = { GormClassEditor = GormClassEditor; GormDocument = GormDocument; }; "-createResourceManagers" = { GormDocument = GormDocument; }; "-createSubclass:" = { GormClassEditor = GormClassEditor; GormDocument = GormDocument; }; "-currentSelectionIsClass" = { GormClassEditor = GormClassEditor; }; "-customClassForName:" = { GormClassManager = GormClassManager; }; "-customClassForObject:" = { GormClassManager = GormClassManager; }; "-customClassMap" = { GormClassManager = GormClassManager; }; "-customSubClassesOf:" = { GormClassManager = GormClassManager; }; "-cut:" = { "(Gorm)" = GormProtocol; }; "-data" = { GormClassManager = GormClassManager; GormFilePrefsManager = GormFilePrefsManager; GormResource = GormResource; }; "-deactivate" = { GormViewEditor = GormViewEditor; GormWindowEditor = GormWindowEditor; }; "-deactivateEditors" = { GormDocument = GormDocument; }; "-deactivateSubeditors" = { GormViewWithSubviewsEditor = GormViewWithSubviewsEditor; }; "-deferredWindows" = { GormDocument = GormDocument; }; "-delete:" = { "(Gorm)" = GormProtocol; }; "-deleteClass:" = { "(GormServer)" = GormServer; }; "-deleteSelection" = { GormClassEditor = GormClassEditor; GormGenericEditor = GormGenericEditor; GormWindowEditor = GormWindowEditor; }; "-destroyAndListSubviews" = { GormBoxEditor = GormBoxEditor; GormInternalViewEditor = GormInternalViewEditor; GormSplitViewEditor = GormSplitViewEditor; }; "-detachSubviews" = { GormViewEditor = GormViewEditor; }; "-dictionaryForClassNamed:" = { GormClassManager = GormClassManager; }; "-displayConnectionBetween:and:" = { "(Gorm)" = GormProtocol; }; "-distanceToFrame:" = { GormPlacementHint = GormPlacementInfo; }; "-document" = { GormGenericEditor = GormGenericEditor; GormViewEditor = GormViewEditor; GormWindowEditor = GormWindowEditor; }; "-draggedImage:endedAt:deposited:" = { GormObjectEditor = GormObjectEditor; GormResourceEditor = GormResourceEditor; GormWindowEditor = GormWindowEditor; }; "-draggingSourceOperationMaskForLocal:" = { GormObjectEditor = GormObjectEditor; GormResourceEditor = GormResourceEditor; GormWindowEditor = GormWindowEditor; }; "-editClass" = { GormClassEditor = GormClassEditor; }; "-editTextField:withEvent:" = { "GormViewEditor(EditingAdditions)" = GormViewEditor; }; "-editType" = { GormOutlineView = GormOutlineView; }; "-editedObject" = { GormGenericEditor = GormGenericEditor; GormViewEditor = GormViewEditor; }; "-end" = { GormPlacementHint = GormPlacementInfo; }; "-endTesting:" = { "(Gorm)" = GormProtocol; }; "-exportStrings:" = { GormDocument = GormDocument; }; "-extraActionsForObject:" = { GormClassManager = GormClassManager; }; "-extraOutletsForObject:" = { GormClassManager = GormClassManager; }; "-filePrefsManager" = { GormDocument = GormDocument; }; "-fileTypeName" = { GormFilePrefsManager = GormFilePrefsManager; }; "-fileTypes" = { GormClassEditor = GormClassEditor; GormGenericEditor = GormGenericEditor; }; "-filesOwner" = { GormDocument = GormDocument; }; "-findClassByName:" = { GormClassManager = GormClassManager; }; "-firstResponder" = { GormDocument = GormDocument; }; "-fontManager" = { GormDocument = GormDocument; }; "-frame" = { GormPlacementHint = GormPlacementInfo; }; "-frameDidChange:" = { GormViewEditor = GormViewEditor; }; "-getName" = { GormOutletActionHolder = GormOutlineView; }; "-groupSelectionInBox" = { "GormGenericEditor(PrivateMethods)" = GormGenericEditor; GormViewWithContentViewEditor = GormViewWithContentViewEditor; }; "-groupSelectionInBox:" = { "(Gorm)" = GormProtocol; }; "-groupSelectionInScrollView" = { "GormGenericEditor(PrivateMethods)" = GormGenericEditor; }; "-groupSelectionInScrollView:" = { "(Gorm)" = GormProtocol; }; "-groupSelectionInSplitView" = { "GormGenericEditor(PrivateMethods)" = GormGenericEditor; GormViewWithContentViewEditor = GormViewWithContentViewEditor; }; "-groupSelectionInSplitView:" = { "(Gorm)" = GormProtocol; }; "-groupSelectionInView" = { "GormGenericEditor(PrivateMethods)" = GormGenericEditor; GormViewWithContentViewEditor = GormViewWithContentViewEditor; }; "-handleMouseOnKnob:ofView:withEvent:" = { GormViewWithSubviewsEditor = GormViewWithSubviewsEditor; }; "-handleMouseOnView:withEvent:" = { GormViewWithSubviewsEditor = GormViewWithSubviewsEditor; }; "-handleNotification:" = { GormClassInspector = GormClassInspector; GormDocument = GormDocument; }; "-hasSuperviewKindOfClass:" = { "NSView(GormExtensions)" = "NSView+GormExtensions"; }; "-horizontalRuler:" = { GormScrollViewAttributesInspector = GormScrollViewAttributesInspector; }; "-horizontalSelected:" = { GormScrollViewAttributesInspector = GormScrollViewAttributesInspector; }; "-image" = { GormImage = GormImage; }; "-imageForViewer" = { "NSObject(GormAdditions)" = GormPrivate; }; "-images" = { GormDocument = GormDocument; }; "-importClasses:withDictionary:" = { GormPalettesManager = GormPalettesManager; }; "-importImages:withBundle:" = { GormPalettesManager = GormPalettesManager; }; "-importSounds:withBundle:" = { GormPalettesManager = GormPalettesManager; }; "-importedClasses" = { GormPalettesManager = GormPalettesManager; }; "-importedImages" = { GormPalettesManager = GormPalettesManager; }; "-importedSounds" = { GormPalettesManager = GormPalettesManager; }; "-infoData" = { GormDocument = GormDocument; }; "-initWithBorder:position:validityStart:validityEnd:frame:" = { GormPlacementHint = GormPlacementInfo; }; "-initWithClassName:" = { "GSNibItem(GormAdditions)" = GormPrivate; GormClassProxy = GormPrivate; }; "-initWithClassName:frame:" = { "GSNibItem(GormAdditions)" = GormPrivate; }; "-initWithData:withFileName:inWrapper:" = { GormResource = GormResource; }; "-initWithDocument:" = { GormClassEditor = GormClassEditor; GormClassManager = GormClassManager; }; "-initWithName:" = { GormOutletActionHolder = GormOutlineView; }; "-initWithName:path:" = { GormResource = GormResource; }; "-initWithName:path:inWrapper:" = { GormResource = GormResource; }; "-initWithObject:inDocument:" = { GormGenericEditor = GormGenericEditor; GormViewEditor = GormViewEditor; GormWindowEditor = GormWindowEditor; }; "-initWithPath:" = { GormResource = GormResource; }; "-initWithPath:inWrapper:" = { GormResource = GormResource; }; "-initWithTitle:classList:" = { GormClassPanelController = GormClassPanelController; }; "-initWithView:" = { GormViewWindow = GormViewWindow; }; "-initializeResizingInFrame:withKnob:" = { "GormViewEditor(IntelligentPlacement)" = GormViewEditor; }; "-inspector:" = { "(Gorm)" = GormProtocol; }; "-inspectorClassName" = { GormClassProxy = GormPrivate; }; "-inspectorsManager" = { "(Gorm)" = GormProtocol; }; "-instantiateClass:" = { GormClassEditor = GormClassEditor; GormDocument = GormDocument; }; "-isAction:ofClass:" = { GormClassManager = GormClassManager; }; "-isAction:onCategoryForClassNamed:" = { GormClassManager = GormClassManager; }; "-isActive" = { GormDocument = GormDocument; }; "-isCategoryForClass:" = { GormClassManager = GormClassManager; }; "-isConnecting" = { "(Gorm)" = GormProtocol; }; "-isCustomClass:" = { GormClassManager = GormClassManager; }; "-isCustomClassMapEmpty" = { GormClassManager = GormClassManager; }; "-isDocumentOpen" = { GormDocument = GormDocument; }; "-isEditing" = { GormClassEditor = GormClassEditor; GormOutlineView = GormOutlineView; }; "-isEditingClasses" = { "GormDocument(MenuValidation)" = GormDocument; }; "-isEditingImages" = { "GormDocument(MenuValidation)" = GormDocument; }; "-isEditingObjects" = { "GormDocument(MenuValidation)" = GormDocument; }; "-isEditingSounds" = { "GormDocument(MenuValidation)" = GormDocument; }; "-isEqual:" = { GormResource = GormResource; }; "-isInInterfaceBuilder" = { "GSClassSwapper(GormCustomClassAdditions)" = GormPrivate; "NSClassSwapper(GormCustomClassAdditions)" = GormPrivate; }; "-isInWrapper" = { GormResource = GormResource; }; "-isKnownClass:" = { GormClassManager = GormClassManager; }; "-isLatest" = { GormFilePrefsManager = GormFilePrefsManager; }; "-isNonCustomClass:" = { GormClassManager = GormClassManager; }; "-isOlderArchive" = { GormDocument = GormDocument; }; "-isOpened" = { GormGenericEditor = GormGenericEditor; GormViewEditor = GormViewEditor; }; "-isOutlet:ofClass:" = { GormClassManager = GormClassManager; }; "-isRootClass:" = { GormClassManager = GormClassManager; }; "-isSuperclass:linkedToClass:" = { GormClassManager = GormClassManager; }; "-isSystemResource" = { GormResource = GormResource; }; "-isTopLevelObject:" = { GormDocument = GormDocument; }; "-itemBeingEdited" = { GormOutlineView = GormOutlineView; }; "-loadClass:" = { GormClassEditor = GormClassEditor; GormDocument = GormDocument; }; "-loadCustomClasses:" = { GormClassManager = GormClassManager; }; "-loadCustomClassesWithData:" = { GormClassManager = GormClassManager; }; "-loadCustomClassesWithDict:" = { GormClassManager = GormClassManager; }; "-loadFileWrapper:withDocument:" = { "(GormWrapperLoader)" = GormWrapperLoader; }; "-loadFromData:" = { GormFilePrefsManager = GormFilePrefsManager; }; "-loadFromFile:" = { GormClassManager = GormClassManager; GormFilePrefsManager = GormFilePrefsManager; }; "-loadImage:" = { "(Gorm)" = GormProtocol; }; "-loadNibFormatCustomClassesWithData:" = { GormClassManager = GormClassManager; }; "-loadNibFormatCustomClassesWithDict:" = { GormClassManager = GormClassManager; }; "-loadPalette:" = { "(Gorm)" = GormProtocol; GormPalettesManager = GormPalettesManager; }; "-loadPlugin:" = { GormPluginManager = GormPluginManager; }; "-loadProfile:" = { GormFilePrefsManager = GormFilePrefsManager; }; "-loadSound:" = { "(Gorm)" = GormProtocol; }; "-makeSelectionVisible:" = { GormObjectEditor = GormObjectEditor; GormViewEditor = GormViewEditor; GormWindowEditor = GormWindowEditor; }; "-makeSourceAndHeaderFilesForClass:withName:and:" = { GormClassManager = GormClassManager; }; "-makeSubeditorResign" = { GormViewWithSubviewsEditor = GormViewWithSubviewsEditor; }; "-menuItem" = { GormOutlineView = GormOutlineView; }; "-moveViewToBack:" = { "NSView(GormExtensions)" = "NSView+GormExtensions"; }; "-moveViewToFront:" = { "NSView(GormExtensions)" = "NSView+GormExtensions"; }; "-name" = { GormResource = GormResource; }; "-nibData" = { GormClassManager = GormClassManager; }; "-nibDataWithOpenItems:" = { GormFilePrefsManager = GormFilePrefsManager; }; "-nonCustomSuperClassOf:" = { GormClassManager = GormClassManager; }; "-normalImage" = { GormImage = GormImage; }; "-objectIsDeferred:" = { GormDocument = GormDocument; }; "-objectIsVisibleAtLaunch:" = { GormDocument = GormDocument; }; "-objects" = { GormGenericEditor = GormGenericEditor; }; "-okButton:" = { GormClassPanelController = GormClassPanelController; }; "-okHit:" = { GormSetNameController = GormSetNameController; }; "-openDocumentWithContentsOfURL:" = { GormDocumentController = GormDocumentController; }; "-openImage:" = { GormDocument = GormDocument; }; "-openPalette:" = { GormPalettesManager = GormPalettesManager; }; "-openParentEditor" = { GormViewWithSubviewsEditor = GormViewWithSubviewsEditor; }; "-openPlugin:" = { GormPluginManager = GormPluginManager; }; "-openSound:" = { GormDocument = GormDocument; }; "-openSubeditorForObject:" = { GormGenericEditor = GormGenericEditor; GormWindowEditor = GormWindowEditor; }; "-orderFront" = { GormGenericEditor = GormGenericEditor; GormWindowEditor = GormWindowEditor; }; "-outletColumn" = { GormOutlineView = GormOutlineView; }; "-outletExists:onClassNamed:" = { GormClassManager = GormClassManager; }; "-outlineView:actionsForItem:" = { "NSObject(GormOutlineViewDataSource)" = GormOutlineView; }; "-outlineView:addAction:forClass:" = { "NSObject(GormOutlineViewDataSource)" = GormOutlineView; }; "-outlineView:addNewActionForClass:" = { "NSObject(GormOutlineViewDataSource)" = GormOutlineView; }; "-outlineView:addNewOutletForClass:" = { "NSObject(GormOutlineViewDataSource)" = GormOutlineView; }; "-outlineView:addOutlet:forClass:" = { "NSObject(GormOutlineViewDataSource)" = GormOutlineView; }; "-outlineView:outletsForItem:" = { "NSObject(GormOutlineViewDataSource)" = GormOutlineView; }; "-outlineView:shouldDeleteItem:" = { "NSObject(GormOutlineViewDelegate)" = GormOutlineView; }; "-palettes:" = { "(Gorm)" = GormProtocol; }; "-palettesManager" = { "(Gorm)" = GormProtocol; }; "-panel" = { GormInspectorsManager = GormInspectorsManager; GormPalettesManager = GormPalettesManager; }; "-parent" = { GormViewEditor = GormViewEditor; }; "-parentOfClass:" = { GormClassManager = GormClassManager; }; "-parseHeader:" = { GormClassManager = GormClassManager; }; "-paste:" = { "(Gorm)" = GormProtocol; }; "-pasteInSelection" = { GormGenericEditor = GormGenericEditor; GormWindowEditor = GormWindowEditor; }; "-pasteInView:" = { GormViewWithContentViewEditor = GormViewWithContentViewEditor; }; "-pause:" = { GormSoundInspector = GormSoundInspector; }; "-pbTypes" = { GormResourceEditor = GormResourceEditor; }; "-placeHolderWithPath:" = { GormResourceEditor = GormResourceEditor; }; "-play:" = { GormSoundInspector = GormSoundInspector; }; "-pluginManager" = { "(Gorm)" = GormProtocol; }; "-position" = { GormPlacementHint = GormPlacementInfo; }; "-postDraw:" = { GormViewEditor = GormViewEditor; }; "-postDrawForView:" = { GormViewWithContentViewEditor = GormViewWithContentViewEditor; }; "-preferencesPanel:" = { "(Gorm)" = GormProtocol; }; "-reactivateEditors" = { GormDocument = GormDocument; }; "-rebuildObjToNameMapping" = { GormDocument = GormDocument; }; "-recentDocumentsMenu" = { GormDocument = GormDocument; }; "-record:" = { GormSoundInspector = GormSoundInspector; }; "-rectForObject:" = { GormGenericEditor = GormGenericEditor; }; "-rectWithHalfDistance:" = { GormPlacementHint = GormPlacementInfo; }; "-refreshCells" = { GormGenericEditor = GormGenericEditor; GormResourceEditor = GormResourceEditor; }; "-refreshConnectionsForClassNamed:" = { GormDocument = GormDocument; }; "-registerDocumentTypeName:humanReadableName:forExtensions:" = { GormPlugin = GormPlugin; }; "-reloadData" = { GormClassEditor = GormClassEditor; }; "-remove:" = { GormDocument = GormDocument; }; "-removeAction:" = { GormClassInspector = GormClassInspector; }; "-removeAction:forObject:" = { GormClassManager = GormClassManager; }; "-removeAction:fromClassNamed:" = { GormClassManager = GormClassManager; }; "-removeAllInstancesOfClass:" = { GormDocument = GormDocument; }; "-removeClass:" = { GormClassEditor = GormClassEditor; }; "-removeClassNamed:" = { GormClassManager = GormClassManager; }; "-removeConnectionsForClassNamed:" = { GormDocument = GormDocument; }; "-removeConnectionsWithLabel:forClassNamed:isAction:" = { GormDocument = GormDocument; }; "-removeCustomClassForName:" = { GormClassManager = GormClassManager; }; "-removeItemAtRow:" = { GormOutlineView = GormOutlineView; }; "-removeObject:" = { GormGenericEditor = GormGenericEditor; }; "-removeOutlet:" = { GormClassInspector = GormClassInspector; }; "-removeOutlet:forObject:" = { GormClassManager = GormClassManager; }; "-removeOutlet:fromClassNamed:" = { GormClassManager = GormClassManager; }; "-renameClassNamed:newName:" = { GormClassManager = GormClassManager; }; "-renameConnectionsForClassNamed:toName:" = { GormDocument = GormDocument; }; "-replaceAction:withAction:forClassNamed:" = { GormClassManager = GormClassManager; }; "-replaceOutlet:withOutlet:forClassNamed:" = { GormClassManager = GormClassManager; }; "-reset" = { GormOutlineView = GormOutlineView; }; "-resetObject:" = { GormObjectEditor = GormObjectEditor; GormWindowEditor = GormWindowEditor; }; "-resourceManagerForPasteboard:" = { GormDocument = GormDocument; }; "-resourceManagers" = { GormDocument = GormDocument; }; "-resourceType" = { GormResourceEditor = GormResourceEditor; }; "-restoreClassVersions" = { GormFilePrefsManager = GormFilePrefsManager; }; "-retrieveObjectsForParent:recursively:" = { GormDocument = GormDocument; }; "-runAsModal" = { GormSetNameController = GormSetNameController; }; "-runModal" = { GormClassPanelController = GormClassPanelController; }; "-saveSCMDirectory:" = { GormWrapperLoader = GormWrapperLoader; }; "-saveToFile:" = { GormClassManager = GormClassManager; GormFilePrefsManager = GormFilePrefsManager; }; "-scmWrapper" = { GormDocument = GormDocument; }; "-searchForClass:" = { GormClassInspector = GormClassInspector; }; "-select:" = { GormClassInspector = GormClassInspector; GormCustomClassInspector = GormCustomClassInspector; }; "-selectAction:" = { GormClassInspector = GormClassInspector; }; "-selectAllItems:" = { "(Gorm)" = GormProtocol; }; "-selectArchiveType:" = { GormFilePrefsManager = GormFilePrefsManager; }; "-selectClass:" = { GormClassEditor = GormClassEditor; GormClassInspector = GormClassInspector; GormDocument = GormDocument; }; "-selectClass:editClass:" = { GormClassEditor = GormClassEditor; GormDocument = GormDocument; }; "-selectClassWithObject:" = { GormClassEditor = GormClassEditor; }; "-selectClassWithObject:editClass:" = { GormClassEditor = GormClassEditor; }; "-selectFont:" = { GormFontViewController = GormFontViewController; }; "-selectObjects:" = { GormGenericEditor = GormGenericEditor; GormViewWithSubviewsEditor = GormViewWithSubviewsEditor; }; "-selectOutlet:" = { GormClassInspector = GormClassInspector; }; "-selectRow:" = { GormOutlineView = GormOutlineView; }; "-selectTargetVersion:" = { GormFilePrefsManager = GormFilePrefsManager; }; "-selectedClassName" = { GormClassEditor = GormClassEditor; }; "-selection" = { GormViewEditor = GormViewEditor; }; "-sendAction" = { "NSFontManager(GormExtensions)" = "NSFontManager+GormExtensions"; }; "-servicesMenu" = { GormDocument = GormDocument; }; "-setActionColumn:" = { GormOutlineView = GormOutlineView; }; "-setArchiveByName:" = { "NSImage(GormNSImageAddition)" = GormImage; }; "-setAttributeOffset:" = { GormOutlineView = GormOutlineView; }; "-setAutoPositionMask:" = { GormNSPanel = GormNSPanel; GormNSWindow = GormNSWindow; }; "-setBaseWindowClass:" = { "NSWindowTemplate(Private)" = GormWindowTemplate; }; "-setClassInspector" = { GormInspectorsManager = GormInspectorsManager; }; "-setClassName:" = { GormCustomView = GormCustomView; GormFilesOwner = GormFilesOwner; GormObjectProxy = GormPrivate; }; "-setClassVersions" = { GormFilePrefsManager = GormFilePrefsManager; }; "-setColorWithoutAction:" = { "NSColorWell(GormExtensions)" = "NSColorWell+GormExtensions"; }; "-setCurrentInspector:" = { GormInspectorsManager = GormInspectorsManager; }; "-setCurrentPalette:" = { GormPalettesManager = GormPalettesManager; }; "-setCustomClass:forName:" = { GormClassManager = GormClassManager; }; "-setCustomClassMap:" = { GormClassManager = GormClassManager; }; "-setData:" = { GormResource = GormResource; }; "-setDocument:" = { GormDocumentWindow = GormDocumentWindow; }; "-setDocumentActive:" = { GormDocument = GormDocument; }; "-setDocumentOpen:" = { GormDocument = GormDocument; }; "-setEditor:forDocument:" = { "GormGenericEditor(PrivateMethods)" = GormGenericEditor; }; "-setFileTypeName:" = { GormFilePrefsManager = GormFilePrefsManager; }; "-setImages:" = { GormDocument = GormDocument; }; "-setInWrapper:" = { GormResource = GormResource; }; "-setInfoData:" = { GormDocument = GormDocument; }; "-setIsEditing:" = { GormOutlineView = GormOutlineView; }; "-setItemBeingEdited:" = { GormOutlineView = GormOutlineView; }; "-setMenuItem:" = { GormOutlineView = GormOutlineView; }; "-setName:" = { "(Gorm)" = GormProtocol; GormOutletActionHolder = GormOutlineView; GormResource = GormResource; }; "-setObject:isDeferred:" = { GormDocument = GormDocument; }; "-setObject:isVisibleAtLaunch:" = { GormDocument = GormDocument; }; "-setOlderArchive:" = { GormDocument = GormDocument; }; "-setOpened:" = { GormViewEditor = GormViewEditor; }; "-setOpenedSubeditor:" = { GormViewWithSubviewsEditor = GormViewWithSubviewsEditor; }; "-setOutletColumn:" = { GormOutlineView = GormOutlineView; }; "-setRecentDocumentsMenu:" = { GormDocument = GormDocument; }; "-setSCMWrapper:" = { GormDocument = GormDocument; }; "-setSelectedClassName:" = { GormClassEditor = GormClassEditor; }; "-setServicesMenu:" = { GormDocument = GormDocument; }; "-setSound:" = { GormSoundView = GormSoundView; }; "-setSounds:" = { GormDocument = GormDocument; }; "-setSuperClassNamed:forClassNamed:" = { GormClassManager = GormClassManager; }; "-setSystemResource:" = { GormResource = GormResource; }; "-setUpFieldEditorAttributes:" = { "NSCell(GormAdditions)" = "NSCell+GormAdditions"; }; "-setView:" = { GormViewWindow = GormViewWindow; }; "-setWindowsMenu:" = { GormDocument = GormDocument; }; "-showIncompatibilities:" = { GormFilePrefsManager = GormFilePrefsManager; }; "-silentlyResetSelection" = { GormViewWithSubviewsEditor = GormViewWithSubviewsEditor; }; "-sizeInspectorClassName" = { GormClassProxy = GormPrivate; }; "-sound" = { GormSoundView = GormSoundView; }; "-sounds" = { GormDocument = GormDocument; }; "-start" = { GormPlacementHint = GormPlacementInfo; }; "-stop:" = { GormSoundInspector = GormSoundInspector; }; "-stopConnecting" = { "(Gorm)" = GormProtocol; }; "-subClassesOf:" = { GormClassManager = GormClassManager; }; "-substituteClasses" = { GormPalettesManager = GormPalettesManager; }; "-superClassNameForClassNamed:" = { GormClassManager = GormClassManager; }; "-superviews" = { "NSView(GormExtensions)" = "NSView+GormExtensions"; }; "-takeClassFrom:" = { GormFilesOwnerInspector = GormFilesOwner; }; "-targetVersionName" = { GormFilePrefsManager = GormFilePrefsManager; }; "-testInterface:" = { "(Gorm)" = GormProtocol; }; "-textField" = { GormSetNameController = GormSetNameController; }; "-translate:" = { GormDocument = GormDocument; }; "-ungroup" = { "GormGenericEditor(PrivateMethods)" = GormGenericEditor; GormViewWithContentViewEditor = GormViewWithContentViewEditor; }; "-ungroup:" = { "(Gorm)" = GormProtocol; }; "-uniqueClassNameFrom:" = { GormClassManager = GormClassManager; }; "-update:" = { GormObjectInspector = GormObjectInspector; }; "-updateButtons" = { GormConnectionInspector = GormConnectionInspector; }; "-updateResizingWithFrame:andEvent:andPlacementInfo:" = { "GormViewEditor(IntelligentPlacement)" = GormViewEditor; }; "-updateSelection" = { GormInspectorsManager = GormInspectorsManager; }; "-validateFrame:withEvent:andPlacementInfo:" = { "GormViewEditor(IntelligentPlacement)" = GormViewEditor; }; "-version" = { GormFilePrefsManager = GormFilePrefsManager; }; "-versionOfClass:" = { GormFilePrefsManager = GormFilePrefsManager; }; "-verticalRuler:" = { GormScrollViewAttributesInspector = GormScrollViewAttributesInspector; }; "-verticalSelected:" = { GormScrollViewAttributesInspector = GormScrollViewAttributesInspector; }; "-view" = { GormFontViewController = GormFontViewController; GormViewWindow = GormViewWindow; }; "-viewWithTag:" = { GormDocument = GormDocument; }; "-visibleWindows" = { GormDocument = GormDocument; }; "-wantsSelection" = { GormGenericEditor = GormGenericEditor; }; "-willCloseDocument:" = { "GormGenericEditor(PrivateMethods)" = GormGenericEditor; }; "-window" = { GormDocument = GormDocument; GormGenericEditor = GormGenericEditor; }; "-windowAndRect:forObject:" = { GormDocument = GormDocument; "GormViewEditor(WindowAndRect)" = GormViewEditor; }; "-windowsMenu" = { GormDocument = GormDocument; }; "-wrapperBuilderForType:" = { GormWrapperBuilderFactory = GormWrapperBuilder; }; "-wrapperLoaderForType:" = { GormWrapperLoaderFactory = GormWrapperLoader; }; "-zeroFormat" = { "NSNumberFormatter(GormAdditions)" = GormPrivate; }; }; output = { "../GormCore/GormBoxEditor.h" = ( "GormCore/GormBoxEditor.gsdoc" ); "../GormCore/GormClassEditor.h" = ( "GormCore/GormClassEditor.gsdoc" ); "../GormCore/GormClassInspector.h" = ( "GormCore/GormClassInspector.gsdoc" ); "../GormCore/GormClassManager.h" = ( "GormCore/GormClassManager.gsdoc" ); "../GormCore/GormClassPanelController.h" = ( "GormCore/GormClassPanelController.gsdoc" ); "../GormCore/GormConnectionInspector.h" = ( "GormCore/GormConnectionInspector.gsdoc" ); "../GormCore/GormControlEditor.h" = ( "GormCore/GormControlEditor.gsdoc" ); "../GormCore/GormCustomClassInspector.h" = ( "GormCore/GormCustomClassInspector.gsdoc" ); "../GormCore/GormCustomView.h" = ( "GormCore/GormCustomView.gsdoc" ); "../GormCore/GormDefines.h" = ( "GormCore/GormDefines.gsdoc" ); "../GormCore/GormDocument.h" = ( "GormCore/GormDocument.gsdoc" ); "../GormCore/GormDocumentController.h" = ( "GormCore/GormDocumentController.gsdoc" ); "../GormCore/GormDocumentWindow.h" = ( "GormCore/GormDocumentWindow.gsdoc" ); "../GormCore/GormFilePrefsManager.h" = ( "GormCore/GormFilePrefsManager.gsdoc" ); "../GormCore/GormFilesOwner.h" = ( "GormCore/GormFilesOwner.gsdoc" ); "../GormCore/GormFontViewController.h" = ( "GormCore/GormFontViewController.gsdoc" ); "../GormCore/GormFunctions.h" = ( "GormCore/GormFunctions.gsdoc" ); "../GormCore/GormGenericEditor.h" = ( "GormCore/GormGenericEditor.gsdoc" ); "../GormCore/GormHelpInspector.h" = ( "GormCore/GormHelpInspector.gsdoc" ); "../GormCore/GormImage.h" = ( "GormCore/GormImage.gsdoc" ); "../GormCore/GormImageEditor.h" = ( "GormCore/GormImageEditor.gsdoc" ); "../GormCore/GormImageInspector.h" = ( "GormCore/GormImageInspector.gsdoc" ); "../GormCore/GormInspectorsManager.h" = ( "GormCore/GormInspectorsManager.gsdoc" ); "../GormCore/GormInternalViewEditor.h" = ( "GormCore/GormInternalViewEditor.gsdoc" ); "../GormCore/GormMatrixEditor.h" = ( "GormCore/GormMatrixEditor.gsdoc" ); "../GormCore/GormNSPanel.h" = ( "GormCore/GormNSPanel.gsdoc" ); "../GormCore/GormNSSplitViewInspector.h" = ( "GormCore/GormNSSplitViewInspector.gsdoc" ); "../GormCore/GormNSWindow.h" = ( "GormCore/GormNSWindow.gsdoc" ); "../GormCore/GormObjectEditor.h" = ( "GormCore/GormObjectEditor.gsdoc" ); "../GormCore/GormObjectInspector.h" = ( "GormCore/GormObjectInspector.gsdoc" ); "../GormCore/GormOpenGLView.h" = ( "GormCore/GormOpenGLView.gsdoc" ); "../GormCore/GormOutlineView.h" = ( "GormCore/GormOutlineView.gsdoc" ); "../GormCore/GormPalettesManager.h" = ( "GormCore/GormPalettesManager.gsdoc" ); "../GormCore/GormPlacementInfo.h" = ( "GormCore/GormPlacementInfo.gsdoc" ); "../GormCore/GormPlugin.h" = ( "GormCore/GormPlugin.gsdoc" ); "../GormCore/GormPluginManager.h" = ( "GormCore/GormPluginManager.gsdoc" ); "../GormCore/GormPrivate.h" = ( "GormCore/GormPrivate.gsdoc" ); "../GormCore/GormProtocol.h" = ( "GormCore/GormProtocol.gsdoc" ); "../GormCore/GormResource.h" = ( "GormCore/GormResource.gsdoc" ); "../GormCore/GormResourceEditor.h" = ( "GormCore/GormResourceEditor.gsdoc" ); "../GormCore/GormResourceManager.h" = ( "GormCore/GormResourceManager.gsdoc" ); "../GormCore/GormScrollViewAttributesInspector.h" = ( "GormCore/GormScrollViewAttributesInspector.gsdoc" ); "../GormCore/GormServer.h" = ( "GormCore/GormServer.gsdoc" ); "../GormCore/GormSetNameController.h" = ( "GormCore/GormSetNameController.gsdoc" ); "../GormCore/GormSound.h" = ( "GormCore/GormSound.gsdoc" ); "../GormCore/GormSoundEditor.h" = ( "GormCore/GormSoundEditor.gsdoc" ); "../GormCore/GormSoundInspector.h" = ( "GormCore/GormSoundInspector.gsdoc" ); "../GormCore/GormSoundView.h" = ( "GormCore/GormSoundView.gsdoc" ); "../GormCore/GormSplitViewEditor.h" = ( "GormCore/GormSplitViewEditor.gsdoc" ); "../GormCore/GormStandaloneViewEditor.h" = ( "GormCore/GormStandaloneViewEditor.gsdoc" ); "../GormCore/GormViewEditor.h" = ( "GormCore/GormViewEditor.gsdoc" ); "../GormCore/GormViewKnobs.h" = ( "GormCore/GormViewKnobs.gsdoc" ); "../GormCore/GormViewSizeInspector.h" = ( "GormCore/GormViewSizeInspector.gsdoc" ); "../GormCore/GormViewWindow.h" = ( "GormCore/GormViewWindow.gsdoc" ); "../GormCore/GormViewWithContentViewEditor.h" = ( "GormCore/GormViewWithContentViewEditor.gsdoc" ); "../GormCore/GormViewWithSubviewsEditor.h" = ( "GormCore/GormViewWithSubviewsEditor.gsdoc" ); "../GormCore/GormWindowEditor.h" = ( "GormCore/GormWindowEditor.gsdoc" ); "../GormCore/GormWindowTemplate.h" = ( "GormCore/GormWindowTemplate.gsdoc" ); "../GormCore/GormWrapperBuilder.h" = ( "GormCore/GormWrapperBuilder.gsdoc" ); "../GormCore/GormWrapperLoader.h" = ( "GormCore/GormWrapperLoader.gsdoc" ); "../GormCore/NSCell+GormAdditions.h" = ( "GormCore/NSCell+GormAdditions.gsdoc" ); "../GormCore/NSColorWell+GormExtensions.h" = ( "GormCore/NSColorWell+GormExtensions.gsdoc" ); "../GormCore/NSFontManager+GormExtensions.h" = ( "GormCore/NSFontManager+GormExtensions.gsdoc" ); "../GormCore/NSView+GormExtensions.h" = ( "GormCore/NSView+GormExtensions.gsdoc" ); }; protocol = { "(Gorm)" = GormProtocol; "(GormServer)" = GormServer; "(GormWrapperBuilder)" = GormWrapperBuilder; "(GormWrapperLoader)" = GormWrapperLoader; "NSObject(GormAdditions)" = GormPrivate; "NSObject(GormOutlineViewDataSource)" = GormOutlineView; "NSObject(GormOutlineViewDelegate)" = GormOutlineView; }; source = { "../GormCore/GormBoxEditor.h" = ( "../GormCore/GormBoxEditor.h", "../GormCore/GormBoxEditor.h", "../GormCore/GormBoxEditor.h", "../GormCore/GormBoxEditor.h", "../GormCore/GormBoxEditor.h", "../GormCore/GormBoxEditor.h", "../GormCore/GormBoxEditor.m" ); "../GormCore/GormClassEditor.h" = ( "../GormCore/GormClassEditor.h", "../GormCore/GormClassEditor.h", "../GormCore/GormClassEditor.h", "../GormCore/GormClassEditor.h", "../GormCore/GormClassEditor.h", "../GormCore/GormClassEditor.h", "../GormCore/GormClassEditor.m" ); "../GormCore/GormClassInspector.h" = ( "../GormCore/GormClassInspector.h", "../GormCore/GormClassInspector.h", "../GormCore/GormClassInspector.h", "../GormCore/GormClassInspector.h", "../GormCore/GormClassInspector.h", "../GormCore/GormClassInspector.h", "../GormCore/GormClassInspector.m" ); "../GormCore/GormClassManager.h" = ( "../GormCore/GormClassManager.h", "../GormCore/GormClassManager.h", "../GormCore/GormClassManager.h", "../GormCore/GormClassManager.h", "../GormCore/GormClassManager.h", "../GormCore/GormClassManager.h", "../GormCore/GormClassManager.m" ); "../GormCore/GormClassPanelController.h" = ( "../GormCore/GormClassPanelController.h", "../GormCore/GormClassPanelController.h", "../GormCore/GormClassPanelController.h", "../GormCore/GormClassPanelController.h", "../GormCore/GormClassPanelController.h", "../GormCore/GormClassPanelController.h", "../GormCore/GormClassPanelController.m" ); "../GormCore/GormConnectionInspector.h" = ( "../GormCore/GormConnectionInspector.h", "../GormCore/GormConnectionInspector.h", "../GormCore/GormConnectionInspector.h", "../GormCore/GormConnectionInspector.h", "../GormCore/GormConnectionInspector.h", "../GormCore/GormConnectionInspector.h", "../GormCore/GormConnectionInspector.m" ); "../GormCore/GormControlEditor.h" = ( "../GormCore/GormControlEditor.h", "../GormCore/GormControlEditor.h", "../GormCore/GormControlEditor.h", "../GormCore/GormControlEditor.h", "../GormCore/GormControlEditor.h", "../GormCore/GormControlEditor.h", "../GormCore/GormControlEditor.m" ); "../GormCore/GormCustomClassInspector.h" = ( "../GormCore/GormCustomClassInspector.h", "../GormCore/GormCustomClassInspector.h", "../GormCore/GormCustomClassInspector.h", "../GormCore/GormCustomClassInspector.h", "../GormCore/GormCustomClassInspector.h", "../GormCore/GormCustomClassInspector.h", "../GormCore/GormCustomClassInspector.m" ); "../GormCore/GormCustomView.h" = ( "../GormCore/GormCustomView.h", "../GormCore/GormCustomView.h", "../GormCore/GormCustomView.h", "../GormCore/GormCustomView.h", "../GormCore/GormCustomView.h", "../GormCore/GormCustomView.h", "../GormCore/GormCustomView.m" ); "../GormCore/GormDefines.h" = ( "../GormCore/GormDefines.h", "../GormCore/GormDefines.h", "../GormCore/GormDefines.h", "../GormCore/GormDefines.h", "../GormCore/GormDefines.h", "../GormCore/GormDefines.h", "../GormCore/GormDefines.h" ); "../GormCore/GormDocument.h" = ( "../GormCore/GormDocument.h", "../GormCore/GormDocument.h", "../GormCore/GormDocument.h", "../GormCore/GormDocument.h", "../GormCore/GormDocument.h", "../GormCore/GormDocument.h", "../GormCore/GormDocument.m" ); "../GormCore/GormDocumentController.h" = ( "../GormCore/GormDocumentController.h", "../GormCore/GormDocumentController.h", "../GormCore/GormDocumentController.h", "../GormCore/GormDocumentController.h", "../GormCore/GormDocumentController.h", "../GormCore/GormDocumentController.h", "../GormCore/GormDocumentController.m" ); "../GormCore/GormDocumentWindow.h" = ( "../GormCore/GormDocumentWindow.h", "../GormCore/GormDocumentWindow.h", "../GormCore/GormDocumentWindow.h", "../GormCore/GormDocumentWindow.h", "../GormCore/GormDocumentWindow.h", "../GormCore/GormDocumentWindow.h", "../GormCore/GormDocumentWindow.m" ); "../GormCore/GormFilePrefsManager.h" = ( "../GormCore/GormFilePrefsManager.h", "../GormCore/GormFilePrefsManager.h", "../GormCore/GormFilePrefsManager.h", "../GormCore/GormFilePrefsManager.h", "../GormCore/GormFilePrefsManager.h", "../GormCore/GormFilePrefsManager.h", "../GormCore/GormFilePrefsManager.m" ); "../GormCore/GormFilesOwner.h" = ( "../GormCore/GormFilesOwner.h", "../GormCore/GormFilesOwner.h", "../GormCore/GormFilesOwner.h", "../GormCore/GormFilesOwner.h", "../GormCore/GormFilesOwner.h", "../GormCore/GormFilesOwner.h", "../GormCore/GormFilesOwner.m" ); "../GormCore/GormFontViewController.h" = ( "../GormCore/GormFontViewController.h", "../GormCore/GormFontViewController.h", "../GormCore/GormFontViewController.h", "../GormCore/GormFontViewController.h", "../GormCore/GormFontViewController.h", "../GormCore/GormFontViewController.h", "../GormCore/GormFontViewController.m" ); "../GormCore/GormFunctions.h" = ( "../GormCore/GormFunctions.h", "../GormCore/GormFunctions.h", "../GormCore/GormFunctions.h", "../GormCore/GormFunctions.h", "../GormCore/GormFunctions.h", "../GormCore/GormFunctions.h", "../GormCore/GormFunctions.m" ); "../GormCore/GormGenericEditor.h" = ( "../GormCore/GormGenericEditor.h", "../GormCore/GormGenericEditor.h", "../GormCore/GormGenericEditor.h", "../GormCore/GormGenericEditor.h", "../GormCore/GormGenericEditor.h", "../GormCore/GormGenericEditor.h", "../GormCore/GormGenericEditor.m" ); "../GormCore/GormHelpInspector.h" = ( "../GormCore/GormHelpInspector.h", "../GormCore/GormHelpInspector.h", "../GormCore/GormHelpInspector.h", "../GormCore/GormHelpInspector.h", "../GormCore/GormHelpInspector.h", "../GormCore/GormHelpInspector.h", "../GormCore/GormHelpInspector.m" ); "../GormCore/GormImage.h" = ( "../GormCore/GormImage.h", "../GormCore/GormImage.h", "../GormCore/GormImage.h", "../GormCore/GormImage.h", "../GormCore/GormImage.h", "../GormCore/GormImage.h", "../GormCore/GormImage.m" ); "../GormCore/GormImageEditor.h" = ( "../GormCore/GormImageEditor.h", "../GormCore/GormImageEditor.h", "../GormCore/GormImageEditor.h", "../GormCore/GormImageEditor.h", "../GormCore/GormImageEditor.h", "../GormCore/GormImageEditor.h", "../GormCore/GormImageEditor.m" ); "../GormCore/GormImageInspector.h" = ( "../GormCore/GormImageInspector.h", "../GormCore/GormImageInspector.h", "../GormCore/GormImageInspector.h", "../GormCore/GormImageInspector.h", "../GormCore/GormImageInspector.h", "../GormCore/GormImageInspector.h", "../GormCore/GormImageInspector.m" ); "../GormCore/GormInspectorsManager.h" = ( "../GormCore/GormInspectorsManager.h", "../GormCore/GormInspectorsManager.h", "../GormCore/GormInspectorsManager.h", "../GormCore/GormInspectorsManager.h", "../GormCore/GormInspectorsManager.h", "../GormCore/GormInspectorsManager.h", "../GormCore/GormInspectorsManager.m" ); "../GormCore/GormInternalViewEditor.h" = ( "../GormCore/GormInternalViewEditor.h", "../GormCore/GormInternalViewEditor.h", "../GormCore/GormInternalViewEditor.h", "../GormCore/GormInternalViewEditor.h", "../GormCore/GormInternalViewEditor.h", "../GormCore/GormInternalViewEditor.h", "../GormCore/GormInternalViewEditor.m" ); "../GormCore/GormMatrixEditor.h" = ( "../GormCore/GormMatrixEditor.h", "../GormCore/GormMatrixEditor.h", "../GormCore/GormMatrixEditor.h", "../GormCore/GormMatrixEditor.h", "../GormCore/GormMatrixEditor.h", "../GormCore/GormMatrixEditor.h", "../GormCore/GormMatrixEditor.m" ); "../GormCore/GormNSPanel.h" = ( "../GormCore/GormNSPanel.h", "../GormCore/GormNSPanel.h", "../GormCore/GormNSPanel.h", "../GormCore/GormNSPanel.h", "../GormCore/GormNSPanel.h", "../GormCore/GormNSPanel.h", "../GormCore/GormNSPanel.m" ); "../GormCore/GormNSSplitViewInspector.h" = ( "../GormCore/GormNSSplitViewInspector.h", "../GormCore/GormNSSplitViewInspector.h", "../GormCore/GormNSSplitViewInspector.h", "../GormCore/GormNSSplitViewInspector.h", "../GormCore/GormNSSplitViewInspector.h", "../GormCore/GormNSSplitViewInspector.h", "../GormCore/GormNSSplitViewInspector.m" ); "../GormCore/GormNSWindow.h" = ( "../GormCore/GormNSWindow.h", "../GormCore/GormNSWindow.h", "../GormCore/GormNSWindow.h", "../GormCore/GormNSWindow.h", "../GormCore/GormNSWindow.h", "../GormCore/GormNSWindow.h", "../GormCore/GormNSWindow.m" ); "../GormCore/GormObjectEditor.h" = ( "../GormCore/GormObjectEditor.h", "../GormCore/GormObjectEditor.h", "../GormCore/GormObjectEditor.h", "../GormCore/GormObjectEditor.h", "../GormCore/GormObjectEditor.h", "../GormCore/GormObjectEditor.h", "../GormCore/GormObjectEditor.m" ); "../GormCore/GormObjectInspector.h" = ( "../GormCore/GormObjectInspector.h", "../GormCore/GormObjectInspector.h", "../GormCore/GormObjectInspector.h", "../GormCore/GormObjectInspector.h", "../GormCore/GormObjectInspector.h", "../GormCore/GormObjectInspector.h", "../GormCore/GormObjectInspector.m" ); "../GormCore/GormOpenGLView.h" = ( "../GormCore/GormOpenGLView.h", "../GormCore/GormOpenGLView.h", "../GormCore/GormOpenGLView.h", "../GormCore/GormOpenGLView.h", "../GormCore/GormOpenGLView.h", "../GormCore/GormOpenGLView.h", "../GormCore/GormOpenGLView.m" ); "../GormCore/GormOutlineView.h" = ( "../GormCore/GormOutlineView.h", "../GormCore/GormOutlineView.h", "../GormCore/GormOutlineView.h", "../GormCore/GormOutlineView.h", "../GormCore/GormOutlineView.h", "../GormCore/GormOutlineView.h", "../GormCore/GormOutlineView.m" ); "../GormCore/GormPalettesManager.h" = ( "../GormCore/GormPalettesManager.h", "../GormCore/GormPalettesManager.h", "../GormCore/GormPalettesManager.h", "../GormCore/GormPalettesManager.h", "../GormCore/GormPalettesManager.h", "../GormCore/GormPalettesManager.h", "../GormCore/GormPalettesManager.m" ); "../GormCore/GormPlacementInfo.h" = ( "../GormCore/GormPlacementInfo.h", "../GormCore/GormPlacementInfo.h", "../GormCore/GormPlacementInfo.h", "../GormCore/GormPlacementInfo.h", "../GormCore/GormPlacementInfo.h", "../GormCore/GormPlacementInfo.h", "../GormCore/GormPlacementInfo.h" ); "../GormCore/GormPlugin.h" = ( "../GormCore/GormPlugin.h", "../GormCore/GormPlugin.h", "../GormCore/GormPlugin.h", "../GormCore/GormPlugin.h", "../GormCore/GormPlugin.h", "../GormCore/GormPlugin.h", "../GormCore/GormPlugin.m" ); "../GormCore/GormPluginManager.h" = ( "../GormCore/GormPluginManager.h", "../GormCore/GormPluginManager.h", "../GormCore/GormPluginManager.h", "../GormCore/GormPluginManager.h", "../GormCore/GormPluginManager.h", "../GormCore/GormPluginManager.h", "../GormCore/GormPluginManager.m" ); "../GormCore/GormPrivate.h" = ( "../GormCore/GormPrivate.h", "../GormCore/GormPrivate.h", "../GormCore/GormPrivate.h", "../GormCore/GormPrivate.h", "../GormCore/GormPrivate.h", "../GormCore/GormPrivate.h", "../GormCore/GormPrivate.m" ); "../GormCore/GormProtocol.h" = ( "../GormCore/GormProtocol.h", "../GormCore/GormProtocol.h", "../GormCore/GormProtocol.h", "../GormCore/GormProtocol.h", "../GormCore/GormProtocol.h", "../GormCore/GormProtocol.h", "../GormCore/GormProtocol.h" ); "../GormCore/GormResource.h" = ( "../GormCore/GormResource.h", "../GormCore/GormResource.h", "../GormCore/GormResource.h", "../GormCore/GormResource.h", "../GormCore/GormResource.h", "../GormCore/GormResource.h", "../GormCore/GormResource.m" ); "../GormCore/GormResourceEditor.h" = ( "../GormCore/GormResourceEditor.h", "../GormCore/GormResourceEditor.h", "../GormCore/GormResourceEditor.h", "../GormCore/GormResourceEditor.h", "../GormCore/GormResourceEditor.h", "../GormCore/GormResourceEditor.h", "../GormCore/GormResourceEditor.m" ); "../GormCore/GormResourceManager.h" = ( "../GormCore/GormResourceManager.h", "../GormCore/GormResourceManager.h", "../GormCore/GormResourceManager.h", "../GormCore/GormResourceManager.h", "../GormCore/GormResourceManager.h", "../GormCore/GormResourceManager.h", "../GormCore/GormResourceManager.m" ); "../GormCore/GormScrollViewAttributesInspector.h" = ( "../GormCore/GormScrollViewAttributesInspector.h", "../GormCore/GormScrollViewAttributesInspector.h", "../GormCore/GormScrollViewAttributesInspector.h", "../GormCore/GormScrollViewAttributesInspector.h", "../GormCore/GormScrollViewAttributesInspector.h", "../GormCore/GormScrollViewAttributesInspector.h", "../GormCore/GormScrollViewAttributesInspector.m" ); "../GormCore/GormServer.h" = ( "../GormCore/GormServer.h", "../GormCore/GormServer.h", "../GormCore/GormServer.h", "../GormCore/GormServer.h", "../GormCore/GormServer.h", "../GormCore/GormServer.h", "../GormCore/GormServer.h" ); "../GormCore/GormSetNameController.h" = ( "../GormCore/GormSetNameController.h", "../GormCore/GormSetNameController.h", "../GormCore/GormSetNameController.h", "../GormCore/GormSetNameController.h", "../GormCore/GormSetNameController.h", "../GormCore/GormSetNameController.h", "../GormCore/GormSetNameController.m" ); "../GormCore/GormSound.h" = ( "../GormCore/GormSound.h", "../GormCore/GormSound.h", "../GormCore/GormSound.h", "../GormCore/GormSound.h", "../GormCore/GormSound.h", "../GormCore/GormSound.h", "../GormCore/GormSound.m" ); "../GormCore/GormSoundEditor.h" = ( "../GormCore/GormSoundEditor.h", "../GormCore/GormSoundEditor.h", "../GormCore/GormSoundEditor.h", "../GormCore/GormSoundEditor.h", "../GormCore/GormSoundEditor.h", "../GormCore/GormSoundEditor.h", "../GormCore/GormSoundEditor.m" ); "../GormCore/GormSoundInspector.h" = ( "../GormCore/GormSoundInspector.h", "../GormCore/GormSoundInspector.h", "../GormCore/GormSoundInspector.h", "../GormCore/GormSoundInspector.h", "../GormCore/GormSoundInspector.h", "../GormCore/GormSoundInspector.h", "../GormCore/GormSoundInspector.m" ); "../GormCore/GormSoundView.h" = ( "../GormCore/GormSoundView.h", "../GormCore/GormSoundView.h", "../GormCore/GormSoundView.h", "../GormCore/GormSoundView.h", "../GormCore/GormSoundView.h", "../GormCore/GormSoundView.h", "../GormCore/GormSoundView.m" ); "../GormCore/GormSplitViewEditor.h" = ( "../GormCore/GormSplitViewEditor.h", "../GormCore/GormSplitViewEditor.h", "../GormCore/GormSplitViewEditor.h", "../GormCore/GormSplitViewEditor.h", "../GormCore/GormSplitViewEditor.h", "../GormCore/GormSplitViewEditor.h", "../GormCore/GormSplitViewEditor.m" ); "../GormCore/GormStandaloneViewEditor.h" = ( "../GormCore/GormStandaloneViewEditor.h", "../GormCore/GormStandaloneViewEditor.h", "../GormCore/GormStandaloneViewEditor.h", "../GormCore/GormStandaloneViewEditor.h", "../GormCore/GormStandaloneViewEditor.h", "../GormCore/GormStandaloneViewEditor.h", "../GormCore/GormStandaloneViewEditor.m" ); "../GormCore/GormViewEditor.h" = ( "../GormCore/GormViewEditor.h", "../GormCore/GormViewEditor.h", "../GormCore/GormViewEditor.h", "../GormCore/GormViewEditor.h", "../GormCore/GormViewEditor.h", "../GormCore/GormViewEditor.h", "../GormCore/GormViewEditor.m" ); "../GormCore/GormViewKnobs.h" = ( "../GormCore/GormViewKnobs.h", "../GormCore/GormViewKnobs.h", "../GormCore/GormViewKnobs.h", "../GormCore/GormViewKnobs.h", "../GormCore/GormViewKnobs.h", "../GormCore/GormViewKnobs.h", "../GormCore/GormViewKnobs.m" ); "../GormCore/GormViewSizeInspector.h" = ( "../GormCore/GormViewSizeInspector.h", "../GormCore/GormViewSizeInspector.h", "../GormCore/GormViewSizeInspector.h", "../GormCore/GormViewSizeInspector.h", "../GormCore/GormViewSizeInspector.h", "../GormCore/GormViewSizeInspector.h", "../GormCore/GormViewSizeInspector.m" ); "../GormCore/GormViewWindow.h" = ( "../GormCore/GormViewWindow.h", "../GormCore/GormViewWindow.h", "../GormCore/GormViewWindow.h", "../GormCore/GormViewWindow.h", "../GormCore/GormViewWindow.h", "../GormCore/GormViewWindow.h", "../GormCore/GormViewWindow.m" ); "../GormCore/GormViewWithContentViewEditor.h" = ( "../GormCore/GormViewWithContentViewEditor.h", "../GormCore/GormViewWithContentViewEditor.h", "../GormCore/GormViewWithContentViewEditor.h", "../GormCore/GormViewWithContentViewEditor.h", "../GormCore/GormViewWithContentViewEditor.h", "../GormCore/GormViewWithContentViewEditor.h", "../GormCore/GormViewWithContentViewEditor.m" ); "../GormCore/GormViewWithSubviewsEditor.h" = ( "../GormCore/GormViewWithSubviewsEditor.h", "../GormCore/GormViewWithSubviewsEditor.h", "../GormCore/GormViewWithSubviewsEditor.h", "../GormCore/GormViewWithSubviewsEditor.h", "../GormCore/GormViewWithSubviewsEditor.h", "../GormCore/GormViewWithSubviewsEditor.h", "../GormCore/GormViewWithSubviewsEditor.m" ); "../GormCore/GormWindowEditor.h" = ( "../GormCore/GormWindowEditor.h", "../GormCore/GormWindowEditor.h", "../GormCore/GormWindowEditor.h", "../GormCore/GormWindowEditor.h", "../GormCore/GormWindowEditor.h", "../GormCore/GormWindowEditor.h", "../GormCore/GormWindowEditor.m" ); "../GormCore/GormWindowTemplate.h" = ( "../GormCore/GormWindowTemplate.h", "../GormCore/GormWindowTemplate.h", "../GormCore/GormWindowTemplate.h", "../GormCore/GormWindowTemplate.h", "../GormCore/GormWindowTemplate.h", "../GormCore/GormWindowTemplate.h", "../GormCore/GormWindowTemplate.m" ); "../GormCore/GormWrapperBuilder.h" = ( "../GormCore/GormWrapperBuilder.h", "../GormCore/GormWrapperBuilder.h", "../GormCore/GormWrapperBuilder.h", "../GormCore/GormWrapperBuilder.h", "../GormCore/GormWrapperBuilder.h", "../GormCore/GormWrapperBuilder.h", "../GormCore/GormWrapperBuilder.m" ); "../GormCore/GormWrapperLoader.h" = ( "../GormCore/GormWrapperLoader.h", "../GormCore/GormWrapperLoader.h", "../GormCore/GormWrapperLoader.h", "../GormCore/GormWrapperLoader.h", "../GormCore/GormWrapperLoader.h", "../GormCore/GormWrapperLoader.h", "../GormCore/GormWrapperLoader.m" ); "../GormCore/NSCell+GormAdditions.h" = ( "../GormCore/NSCell+GormAdditions.h", "../GormCore/NSCell+GormAdditions.h", "../GormCore/NSCell+GormAdditions.h", "../GormCore/NSCell+GormAdditions.h", "../GormCore/NSCell+GormAdditions.h", "../GormCore/NSCell+GormAdditions.h", "../GormCore/NSCell+GormAdditions.m" ); "../GormCore/NSColorWell+GormExtensions.h" = ( "../GormCore/NSColorWell+GormExtensions.h", "../GormCore/NSColorWell+GormExtensions.h", "../GormCore/NSColorWell+GormExtensions.h", "../GormCore/NSColorWell+GormExtensions.h", "../GormCore/NSColorWell+GormExtensions.h", "../GormCore/NSColorWell+GormExtensions.h", "../GormCore/NSColorWell+GormExtensions.m" ); "../GormCore/NSFontManager+GormExtensions.h" = ( "../GormCore/NSFontManager+GormExtensions.h", "../GormCore/NSFontManager+GormExtensions.h", "../GormCore/NSFontManager+GormExtensions.h", "../GormCore/NSFontManager+GormExtensions.h", "../GormCore/NSFontManager+GormExtensions.h", "../GormCore/NSFontManager+GormExtensions.h", "../GormCore/NSFontManager+GormExtensions.m" ); "../GormCore/NSView+GormExtensions.h" = ( "../GormCore/NSView+GormExtensions.h", "../GormCore/NSView+GormExtensions.h", "../GormCore/NSView+GormExtensions.h", "../GormCore/NSView+GormExtensions.h", "../GormCore/NSView+GormExtensions.h", "../GormCore/NSView+GormExtensions.h", "../GormCore/NSView+GormExtensions.m" ); }; super = { GormBoxEditor = GormViewWithSubviewsEditor; GormClassEditor = NSView; GormClassInspector = IBInspector; GormClassManager = NSObject; GormClassPanelController = NSObject; GormClassProxy = NSObject; GormConnectionInspector = IBInspector; GormControlEditor = GormViewEditor; GormCustomClassInspector = IBInspector; GormCustomView = NSTextField; GormDocument = NSDocument; GormDocumentController = NSDocumentController; GormDocumentWindow = NSWindow; GormEditorToParent = NSNibConnector; GormFilePrefsManager = NSObject; GormFilesOwner = NSObject; GormFilesOwnerInspector = IBInspector; GormFirstResponder = NSObject; GormFontViewController = NSObject; GormGenericEditor = NSMatrix; GormHelpInspector = IBInspector; GormImage = GormResource; GormImageEditor = GormResourceEditor; GormImageInspector = IBInspector; GormInspectorsManager = IBInspectorManager; GormInternalViewEditor = GormViewWithContentViewEditor; GormMatrixEditor = GormViewWithSubviewsEditor; GormNSPanel = NSPanel; GormNSSplitViewInspector = IBInspector; GormNSWindow = NSWindow; GormObjectEditor = GormGenericEditor; GormObjectInspector = IBInspector; GormObjectProxy = GSNibItem; GormObjectToEditor = NSNibConnector; GormOpenGLView = NSView; GormOutletActionHolder = NSObject; GormOutlineView = NSOutlineView; GormPalettesManager = NSObject; GormPlacementHint = NSObject; GormPlacementInfo = NSObject; GormPlugin = IBPlugin; GormPluginManager = NSObject; GormResource = NSObject; GormResourceEditor = GormGenericEditor; GormResourceManager = IBResourceManager; GormScrollViewAttributesInspector = IBInspector; GormSetNameController = NSObject; GormSound = GormResource; GormSoundEditor = GormResourceEditor; GormSoundInspector = IBInspector; GormSoundView = NSView; GormSplitViewEditor = GormViewWithSubviewsEditor; GormStandaloneViewEditor = GormViewWithContentViewEditor; GormViewEditor = NSView; GormViewSizeInspector = IBInspector; GormViewWindow = NSWindow; GormViewWithContentViewEditor = GormViewWithSubviewsEditor; GormViewWithSubviewsEditor = GormViewEditor; GormWindowEditor = GormViewWithContentViewEditor; GormWindowTemplate = NSWindowTemplate; GormWrapperBuilder = NSObject; GormWrapperBuilderFactory = NSObject; GormWrapperLoader = NSObject; GormWrapperLoaderFactory = NSObject; }; title = { GormBoxEditor = "GormBoxEditor class documentation"; GormClassEditor = "GormClassEditor class documentation"; GormClassInspector = GormClassInspector; GormClassManager = "GormClassManager class documentation"; GormClassPanelController = "GormClassPanelController class documentation"; GormConnectionInspector = "GormConnectionInspector class documentation"; GormControlEditor = "GormControlEditor class documentation"; GormCustomClassInspector = GormCustomClassInspector; GormCustomView = "GormCustomView class documentation"; GormDocument = "GormDocument documentation"; GormDocumentController = "GormDocumentController class documentation"; GormDocumentWindow = "GormDocumentWindow class documentation"; GormFilePrefsManager = GormFilePrefsManager; GormFilesOwner = "GormFilesOwner documentation"; GormFontViewController = "GormFontViewController class documentation"; GormFunctions = "GormFunctions documentation"; GormGenericEditor = "GormGenericEditor class documentation"; GormHelpInspector = "GormHelpInspector class documentation"; GormImage = GormImage; GormImageEditor = "GormImageEditor class documentation"; GormImageInspector = "GormImageInspector class documentation"; GormInspectorsManager = "GormInspectorsManager class documentation"; GormInternalViewEditor = "GormInternalViewEditor class documentation"; GormMatrixEditor = "GormMatrixEditor class documentation"; GormNSPanel = "GormNSPanel class documentation"; GormNSSplitViewInspector = "GormNSSplitViewInspector class documentation"; GormNSWindow = "GormNSWindow class documentation"; GormObjectEditor = "GormObjectEditor class documentation"; GormObjectInspector = "GormObjectInspector class documentation"; GormOpenGLView = "GormOpenGLView class documentation"; GormOutlineView = GormOutlineView; GormPalettesManager = "GormPalettesManager class documentation"; GormPlacementInfo = "GormPlacementInfo documentation"; GormPlugin = "GormPlugin class documentation"; GormPluginManager = "GormPluginManager class documentation"; GormPrivate = "GormPrivate documentation"; GormProtocol = "GormProtocol documentation"; GormResource = GormResource; GormResourceEditor = "GormResourceEditor class documentation"; GormResourceManager = "GormResourceManager class documentation"; GormScrollViewAttributesInspector = GormScrollViewAttributesInspector; GormServer = "GormServer documentation"; GormSetNameController = "GormSetNameController class documentation"; GormSound = GormSound; GormSoundEditor = "GormSoundEditor class documentation"; GormSoundInspector = GormSoundInspector; GormSoundView = GormSoundView; GormSplitViewEditor = "GormSplitViewEditor class documentation"; GormStandaloneViewEditor = "GormStandaloneViewEditor class documentation"; GormViewEditor = "GormViewEditor class documentation"; GormViewKnobs = "GormViewKnobs documentation"; GormViewSizeInspector = "GormViewSizeInspector class documentation"; GormViewWindow = "GormViewWindow class documentation"; GormViewWithContentViewEditor = "GormViewWithContentViewEditor class documentation"; GormViewWithSubviewsEditor = "GormViewWithSubviewsEditor class documentation"; GormWindowEditor = "GormWindowEditor class documentation"; GormWindowTemplate = "GormWindowTemplate class documentation"; GormWrapperBuilder = "GormWrapperBuilder documentation"; GormWrapperLoader = "GormWrapperLoader documentation"; "NSCell+GormAdditions" = "NSCell+GormAdditions documentation"; "NSColorWell+GormExtensions" = "NSColorWell+GormExtensions documentation"; "NSFontManager+GormExtensions" = "NSFontManager+GormExtensions documentation"; "NSView+GormExtensions" = "NSView+GormExtensions documentation"; }; type = { GSAttributeType = GormOutlineView; GormDocumentType = GormDocumentController; GormHintBorder = GormPlacementInfo; }; unitmethods = { "(Gorm)" = { "-classManager" = GormProtocol; "-classMenu" = GormProtocol; "-connectDestination" = GormProtocol; "-connectSource" = GormProtocol; "-copy:" = GormProtocol; "-cut:" = GormProtocol; "-delete:" = GormProtocol; "-displayConnectionBetween:and:" = GormProtocol; "-endTesting:" = GormProtocol; "-groupSelectionInBox:" = GormProtocol; "-groupSelectionInScrollView:" = GormProtocol; "-groupSelectionInSplitView:" = GormProtocol; "-inspector:" = GormProtocol; "-inspectorsManager" = GormProtocol; "-isConnecting" = GormProtocol; "-loadImage:" = GormProtocol; "-loadPalette:" = GormProtocol; "-loadSound:" = GormProtocol; "-palettes:" = GormProtocol; "-palettesManager" = GormProtocol; "-paste:" = GormProtocol; "-pluginManager" = GormProtocol; "-preferencesPanel:" = GormProtocol; "-selectAllItems:" = GormProtocol; "-setName:" = GormProtocol; "-stopConnecting" = GormProtocol; "-testInterface:" = GormProtocol; "-ungroup:" = GormProtocol; }; "(GormServer)" = { "-addClass:" = GormServer; "-deleteClass:" = GormServer; }; "(GormWrapperBuilder)" = { "-buildFileWrapperDictionaryWithDocument:" = GormWrapperBuilder; "-buildFileWrapperWithDocument:" = GormWrapperBuilder; }; "(GormWrapperLoader)" = { "-loadFileWrapper:withDocument:" = GormWrapperLoader; }; "GSClassSwapper(GormCustomClassAdditions)" = { "+setIsInInterfaceBuilder:" = GormPrivate; "-isInInterfaceBuilder" = GormPrivate; }; "GSNibItem(GormAdditions)" = { "-className" = GormPrivate; "-initWithClassName:" = GormPrivate; "-initWithClassName:frame:" = GormPrivate; }; GormBoxEditor = { "-destroyAndListSubviews" = GormBoxEditor; }; GormClassEditor = { "+classEditorForDocument:" = GormClassEditor; "-addAttributeToClass" = GormClassEditor; "-createClassFiles:" = GormClassEditor; "-createSubclass:" = GormClassEditor; "-currentSelectionIsClass" = GormClassEditor; "-deleteSelection" = GormClassEditor; "-editClass" = GormClassEditor; "-fileTypes" = GormClassEditor; "-initWithDocument:" = GormClassEditor; "-instantiateClass:" = GormClassEditor; "-isEditing" = GormClassEditor; "-loadClass:" = GormClassEditor; "-reloadData" = GormClassEditor; "-removeClass:" = GormClassEditor; "-selectClass:" = GormClassEditor; "-selectClass:editClass:" = GormClassEditor; "-selectClassWithObject:" = GormClassEditor; "-selectClassWithObject:editClass:" = GormClassEditor; "-selectedClassName" = GormClassEditor; "-setSelectedClassName:" = GormClassEditor; }; GormClassInspector = { "-_currentClass" = GormClassInspector; "-_refreshView" = GormClassInspector; "-addAction:" = GormClassInspector; "-addOutlet:" = GormClassInspector; "-changeClassName:" = GormClassInspector; "-handleNotification:" = GormClassInspector; "-removeAction:" = GormClassInspector; "-removeOutlet:" = GormClassInspector; "-searchForClass:" = GormClassInspector; "-select:" = GormClassInspector; "-selectAction:" = GormClassInspector; "-selectClass:" = GormClassInspector; "-selectOutlet:" = GormClassInspector; }; GormClassManager = { "-actionExists:onClassNamed:" = GormClassManager; "-addAction:forClassNamed:" = GormClassManager; "-addAction:forObject:" = GormClassManager; "-addActions:forClassNamed:" = GormClassManager; "-addClassNamed:withSuperClassNamed:withActions:withOutlets:" = GormClassManager; "-addClassNamed:withSuperClassNamed:withActions:withOutlets:isCustom:" = GormClassManager; "-addClassWithSuperClassName:" = GormClassManager; "-addNewActionToClassNamed:" = GormClassManager; "-addNewOutletToClassNamed:" = GormClassManager; "-addOutlet:forClassNamed:" = GormClassManager; "-addOutlet:forObject:" = GormClassManager; "-addOutlets:forClassNamed:" = GormClassManager; "-allActionsForClassNamed:" = GormClassManager; "-allActionsForObject:" = GormClassManager; "-allClassNames" = GormClassManager; "-allCustomClassNames" = GormClassManager; "-allCustomSubclassesOf:" = GormClassManager; "-allOutletsForClassNamed:" = GormClassManager; "-allOutletsForObject:" = GormClassManager; "-allSubclassesOf:" = GormClassManager; "-allSuperClassesOf:" = GormClassManager; "-canInstantiateClassNamed:" = GormClassManager; "-classNameForObject:" = GormClassManager; "-customClassForName:" = GormClassManager; "-customClassForObject:" = GormClassManager; "-customClassMap" = GormClassManager; "-customSubClassesOf:" = GormClassManager; "-data" = GormClassManager; "-dictionaryForClassNamed:" = GormClassManager; "-extraActionsForObject:" = GormClassManager; "-extraOutletsForObject:" = GormClassManager; "-findClassByName:" = GormClassManager; "-initWithDocument:" = GormClassManager; "-isAction:ofClass:" = GormClassManager; "-isAction:onCategoryForClassNamed:" = GormClassManager; "-isCategoryForClass:" = GormClassManager; "-isCustomClass:" = GormClassManager; "-isCustomClassMapEmpty" = GormClassManager; "-isKnownClass:" = GormClassManager; "-isNonCustomClass:" = GormClassManager; "-isOutlet:ofClass:" = GormClassManager; "-isRootClass:" = GormClassManager; "-isSuperclass:linkedToClass:" = GormClassManager; "-loadCustomClasses:" = GormClassManager; "-loadCustomClassesWithData:" = GormClassManager; "-loadCustomClassesWithDict:" = GormClassManager; "-loadFromFile:" = GormClassManager; "-loadNibFormatCustomClassesWithData:" = GormClassManager; "-loadNibFormatCustomClassesWithDict:" = GormClassManager; "-makeSourceAndHeaderFilesForClass:withName:and:" = GormClassManager; "-nibData" = GormClassManager; "-nonCustomSuperClassOf:" = GormClassManager; "-outletExists:onClassNamed:" = GormClassManager; "-parentOfClass:" = GormClassManager; "-parseHeader:" = GormClassManager; "-removeAction:forObject:" = GormClassManager; "-removeAction:fromClassNamed:" = GormClassManager; "-removeClassNamed:" = GormClassManager; "-removeCustomClassForName:" = GormClassManager; "-removeOutlet:forObject:" = GormClassManager; "-removeOutlet:fromClassNamed:" = GormClassManager; "-renameClassNamed:newName:" = GormClassManager; "-replaceAction:withAction:forClassNamed:" = GormClassManager; "-replaceOutlet:withOutlet:forClassNamed:" = GormClassManager; "-saveToFile:" = GormClassManager; "-setCustomClass:forName:" = GormClassManager; "-setCustomClassMap:" = GormClassManager; "-setSuperClassNamed:forClassNamed:" = GormClassManager; "-subClassesOf:" = GormClassManager; "-superClassNameForClassNamed:" = GormClassManager; "-uniqueClassNameFrom:" = GormClassManager; }; GormClassPanelController = { "-browserAction:" = GormClassPanelController; "-initWithTitle:classList:" = GormClassPanelController; "-okButton:" = GormClassPanelController; "-runModal" = GormClassPanelController; }; GormClassProxy = { "-className" = GormPrivate; "-connectInspectorClassName" = GormPrivate; "-initWithClassName:" = GormPrivate; "-inspectorClassName" = GormPrivate; "-sizeInspectorClassName" = GormPrivate; }; GormConnectionInspector = { "-updateButtons" = GormConnectionInspector; }; GormCustomClassInspector = { "-select:" = GormCustomClassInspector; }; GormCustomView = { "-className" = GormCustomView; "-setClassName:" = GormCustomView; }; GormDocument = { "-addAttributeToClass:" = GormDocument; "-alignSelectedObjects:" = GormDocument; "-allManagedPboardTypes" = GormDocument; "-arrangeSelectedObjects:" = GormDocument; "-changeToTopLevelEditorAcceptingTypes:andFileType:" = GormDocument; "-changeToViewWithTag:" = GormDocument; "-classIsSelected" = GormDocument; "-classManager" = GormDocument; "-closeAllEditors" = GormDocument; "-createClassFiles:" = GormDocument; "-createResourceManagers" = GormDocument; "-createSubclass:" = GormDocument; "-deactivateEditors" = GormDocument; "-deferredWindows" = GormDocument; "-exportStrings:" = GormDocument; "-filePrefsManager" = GormDocument; "-filesOwner" = GormDocument; "-firstResponder" = GormDocument; "-fontManager" = GormDocument; "-handleNotification:" = GormDocument; "-images" = GormDocument; "-infoData" = GormDocument; "-instantiateClass:" = GormDocument; "-isActive" = GormDocument; "-isDocumentOpen" = GormDocument; "-isOlderArchive" = GormDocument; "-isTopLevelObject:" = GormDocument; "-loadClass:" = GormDocument; "-objectIsDeferred:" = GormDocument; "-objectIsVisibleAtLaunch:" = GormDocument; "-openImage:" = GormDocument; "-openSound:" = GormDocument; "-reactivateEditors" = GormDocument; "-rebuildObjToNameMapping" = GormDocument; "-recentDocumentsMenu" = GormDocument; "-refreshConnectionsForClassNamed:" = GormDocument; "-remove:" = GormDocument; "-removeAllInstancesOfClass:" = GormDocument; "-removeConnectionsForClassNamed:" = GormDocument; "-removeConnectionsWithLabel:forClassNamed:isAction:" = GormDocument; "-renameConnectionsForClassNamed:toName:" = GormDocument; "-resourceManagerForPasteboard:" = GormDocument; "-resourceManagers" = GormDocument; "-retrieveObjectsForParent:recursively:" = GormDocument; "-scmWrapper" = GormDocument; "-selectClass:" = GormDocument; "-selectClass:editClass:" = GormDocument; "-servicesMenu" = GormDocument; "-setDocumentActive:" = GormDocument; "-setDocumentOpen:" = GormDocument; "-setImages:" = GormDocument; "-setInfoData:" = GormDocument; "-setObject:isDeferred:" = GormDocument; "-setObject:isVisibleAtLaunch:" = GormDocument; "-setOlderArchive:" = GormDocument; "-setRecentDocumentsMenu:" = GormDocument; "-setSCMWrapper:" = GormDocument; "-setServicesMenu:" = GormDocument; "-setSounds:" = GormDocument; "-setWindowsMenu:" = GormDocument; "-sounds" = GormDocument; "-translate:" = GormDocument; "-viewWithTag:" = GormDocument; "-visibleWindows" = GormDocument; "-window" = GormDocument; "-windowAndRect:forObject:" = GormDocument; "-windowsMenu" = GormDocument; }; "GormDocument(MenuValidation)" = { "-isEditingClasses" = GormDocument; "-isEditingImages" = GormDocument; "-isEditingObjects" = GormDocument; "-isEditingSounds" = GormDocument; }; GormDocumentController = { "-buildDocumentForType:" = GormDocumentController; "-openDocumentWithContentsOfURL:" = GormDocumentController; }; GormDocumentWindow = { "-setDocument:" = GormDocumentWindow; }; GormFilePrefsManager = { "+currentVersion" = GormFilePrefsManager; "-archiveTypeName" = GormFilePrefsManager; "-data" = GormFilePrefsManager; "-fileTypeName" = GormFilePrefsManager; "-isLatest" = GormFilePrefsManager; "-loadFromData:" = GormFilePrefsManager; "-loadFromFile:" = GormFilePrefsManager; "-loadProfile:" = GormFilePrefsManager; "-nibDataWithOpenItems:" = GormFilePrefsManager; "-restoreClassVersions" = GormFilePrefsManager; "-saveToFile:" = GormFilePrefsManager; "-selectArchiveType:" = GormFilePrefsManager; "-selectTargetVersion:" = GormFilePrefsManager; "-setClassVersions" = GormFilePrefsManager; "-setFileTypeName:" = GormFilePrefsManager; "-showIncompatibilities:" = GormFilePrefsManager; "-targetVersionName" = GormFilePrefsManager; "-version" = GormFilePrefsManager; "-versionOfClass:" = GormFilePrefsManager; }; GormFilesOwner = { "-className" = GormFilesOwner; "-setClassName:" = GormFilesOwner; }; GormFilesOwnerInspector = { "-takeClassFrom:" = GormFilesOwner; }; GormFontViewController = { "+sharedGormFontViewController" = GormFontViewController; "-convertFont:" = GormFontViewController; "-selectFont:" = GormFontViewController; "-view" = GormFontViewController; }; GormGenericEditor = { "+editorForDocument:" = GormGenericEditor; "+setEditor:forDocument:" = GormGenericEditor; "-activate" = GormGenericEditor; "-addObject:" = GormGenericEditor; "-close" = GormGenericEditor; "-closeSubeditors" = GormGenericEditor; "-containsObject:" = GormGenericEditor; "-copySelection" = GormGenericEditor; "-deleteSelection" = GormGenericEditor; "-document" = GormGenericEditor; "-editedObject" = GormGenericEditor; "-fileTypes" = GormGenericEditor; "-initWithObject:inDocument:" = GormGenericEditor; "-isOpened" = GormGenericEditor; "-objects" = GormGenericEditor; "-openSubeditorForObject:" = GormGenericEditor; "-orderFront" = GormGenericEditor; "-pasteInSelection" = GormGenericEditor; "-rectForObject:" = GormGenericEditor; "-refreshCells" = GormGenericEditor; "-removeObject:" = GormGenericEditor; "-selectObjects:" = GormGenericEditor; "-wantsSelection" = GormGenericEditor; "-window" = GormGenericEditor; }; "GormGenericEditor(PrivateMethods)" = { "-changeSelection:" = GormGenericEditor; "-groupSelectionInBox" = GormGenericEditor; "-groupSelectionInScrollView" = GormGenericEditor; "-groupSelectionInSplitView" = GormGenericEditor; "-groupSelectionInView" = GormGenericEditor; "-setEditor:forDocument:" = GormGenericEditor; "-ungroup" = GormGenericEditor; "-willCloseDocument:" = GormGenericEditor; }; GormImage = { "+imageForData:withFileName:inWrapper:" = GormImage; "+imageForPath:" = GormImage; "+imageForPath:inWrapper:" = GormImage; "-image" = GormImage; "-normalImage" = GormImage; }; GormInspectorsManager = { "-panel" = GormInspectorsManager; "-setClassInspector" = GormInspectorsManager; "-setCurrentInspector:" = GormInspectorsManager; "-updateSelection" = GormInspectorsManager; }; GormInternalViewEditor = { "-changeFont:" = GormInternalViewEditor; "-destroyAndListSubviews" = GormInternalViewEditor; }; GormNSPanel = { "-_isReleasedWhenClosed" = GormNSPanel; "-_setReleasedWhenClosed:" = GormNSPanel; "-_setStyleMask:" = GormNSPanel; "-_styleMask" = GormNSPanel; "-autoPositionMask" = GormNSPanel; "-setAutoPositionMask:" = GormNSPanel; }; GormNSWindow = { "-_isReleasedWhenClosed" = GormNSWindow; "-_setReleasedWhenClosed:" = GormNSWindow; "-_setStyleMask:" = GormNSWindow; "-_styleMask" = GormNSWindow; "-autoPositionMask" = GormNSWindow; "-setAutoPositionMask:" = GormNSWindow; }; GormObjectEditor = { "+setEditor:forDocument:" = GormObjectEditor; "-acceptsTypeFromArray:" = GormObjectEditor; "-draggedImage:endedAt:deposited:" = GormObjectEditor; "-draggingSourceOperationMaskForLocal:" = GormObjectEditor; "-makeSelectionVisible:" = GormObjectEditor; "-resetObject:" = GormObjectEditor; }; GormObjectInspector = { "-update:" = GormObjectInspector; }; GormObjectProxy = { "-setClassName:" = GormPrivate; }; GormOutletActionHolder = { "-getName" = GormOutlineView; "-initWithName:" = GormOutlineView; "-setName:" = GormOutlineView; }; GormOutlineView = { "-actionColumn" = GormOutlineView; "-attributeOffset" = GormOutlineView; "-editType" = GormOutlineView; "-isEditing" = GormOutlineView; "-itemBeingEdited" = GormOutlineView; "-menuItem" = GormOutlineView; "-outletColumn" = GormOutlineView; "-removeItemAtRow:" = GormOutlineView; "-reset" = GormOutlineView; "-selectRow:" = GormOutlineView; "-setActionColumn:" = GormOutlineView; "-setAttributeOffset:" = GormOutlineView; "-setIsEditing:" = GormOutlineView; "-setItemBeingEdited:" = GormOutlineView; "-setMenuItem:" = GormOutlineView; "-setOutletColumn:" = GormOutlineView; }; GormPalettesManager = { "-importClasses:withDictionary:" = GormPalettesManager; "-importImages:withBundle:" = GormPalettesManager; "-importSounds:withBundle:" = GormPalettesManager; "-importedClasses" = GormPalettesManager; "-importedImages" = GormPalettesManager; "-importedSounds" = GormPalettesManager; "-loadPalette:" = GormPalettesManager; "-openPalette:" = GormPalettesManager; "-panel" = GormPalettesManager; "-setCurrentPalette:" = GormPalettesManager; "-substituteClasses" = GormPalettesManager; }; GormPlacementHint = { "-border" = GormPlacementInfo; "-distanceToFrame:" = GormPlacementInfo; "-end" = GormPlacementInfo; "-frame" = GormPlacementInfo; "-initWithBorder:position:validityStart:validityEnd:frame:" = GormPlacementInfo; "-position" = GormPlacementInfo; "-rectWithHalfDistance:" = GormPlacementInfo; "-start" = GormPlacementInfo; }; GormPlugin = { "-registerDocumentTypeName:humanReadableName:forExtensions:" = GormPlugin; }; GormPluginManager = { "-loadPlugin:" = GormPluginManager; "-openPlugin:" = GormPluginManager; }; GormResource = { "+resourceForPath:" = GormResource; "+resourceForPath:inWrapper:" = GormResource; "-data" = GormResource; "-initWithData:withFileName:inWrapper:" = GormResource; "-initWithName:path:" = GormResource; "-initWithName:path:inWrapper:" = GormResource; "-initWithPath:" = GormResource; "-initWithPath:inWrapper:" = GormResource; "-isEqual:" = GormResource; "-isInWrapper" = GormResource; "-isSystemResource" = GormResource; "-name" = GormResource; "-setData:" = GormResource; "-setInWrapper:" = GormResource; "-setName:" = GormResource; "-setSystemResource:" = GormResource; }; GormResourceEditor = { "-addSystemResources" = GormResourceEditor; "-draggedImage:endedAt:deposited:" = GormResourceEditor; "-draggingSourceOperationMaskForLocal:" = GormResourceEditor; "-pbTypes" = GormResourceEditor; "-placeHolderWithPath:" = GormResourceEditor; "-refreshCells" = GormResourceEditor; "-resourceType" = GormResourceEditor; }; GormScrollViewAttributesInspector = { "-borderSelected:" = GormScrollViewAttributesInspector; "-colorSelected:" = GormScrollViewAttributesInspector; "-horizontalRuler:" = GormScrollViewAttributesInspector; "-horizontalSelected:" = GormScrollViewAttributesInspector; "-verticalRuler:" = GormScrollViewAttributesInspector; "-verticalSelected:" = GormScrollViewAttributesInspector; }; GormSetNameController = { "-cancelHit:" = GormSetNameController; "-okHit:" = GormSetNameController; "-runAsModal" = GormSetNameController; "-textField" = GormSetNameController; }; GormSound = { "+soundForData:withFileName:inWrapper:" = GormSound; "+soundForPath:" = GormSound; "+soundForPath:inWrapper:" = GormSound; }; GormSoundInspector = { "-pause:" = GormSoundInspector; "-play:" = GormSoundInspector; "-record:" = GormSoundInspector; "-stop:" = GormSoundInspector; }; GormSoundView = { "-setSound:" = GormSoundView; "-sound" = GormSoundView; }; GormSplitViewEditor = { "-destroyAndListSubviews" = GormSplitViewEditor; }; GormViewEditor = { "-activate" = GormViewEditor; "-canBeOpened" = GormViewEditor; "-close" = GormViewEditor; "-deactivate" = GormViewEditor; "-detachSubviews" = GormViewEditor; "-document" = GormViewEditor; "-editedObject" = GormViewEditor; "-frameDidChange:" = GormViewEditor; "-initWithObject:inDocument:" = GormViewEditor; "-isOpened" = GormViewEditor; "-makeSelectionVisible:" = GormViewEditor; "-parent" = GormViewEditor; "-postDraw:" = GormViewEditor; "-selection" = GormViewEditor; "-setOpened:" = GormViewEditor; }; "GormViewEditor(EditingAdditions)" = { "-editTextField:withEvent:" = GormViewEditor; }; "GormViewEditor(IntelligentPlacement)" = { "-initializeResizingInFrame:withKnob:" = GormViewEditor; "-updateResizingWithFrame:andEvent:andPlacementInfo:" = GormViewEditor; "-validateFrame:withEvent:andPlacementInfo:" = GormViewEditor; }; "GormViewEditor(WindowAndRect)" = { "-windowAndRect:forObject:" = GormViewEditor; }; GormViewWindow = { "-initWithView:" = GormViewWindow; "-setView:" = GormViewWindow; "-view" = GormViewWindow; }; GormViewWithContentViewEditor = { "-groupSelectionInBox" = GormViewWithContentViewEditor; "-groupSelectionInSplitView" = GormViewWithContentViewEditor; "-groupSelectionInView" = GormViewWithContentViewEditor; "-pasteInView:" = GormViewWithContentViewEditor; "-postDrawForView:" = GormViewWithContentViewEditor; "-ungroup" = GormViewWithContentViewEditor; }; GormViewWithSubviewsEditor = { "-changeFont:" = GormViewWithSubviewsEditor; "-closeSubeditors" = GormViewWithSubviewsEditor; "-copySelection" = GormViewWithSubviewsEditor; "-deactivateSubeditors" = GormViewWithSubviewsEditor; "-handleMouseOnKnob:ofView:withEvent:" = GormViewWithSubviewsEditor; "-handleMouseOnView:withEvent:" = GormViewWithSubviewsEditor; "-makeSubeditorResign" = GormViewWithSubviewsEditor; "-openParentEditor" = GormViewWithSubviewsEditor; "-selectObjects:" = GormViewWithSubviewsEditor; "-setOpenedSubeditor:" = GormViewWithSubviewsEditor; "-silentlyResetSelection" = GormViewWithSubviewsEditor; }; GormWindowEditor = { "-acceptsTypeFromArray:" = GormWindowEditor; "-activate" = GormWindowEditor; "-changeFont:" = GormWindowEditor; "-close" = GormWindowEditor; "-closeSubeditors" = GormWindowEditor; "-deactivate" = GormWindowEditor; "-deleteSelection" = GormWindowEditor; "-document" = GormWindowEditor; "-draggedImage:endedAt:deposited:" = GormWindowEditor; "-draggingSourceOperationMaskForLocal:" = GormWindowEditor; "-initWithObject:inDocument:" = GormWindowEditor; "-makeSelectionVisible:" = GormWindowEditor; "-openSubeditorForObject:" = GormWindowEditor; "-orderFront" = GormWindowEditor; "-pasteInSelection" = GormWindowEditor; "-resetObject:" = GormWindowEditor; }; GormWrapperBuilder = { "+fileType" = GormWrapperBuilder; }; GormWrapperBuilderFactory = { "+registerWrapperBuilderClass:" = GormWrapperBuilder; "+sharedWrapperBuilderFactory" = GormWrapperBuilder; "-wrapperBuilderForType:" = GormWrapperBuilder; }; GormWrapperLoader = { "+fileType" = GormWrapperLoader; "-saveSCMDirectory:" = GormWrapperLoader; }; GormWrapperLoaderFactory = { "+registerWrapperLoaderClass:" = GormWrapperLoader; "+sharedWrapperLoaderFactory" = GormWrapperLoader; "-wrapperLoaderForType:" = GormWrapperLoader; }; "IBResourceManager(GormAdditions)" = { "+registerForAllPboardTypes:inDocument:" = GormPrivate; }; "NSCell(GormAdditions)" = { "-setUpFieldEditorAttributes:" = "NSCell+GormAdditions"; }; "NSClassSwapper(GormCustomClassAdditions)" = { "+setIsInInterfaceBuilder:" = GormPrivate; "-isInInterfaceBuilder" = GormPrivate; }; "NSColorWell(GormExtensions)" = { "-setColorWithoutAction:" = "NSColorWell+GormExtensions"; }; "NSDateFormatter(GormAdditions)" = { "+defaultFormat" = GormPrivate; "+defaultFormatValue" = GormPrivate; "+formatAtIndex:" = GormPrivate; "+formatCount" = GormPrivate; "+indexOfFormat:" = GormPrivate; }; "NSFontManager(GormExtensions)" = { "-sendAction" = "NSFontManager+GormExtensions"; }; "NSImage(GormNSImageAddition)" = { "-archiveByName" = GormImage; "-setArchiveByName:" = GormImage; }; "NSNumberFormatter(GormAdditions)" = { "+defaultFormat" = GormPrivate; "+defaultFormatValue" = GormPrivate; "+formatAtIndex:" = GormPrivate; "+formatCount" = GormPrivate; "+indexOfFormat:" = GormPrivate; "+negativeFormatAtIndex:" = GormPrivate; "+negativeValueAtIndex:" = GormPrivate; "+positiveFormatAtIndex:" = GormPrivate; "+positiveValueAtIndex:" = GormPrivate; "+zeroFormatAtIndex:" = GormPrivate; "-zeroFormat" = GormPrivate; }; "NSObject(GormAdditions)" = { "-allocSubstitute" = GormPrivate; "-imageForViewer" = GormPrivate; }; "NSObject(GormOutlineViewDataSource)" = { "-outlineView:actionsForItem:" = GormOutlineView; "-outlineView:addAction:forClass:" = GormOutlineView; "-outlineView:addNewActionForClass:" = GormOutlineView; "-outlineView:addNewOutletForClass:" = GormOutlineView; "-outlineView:addOutlet:forClass:" = GormOutlineView; "-outlineView:outletsForItem:" = GormOutlineView; }; "NSObject(GormOutlineViewDelegate)" = { "-outlineView:shouldDeleteItem:" = GormOutlineView; }; "NSView(GormExtensions)" = { "-hasSuperviewKindOfClass:" = "NSView+GormExtensions"; "-moveViewToBack:" = "NSView+GormExtensions"; "-moveViewToFront:" = "NSView+GormExtensions"; "-superviews" = "NSView+GormExtensions"; }; "NSWindowTemplate(Private)" = { "-setBaseWindowClass:" = GormWindowTemplate; }; }; variable = { GormClassPboardType = GormClassEditor; GormDidAddClassNotification = GormPrivate; GormDidDeleteClassNotification = GormPrivate; GormDidModifyClassNotification = GormPrivate; GormLinkPboardType = GormPrivate; GormResizeCellNotification = GormPrivate; GormSwitchViewPreferencesNotification = GormClassEditor; GormToggleGuidelineNotification = GormPrivate; GormWillDetachObjectFromDocumentNotification = GormPrivate; typeChar = GormObjectInspector; typeDouble = GormObjectInspector; typeFloat = GormObjectInspector; typeId = GormObjectInspector; typeInt = GormObjectInspector; typeUChar = GormObjectInspector; typeUInt = GormObjectInspector; }; }gorm-1.2.24/Documentation/GormCore/GormSound.gsdoc0000644000000000000000000000345713426745046020552 0ustar rootroot GormSound greg_casamento@yahoo.com A place holder for a sound. 2001 Free Software Foundation, Inc. Software documentation for the GormSound class GormCore/GormSound.h Description forthcoming. soundForData: aData withFileName: aName inWrapper: flag Description forthcoming. soundForPath: aPath Creates a GormSound object using the file at path. soundForPath: aPath inWrapper: flag Creates a GormSound object using the file at path, and marks it as inside or outside of the.gorm/.nib wrapper. gorm-1.2.24/Documentation/GormCore/NSCell+GormAdditions.gsdoc0000644000000000000000000000214313426745046022503 0ustar rootroot NSCell+GormAdditions documentation Software documentation for the NSCell(GormAdditions) category GormCore/NSCell+GormAdditions.h Description forthcoming. setUpFieldEditorAttributes: textObject This methods is comes directly from NSCell.m The only additions is [textObject setUsesFontPanel: NO] We do this because we want to have control over the font panel changes. gorm-1.2.24/Documentation/GormCore/GormCustomClassInspector.gsdoc0000644000000000000000000000671613426745045023611 0ustar rootroot GormCustomClassInspector greg_casamento@yahoo.com allow user to select custom classes 2002 Free Software Foundation, Inc. Software documentation for the GormCustomClassInspector class GormCore/GormCustomClassInspector.h Description forthcoming. Warning the underscore at the start of the name of this instance variable indicates that, even though it is not technically private, it is intended for internal use within the package, and you should not use the variable in other code. Warning the underscore at the start of the name of this instance variable indicates that, even though it is not technically private, it is intended for internal use within the package, and you should not use the variable in other code. Warning the underscore at the start of the name of this instance variable indicates that, even though it is not technically private, it is intended for internal use within the package, and you should not use the variable in other code. Warning the underscore at the start of the name of this instance variable indicates that, even though it is not technically private, it is intended for internal use within the package, and you should not use the variable in other code. Warning the underscore at the start of the name of this instance variable indicates that, even though it is not technically private, it is intended for internal use within the package, and you should not use the variable in other code. Description forthcoming. select: sender Description forthcoming. gorm-1.2.24/Documentation/GormCore/FunctionsTOC.gsdoc0000644000000000000000000000056713426755205021150 0ustar rootroot Functions gorm-1.2.24/Documentation/GormCore/GormCustomClassInspector.html0000644000000000000000000001171313426745046023450 0ustar rootroot GormCustomClassInspector

GormCustomClassInspector

Authors

Gregory John Casamento (greg_casamento@yahoo.com)
allow user to select custom classes

Copyright: (C) 2002 Free Software Foundation, Inc.

Software documentation for the GormCustomClassInspector class

GormCustomClassInspector : IBInspector

Declared in:
GormCore/GormCustomClassInspector.h
Description forthcoming.

Instance Variables

Method summary

select: 

- (void) select: (id)sender;
Description forthcoming.



Instance Variables for GormCustomClassInspector Class

_classManager

@protected GormClassManager* _classManager;
Warning the underscore at the start of the name of this instance variable indicates that, even though it is not technically private, it is intended for internal use within the package, and you should not use the variable in other code.

_currentSelectionClassName

@protected NSString* _currentSelectionClassName;
Warning the underscore at the start of the name of this instance variable indicates that, even though it is not technically private, it is intended for internal use within the package, and you should not use the variable in other code.

_document

@protected id _document;
Warning the underscore at the start of the name of this instance variable indicates that, even though it is not technically private, it is intended for internal use within the package, and you should not use the variable in other code.

_parentClassName

@protected NSString* _parentClassName;
Warning the underscore at the start of the name of this instance variable indicates that, even though it is not technically private, it is intended for internal use within the package, and you should not use the variable in other code.

_rowToSelect

@protected NSUInteger _rowToSelect;
Warning the underscore at the start of the name of this instance variable indicates that, even though it is not technically private, it is intended for internal use within the package, and you should not use the variable in other code.

browser

@protected id browser;
Description forthcoming.





gorm-1.2.24/Documentation/GormCore/GormClassInspector.gsdoc0000644000000000000000000001536213426745045022413 0ustar rootroot GormClassInspector greg_casamento@yahoo.com allow user to select custom classes 2002 Free Software Foundation, Inc. Software documentation for the GormClassInspector class GormCore/GormClassInspector.h Description forthcoming. Description forthcoming. Description forthcoming. Description forthcoming. Description forthcoming. Description forthcoming. Description forthcoming. Description forthcoming. Description forthcoming. Description forthcoming. Description forthcoming. Description forthcoming. Description forthcoming. Description forthcoming. Description forthcoming. Description forthcoming. Description forthcoming. Description forthcoming. Description forthcoming. _currentClass Warning the underscore at the start of the name of this method indicates that it is private, for internal use only, and you should not use the method in your code. _refreshView Warning the underscore at the start of the name of this method indicates that it is private, for internal use only, and you should not use the method in your code. addAction: sender Description forthcoming. addOutlet: sender Description forthcoming. changeClassName: sender Description forthcoming. handleNotification: notification Description forthcoming. removeAction: sender Description forthcoming. removeOutlet: sender Description forthcoming. searchForClass: sender Description forthcoming. select: sender Description forthcoming. selectAction: sender Description forthcoming. selectClass: sender Description forthcoming. selectOutlet: sender Description forthcoming. gorm-1.2.24/Documentation/GormCore/ClassesTOC.html0000644000000000000000000001767313426755205020450 0ustar rootroot Classes

Classes

GormBoxEditor
GormClassEditor
GormClassInspector
GormClassManager
GormClassPanelController
GormClassProxy
GormConnectionInspector
GormControlEditor
GormCustomClassInspector
GormCustomView
GormDocument
GormDocumentController
GormDocumentWindow
GormEditorToParent
GormFilePrefsManager
GormFilesOwner
GormFilesOwnerInspector
GormFirstResponder
GormFontViewController
GormGenericEditor
GormHelpInspector
GormImage
GormImageEditor
GormImageInspector
GormInspectorsManager
GormInternalViewEditor
GormMatrixEditor
GormNSPanel
GormNSSplitViewInspector
GormNSWindow
GormObjectEditor
GormObjectInspector
GormObjectProxy
GormObjectToEditor
GormOpenGLView
GormOutletActionHolder
GormOutlineView
GormPalettesManager
GormPlacementHint
GormPlacementInfo
GormPlugin
GormPluginManager
GormResource
GormResourceEditor
GormResourceManager
GormScrollViewAttributesInspector
GormSetNameController
GormSound
GormSoundEditor
GormSoundInspector
GormSoundView
GormSplitViewEditor
GormStandaloneViewEditor
GormViewEditor
GormViewSizeInspector
GormViewWindow
GormViewWithContentViewEditor
GormViewWithSubviewsEditor
GormWindowEditor
GormWindowTemplate
GormWrapperBuilder
GormWrapperBuilderFactory
GormWrapperLoader
GormWrapperLoaderFactory

gorm-1.2.24/Documentation/GormCore/GormNSPanel.gsdoc0000644000000000000000000000700213426745045020747 0ustar rootroot GormNSPanel class documentation Software documentation for the GormNSPanel class GormCore/GormNSPanel.h Description forthcoming. Warning the underscore at the start of the name of this instance variable indicates that, even though it is not technically private, it is intended for internal use within the package, and you should not use the variable in other code. Warning the underscore at the start of the name of this instance variable indicates that, even though it is not technically private, it is intended for internal use within the package, and you should not use the variable in other code. Description forthcoming. _isReleasedWhenClosed Warning the underscore at the start of the name of this method indicates that it is private, for internal use only, and you should not use the method in your code. _setReleasedWhenClosed: flag Warning the underscore at the start of the name of this method indicates that it is private, for internal use only, and you should not use the method in your code. _setStyleMask: newStyleMask Warning the underscore at the start of the name of this method indicates that it is private, for internal use only, and you should not use the method in your code. _styleMask Warning the underscore at the start of the name of this method indicates that it is private, for internal use only, and you should not use the method in your code. autoPositionMask Description forthcoming. setAutoPositionMask: mask Description forthcoming. gorm-1.2.24/Documentation/GormCore/GormFontViewController.html0000644000000000000000000000764313426745046023135 0ustar rootroot GormFontViewController class documentation

GormFontViewController class documentation

Authors

Generated by heron

Software documentation for the GormFontViewController class

GormFontViewController : NSObject

Declared in:
GormCore/GormFontViewController.h
Description forthcoming.

Instance Variables

Method summary

sharedGormFontViewController 

+ (GormFontViewController*) sharedGormFontViewController;
Description forthcoming.

convertFont: 

- (NSFont*) convertFont: (NSFont*)aFont;
Description forthcoming.

selectFont: 

- (void) selectFont: (id)sender;
Description forthcoming.

view 

- (id) view;
Description forthcoming.



Instance Variables for GormFontViewController Class

encodeButton

@protected id encodeButton;
Description forthcoming.

fontSelector

@protected id fontSelector;
Description forthcoming.

view

@protected id view;
Description forthcoming.





gorm-1.2.24/Documentation/GormCore/GormViewSizeInspector.html0000644000000000000000000000602513426745046022755 0ustar rootroot GormViewSizeInspector class documentation

GormViewSizeInspector class documentation

Authors

Generated by heron

Software documentation for the GormViewSizeInspector class

GormViewSizeInspector : IBInspector

Declared in:
GormCore/GormViewSizeInspector.h
Description forthcoming.

Instance Variables



Instance Variables for GormViewSizeInspector Class

bottom

@protected NSButton* bottom;
Description forthcoming.

height

@protected NSButton* height;
Description forthcoming.

left

@protected NSButton* left;
Description forthcoming.

right

@protected NSButton* right;
Description forthcoming.

sizeForm

@protected NSForm* sizeForm;
Description forthcoming.

top

@protected NSButton* top;
Description forthcoming.

width

@protected NSButton* width;
Description forthcoming.





gorm-1.2.24/Documentation/GormCore/GormObjectInspector.gsdoc0000644000000000000000000000623013426745046022547 0ustar rootroot GormObjectInspector class documentation Software documentation for the GormObjectInspector class GormCore/GormObjectInspector.h Description forthcoming. Description forthcoming. Description forthcoming. Description forthcoming. Description forthcoming. Description forthcoming. Description forthcoming. Description forthcoming. update: sender Description forthcoming. GormObjectInspector variables

Description forthcoming. Description forthcoming. Description forthcoming. Description forthcoming. Description forthcoming. Description forthcoming. Description forthcoming.
gorm-1.2.24/Documentation/GormCore/GormWindowTemplate.gsdoc0000644000000000000000000000345213426745046022420 0ustar rootroot GormWindowTemplate class documentation Software documentation for the GormWindowTemplate class GormCore/GormWindowTemplate.h Description forthcoming. Warning the underscore at the start of the name of this instance variable indicates that, even though it is not technically private, it is intended for internal use within the package, and you should not use the variable in other code. Software documentation for the NSWindowTemplate(Private) category GormCore/GormWindowTemplate.h Warning this category is private, which means that the methods are for internal use by the package. You should not use them in external code. setBaseWindowClass: clz Description forthcoming. gorm-1.2.24/Documentation/GormCore/GormPrivate.html0000644000000000000000000005774113426745046020746 0ustar rootroot GormPrivate documentation

GormPrivate documentation

Authors

Generated by heron

Software documentation for the GormClassProxy class

GormClassProxy : NSObject

Declared in:
GormCore/GormPrivate.h
Description forthcoming.

Instance Variables

Method summary

className 

- (NSString*) className;
Description forthcoming.

connectInspectorClassName 

- (NSString*) connectInspectorClassName;
Description forthcoming.

initWithClassName: 

- (id) initWithClassName: (NSString*)n;
Description forthcoming.

inspectorClassName 

- (NSString*) inspectorClassName;
Description forthcoming.

sizeInspectorClassName 

- (NSString*) sizeInspectorClassName;
Description forthcoming.



Instance Variables for GormClassProxy Class

name

@protected NSString* name;
Description forthcoming.

t

@protected NSInteger t;
Description forthcoming.




Software documentation for the GormObjectProxy class

GormObjectProxy : GSNibItem

Declared in:
GormCore/GormPrivate.h
Description forthcoming.
Method summary

setClassName: 

- (void) setClassName: (NSString*)className;
Description forthcoming.

Software documentation for the GSClassSwapper(GormCustomClassAdditions) category

GSClassSwapper(GormCustomClassAdditions)

Declared in:
GormCore/GormPrivate.h
Description forthcoming.
Method summary

setIsInInterfaceBuilder: 

+ (void) setIsInInterfaceBuilder: (BOOL)flag;
Description forthcoming.

isInInterfaceBuilder 

- (BOOL) isInInterfaceBuilder;
Description forthcoming.

Software documentation for the GSNibItem(GormAdditions) category

GSNibItem(GormAdditions)

Declared in:
GormCore/GormPrivate.h
Description forthcoming.
Method summary

className 

- (NSString*) className;
Description forthcoming.

initWithClassName: 

- (id) initWithClassName: (NSString*)className;
Description forthcoming.

initWithClassName: frame: 

- (id) initWithClassName: (NSString*)className frame: (NSRect)frame;
Description forthcoming.

Software documentation for the IBResourceManager(GormAdditions) category

IBResourceManager(GormAdditions)

Declared in:
GormCore/GormPrivate.h
Description forthcoming.
Method summary

registerForAllPboardTypes: inDocument: 

+ (void) registerForAllPboardTypes: (id)editor inDocument: (id)doc;
Description forthcoming.

Software documentation for the NSClassSwapper(GormCustomClassAdditions) category

NSClassSwapper(GormCustomClassAdditions)

Declared in:
GormCore/GormPrivate.h
Description forthcoming.
Method summary

setIsInInterfaceBuilder: 

+ (void) setIsInInterfaceBuilder: (BOOL)flag;
Description forthcoming.

isInInterfaceBuilder 

- (BOOL) isInInterfaceBuilder;
Description forthcoming.

Software documentation for the NSDateFormatter(GormAdditions) category

NSDateFormatter(GormAdditions)

Declared in:
GormCore/GormPrivate.h
Description forthcoming.
Method summary

defaultFormat 

+ (NSString*) defaultFormat;
Description forthcoming.

defaultFormatValue 

+ (id) defaultFormatValue;
Description forthcoming.

formatAtIndex: 

+ (NSString*) formatAtIndex: (int)index;
Description forthcoming.

formatCount 

+ (int) formatCount;
Description forthcoming.

indexOfFormat: 

+ (NSInteger) indexOfFormat: (NSString*)format;
Description forthcoming.

Software documentation for the NSNumberFormatter(GormAdditions) category

NSNumberFormatter(GormAdditions)

Declared in:
GormCore/GormPrivate.h
Description forthcoming.
Method summary

defaultFormat 

+ (NSString*) defaultFormat;
Description forthcoming.

defaultFormatValue 

+ (id) defaultFormatValue;
Description forthcoming.

formatAtIndex: 

+ (NSString*) formatAtIndex: (int)index;
Description forthcoming.

formatCount 

+ (int) formatCount;
Description forthcoming.

indexOfFormat: 

+ (NSInteger) indexOfFormat: (NSString*)format;
Description forthcoming.

negativeFormatAtIndex: 

+ (NSString*) negativeFormatAtIndex: (int)index;
Description forthcoming.

negativeValueAtIndex: 

+ (NSDecimalNumber*) negativeValueAtIndex: (int)index;
Description forthcoming.

positiveFormatAtIndex: 

+ (NSString*) positiveFormatAtIndex: (int)index;
Description forthcoming.

positiveValueAtIndex: 

+ (NSDecimalNumber*) positiveValueAtIndex: (int)index;
Description forthcoming.

zeroFormatAtIndex: 

+ (NSString*) zeroFormatAtIndex: (int)index;
Description forthcoming.

zeroFormat 

- (NSString*) zeroFormat;
Description forthcoming.

Software documentation for the NSObject(GormAdditions) informal protocol

NSObject(GormAdditions)

Declared in:
GormCore/GormPrivate.h
Description forthcoming.
Method summary

allocSubstitute 

- (id) allocSubstitute;
Description forthcoming.

imageForViewer 

- (NSImage*) imageForViewer;
Description forthcoming.

GormPrivate variables

GormDidAddClassNotification

NSString* GormDidAddClassNotification;
Description forthcoming.

GormDidDeleteClassNotification

NSString* GormDidDeleteClassNotification;
Description forthcoming.

GormDidModifyClassNotification

NSString* GormDidModifyClassNotification;
Description forthcoming.

GormLinkPboardType

NSString* GormLinkPboardType;
Description forthcoming.

GormResizeCellNotification

NSString* GormResizeCellNotification;
Description forthcoming.

GormToggleGuidelineNotification

NSString* GormToggleGuidelineNotification;
Description forthcoming.

GormWillDetachObjectFromDocumentNotification

NSString* GormWillDetachObjectFromDocumentNotification;
Description forthcoming.


gorm-1.2.24/Documentation/GormCore/GormConnectionInspector.gsdoc0000644000000000000000000000362213426745045023441 0ustar rootroot GormConnectionInspector class documentation Software documentation for the GormConnectionInspector class GormCore/GormConnectionInspector.h Description forthcoming. Description forthcoming. Description forthcoming. Description forthcoming. Description forthcoming. Description forthcoming. Description forthcoming. updateButtons Description forthcoming. gorm-1.2.24/Documentation/GormCore/GormHelpInspector.html0000644000000000000000000000300013426745046022066 0ustar rootroot GormHelpInspector class documentation

GormHelpInspector class documentation

Authors

Generated by heron

Software documentation for the GormHelpInspector class

GormHelpInspector : IBInspector

Declared in:
GormCore/GormHelpInspector.h
Description forthcoming.

Instance Variables



Instance Variables for GormHelpInspector Class

toolTip

@protected id toolTip;
Description forthcoming.





gorm-1.2.24/Documentation/GormCore/GormImageInspector.gsdoc0000644000000000000000000000340113426745045022357 0ustar rootroot GormImageInspector class documentation Software documentation for the GormImageInspector class GormCore/GormImageInspector.h Description forthcoming. Warning the underscore at the start of the name of this instance variable indicates that, even though it is not technically private, it is intended for internal use within the package, and you should not use the variable in other code. Description forthcoming. Description forthcoming. Description forthcoming. Description forthcoming. gorm-1.2.24/Documentation/GormCore/GormInspectorsManager.gsdoc0000644000000000000000000000464113426745045023101 0ustar rootroot GormInspectorsManager class documentation Software documentation for the GormInspectorsManager class GormCore/GormInspectorsManager.h Description forthcoming. Description forthcoming. Description forthcoming. Description forthcoming. Description forthcoming. Description forthcoming. Description forthcoming. panel Description forthcoming. setClassInspector Description forthcoming. setCurrentInspector: anObj Description forthcoming. updateSelection Description forthcoming. gorm-1.2.24/Documentation/GormCore/GormSoundEditor.html0000644000000000000000000000204613426745046021557 0ustar rootroot GormSoundEditor class documentation

GormSoundEditor class documentation

Authors

Generated by heron

Software documentation for the GormSoundEditor class

GormSoundEditor : GormResourceEditor

Declared in:
GormCore/GormSoundEditor.h
Description forthcoming.

gorm-1.2.24/Documentation/GormCore/GormDocumentWindow.html0000644000000000000000000000503313426745046022265 0ustar rootroot GormDocumentWindow class documentation

GormDocumentWindow class documentation

Authors

Generated by heron

Software documentation for the GormDocumentWindow class

GormDocumentWindow : NSWindow

Declared in:
GormCore/GormDocumentWindow.h
Description forthcoming.

Instance Variables

Method summary

setDocument: 

- (void) setDocument: (id)document;
Description forthcoming.



Instance Variables for GormDocumentWindow Class

_document

@protected id _document;
Warning the underscore at the start of the name of this instance variable indicates that, even though it is not technically private, it is intended for internal use within the package, and you should not use the variable in other code.

dragMgr

@protected IBResourceManager* dragMgr;
Description forthcoming.





gorm-1.2.24/Documentation/GormCore/OrderedSymbolDeclarations.plist0000644000000000000000000003431113426755205023763 0ustar rootroot{ "(Gorm)" = ( "-connectSource", "-connectDestination", "-displayConnectionBetween:and:", "-isConnecting", "-stopConnecting", "-preferencesPanel:", "-copy:", "-cut:", "-paste:", "-delete:", "-selectAllItems:", "-setName:", "-inspector:", "-palettes:", "-loadPalette:", "-palettesManager", "-inspectorsManager", "-pluginManager", "-testInterface:", "-endTesting:", "-loadSound:", "-loadImage:", "-groupSelectionInSplitView:", "-groupSelectionInBox:", "-groupSelectionInScrollView:", "-ungroup:", "-classManager", "-classMenu" ); "(GormServer)" = ( "-addClass:", "-deleteClass:" ); "(GormWrapperBuilder)" = ( "-buildFileWrapperDictionaryWithDocument:", "-buildFileWrapperWithDocument:" ); "(GormWrapperLoader)" = ( "-loadFileWrapper:withDocument:" ); "GSClassSwapper(GormCustomClassAdditions)" = ( "+setIsInInterfaceBuilder:", "-isInInterfaceBuilder" ); "GSNibItem(GormAdditions)" = ( "-initWithClassName:", "-initWithClassName:frame:", "-className" ); GormBoxEditor = ( "-destroyAndListSubviews" ); GormClassEditor = ( "-initWithDocument:", "+classEditorForDocument:", "-setSelectedClassName:", "-selectedClassName", "-selectClassWithObject:editClass:", "-selectClassWithObject:", "-selectClass:editClass:", "-selectClass:", "-currentSelectionIsClass", "-editClass", "-addAttributeToClass", "-deleteSelection", "-fileTypes", "-reloadData", "-isEditing", "-instantiateClass:", "-createSubclass:", "-loadClass:", "-createClassFiles:", "-removeClass:" ); GormClassInspector = ( "-addAction:", "-removeAction:", "-addOutlet:", "-removeOutlet:", "-select:", "-searchForClass:", "-selectClass:", "-_currentClass", "-_refreshView", "-handleNotification:", "-changeClassName:", "-selectAction:", "-selectOutlet:" ); GormClassManager = ( "-initWithDocument:", "-addAction:forObject:", "-addOutlet:forObject:", "-allActionsForClassNamed:", "-allActionsForObject:", "-extraActionsForObject:", "-allOutletsForClassNamed:", "-allOutletsForObject:", "-extraOutletsForObject:", "-allClassNames", "-removeAction:forObject:", "-removeOutlet:forObject:", "-removeAction:fromClassNamed:", "-removeOutlet:fromClassNamed:", "-addOutlet:forClassNamed:", "-addAction:forClassNamed:", "-addActions:forClassNamed:", "-addOutlets:forClassNamed:", "-addNewActionToClassNamed:", "-addNewOutletToClassNamed:", "-replaceAction:withAction:forClassNamed:", "-replaceOutlet:withOutlet:forClassNamed:", "-renameClassNamed:newName:", "-removeClassNamed:", "-addClassWithSuperClassName:", "-subClassesOf:", "-allSubclassesOf:", "-customSubClassesOf:", "-allCustomSubclassesOf:", "-allCustomClassNames", "-addClassNamed:withSuperClassNamed:withActions:withOutlets:", "-addClassNamed:withSuperClassNamed:withActions:withOutlets:isCustom:", "-setSuperClassNamed:forClassNamed:", "-parentOfClass:", "-superClassNameForClassNamed:", "-isSuperclass:linkedToClass:", "-dictionaryForClassNamed:", "-uniqueClassNameFrom:", "-isRootClass:", "-outletExists:onClassNamed:", "-actionExists:onClassNamed:", "-isCustomClass:", "-isNonCustomClass:", "-isCategoryForClass:", "-isKnownClass:", "-isAction:ofClass:", "-isOutlet:ofClass:", "-allSuperClassesOf:", "-canInstantiateClassNamed:", "-customClassForObject:", "-customClassForName:", "-setCustomClass:forName:", "-removeCustomClassForName:", "-customClassMap", "-setCustomClassMap:", "-isCustomClassMapEmpty", "-nonCustomSuperClassOf:", "-isAction:onCategoryForClassNamed:", "-classNameForObject:", "-findClassByName:", "-makeSourceAndHeaderFilesForClass:withName:and:", "-parseHeader:", "-saveToFile:", "-data", "-nibData", "-loadFromFile:", "-loadCustomClasses:", "-loadCustomClassesWithData:", "-loadCustomClassesWithDict:", "-loadNibFormatCustomClassesWithData:", "-loadNibFormatCustomClassesWithDict:" ); GormClassPanelController = ( "-initWithTitle:classList:", "-okButton:", "-browserAction:", "-runModal" ); GormClassProxy = ( "-initWithClassName:", "-className", "-inspectorClassName", "-connectInspectorClassName", "-sizeInspectorClassName" ); GormConnectionInspector = ( "-updateButtons" ); GormCustomClassInspector = ( "-select:" ); GormCustomView = ( "-setClassName:", "-className" ); GormDocument = ( "-handleNotification:", "-isActive", "-objectIsVisibleAtLaunch:", "-objectIsDeferred:", "-retrieveObjectsForParent:recursively:", "-setDocumentActive:", "-setObject:isVisibleAtLaunch:", "-setObject:isDeferred:", "-window", "-isTopLevelObject:", "-closeAllEditors", "-createResourceManagers", "-resourceManagers", "-resourceManagerForPasteboard:", "-changeToTopLevelEditorAcceptingTypes:andFileType:", "-changeToViewWithTag:", "-viewWithTag:", "-allManagedPboardTypes", "-translate:", "-exportStrings:", "-classManager", "-createSubclass:", "-instantiateClass:", "-createClassFiles:", "-addAttributeToClass:", "-remove:", "-selectClass:", "-selectClass:editClass:", "-classIsSelected", "-removeAllInstancesOfClass:", "-openSound:", "-openImage:", "-rebuildObjToNameMapping", "-removeConnectionsWithLabel:forClassNamed:isAction:", "-removeConnectionsForClassNamed:", "-renameConnectionsForClassNamed:toName:", "-refreshConnectionsForClassNamed:", "-loadClass:", "-setServicesMenu:", "-servicesMenu", "-setWindowsMenu:", "-windowsMenu", "-setRecentDocumentsMenu:", "-recentDocumentsMenu", "-fontManager", "-firstResponder", "-arrangeSelectedObjects:", "-alignSelectedObjects:", "-windowAndRect:forObject:", "-setSCMWrapper:", "-scmWrapper", "-images", "-sounds", "-setImages:", "-setSounds:", "-filesOwner", "-filePrefsManager", "-visibleWindows", "-deferredWindows", "-setDocumentOpen:", "-isDocumentOpen", "-setInfoData:", "-infoData", "-setOlderArchive:", "-isOlderArchive", "-deactivateEditors", "-reactivateEditors" ); "GormDocument(MenuValidation)" = ( "-isEditingObjects", "-isEditingImages", "-isEditingSounds", "-isEditingClasses" ); GormDocumentController = ( "-buildDocumentForType:", "-openDocumentWithContentsOfURL:" ); GormDocumentWindow = ( "-setDocument:" ); GormFilePrefsManager = ( "-showIncompatibilities:", "-selectTargetVersion:", "-selectArchiveType:", "-loadFromData:", "-loadFromFile:", "-data", "-nibDataWithOpenItems:", "-saveToFile:", "-loadProfile:", "-version", "-targetVersionName", "-archiveTypeName", "-isLatest", "-setClassVersions", "-restoreClassVersions", "-versionOfClass:", "-setFileTypeName:", "-fileTypeName", "+currentVersion" ); GormFilesOwner = ( "-className", "-setClassName:" ); GormFilesOwnerInspector = ( "-takeClassFrom:" ); GormFontViewController = ( "+sharedGormFontViewController", "-convertFont:", "-selectFont:", "-view" ); GormGenericEditor = ( "+editorForDocument:", "+setEditor:forDocument:", "-selectObjects:", "-wantsSelection", "-copySelection", "-deleteSelection", "-pasteInSelection", "-refreshCells", "-closeSubeditors", "-window", "-addObject:", "-refreshCells", "-removeObject:", "-activate", "-initWithObject:inDocument:", "-close", "-closeSubeditors", "-containsObject:", "-copySelection", "-deleteSelection", "-document", "-editedObject", "-openSubeditorForObject:", "-orderFront", "-pasteInSelection", "-rectForObject:", "-objects", "-isOpened", "-fileTypes" ); "GormGenericEditor(PrivateMethods)" = ( "-willCloseDocument:", "-groupSelectionInScrollView", "-groupSelectionInSplitView", "-groupSelectionInBox", "-groupSelectionInView", "-ungroup", "-setEditor:forDocument:", "-changeSelection:" ); GormImage = ( "+imageForPath:", "+imageForPath:inWrapper:", "+imageForData:withFileName:inWrapper:", "-image", "-normalImage" ); GormInspectorsManager = ( "-panel", "-setClassInspector", "-setCurrentInspector:", "-updateSelection" ); GormInternalViewEditor = ( "-destroyAndListSubviews", "-changeFont:" ); GormNSPanel = ( "-_setStyleMask:", "-_styleMask", "-_setReleasedWhenClosed:", "-_isReleasedWhenClosed", "-autoPositionMask", "-setAutoPositionMask:" ); GormNSWindow = ( "-_setStyleMask:", "-_styleMask", "-_setReleasedWhenClosed:", "-_isReleasedWhenClosed", "-autoPositionMask", "-setAutoPositionMask:" ); GormObjectEditor = ( "+setEditor:forDocument:", "-draggedImage:endedAt:deposited:", "-draggingSourceOperationMaskForLocal:", "-acceptsTypeFromArray:", "-makeSelectionVisible:", "-resetObject:" ); GormObjectInspector = ( "-update:" ); GormObjectProxy = ( "-setClassName:" ); GormOutletActionHolder = ( "-initWithName:", "-getName", "-setName:" ); GormOutlineView = ( "-attributeOffset", "-setAttributeOffset:", "-itemBeingEdited", "-setItemBeingEdited:", "-isEditing", "-setIsEditing:", "-actionColumn", "-setActionColumn:", "-outletColumn", "-setOutletColumn:", "-menuItem", "-setMenuItem:", "-editType", "-removeItemAtRow:", "-reset", "-selectRow:" ); GormPalettesManager = ( "-loadPalette:", "-openPalette:", "-panel", "-setCurrentPalette:", "-importClasses:withDictionary:", "-importedClasses", "-importImages:withBundle:", "-importedImages", "-importSounds:withBundle:", "-importedSounds", "-substituteClasses" ); GormPlacementHint = ( "-initWithBorder:position:validityStart:validityEnd:frame:", "-rectWithHalfDistance:", "-distanceToFrame:", "-position", "-start", "-end", "-frame", "-border" ); GormPlugin = ( "-registerDocumentTypeName:humanReadableName:forExtensions:" ); GormPluginManager = ( "-loadPlugin:", "-openPlugin:" ); GormResource = ( "+resourceForPath:", "+resourceForPath:inWrapper:", "-initWithPath:", "-initWithPath:inWrapper:", "-initWithName:path:", "-initWithName:path:inWrapper:", "-initWithData:withFileName:inWrapper:", "-setName:", "-name", "-setSystemResource:", "-isSystemResource", "-setInWrapper:", "-isInWrapper", "-setData:", "-data", "-isEqual:" ); GormResourceEditor = ( "-draggedImage:endedAt:deposited:", "-draggingSourceOperationMaskForLocal:", "-refreshCells", "-placeHolderWithPath:", "-pbTypes", "-resourceType", "-addSystemResources" ); GormScrollViewAttributesInspector = ( "-colorSelected:", "-verticalSelected:", "-horizontalSelected:", "-verticalRuler:", "-horizontalRuler:", "-borderSelected:" ); GormSetNameController = ( "-runAsModal", "-textField", "-cancelHit:", "-okHit:" ); GormSound = ( "+soundForPath:", "+soundForPath:inWrapper:", "+soundForData:withFileName:inWrapper:" ); GormSoundInspector = ( "-stop:", "-play:", "-pause:", "-record:" ); GormSoundView = ( "-setSound:", "-sound" ); GormSplitViewEditor = ( "-destroyAndListSubviews" ); GormViewEditor = ( "-activate", "-initWithObject:inDocument:", "-close", "-deactivate", "-document", "-editedObject", "-detachSubviews", "-postDraw:", "-parent", "-selection", "-makeSelectionVisible:", "-isOpened", "-canBeOpened", "-setOpened:", "-frameDidChange:" ); "GormViewEditor(EditingAdditions)" = ( "-editTextField:withEvent:" ); "GormViewEditor(IntelligentPlacement)" = ( "-initializeResizingInFrame:withKnob:", "-updateResizingWithFrame:andEvent:andPlacementInfo:", "-validateFrame:withEvent:andPlacementInfo:" ); "GormViewEditor(WindowAndRect)" = ( "-windowAndRect:forObject:" ); GormViewWindow = ( "-initWithView:", "-view", "-setView:" ); GormViewWithContentViewEditor = ( "-postDrawForView:", "-groupSelectionInSplitView", "-groupSelectionInBox", "-groupSelectionInView", "-ungroup", "-pasteInView:" ); GormViewWithSubviewsEditor = ( "-handleMouseOnKnob:ofView:withEvent:", "-handleMouseOnView:withEvent:", "-setOpenedSubeditor:", "-openParentEditor", "-makeSubeditorResign", "-silentlyResetSelection", "-selectObjects:", "-copySelection", "-closeSubeditors", "-deactivateSubeditors", "-changeFont:" ); GormWindowEditor = ( "-acceptsTypeFromArray:", "-activate", "-initWithObject:inDocument:", "-changeFont:", "-close", "-closeSubeditors", "-deactivate", "-deleteSelection", "-document", "-draggedImage:endedAt:deposited:", "-draggingSourceOperationMaskForLocal:", "-makeSelectionVisible:", "-openSubeditorForObject:", "-orderFront", "-pasteInSelection", "-resetObject:" ); GormWrapperBuilder = ( "+fileType" ); GormWrapperBuilderFactory = ( "+sharedWrapperBuilderFactory", "+registerWrapperBuilderClass:", "-wrapperBuilderForType:" ); GormWrapperLoader = ( "+fileType", "-saveSCMDirectory:" ); GormWrapperLoaderFactory = ( "+sharedWrapperLoaderFactory", "+registerWrapperLoaderClass:", "-wrapperLoaderForType:" ); "IBResourceManager(GormAdditions)" = ( "+registerForAllPboardTypes:inDocument:" ); "NSCell(GormAdditions)" = ( "-setUpFieldEditorAttributes:" ); "NSClassSwapper(GormCustomClassAdditions)" = ( "+setIsInInterfaceBuilder:", "-isInInterfaceBuilder" ); "NSColorWell(GormExtensions)" = ( "-setColorWithoutAction:" ); "NSDateFormatter(GormAdditions)" = ( "+formatCount", "+formatAtIndex:", "+indexOfFormat:", "+defaultFormat", "+defaultFormatValue" ); "NSFontManager(GormExtensions)" = ( "-sendAction" ); "NSImage(GormNSImageAddition)" = ( "-setArchiveByName:", "-archiveByName" ); "NSNumberFormatter(GormAdditions)" = ( "+formatCount", "+formatAtIndex:", "+positiveFormatAtIndex:", "+zeroFormatAtIndex:", "+negativeFormatAtIndex:", "+positiveValueAtIndex:", "+negativeValueAtIndex:", "+indexOfFormat:", "+defaultFormat", "+defaultFormatValue", "-zeroFormat" ); "NSObject(GormAdditions)" = ( "-allocSubstitute", "-imageForViewer" ); "NSObject(GormOutlineViewDataSource)" = ( "-outlineView:actionsForItem:", "-outlineView:outletsForItem:", "-outlineView:addAction:forClass:", "-outlineView:addOutlet:forClass:", "-outlineView:addNewActionForClass:", "-outlineView:addNewOutletForClass:" ); "NSObject(GormOutlineViewDelegate)" = ( "-outlineView:shouldDeleteItem:" ); "NSView(GormExtensions)" = ( "-superviews", "-hasSuperviewKindOfClass:", "-moveViewToFront:", "-moveViewToBack:" ); "NSWindowTemplate(Private)" = ( "-setBaseWindowClass:" ); }gorm-1.2.24/Documentation/GormCore/GormSound.html0000644000000000000000000000564413426745046020417 0ustar rootroot GormSound

GormSound

Authors

Gregory John Casamento (greg_casamento@yahoo.com)
A place holder for a sound.

Copyright: (C) 2001 Free Software Foundation, Inc.

Software documentation for the GormSound class

GormSound : GormResource

Declared in:
GormCore/GormSound.h
Description forthcoming.
Method summary

soundForData: withFileName: inWrapper: 

+ (GormSound*) soundForData: (NSData*)aData withFileName: (NSString*)aName inWrapper: (BOOL)flag;
Description forthcoming.

soundForPath: 

+ (GormSound*) soundForPath: (NSString*)aPath;
Creates a GormSound object using the file at path.

soundForPath: inWrapper: 

+ (GormSound*) soundForPath: (NSString*)aPath inWrapper: (BOOL)flag;
Creates a GormSound object using the file at path, and marks it as inside or outside of the.gorm/.nib wrapper.


gorm-1.2.24/Documentation/GormCore/NSFontManager+GormExtensions.html0000644000000000000000000000341713426745046024120 0ustar rootroot NSFontManager+GormExtensions documentation

NSFontManager+GormExtensions documentation

Authors

Generated by heron

Software documentation for the NSFontManager(GormExtensions) category

NSFontManager(GormExtensions)

Declared in:
GormCore/NSFontManager+GormExtensions.h
Description forthcoming.
Method summary

sendAction 

- (BOOL) sendAction;
Override for sendAction in NSFontManager. This method calls the action on the last edited object if the attempt to send the action to the first responder is unsuccessful. This allows the font to be more easily set.


gorm-1.2.24/Documentation/GormCore/GormConnectionInspector.html0000644000000000000000000000661213426745046023311 0ustar rootroot GormConnectionInspector class documentation

GormConnectionInspector class documentation

Authors

Generated by heron

Software documentation for the GormConnectionInspector class

GormConnectionInspector : IBInspector

Declared in:
GormCore/GormConnectionInspector.h
Description forthcoming.

Instance Variables

Method summary

updateButtons 

- (void) updateButtons;
Description forthcoming.



Instance Variables for GormConnectionInspector Class

actions

@protected NSArray* actions;
Description forthcoming.

connectors

@protected NSMutableArray* connectors;
Description forthcoming.

currentConnector

@protected id currentConnector;
Description forthcoming.

newBrowser

@protected NSBrowser* newBrowser;
Description forthcoming.

oldBrowser

@protected NSBrowser* oldBrowser;
Description forthcoming.

outlets

@protected NSArray* outlets;
Description forthcoming.





gorm-1.2.24/Documentation/GormCore/NSCell+GormAdditions.html0000644000000000000000000000342113426745046022350 0ustar rootroot NSCell+GormAdditions documentation

NSCell+GormAdditions documentation

Authors

Generated by heron

Software documentation for the NSCell(GormAdditions) category

NSCell(GormAdditions)

Declared in:
GormCore/NSCell+GormAdditions.h
Description forthcoming.
Method summary

setUpFieldEditorAttributes: 

- (NSText*) setUpFieldEditorAttributes: (NSText*)textObject;
This methods is comes directly from NSCell.m The only additions is [textObject setUsesFontPanel: NO] We do this because we want to have control over the font panel changes.


gorm-1.2.24/Documentation/GormCore/GormClassPanelController.html0000644000000000000000000001133113426745046023406 0ustar rootroot GormClassPanelController class documentation

GormClassPanelController class documentation

Authors

Generated by heron

Software documentation for the GormClassPanelController class

GormClassPanelController : NSObject

Declared in:
GormCore/GormClassPanelController.h
Description forthcoming.

Instance Variables

Method summary

browserAction: 

- (void) browserAction: (id)sender;
Description forthcoming.

initWithTitle: classList: 

- (id) initWithTitle: (NSString*)title classList: (NSArray*)classes;
Description forthcoming.

okButton: 

- (void) okButton: (id)sender;
Description forthcoming.

runModal 

- (NSString*) runModal;
Description forthcoming.



Instance Variables for GormClassPanelController Class

allClasses

@protected NSMutableArray* allClasses;
Description forthcoming.

classBrowser

@protected id classBrowser;
Description forthcoming.

className

@protected NSString* className;
Description forthcoming.

classNameForm

@protected id classNameForm;
Description forthcoming.

okButton

@protected id okButton;
Description forthcoming.

panel

@protected id panel;
Description forthcoming.





gorm-1.2.24/Documentation/GormCore/GormDocument.html0000644000000000000000000014013013426745046021073 0ustar rootroot GormDocument documentation

GormDocument documentation

Authors

Generated by heron

Software documentation for the GormDocument class

GormDocument : NSDocument

Declared in:
GormCore/GormDocument.h
Conforms to:
IBDocuments
GSNibContainer
NSCoding
Description forthcoming.

Instance Variables

Method summary

addAttributeToClass: 

- (id) addAttributeToClass: (id)sender;
Add an outlet/action to the classes view.

alignSelectedObjects: 

- (void) alignSelectedObjects: (id)sender;
Aligns selected objects on a given axis.
Align objects to center, left, right, top, bottom.

allManagedPboardTypes 

- (NSArray*) allManagedPboardTypes;
Returns all pasteboard types registered for with the IBResourceManager.
Get all pasteboard types managed by the resource manager.

arrangeSelectedObjects: 

- (void) arrangeSelectedObjects: (id)sender;
Arrages selected objects based on the either in front of or in back of the view stack.
Arrange views in front or in back of one another.

changeToTopLevelEditorAcceptingTypes: andFileType: 

- (void) changeToTopLevelEditorAcceptingTypes: (NSArray*)types andFileType: (NSString*)fileType;
Switch to the top level editor responsible for a given type. This allows the document in the view to switch to the view which is appropriate for the resource being dragged in.

changeToViewWithTag: 

- (void) changeToViewWithTag: (int)tag;
Switches to the view using the specified tag. They are 0=objects, 1=images, 2=sounds, 3=classes, 4=file prefs.

classIsSelected 

- (BOOL) classIsSelected;
Returns YES, if the current select on the classes view is a class.

classManager 

- (GormClassManager*) classManager;
The class manager.

closeAllEditors 

- (void) closeAllEditors;
Forces the closing of all editors in the document.

createClassFiles: 

- (id) createClassFiles: (id)sender;
Create the class files for the selected class.

createResourceManagers 

- (void) createResourceManagers;
Create resource manager instances for all registered classes.

createSubclass: 

- (id) createSubclass: (id)sender;
Create a subclass of the currently selected class in the classes view.

deactivateEditors 

- (void) deactivateEditors;
Deactivate the editors for archiving..

deferredWindows 

- (NSSet*) deferredWindows;
Windows deferred.
All windows marked, deferred.

exportStrings: 

- (void) exportStrings: (id)sender;
This method is used to export all strings in a document to a file for Language translation. This allows the user to see all of the strings which can be translated and allows the user to provide a translateion for each of them.

filePrefsManager 

- (GormFilePrefsManager*) filePrefsManager;
File preferences.
Gorm file prefs manager.

filesOwner 

- (GormFilesOwner*) filesOwner;
File's Owner
File's owner...

firstResponder 

- (id) firstResponder;
Returns stand-in object for firstResponder
Return first responder stand in.

fontManager 

- (id) fontManager;
Returns stand-in object for fontManager.
Return font manager stand in.

handleNotification: 

- (void) handleNotification: (NSNotification*)aNotification;
Handle all notifications. Checks the value of [ aNotification name] against the set of notifications this class responds to and takes appropriate action.

images 

- (NSArray*) images;
Images

infoData 

- (NSData*) infoData;
return the file info.

instantiateClass: 

- (id) instantiateClass: (id)sender;
Create an instance of a given class.

isActive 

- (BOOL) isActive;
Returns YES, if document is active.

isDocumentOpen 

- (BOOL) isDocumentOpen;
Return the document open flag.

isOlderArchive 

- (BOOL) isOlderArchive;
Return YES if this is an older archive.

isTopLevelObject: 

- (BOOL) isTopLevelObject: (id)obj;
Returns YES, if obj is a top level object.

loadClass: 

- (id) loadClass: (id)sender;
Load a class into the document.
Parse a header into the classes view.

objectIsDeferred: 

- (BOOL) objectIsDeferred: (id)anObject;
Return YES, if anObject is deferred.
Return YES, if the anObject is in the deferred list.

objectIsVisibleAtLaunch: 

- (BOOL) objectIsVisibleAtLaunch: (id)anObject;
Return YES, if anObject is visible at launch time.

openImage: 

- (id) openImage: (id)sender;
Open an image and copy it into the document.

openSound: 

- (id) openSound: (id)sender;
Open a sound and load it into the document.

reactivateEditors 

- (void) reactivateEditors;
Reactivate all of the editors...

rebuildObjToNameMapping 

- (void) rebuildObjToNameMapping;
Build our reverse mapping information and other initialisation

recentDocumentsMenu 

- (NSMenu*) recentDocumentsMenu;
Returns the menu which will be the recent documents menu for the document.
Return the object that will be the receent documents menu.

refreshConnectionsForClassNamed: 

- (void) refreshConnectionsForClassNamed: (NSString*)className;
Refresh all connections to any and all instances of className. Checks if the class has the action/outlet present and deletes it, if it doesn't.

remove: 

- (id) remove: (id)sender;
Remove a class from the classes view

removeAllInstancesOfClass: 

- (void) removeAllInstancesOfClass: (NSString*)className;
Remove all instances of a given class.

removeConnectionsForClassNamed: 

- (BOOL) removeConnectionsForClassNamed: (NSString*)className;
Remove all connections to any and all instances of className.

removeConnectionsWithLabel: forClassNamed: isAction: 

- (BOOL) removeConnectionsWithLabel: (NSString*)name forClassNamed: (NSString*)className isAction: (BOOL)action;
Removes all connections given action or outlet with the specified label (paramter name) class name (parameter className).

renameConnectionsForClassNamed: toName: 

- (BOOL) renameConnectionsForClassNamed: (NSString*)className toName: (NSString*)newName;
Rename connections connected to an instance of on class to another.

resourceManagerForPasteboard: 

- (IBResourceManager*) resourceManagerForPasteboard: (NSPasteboard*)pboard;
Get the resource manager which handles the content on pboard.

resourceManagers 

- (NSArray*) resourceManagers;
The list of all resource managers.

retrieveObjectsForParent: recursively: 

- (NSArray*) retrieveObjectsForParent: (id)parent recursively: (BOOL)flag;
Retrieve all objects which have parent as thier parent. If flag is YES, then retrieve the entire graph of objects starting with the parent.
Pull all of the objects which are under a given parent. Returns an autoreleased array.

scmWrapper 

- (NSFileWrapper*) scmWrapper;
Save the SCM directory.

selectClass: 

- (void) selectClass: (NSString*)className;
Select a class in the classes view

selectClass: editClass: 

- (void) selectClass: (NSString*)className editClass: (BOOL)flag;
Select a class in the classes view

servicesMenu 

- (NSMenu*) servicesMenu;
Returns the services menu for the document.
Return the object that will be the services menu.

setDocumentActive: 

- (void) setDocumentActive: (BOOL)flag;
Marks this document as the currently active document. The active document is the one being edited by the user.

setDocumentOpen: 

- (void) setDocumentOpen: (BOOL)flag;
Set the document open flag.

setImages: 

- (void) setImages: (NSArray*)imgs;
Images

setInfoData: 

- (void) setInfoData: (NSData*)data;
Set the file info for this document.

setObject: isDeferred: 

- (void) setObject: (id)anObject isDeferred: (BOOL)flag;
Add object to the defferred list.
Add anObject to the deferred list.

setObject: isVisibleAtLaunch: 

- (void) setObject: (id)anObject isVisibleAtLaunch: (BOOL)flag;
Add object to the visible at launch list.

setOlderArchive: 

- (void) setOlderArchive: (BOOL)flag;
Set the "older archive" flag.

setRecentDocumentsMenu: 

- (void) setRecentDocumentsMenu: (NSMenu*)anObject;
Sets the recent documents menu.
Set the menu that will be the recent documents menu in the app.

setSCMWrapper: 

- (void) setSCMWrapper: (NSFileWrapper*)wrapper;
Save the SCM directory.

setServicesMenu: 

- (void) setServicesMenu: (NSMenu*)anObject;
Set the services menu.
Set the object that will be the services menu in the app.

setSounds: 

- (void) setSounds: (NSArray*)snds;
Sounds

setWindowsMenu: 

- (void) setWindowsMenu: (NSMenu*)anObject;
Sets the windows menu.
Set the windows menu.

sounds 

- (NSArray*) sounds;
Sounds

translate: 

- (void) translate: (id)sender;
This method is used to translate all of the strings in the file from one language into another. This is helpful when attempting to translate an application for use in different locales.

viewWithTag: 

- (NSView*) viewWithTag: (int)tag;
returns the view using the specified tag . They are 0=objects, 1=images, 2=sounds, 3=classes, 4=file prefs.

visibleWindows 

- (NSSet*) visibleWindows;
Windows visible at launch...
All windows marked, visible at launch.

window 

- (NSWindow*) window;
The document window.

windowAndRect: forObject: 

- (NSWindow*) windowAndRect: (NSRect*)r forObject: (id)object;
WindowAndRect:forObject: is called by Gorm to determine where it should draw selection markup
Returns the window and the rect r for object.

windowsMenu 

- (NSMenu*) windowsMenu;
Returns the menu which will be the windows menu for the document.
return the windows menu.



Instance Variables for GormDocument Class

classManager

@protected GormClassManager* classManager;
Description forthcoming.

classesScrollView

@protected NSScrollView* classesScrollView;
Description forthcoming.

classesView

@protected id classesView;
Description forthcoming.

connections

@protected NSMutableArray* connections;
Description forthcoming.

deferredWindows

@protected NSMutableSet* deferredWindows;
Description forthcoming.

filePrefsManager

@protected GormFilePrefsManager* filePrefsManager;
Description forthcoming.

filePrefsView

@protected id filePrefsView;
Description forthcoming.

filePrefsWindow

@protected NSWindow* filePrefsWindow;
Description forthcoming.

filesOwner

@protected GormFilesOwner* filesOwner;
Description forthcoming.

firstResponder

@protected GormFirstResponder* firstResponder;
Description forthcoming.

fontManager

@protected GormObjectProxy* fontManager;
Description forthcoming.

hidden

@protected NSMutableArray* hidden;
Description forthcoming.

images

@protected NSMutableArray* images;
Description forthcoming.

imagesScrollView

@protected NSScrollView* imagesScrollView;
Description forthcoming.

imagesView

@protected id imagesView;
Description forthcoming.

infoData

@protected NSData* infoData;
Description forthcoming.

isActive

@protected BOOL isActive;
Description forthcoming.

isDocumentOpen

@protected BOOL isDocumentOpen;
Description forthcoming.

isOlderArchive

@protected BOOL isOlderArchive;
Description forthcoming.

lastEditor

@protected id lastEditor;
Description forthcoming.

nameTable

@protected NSMutableDictionary* nameTable;
Description forthcoming.

objToName

@protected NSMapTable* objToName;
Description forthcoming.

objectsView

@protected id objectsView;
Description forthcoming.

openEditors

@protected NSMutableArray* openEditors;
Description forthcoming.

quitItem

@protected NSMenuItem* quitItem;
Description forthcoming.

resourceManagers

@protected NSMutableArray* resourceManagers;
Description forthcoming.

savedEditors

@protected NSMutableArray* savedEditors;
Description forthcoming.

savedMenu

@protected NSMenu* savedMenu;
Description forthcoming.

scmWrapper

@protected NSFileWrapper* scmWrapper;
Description forthcoming.

scrollView

@protected NSScrollView* scrollView;
Description forthcoming.

selectionBox

@protected NSBox* selectionBox;
Description forthcoming.

sounds

@protected NSMutableArray* sounds;
Description forthcoming.

soundsScrollView

@protected NSScrollView* soundsScrollView;
Description forthcoming.

soundsView

@protected id soundsView;
Description forthcoming.

toolbar

@protected NSToolbar* toolbar;
Description forthcoming.

topLevelObjects

@protected NSMutableSet* topLevelObjects;
Description forthcoming.

visibleWindows

@protected NSMutableSet* visibleWindows;
Description forthcoming.

window

@protected GormDocumentWindow* window;
Description forthcoming.




Software documentation for the GormEditorToParent class

GormEditorToParent : NSNibConnector

Declared in:
GormCore/GormDocument.h
Description forthcoming.

Software documentation for the GormFirstResponder class

GormFirstResponder : NSObject

Declared in:
GormCore/GormDocument.h
Description forthcoming.

Software documentation for the GormObjectToEditor class

GormObjectToEditor : NSNibConnector

Declared in:
GormCore/GormDocument.h
Description forthcoming.

Software documentation for the GormDocument(MenuValidation) category

GormDocument(MenuValidation)

Declared in:
GormCore/GormDocument.h
Description forthcoming.
Method summary

isEditingClasses 

- (BOOL) isEditingClasses;
Returns YES if the document is editing classes.

isEditingImages 

- (BOOL) isEditingImages;
Returns YES if the document is editing images.

isEditingObjects 

- (BOOL) isEditingObjects;
Returns YES if the document is editing instance/objects.

isEditingSounds 

- (BOOL) isEditingSounds;
Returns YES if the document is editing sounds.


gorm-1.2.24/Documentation/GormCore/GormClassManager.html0000644000000000000000000011075013426745046021662 0ustar rootroot GormClassManager class documentation

GormClassManager class documentation

Authors

Generated by heron

Software documentation for the GormClassManager class

GormClassManager : NSObject

Declared in:
GormCore/GormClassManager.h
Description forthcoming.

Instance Variables

Method summary

actionExists: onClassNamed: 

- (BOOL) actionExists: (NSString*)action onClassNamed: (NSString*)className;
Description forthcoming.

addAction: forClassNamed: 

- (void) addAction: (NSString*)action forClassNamed: (NSString*)className;
Description forthcoming.

addAction: forObject: 

- (void) addAction: (NSString*)anAction forObject: (id)anObject;
Description forthcoming.

addActions: forClassNamed: 

- (void) addActions: (NSArray*)actions forClassNamed: (NSString*)className;
Description forthcoming.

addClassNamed: withSuperClassNamed: withActions: withOutlets: 

- (BOOL) addClassNamed: (NSString*)className withSuperClassNamed: (NSString*)superClassName withActions: (NSArray*)actions withOutlets: (NSArray*)outlets;
Description forthcoming.

addClassNamed: withSuperClassNamed: withActions: withOutlets: isCustom: 

- (BOOL) addClassNamed: (NSString*)className withSuperClassNamed: (NSString*)superClassName withActions: (NSArray*)actions withOutlets: (NSArray*)outlets isCustom: (BOOL)isCustom;
Description forthcoming.

addClassWithSuperClassName: 

- (NSString*) addClassWithSuperClassName: (NSString*)name;
Description forthcoming.

addNewActionToClassNamed: 

- (NSString*) addNewActionToClassNamed: (NSString*)name;
Description forthcoming.

addNewOutletToClassNamed: 

- (NSString*) addNewOutletToClassNamed: (NSString*)name;
Description forthcoming.

addOutlet: forClassNamed: 

- (void) addOutlet: (NSString*)outlet forClassNamed: (NSString*)className;
Description forthcoming.

addOutlet: forObject: 

- (void) addOutlet: (NSString*)outlet forObject: (id)anObject;
Description forthcoming.

addOutlets: forClassNamed: 

- (void) addOutlets: (NSArray*)outlets forClassNamed: (NSString*)className;
Description forthcoming.

allActionsForClassNamed: 

- (NSArray*) allActionsForClassNamed: (NSString*)className;
Description forthcoming.

allActionsForObject: 

- (NSArray*) allActionsForObject: (id)obj;
Description forthcoming.

allClassNames 

- (NSArray*) allClassNames;
Description forthcoming.

allCustomClassNames 

- (NSArray*) allCustomClassNames;
Description forthcoming.

allCustomSubclassesOf: 

- (NSArray*) allCustomSubclassesOf: (NSString*)superClass;
Description forthcoming.

allOutletsForClassNamed: 

- (NSArray*) allOutletsForClassNamed: (NSString*)className;
Description forthcoming.

allOutletsForObject: 

- (NSArray*) allOutletsForObject: (id)obj;
Description forthcoming.

allSubclassesOf: 

- (NSArray*) allSubclassesOf: (NSString*)superClass;
Description forthcoming.

allSuperClassesOf: 

- (NSArray*) allSuperClassesOf: (NSString*)className;
Description forthcoming.

canInstantiateClassNamed: 

- (BOOL) canInstantiateClassNamed: (NSString*)className;
Description forthcoming.

classNameForObject: 

- (NSString*) classNameForObject: (id)object;
Description forthcoming.

customClassForName: 

- (NSString*) customClassForName: (NSString*)name;
Description forthcoming.

customClassForObject: 

- (NSString*) customClassForObject: (id)object;
Description forthcoming.

customClassMap 

- (NSMutableDictionary*) customClassMap;
Description forthcoming.

customSubClassesOf: 

- (NSArray*) customSubClassesOf: (NSString*)superclass;
Description forthcoming.

data 

- (NSData*) data;
Description forthcoming.

dictionaryForClassNamed: 

- (NSDictionary*) dictionaryForClassNamed: (NSString*)className;
Description forthcoming.

extraActionsForObject: 

- (NSArray*) extraActionsForObject: (id)anObject;
Description forthcoming.

extraOutletsForObject: 

- (NSArray*) extraOutletsForObject: (id)anObject;
Description forthcoming.

findClassByName: 

- (NSString*) findClassByName: (NSString*)name;
Description forthcoming.

initWithDocument: 

- (id) initWithDocument: (id)aDocument;
Description forthcoming.

isAction: ofClass: 

- (BOOL) isAction: (NSString*)name ofClass: (NSString*)className;
Description forthcoming.

isAction: onCategoryForClassNamed: 

- (BOOL) isAction: (NSString*)actionName onCategoryForClassNamed: (NSString*)className;
Description forthcoming.

isCategoryForClass: 

- (BOOL) isCategoryForClass: (NSString*)className;
Description forthcoming.

isCustomClass: 

- (BOOL) isCustomClass: (NSString*)className;
Description forthcoming.

isCustomClassMapEmpty 

- (BOOL) isCustomClassMapEmpty;
Description forthcoming.

isKnownClass: 

- (BOOL) isKnownClass: (NSString*)className;
Description forthcoming.

isNonCustomClass: 

- (BOOL) isNonCustomClass: (NSString*)className;
Description forthcoming.

isOutlet: ofClass: 

- (BOOL) isOutlet: (NSString*)name ofClass: (NSString*)className;
Description forthcoming.

isRootClass: 

- (BOOL) isRootClass: (NSString*)className;
Description forthcoming.

isSuperclass: linkedToClass: 

- (BOOL) isSuperclass: (NSString*)superclass linkedToClass: (NSString*)subclass;
Description forthcoming.

loadCustomClasses: 

- (BOOL) loadCustomClasses: (NSString*)path;
Description forthcoming.

loadCustomClassesWithData: 

- (BOOL) loadCustomClassesWithData: (NSData*)data;
Description forthcoming.

loadCustomClassesWithDict: 

- (BOOL) loadCustomClassesWithDict: (NSDictionary*)dict;
Description forthcoming.

loadFromFile: 

- (BOOL) loadFromFile: (NSString*)path;
Description forthcoming.

loadNibFormatCustomClassesWithData: 

- (BOOL) loadNibFormatCustomClassesWithData: (NSData*)data;
Description forthcoming.

loadNibFormatCustomClassesWithDict: 

- (BOOL) loadNibFormatCustomClassesWithDict: (NSDictionary*)dict;
Description forthcoming.

makeSourceAndHeaderFilesForClass: withName: and: 

- (BOOL) makeSourceAndHeaderFilesForClass: (NSString*)className withName: (NSString*)sourcePath and: (NSString*)headerPath;
Description forthcoming.

nibData 

- (NSData*) nibData;
Description forthcoming.

nonCustomSuperClassOf: 

- (NSString*) nonCustomSuperClassOf: (NSString*)className;
Description forthcoming.

outletExists: onClassNamed: 

- (BOOL) outletExists: (NSString*)outlet onClassNamed: (NSString*)className;
Description forthcoming.

parentOfClass: 

- (NSString*) parentOfClass: (NSString*)aClass;
Description forthcoming.

parseHeader: 

- (BOOL) parseHeader: (NSString*)headerPath;
Description forthcoming.

removeAction: forObject: 

- (void) removeAction: (NSString*)anAction forObject: (id)anObject;
Description forthcoming.

removeAction: fromClassNamed: 

- (void) removeAction: (NSString*)anAction fromClassNamed: (NSString*)className;
Description forthcoming.

removeClassNamed: 

- (void) removeClassNamed: (NSString*)className;
Description forthcoming.

removeCustomClassForName: 

- (void) removeCustomClassForName: (NSString*)name;
Description forthcoming.

removeOutlet: forObject: 

- (void) removeOutlet: (NSString*)anOutlet forObject: (id)anObject;
Description forthcoming.

removeOutlet: fromClassNamed: 

- (void) removeOutlet: (NSString*)anOutlet fromClassNamed: (NSString*)className;
Description forthcoming.

renameClassNamed: newName: 

- (BOOL) renameClassNamed: (NSString*)oldName newName: (NSString*)newName;
Description forthcoming.

replaceAction: withAction: forClassNamed: 

- (void) replaceAction: (NSString*)oldAction withAction: (NSString*)aNewAction forClassNamed: (NSString*)className;
Description forthcoming.

replaceOutlet: withOutlet: forClassNamed: 

- (void) replaceOutlet: (NSString*)oldOutlet withOutlet: (NSString*)aNewOutlet forClassNamed: (NSString*)className;
Description forthcoming.

saveToFile: 

- (BOOL) saveToFile: (NSString*)path;
Description forthcoming.

setCustomClass: forName: 

- (void) setCustomClass: (NSString*)className forName: (NSString*)name;
Description forthcoming.

setCustomClassMap: 

- (void) setCustomClassMap: (NSMutableDictionary*)dict;
Description forthcoming.

setSuperClassNamed: forClassNamed: 

- (BOOL) setSuperClassNamed: (NSString*)superclass forClassNamed: (NSString*)subclass;
Description forthcoming.

subClassesOf: 

- (NSArray*) subClassesOf: (NSString*)superclass;
Description forthcoming.

superClassNameForClassNamed: 

- (NSString*) superClassNameForClassNamed: (NSString*)className;
Description forthcoming.

uniqueClassNameFrom: 

- (NSString*) uniqueClassNameFrom: (NSString*)name;
Description forthcoming.



Instance Variables for GormClassManager Class

categoryClasses

@protected NSMutableArray* categoryClasses;
Description forthcoming.

classInformation

@protected NSMutableDictionary* classInformation;
Description forthcoming.

customClassMap

@protected NSMutableDictionary* customClassMap;
Description forthcoming.

customClasses

@protected NSMutableArray* customClasses;
Description forthcoming.

document

@protected id document;
Description forthcoming.





gorm-1.2.24/Documentation/GormCore/GormControlEditor.gsdoc0000644000000000000000000000124113426745045022235 0ustar rootroot GormControlEditor class documentation Software documentation for the GormControlEditor class GormCore/GormControlEditor.h Description forthcoming. gorm-1.2.24/Documentation/GormCore/GormViewWindow.html0000644000000000000000000000567113426745046021431 0ustar rootroot GormViewWindow class documentation

GormViewWindow class documentation

Authors

Generated by heron

Software documentation for the GormViewWindow class

GormViewWindow : NSWindow

Declared in:
GormCore/GormViewWindow.h
Description forthcoming.

Instance Variables

Method summary

initWithView: 

- (id) initWithView: (NSView*)view;
Description forthcoming.

setView: 

- (void) setView: (NSView*)view;
Description forthcoming.

view 

- (NSView*) view;
Description forthcoming.



Instance Variables for GormViewWindow Class

_view

@protected NSView* _view;
Warning the underscore at the start of the name of this instance variable indicates that, even though it is not technically private, it is intended for internal use within the package, and you should not use the variable in other code.





gorm-1.2.24/Documentation/GormCore/GormPlugin.gsdoc0000644000000000000000000000177313426745046020717 0ustar rootroot GormPlugin class documentation Software documentation for the GormPlugin class GormCore/GormPlugin.h Description forthcoming. registerDocumentTypeName: name humanReadableName: hrName forExtensions: extensions Description forthcoming. gorm-1.2.24/Documentation/GormCore/ClassesTOC.gsdoc0000644000000000000000000000056013426755205020566 0ustar rootroot Classes gorm-1.2.24/Documentation/GormCore/GormInspectorsManager.html0000644000000000000000000001116413426745046022745 0ustar rootroot GormInspectorsManager class documentation

GormInspectorsManager class documentation

Authors

Generated by heron

Software documentation for the GormInspectorsManager class

GormInspectorsManager : IBInspectorManager

Declared in:
GormCore/GormInspectorsManager.h
Description forthcoming.

Instance Variables

Method summary

panel 

- (NSPanel*) panel;
Description forthcoming.

setClassInspector 

- (void) setClassInspector;
Description forthcoming.

setCurrentInspector: 

- (void) setCurrentInspector: (id)anObj;
Description forthcoming.

updateSelection 

- (void) updateSelection;
Description forthcoming.



Instance Variables for GormInspectorsManager Class

buttonView

@protected NSView* buttonView;
Description forthcoming.

cache

@protected NSMutableDictionary* cache;
Description forthcoming.

current

@protected int current;
Description forthcoming.

hiddenDuringTest

@protected BOOL hiddenDuringTest;
Description forthcoming.

oldInspector

@protected NSString* oldInspector;
Description forthcoming.

origFrame

@protected NSRect origFrame;
Description forthcoming.





gorm-1.2.24/Documentation/GormCore/ProtocolsTOC.gsdoc0000644000000000000000000000056713426755205021164 0ustar rootroot Protocols gorm-1.2.24/Documentation/GormCore/GormClassEditor.html0000644000000000000000000003260313426745046021536 0ustar rootroot GormClassEditor class documentation

GormClassEditor class documentation

Authors

Generated by heron

Software documentation for the GormClassEditor class

GormClassEditor : NSView

Declared in:
GormCore/GormClassEditor.h
Conforms to:
IBEditors
IBSelectionOwners
Description forthcoming.

Instance Variables

Method summary

classEditorForDocument: 

+ (GormClassEditor*) classEditorForDocument: (GormDocument*)doc;
Description forthcoming.

addAttributeToClass 

- (void) addAttributeToClass;
Description forthcoming.

createClassFiles: 

- (id) createClassFiles: (id)sender;
Create the class files for the selected class.

createSubclass: 

- (id) createSubclass: (id)sender;
Create a subclass from the selected subclass...

currentSelectionIsClass 

- (BOOL) currentSelectionIsClass;
Description forthcoming.

deleteSelection 

- (void) deleteSelection;
Description forthcoming.

editClass 

- (void) editClass;
Description forthcoming.

fileTypes 

- (NSArray*) fileTypes;
Description forthcoming.

initWithDocument: 

- (GormClassEditor*) initWithDocument: (GormDocument*)doc;
Description forthcoming.

instantiateClass: 

- (id) instantiateClass: (id)sender;
Create an instance of a given class.

isEditing 

- (BOOL) isEditing;
Description forthcoming.

loadClass: 

- (id) loadClass: (id)sender;
Parse a header into the classes view.

reloadData 

- (void) reloadData;
Description forthcoming.

removeClass: 

- (id) removeClass: (id)sender;
Remove a class from the classes view

selectClass: 

- (void) selectClass: (NSString*)className;
Description forthcoming.

selectClass: editClass: 

- (void) selectClass: (NSString*)className editClass: (BOOL)flag;
Description forthcoming.

selectClassWithObject: 

- (void) selectClassWithObject: (id)obj;
Description forthcoming.

selectClassWithObject: editClass: 

- (void) selectClassWithObject: (id)object editClass: (BOOL)flag;
Description forthcoming.

selectedClassName 

- (NSString*) selectedClassName;
Description forthcoming.

setSelectedClassName: 

- (void) setSelectedClassName: (NSString*)cn;
Description forthcoming.



Instance Variables for GormClassEditor Class

browserView

@protected NSBrowser* browserView;
Description forthcoming.

classManager

@protected GormClassManager* classManager;
Description forthcoming.

classesView

@protected id classesView;
Description forthcoming.

document

@protected GormDocument* document;
Description forthcoming.

mainView

@protected id mainView;
Description forthcoming.

outlineView

@protected GormOutlineView* outlineView;
Description forthcoming.

scrollView

@protected NSScrollView* scrollView;
Description forthcoming.

selectedClass

@protected NSString* selectedClass;
Description forthcoming.

viewToggle

@protected id viewToggle;
Description forthcoming.




GormClassEditor variables

GormClassPboardType

NSString* GormClassPboardType;
Description forthcoming.

GormSwitchViewPreferencesNotification

NSString* GormSwitchViewPreferencesNotification;
Description forthcoming.


gorm-1.2.24/Documentation/GormCore/GormFunctions.html0000644000000000000000000001410513426745046021267 0ustar rootroot GormFunctions documentation

GormFunctions documentation

Authors

Generated by heron

GormFunctions functions

_GSObjCMethodNamesForClass

NSArray* _GSObjCMethodNamesForClass(Class class, BOOL collect);
This method returns an array listing the names of all the instance methods available to obj, whether they belong to the class of obj or one of its superclasses.
If obj is a class, this returns the class methods.
Returns nil if obj is nil.

_GSObjCVariableNames

NSArray* _GSObjCVariableNames(Class class, BOOL collect);
This method returns an array listing the names of all the instance variables present in the instance obj, whether they belong to the class of obj or one of its superclasses.
Returns nil if obj is nil.

allSubviews

NSArray* allSubviews(NSView* view);
Description forthcoming.

appVersion

int appVersion(long int a, long int b, long int c);
Description forthcoming.

colorFromDict

NSColor* colorFromDict(NSDictionary* colorString);
Description forthcoming.

colorToDict

NSDictionary* colorToDict(NSColor* color);
Description forthcoming.

cutFileLabelText

NSString* cutFileLabelText(NSString* filename, id label, NSInteger length);
Description forthcoming.

defaultCellSize

NSSize defaultCellSize();
Description forthcoming.

findAll

NSArray* findAll(NSMenu* menu);
Description forthcoming.

findAllSubmenus

NSArray* findAllSubmenus(NSArray* array);
Description forthcoming.

findAllWithArray

void findAllWithArray(id item, NSMutableArray* array);
Description forthcoming.

formatAction

NSString* formatAction(NSString* action);
Description forthcoming.

formatOutlet

NSString* formatOutlet(NSString* outlet);
Description forthcoming.

identifierString

NSString* identifierString(NSString* str);
Description forthcoming.

minimalContainerFrame

NSRect minimalContainerFrame(NSArray* views);
Description forthcoming.

promptForClassName

NSString* promptForClassName(NSString* title, NSArray* classes);
Description forthcoming.

subviewsForView

void subviewsForView(NSView* view, NSMutableArray* array);
Description forthcoming.

systemImagesList

NSArray* systemImagesList();
Description forthcoming.

systemSoundsList

NSArray* systemSoundsList();
Description forthcoming.


gorm-1.2.24/Documentation/GormCore/MainIndex.html0000644000000000000000000000116113426755205020342 0ustar rootroot Index

Classes
Protocols
Functions
Types
Variables

(intro)  (unframe)
gorm-1.2.24/Documentation/GormCore/GormFunctions.gsdoc0000644000000000000000000001136313426745045021424 0ustar rootroot GormFunctions documentation GormFunctions functions

class collect This method returns an array listing the names of all the instance methods available to obj, whether they belong to the class of obj or one of its superclasses.
If obj is a class, this returns the class methods.
Returns nil if obj is nil.
class collect This method returns an array listing the names of all the instance variables present in the instance obj, whether they belong to the class of obj or one of its superclasses.
Returns nil if obj is nil.
view Description forthcoming. a b c Description forthcoming. colorString Description forthcoming. color Description forthcoming. filename label length Description forthcoming. Description forthcoming. menu Description forthcoming. array Description forthcoming. item array Description forthcoming. action Description forthcoming. outlet Description forthcoming. str Description forthcoming. views Description forthcoming. title classes Description forthcoming. view array Description forthcoming. Description forthcoming. Description forthcoming.
gorm-1.2.24/Documentation/GormCore/GormViewWindow.gsdoc0000644000000000000000000000316113426745046021554 0ustar rootroot GormViewWindow class documentation Software documentation for the GormViewWindow class GormCore/GormViewWindow.h Description forthcoming. Warning the underscore at the start of the name of this instance variable indicates that, even though it is not technically private, it is intended for internal use within the package, and you should not use the variable in other code. initWithView: view Description forthcoming. setView: view Description forthcoming. view Description forthcoming. gorm-1.2.24/Documentation/GormCore/GormWindowEditor.html0000644000000000000000000002353613426745046021745 0ustar rootroot GormWindowEditor class documentation

GormWindowEditor class documentation

Authors

Generated by heron

Software documentation for the GormWindowEditor class

GormWindowEditor : GormViewWithContentViewEditor

Declared in:
GormCore/GormWindowEditor.h
Description forthcoming.

Instance Variables

Method summary

acceptsTypeFromArray: 

- (BOOL) acceptsTypeFromArray: (NSArray*)types;
Returns YES, if the reciever accepts any of the pasteboard items in types.

activate 

- (BOOL) activate;
Activates the editor

changeFont: 

- (void) changeFont: (id)sender;
Change the font.

close 

- (void) close;
Close the editor. This will also call the deactivate method.

closeSubeditors 

- (void) closeSubeditors;
Close any and all editors which are subordinate to this one.

deactivate 

- (void) deactivate;
Deactivate the editor.

deleteSelection 

- (void) deleteSelection;
Delete the current selection.

document 

- (id) document;
Return the document which the object the receiver is edited is located in.

draggedImage: endedAt: deposited: 

- (void) draggedImage: (NSImage*)i endedAt: (NSPoint)p deposited: (BOOL)f;
Call with success or failure of the drag operation.

draggingSourceOperationMaskForLocal: 

- (NSUInteger) draggingSourceOperationMaskForLocal: (BOOL)flag;
Returns NSDragOperationNone.

initWithObject: inDocument: 

- (id) initWithObject: (id)anObject inDocument: (id)aDocument;
Instantiate with anObject in the document aDocument.

makeSelectionVisible: 

- (void) makeSelectionVisible: (BOOL)flag;
Make current selection visible.

openSubeditorForObject: 

- (id) openSubeditorForObject: (id)anObject;
Description forthcoming.

orderFront 

- (void) orderFront;
Order the edited window to the front.

pasteInSelection 

- (void) pasteInSelection;
Paste from pasteboard.

resetObject: 

- (void) resetObject: (id)anObject;
Reset object, redisplays the window.



Instance Variables for GormWindowEditor Class

dragPb

@protected NSPasteboard* dragPb;
Description forthcoming.

dragType

@protected NSString* dragType;
Description forthcoming.

edit_view

@protected NSView* edit_view;
Description forthcoming.

isLinkSource

@protected BOOL isLinkSource;
Description forthcoming.

subeditors

@protected NSMutableArray* subeditors;
Description forthcoming.





gorm-1.2.24/Documentation/GormCore/GormInternalViewEditor.html0000644000000000000000000000411713426745046023077 0ustar rootroot GormInternalViewEditor class documentation

GormInternalViewEditor class documentation

Authors

Generated by heron

Software documentation for the GormInternalViewEditor class

GormInternalViewEditor : GormViewWithContentViewEditor

Declared in:
GormCore/GormInternalViewEditor.h
Description forthcoming.
Method summary

changeFont: 

- (void) changeFont: (id)sender;
Description forthcoming.

destroyAndListSubviews 

- (NSArray*) destroyAndListSubviews;
Description forthcoming.


gorm-1.2.24/Documentation/GormCore/GormSoundInspector.html0000644000000000000000000000647513426745046022311 0ustar rootroot GormSoundInspector

GormSoundInspector

Authors

Gregory John Casamento (greg_casamento@yahoo.com)
allow user to select custom classes

Copyright: (C) 2002 Free Software Foundation, Inc.

Software documentation for the GormSoundInspector class

GormSoundInspector : IBInspector

Declared in:
GormCore/GormSoundInspector.h
Description forthcoming.

Instance Variables

Method summary

pause: 

- (void) pause: (id)sender;
Description forthcoming.

play: 

- (void) play: (id)sender;
Description forthcoming.

record: 

- (void) record: (id)sender;
Description forthcoming.

stop: 

- (void) stop: (id)sender;
Description forthcoming.



Instance Variables for GormSoundInspector Class

soundView

@protected GormSoundView* soundView;
Description forthcoming.





gorm-1.2.24/Documentation/GormCore/NSColorWell+GormExtensions.gsdoc0000644000000000000000000000174013426745046023751 0ustar rootroot NSColorWell+GormExtensions documentation Software documentation for the NSColorWell(GormExtensions) category GormCore/NSColorWell+GormExtensions.h Description forthcoming. setColorWithoutAction: color Changes the color without sending the action associated with it. gorm-1.2.24/Documentation/GormCore/GormOutlineView.html0000644000000000000000000005120213426745046021570 0ustar rootroot GormOutlineView

GormOutlineView

Authors

Gregory John Casamento (greg_casamento@yahoo.com)
The NSOutlineView subclass in gorm which handles outlet/action editing

Copyright: (C) 2001 Free Software Foundation, Inc.

Software documentation for the GormOutletActionHolder class

GormOutletActionHolder : NSObject

Declared in:
GormCore/GormOutlineView.h
Description forthcoming.

Instance Variables

Method summary

getName 

- (NSString*) getName;
Description forthcoming.

initWithName: 

- (id) initWithName: (NSString*)name;
Description forthcoming.

setName: 

- (void) setName: (NSString*)name;
Description forthcoming.



Instance Variables for GormOutletActionHolder Class

_name

@protected NSString* _name;
Warning the underscore at the start of the name of this instance variable indicates that, even though it is not technically private, it is intended for internal use within the package, and you should not use the variable in other code.




Software documentation for the GormOutlineView class

GormOutlineView : NSOutlineView

Declared in:
GormCore/GormOutlineView.h
Description forthcoming.

Instance Variables

Method summary

actionColumn 

- (NSTableColumn*) actionColumn;
Description forthcoming.

attributeOffset 

- (float) attributeOffset;
Description forthcoming.

editType 

- (GSAttributeType) editType;
Description forthcoming.

isEditing 

- (BOOL) isEditing;
Description forthcoming.

itemBeingEdited 

- (id) itemBeingEdited;
Description forthcoming.

menuItem 

- (NSMenuItem*) menuItem;
Description forthcoming.

outletColumn 

- (NSTableColumn*) outletColumn;
Description forthcoming.

removeItemAtRow: 

- (void) removeItemAtRow: (int)row;
Description forthcoming.

reset 

- (void) reset;
Description forthcoming.

selectRow: 

- (void) selectRow: (int)rowIndex;
Description forthcoming.

setActionColumn: 

- (void) setActionColumn: (NSTableColumn*)ac;
Description forthcoming.

setAttributeOffset: 

- (void) setAttributeOffset: (float)offset;
Description forthcoming.

setIsEditing: 

- (void) setIsEditing: (BOOL)flag;
Description forthcoming.

setItemBeingEdited: 

- (void) setItemBeingEdited: (id)item;
Description forthcoming.

setMenuItem: 

- (void) setMenuItem: (NSMenuItem*)item;
Description forthcoming.

setOutletColumn: 

- (void) setOutletColumn: (NSTableColumn*)oc;
Description forthcoming.



Instance Variables for GormOutlineView Class

_actionColumn

@protected NSTableColumn* _actionColumn;
Warning the underscore at the start of the name of this instance variable indicates that, even though it is not technically private, it is intended for internal use within the package, and you should not use the variable in other code.

_attributeOffset

@protected float _attributeOffset;
Warning the underscore at the start of the name of this instance variable indicates that, even though it is not technically private, it is intended for internal use within the package, and you should not use the variable in other code.

_edittype

@protected GSAttributeType _edittype;
Warning the underscore at the start of the name of this instance variable indicates that, even though it is not technically private, it is intended for internal use within the package, and you should not use the variable in other code.

_isEditing

@protected BOOL _isEditing;
Warning the underscore at the start of the name of this instance variable indicates that, even though it is not technically private, it is intended for internal use within the package, and you should not use the variable in other code.

_itemBeingEdited

@protected id _itemBeingEdited;
Warning the underscore at the start of the name of this instance variable indicates that, even though it is not technically private, it is intended for internal use within the package, and you should not use the variable in other code.

_menuItem

@protected NSMenuItem* _menuItem;
Warning the underscore at the start of the name of this instance variable indicates that, even though it is not technically private, it is intended for internal use within the package, and you should not use the variable in other code.

_outletColumn

@protected NSTableColumn* _outletColumn;
Warning the underscore at the start of the name of this instance variable indicates that, even though it is not technically private, it is intended for internal use within the package, and you should not use the variable in other code.




Software documentation for the NSObject(GormOutlineViewDataSource) informal protocol

NSObject(GormOutlineViewDataSource)

Declared in:
GormCore/GormOutlineView.h
Description forthcoming.
Method summary

outlineView: actionsForItem: 

- (NSArray*) outlineView: (GormOutlineView*)ov actionsForItem: (id)item;
Description forthcoming.

outlineView: addAction: forClass: 

- (void) outlineView: (NSOutlineView*)anOutlineView addAction: (NSString*)action forClass: (id)item;
Description forthcoming.

outlineView: addNewActionForClass: 

- (NSString*) outlineView: (NSOutlineView*)anOutlineView addNewActionForClass: (id)item;
Description forthcoming.

outlineView: addNewOutletForClass: 

- (NSString*) outlineView: (NSOutlineView*)anOutlineView addNewOutletForClass: (id)item;
Description forthcoming.

outlineView: addOutlet: forClass: 

- (void) outlineView: (NSOutlineView*)anOutlineView addOutlet: (NSString*)outlet forClass: (id)item;
Description forthcoming.

outlineView: outletsForItem: 

- (NSArray*) outlineView: (GormOutlineView*)ov outletsForItem: (id)item;
Description forthcoming.

Software documentation for the NSObject(GormOutlineViewDelegate) informal protocol

NSObject(GormOutlineViewDelegate)

Declared in:
GormCore/GormOutlineView.h
Description forthcoming.
Method summary

outlineView: shouldDeleteItem: 

- (BOOL) outlineView: (GormOutlineView*)ov shouldDeleteItem: (id)item;
Description forthcoming.

GormOutlineView types

GSAttributeType

typedef enum ... GSAttributeType;
Description forthcoming.


gorm-1.2.24/Documentation/GormCore/GormViewKnobs.gsdoc0000644000000000000000000000311213426745046021355 0ustar rootroot GormViewKnobs documentation GormViewKnobs functions

aRect Description forthcoming. aRect Description forthcoming. aRect Description forthcoming. aFrame p Description forthcoming. Description forthcoming. aRect aKnob Description forthcoming.
gorm-1.2.24/Documentation/GormCore/NSView+GormExtensions.html0000644000000000000000000000715113426745046022630 0ustar rootroot NSView+GormExtensions documentation

NSView+GormExtensions documentation

Authors

Generated by heron

Software documentation for the NSView(GormExtensions) category

NSView(GormExtensions)

Declared in:
GormCore/NSView+GormExtensions.h
Description forthcoming.
Method summary

hasSuperviewKindOfClass: 

- (BOOL) hasSuperviewKindOfClass: (Class)cls;
Returns YES if the receiver has an instance of the Class cls as a superview.
Checks for a superview of a give class.

moveViewToBack: 

- (void) moveViewToBack: (NSView*)sv;
Move the subview sv in reciever to the beginning of the reciever's display list. This has the effect of making it appear in back of the other views.
Moves the specified subview to the beginning of the list, so it's displayed behind all of the other views.

moveViewToFront: 

- (void) moveViewToFront: (NSView*)sv;
Move the subview sv in reciever to the end of the reciever's display list. This has the effect of making it appear in front of the other views.
Moves the specified subview to the end of the list, so it's displayed in front of the other views.

superviews 

- (NSArray*) superviews;
All superviews of the receiver.
All superviews of this view


gorm-1.2.24/Documentation/GormCore/GormViewWithContentViewEditor.gsdoc0000644000000000000000000000400713426745046024555 0ustar rootroot GormViewWithContentViewEditor class documentation Software documentation for the GormViewWithContentViewEditor class GormCore/GormViewWithContentViewEditor.h Description forthcoming. Description forthcoming. groupSelectionInBox Description forthcoming. groupSelectionInSplitView Description forthcoming. groupSelectionInView Description forthcoming. pasteInView: view Description forthcoming. postDrawForView: viewEditor Description forthcoming. ungroup Description forthcoming. gorm-1.2.24/Documentation/GormCore/GormPlugin.html0000644000000000000000000000326013426745046020555 0ustar rootroot GormPlugin class documentation

GormPlugin class documentation

Authors

Generated by heron

Software documentation for the GormPlugin class

GormPlugin : IBPlugin

Declared in:
GormCore/GormPlugin.h
Description forthcoming.
Method summary

registerDocumentTypeName: humanReadableName: forExtensions: 

- (void) registerDocumentTypeName: (NSString*)name humanReadableName: (NSString*)hrName forExtensions: (NSArray*)extensions;
Description forthcoming.


gorm-1.2.24/Documentation/GormCore/GormOutlineView.gsdoc0000644000000000000000000002646313426745046021736 0ustar rootroot GormOutlineView greg_casamento@yahoo.com The NSOutlineView subclass in gorm which handles outlet/action editing 2001 Free Software Foundation, Inc. Software documentation for the GormOutletActionHolder class GormCore/GormOutlineView.h Description forthcoming. Warning the underscore at the start of the name of this instance variable indicates that, even though it is not technically private, it is intended for internal use within the package, and you should not use the variable in other code. getName Description forthcoming. initWithName: name Description forthcoming. setName: name Description forthcoming. Software documentation for the GormOutlineView class GormCore/GormOutlineView.h Description forthcoming. Warning the underscore at the start of the name of this instance variable indicates that, even though it is not technically private, it is intended for internal use within the package, and you should not use the variable in other code. Warning the underscore at the start of the name of this instance variable indicates that, even though it is not technically private, it is intended for internal use within the package, and you should not use the variable in other code. Warning the underscore at the start of the name of this instance variable indicates that, even though it is not technically private, it is intended for internal use within the package, and you should not use the variable in other code. Warning the underscore at the start of the name of this instance variable indicates that, even though it is not technically private, it is intended for internal use within the package, and you should not use the variable in other code. Warning the underscore at the start of the name of this instance variable indicates that, even though it is not technically private, it is intended for internal use within the package, and you should not use the variable in other code. Warning the underscore at the start of the name of this instance variable indicates that, even though it is not technically private, it is intended for internal use within the package, and you should not use the variable in other code. Warning the underscore at the start of the name of this instance variable indicates that, even though it is not technically private, it is intended for internal use within the package, and you should not use the variable in other code. actionColumn Description forthcoming. attributeOffset Description forthcoming. editType Description forthcoming. isEditing Description forthcoming. itemBeingEdited Description forthcoming. menuItem Description forthcoming. outletColumn Description forthcoming. removeItemAtRow: row Description forthcoming. reset Description forthcoming. selectRow: rowIndex Description forthcoming. setActionColumn: ac Description forthcoming. setAttributeOffset: offset Description forthcoming. setIsEditing: flag Description forthcoming. setItemBeingEdited: item Description forthcoming. setMenuItem: item Description forthcoming. setOutletColumn: oc Description forthcoming. Software documentation for the NSObject(GormOutlineViewDataSource) informal protocol GormCore/GormOutlineView.h Description forthcoming. outlineView: ov actionsForItem: item Description forthcoming. outlineView: anOutlineView addAction: action forClass: item Description forthcoming. outlineView: anOutlineView addNewActionForClass: item Description forthcoming. outlineView: anOutlineView addNewOutletForClass: item Description forthcoming. outlineView: anOutlineView addOutlet: outlet forClass: item Description forthcoming. outlineView: ov outletsForItem: item Description forthcoming. Software documentation for the NSObject(GormOutlineViewDelegate) informal protocol GormCore/GormOutlineView.h Description forthcoming. outlineView: ov shouldDeleteItem: item Description forthcoming. GormOutlineView types

Description forthcoming.
gorm-1.2.24/Documentation/GormCore/GormClassEditor.gsdoc0000644000000000000000000001517713426745045021677 0ustar rootroot GormClassEditor class documentation Software documentation for the GormClassEditor class GormCore/GormClassEditor.h IBEditors IBSelectionOwners Description forthcoming. Description forthcoming. Description forthcoming. Description forthcoming. Description forthcoming. Description forthcoming. Description forthcoming. Description forthcoming. Description forthcoming. Description forthcoming. classEditorForDocument: doc Description forthcoming. addAttributeToClass Description forthcoming. createClassFiles: sender Create the class files for the selected class. createSubclass: sender Create a subclass from the selected subclass... currentSelectionIsClass Description forthcoming. deleteSelection Description forthcoming. editClass Description forthcoming. fileTypes Description forthcoming. initWithDocument: doc Description forthcoming. instantiateClass: sender Create an instance of a given class. isEditing Description forthcoming. loadClass: sender Parse a header into the classes view. reloadData Description forthcoming. removeClass: sender Remove a class from the classes view selectClass: className Description forthcoming. selectClass: className editClass: flag Description forthcoming. selectClassWithObject: obj Description forthcoming. selectClassWithObject: object editClass: flag Description forthcoming. selectedClassName Description forthcoming. setSelectedClassName: cn Description forthcoming. GormClassEditor variables

Description forthcoming. Description forthcoming.
gorm-1.2.24/Documentation/GormCore/GormDocument.gsdoc0000644000000000000000000006462713426745045021245 0ustar rootroot GormDocument documentation Software documentation for the GormDocument class GormCore/GormDocument.h IBDocuments GSNibContainer NSCoding Description forthcoming. Description forthcoming. Description forthcoming. Description forthcoming. Description forthcoming. Description forthcoming. Description forthcoming. Description forthcoming. Description forthcoming. Description forthcoming. Description forthcoming. Description forthcoming. Description forthcoming. Description forthcoming. Description forthcoming. Description forthcoming. Description forthcoming. Description forthcoming. Description forthcoming. Description forthcoming. Description forthcoming. Description forthcoming. Description forthcoming. Description forthcoming. Description forthcoming. Description forthcoming. Description forthcoming. Description forthcoming. Description forthcoming. Description forthcoming. Description forthcoming. Description forthcoming. Description forthcoming. Description forthcoming. Description forthcoming. Description forthcoming. Description forthcoming. Description forthcoming. Description forthcoming. addAttributeToClass: sender Add an outlet/action to the classes view. alignSelectedObjects: sender Aligns selected objects on a given axis.
Align objects to center, left, right, top, bottom.
allManagedPboardTypes Returns all pasteboard types registered for with the IBResourceManager.
Get all pasteboard types managed by the resource manager.
arrangeSelectedObjects: sender Arrages selected objects based on the either in front of or in back of the view stack.
Arrange views in front or in back of one another.
changeToTopLevelEditorAcceptingTypes: types andFileType: fileType Switch to the top level editor responsible for a given type. This allows the document in the view to switch to the view which is appropriate for the resource being dragged in. changeToViewWithTag: tag Switches to the view using the specified tag. They are 0=objects, 1=images, 2=sounds, 3=classes, 4=file prefs. classIsSelected Returns YES, if the current select on the classes view is a class. classManager The class manager. closeAllEditors Forces the closing of all editors in the document. createClassFiles: sender Create the class files for the selected class. createResourceManagers Create resource manager instances for all registered classes. createSubclass: sender Create a subclass of the currently selected class in the classes view. deactivateEditors Deactivate the editors for archiving.. deferredWindows Windows deferred.
All windows marked, deferred.
exportStrings: sender This method is used to export all strings in a document to a file for Language translation. This allows the user to see all of the strings which can be translated and allows the user to provide a translateion for each of them. filePrefsManager File preferences.
Gorm file prefs manager.
filesOwner File's Owner
File's owner...
firstResponder Returns stand-in object for firstResponder
Return first responder stand in.
fontManager Returns stand-in object for fontManager.
Return font manager stand in.
handleNotification: aNotification Handle all notifications. Checks the value of [ aNotification name] against the set of notifications this class responds to and takes appropriate action. images Images infoData return the file info. instantiateClass: sender Create an instance of a given class. isActive Returns YES, if document is active. isDocumentOpen Return the document open flag. isOlderArchive Return YES if this is an older archive. isTopLevelObject: obj Returns YES, if obj is a top level object. loadClass: sender Load a class into the document.
Parse a header into the classes view.
objectIsDeferred: anObject Return YES, if anObject is deferred.
Return YES, if the anObject is in the deferred list.
objectIsVisibleAtLaunch: anObject Return YES, if anObject is visible at launch time. openImage: sender Open an image and copy it into the document. openSound: sender Open a sound and load it into the document. reactivateEditors Reactivate all of the editors... rebuildObjToNameMapping Build our reverse mapping information and other initialisation recentDocumentsMenu Returns the menu which will be the recent documents menu for the document.
Return the object that will be the receent documents menu.
refreshConnectionsForClassNamed: className Refresh all connections to any and all instances of className. Checks if the class has the action/outlet present and deletes it, if it doesn't. remove: sender Remove a class from the classes view removeAllInstancesOfClass: className Remove all instances of a given class. removeConnectionsForClassNamed: className Remove all connections to any and all instances of className. removeConnectionsWithLabel: name forClassNamed: className isAction: action Removes all connections given action or outlet with the specified label (paramter name) class name (parameter className). renameConnectionsForClassNamed: className toName: newName Rename connections connected to an instance of on class to another. resourceManagerForPasteboard: pboard Get the resource manager which handles the content on pboard. resourceManagers The list of all resource managers. retrieveObjectsForParent: parent recursively: flag Retrieve all objects which have parent as thier parent. If flag is YES, then retrieve the entire graph of objects starting with the parent.
Pull all of the objects which are under a given parent. Returns an autoreleased array.
scmWrapper Save the SCM directory. selectClass: className Select a class in the classes view selectClass: className editClass: flag Select a class in the classes view servicesMenu Returns the services menu for the document.
Return the object that will be the services menu.
setDocumentActive: flag Marks this document as the currently active document. The active document is the one being edited by the user. setDocumentOpen: flag Set the document open flag. setImages: imgs Images setInfoData: data Set the file info for this document. setObject: anObject isDeferred: flag Add object to the defferred list.
Add anObject to the deferred list.
setObject: anObject isVisibleAtLaunch: flag Add object to the visible at launch list. setOlderArchive: flag Set the "older archive" flag. setRecentDocumentsMenu: anObject Sets the recent documents menu.
Set the menu that will be the recent documents menu in the app.
setSCMWrapper: wrapper Save the SCM directory. setServicesMenu: anObject Set the services menu.
Set the object that will be the services menu in the app.
setSounds: snds Sounds setWindowsMenu: anObject Sets the windows menu.
Set the windows menu.
sounds Sounds translate: sender This method is used to translate all of the strings in the file from one language into another. This is helpful when attempting to translate an application for use in different locales. viewWithTag: tag returns the view using the specified tag . They are 0=objects, 1=images, 2=sounds, 3=classes, 4=file prefs. visibleWindows Windows visible at launch...
All windows marked, visible at launch.
window The document window. windowAndRect: r forObject: object WindowAndRect:forObject: is called by Gorm to determine where it should draw selection markup
Returns the window and the rect r for object.
windowsMenu Returns the menu which will be the windows menu for the document.
return the windows menu.
Software documentation for the GormEditorToParent class GormCore/GormDocument.h Description forthcoming. Software documentation for the GormFirstResponder class GormCore/GormDocument.h Description forthcoming. Software documentation for the GormObjectToEditor class GormCore/GormDocument.h Description forthcoming. Software documentation for the GormDocument(MenuValidation) category GormCore/GormDocument.h Description forthcoming. isEditingClasses Returns YES if the document is editing classes. isEditingImages Returns YES if the document is editing images. isEditingObjects Returns YES if the document is editing instance/objects. isEditingSounds Returns YES if the document is editing sounds.
gorm-1.2.24/Documentation/GormCore/GormViewEditor.html0000644000000000000000000003716313426745046021411 0ustar rootroot GormViewEditor class documentation

GormViewEditor class documentation

Authors

Generated by heron

Software documentation for the GormViewEditor class

GormViewEditor : NSView

Declared in:
GormCore/GormViewEditor.h
Conforms to:
IBEditors
Description forthcoming.

Instance Variables

Method summary

activate 

- (BOOL) activate;
Description forthcoming.

canBeOpened 

- (BOOL) canBeOpened;
Description forthcoming.

close 

- (void) close;
Description forthcoming.

deactivate 

- (void) deactivate;
Description forthcoming.

detachSubviews 

- (void) detachSubviews;
Description forthcoming.

document 

- (id) document;
Description forthcoming.

editedObject 

- (id) editedObject;
Description forthcoming.

frameDidChange: 

- (void) frameDidChange: (id)sender;
Description forthcoming.

initWithObject: inDocument: 

- (id) initWithObject: (id)anObject inDocument: (id)aDocument;
Description forthcoming.

isOpened 

- (BOOL) isOpened;
Description forthcoming.

makeSelectionVisible: 

- (void) makeSelectionVisible: (BOOL)value;
Description forthcoming.

parent 

- (id) parent;
Description forthcoming.

postDraw: 

- (void) postDraw: (NSRect)rect;
Description forthcoming.

selection 

- (NSArray*) selection;
Description forthcoming.

setOpened: 

- (void) setOpened: (BOOL)value;
Description forthcoming.



Instance Variables for GormViewEditor Class

_editedObject

@protected id _editedObject;
Warning the underscore at the start of the name of this instance variable indicates that, even though it is not technically private, it is intended for internal use within the package, and you should not use the variable in other code.

activated

@protected BOOL activated;
Description forthcoming.

closed

@protected BOOL closed;
Description forthcoming.

document

@protected id document;
Description forthcoming.

parent

@protected GormViewWithSubviewsEditor* parent;
Description forthcoming.

viewWindow

@protected GormViewWindow* viewWindow;
Description forthcoming.




Software documentation for the GormViewEditor(EditingAdditions) category

GormViewEditor(EditingAdditions)

Declared in:
GormCore/GormViewEditor.h
Description forthcoming.
Method summary

editTextField: withEvent: 

- (NSEvent*) editTextField: (id)view withEvent: (NSEvent*)theEvent;
Description forthcoming.

Software documentation for the GormViewEditor(IntelligentPlacement) category

GormViewEditor(IntelligentPlacement)

Declared in:
GormCore/GormViewEditor.h
Description forthcoming.
Method summary

initializeResizingInFrame: withKnob: 

- (GormPlacementInfo*) initializeResizingInFrame: (NSView*)view withKnob: (IBKnobPosition)knob;
Description forthcoming.

updateResizingWithFrame: andEvent: andPlacementInfo: 

- (void) updateResizingWithFrame: (NSRect)frame andEvent: (NSEvent*)theEvent andPlacementInfo: (GormPlacementInfo*)gpi;
Description forthcoming.

validateFrame: withEvent: andPlacementInfo: 

- (void) validateFrame: (NSRect)frame withEvent: (NSEvent*)theEvent andPlacementInfo: (GormPlacementInfo*)gpi;
Description forthcoming.

Software documentation for the GormViewEditor(WindowAndRect) category

GormViewEditor(WindowAndRect)

Declared in:
GormCore/GormViewEditor.h
Description forthcoming.
Method summary

windowAndRect: forObject: 

- (NSWindow*) windowAndRect: (NSRect*)prect forObject: (id)object;
Description forthcoming.


gorm-1.2.24/Documentation/GormCore/Untitled.gsdoc0000644000000000000000000000065313426755205020416 0ustar rootroot The Untitled Project

The index below lists the major components of the Untitled documentation.

gorm-1.2.24/Documentation/GormCore/GormImageInspector.html0000644000000000000000000000537513426745046022241 0ustar rootroot GormImageInspector class documentation

GormImageInspector class documentation

Authors

Generated by heron

Software documentation for the GormImageInspector class

GormImageInspector : IBInspector

Declared in:
GormCore/GormImageInspector.h
Description forthcoming.

Instance Variables



Instance Variables for GormImageInspector Class

_currentImage

@protected id _currentImage;
Warning the underscore at the start of the name of this instance variable indicates that, even though it is not technically private, it is intended for internal use within the package, and you should not use the variable in other code.

height

@protected id height;
Description forthcoming.

imageView

@protected id imageView;
Description forthcoming.

name

@protected id name;
Description forthcoming.

width

@protected id width;
Description forthcoming.





gorm-1.2.24/Documentation/GormCore/GormSetNameController.html0000644000000000000000000000777213426745046022733 0ustar rootroot GormSetNameController class documentation

GormSetNameController class documentation

Authors

Generated by heron

Software documentation for the GormSetNameController class

GormSetNameController : NSObject

Declared in:
GormCore/GormSetNameController.h
Description forthcoming.

Instance Variables

Method summary

cancelHit: 

- (void) cancelHit: (id)sender;
Description forthcoming.

okHit: 

- (void) okHit: (id)sender;
Description forthcoming.

runAsModal 

- (NSInteger) runAsModal;
Description forthcoming.

textField 

- (NSTextField*) textField;
Description forthcoming.



Instance Variables for GormSetNameController Class

cancelButton

@protected NSButton* cancelButton;
Description forthcoming.

okButton

@protected NSButton* okButton;
Description forthcoming.

textField

@protected NSTextField* textField;
Description forthcoming.

window

@protected NSPanel* window;
Description forthcoming.





gorm-1.2.24/Documentation/GormCore/GormSoundInspector.gsdoc0000644000000000000000000000346013426745046022433 0ustar rootroot GormSoundInspector greg_casamento@yahoo.com allow user to select custom classes 2002 Free Software Foundation, Inc. Software documentation for the GormSoundInspector class GormCore/GormSoundInspector.h Description forthcoming. Description forthcoming. pause: sender Description forthcoming. play: sender Description forthcoming. record: sender Description forthcoming. stop: sender Description forthcoming. gorm-1.2.24/Documentation/GormCore/GormFontViewController.gsdoc0000644000000000000000000000367413426745045023267 0ustar rootroot GormFontViewController class documentation Software documentation for the GormFontViewController class GormCore/GormFontViewController.h Description forthcoming. Description forthcoming. Description forthcoming. Description forthcoming. sharedGormFontViewController Description forthcoming. convertFont: aFont Description forthcoming. selectFont: sender Description forthcoming. view Description forthcoming. gorm-1.2.24/Documentation/GormCore/GormViewWithSubviewsEditor.gsdoc0000644000000000000000000001066613426745046024127 0ustar rootroot GormViewWithSubviewsEditor class documentation Software documentation for the GormViewWithSubviewsEditor class GormCore/GormViewWithSubviewsEditor.h IBSelectionOwners Description forthcoming. Warning the underscore at the start of the name of this instance variable indicates that, even though it is not technically private, it is intended for internal use within the package, and you should not use the variable in other code. Warning the underscore at the start of the name of this instance variable indicates that, even though it is not technically private, it is intended for internal use within the package, and you should not use the variable in other code. Description forthcoming. Description forthcoming. Description forthcoming. changeFont: sender Description forthcoming. closeSubeditors Description forthcoming. copySelection Description forthcoming. deactivateSubeditors Description forthcoming. handleMouseOnKnob: knob ofView: view withEvent: theEvent Description forthcoming. handleMouseOnView: view withEvent: theEvent Description forthcoming. makeSubeditorResign Description forthcoming. openParentEditor Description forthcoming. selectObjects: objects Description forthcoming. setOpenedSubeditor: newEditor Description forthcoming. silentlyResetSelection Description forthcoming. gorm-1.2.24/Documentation/GormCore/GormResourceManager.html0000644000000000000000000000177613426745046022413 0ustar rootroot GormResourceManager class documentation

GormResourceManager class documentation

Authors

Generated by heron

Software documentation for the GormResourceManager class

GormResourceManager : IBResourceManager

Declared in:
GormCore/GormResourceManager.h
Description forthcoming.

gorm-1.2.24/Documentation/GormCore/GormNSSplitViewInspector.html0000644000000000000000000000314113426745046023373 0ustar rootroot GormNSSplitViewInspector class documentation

GormNSSplitViewInspector class documentation

Authors

Generated by heron

Software documentation for the GormNSSplitViewInspector class

GormNSSplitViewInspector : IBInspector

Declared in:
GormCore/GormNSSplitViewInspector.h
Description forthcoming.

Instance Variables



Instance Variables for GormNSSplitViewInspector Class

orientation

@protected id orientation;
Description forthcoming.





gorm-1.2.24/Documentation/GormCore/GormProtocol.html0000644000000000000000000002776013426745046021133 0ustar rootroot GormProtocol documentation

GormProtocol documentation

Authors

Generated by heron

Software documentation for the Gorm protocol

Gorm

Declared in:
GormCore/GormProtocol.h
Description forthcoming.
Method summary

classManager 

- (GormClassManager*) classManager;
Description forthcoming.

classMenu 

- (NSMenu*) classMenu;
Description forthcoming.

connectDestination 

- (id) connectDestination;
Description forthcoming.

connectSource 

- (id) connectSource;
Description forthcoming.

copy: 

- (void) copy: (id)sender;
Description forthcoming.

cut: 

- (void) cut: (id)sender;
Description forthcoming.

delete: 

- (void) delete: (id)sender;
Description forthcoming.

displayConnectionBetween: and: 

- (void) displayConnectionBetween: (id)source and: (id)destination;
Description forthcoming.

endTesting: 

- (id) endTesting: (id)sender;
Description forthcoming.

groupSelectionInBox: 

- (void) groupSelectionInBox: (id)sender;
Description forthcoming.

groupSelectionInScrollView: 

- (void) groupSelectionInScrollView: (id)sender;
Description forthcoming.

groupSelectionInSplitView: 

- (void) groupSelectionInSplitView: (id)sender;
Description forthcoming.

inspector: 

- (void) inspector: (id)sender;
Description forthcoming.

inspectorsManager 

- (GormInspectorsManager*) inspectorsManager;
Description forthcoming.

isConnecting 

- (BOOL) isConnecting;
Description forthcoming.

loadImage: 

- (void) loadImage: (id)sender;
Description forthcoming.

loadPalette: 

- (void) loadPalette: (id)sender;
Description forthcoming.

loadSound: 

- (void) loadSound: (id)sender;
Description forthcoming.

palettes: 

- (void) palettes: (id)sender;
Description forthcoming.

palettesManager 

- (GormPalettesManager*) palettesManager;
Description forthcoming.

paste: 

- (void) paste: (id)sender;
Description forthcoming.

pluginManager 

- (GormPluginManager*) pluginManager;
Description forthcoming.

preferencesPanel: 

- (void) preferencesPanel: (id)sender;
Description forthcoming.

selectAllItems: 

- (void) selectAllItems: (id)sender;
Description forthcoming.

setName: 

- (void) setName: (id)sender;
Description forthcoming.

stopConnecting 

- (void) stopConnecting;
Description forthcoming.

testInterface: 

- (void) testInterface: (id)sender;
Description forthcoming.

ungroup: 

- (void) ungroup: (id)sender;
Description forthcoming.


gorm-1.2.24/Documentation/GormCore/GormPalettesManager.html0000644000000000000000000002215713426745046022401 0ustar rootroot GormPalettesManager class documentation

GormPalettesManager class documentation

Authors

Generated by heron

Software documentation for the GormPalettesManager class

GormPalettesManager : NSObject

Declared in:
GormCore/GormPalettesManager.h
Description forthcoming.

Instance Variables

Method summary

importClasses: withDictionary: 

- (void) importClasses: (NSArray*)classes withDictionary: (NSDictionary*)dict;
Description forthcoming.

importImages: withBundle: 

- (void) importImages: (NSArray*)images withBundle: (NSBundle*)bundle;
Description forthcoming.

importSounds: withBundle: 

- (void) importSounds: (NSArray*)sounds withBundle: (NSBundle*)bundle;
Description forthcoming.

importedClasses 

- (NSDictionary*) importedClasses;
Description forthcoming.

importedImages 

- (NSArray*) importedImages;
Description forthcoming.

importedSounds 

- (NSArray*) importedSounds;
Description forthcoming.

loadPalette: 

- (BOOL) loadPalette: (NSString*)path;
Description forthcoming.

openPalette: 

- (id) openPalette: (id)sender;
Description forthcoming.

panel 

- (NSPanel*) panel;
Description forthcoming.

setCurrentPalette: 

- (void) setCurrentPalette: (id)anObj;
Description forthcoming.

substituteClasses 

- (NSDictionary*) substituteClasses;
Description forthcoming.



Instance Variables for GormPalettesManager Class

bundles

@protected NSMutableArray* bundles;
Description forthcoming.

current

@protected int current;
Description forthcoming.

dragView

@protected NSView* dragView;
Description forthcoming.

hiddenDuringTest

@protected BOOL hiddenDuringTest;
Description forthcoming.

importedClasses

@protected NSMutableDictionary* importedClasses;
Description forthcoming.

importedImages

@protected NSMutableArray* importedImages;
Description forthcoming.

importedSounds

@protected NSMutableArray* importedSounds;
Description forthcoming.

palettes

@protected NSMutableArray* palettes;
Description forthcoming.

panel

@protected NSPanel* panel;
Description forthcoming.

selectionView

@protected NSMatrix* selectionView;
Description forthcoming.

substituteClasses

@protected NSMutableDictionary* substituteClasses;
Description forthcoming.





gorm-1.2.24/Documentation/GormCore/GormOpenGLView.html0000644000000000000000000000330613426745046021277 0ustar rootroot GormOpenGLView class documentation

GormOpenGLView class documentation

Authors

Generated by heron

Software documentation for the GormOpenGLView class

GormOpenGLView : NSView

Declared in:
GormCore/GormOpenGLView.h
Description forthcoming.

Instance Variables



Instance Variables for GormOpenGLView Class

rtri

@protected float rtri;
Description forthcoming.

timer

@protected NSTimer* timer;
Description forthcoming.





gorm-1.2.24/Documentation/GormCore/GormScrollViewAttributesInspector.html0000644000000000000000000001531013426745046025345 0ustar rootroot GormScrollViewAttributesInspector

GormScrollViewAttributesInspector

Authors

Gregory John Casamento (greg_casamento@yahoo.com)
allow user to edit attributes of a scroll view

Copyright: (C) 2003 Free Software Foundation, Inc.

Software documentation for the GormScrollViewAttributesInspector class

GormScrollViewAttributesInspector : IBInspector

Declared in:
GormCore/GormScrollViewAttributesInspector.h
Description forthcoming.

Instance Variables

Method summary

borderSelected: 

- (void) borderSelected: (id)sender;
Description forthcoming.

colorSelected: 

- (void) colorSelected: (id)sender;
Description forthcoming.

horizontalRuler: 

- (void) horizontalRuler: (id)sender;
Description forthcoming.

horizontalSelected: 

- (void) horizontalSelected: (id)sender;
Description forthcoming.

verticalRuler: 

- (void) verticalRuler: (id)sender;
Description forthcoming.

verticalSelected: 

- (void) verticalSelected: (id)sender;
Description forthcoming.



Instance Variables for GormScrollViewAttributesInspector Class

borderMatrix

@protected id borderMatrix;
Description forthcoming.

color

@protected id color;
Description forthcoming.

horizontalRuler

@protected id horizontalRuler;
Description forthcoming.

horizontalScroll

@protected id horizontalScroll;
Description forthcoming.

lineAmount

@protected id lineAmount;
Description forthcoming.

pageContext

@protected id pageContext;
Description forthcoming.

verticalRuler

@protected id verticalRuler;
Description forthcoming.

verticalScroll

@protected id verticalScroll;
Description forthcoming.





gorm-1.2.24/Documentation/GormCore/GormSoundView.html0000644000000000000000000000522413426745046021244 0ustar rootroot GormSoundView

GormSoundView

Authors

Gregory John Casamento (greg_casamento@yahoo.com)

Copyright: (C) 2004 Free Software Foundation, Inc.

Software documentation for the GormSoundView class

GormSoundView : NSView

Declared in:
GormCore/GormSoundView.h
Description forthcoming.

Instance Variables

Method summary

setSound: 

- (void) setSound: (NSSound*)sound;
Description forthcoming.

sound 

- (NSSound*) sound;
Description forthcoming.



Instance Variables for GormSoundView Class

_sound

@protected NSSound* _sound;
Warning the underscore at the start of the name of this instance variable indicates that, even though it is not technically private, it is intended for internal use within the package, and you should not use the variable in other code.





gorm-1.2.24/Documentation/GormCore/GormDocumentController.gsdoc0000644000000000000000000000256513426745045023302 0ustar rootroot GormDocumentController class documentation Software documentation for the GormDocumentController class GormCore/GormDocumentController.h Description forthcoming. buildDocumentForType: documentType Description forthcoming. openDocumentWithContentsOfURL: url Description forthcoming. GormDocumentController types

Description forthcoming.
gorm-1.2.24/Documentation/GormCore/GormImage.gsdoc0000644000000000000000000000663013426745045020477 0ustar rootroot GormImage greg_casamento@yahoo.com This class is a placeholder for a real image. 2001 Free Software Foundation, Inc. Software documentation for the GormImage class GormCore/GormImage.h Description forthcoming. Description forthcoming. Description forthcoming. imageForData: aData withFileName: aName inWrapper: flag Initialize with image data. Mark it as in the wrapper depending on the value of flag. imageForPath: aPath Initialize with image data located at path. imageForPath: aPath inWrapper: flag Initialize with image data located at path. Mark it as in the wrapper depending on the value of flag. image A thumbnail of the image. normalImage The full sized image. Software documentation for the NSImage(GormNSImageAddition) category GormCore/GormImage.h Description forthcoming. archiveByName Returns YES, if the image should be archived by name only, NO otherwise. setArchiveByName: archiveByName Set to YES, if the image should be archived by name only, NO otherwise. gorm-1.2.24/Documentation/GormCore/VariablesTOC.html0000644000000000000000000000453713426755205020756 0ustar rootroot Variables

Variables

GormClassPboardType
GormDidAddClassNotification
GormDidDeleteClassNotification
GormDidModifyClassNotification
GormLinkPboardType
GormResizeCellNotification
GormSwitchViewPreferencesNotification
GormToggleGuidelineNotification
GormWillDetachObjectFromDocumentNotification
typeChar
typeDouble
typeFloat
typeId
typeInt
typeUChar
typeUInt

gorm-1.2.24/Documentation/GormCore/GormDocumentController.html0000644000000000000000000000547013426745046023146 0ustar rootroot GormDocumentController class documentation

GormDocumentController class documentation

Authors

Generated by heron

Software documentation for the GormDocumentController class

GormDocumentController : NSDocumentController

Declared in:
GormCore/GormDocumentController.h
Description forthcoming.
Method summary

buildDocumentForType: 

- (void) buildDocumentForType: (GormDocumentType)documentType;
Description forthcoming.

openDocumentWithContentsOfURL: 

- (id) openDocumentWithContentsOfURL: (NSURL*)url;
Description forthcoming.

GormDocumentController types

GormDocumentType

typedef enum ... GormDocumentType;
Description forthcoming.


gorm-1.2.24/Documentation/GormCore/GormResource.gsdoc0000644000000000000000000001423013426745046021240 0ustar rootroot GormResource greg_casamento@yahoo.com This class is a placeholder for a real resource. 2005 Free Software Foundation, Inc. Software documentation for the GormResource class GormCore/GormResource.h IBProjectFiles Description forthcoming. Description forthcoming. Description forthcoming. Description forthcoming. Description forthcoming. Description forthcoming. Description forthcoming. Description forthcoming. Description forthcoming. Description forthcoming. Description forthcoming. resourceForPath: aPath Description forthcoming. resourceForPath: aPath inWrapper: flag Description forthcoming. data Description forthcoming. initWithData: aData withFileName: aFileName inWrapper: flag Description forthcoming. initWithName: aName path: aPath Description forthcoming. initWithName: aName path: aPath inWrapper: flag Designated initializer. initWithPath: aPath Description forthcoming. initWithPath: aPath inWrapper: flag Description forthcoming. isEqual: object Description forthcoming. isInWrapper Description forthcoming. isSystemResource Description forthcoming. name Description forthcoming. setData: aData Description forthcoming. setInWrapper: flag Description forthcoming. setName: aName Description forthcoming. setSystemResource: flag Description forthcoming. gorm-1.2.24/Documentation/GormCore/NSColorWell+GormExtensions.html0000644000000000000000000000323013426745046023612 0ustar rootroot NSColorWell+GormExtensions documentation

NSColorWell+GormExtensions documentation

Authors

Generated by heron

Software documentation for the NSColorWell(GormExtensions) category

NSColorWell(GormExtensions)

Declared in:
GormCore/NSColorWell+GormExtensions.h
Description forthcoming.
Method summary

setColorWithoutAction: 

- (void) setColorWithoutAction: (NSColor*)color;
Changes the color without sending the action associated with it.


gorm-1.2.24/Documentation/GormCore/GormHelpInspector.gsdoc0000644000000000000000000000150613426745045022231 0ustar rootroot GormHelpInspector class documentation Software documentation for the GormHelpInspector class GormCore/GormHelpInspector.h Description forthcoming. Description forthcoming. gorm-1.2.24/Documentation/GormCore/TypesTOC.gsdoc0000644000000000000000000000055313426755205020277 0ustar rootroot Types gorm-1.2.24/Documentation/GormCore/GormWindowEditor.gsdoc0000644000000000000000000001162513426745046022074 0ustar rootroot GormWindowEditor class documentation Software documentation for the GormWindowEditor class GormCore/GormWindowEditor.h Description forthcoming. Description forthcoming. Description forthcoming. Description forthcoming. Description forthcoming. Description forthcoming. acceptsTypeFromArray: types Returns YES, if the reciever accepts any of the pasteboard items in types. activate Activates the editor changeFont: sender Change the font. close Close the editor. This will also call the deactivate method. closeSubeditors Close any and all editors which are subordinate to this one. deactivate Deactivate the editor. deleteSelection Delete the current selection. document Return the document which the object the receiver is edited is located in. draggedImage: i endedAt: p deposited: f Call with success or failure of the drag operation. draggingSourceOperationMaskForLocal: flag Returns NSDragOperationNone. initWithObject: anObject inDocument: aDocument Instantiate with anObject in the document aDocument. makeSelectionVisible: flag Make current selection visible. openSubeditorForObject: anObject Description forthcoming. orderFront Order the edited window to the front. pasteInSelection Paste from pasteboard. resetObject: anObject Reset object, redisplays the window. gorm-1.2.24/Documentation/GormCore/NSView+GormExtensions.gsdoc0000644000000000000000000000432613426745046022764 0ustar rootroot NSView+GormExtensions documentation Software documentation for the NSView(GormExtensions) category GormCore/NSView+GormExtensions.h Description forthcoming. hasSuperviewKindOfClass: cls Returns YES if the receiver has an instance of the Class cls as a superview.
Checks for a superview of a give class.
moveViewToBack: sv Move the subview sv in reciever to the beginning of the reciever's display list. This has the effect of making it appear in back of the other views.
Moves the specified subview to the beginning of the list, so it's displayed behind all of the other views.
moveViewToFront: sv Move the subview sv in reciever to the end of the reciever's display list. This has the effect of making it appear in front of the other views.
Moves the specified subview to the end of the list, so it's displayed in front of the other views.
superviews All superviews of the receiver.
All superviews of this view
gorm-1.2.24/Documentation/GormCore/GormOpenGLView.gsdoc0000644000000000000000000000173613426745046021437 0ustar rootroot GormOpenGLView class documentation Software documentation for the GormOpenGLView class GormCore/GormOpenGLView.h Description forthcoming. Description forthcoming. Description forthcoming. gorm-1.2.24/Documentation/GormCore/GormNSPanel.html0000644000000000000000000001343213426745046020621 0ustar rootroot GormNSPanel class documentation

GormNSPanel class documentation

Authors

Generated by heron

Software documentation for the GormNSPanel class

GormNSPanel : NSPanel

Declared in:
GormCore/GormNSPanel.h
Description forthcoming.

Instance Variables

Method summary

_isReleasedWhenClosed 

- (BOOL) _isReleasedWhenClosed;
Warning the underscore at the start of the name of this method indicates that it is private, for internal use only, and you should not use the method in your code.

_setReleasedWhenClosed: 

- (void) _setReleasedWhenClosed: (BOOL)flag;
Warning the underscore at the start of the name of this method indicates that it is private, for internal use only, and you should not use the method in your code.

_setStyleMask: 

- (void) _setStyleMask: (unsigned int)newStyleMask;
Warning the underscore at the start of the name of this method indicates that it is private, for internal use only, and you should not use the method in your code.

_styleMask 

- (unsigned int) _styleMask;
Warning the underscore at the start of the name of this method indicates that it is private, for internal use only, and you should not use the method in your code.

autoPositionMask 

- (unsigned int) autoPositionMask;
Description forthcoming.

setAutoPositionMask: 

- (void) setAutoPositionMask: (unsigned int)mask;
Description forthcoming.



Instance Variables for GormNSPanel Class

_gormReleasedWhenClosed

@protected BOOL _gormReleasedWhenClosed;
Warning the underscore at the start of the name of this instance variable indicates that, even though it is not technically private, it is intended for internal use within the package, and you should not use the variable in other code.

_gormStyleMask

@protected unsigned int _gormStyleMask;
Warning the underscore at the start of the name of this instance variable indicates that, even though it is not technically private, it is intended for internal use within the package, and you should not use the variable in other code.

autoPositionMask

@protected NSUInteger autoPositionMask;
Description forthcoming.





gorm-1.2.24/Documentation/GormCore/GormInternalViewEditor.gsdoc0000644000000000000000000000211013426745045023220 0ustar rootroot GormInternalViewEditor class documentation Software documentation for the GormInternalViewEditor class GormCore/GormInternalViewEditor.h Description forthcoming. changeFont: sender Description forthcoming. destroyAndListSubviews Description forthcoming. gorm-1.2.24/Documentation/GormCore/GormFilesOwner.html0000644000000000000000000001137113426745046021376 0ustar rootroot GormFilesOwner documentation

GormFilesOwner documentation

Authors

Generated by heron

Software documentation for the GormFilesOwner class

GormFilesOwner : NSObject

Declared in:
GormCore/GormFilesOwner.h
Description forthcoming.

Instance Variables

Method summary

className 

- (NSString*) className;
Description forthcoming.

setClassName: 

- (void) setClassName: (NSString*)aName;
Description forthcoming.



Instance Variables for GormFilesOwner Class

className

@protected NSString* className;
Description forthcoming.




Software documentation for the GormFilesOwnerInspector class

GormFilesOwnerInspector : IBInspector

Declared in:
GormCore/GormFilesOwner.h
Description forthcoming.

Instance Variables

Method summary

takeClassFrom: 

- (void) takeClassFrom: (id)sender;
Description forthcoming.



Instance Variables for GormFilesOwnerInspector Class

browser

@protected NSBrowser* browser;
Description forthcoming.

classes

@protected NSMutableArray* classes;
Description forthcoming.

hasConnections

@protected BOOL hasConnections;
Description forthcoming.





gorm-1.2.24/Documentation/GormCore/FunctionsTOC.html0000644000000000000000000000634713426755205021017 0ustar rootroot Functions

Functions

GormDrawKnobsForRect
GormDrawOpenKnobsForRect
GormExtBoundsForRect
GormKnobHitInRect
GormShowFastKnobFills
GormShowFrameWithKnob
_GSObjCMethodNamesForClass
_GSObjCVariableNames
allSubviews
appVersion
colorFromDict
colorToDict
cutFileLabelText
defaultCellSize
findAll
findAllSubmenus
findAllWithArray
formatAction
formatOutlet
identifierString
minimalContainerFrame
promptForClassName
subviewsForView
systemImagesList
systemSoundsList

gorm-1.2.24/Documentation/GormCore/GormServer.gsdoc0000644000000000000000000000201213426745046020712 0ustar rootroot GormServer documentation Software documentation for the GormServer protocol GormCore/GormServer.h Description forthcoming. addClass: dict Description forthcoming. deleteClass: className Description forthcoming. gorm-1.2.24/Documentation/GormCore/TypesTOC.html0000644000000000000000000000131613426755205020142 0ustar rootroot Types

Types

GSAttributeType
GormDocumentType
GormHintBorder

gorm-1.2.24/Documentation/GormCore/index.html0000644000000000000000000000072013426755205017575 0ustar rootroot Autogsdoc-generated Documentation for Untitled gorm-1.2.24/Documentation/GormCore/GormGenericEditor.html0000644000000000000000000004653113426745046022052 0ustar rootroot GormGenericEditor class documentation

GormGenericEditor class documentation

Authors

Generated by heron

Software documentation for the GormGenericEditor class

GormGenericEditor : NSMatrix

Declared in:
GormCore/GormGenericEditor.h
Conforms to:
IBEditors
IBSelectionOwners
Description forthcoming.

Instance Variables

Method summary

editorForDocument: 

+ (id) editorForDocument: (id)aDocument;
Description forthcoming.

setEditor: forDocument: 

+ (void) setEditor: (id)editor forDocument: (id)aDocument;
Description forthcoming.

activate 

- (BOOL) activate;
Description forthcoming.

addObject: 

- (void) addObject: (id)anObject;
Description forthcoming.

close 

- (void) close;
Description forthcoming.

closeSubeditors 

- (void) closeSubeditors;
Description forthcoming.

containsObject: 

- (BOOL) containsObject: (id)object;
Description forthcoming.

copySelection 

- (void) copySelection;
Description forthcoming.

deleteSelection 

- (void) deleteSelection;
Description forthcoming.

document 

- (id) document;
Description forthcoming.

editedObject 

- (id) editedObject;
Description forthcoming.

fileTypes 

- (NSArray*) fileTypes;
Description forthcoming.

initWithObject: inDocument: 

- (id) initWithObject: (id)anObject inDocument: (id)aDocument;
Description forthcoming.

isOpened 

- (BOOL) isOpened;
Description forthcoming.

objects 

- (NSArray*) objects;
Description forthcoming.

openSubeditorForObject: 

- (id) openSubeditorForObject: (id)anObject;
Description forthcoming.

orderFront 

- (void) orderFront;
Description forthcoming.

pasteInSelection 

- (void) pasteInSelection;
Description forthcoming.

rectForObject: 

- (NSRect) rectForObject: (id)anObject;
Description forthcoming.

refreshCells 

- (void) refreshCells;
Description forthcoming.

removeObject: 

- (void) removeObject: (id)anObject;
Description forthcoming.

selectObjects: 

- (void) selectObjects: (NSArray*)anArray;
Description forthcoming.

wantsSelection 

- (BOOL) wantsSelection;
Description forthcoming.

window 

- (NSWindow*) window;
Description forthcoming.



Instance Variables for GormGenericEditor Class

activated

@protected BOOL activated;
Description forthcoming.

closed

@protected BOOL closed;
Description forthcoming.

document

@protected id document;
Description forthcoming.

dragPb

@protected NSPasteboard* dragPb;
Description forthcoming.

dragType

@protected NSString* dragType;
Description forthcoming.

objects

@protected NSMutableArray* objects;
Description forthcoming.

resourceManager

@protected IBResourceManager* resourceManager;
Description forthcoming.

selected

@protected id selected;
Description forthcoming.




Software documentation for the GormGenericEditor(PrivateMethods) category

GormGenericEditor(PrivateMethods)

Declared in:
GormCore/GormGenericEditor.h
Warning this category is private, which means that the methods are for internal use by the package. You should not use them in external code.
Method summary

changeSelection: 

- (id) changeSelection: (id)sender;
Description forthcoming.

groupSelectionInBox 

- (void) groupSelectionInBox;
Description forthcoming.

groupSelectionInScrollView 

- (void) groupSelectionInScrollView;
Description forthcoming.

groupSelectionInSplitView 

- (void) groupSelectionInSplitView;
Description forthcoming.

groupSelectionInView 

- (void) groupSelectionInView;
Description forthcoming.

setEditor: forDocument: 

- (void) setEditor: (id)anEditor forDocument: (id)doc;
Description forthcoming.

ungroup 

- (void) ungroup;
Description forthcoming.

willCloseDocument: 

- (void) willCloseDocument: (NSNotification*)aNotification;
Description forthcoming.


gorm-1.2.24/Documentation/GormCore/GormPluginManager.html0000644000000000000000000000626113426745046022054 0ustar rootroot GormPluginManager class documentation

GormPluginManager class documentation

Authors

Generated by heron

Software documentation for the GormPluginManager class

GormPluginManager : NSObject

Declared in:
GormCore/GormPluginManager.h
Description forthcoming.

Instance Variables

Method summary

loadPlugin: 

- (BOOL) loadPlugin: (NSString*)path;
Description forthcoming.

openPlugin: 

- (id) openPlugin: (id)sender;
Description forthcoming.



Instance Variables for GormPluginManager Class

bundles

@protected NSMutableArray* bundles;
Description forthcoming.

pluginNames

@protected NSMutableArray* pluginNames;
Description forthcoming.

plugins

@protected NSMutableArray* plugins;
Description forthcoming.

pluginsDict

@protected NSMutableDictionary* pluginsDict;
Description forthcoming.





gorm-1.2.24/Documentation/GormCore/GormFilesOwner.gsdoc0000644000000000000000000000434713426745045021535 0ustar rootroot GormFilesOwner documentation Software documentation for the GormFilesOwner class GormCore/GormFilesOwner.h Description forthcoming. Description forthcoming. className Description forthcoming. setClassName: aName Description forthcoming. Software documentation for the GormFilesOwnerInspector class GormCore/GormFilesOwner.h Description forthcoming. Description forthcoming. Description forthcoming. Description forthcoming. takeClassFrom: sender Description forthcoming. gorm-1.2.24/Documentation/GormCore/ProtocolsTOC.html0000644000000000000000000000237413426755205021027 0ustar rootroot Protocols

Protocols

<Gorm>
<GormServer>
<GormWrapperBuilder>
<GormWrapperLoader>
(GormAdditions)
(GormOutlineViewDataSource)
(GormOutlineViewDelegate)

gorm-1.2.24/Documentation/GormCore/GormCustomView.html0000644000000000000000000000453313426745046021430 0ustar rootroot GormCustomView class documentation

GormCustomView class documentation

Authors

Generated by heron

Software documentation for the GormCustomView class

GormCustomView : NSTextField

Declared in:
GormCore/GormCustomView.h
Description forthcoming.

Instance Variables

Method summary

className 

- (NSString*) className;
Description forthcoming.

setClassName: 

- (void) setClassName: (NSString*)aName;
Description forthcoming.



Instance Variables for GormCustomView Class

className

@protected NSString* className;
Description forthcoming.





gorm-1.2.24/Documentation/GormCore/GormPalettesManager.gsdoc0000644000000000000000000001161513426745046022531 0ustar rootroot GormPalettesManager class documentation Software documentation for the GormPalettesManager class GormCore/GormPalettesManager.h Description forthcoming. Description forthcoming. Description forthcoming. Description forthcoming. Description forthcoming. Description forthcoming. Description forthcoming. Description forthcoming. Description forthcoming. Description forthcoming. Description forthcoming. Description forthcoming. importClasses: classes withDictionary: dict Description forthcoming. importImages: images withBundle: bundle Description forthcoming. importSounds: sounds withBundle: bundle Description forthcoming. importedClasses Description forthcoming. importedImages Description forthcoming. importedSounds Description forthcoming. loadPalette: path Description forthcoming. openPalette: sender Description forthcoming. panel Description forthcoming. setCurrentPalette: anObj Description forthcoming. substituteClasses Description forthcoming. gorm-1.2.24/Documentation/GormCore/GormViewSizeInspector.gsdoc0000644000000000000000000000356513426745046023116 0ustar rootroot GormViewSizeInspector class documentation Software documentation for the GormViewSizeInspector class GormCore/GormViewSizeInspector.h Description forthcoming. Description forthcoming. Description forthcoming. Description forthcoming. Description forthcoming. Description forthcoming. Description forthcoming. Description forthcoming. gorm-1.2.24/Documentation/GormCore/GormServer.html0000644000000000000000000000341413426745046020566 0ustar rootroot GormServer documentation

GormServer documentation

Authors

Generated by heron

Software documentation for the GormServer protocol

GormServer

Declared in:
GormCore/GormServer.h
Description forthcoming.
Method summary

addClass: 

- (void) addClass: (NSDictionary*)dict;
Description forthcoming.

deleteClass: 

- (void) deleteClass: (NSString*)className;
Description forthcoming.


gorm-1.2.24/Documentation/GormCore/GormNSWindow.html0000644000000000000000000001347213426745046021035 0ustar rootroot GormNSWindow class documentation

GormNSWindow class documentation

Authors

Generated by heron

Software documentation for the GormNSWindow class

GormNSWindow : NSWindow

Declared in:
GormCore/GormNSWindow.h
Description forthcoming.

Instance Variables

Method summary

_isReleasedWhenClosed 

- (BOOL) _isReleasedWhenClosed;
Warning the underscore at the start of the name of this method indicates that it is private, for internal use only, and you should not use the method in your code.

_setReleasedWhenClosed: 

- (void) _setReleasedWhenClosed: (BOOL)flag;
Warning the underscore at the start of the name of this method indicates that it is private, for internal use only, and you should not use the method in your code.

_setStyleMask: 

- (void) _setStyleMask: (unsigned int)newStyleMask;
Warning the underscore at the start of the name of this method indicates that it is private, for internal use only, and you should not use the method in your code.

_styleMask 

- (unsigned int) _styleMask;
Warning the underscore at the start of the name of this method indicates that it is private, for internal use only, and you should not use the method in your code.

autoPositionMask 

- (unsigned int) autoPositionMask;
Description forthcoming.

setAutoPositionMask: 

- (void) setAutoPositionMask: (unsigned int)mask;
Description forthcoming.



Instance Variables for GormNSWindow Class

_gormReleasedWhenClosed

@protected BOOL _gormReleasedWhenClosed;
Warning the underscore at the start of the name of this instance variable indicates that, even though it is not technically private, it is intended for internal use within the package, and you should not use the variable in other code.

_gormStyleMask

@protected unsigned int _gormStyleMask;
Warning the underscore at the start of the name of this instance variable indicates that, even though it is not technically private, it is intended for internal use within the package, and you should not use the variable in other code.

autoPositionMask

@protected NSUInteger autoPositionMask;
Description forthcoming.





gorm-1.2.24/Documentation/GormCore/GormWrapperBuilder.gsdoc0000644000000000000000000000560013426745046022401 0ustar rootroot GormWrapperBuilder documentation Software documentation for the GormWrapperBuilder class GormCore/GormWrapperBuilder.h GormWrapperBuilder Description forthcoming. Description forthcoming. fileType Description forthcoming. Software documentation for the GormWrapperBuilderFactory class GormCore/GormWrapperBuilder.h Description forthcoming. registerWrapperBuilderClass: aClass Description forthcoming. sharedWrapperBuilderFactory Description forthcoming. wrapperBuilderForType: type Description forthcoming. Software documentation for the GormWrapperBuilder protocol GormCore/GormWrapperBuilder.h Description forthcoming. buildFileWrapperDictionaryWithDocument: document Description forthcoming. buildFileWrapperWithDocument: document Description forthcoming. gorm-1.2.24/Documentation/GormCore/GormImageEditor.html0000644000000000000000000000204613426745046021511 0ustar rootroot GormImageEditor class documentation

GormImageEditor class documentation

Authors

Generated by heron

Software documentation for the GormImageEditor class

GormImageEditor : GormResourceEditor

Declared in:
GormCore/GormImageEditor.h
Description forthcoming.

gorm-1.2.24/Documentation/GormCore/GormWrapperBuilder.html0000644000000000000000000001510513426745046022247 0ustar rootroot GormWrapperBuilder documentation

GormWrapperBuilder documentation

Authors

Generated by heron

Software documentation for the GormWrapperBuilder class

GormWrapperBuilder : NSObject

Declared in:
GormCore/GormWrapperBuilder.h
Conforms to:
GormWrapperBuilder
Description forthcoming.

Instance Variables

Method summary

fileType 

+ (NSString*) fileType;
Description forthcoming.



Instance Variables for GormWrapperBuilder Class

document

@protected GormDocument* document;
Description forthcoming.




Software documentation for the GormWrapperBuilderFactory class

GormWrapperBuilderFactory : NSObject

Declared in:
GormCore/GormWrapperBuilder.h
Description forthcoming.
Method summary

registerWrapperBuilderClass: 

+ (void) registerWrapperBuilderClass: (Class)aClass;
Description forthcoming.

sharedWrapperBuilderFactory 

+ (GormWrapperBuilderFactory*) sharedWrapperBuilderFactory;
Description forthcoming.

wrapperBuilderForType: 

- (id<GormWrapperBuilder>) wrapperBuilderForType: (NSString*)type;
Description forthcoming.

Software documentation for the GormWrapperBuilder protocol

GormWrapperBuilder

Declared in:
GormCore/GormWrapperBuilder.h
Description forthcoming.
Method summary

buildFileWrapperDictionaryWithDocument: 

- (NSMutableDictionary*) buildFileWrapperDictionaryWithDocument: (GormDocument*)document;
Description forthcoming.

buildFileWrapperWithDocument: 

- (NSFileWrapper*) buildFileWrapperWithDocument: (GormDocument*)document;
Description forthcoming.


gorm-1.2.24/Documentation/GormCore/GormStandaloneViewEditor.html0000644000000000000000000000242013426745046023406 0ustar rootroot GormStandaloneViewEditor class documentation

GormStandaloneViewEditor class documentation

Authors

Generated by heron

Software documentation for the GormStandaloneViewEditor class

GormStandaloneViewEditor : GormViewWithContentViewEditor

Declared in:
GormCore/GormStandaloneViewEditor.h
Conforms to:
IBSelectionOwners
Description forthcoming.

gorm-1.2.24/Documentation/GormCore/GormBoxEditor.gsdoc0000644000000000000000000000202013426745045021341 0ustar rootroot GormBoxEditor class documentation Software documentation for the GormBoxEditor class GormCore/GormBoxEditor.h Description forthcoming. Description forthcoming. destroyAndListSubviews Description forthcoming. gorm-1.2.24/Documentation/GormCore/GormMatrixEditor.gsdoc0000644000000000000000000000227413426745045022070 0ustar rootroot GormMatrixEditor class documentation Software documentation for the GormMatrixEditor class GormCore/GormMatrixEditor.h Description forthcoming. Description forthcoming. Description forthcoming. Description forthcoming. gorm-1.2.24/Documentation/GormCore/GormScrollViewAttributesInspector.gsdoc0000644000000000000000000000701413426745046025502 0ustar rootroot GormScrollViewAttributesInspector greg_casamento@yahoo.com allow user to edit attributes of a scroll view 2003 Free Software Foundation, Inc. Software documentation for the GormScrollViewAttributesInspector class GormCore/GormScrollViewAttributesInspector.h Description forthcoming. Description forthcoming. Description forthcoming. Description forthcoming. Description forthcoming. Description forthcoming. Description forthcoming. Description forthcoming. Description forthcoming. borderSelected: sender Description forthcoming. colorSelected: sender Description forthcoming. horizontalRuler: sender Description forthcoming. horizontalSelected: sender Description forthcoming. verticalRuler: sender Description forthcoming. verticalSelected: sender Description forthcoming. gorm-1.2.24/Documentation/GormCore/GormPlacementInfo.html0000644000000000000000000003123013426745046022041 0ustar rootroot GormPlacementInfo documentation

GormPlacementInfo documentation

Authors

Generated by heron

Software documentation for the GormPlacementHint class

GormPlacementHint : NSObject

Declared in:
GormCore/GormPlacementInfo.h
Description forthcoming.

Instance Variables

Method summary

border 

- (GormHintBorder) border;
Description forthcoming.

distanceToFrame: 

- (int) distanceToFrame: (NSRect)frame;
Description forthcoming.

end 

- (float) end;
Description forthcoming.

frame 

- (NSRect) frame;
Description forthcoming.

initWithBorder: position: validityStart: validityEnd: frame: 

- (id) initWithBorder: (GormHintBorder)border position: (float)position validityStart: (float)start validityEnd: (float)end frame: (NSRect)frame;
Description forthcoming.

position 

- (float) position;
Description forthcoming.

rectWithHalfDistance: 

- (NSRect) rectWithHalfDistance: (int)halfDistance;
Description forthcoming.

start 

- (float) start;
Description forthcoming.



Instance Variables for GormPlacementHint Class

_border

@protected GormHintBorder _border;
Warning the underscore at the start of the name of this instance variable indicates that, even though it is not technically private, it is intended for internal use within the package, and you should not use the variable in other code.

_end

@protected float _end;
Warning the underscore at the start of the name of this instance variable indicates that, even though it is not technically private, it is intended for internal use within the package, and you should not use the variable in other code.

_frame

@protected NSRect _frame;
Warning the underscore at the start of the name of this instance variable indicates that, even though it is not technically private, it is intended for internal use within the package, and you should not use the variable in other code.

_position

@protected float _position;
Warning the underscore at the start of the name of this instance variable indicates that, even though it is not technically private, it is intended for internal use within the package, and you should not use the variable in other code.

_start

@protected float _start;
Warning the underscore at the start of the name of this instance variable indicates that, even though it is not technically private, it is intended for internal use within the package, and you should not use the variable in other code.




Software documentation for the GormPlacementInfo class

GormPlacementInfo : NSObject

Declared in:
GormCore/GormPlacementInfo.h
Description forthcoming.

Instance Variables



Instance Variables for GormPlacementInfo Class

bottomHints

@public NSMutableArray* bottomHints;
Description forthcoming.

firstPass

@public BOOL firstPass;
Description forthcoming.

hintFrame

@public NSRect hintFrame;
Description forthcoming.

hintInitialized

@public BOOL hintInitialized;
Description forthcoming.

knob

@public IBKnobPosition knob;
Description forthcoming.

lastBottomRect

@public NSRect lastBottomRect;
Description forthcoming.

lastFrame

@public NSRect lastFrame;
Description forthcoming.

lastLeftRect

@public NSRect lastLeftRect;
Description forthcoming.

lastRightRect

@public NSRect lastRightRect;
Description forthcoming.

lastTopRect

@public NSRect lastTopRect;
Description forthcoming.

leftHints

@public NSMutableArray* leftHints;
Description forthcoming.

oldRect

@public NSRect oldRect;
Description forthcoming.

resizingIn

@public NSView* resizingIn;
Description forthcoming.

rightHints

@public NSMutableArray* rightHints;
Description forthcoming.

topHints

@public NSMutableArray* topHints;
Description forthcoming.




GormPlacementInfo types

GormHintBorder

typedef enum _GormHintBorder GormHintBorder;
Description forthcoming.


gorm-1.2.24/Documentation/GormCore/GormMatrixEditor.html0000644000000000000000000000416513426745046021737 0ustar rootroot GormMatrixEditor class documentation

GormMatrixEditor class documentation

Authors

Generated by heron

Software documentation for the GormMatrixEditor class

GormMatrixEditor : GormViewWithSubviewsEditor

Declared in:
GormCore/GormMatrixEditor.h
Description forthcoming.

Instance Variables



Instance Variables for GormMatrixEditor Class

selected

@protected NSCell* selected;
Description forthcoming.

selectedCol

@protected NSInteger selectedCol;
Description forthcoming.

selectedRow

@protected NSInteger selectedRow;
Description forthcoming.





gorm-1.2.24/Documentation/GormCore/GormSplitViewEditor.gsdoc0000644000000000000000000000155713426745046022556 0ustar rootroot GormSplitViewEditor class documentation Software documentation for the GormSplitViewEditor class GormCore/GormSplitViewEditor.h Description forthcoming. destroyAndListSubviews Description forthcoming. gorm-1.2.24/Documentation/GormCore/GormViewWithSubviewsEditor.html0000644000000000000000000002165213426745046023771 0ustar rootroot GormViewWithSubviewsEditor class documentation

GormViewWithSubviewsEditor class documentation

Authors

Generated by heron

Software documentation for the GormViewWithSubviewsEditor class

GormViewWithSubviewsEditor : GormViewEditor

Declared in:
GormCore/GormViewWithSubviewsEditor.h
Conforms to:
IBSelectionOwners
Description forthcoming.

Instance Variables

Method summary

changeFont: 

- (void) changeFont: (id)sender;
Description forthcoming.

closeSubeditors 

- (void) closeSubeditors;
Description forthcoming.

copySelection 

- (void) copySelection;
Description forthcoming.

deactivateSubeditors 

- (void) deactivateSubeditors;
Description forthcoming.

handleMouseOnKnob: ofView: withEvent: 

- (void) handleMouseOnKnob: (IBKnobPosition)knob ofView: (GormViewEditor*)view withEvent: (NSEvent*)theEvent;
Description forthcoming.

handleMouseOnView: withEvent: 

- (void) handleMouseOnView: (GormViewEditor*)view withEvent: (NSEvent*)theEvent;
Description forthcoming.

makeSubeditorResign 

- (void) makeSubeditorResign;
Description forthcoming.

openParentEditor 

- (void) openParentEditor;
Description forthcoming.

selectObjects: 

- (void) selectObjects: (NSArray*)objects;
Description forthcoming.

setOpenedSubeditor: 

- (void) setOpenedSubeditor: (GormViewWithSubviewsEditor*)newEditor;
Description forthcoming.

silentlyResetSelection 

- (void) silentlyResetSelection;
Description forthcoming.



Instance Variables for GormViewWithSubviewsEditor Class

_displaySelection

@protected BOOL _displaySelection;
Warning the underscore at the start of the name of this instance variable indicates that, even though it is not technically private, it is intended for internal use within the package, and you should not use the variable in other code.

_followGuideLine

@protected BOOL _followGuideLine;
Warning the underscore at the start of the name of this instance variable indicates that, even though it is not technically private, it is intended for internal use within the package, and you should not use the variable in other code.

opened

@protected BOOL opened;
Description forthcoming.

openedSubeditor

@protected GormViewWithSubviewsEditor* openedSubeditor;
Description forthcoming.

selection

@protected NSMutableArray* selection;
Description forthcoming.





gorm-1.2.24/Documentation/GormCore/GormWrapperLoader.gsdoc0000644000000000000000000000560413426745046022225 0ustar rootroot GormWrapperLoader documentation Software documentation for the GormWrapperLoader class GormCore/GormWrapperLoader.h GormWrapperLoader Description forthcoming. Description forthcoming. fileType Description forthcoming. saveSCMDirectory: fileWrappers Description forthcoming. Software documentation for the GormWrapperLoaderFactory class GormCore/GormWrapperLoader.h Description forthcoming. registerWrapperLoaderClass: aClass Description forthcoming. sharedWrapperLoaderFactory Description forthcoming. wrapperLoaderForType: type Description forthcoming. Software documentation for the GormWrapperLoader protocol GormCore/GormWrapperLoader.h Description forthcoming. loadFileWrapper: wrapper withDocument: document Description forthcoming. gorm-1.2.24/Documentation/GormCore/GormSetNameController.gsdoc0000644000000000000000000000412013426745046023046 0ustar rootroot GormSetNameController class documentation Software documentation for the GormSetNameController class GormCore/GormSetNameController.h Description forthcoming. Description forthcoming. Description forthcoming. Description forthcoming. Description forthcoming. cancelHit: sender Description forthcoming. okHit: sender Description forthcoming. runAsModal Description forthcoming. textField Description forthcoming. gorm-1.2.24/Documentation/GormCore/GormFilePrefsManager.gsdoc0000644000000000000000000001531413426745045022626 0ustar rootroot GormFilePrefsManager Sets the information about the.gorm file's version. This allows a file to be saved as an older version of the.gorm format so that older releases can still use.gorm files created by people who have the latest GNUstep and Gorm version. 2003 Free Software Foundation, Inc. Software documentation for the GormFilePrefsManager class GormCore/GormFilePrefsManager.h NSCoding Description forthcoming. Description forthcoming. Description forthcoming. Description forthcoming. Description forthcoming. Description forthcoming. Description forthcoming. Description forthcoming. Description forthcoming. Description forthcoming. Description forthcoming. Description forthcoming. Description forthcoming. currentVersion The current Gorm version. archiveTypeName Which achive type, by name. data Saves the encoded file info. fileTypeName return file type. isLatest Are we set to the latest version? Returns YES, if so. loadFromData: data Loads the encoded file info. loadFromFile: path Loads the encoded file info. loadProfile: profileName Loads the profile. nibDataWithOpenItems: openItems Saves the encoded file info. restoreClassVersions Restores the versions to the most current. saveToFile: path Saves the encoded file info. selectArchiveType: sender Action called when the archive type pulldown is selected. selectTargetVersion: sender Action called when the target version pulldown is selected. setClassVersions Sets the version of the classes. setFileTypeName: ft File type name... showIncompatibilities: sender Show incompatibilities in the panel. targetVersionName Which version of the gui library, by name. version Gorm Version of the current archive. versionOfClass: className Returns the version of the class in the current profile. gorm-1.2.24/Documentation/GormCore/GormViewKnobs.html0000644000000000000000000000431313426745046021226 0ustar rootroot GormViewKnobs documentation

GormViewKnobs documentation

Authors

Generated by heron

GormViewKnobs functions

GormDrawKnobsForRect

void GormDrawKnobsForRect(NSRect aRect);
Description forthcoming.

GormDrawOpenKnobsForRect

void GormDrawOpenKnobsForRect(NSRect aRect);
Description forthcoming.

GormExtBoundsForRect

NSRect GormExtBoundsForRect(NSRect aRect);
Description forthcoming.

GormKnobHitInRect

IBKnobPosition GormKnobHitInRect(NSRect aFrame, NSPoint p);
Description forthcoming.

GormShowFastKnobFills

void GormShowFastKnobFills();
Description forthcoming.

GormShowFrameWithKnob

void GormShowFrameWithKnob(NSRect aRect, IBKnobPosition aKnob);
Description forthcoming.


gorm-1.2.24/Documentation/GormCore/GormSoundView.gsdoc0000644000000000000000000000306213426745046021375 0ustar rootroot GormSoundView greg_casamento@yahoo.com 2004 Free Software Foundation, Inc. Software documentation for the GormSoundView class GormCore/GormSoundView.h Description forthcoming. Warning the underscore at the start of the name of this instance variable indicates that, even though it is not technically private, it is intended for internal use within the package, and you should not use the variable in other code. setSound: sound Description forthcoming. sound Description forthcoming. gorm-1.2.24/Documentation/GormCore/GormCustomView.gsdoc0000644000000000000000000000226313426745045021560 0ustar rootroot GormCustomView class documentation Software documentation for the GormCustomView class GormCore/GormCustomView.h Description forthcoming. Description forthcoming. className Description forthcoming. setClassName: aName Description forthcoming. gorm-1.2.24/Documentation/GormCore/GormClassManager.gsdoc0000644000000000000000000004533113426745045022016 0ustar rootroot GormClassManager class documentation Software documentation for the GormClassManager class GormCore/GormClassManager.h Description forthcoming. Description forthcoming. Description forthcoming. Description forthcoming. Description forthcoming. Description forthcoming. actionExists: action onClassNamed: className Description forthcoming. addAction: action forClassNamed: className Description forthcoming. addAction: anAction forObject: anObject Description forthcoming. addActions: actions forClassNamed: className Description forthcoming. addClassNamed: className withSuperClassNamed: superClassName withActions: actions withOutlets: outlets Description forthcoming. addClassNamed: className withSuperClassNamed: superClassName withActions: actions withOutlets: outlets isCustom: isCustom Description forthcoming. addClassWithSuperClassName: name Description forthcoming. addNewActionToClassNamed: name Description forthcoming. addNewOutletToClassNamed: name Description forthcoming. addOutlet: outlet forClassNamed: className Description forthcoming. addOutlet: outlet forObject: anObject Description forthcoming. addOutlets: outlets forClassNamed: className Description forthcoming. allActionsForClassNamed: className Description forthcoming. allActionsForObject: obj Description forthcoming. allClassNames Description forthcoming. allCustomClassNames Description forthcoming. allCustomSubclassesOf: superClass Description forthcoming. allOutletsForClassNamed: className Description forthcoming. allOutletsForObject: obj Description forthcoming. allSubclassesOf: superClass Description forthcoming. allSuperClassesOf: className Description forthcoming. canInstantiateClassNamed: className Description forthcoming. classNameForObject: object Description forthcoming. customClassForName: name Description forthcoming. customClassForObject: object Description forthcoming. customClassMap Description forthcoming. customSubClassesOf: superclass Description forthcoming. data Description forthcoming. dictionaryForClassNamed: className Description forthcoming. extraActionsForObject: anObject Description forthcoming. extraOutletsForObject: anObject Description forthcoming. findClassByName: name Description forthcoming. initWithDocument: aDocument Description forthcoming. isAction: name ofClass: className Description forthcoming. isAction: actionName onCategoryForClassNamed: className Description forthcoming. isCategoryForClass: className Description forthcoming. isCustomClass: className Description forthcoming. isCustomClassMapEmpty Description forthcoming. isKnownClass: className Description forthcoming. isNonCustomClass: className Description forthcoming. isOutlet: name ofClass: className Description forthcoming. isRootClass: className Description forthcoming. isSuperclass: superclass linkedToClass: subclass Description forthcoming. loadCustomClasses: path Description forthcoming. loadCustomClassesWithData: data Description forthcoming. loadCustomClassesWithDict: dict Description forthcoming. loadFromFile: path Description forthcoming. loadNibFormatCustomClassesWithData: data Description forthcoming. loadNibFormatCustomClassesWithDict: dict Description forthcoming. makeSourceAndHeaderFilesForClass: className withName: sourcePath and: headerPath Description forthcoming. nibData Description forthcoming. nonCustomSuperClassOf: className Description forthcoming. outletExists: outlet onClassNamed: className Description forthcoming. parentOfClass: aClass Description forthcoming. parseHeader: headerPath Description forthcoming. removeAction: anAction forObject: anObject Description forthcoming. removeAction: anAction fromClassNamed: className Description forthcoming. removeClassNamed: className Description forthcoming. removeCustomClassForName: name Description forthcoming. removeOutlet: anOutlet forObject: anObject Description forthcoming. removeOutlet: anOutlet fromClassNamed: className Description forthcoming. renameClassNamed: oldName newName: newName Description forthcoming. replaceAction: oldAction withAction: aNewAction forClassNamed: className Description forthcoming. replaceOutlet: oldOutlet withOutlet: aNewOutlet forClassNamed: className Description forthcoming. saveToFile: path Description forthcoming. setCustomClass: className forName: name Description forthcoming. setCustomClassMap: dict Description forthcoming. setSuperClassNamed: superclass forClassNamed: subclass Description forthcoming. subClassesOf: superclass Description forthcoming. superClassNameForClassNamed: className Description forthcoming. uniqueClassNameFrom: name Description forthcoming. gorm-1.2.24/Documentation/GormCore/GormWindowTemplate.html0000644000000000000000000000650713426745046022271 0ustar rootroot GormWindowTemplate class documentation

GormWindowTemplate class documentation

Authors

Generated by heron

Software documentation for the GormWindowTemplate class

GormWindowTemplate : NSWindowTemplate

Declared in:
GormCore/GormWindowTemplate.h
Description forthcoming.

Instance Variables



Instance Variables for GormWindowTemplate Class

_tempFlag

@protected BOOL _tempFlag;
Warning the underscore at the start of the name of this instance variable indicates that, even though it is not technically private, it is intended for internal use within the package, and you should not use the variable in other code.




Software documentation for the NSWindowTemplate(Private) category

NSWindowTemplate(Private)

Declared in:
GormCore/GormWindowTemplate.h
Warning this category is private, which means that the methods are for internal use by the package. You should not use them in external code.
Method summary

setBaseWindowClass: 

- (void) setBaseWindowClass: (Class)clz;
Description forthcoming.


gorm-1.2.24/Documentation/GormCore/GormViewEditor.gsdoc0000644000000000000000000001650413426745046021540 0ustar rootroot GormViewEditor class documentation Software documentation for the GormViewEditor class GormCore/GormViewEditor.h IBEditors Description forthcoming. Warning the underscore at the start of the name of this instance variable indicates that, even though it is not technically private, it is intended for internal use within the package, and you should not use the variable in other code. Description forthcoming. Description forthcoming. Description forthcoming. Description forthcoming. Description forthcoming. activate Description forthcoming. canBeOpened Description forthcoming. close Description forthcoming. deactivate Description forthcoming. detachSubviews Description forthcoming. document Description forthcoming. editedObject Description forthcoming. frameDidChange: sender Description forthcoming. initWithObject: anObject inDocument: aDocument Description forthcoming. isOpened Description forthcoming. makeSelectionVisible: value Description forthcoming. parent Description forthcoming. postDraw: rect Description forthcoming. selection Description forthcoming. setOpened: value Description forthcoming. Software documentation for the GormViewEditor(EditingAdditions) category GormCore/GormViewEditor.h Description forthcoming. editTextField: view withEvent: theEvent Description forthcoming. Software documentation for the GormViewEditor(IntelligentPlacement) category GormCore/GormViewEditor.h Description forthcoming. initializeResizingInFrame: view withKnob: knob Description forthcoming. updateResizingWithFrame: frame andEvent: theEvent andPlacementInfo: gpi Description forthcoming. validateFrame: frame withEvent: theEvent andPlacementInfo: gpi Description forthcoming. Software documentation for the GormViewEditor(WindowAndRect) category GormCore/GormViewEditor.h Description forthcoming. windowAndRect: prect forObject: object Description forthcoming. gorm-1.2.24/Documentation/GormCore/GormObjectInspector.html0000644000000000000000000001260713426745046022421 0ustar rootroot GormObjectInspector class documentation

GormObjectInspector class documentation

Authors

Generated by heron

Software documentation for the GormObjectInspector class

GormObjectInspector : IBInspector

Declared in:
GormCore/GormObjectInspector.h
Description forthcoming.

Instance Variables

Method summary

update: 

- (void) update: (id)sender;
Description forthcoming.



Instance Variables for GormObjectInspector Class

browser

@protected NSBrowser* browser;
Description forthcoming.

gets

@protected NSMutableDictionary* gets;
Description forthcoming.

isString

@protected BOOL isString;
Description forthcoming.

label

@protected NSButton* label;
Description forthcoming.

sets

@protected NSMutableArray* sets;
Description forthcoming.

types

@protected NSMutableDictionary* types;
Description forthcoming.

value

@protected NSTextField* value;
Description forthcoming.




GormObjectInspector variables

typeChar

NSString* typeChar;
Description forthcoming.

typeDouble

NSString* typeDouble;
Description forthcoming.

typeFloat

NSString* typeFloat;
Description forthcoming.

typeId

NSString* typeId;
Description forthcoming.

typeInt

NSString* typeInt;
Description forthcoming.

typeUChar

NSString* typeUChar;
Description forthcoming.

typeUInt

NSString* typeUInt;
Description forthcoming.


gorm-1.2.24/Documentation/GormCore/GormClassPanelController.gsdoc0000644000000000000000000000504613426745045023546 0ustar rootroot GormClassPanelController class documentation Software documentation for the GormClassPanelController class GormCore/GormClassPanelController.h Description forthcoming. Description forthcoming. Description forthcoming. Description forthcoming. Description forthcoming. Description forthcoming. Description forthcoming. browserAction: sender Description forthcoming. initWithTitle: title classList: classes Description forthcoming. okButton: sender Description forthcoming. runModal Description forthcoming. gorm-1.2.24/Documentation/GormCore/GormFilePrefsManager.html0000644000000000000000000003212113426745046022467 0ustar rootroot GormFilePrefsManager

GormFilePrefsManager

Authors

Gregory John Casamento
Sets the information about the.gorm file's version. This allows a file to be saved as an older version of the.gorm format so that older releases can still use.gorm files created by people who have the latest GNUstep and Gorm version.

Copyright: (C) 2003 Free Software Foundation, Inc.

Software documentation for the GormFilePrefsManager class

GormFilePrefsManager : NSObject

Declared in:
GormCore/GormFilePrefsManager.h
Conforms to:
NSCoding
Description forthcoming.

Instance Variables

Method summary

currentVersion 

+ (int) currentVersion;
The current Gorm version.

archiveTypeName 

- (NSString*) archiveTypeName;
Which achive type, by name.

data 

- (NSData*) data;
Saves the encoded file info.

fileTypeName 

- (NSString*) fileTypeName;
return file type.

isLatest 

- (BOOL) isLatest;
Are we set to the latest version? Returns YES, if so.

loadFromData: 

- (BOOL) loadFromData: (NSData*)data;
Loads the encoded file info.

loadFromFile: 

- (BOOL) loadFromFile: (NSString*)path;
Loads the encoded file info.

loadProfile: 

- (void) loadProfile: (NSString*)profileName;
Loads the profile.

nibDataWithOpenItems: 

- (NSData*) nibDataWithOpenItems: (NSArray*)openItems;
Saves the encoded file info.

restoreClassVersions 

- (void) restoreClassVersions;
Restores the versions to the most current.

saveToFile: 

- (BOOL) saveToFile: (NSString*)path;
Saves the encoded file info.

selectArchiveType: 

- (void) selectArchiveType: (id)sender;
Action called when the archive type pulldown is selected.

selectTargetVersion: 

- (void) selectTargetVersion: (id)sender;
Action called when the target version pulldown is selected.

setClassVersions 

- (void) setClassVersions;
Sets the version of the classes.

setFileTypeName: 

- (void) setFileTypeName: (NSString*)ft;
File type name...

showIncompatibilities: 

- (void) showIncompatibilities: (id)sender;
Show incompatibilities in the panel.

targetVersionName 

- (NSString*) targetVersionName;
Which version of the gui library, by name.

version 

- (int) version;
Gorm Version of the current archive.

versionOfClass: 

- (int) versionOfClass: (NSString*)className;
Returns the version of the class in the current profile.



Instance Variables for GormFilePrefsManager Class

archiveType

@protected id archiveType;
Description forthcoming.

archiveTypeName

@protected NSString* archiveTypeName;
Description forthcoming.

currentProfile

@protected NSDictionary* currentProfile;
Description forthcoming.

fileType

@protected id fileType;
Description forthcoming.

gormAppVersion

@protected id gormAppVersion;
Description forthcoming.

itable

@protected id itable;
Description forthcoming.

iwindow

@protected id iwindow;
Description forthcoming.

showIncompatibilities

@protected id showIncompatibilities;
Description forthcoming.

targetVersion

@protected id targetVersion;
Description forthcoming.

targetVersionName

@protected NSString* targetVersionName;
Description forthcoming.

version

@protected NSInteger version;
Description forthcoming.

versionProfiles

@protected NSDictionary* versionProfiles;
Description forthcoming.





gorm-1.2.24/Documentation/GormCore/GormWrapperLoader.html0000644000000000000000000001452713426745046022076 0ustar rootroot GormWrapperLoader documentation

GormWrapperLoader documentation

Authors

Generated by heron

Software documentation for the GormWrapperLoader class

GormWrapperLoader : NSObject

Declared in:
GormCore/GormWrapperLoader.h
Conforms to:
GormWrapperLoader
Description forthcoming.

Instance Variables

Method summary

fileType 

+ (NSString*) fileType;
Description forthcoming.

saveSCMDirectory: 

- (void) saveSCMDirectory: (NSDictionary*)fileWrappers;
Description forthcoming.



Instance Variables for GormWrapperLoader Class

document

@protected GormDocument* document;
Description forthcoming.




Software documentation for the GormWrapperLoaderFactory class

GormWrapperLoaderFactory : NSObject

Declared in:
GormCore/GormWrapperLoader.h
Description forthcoming.
Method summary

registerWrapperLoaderClass: 

+ (void) registerWrapperLoaderClass: (Class)aClass;
Description forthcoming.

sharedWrapperLoaderFactory 

+ (GormWrapperLoaderFactory*) sharedWrapperLoaderFactory;
Description forthcoming.

wrapperLoaderForType: 

- (id<GormWrapperLoader>) wrapperLoaderForType: (NSString*)type;
Description forthcoming.

Software documentation for the GormWrapperLoader protocol

GormWrapperLoader

Declared in:
GormCore/GormWrapperLoader.h
Description forthcoming.
Method summary

loadFileWrapper: withDocument: 

- (BOOL) loadFileWrapper: (NSFileWrapper*)wrapper withDocument: (GormDocument*)document;
Description forthcoming.


gorm-1.2.24/Documentation/GormCore/GormPluginManager.gsdoc0000644000000000000000000000341513426745046022205 0ustar rootroot GormPluginManager class documentation Software documentation for the GormPluginManager class GormCore/GormPluginManager.h Description forthcoming. Description forthcoming. Description forthcoming. Description forthcoming. Description forthcoming. loadPlugin: path Description forthcoming. openPlugin: sender Description forthcoming. gorm-1.2.24/Documentation/GormCore/GormNSSplitViewInspector.gsdoc0000644000000000000000000000156513426745045023535 0ustar rootroot GormNSSplitViewInspector class documentation Software documentation for the GormNSSplitViewInspector class GormCore/GormNSSplitViewInspector.h Description forthcoming. Description forthcoming. gorm-1.2.24/Documentation/GormCore/GormBoxEditor.html0000644000000000000000000000417613426745046021225 0ustar rootroot GormBoxEditor class documentation

GormBoxEditor class documentation

Authors

Generated by heron

Software documentation for the GormBoxEditor class

GormBoxEditor : GormViewWithSubviewsEditor

Declared in:
GormCore/GormBoxEditor.h
Description forthcoming.

Instance Variables

Method summary

destroyAndListSubviews 

- (NSArray*) destroyAndListSubviews;
Description forthcoming.



Instance Variables for GormBoxEditor Class

contentViewEditor

@protected GormInternalViewEditor* contentViewEditor;
Description forthcoming.





gorm-1.2.24/Documentation/GormCore/GormSplitViewEditor.html0000644000000000000000000000320113426745046022407 0ustar rootroot GormSplitViewEditor class documentation

GormSplitViewEditor class documentation

Authors

Generated by heron

Software documentation for the GormSplitViewEditor class

GormSplitViewEditor : GormViewWithSubviewsEditor

Declared in:
GormCore/GormSplitViewEditor.h
Description forthcoming.
Method summary

destroyAndListSubviews 

- (NSArray*) destroyAndListSubviews;
Description forthcoming.


gorm-1.2.24/Documentation/GormCore/NSFontManager+GormExtensions.gsdoc0000644000000000000000000000214213426745046024245 0ustar rootroot NSFontManager+GormExtensions documentation Software documentation for the NSFontManager(GormExtensions) category GormCore/NSFontManager+GormExtensions.h Description forthcoming. sendAction Override for sendAction in NSFontManager. This method calls the action on the last edited object if the attempt to send the action to the first responder is unsuccessful. This allows the font to be more easily set. gorm-1.2.24/Documentation/GormCore/GormClassInspector.html0000644000000000000000000002737513426745046022270 0ustar rootroot GormClassInspector

GormClassInspector

Authors

Gregory John Casamento (greg_casamento@yahoo.com)
allow user to select custom classes

Copyright: (C) 2002 Free Software Foundation, Inc.

Software documentation for the GormClassInspector class

GormClassInspector : IBInspector

Declared in:
GormCore/GormClassInspector.h
Description forthcoming.

Instance Variables

Method summary

_currentClass 

- (NSString*) _currentClass;
Warning the underscore at the start of the name of this method indicates that it is private, for internal use only, and you should not use the method in your code.

_refreshView 

- (void) _refreshView;
Warning the underscore at the start of the name of this method indicates that it is private, for internal use only, and you should not use the method in your code.

addAction: 

- (void) addAction: (id)sender;
Description forthcoming.

addOutlet: 

- (void) addOutlet: (id)sender;
Description forthcoming.

changeClassName: 

- (void) changeClassName: (id)sender;
Description forthcoming.

handleNotification: 

- (void) handleNotification: (NSNotification*)notification;
Description forthcoming.

removeAction: 

- (void) removeAction: (id)sender;
Description forthcoming.

removeOutlet: 

- (void) removeOutlet: (id)sender;
Description forthcoming.

searchForClass: 

- (void) searchForClass: (id)sender;
Description forthcoming.

select: 

- (void) select: (id)sender;
Description forthcoming.

selectAction: 

- (void) selectAction: (id)sender;
Description forthcoming.

selectClass: 

- (void) selectClass: (id)sender;
Description forthcoming.

selectOutlet: 

- (void) selectOutlet: (id)sender;
Description forthcoming.



Instance Variables for GormClassInspector Class

actionData

@protected id actionData;
Description forthcoming.

actionTable

@protected id actionTable;
Description forthcoming.

addAction

@protected id addAction;
Description forthcoming.

addOutlet

@protected id addOutlet;
Description forthcoming.

classField

@protected id classField;
Description forthcoming.

classManager

@protected GormClassManager* classManager;
Description forthcoming.

currentClass

@protected NSString* currentClass;
Description forthcoming.

outletData

@protected id outletData;
Description forthcoming.

outletTable

@protected id outletTable;
Description forthcoming.

parentClass

@protected id parentClass;
Description forthcoming.

parentClassData

@protected id parentClassData;
Description forthcoming.

removeAction

@protected id removeAction;
Description forthcoming.

removeOutlet

@protected id removeOutlet;
Description forthcoming.

search

@protected id search;
Description forthcoming.

searchText

@protected id searchText;
Description forthcoming.

selectClass

@protected id selectClass;
Description forthcoming.

tabView

@protected id tabView;
Description forthcoming.

theobject

@protected id theobject;
Description forthcoming.





gorm-1.2.24/Documentation/GormCore/GormResourceManager.gsdoc0000644000000000000000000000126613426745046022540 0ustar rootroot GormResourceManager class documentation Software documentation for the GormResourceManager class GormCore/GormResourceManager.h Description forthcoming. gorm-1.2.24/Documentation/GormCore/GormImage.html0000644000000000000000000001460713426745046020350 0ustar rootroot GormImage

GormImage

Authors

Gregory John Casamento (greg_casamento@yahoo.com)
This class is a placeholder for a real image.

Copyright: (C) 2001 Free Software Foundation, Inc.

Software documentation for the GormImage class

GormImage : GormResource

Declared in:
GormCore/GormImage.h
Description forthcoming.

Instance Variables

Method summary

imageForData: withFileName: inWrapper: 

+ (GormImage*) imageForData: (NSData*)aData withFileName: (NSString*)aName inWrapper: (BOOL)flag;
Initialize with image data. Mark it as in the wrapper depending on the value of flag.

imageForPath: 

+ (GormImage*) imageForPath: (NSString*)aPath;
Initialize with image data located at path.

imageForPath: inWrapper: 

+ (GormImage*) imageForPath: (NSString*)aPath inWrapper: (BOOL)flag;
Initialize with image data located at path. Mark it as in the wrapper depending on the value of flag.

image 

- (NSImage*) image;
A thumbnail of the image.

normalImage 

- (NSImage*) normalImage;
The full sized image.



Instance Variables for GormImage Class

image

@protected NSImage* image;
Description forthcoming.

smallImage

@protected NSImage* smallImage;
Description forthcoming.




Software documentation for the NSImage(GormNSImageAddition) category

NSImage(GormNSImageAddition)

Declared in:
GormCore/GormImage.h
Description forthcoming.
Method summary

archiveByName 

- (BOOL) archiveByName;
Returns YES, if the image should be archived by name only, NO otherwise.

setArchiveByName: 

- (void) setArchiveByName: (BOOL)archiveByName;
Set to YES, if the image should be archived by name only, NO otherwise.


gorm-1.2.24/Documentation/Examples/0000755000000000000000000000000013410616261015631 5ustar rootrootgorm-1.2.24/Documentation/Examples/Controller/0000755000000000000000000000000013410616261017754 5ustar rootrootgorm-1.2.24/Documentation/Examples/Controller/MyController.m0000644000000000000000000000053413410616261022565 0ustar rootroot/* All Rights reserved */ #include #include "MyController.h" @implementation MyController - (void) buttonPressed: (id)sender { [value setStringValue: @"Hello"]; } - (void) openWindow: (id) sender { winController = [[WinController alloc] init]; } - (void) dealloc { [super dealloc]; RELEASE(winController); } @end gorm-1.2.24/Documentation/Examples/Controller/MyController.h0000644000000000000000000000031613410616261022556 0ustar rootroot/* All Rights reserved */ #include #include "WinController.h" @interface MyController : NSObject { id value; WinController *winController; } - (void) buttonPressed: (id)sender; @end gorm-1.2.24/Documentation/Examples/Controller/WinController.h0000644000000000000000000000016113410616261022724 0ustar rootroot/* All Rights reserved */ #include @interface WinController : NSObject { id window; } @end gorm-1.2.24/Documentation/Examples/Controller/main.m0000644000000000000000000000025413410616261021057 0ustar rootroot#include #define APP_NAME @"GNUstep" /* * Initialise and go! */ int main(int argc, const char *argv[]) { return NSApplicationMain (argc, argv); } gorm-1.2.24/Documentation/Examples/Controller/WinController.m0000644000000000000000000000074613410616261022742 0ustar rootroot/* All Rights reserved */ #include #include "WinController.h" @implementation WinController - (id) init { if((self = [super init]) != nil) { if([NSBundle loadNibNamed: @"Controller" owner: self] == NO) { NSLog(@"Problem loading interface"); return nil; } [window makeKeyAndOrderFront: self]; } return self; } - (void) closeWindow: (id) sender { [window close]; } - (void) dealloc { [super dealloc]; RELEASE(window); } @end gorm-1.2.24/Documentation/Examples/Controller/GNUmakefile0000644000000000000000000000145413410616261022032 0ustar rootroot# # GNUmakefile # # # Put all of your customisations in GNUmakefile.preamble and # GNUmakefile.postamble # include $(GNUSTEP_MAKEFILES)/common.make # # Main application # PACKAGE_NAME=Controller APP_NAME=Controller Controller_MAIN_MODEL_FILE=MainMenu.gorm # # Additional libraries # ADDITIONAL_GUI_LIBS += # # Resource files # Controller_RESOURCE_FILES= \ MainMenu.gorm \ Controller.gorm # # Header files # Controller_HEADERS= \ MyController.h \ WinController.h # # Class files # Controller_OBJC_FILES= \ main.m \ MyController.m \ WinController.m # # C files # Controller_C_FILES= # # Subprojects # SUBPROJECTS = -include GNUmakefile.preamble -include GNUmakefile.local include $(GNUSTEP_MAKEFILES)/aggregate.make include $(GNUSTEP_MAKEFILES)/application.make -include GNUmakefile.postamble gorm-1.2.24/Documentation/Examples/Controller/MainMenu.gorm/0000755000000000000000000000000013410616261022430 5ustar rootrootgorm-1.2.24/Documentation/Examples/Controller/MainMenu.gorm/objects.gorm0000644000000000000000000000536113410616261024754 0ustar rootrootGNUstep archive00002af8:0000001e:00000054:00000000:01GSNibContainer1NSObject01NSMutableDictionary1 NSDictionary& 01NSString&%NSOwner0±& % NSApplication0±&%GSCustomClassMap0±&0±& % MyController01 GSNibItem°  &0 ±& % NSVisible0 1NSMutableArray1NSArray&0 1 NSWindow1 NSResponder% ?€ A D CÈ&% C\ D‰€0 1 NSView% ?€ A D CÈ  D CÈ&0 ±&01 NSButton1 NSControl% C… C B` AÀ  B` AÀ&0±&%01 NSButtonCell1 NSActionCell1NSCell0±&%Button01NSFont%&&&&&&&&%’0±&0±&&&&01 NSTextField% C… CW B` A¨  B` A¨&0±&%01NSTextFieldCell0±&%Text°&&&&&&&&0%’01NSColor0±&%NSNamedColorSpace0±&%System0±&%textBackgroundColor0±°°0±& % textColor’0±°0 ±&%System0!±&%windowBackgroundColor0"±&%Window0#±& % My Window°# @@ B F@ F@%0$1NSImage0%±&%NSApplicationIcon0&±& % My Window° 0'±& % TextField°0(±&%Button°0)±&%MenuItem0*1 NSMenuItem0+±&%Hide0,±&%h&&ÿ%0-±0.1NSMutableString&% common_2DCheckMark0/±00±& %  common_2DDash’%01±& %  MenuItem102±03±&%Quit04±&%q&&ÿ%°-°/’%05±&%NSMenu061NSMenu07±& % Main Menu08±&09±0:±&%Open0;±&&&ÿ%°-°/’%°*°20<±& %  MenuItem2°90=±&0>1NSNibConnector°&0?±&%NSOwner0@±°5°?0A±°)°50B1NSNibControlConnector°)0C±&%NSFirst0D±&%hide:0E±°1°50F±°1°C0G±& % terminate:0H±°°?0I1NSNibOutletConnector°?°0J±&% delegate0K±°(0L±°'0M±°°'0N±&%value0O±°(°0P±&% buttonPressed:0Q±°<°50R±°<°C0S±& %  openWindow:0T1 GSMutableSet1 NSMutableSet1NSSet&°°6° gorm-1.2.24/Documentation/Examples/Controller/MainMenu.gorm/data.classes0000644000000000000000000000673713410616261024735 0ustar rootroot{ FirstResponder = { Actions = ( "activateContextHelpMode:", "alignCenter:", "alignJustified:", "alignLeft:", "alignRight:", "arrangeInFront:", "cancel:", "capitalizeWord:", "changeColor:", "checkSpelling:", "close:", "complete:", "copy:", "copyFont:", "copyRuler:", "cut:", "delete:", "deleteBackward:", "deleteForward:", "deleteToBeginningOfLine:", "deleteToBeginningOfParagraph:", "deleteToEndOfLine:", "deleteToEndOfParagraph:", "deleteToMark:", "deleteWordBackward:", "deleteWordForward:", "deminiaturize:", "deselectAll:", "fax:", "hide:", "hideOtherApplications:", "indent:", "loosenKerning:", "lowerBaseline:", "lowercaseWord:", "makeKeyAndOrderFront:", "miniaturize:", "miniaturizeAll:", "moveBackward:", "moveBackwardAndModifySelection:", "moveDown:", "moveDownAndModifySelection:", "moveForward:", "moveForwardAndModifySelection:", "moveLeft:", "moveRight:", "moveToBeginningOfDocument:", "moveToBeginningOfLine:", "moveToBeginningOfParagraph:", "moveToEndOfDocument:", "moveToEndOfLine:", "moveToEndOfParagraph:", "moveUp:", "moveUpAndModifySelection:", "moveWordBackward:", "moveWordBackwardAndModifySelection:", "moveWordForward:", "moveWordForwardAndModifySelection:", "newDocument:", "ok:", "open:", "openDocument:", "orderBack:", "orderFront:", "orderFrontColorPanel:", "orderFrontDataLinkPanel:", "orderFrontHelpPanel:", "orderFrontStandardAboutPanel:", "orderFrontStandardInfoPanel:", "orderOut:", "pageDown:", "pageUp:", "paste:", "pasteAsPlainText:", "pasteAsRichText:", "pasteFont:", "pasteRuler:", "performClose:", "performMiniaturize:", "performZoom:", "print:", "raiseBaseline:", "redo:", "revertDocumentToSaved:", "runPageLayout:", "runToolbarCustomizationPalette:", "saveAllDocuments:", "saveDocument:", "saveDocumentAs:", "saveDocumentTo:", "scrollLineDown:", "scrollLineUp:", "scrollPageDown:", "scrollPageUp:", "scrollViaScroller:", "selectAll:", "selectLine:", "selectNextKeyView:", "selectParagraph:", "selectPreviousKeyView:", "selectText:", "selectToMark:", "selectWord:", "showContextHelp:", "showGuessPanel:", "showHelp:", "showWindow:", "stop:", "subscript:", "superscript:", "swapWithMark:", "takeDoubleValueFrom:", "takeFloatValueFrom:", "takeIntValueFrom:", "takeObjectValueFrom:", "takeStringValueFrom:", "terminate:", "tightenKerning:", "toggle:", "toggleContinuousSpellChecking:", "toggleRuler:", "toggleToolbarShown:", "toggleTraditionalCharacterShape:", "transpose:", "transposeWords:", "turnOffKerning:", "turnOffLigatures:", "underline:", "undo:", "unhide:", "unhideAllApplications:", "unscript:", "uppercaseWord:", "useAllLigatures:", "useStandardKerning:", "useStandardLigatures:", "yank:", "zoom:", "buttonPressed:", "openWindow:" ); Super = NSObject; }; MyController = { Actions = ( "buttonPressed:", "openWindow:" ); Outlets = ( value ); Super = NSObject; }; }gorm-1.2.24/Documentation/Examples/Controller/MainMenu.gorm/data.info0000644000000000000000000000027013410616261024215 0ustar rootrootGNUstep archive00002af8:00000003:00000003:00000000:01GormFilePrefsManager1NSObject%01NSString&%Latest Version0±& % Typed Streamgorm-1.2.24/Documentation/Examples/Controller/Controller.gorm/0000755000000000000000000000000013410616261023042 5ustar rootrootgorm-1.2.24/Documentation/Examples/Controller/Controller.gorm/objects.gorm0000644000000000000000000000273713410616261025372 0ustar rootrootGNUstep archive00002af8:00000018:00000025:00000000:01GSNibContainer1NSObject01NSMutableDictionary1 NSDictionary&01NSString&%NSOwner0±& % WinController0±&%GSCustomClassMap0±&0±&%Button01NSButton1 NSControl1NSView1 NSResponder% C B” C5 BÔ  C5 BÔ&0 1 NSMutableArray1 NSArray&%0 1 NSButtonCell1 NSActionCell1NSCell0 ±&%Close0 1NSFont%&&&&&&&&%’0 ±&0±&&&&0±& % GormNSWindow01NSWindow% ?€ A Cù C†&% Cç€ D>@0±% ?€ A Cù C†  Cù C†&0± &°01NSColor0±&%NSNamedColorSpace0±&%System0±&%windowBackgroundColor0±&%Window0±&%Window0±&%Window @@ B F@ F@%01NSImage0±&%NSApplicationIcon0± &01NSNibConnector°0±&%NSOwner01NSNibOutletConnector°°0 ±&%window0!±0"±&%Button0#1NSNibControlConnector°"°0$±& %  closeWindow:0%1 GSMutableSet1 NSMutableSet1NSSet&°gorm-1.2.24/Documentation/Examples/Controller/Controller.gorm/data.classes0000644000000000000000000000666513410616261025347 0ustar rootroot{ FirstResponder = { Actions = ( "activateContextHelpMode:", "alignCenter:", "alignJustified:", "alignLeft:", "alignRight:", "arrangeInFront:", "cancel:", "capitalizeWord:", "changeColor:", "checkSpelling:", "close:", "complete:", "copy:", "copyFont:", "copyRuler:", "cut:", "delete:", "deleteBackward:", "deleteForward:", "deleteToBeginningOfLine:", "deleteToBeginningOfParagraph:", "deleteToEndOfLine:", "deleteToEndOfParagraph:", "deleteToMark:", "deleteWordBackward:", "deleteWordForward:", "deminiaturize:", "deselectAll:", "fax:", "hide:", "hideOtherApplications:", "indent:", "loosenKerning:", "lowerBaseline:", "lowercaseWord:", "makeKeyAndOrderFront:", "miniaturize:", "miniaturizeAll:", "moveBackward:", "moveBackwardAndModifySelection:", "moveDown:", "moveDownAndModifySelection:", "moveForward:", "moveForwardAndModifySelection:", "moveLeft:", "moveRight:", "moveToBeginningOfDocument:", "moveToBeginningOfLine:", "moveToBeginningOfParagraph:", "moveToEndOfDocument:", "moveToEndOfLine:", "moveToEndOfParagraph:", "moveUp:", "moveUpAndModifySelection:", "moveWordBackward:", "moveWordBackwardAndModifySelection:", "moveWordForward:", "moveWordForwardAndModifySelection:", "newDocument:", "ok:", "open:", "openDocument:", "orderBack:", "orderFront:", "orderFrontColorPanel:", "orderFrontDataLinkPanel:", "orderFrontHelpPanel:", "orderFrontStandardAboutPanel:", "orderFrontStandardInfoPanel:", "orderOut:", "pageDown:", "pageUp:", "paste:", "pasteAsPlainText:", "pasteAsRichText:", "pasteFont:", "pasteRuler:", "performClose:", "performMiniaturize:", "performZoom:", "print:", "raiseBaseline:", "redo:", "revertDocumentToSaved:", "runPageLayout:", "runToolbarCustomizationPalette:", "saveAllDocuments:", "saveDocument:", "saveDocumentAs:", "saveDocumentTo:", "scrollLineDown:", "scrollLineUp:", "scrollPageDown:", "scrollPageUp:", "scrollViaScroller:", "selectAll:", "selectLine:", "selectNextKeyView:", "selectParagraph:", "selectPreviousKeyView:", "selectText:", "selectToMark:", "selectWord:", "showContextHelp:", "showGuessPanel:", "showHelp:", "showWindow:", "stop:", "subscript:", "superscript:", "swapWithMark:", "takeDoubleValueFrom:", "takeFloatValueFrom:", "takeIntValueFrom:", "takeObjectValueFrom:", "takeStringValueFrom:", "terminate:", "tightenKerning:", "toggle:", "toggleContinuousSpellChecking:", "toggleRuler:", "toggleToolbarShown:", "toggleTraditionalCharacterShape:", "transpose:", "transposeWords:", "turnOffKerning:", "turnOffLigatures:", "underline:", "undo:", "unhide:", "unhideAllApplications:", "unscript:", "uppercaseWord:", "useAllLigatures:", "useStandardKerning:", "useStandardLigatures:", "yank:", "zoom:", "closeWindow:" ); Super = NSObject; }; WinController = { Actions = ( "closeWindow:" ); Outlets = ( window ); Super = NSObject; }; }gorm-1.2.24/Documentation/Examples/Controller/Controller.gorm/data.info0000644000000000000000000000027013410616261024627 0ustar rootrootGNUstep archive00002af8:00000003:00000003:00000000:01GormFilePrefsManager1NSObject%01NSString&%Latest Version0±& % Typed Streamgorm-1.2.24/Documentation/Examples/SimpleApp/0000755000000000000000000000000013410616261017523 5ustar rootrootgorm-1.2.24/Documentation/Examples/SimpleApp/MyController.m0000644000000000000000000000030113410616261022324 0ustar rootroot/* All Rights reserved */ #include #include "MyController.h" @implementation MyController - (void) buttonPressed: (id)sender { [value setStringValue: @"Hello"]; } @end gorm-1.2.24/Documentation/Examples/SimpleApp/MyController.h0000644000000000000000000000022313410616261022322 0ustar rootroot/* All Rights reserved */ #include @interface MyController : NSObject { id value; } - (void) buttonPressed: (id)sender; @end gorm-1.2.24/Documentation/Examples/SimpleApp/main.m0000644000000000000000000000025413410616261020626 0ustar rootroot#include #define APP_NAME @"GNUstep" /* * Initialise and go! */ int main(int argc, const char *argv[]) { return NSApplicationMain (argc, argv); } gorm-1.2.24/Documentation/Examples/SimpleApp/GNUmakefile0000644000000000000000000000136113410616261021576 0ustar rootroot# # GNUmakefile # # # Put all of your customisations in GNUmakefile.preamble and # GNUmakefile.postamble # include $(GNUSTEP_MAKEFILES)/common.make # # Main application # PACKAGE_NAME=SimpleApp APP_NAME=SimpleApp SimpleApp_MAIN_MODEL_FILE=MainMenu.gorm # # Additional libraries # ADDITIONAL_GUI_LIBS += # # Resource files # SimpleApp_RESOURCE_FILES= \ MainMenu.gorm # # Header files # SimpleApp_HEADERS= \ MyController.h # # Class files # SimpleApp_OBJC_FILES= \ main.m \ MyController.m # # C files # SimpleApp_C_FILES= # # Subprojects # SUBPROJECTS = -include GNUmakefile.preamble -include GNUmakefile.local include $(GNUSTEP_MAKEFILES)/aggregate.make include $(GNUSTEP_MAKEFILES)/application.make -include GNUmakefile.postamble gorm-1.2.24/Documentation/Examples/SimpleApp/MainMenu.gorm/0000755000000000000000000000000013410616261022177 5ustar rootrootgorm-1.2.24/Documentation/Examples/SimpleApp/MainMenu.gorm/objects.gorm0000644000000000000000000000522413410616261024521 0ustar rootrootGNUstep archive00002af8:0000001e:00000050:00000000:01GSNibContainer1NSObject01NSMutableDictionary1 NSDictionary& 01NSString&%NSOwner0±& % NSApplication0±&%GSCustomClassMap0±&0±& % MyController01 GSNibItem°  &0 ±& % NSVisible0 1NSMutableArray1NSArray&0 1 NSWindow1 NSResponder% ?€ A D CÈ&% C\ D‰€0 1 NSView% ?€ A D CÈ  D CÈ&0 ±&01 NSButton1 NSControl% C… C B` AÀ  B` AÀ&0±&%01 NSButtonCell1 NSActionCell1NSCell0±&%Button01NSFont%&&&&&&&&%’0±&0±&&&&01 NSTextField% C… CW B` A¨  B` A¨&0±&%01NSTextFieldCell0±&%Text°&&&&&&&&0%’01NSColor0±&%NSNamedColorSpace0±&%System0±&%textBackgroundColor0±°°0±& % textColor’0±°0 ±&%System0!±&%windowBackgroundColor0"±&%Window0#±& % My Window°# @@ B F@ F@%0$1NSImage0%±&%NSApplicationIcon0&±& % My Window° 0'±& % TextField°0(±&%Button°0)±&%MenuItem0*1 NSMenuItem0+±&%Hide0,±&%h&&ÿ%0-±0.1NSMutableString&% common_2DCheckMark0/±00±& %  common_2DDash’%01±& %  MenuItem102±03±&%Quit04±&%q&&ÿ%°-°/’%05±&%NSMenu061NSMenu07±& % Main Menu08±&°*°209±&  0:1NSNibConnector°&0;±&%NSOwner0<±°5°;0=±0>±&%MenuItem°50?1NSNibControlConnector°>0@±&%NSFirst0A±&%hide:0B±°1°50C±°1°@0D±& % terminate:0E±°°;0F1NSNibOutletConnector°;°0G±&% delegate0H±0I±&%Button0J±0K±& % TextField0L±°°K0M±&%value0N±°I°0O±&% buttonPressed:0P1 GSMutableSet1 NSMutableSet1NSSet&° °°6gorm-1.2.24/Documentation/Examples/SimpleApp/MainMenu.gorm/data.classes0000644000000000000000000000666713410616261024506 0ustar rootroot{ FirstResponder = { Actions = ( "activateContextHelpMode:", "alignCenter:", "alignJustified:", "alignLeft:", "alignRight:", "arrangeInFront:", "cancel:", "capitalizeWord:", "changeColor:", "checkSpelling:", "close:", "complete:", "copy:", "copyFont:", "copyRuler:", "cut:", "delete:", "deleteBackward:", "deleteForward:", "deleteToBeginningOfLine:", "deleteToBeginningOfParagraph:", "deleteToEndOfLine:", "deleteToEndOfParagraph:", "deleteToMark:", "deleteWordBackward:", "deleteWordForward:", "deminiaturize:", "deselectAll:", "fax:", "hide:", "hideOtherApplications:", "indent:", "loosenKerning:", "lowerBaseline:", "lowercaseWord:", "makeKeyAndOrderFront:", "miniaturize:", "miniaturizeAll:", "moveBackward:", "moveBackwardAndModifySelection:", "moveDown:", "moveDownAndModifySelection:", "moveForward:", "moveForwardAndModifySelection:", "moveLeft:", "moveRight:", "moveToBeginningOfDocument:", "moveToBeginningOfLine:", "moveToBeginningOfParagraph:", "moveToEndOfDocument:", "moveToEndOfLine:", "moveToEndOfParagraph:", "moveUp:", "moveUpAndModifySelection:", "moveWordBackward:", "moveWordBackwardAndModifySelection:", "moveWordForward:", "moveWordForwardAndModifySelection:", "newDocument:", "ok:", "open:", "openDocument:", "orderBack:", "orderFront:", "orderFrontColorPanel:", "orderFrontDataLinkPanel:", "orderFrontHelpPanel:", "orderFrontStandardAboutPanel:", "orderFrontStandardInfoPanel:", "orderOut:", "pageDown:", "pageUp:", "paste:", "pasteAsPlainText:", "pasteAsRichText:", "pasteFont:", "pasteRuler:", "performClose:", "performMiniaturize:", "performZoom:", "print:", "raiseBaseline:", "redo:", "revertDocumentToSaved:", "runPageLayout:", "runToolbarCustomizationPalette:", "saveAllDocuments:", "saveDocument:", "saveDocumentAs:", "saveDocumentTo:", "scrollLineDown:", "scrollLineUp:", "scrollPageDown:", "scrollPageUp:", "scrollViaScroller:", "selectAll:", "selectLine:", "selectNextKeyView:", "selectParagraph:", "selectPreviousKeyView:", "selectText:", "selectToMark:", "selectWord:", "showContextHelp:", "showGuessPanel:", "showHelp:", "showWindow:", "stop:", "subscript:", "superscript:", "swapWithMark:", "takeDoubleValueFrom:", "takeFloatValueFrom:", "takeIntValueFrom:", "takeObjectValueFrom:", "takeStringValueFrom:", "terminate:", "tightenKerning:", "toggle:", "toggleContinuousSpellChecking:", "toggleRuler:", "toggleToolbarShown:", "toggleTraditionalCharacterShape:", "transpose:", "transposeWords:", "turnOffKerning:", "turnOffLigatures:", "underline:", "undo:", "unhide:", "unhideAllApplications:", "unscript:", "uppercaseWord:", "useAllLigatures:", "useStandardKerning:", "useStandardLigatures:", "yank:", "zoom:", "buttonPressed:" ); Super = NSObject; }; MyController = { Actions = ( "buttonPressed:" ); Outlets = ( value ); Super = NSObject; }; }gorm-1.2.24/Documentation/Examples/SimpleApp/MainMenu.gorm/data.info0000644000000000000000000000027013410616261023764 0ustar rootrootGNUstep archive00002af8:00000003:00000003:00000000:01GormFilePrefsManager1NSObject%01NSString&%Latest Version0±& % Typed Streamgorm-1.2.24/Documentation/.cvsignore0000644000000000000000000000012413410616261016050 0ustar rootroot*.log *.dvi *.ps *.html *.info *.aux *.toc *.cp *.fn *.vr *.tp *.ky *.pg *.ps *.vrs gorm-1.2.24/Documentation/version.texi~0000644000000000000000000000011413426745044016636 0ustar rootroot@set GNUSTEP-VERSION 0.25.0 @set GNUSTEP-GCC 3.3.0 @set GORM-VERSION 1.2.23 gorm-1.2.24/GormLib/0000755000000000000000000000000013426741712012604 5ustar rootrootgorm-1.2.24/GormLib/IBPalette.m0000644000000000000000000001021413410616261014562 0ustar rootroot/* IBPalette.m * * Copyright (C) 2003 Free Software Foundation, Inc. * * Author: Gregory John Casamento * Date: 2003 * * This file is part of GNUstep. * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU Lesser General Public License as published by * the Free Software Foundation; either version 2.1 of the License, or * (at your option) any later version. * * This program 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 Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02111 USA. */ #include #include #include NSString *IBCellPboardType = @"IBCellPboardType"; NSString *IBMenuPboardType = @"IBMenuPboardType"; NSString *IBMenuCellPboardType = @"IBMenuCellPboardType"; NSString *IBObjectPboardType = @"IBObjectPboardType"; NSString *IBViewPboardType = @"IBViewPboardType"; NSString *IBWindowPboardType = @"IBWindowPboardType"; NSString *IBFormatterPboardType = @"IBFormatterPboardType"; // Gorm specific paste board types.. NSString *GormImagePboardType = @"GormImagePboardType"; NSString *GormSoundPboardType = @"GormSoundPboardType"; NSString *GormLinkPboardType = @"GormLinkPboardType"; @implementation IBPalette static NSMapTable *viewToObject = 0; static NSMapTable *viewToType = 0; + (void) initialize { if (self == [IBPalette class]) { viewToObject = NSCreateMapTable(NSNonOwnedPointerMapKeyCallBacks, NSObjectMapValueCallBacks, 20); viewToType = NSCreateMapTable(NSNonOwnedPointerMapKeyCallBacks, NSObjectMapValueCallBacks, 20); } } + (id) objectForView: (NSView*)aView { id obj = (id)NSMapGet(viewToObject, (void*)aView); if (obj == nil) { obj = aView; } return obj; } + (NSString*) typeForView: (NSView*)aView { NSString *type = (NSString*)NSMapGet(viewToType, (void*)aView); if (type == nil) { type = IBViewPboardType; } return type; } - (void) associateObject: (id)anObject type: (NSString*)aType with: (NSView*)aView { NSMapInsert(viewToType, (void*)aView, (id)aType); NSMapInsert(viewToObject, (void*)aView, (id)anObject); } - (void) dealloc { [[NSNotificationCenter defaultCenter] removeObserver: self]; RELEASE(icon); RELEASE(paletteDocument); [super dealloc]; } - (void) finishInstantiate { } - (id) init { NSBundle *bundle; NSDictionary *paletteInfo; NSString *fileName; bundle = [NSBundle bundleForClass: [self class]]; // load the palette dictionary... fileName = [bundle pathForResource: @"palette" ofType: @"table"]; paletteInfo = [[NSString stringWithContentsOfFile: fileName] propertyList]; // load the image... fileName = [paletteInfo objectForKey: @"Icon"]; fileName = [bundle pathForImageResource: fileName]; if (fileName == nil) { NSRunAlertPanel(NULL, [NSString stringWithFormat: @"Palette could not load image %@.", fileName], @"OK", NULL, NULL); AUTORELEASE(self); return nil; } icon = [[NSImage alloc] initWithContentsOfFile: fileName]; // load the nibfile... fileName = [paletteInfo objectForKey: @"NibFile"]; if (fileName != nil && [fileName isEqual: @""] == NO) { NSDictionary *context = [NSDictionary dictionaryWithObjectsAndKeys: self, @"NSOwner",nil]; if ([bundle loadNibFile: fileName externalNameTable: context withZone: NSDefaultMallocZone()] == NO) { NSRunAlertPanel(NULL, [NSString stringWithFormat: @"Palette could not load nib/gorm %@.", fileName], @"OK", NULL, NULL); AUTORELEASE(self); return nil; } } return self; } - (NSImage*) paletteIcon { return icon; } - (NSWindow*) originalWindow { return originalWindow; } - (id) paletteDocument { return paletteDocument; } @end gorm-1.2.24/GormLib/IBResourceManager.h0000644000000000000000000001000313410616261016235 0ustar rootroot/* IBResourceManager.h * * Copyright (C) 2005 Free Software Foundation, Inc. * * Author: Gregory John Casamento * Date: 2005 * * This file is part of GNUstep. * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU Lesser General Public License as published by * the Free Software Foundation; either version 2.1 of the License, or * (at your option) any later version. * * This program 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 Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02111 USA. */ #ifndef INCLUDED_IBRESOURCEMANAGER_H #define INCLUDED_IBRESOURCEMANAGER_H #include #include #include #include #include @class NSString, NSPasteboard, NSMutableArray; /** * Notification sent when a resource manager class is added to /removed from * the registry. */ IB_EXTERN NSString *IBResourceManagerRegistryDidChangeNotification; /** * Enumerated type to allow specification of where the resource * lives. */ enum IBResourceLocation { kNibResource = 0, kProjectResource, kPaletteResource, kSystemResource, kUnknownResource }; @interface IBResourceManager : NSObject { id document; } /** * Register the given class as a resource mananger. */ + (void) registerResourceManagerClass: (Class)managerClass; /** * Register the given class as a resource manager for the frameworks in the array. */ + (void) registerResourceManagerClass: (Class)managerClass forFrameworks: (NSArray *)frameworks; /** * Return an array of classes for the given framework. */ + (NSArray *) registeredResourceManagerClassesForFramework: (NSString *)framework; /** * Returns YES, if the pasteboard contains a type the resource * manager can accept. */ - (BOOL) acceptsResourcesFromPasteboard: (NSPasteboard *)pboard; /** * Add a resource. */ - (void) addResources: (NSArray *)resourceList; /** * Add resoures from the pasteboard. Invokes the * acceptsResourcesFromPasteboard: method to determine * if the resources will be added. */ - (void) addResourcesFromPasteboard: (NSPasteboard *)pboard; /** * Called by an external application when a file owned by * the GUI builder is modified. */ - (void) application: (NSString *) appName didModifyFileAtPath: (NSString *)path; /** * Returns the document with which this resource manager is * associated. */ - (id) document; /** * Instantiate the resource manager with the given * document object. */ - (id) initWithDocument: (id)document; /** * Returns YES, if this resource manager is non-modifiable. */ - (BOOL) isReadOnly; /** * Called by an external application when the a file * is added. */ - (void) project: (id)proj didAddFile: (id)file; /** * Called by an external application when the a file * changes localization. */ - (void) project: (id)proj didChangeLocalizationOfFile: (id)file; /** * Called by an external application when a file * is removed. */ - (void) project: (id)proj didRemoveFile: (id)file; /** * Returns a list of resource file types this manager can accept. */ - (NSArray *) resourceFileTypes; /** * Returns a list of pasteboard types this manager can accept. */ - (NSArray *) resourcePasteboardTypes; /** * Returns the associated resources for the objects. */ - (NSArray *) resourcesForObjects: (NSArray *)objs; /** * Writes a resource to the document path. */ - (void) writeToDocumentPath: (NSString *)path; @end #endif gorm-1.2.24/GormLib/IBViewResourceDragging.h0000644000000000000000000000461513410616261017254 0ustar rootroot/* IBViewResourceDragging.h * * Copyright (C) 2003 Free Software Foundation, Inc. * * Author: Gregory John Casamento * Date: 2003 * * This file is part of GNUstep. * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU Lesser General Public License as published by * the Free Software Foundation; either version 2.1 of the License, or * (at your option) any later version. * * This program 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 Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02111 USA. */ #ifndef INCLUDED_IBVIEWRESOURCEDRAGGING_H #define INCLUDED_IBVIEWRESOURCEDRAGGING_H #include @class NSPasteboard; /** * Protocol describing those methods needed to accept resources. */ @protocol IBViewResourceDraggingDelegates /** * Ask if the view accepts the object. */ - (BOOL) acceptsViewResourceFromPasteboard: (NSPasteboard *)pb forObject: (id)obj atPoint: (NSPoint)p; /** * Perform the action of depositing the object. */ - (void) depositViewResourceFromPasteboard: (NSPasteboard *)pb onObject: (id)obj atPoint: (NSPoint)p; /** * Should we draw the connection frame when the resource is * dragged in? */ - (BOOL) shouldDrawConnectionFrame; /** * Types of resources accepted by this view. */ - (NSArray *)viewResourcePasteboardTypes; @end /** * Informal protocol on NSView. */ @interface NSView (IBViewResourceDraggingDelegates) /** * Types accepted by the view. */ + (NSArray *) acceptedViewResourcePasteboardTypes; /** * Return the list of registered delegates. */ + (NSArray *) registeredViewResourceDraggingDelegates; /** * Register a delegate. */ + (void) registerViewResourceDraggingDelegate: (id)delegate; /** * Remove a previously registered delegate. */ + (void) unregisterViewResourceDraggingDelegate: (id)delegate; @end #endif gorm-1.2.24/GormLib/IBDocuments.m0000644000000000000000000000245013410616261015130 0ustar rootroot/* IBDocuments.m * * Copyright (C) 2003 Free Software Foundation, Inc. * * Author: Gregory John Casamento * Date: 2003 * * This file is part of GNUstep. * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU Lesser General Public License as published by * the Free Software Foundation; either version 2.1 of the License, or * (at your option) any later version. * * This program 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 Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02111 USA. */ #include #include NSString *IBDidOpenDocumentNotification = @"IBDidOpenDocumentNotification"; NSString *IBWillSaveDocumentNotification = @"IBWillSaveDocumentNotification"; NSString *IBDidSaveDocumentNotification = @"IBDidSaveDocumentNotification"; NSString *IBWillCloseDocumentNotification = @"IBWillCloseDocumentNotification"; gorm-1.2.24/GormLib/README0000644000000000000000000000065013410616261013456 0ustar rootrootGormLib is a clone of the InterfaceBuilder framework. GormLib's primary purpose is to allow the creation of custom palettes and inspectors outside of Gorm. This will also facilitate extension of Gorm since it will allow outside applications to have an interface with which they can interact with the running Gorm application. You must install this library before you can build Gorm. Thanks, Gregory John Casamento gorm-1.2.24/GormLib/GNUmakefile.postamble0000644000000000000000000000200113410616261016625 0ustar rootroot# # GNUmakefile.postamble # # Copyright (C) 2003 Free Software Foundation, Inc. # # Author: Gregory John Casamento # # This file is part of GNUstep # # 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, # 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. before-all:: after-clean:: rm -rf ../InterfaceBuilder rm -rf ./InterfaceBuilder gorm-1.2.24/GormLib/IBResourceManager.m0000644000000000000000000001326313410616261016255 0ustar rootroot/* IBResourceManager.m * * Copyright (C) 2005 Free Software Foundation, Inc. * * Author: Gregory John Casamento * Date: 2005 * * This file is part of GNUstep. * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU Lesser General Public License as published by * the Free Software Foundation; either version 2.1 of the License, or * (at your option) any later version. * * This program 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 Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02111 USA. */ #include #include #include #include #include #include #include #include #include #include #include #include NSString *IBResourceManagerRegistryDidChangeNotification = @"IBResourceManagerRegistryDidChangeNotification"; static NSMapTable *_resourceManagers = NULL; @implementation IBResourceManager : NSObject /** * Create the resource manager table. */ + (BOOL) _createTable { if(_resourceManagers == NULL) { _resourceManagers = NSCreateMapTable(NSObjectMapKeyCallBacks, NSObjectMapValueCallBacks, 2); } return (_resourceManagers != NULL); } /** * Add a class to the resourceManager master list of classes. */ + (void) _addClass: (Class)managerClass { if([self _createTable]) { NSMutableArray *list = NSMapGet(_resourceManagers, [NSNull null]); if(list == nil) { list = [NSMutableArray array]; NSMapInsert(_resourceManagers, [NSNull null], list); } if([list containsObject: managerClass] == NO) { [list addObject: managerClass]; } } } + (void) registerResourceManagerClass: (Class)managerClass { [self _addClass: managerClass]; // notify [[NSNotificationCenter defaultCenter] postNotificationName: IBResourceManagerRegistryDidChangeNotification object: managerClass]; } + (void) registerResourceManagerClass: (Class)managerClass forFrameworks: (NSArray *)frameworks { if([self _createTable]) { NSMutableArray *list = nil; if(frameworks == nil) { [self _addClass: managerClass]; } else { NSEnumerator *en = [frameworks objectEnumerator]; NSString *fw = nil; // add it to all of the frameworks. while((fw = [en nextObject]) != nil) { list = NSMapGet(_resourceManagers, fw); if(list == nil) { list = [NSMutableArray array]; NSMapInsert(_resourceManagers, fw, list); } if([list containsObject: managerClass] == NO) { [list addObject: managerClass]; } } // also add it to the master list. [self _addClass: managerClass]; } // notify [[NSNotificationCenter defaultCenter] postNotificationName: IBResourceManagerRegistryDidChangeNotification object: managerClass]; } } + (NSArray *) registeredResourceManagerClassesForFramework: (NSString *)framework { return (NSArray *)(NSMapGet(_resourceManagers, ((framework == nil)?(void *)[NSNull null]:framework))); } - (BOOL) acceptsResourcesFromPasteboard: (NSPasteboard *)pboard { NSArray *types = [pboard types]; NSArray *resourcePbTypes = [self resourcePasteboardTypes]; NSString *type = [types firstObjectCommonWithArray: resourcePbTypes]; return (type != nil); } - (void) addResources: (NSArray *)resourceList { [document attachObjects: resourceList toParent: nil]; } - (void) addResourcesFromPasteboard: (NSPasteboard *)pboard { NSArray *resourcePbTypes = [self resourcePasteboardTypes]; NSString *type = nil; NSEnumerator *en = [resourcePbTypes objectEnumerator]; while((type = [en nextObject]) != nil) { NSData *data = [pboard dataForType: type]; if(data != nil) { NS_DURING { id obj = [NSUnarchiver unarchiveObjectWithData: data]; if(obj != nil) { // the object is an array of objects of this type. [self addResources: obj]; } } NS_HANDLER { NSLog(@"Problem adding resource: %@",[localException reason]); } NS_ENDHANDLER; } } } - (void) application: (NSString *) appName didModifyFileAtPath: (NSString *)path { // does nothing. } - (id) document { return document; } - (id) initWithDocument: (id)doc { if((self = [super init]) != nil) { document = doc; // weak connection. } return self; } /** * Deallocate the object. */ - (void) dealloc { document = nil; [super dealloc]; } - (BOOL) isReadOnly; { return NO; } - (void) project: (id)proj didAddFile: (id)file { } - (void) project: (id)proj didChangeLocalizationOfFile: (id)file { } - (void) project: (id)proj didRemoveFile: (id)file { // does nothing in base implementation. } - (NSArray *) resourceFileTypes { return nil; } - (NSArray *) resourcePasteboardTypes { return [NSArray arrayWithObjects: IBObjectPboardType, nil]; } - (NSArray *) resourcesForObjects: (NSArray *)objs; { return nil; } - (void) writeToDocumentPath: (NSString *)path { // does nothing in base implementation. } @end gorm-1.2.24/GormLib/IBConnectors.m0000644000000000000000000000300613410616261015302 0ustar rootroot/* IBConnectors.m * * Copyright (C) 2003 Free Software Foundation, Inc. * * Author: Gregory John Casamento * Date: 2003 * * This file is part of GNUstep. * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU Lesser General Public License as published by * the Free Software Foundation; either version 2.1 of the License, or * (at your option) any later version. * * This program 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 Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02111 USA. */ #include #include NSString *IBWillAddConnectorNotification = @"IBWillAddConnectorNotification"; NSString *IBDidAddConnectorNotification = @"IBDidAddConnectorNotification"; NSString *IBWillRemoveConnectorNotification = @"IBWillRemoveConnectorNotification"; NSString *IBDidRemoveConnectorNotification = @"IBDidRemoveConnectorNotification"; @interface NSObject (IBNibInstantiation) - (id) nibInstantiate; @end @implementation NSObject (IBNibInstantiation) - (id) nibInstantiate { // default implementation of nibInstantiate return self; } @end gorm-1.2.24/GormLib/IBEditors.h0000644000000000000000000001131413410616261014572 0ustar rootroot/* IBEditors.h * * Copyright (C) 2003 Free Software Foundation, Inc. * * Author: Gregory John Casamento * Date: 2003 * * This file is part of GNUstep. * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU Lesser General Public License as published by * the Free Software Foundation; either version 2.1 of the License, or * (at your option) any later version. * * This program 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 Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02111 USA. */ #ifndef INCLUDED_IBEDITORS_H #define INCLUDED_IBEDITORS_H #include #include // forward references @class NSString; @class NSArray; @class NSWindow; /* * Notification for editing and inspecting the objects etc. */ IB_EXTERN NSString *IBAttributesChangedNotification; IB_EXTERN NSString *IBInspectorDidModifyObjectNotification; IB_EXTERN NSString *IBSelectionChangedNotification; IB_EXTERN NSString *IBClassNameChangedNotification; /** * The IBSelectionOwners protocol defines the methods that a selection owner * must implement. */ @protocol IBSelectionOwners /** * The number of currently selected objects. */ - (NSUInteger) selectionCount; /** * Return the selection in an array. */ - (NSArray*) selection; /** * Draw the selection. */ - (void) drawSelection; /** * This method is used to draw or remove markup that identifies selected * objects within the object being edited. */ - (void) makeSelectionVisible: (BOOL)flag; /** * This method changes the current selection to those objects in the array. */ - (void) selectObjects: (NSArray*)objects; /** * This method places the current selection from the editor on the pasteboard. */ - (void) copySelection; @end /** * The IBEditors protocol defines the methods an editor must implement. */ @protocol IBEditors /** * Decide whether an editor can accept data from the pasteboard. */ - (BOOL) acceptsTypeFromArray: (NSArray*)types; /** * Activate an editor - inserts it into the view hierarchy or whatever is * needed for the editor to be able to provide its functionality. * This method should be called by the document when an editor is created * or opened. It should be safe to call repeatedly. */ - (BOOL) activate; /** * Initializes the editor with object for the specified document. */ - (id) initWithObject: (id)anObject inDocument: (id/**/)aDocument; /** * Close an editor - this destroys the editor. In this method the editor * should tell its document that it has been closed, so that the document * can remove all its references to the editor. */ - (void) close; /** * Close all subeditors associated with this editor. */ - (void) closeSubeditors; /** * Deactivate an editor - removes it from the view hierarchy so that objects * can be archived without including the editor. * This method should be called automatically by the 'close' method. * It should be safe to call repeatedly. */ - (void) deactivate; /** * This method deletes all the objects in the current selection in the editor. */ - (void) deleteSelection; /** * This method returns the document that owns the object that the editor edits. */ - (id /**/) document; /** * This method returns the object that the editor is editing. */ - (id) editedObject; /** * This method is used to ensure that the editor is visible on screen. */ - (void) orderFront; /** * Opens the subeditor for an object when the object being edited is * double clicked by the user. If there is no sub-editor, return nil, otherwise * method will return the editor for the object. */ - (id) openSubeditorForObject: (id)object; /** * This method is used to add the contents of the pasteboard to the current * selection of objects within the editor. */ - (void) pasteInSelection; /** * Redraws the edited object */ - (void) resetObject: (id)anObject; /** * When an editor resigns the selection ownership, all editors are asked if * they want selection ownership, and the first one to return YES gets made * into the current selection owner. */ - (BOOL) wantsSelection; /** * Causes the editor to select the text being edited in the current text * field. */ - (void) validateEditing; /** * This returns the window in which the editor is drawn. */ - (NSWindow*) window; @end #endif gorm-1.2.24/GormLib/IBProjectFiles.h0000644000000000000000000000276413410616261015563 0ustar rootroot/* IBProjectFiles.h * * Copyright (C) 2003 Free Software Foundation, Inc. * * Author: Gregory John Casamento * Date: 2003 * * This file is part of GNUstep. * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU Lesser General Public License as published by * the Free Software Foundation; either version 2.1 of the License, or * (at your option) any later version. * * This program 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 Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02111 USA. */ #ifndef INCLUDED_IBPROJECTFILES_H #define INCLUDED_IBPROJECTFILES_H #include @class NSString; @protocol IBProjectFiles /** * The file name. */ - (NSString *) fileName; /** * The file type for this file. */ - (NSString *) fileType; /** * Returns YES, if the file is localized, NO if it's simply in Resources. */ - (BOOL) isLocalized; /** * The language */ - (NSString *) language; /** * The path for the file. */ - (NSString *) path; /** * The project to which this file belongs. */ - (id) project; @end #endif gorm-1.2.24/GormLib/GNUmakefile.preamble0000644000000000000000000000416413410616261016442 0ustar rootroot# GNUmakefile.preamble # # Copyright (C) 2003 Free Software Foundation, Inc. # # Author: Gregory John Casamento # # This file is part of GNUstep # # 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. # # If you are interested in a warranty or support for this source code, # contact Scott Christley at scottc@net-community.com # # 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, # 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. # # Makefile.preamble # # Project specific makefile variables, and additional # # Do not put any Makefile rules in this file, instead they should # be put into Makefile.postamble. # # # Flags dealing with compiling and linking # # Additional flags to pass to the preprocessor # ADDITIONAL_CPPFLAGS += -Wall -Werror # Additional flags to pass to the Objective-C compiler # ADDITIONAL_OBJCFLAGS += -Wall -Werror # Additional flags to pass to the C compiler # ADDITIONAL_CFLAGS += -Wall -Werror # Additional include directories the compiler should search ADDITIONAL_INCLUDE_DIRS += -I../InterfaceBuilder # INCLUDE_DIRS = -I../InterfaceBuilder $(INCLUDE_DIRS) # Additional LDFLAGS to pass to the linker #ADDITIONAL_LDFLAGS += # Additional library directories the linker should search ADDITIONAL_LIB_DIRS += ADDITIONAL_TOOL_LIBS += # # Flags dealing with installing and uninstalling # # Additional directories to be created during installation ADDITIONAL_INSTALL_DIRS += # # Local configuration # ifeq ($(GNUSTEP_TARGET_OS),cygwin) libGorm_LIBRARIES_DEPEND_UPON += -lobjc endif gorm-1.2.24/GormLib/IBProjects.h0000644000000000000000000000552313410616261014757 0ustar rootroot/* IBProjects.h * * Copyright (C) 2004 Free Software Foundation, Inc. * * Author: Gregory John Casamento * Date: 2004 * * This file is part of GNUstep. * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU Lesser General Public License as published by * the Free Software Foundation; either version 2.1 of the License, or * (at your option) any later version. * * This program 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 Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02111 USA. */ #ifndef INCLUDED_IBPROJECTS_H #define INCLUDED_IBPROJECTS_H #include #include @class NSString, NSArray; @protocol IBProjects /** * Called to retrieve the application icon to be used for the * interface/language combination. */ - (id) applicationIconForInterfaceStyle: (NSInterfaceStyle)style inLanguage: (NSString *)lang; /** * Returns YES, if the file is in the given path. */ - (BOOL) containsFileAtPath: (NSString *)path; /** * Returns an array containing the list of files of that filetype * in the project. */ - (NSArray *) filesForFileType: (NSString *)type; /** * Returns YES, if child is a child of the reciever. */ - (BOOL) isAncestorOfProject: (id) child; /** * Returns YES, if parent is a parent of the receiver. */ - (BOOL) isDescendantOfProject: (id) parent; /** * Is there currently a connection to the project. */ - (BOOL) isLive; /** * Returns the language for the file at the given path. */ - (NSString *) languageForFileAtPath: (NSString *)path; /** * Returns the nib for the interface/style combination. */ - (id) mainNibFileForInterfaceStyle: (NSInterfaceStyle)style inLanguage: (NSString *)lang; /** * Locates and returns the location of filename within the * receiver. */ - (NSString *) pathForFilename: (NSString *)filename; /** * Returns the full path for the project directory. */ - (NSString *) projectDirectory; /** * Returns the project manager object. */ - (id) projectManager; /** * The name of the project. */ - (NSString *) projectName; /** * The topmost project in the project hierarchy containing the receiver. */ - (id) rootProject; /** * Any and all direct subjects of this project. */ - (NSArray *) subprojects; /** * The project which is the direct parent of the receiver. */ - (id) superproject; @end #endif gorm-1.2.24/GormLib/IBCellProtocol.h0000644000000000000000000000276613410616261015575 0ustar rootroot/* IBViewProtocol.h * * Copyright (C) 1999 Free Software Foundation, Inc. * * Author: Gregory John Casamento * Date: 1999 * * This file is part of GNUstep. * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU Lesser General Public License as published by * the Free Software Foundation; either version 2.1 of the License, or * (at your option) any later version. * * This program 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 Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02111 USA. */ #ifndef INCLUDED_IBCELLPROTOCOL_H #define INCLUDED_IBCELLPROTOCOL_H #include #include @protocol IBCellProtocol /** * Called when the cell is about to be alt-dragged. */ - (void) cellWillAltDragWithSize: (NSSize)size; /** * Maximum size for the cell. */ - (NSSize) maximumSizeForCellSize: (NSSize)size knobPosition: (IBKnobPosition)position; /** * Minimum size for the cell. */ - (NSSize) minimumSizeForCellSize: (NSSize)size knobPosition: (IBKnobPosition)position; @end #endif gorm-1.2.24/GormLib/IBPlugin.m0000644000000000000000000000611613410616261014430 0ustar rootroot/* IBPlugin.m * * Copyright (C) 2007 Free Software Foundation, Inc. * * Author: Gregory John Casamento * Date: 2007 * * This file is part of GNUstep. * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU Lesser General Public License as published by * the Free Software Foundation; either version 2.1 of the License, or * (at your option) any later version. * * This program 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 Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02111 USA. */ #include #include #include #include static NSMapTable *instanceMap = 0; @implementation IBPlugin + (void) initialize { if (instanceMap == 0) { instanceMap = NSCreateMapTable(NSNonRetainedObjectMapKeyCallBacks, NSObjectMapValueCallBacks, 2); } } // Getting the shared plugin... /** * Returns the shared instance of the plugin. */ + (id)sharedInstance { NSString *className = [self className]; id instance = NSMapGet(instanceMap, className); if(instance == nil) { instance = [[[self class] alloc] init]; NSMapInsert(instanceMap, className, instance); RELEASE(instance); } return instance; } // Loading and unloading plugin resources. /** * Notifies the receiver that the plugin will be loaded. */ - (void) didLoad { // do nothing... will be overridden. } /** * Notifies the receiver that the plugin will be unloaded. */ - (void) willUnload { // do nothing... will be overridden. } // Getting the plugins nib files. /** * Return the array of custom nib filenames. You are required to override * this method when creating a plugin. */ - (NSArray *) libraryNibNames { return nil; } // Configuring the plugin /** * Returns the name of the plugin to be displayed. */ - (NSString *) label { return [self className]; } /** * The preferences panel/view that should be added to the preferences drop * down and preferences window. */ - (NSView *) preferencesView { return nil; } /** * Returns the list of frameworks needed to support the plugin. */ - (NSArray *) requiredFrameworks { return nil; } // Pasteboard notifications... /** * Notifies the receiver that one of it's components will be added to the * document. */ - (NSArray *) pasteboardObjectsForDraggedLibraryView: (NSView *)view { return nil; } /** * Notifies the receiver that objects were added to the document. */ - (void) document: (id)document didAddDraggedObjects: (NSArray *)roots fromDraggedLibraryView: (NSView *)view { // do nothing; } - (void) dealloc { NSMapRemove(instanceMap,[self className]); [super dealloc]; } @end gorm-1.2.24/GormLib/IBInspectorMode.h0000644000000000000000000000331113410616261015732 0ustar rootroot/* IBInspectorMode * * Copyright (C) 2004 Free Software Foundation, Inc. * * Author: Gregory John Casamento * Date: 2004 * * This file is part of GNUstep. * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU Lesser General Public License as published by * the Free Software Foundation; either version 2.1 of the License, or * (at your option) any later version. * * This program 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 Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02111 USA. */ #ifndef IBINSPECTORMODE_H #define IBINSPECTORMODE_H #include @class NSString; @interface IBInspectorMode : NSObject { NSString *identifier; NSString *localizedLabel; NSString *inspectorClassName; id object; float ordering; } - (id) initWithIdentifier: (NSString *)ident forObject: (id)obj localizedLabel: (NSString *)lab inspectorClassName: (NSString *)cn ordering: (float)ord; - (void) setIdentifier: (NSString *)ident; - (NSString *) identifier; - (void) setObject: (id)obj; - (id) object; - (void) setLocalizedLabel: (NSString *)label; - (NSString *) localizedLabel; - (void) setInspectorClassName: (NSString *)className; - (NSString *) inspectorClassName; - (void) setOrdering: (float)ord; - (float) ordering; @end #endif gorm-1.2.24/GormLib/IBCellAdditions.h0000644000000000000000000000217413410616261015703 0ustar rootroot/* IBViewAdditions.h * * Copyright (C) 1999 Free Software Foundation, Inc. * * Author: Gregory John Casamento * Date: 1999 * * This file is part of GNUstep. * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU Lesser General Public License as published by * the Free Software Foundation; either version 2.1 of the License, or * (at your option) any later version. * * This program 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 Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02111 USA. */ #ifndef INCLUDED_IBCELLADDITIONS_H #define INCLUDED_IBCELLADDITIONS_H #include #include @interface NSCell (IBCellAdditions) @end #endif gorm-1.2.24/GormLib/IBApplicationAdditions.h0000644000000000000000000000410413410616261017262 0ustar rootroot/* IBApplicationAdditions.h * * Copyright (C) 2003 Free Software Foundation, Inc. * * Author: Gregory John Casamento * Date: 2003 * * This file is part of GNUstep. * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU Lesser General Public License as published by * the Free Software Foundation; either version 2.1 of the License, or * (at your option) any later version. * * This program 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 Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02111 USA. */ #ifndef INCLUDED_IBAPPLICATIONADDITIONS_H #define INCLUDED_IBAPPLICATIONADDITIONS_H #include #include #include IB_EXTERN NSString *IBWillBeginTestingInterfaceNotification; IB_EXTERN NSString *IBDidBeginTestingInterfaceNotification; IB_EXTERN NSString *IBWillEndTestingInterfaceNotification; IB_EXTERN NSString *IBDidEndTestingInterfaceNotification; @protocol IB /** * Returns the document which is currently being edited. */ - (id) activeDocument; /** * Returns YES, if the reciever is in testing mode. */ - (BOOL) isTestingInterface; /** * Returns the current selection owner. */ - (id) selectionOwner; /** * Returns the current selection from the current selection * owner. */ - (id) selectedObject; /** * Returns the document which contains this object. */ - (id) documentForObject: (id)object; @end @interface NSApplication (GormSpecific) /** * Image to be displayed with making a link. */ - (NSImage *) linkImage; /** * Start the connection process. */ - (void) startConnecting; @end #endif gorm-1.2.24/GormLib/IBDocuments.h0000644000000000000000000001367613410616261015137 0ustar rootroot/* IBDocuments.h * * Copyright (C) 2003 Free Software Foundation, Inc. * * Author: Gregory John Casamento * Date: 2003 * * This file is part of GNUstep. * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU Lesser General Public License as published by * the Free Software Foundation; either version 2.1 of the License, or * (at your option) any later version. * * This program 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 Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02111 USA. */ #ifndef INCLUDED_IBDOCUMENTS_H #define INCLUDED_IBDOCUMENTS_H #include #include #include #include IB_EXTERN NSString *IBDidOpenDocumentNotification; IB_EXTERN NSString *IBWillSaveDocumentNotification; IB_EXTERN NSString *IBDidSaveDocumentNotification; IB_EXTERN NSString *IBWillCloseDocumentNotification; @protocol IBDocuments /** * Add a connection */ - (void) addConnector: (id)aConnector; /** * Returns an array containing all connections for the receiver. */ - (NSArray*) allConnectors; /** * Attaches an object to the document and makes the association * with the parent. */ - (void) attachObject: (id)anObject toParent: (id)aParent; /** * Iterates over anArray and attaches all objects in it to the * receiver with aParent as the parent. */ - (void) attachObjects: (NSArray*)anArray toParent: (id)aParent; /** * Returns an autoreleased array containing all connections for * the given destination. */ - (NSArray*) connectorsForDestination: (id)destination; /** * Returns an autoreleased array containing all connectors of * the given class for the destination. */ - (NSArray*) connectorsForDestination: (id)destination ofClass: (Class)aConnectorClass; /** * Returns an autoreleased array containing all connections for * the given source. */ - (NSArray*) connectorsForSource: (id)source; /** * Returns an autoreleased array containing all connectors of the * given class for the source. */ - (NSArray*) connectorsForSource: (id)source ofClass: (Class)aConnectorClass; /** * Returns YES, if the receiver contains anObject. */ - (BOOL) containsObject: (id)anObject; /** * Returns YES, if the receiver contains an object with the given name * and parent. */ - (BOOL) containsObjectWithName: (NSString*)aName forParent: (id)parent; /** * Copies anObject to the pasteboard with the aType. */ - (BOOL) copyObject: (id)anObject type: (NSString*)aType toPasteboard: (NSPasteboard*)aPasteboard; /** * Copues an array of objects to aPasteboard with aType. */ - (BOOL) copyObjects: (NSArray*)anArray type: (NSString*)aType toPasteboard: (NSPasteboard*)aPasteboard; /** * Detaches anObject from the receiver. */ - (void) detachObject: (id)anObject; /** * Detaches an array of objects from the receiver. */ - (void) detachObjects: (NSArray*)anArray; /** * The path of the file which represents the document. */ - (NSString*) documentPath; /** * Called when an editor is closed. */ - (void) editor: (id)anEditor didCloseForObject: (id)anObject; /** * Returns the associated editor for anObject, if flag is YES, it will * create an instance of the editor class if one does not already exist * for the given object. */ - (id) editorForObject: (id)anObject create: (BOOL)flag; /** * Returns the associated subeditor for anObject, if flag is YES, it will * create an instance of the editor. */ - (id) editorForObject: (id)anObject inEditor: (id)anEditor create: (BOOL)flag; /** * Returns the name associated with the object. */ - (NSString*) nameForObject: (id)anObject; /** * Returns the object for the given aName. */ - (id) objectForName: (NSString*)aName; /** * Returns all objects in the receiver's name table. */ - (NSArray*) objects; /** * Creates an editor, if necessary using editorForObject:create:, opens it * and brings the window containing the editor to the front. */ - (id) openEditorForObject: (id)anObject; /** * Returns the parent of the given editor. */ - (id) parentEditorForEditor: (id)anEditor; /** * Return the parent of anObject. The File's Owner is the root object in the * hierarchy, if anObject's parent is the Files's Owner, this method should return * nil. */ - (id) parentOfObject: (id)anObject; /** * Pastes the given type from the aPasteboard. */ - (NSArray*) pasteType: (NSString*)aType fromPasteboard: (NSPasteboard*)aPasteboard parent: (id)parent; /** * Remove aConnector from the receiver. */ - (void) removeConnector: (id)aConnector; /** * The current editor wants to give up the selection, this method iterates * over all editors and determines if any editors will take over the selection. * If one is found it is activated. */ - (void) resignSelectionForEditor: (id)editor; /** * Set aName for object in the receiver. This replaces any name the object * may have previously had. */ - (void) setName: (NSString*)aName forObject: (id)object; /** * Sets the currently selected object from the given editor. */ - (void) setSelectionFromEditor: (id)anEditor; /** * Mark document as having been changed. */ - (void) touch; //// PRIVATE /** * Returns a string with the name of the class for the given object. */ - (NSString *) classForObject: (id)obj; - (NSArray *) actionsOfClass: (NSString *)className; - (NSArray *) outletsOfClass: (NSString *)className; @end #endif gorm-1.2.24/GormLib/IBViewAdditions.h0000644000000000000000000000217413410616261015736 0ustar rootroot/* IBViewAdditions.h * * Copyright (C) 1999 Free Software Foundation, Inc. * * Author: Gregory John Casamento * Date: 1999 * * This file is part of GNUstep. * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU Lesser General Public License as published by * the Free Software Foundation; either version 2.1 of the License, or * (at your option) any later version. * * This program 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 Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02111 USA. */ #ifndef INCLUDED_IBVIEWADDITIONS_H #define INCLUDED_IBVIEWADDITIONS_H #include #include @interface NSView (IBViewAdditions) @end #endif gorm-1.2.24/GormLib/IBViewProtocol.h0000644000000000000000000000350613410616261015621 0ustar rootroot/* IBViewProtocol.h * * Copyright (C) 1999 Free Software Foundation, Inc. * * Author: Gregory John Casamento * Date: 1999 * * This file is part of GNUstep. * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU Lesser General Public License as published by * the Free Software Foundation; either version 2.1 of the License, or * (at your option) any later version. * * This program 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 Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02111 USA. */ #ifndef INCLUDED_IBVIEWPROTOCOL_H #define INCLUDED_IBVIEWPROTOCOL_H #include #include // forward references @class NSColor; @protocol IBViewProtocol /** * Returns YES, if color can be set at the given point in the view. */ - (BOOL) acceptsColor: (NSColor*)color atPoint: (NSPoint)point; /** * Returns YES if receiver can be alt-dragged. */ - (BOOL) allowsAltDragging; /** * Sets color at point in the receiver. */ - (void) depositColor: (NSColor*)color atPoint: (NSPoint)point; /** * The maximum size for a knob surrounding the receiver. */ - (NSSize) maximumSizeFromKnobPosition: (IBKnobPosition)knobPosition; /** * The minimum size for a knob surrounding the receiver. */ - (NSSize) minimumSizeFromKnobPosition: (IBKnobPosition)position; /** * Places and resizes the receiver using newFrame. */ - (void) placeView: (NSRect)newFrame; @end #endif gorm-1.2.24/GormLib/IBApplicationAdditions.m0000644000000000000000000000251713410616261017275 0ustar rootroot/* IBApplicationAdditions.m * * Copyright (C) 2003 Free Software Foundation, Inc. * * Author: Gregory John Casamento * Date: 2003 * * This file is part of GNUstep. * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU Lesser General Public License as published by * the Free Software Foundation; either version 2.1 of the License, or * (at your option) any later version. * * This program 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 Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02111 USA. */ #include NSString *IBWillBeginTestingInterfaceNotification = @"IBWillBeginTestingInterfaceNotification"; NSString *IBDidBeginTestingInterfaceNotification = @"IBDidBeginTestingInterfaceNotification"; NSString *IBWillEndTestingInterfaceNotification = @"IBWillEndTestingInterfaceNotification"; NSString *IBDidEndTestingInterfaceNotification = @"IBDidEndTestingInterfaceNotification"; gorm-1.2.24/GormLib/COPYING.LIB0000644000000000000000000006350613410616261014247 0ustar rootroot GNU LESSER GENERAL PUBLIC LICENSE Version 2.1, February 1999 Copyright (C) 1991, 1999 Free Software Foundation, Inc. 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA Everyone is permitted to copy and distribute verbatim copies of this license document, but changing it is not allowed. [This is the first released version of the Lesser GPL. It also counts as the successor of the GNU Library Public License, version 2, hence the version number 2.1.] Preamble The licenses for most software are designed to take away your freedom to share and change it. By contrast, the GNU General Public Licenses are intended to guarantee your freedom to share and change free software--to make sure the software is free for all its users. This license, the Lesser General Public License, applies to some specially designated software packages--typically libraries--of the Free Software Foundation and other authors who decide to use it. You can use it too, but we suggest you first think carefully about whether this license or the ordinary General Public License is the better strategy to use in any particular case, based on the explanations below. When we speak of free software, we are referring to freedom of use, not price. Our General Public Licenses are designed to make sure that you have the freedom to distribute copies of free software (and charge for this service if you wish); that you receive source code or can get it if you want it; that you can change the software and use pieces of it in new free programs; and that you are informed that you can do these things. To protect your rights, we need to make restrictions that forbid distributors to deny you these rights or to ask you to surrender these rights. These restrictions translate to certain responsibilities for you if you distribute copies of the library or if you modify it. For example, if you distribute copies of the library, whether gratis or for a fee, you must give the recipients all the rights that we gave you. You must make sure that they, too, receive or can get the source code. If you link other code with the library, you must provide complete object files to the recipients, so that they can relink them with the library after making changes to the library and recompiling it. And you must show them these terms so they know their rights. We protect your rights with a two-step method: (1) we copyright the library, and (2) we offer you this license, which gives you legal permission to copy, distribute and/or modify the library. To protect each distributor, we want to make it very clear that there is no warranty for the free library. Also, if the library is modified by someone else and passed on, the recipients should know that what they have is not the original version, so that the original author's reputation will not be affected by problems that might be introduced by others. Finally, software patents pose a constant threat to the existence of any free program. We wish to make sure that a company cannot effectively restrict the users of a free program by obtaining a restrictive license from a patent holder. Therefore, we insist that any patent license obtained for a version of the library must be consistent with the full freedom of use specified in this license. Most GNU software, including some libraries, is covered by the ordinary GNU General Public License. This license, the GNU Lesser General Public License, applies to certain designated libraries, and is quite different from the ordinary General Public License. We use this license for certain libraries in order to permit linking those libraries into non-free programs. When a program is linked with a library, whether statically or using a shared library, the combination of the two is legally speaking a combined work, a derivative of the original library. The ordinary General Public License therefore permits such linking only if the entire combination fits its criteria of freedom. The Lesser General Public License permits more lax criteria for linking other code with the library. We call this license the "Lesser" General Public License because it does Less to protect the user's freedom than the ordinary General Public License. It also provides other free software developers Less of an advantage over competing non-free programs. These disadvantages are the reason we use the ordinary General Public License for many libraries. However, the Lesser license provides advantages in certain special circumstances. For example, on rare occasions, there may be a special need to encourage the widest possible use of a certain library, so that it becomes a de-facto standard. To achieve this, non-free programs must be allowed to use the library. A more frequent case is that a free library does the same job as widely used non-free libraries. In this case, there is little to gain by limiting the free library to free software only, so we use the Lesser General Public License. In other cases, permission to use a particular library in non-free programs enables a greater number of people to use a large body of free software. For example, permission to use the GNU C Library in non-free programs enables many more people to use the whole GNU operating system, as well as its variant, the GNU/Linux operating system. Although the Lesser General Public License is Less protective of the users' freedom, it does ensure that the user of a program that is linked with the Library has the freedom and the wherewithal to run that program using a modified version of the Library. The precise terms and conditions for copying, distribution and modification follow. Pay close attention to the difference between a "work based on the library" and a "work that uses the library". The former contains code derived from the library, whereas the latter must be combined with the library in order to run. GNU LESSER GENERAL PUBLIC LICENSE TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION 0. This License Agreement applies to any software library or other program which contains a notice placed by the copyright holder or other authorized party saying it may be distributed under the terms of this Lesser General Public License (also called "this License"). Each licensee is addressed as "you". A "library" means a collection of software functions and/or data prepared so as to be conveniently linked with application programs (which use some of those functions and data) to form executables. The "Library", below, refers to any such software library or work which has been distributed under these terms. A "work based on the Library" means either the Library or any derivative work under copyright law: that is to say, a work containing the Library or a portion of it, either verbatim or with modifications and/or translated straightforwardly into another language. (Hereinafter, translation is included without limitation in the term "modification".) "Source code" for a work means the preferred form of the work for making modifications to it. For a library, complete source code means all the source code for all modules it contains, plus any associated interface definition files, plus the scripts used to control compilation and installation of the library. Activities other than copying, distribution and modification are not covered by this License; they are outside its scope. The act of running a program using the Library is not restricted, and output from such a program is covered only if its contents constitute a work based on the Library (independent of the use of the Library in a tool for writing it). Whether that is true depends on what the Library does and what the program that uses the Library does. 1. You may copy and distribute verbatim copies of the Library's complete source code as you receive it, in any medium, provided that you conspicuously and appropriately publish on each copy an appropriate copyright notice and disclaimer of warranty; keep intact all the notices that refer to this License and to the absence of any warranty; and distribute a copy of this License along with the Library. You may charge a fee for the physical act of transferring a copy, and you may at your option offer warranty protection in exchange for a fee. 2. You may modify your copy or copies of the Library or any portion of it, thus forming a work based on the Library, and copy and distribute such modifications or work under the terms of Section 1 above, provided that you also meet all of these conditions: a) The modified work must itself be a software library. b) You must cause the files modified to carry prominent notices stating that you changed the files and the date of any change. c) You must cause the whole of the work to be licensed at no charge to all third parties under the terms of this License. d) If a facility in the modified Library refers to a function or a table of data to be supplied by an application program that uses the facility, other than as an argument passed when the facility is invoked, then you must make a good faith effort to ensure that, in the event an application does not supply such function or table, the facility still operates, and performs whatever part of its purpose remains meaningful. (For example, a function in a library to compute square roots has a purpose that is entirely well-defined independent of the application. Therefore, Subsection 2d requires that any application-supplied function or table used by this function must be optional: if the application does not supply it, the square root function must still compute square roots.) These requirements apply to the modified work as a whole. If identifiable sections of that work are not derived from the Library, and can be reasonably considered independent and separate works in themselves, then this License, and its terms, do not apply to those sections when you distribute them as separate works. But when you distribute the same sections as part of a whole which is a work based on the Library, the distribution of the whole must be on the terms of this License, whose permissions for other licensees extend to the entire whole, and thus to each and every part regardless of who wrote it. Thus, it is not the intent of this section to claim rights or contest your rights to work written entirely by you; rather, the intent is to exercise the right to control the distribution of derivative or collective works based on the Library. In addition, mere aggregation of another work not based on the Library with the Library (or with a work based on the Library) on a volume of a storage or distribution medium does not bring the other work under the scope of this License. 3. You may opt to apply the terms of the ordinary GNU General Public License instead of this License to a given copy of the Library. To do this, you must alter all the notices that refer to this License, so that they refer to the ordinary GNU General Public License, version 2, instead of to this License. (If a newer version than version 2 of the ordinary GNU General Public License has appeared, then you can specify that version instead if you wish.) Do not make any other change in these notices. Once this change is made in a given copy, it is irreversible for that copy, so the ordinary GNU General Public License applies to all subsequent copies and derivative works made from that copy. This option is useful when you wish to copy part of the code of the Library into a program that is not a library. 4. You may copy and distribute the Library (or a portion or derivative of it, under Section 2) in object code or executable form under the terms of Sections 1 and 2 above provided that you accompany it with the complete corresponding machine-readable source code, which must be distributed under the terms of Sections 1 and 2 above on a medium customarily used for software interchange. If distribution of object code is made by offering access to copy from a designated place, then offering equivalent access to copy the source code from the same place satisfies the requirement to distribute the source code, even though third parties are not compelled to copy the source along with the object code. 5. A program that contains no derivative of any portion of the Library, but is designed to work with the Library by being compiled or linked with it, is called a "work that uses the Library". Such a work, in isolation, is not a derivative work of the Library, and therefore falls outside the scope of this License. However, linking a "work that uses the Library" with the Library creates an executable that is a derivative of the Library (because it contains portions of the Library), rather than a "work that uses the library". The executable is therefore covered by this License. Section 6 states terms for distribution of such executables. When a "work that uses the Library" uses material from a header file that is part of the Library, the object code for the work may be a derivative work of the Library even though the source code is not. Whether this is true is especially significant if the work can be linked without the Library, or if the work is itself a library. The threshold for this to be true is not precisely defined by law. If such an object file uses only numerical parameters, data structure layouts and accessors, and small macros and small inline functions (ten lines or less in length), then the use of the object file is unrestricted, regardless of whether it is legally a derivative work. (Executables containing this object code plus portions of the Library will still fall under Section 6.) Otherwise, if the work is a derivative of the Library, you may distribute the object code for the work under the terms of Section 6. Any executables containing that work also fall under Section 6, whether or not they are linked directly with the Library itself. 6. As an exception to the Sections above, you may also combine or link a "work that uses the Library" with the Library to produce a work containing portions of the Library, and distribute that work under terms of your choice, provided that the terms permit modification of the work for the customer's own use and reverse engineering for debugging such modifications. You must give prominent notice with each copy of the work that the Library is used in it and that the Library and its use are covered by this License. You must supply a copy of this License. If the work during execution displays copyright notices, you must include the copyright notice for the Library among them, as well as a reference directing the user to the copy of this License. Also, you must do one of these things: a) Accompany the work with the complete corresponding machine-readable source code for the Library including whatever changes were used in the work (which must be distributed under Sections 1 and 2 above); and, if the work is an executable linked with the Library, with the complete machine-readable "work that uses the Library", as object code and/or source code, so that the user can modify the Library and then relink to produce a modified executable containing the modified Library. (It is understood that the user who changes the contents of definitions files in the Library will not necessarily be able to recompile the application to use the modified definitions.) b) Use a suitable shared library mechanism for linking with the Library. A suitable mechanism is one that (1) uses at run time a copy of the library already present on the user's computer system, rather than copying library functions into the executable, and (2) will operate properly with a modified version of the library, if the user installs one, as long as the modified version is interface-compatible with the version that the work was made with. c) Accompany the work with a written offer, valid for at least three years, to give the same user the materials specified in Subsection 6a, above, for a charge no more than the cost of performing this distribution. d) If distribution of the work is made by offering access to copy from a designated place, offer equivalent access to copy the above specified materials from the same place. e) Verify that the user has already received a copy of these materials or that you have already sent this user a copy. For an executable, the required form of the "work that uses the Library" must include any data and utility programs needed for reproducing the executable from it. However, as a special exception, the materials to be distributed need not include anything that is normally distributed (in either source or binary form) with the major components (compiler, kernel, and so on) of the operating system on which the executable runs, unless that component itself accompanies the executable. It may happen that this requirement contradicts the license restrictions of other proprietary libraries that do not normally accompany the operating system. Such a contradiction means you cannot use both them and the Library together in an executable that you distribute. 7. You may place library facilities that are a work based on the Library side-by-side in a single library together with other library facilities not covered by this License, and distribute such a combined library, provided that the separate distribution of the work based on the Library and of the other library facilities is otherwise permitted, and provided that you do these two things: a) Accompany the combined library with a copy of the same work based on the Library, uncombined with any other library facilities. This must be distributed under the terms of the Sections above. b) Give prominent notice with the combined library of the fact that part of it is a work based on the Library, and explaining where to find the accompanying uncombined form of the same work. 8. You may not copy, modify, sublicense, link with, or distribute the Library except as expressly provided under this License. Any attempt otherwise to copy, modify, sublicense, link with, or distribute the Library is void, and will automatically terminate your rights under this License. However, parties who have received copies, or rights, from you under this License will not have their licenses terminated so long as such parties remain in full compliance. 9. You are not required to accept this License, since you have not signed it. However, nothing else grants you permission to modify or distribute the Library or its derivative works. These actions are prohibited by law if you do not accept this License. Therefore, by modifying or distributing the Library (or any work based on the Library), you indicate your acceptance of this License to do so, and all its terms and conditions for copying, distributing or modifying the Library or works based on it. 10. Each time you redistribute the Library (or any work based on the Library), the recipient automatically receives a license from the original licensor to copy, distribute, link with or modify the Library subject to these terms and conditions. You may not impose any further restrictions on the recipients' exercise of the rights granted herein. You are not responsible for enforcing compliance by third parties with this License. 11. If, as a consequence of a court judgment or allegation of patent infringement or for any other reason (not limited to patent issues), conditions are imposed on you (whether by court order, agreement or otherwise) that contradict the conditions of this License, they do not excuse you from the conditions of this License. If you cannot distribute so as to satisfy simultaneously your obligations under this License and any other pertinent obligations, then as a consequence you may not distribute the Library at all. For example, if a patent license would not permit royalty-free redistribution of the Library by all those who receive copies directly or indirectly through you, then the only way you could satisfy both it and this License would be to refrain entirely from distribution of the Library. If any portion of this section is held invalid or unenforceable under any particular circumstance, the balance of the section is intended to apply, and the section as a whole is intended to apply in other circumstances. It is not the purpose of this section to induce you to infringe any patents or other property right claims or to contest validity of any such claims; this section has the sole purpose of protecting the integrity of the free software distribution system which is implemented by public license practices. Many people have made generous contributions to the wide range of software distributed through that system in reliance on consistent application of that system; it is up to the author/donor to decide if he or she is willing to distribute software through any other system and a licensee cannot impose that choice. This section is intended to make thoroughly clear what is believed to be a consequence of the rest of this License. 12. If the distribution and/or use of the Library is restricted in certain countries either by patents or by copyrighted interfaces, the original copyright holder who places the Library under this License may add an explicit geographical distribution limitation excluding those countries, so that distribution is permitted only in or among countries not thus excluded. In such case, this License incorporates the limitation as if written in the body of this License. 13. The Free Software Foundation may publish revised and/or new versions of the Lesser General Public License from time to time. Such new versions will be similar in spirit to the present version, but may differ in detail to address new problems or concerns. Each version is given a distinguishing version number. If the Library specifies a version number of this License which applies to it and "any later version", you have the option of following the terms and conditions either of that version or of any later version published by the Free Software Foundation. If the Library does not specify a license version number, you may choose any version ever published by the Free Software Foundation. 14. If you wish to incorporate parts of the Library into other free programs whose distribution conditions are incompatible with these, write to the author to ask for permission. For software which is copyrighted by the Free Software Foundation, write to the Free Software Foundation; we sometimes make exceptions for this. Our decision will be guided by the two goals of preserving the free status of all derivatives of our free software and of promoting the sharing and reuse of software generally. NO WARRANTY 15. BECAUSE THE LIBRARY IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY FOR THE LIBRARY, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES PROVIDE THE LIBRARY "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE LIBRARY IS WITH YOU. SHOULD THE LIBRARY PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING, REPAIR OR CORRECTION. 16. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR REDISTRIBUTE THE LIBRARY AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OR INABILITY TO USE THE LIBRARY (INCLUDING BUT NOT LIMITED TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD PARTIES OR A FAILURE OF THE LIBRARY TO OPERATE WITH ANY OTHER SOFTWARE), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES. END OF TERMS AND CONDITIONS How to Apply These Terms to Your New Libraries If you develop a new library, and you want it to be of the greatest possible use to the public, we recommend making it free software that everyone can redistribute and change. You can do so by permitting redistribution under these terms (or, alternatively, under the terms of the ordinary General Public License). To apply these terms, attach the following notices to the library. It is safest to attach them to the start of each source file to most effectively convey the exclusion of warranty; and each file should have at least the "copyright" line and a pointer to where the full notice is found. Copyright (C) This library is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser 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 Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with this library; if not, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA Also add information on how to contact you by electronic and paper mail. You should also get your employer (if you work as a programmer) or your school, if any, to sign a "copyright disclaimer" for the library, if necessary. Here is a sample; alter the names: Yoyodyne, Inc., hereby disclaims all copyright interest in the library `Frob' (a library for tweaking knobs) written by James Random Hacker. , 1 April 1990 Ty Coon, President of Vice That's all there is to it! gorm-1.2.24/GormLib/IBPlugin.h0000644000000000000000000000463413410616261014426 0ustar rootroot/* IBPlugin.h * * Copyright (C) 2007 Free Software Foundation, Inc. * * Author: Gregory John Casamento * Date: 2007 * * This file is part of GNUstep. * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU Lesser General Public License as published by * the Free Software Foundation; either version 2.1 of the License, or * (at your option) any later version. * * This program 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 Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02111 USA. */ #ifndef INCLUDED_IBPLUGIN_H #define INCLUDED_IBPLUGIN_H #include #include // forward references @class NSString; @class NSArray; @class NSView; @interface IBPlugin : NSObject // Getting the shared plugin... /** * Returns the shared instance of the plugin. */ + (id)sharedInstance; // Loading and unloading plugin resources. /** * Notifies the receiver that the plugin will be loaded. */ - (void) didLoad; /** * Notifies the receiver that the plugin will be unloaded. */ - (void) willUnload; // Getting the plugins nib files. /** * Return the array of custom nib filenames. You are required to override * this method when creating a plugin. */ - (NSArray *) libraryNibNames; // Configuring the plugin /** * Returns the name of the plugin to be displayed. */ - (NSString *) label; /** * The preferences panel/view that should be added to the preferences drop * down and preferences window. */ - (NSView *) preferencesView; /** * Returns the list of frameworks needed to support the plugin. */ - (NSArray *) requiredFrameworks; // Pasteboard notifications... /** * Notifies the receiver that one of it's components will be added to the * document. */ - (NSArray *) pasteboardObjectsForDraggedLibraryView: (NSView *)view; /** * Notifies the receiver that objects were added to the document. */ - (void) document: (id)document didAddDraggedObjects: (NSArray *)roots fromDraggedLibraryView: (NSView *)view; @end #endif gorm-1.2.24/GormLib/IBObjectAdditions.h0000644000000000000000000000223513410616261016230 0ustar rootroot/* IBObjectAdditions.h * * Copyright (C) 2003 Free Software Foundation, Inc. * * Author: Gregory John Casamento * Date: 2003 * * This file is part of GNUstep. * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU Lesser General Public License as published by * the Free Software Foundation; either version 2.1 of the License, or * (at your option) any later version. * * This program 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 Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02111 USA. */ #ifndef INCLUDED_IBOBJECTADDITIONS_H #define INCLUDED_IBOBJECTADDITIONS_H #include // object additions -- object adopts protocol @interface NSObject (IBObjectAdditions) @end #endif gorm-1.2.24/GormLib/IBInspector.m0000644000000000000000000000470213410616261015137 0ustar rootroot/* IBInspector.m * * Copyright (C) 2003 Free Software Foundation, Inc. * * Author: Gregory John Casamento * Date: 2003 * * This file is part of GNUstep. * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU Lesser General Public License as published by * the Free Software Foundation; either version 2.1 of the License, or * (at your option) any later version. * * This program 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 Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02111 USA. */ #include #include #include #include #include #include static NSNotificationCenter *nc = nil; @implementation IBInspector + (void) initialize { if(self == [IBInspector class]) { nc = [NSNotificationCenter defaultCenter]; } } - (id) init { if((self = [super init]) != nil) { [nc addObserver: self selector: @selector(_releaseObject:) name: IBWillCloseDocumentNotification object: nil]; } return self; } - (void) dealloc { [nc removeObserver: self]; RELEASE(object); [super dealloc]; } - (void) _releaseObject: (NSNotification *)notification { id doc = [notification object]; if([doc nameForObject: object] != nil) { [self setObject: nil]; } } - (NSView*) initialFirstResponder { return nil; } - (id) object { return object; } - (void) ok: sender { [self touch: sender]; } - (NSButton*) okButton { return okButton; } - (void) revert: (id)sender { [window setDocumentEdited: NO]; } - (NSButton*) revertButton { return revertButton; } - (void) setObject: (id)anObject { ASSIGN(object, anObject); [self revert: self]; } - (void) textDidBeginEditing: (NSNotification*)aNotification { } - (void) touch: (id)sender { id doc = [(id)NSApp activeDocument]; [doc touch]; } - (BOOL) wantsButtons { return NO; } - (NSWindow*) window { return window; } @end gorm-1.2.24/GormLib/IBDefines.h0000644000000000000000000000252313410616261014540 0ustar rootroot/* IBDefines.h * * Copyright (C) 2003 Free Software Foundation, Inc. * * Author: Gregory John Casamento * Date: 2003 * * This file is part of GNUstep. * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU Lesser General Public License as published by * the Free Software Foundation; either version 2.1 of the License, or * (at your option) any later version. * * This program 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 Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02111 USA. */ #ifndef INCLUDED_IBDEFINES_H #define INCLUDED_IBDEFINES_H /* * Positions of handles for resizing items. */ typedef enum { IBBottomLeftKnobPosition = 0, IBMiddleLeftKnobPosition = 1, IBTopLeftKnobPosition = 2, IBTopMiddleKnobPosition = 3, IBTopRightKnobPosition = 4, IBMiddleRightKnobPosition = 5, IBBottomRightKnobPosition = 6, IBBottomMiddleKnobPosition = 7, IBNoneKnobPosition = -1 } IBKnobPosition; #endif gorm-1.2.24/GormLib/IBInspector.h0000644000000000000000000000570713410616261015140 0ustar rootroot/* IBInspector.h * * Copyright (C) 2003 Free Software Foundation, Inc. * * Author: Gregory John Casamento * Date: 2003 * * This file is part of GNUstep. * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU Lesser General Public License as published by * the Free Software Foundation; either version 2.1 of the License, or * (at your option) any later version. * * This program 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 Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02111 USA. */ #ifndef INCLUDED_IBINSPECTOR_H #define INCLUDED_IBINSPECTOR_H #include #include #define IVH 388 /* Standard height of inspector view. */ #define IVW 272 /* Standard width of inspector view. */ #define IVB 40 /* Standard height of buttons area. */ // forward references @class NSWindow; @class NSButton; @class NSString; @class NSView; @class NSNotification; @interface IBInspector : NSObject { id object; NSWindow *window; NSButton *okButton; NSButton *revertButton; } /** * Releases all the instance variables (apart from the window, which is * presumed to release itself when closed) and removes self as an observer * of notifications before destroying self. */ - (void) dealloc; /** * The first view to be selected in the inspector. */ - (NSView*) initialFirstResponder; /** * The object being inspected. */ - (id) object; /** * Action to take when user clicks the OK button */ - (void) ok: (id)sender; /** * Inspector supplied button - the inspectors manager will position this * button for you. */ - (NSButton*) okButton; /** * Action to take when user clicks the revert button */ - (void) revert: (id)sender; /** * Inspector supplied button - the inspectors manager will position this * button for you. */ - (NSButton*) revertButton; /** * Extension - not in NeXTstep - this message is sent to your inspector to * tell it to set its edited object and make any changes to its UI needed. */ - (void) setObject: (id)anObject; /** * Used to take notice of textfields in inspector being updated. */ - (void) textDidBeginEditing: (NSNotification*)aNotification; /** * Method to mark the inspector as needing saving (ok or revert). */ - (void) touch: (id)sender; /** * If this method returns YES, the manager will partition off a section of * the inspector panel for display of 'ok' and 'revert' buttons, which * your inspector must supply. */ - (BOOL) wantsButtons; /** * The window that the UI of the inspector exists in. */ - (NSWindow*) window; @end #endif gorm-1.2.24/GormLib/IBInspectorMode.m0000644000000000000000000000451713410616261015750 0ustar rootroot/* IBInspectorMode * * Copyright (C) 2004 Free Software Foundation, Inc. * * Author: Gregory John Casamento * Date: 2004 * * This file is part of GNUstep. * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU Lesser General Public License as published by * the Free Software Foundation; either version 2.1 of the License, or * (at your option) any later version. * * This program 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 Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02111 USA. */ #include #include #include /** * IBInspectorMode is an internal class in the InterfaceBuilder framework. */ @implementation IBInspectorMode - (id) initWithIdentifier: (NSString *)ident forObject: (id)obj localizedLabel: (NSString *)lab inspectorClassName: (NSString *)cn ordering: (float)ord { if((self = [super init]) != nil) { [self setIdentifier: ident]; [self setObject: obj]; [self setLocalizedLabel: lab]; [self setInspectorClassName: cn]; [self setOrdering: ord]; } return self; } - (void) dealloc { RELEASE(identifier); // RELEASE(object); RELEASE(localizedLabel); RELEASE(inspectorClassName); [super dealloc]; } - (void) setIdentifier: (NSString *)ident { ASSIGN(identifier, ident); } - (NSString *) identifier { return identifier; } - (void) setObject: (id)obj { // don't retain the object, since we are not the owner. object = obj; } - (id) object { return object; } - (void) setLocalizedLabel: (NSString *)lab { ASSIGN(localizedLabel, lab); } - (NSString *) localizedLabel { return localizedLabel; } - (void) setInspectorClassName: (NSString *)cn { ASSIGN(inspectorClassName, cn); } - (NSString *) inspectorClassName { return inspectorClassName; } - (void) setOrdering: (float)ord { ordering = ord; } - (float) ordering { return ordering; } @end gorm-1.2.24/GormLib/IBPalette.h0000644000000000000000000000654113410616261014565 0ustar rootroot/* IBPalette.h * * Copyright (C) 2003 Free Software Foundation, Inc. * * Author: Gregory John Casamento * Date: 2003 * * This file is part of GNUstep. * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU Lesser General Public License as published by * the Free Software Foundation; either version 2.1 of the License, or * (at your option) any later version. * * This program 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 Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02111 USA. */ #ifndef INCLUDED_IBPALETTE_H #define INCLUDED_IBPALETTE_H #include #include #include #include // forward references @class NSString; @class NSImage; @class NSWindow; @class NSView; /* * Pasteboard types used for DnD when views are dragged out of a palette * window into another window in Gorm (or, in the case of IBWindowPboardType * onto the desktop). */ IB_EXTERN NSString *IBCellPboardType; IB_EXTERN NSString *IBMenuPboardType; IB_EXTERN NSString *IBMenuCellPboardType; IB_EXTERN NSString *IBObjectPboardType; IB_EXTERN NSString *IBViewPboardType; IB_EXTERN NSString *IBWindowPboardType; IB_EXTERN NSString *IBFormatterPboardType; /* * Pasteboard types used for DnD from images or sounds tab * to views or inspector's textfield onto the desktop). * NOTE: These are specific to Gorm... */ IB_EXTERN NSString *GormImagePboardType; IB_EXTERN NSString *GormSoundPboardType; IB_EXTERN NSString *GormLinkPboardType; @interface IBPalette : NSObject { NSWindow *originalWindow; NSImage *icon; id paletteDocument; } /* * For internal use only - these class methods return the information * associated with a particular view. */ + (id) objectForView: (NSView*)aView; + (NSString*) typeForView: (NSView*)aView; /** * Associate a particular object and DnD type with a view - so that * Gorm knows to initiate a DnD session with the specified object * and type rather than an archived copy of the view itsself and * the default type (IBViewPboardType). */ - (void) associateObject: (id)anObject type: (NSString*)aType with: (NSView*)aView; /** * Releases all the instance variables apart from the window (which is * presumed to release itsself when closed) and removes self as an observer * of notifications before destroying self. */ - (void) dealloc; /** * Method called by GUI builder application when a new palette has been created * and its model (nib/gorm) has been loaded. Any palette initialization should * be done here. */ - (void) finishInstantiate; /** * Return the icon representing the palette. */ - (NSImage*) paletteIcon; /** * Return the window containing the views that may be dragged from the * palette. */ - (NSWindow*) originalWindow; /** * Returns an object representing the palette which conforms to the * IBDocuments protocol. */ - (id) paletteDocument; @end #endif gorm-1.2.24/GormLib/GNUmakefile0000644000000000000000000000255513410616261014656 0ustar rootroot# # GNUmakefile # Written by Gregory John Casamento # PACKAGE_NAME = gorm include $(GNUSTEP_MAKEFILES)/common.make # # Subprojects # # # Library # PACKAGE_NAME=Gorm LIBRARY_VAR=GORM LIBRARY_NAME=libGorm libGorm_HEADER_FILES_DIR=. libGorm_HEADER_FILES_INSTALL_DIR=/InterfaceBuilder ADDITIONAL_INCLUDE_DIRS = -I.. srcdir = . include ./Version # # Additional libraries # libGorm_LIBRARIES_DEPEND_UPON += -lgnustep-gui -l$(FOUNDATION_LIBRARY_NAME) # # Header files # libGorm_HEADER_FILES= \ IBApplicationAdditions.h \ IBCellAdditions.h \ IBCellProtocol.h \ IBConnectors.h \ IBDefines.h \ IBDocuments.h \ IBEditors.h \ IBInspector.h \ IBInspectorManager.h \ IBInspectorMode.h \ IBObjectAdditions.h \ IBObjectProtocol.h \ IBPalette.h \ IBPlugin.h \ IBProjects.h \ IBProjectFiles.h \ IBResourceManager.h \ IBSystem.h \ IBViewAdditions.h \ IBViewProtocol.h \ IBViewResourceDragging.h \ InterfaceBuilder.h # # Class files # libGorm_OBJC_FILES= \ IBApplicationAdditions.m \ IBConnectors.m \ IBDocuments.m \ IBEditors.m \ IBInspector.m \ IBInspectorManager.m \ IBInspectorMode.m \ IBObjectAdditions.m \ IBPalette.m \ IBPlugin.m \ IBResourceManager.m # # C files # libGorm_C_FILES= HEADERS_INSTALL = $(libGorm_HEADER_FILES) -include GNUmakefile.preamble -include GNUmakefile.local include $(GNUSTEP_MAKEFILES)/library.make -include GNUmakefile.postamble gorm-1.2.24/GormLib/InterfaceBuilder.h0000644000000000000000000000357013410616261016162 0ustar rootroot/* InterfaceBuilder.h * * Copyright (C) 2003 Free Software Foundation, Inc. * * Author: Gregory John Casamento * Date: 2003 * * This file is part of GNUstep. * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU Lesser General Public License as published by * the Free Software Foundation; either version 2.1 of the License, or * (at your option) any later version. * * This program 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 Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02111 USA. */ #ifndef INCLUDED_INTERFACEBUILDER_H #define INCLUDED_INTERFACEBUILDER_H #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #endif gorm-1.2.24/GormLib/IBObjectProtocol.h0000644000000000000000000000446613410616261016123 0ustar rootroot/* IBObjectAdditions.h * * Copyright (C) 2003 Free Software Foundation, Inc. * * Author: Gregory John Casamento * Date: 2003 * * This file is part of GNUstep. * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU Lesser General Public License as published by * the Free Software Foundation; either version 2.1 of the License, or * (at your option) any later version. * * This program 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 Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02111 USA. */ #ifndef INCLUDED_IBOBJECTPROTOCOL_H #define INCLUDED_IBOBJECTPROTOCOL_H #include @protocol IBObjectProtocol /** * Returns YES, if receiver can be displayed in * the custom custom class inspector as a potential * class which can be switched to by the receiver. */ + (BOOL)canSubstituteForClass: (Class)origClass; /** * Called immediate after loading the document into * the interface editor application. */ - (void)awakeFromDocument: (id )doc; /** * Returns the NSImage to be used to represent an object * of the receiver's class in the editor. */ - (NSImage *)imageForViewer; /** * Label for the receiver in the model. */ - (NSString *)nibLabel: (NSString *)objectName; /** * Title to display in the inspector. */ - (NSString *)objectNameForInspectorTitle; /** * Name of attributes inspector class. */ - (NSString*) inspectorClassName; /** * Name of connection inspector class. */ - (NSString*) connectInspectorClassName; /** * Name of size inspector. */ - (NSString*) sizeInspectorClassName; /** * Name of help inspector. */ - (NSString*) helpInspectorClassName; /** * Name of class inspector. */ - (NSString*) classInspectorClassName; /** * Name of the editor for the receiver. */ - (NSString*) editorClassName; /** * List of properties not compatible with interface app. */ - (NSArray*) ibIncompatibleProperties; @end #endif gorm-1.2.24/GormLib/IBInspectorManager.h0000644000000000000000000000414413410616261016425 0ustar rootroot/* IBInspectorManager.h * * Copyright (C) 2004 Free Software Foundation, Inc. * * Author: Gregory John Casamento * Date: 2004 * * This file is part of GNUstep. * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU Lesser General Public License as published by * the Free Software Foundation; either version 2.1 of the License, or * (at your option) any later version. * * This program 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 Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02111 USA. */ #ifndef INCLUDED_IBINSPECTORMANAGER_H #define INCLUDED_IBINSPECTORMANAGER_H #include #include @class NSString, NSMutableArray; /** * Notifications to be sent prior to the action described. */ IB_EXTERN NSString *IBWillInspectObjectNotification; IB_EXTERN NSString *IBWillInspectWithModeNotification; @interface IBInspectorManager : NSObject { NSMutableArray *modes; id currentMode; id selectedObject; } /** * Create a shared instance of the class for the applicaiton. */ + (IBInspectorManager *) sharedInspectorManager; /** * Add an inspector for a given mode. This allows the addition * of inspectors for different aspects of the same object. */ - (void) addInspectorModeWithIdentifier: (NSString *)ident forObject: (id)obj localizedLabel: (NSString *)label inspectorClassName: (NSString *)className ordering: (float)ord; /** * Position in the inspector list that the "mode inspector" * appears. */ - (unsigned int) indexOfModeWithIdentifier: (NSString *)ident; @end #endif gorm-1.2.24/GormLib/Version0000644000000000000000000000064613410616261014153 0ustar rootroot # This file is included in various Makefile's to get version information. # Compatible with Bourne shell syntax, so it can included there too. # The gcc version required to compile the library. GNUSTEP_GCC=3.1.0 # GNUstep version required GNUSTEP_CORE_VERSION=0.11.0 # The version number of this release. MAJOR_VERSION=1 MINOR_VERSION=1 SUBMINOR_VERSION=0 VERSION=${MAJOR_VERSION}.${MINOR_VERSION}.${SUBMINOR_VERSION} gorm-1.2.24/GormLib/IBInspectorManager.m0000644000000000000000000000677413410616261016445 0ustar rootroot/* IBInspectorManager.m * * Copyright (C) 2004 Free Software Foundation, Inc. * * Author: Gregory John Casamento * Date: 2004 * * This file is part of GNUstep. * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU Lesser General Public License as published by * the Free Software Foundation; either version 2.1 of the License, or * (at your option) any later version. * * This program 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 Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02111 USA. */ #include #include #include #include #include #include #include #include static IBInspectorManager *_sharedInspectorManager = nil; /** * Notifications to be sent prior to the action described. */ NSString *IBWillInspectObjectNotification = @"IBWillInspectObjectNotification"; NSString *IBWillInspectWithModeNotification = @"IBWillInspectWithModeNotification"; @implementation IBInspectorManager /** * Create a shared instance of the class for the application. * If a subclass of IBInspectorManager uses this message it becomes * the shraredInspectorManager. */ + (IBInspectorManager *) sharedInspectorManager { if(_sharedInspectorManager == nil) { _sharedInspectorManager = [[self alloc] init]; } return _sharedInspectorManager; } - (id) init { if(_sharedInspectorManager == nil) { if((self = [super init]) != nil) { // set the shared instance... modes = [[NSMutableArray alloc] init]; _sharedInspectorManager = self; } } else { RELEASE(self); self = _sharedInspectorManager; } return self; } - (void) dealloc { RELEASE(modes); [super dealloc]; } /** * Add an inspector for a given mode. This allows the addition * of inspectors for different aspects of the same object. */ - (void) addInspectorModeWithIdentifier: (NSString *)ident forObject: (id)obj localizedLabel: (NSString *)label inspectorClassName: (NSString *)className ordering: (float)ord { IBInspectorMode *mode = [[IBInspectorMode alloc] initWithIdentifier: ident forObject: obj localizedLabel: label inspectorClassName: className ordering: ord]; int position = 0; int count = [modes count]; if(ord == -1) { position = count; // last } else { position = (int)ceil((double)ord); if(position > count) { position = count; } } [modes insertObject: mode atIndex: position]; } /** * Position in the inspector list that the "mode inspector" * appears. */ - (unsigned int) indexOfModeWithIdentifier: (NSString *)ident { NSEnumerator *en = [modes objectEnumerator]; int index = 0; id mode = nil; while((mode = [en nextObject]) != nil) { if([[mode identifier] isEqualToString: ident]) { break; } index++; } return index; } @end gorm-1.2.24/GormLib/IBConnectors.h0000644000000000000000000000704213410616261015301 0ustar rootroot/* Gorm.h * * Copyright (C) 2003 Free Software Foundation, Inc. * * Author: Gregory John Casamento * Date: 2003 * * This file is part of GNUstep. * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU Lesser General Public License as published by * the Free Software Foundation; either version 2.1 of the License, or * (at your option) any later version. * * This program 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 Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02111 USA. */ #ifndef INCLUDED_IBCONNECTORS_H #define INCLUDED_IBCONNECTORS_H #include #include #include #include // forward declarations @class NSString; IB_EXTERN NSString *IBWillAddConnectorNotification; IB_EXTERN NSString *IBDidAddConnectorNotification; IB_EXTERN NSString *IBWillRemoveConnectorNotification; IB_EXTERN NSString *IBDidRemoveConnectorNotification; /* * Connector objects are used to record connections between nib objects. */ @protocol IBConnectors /** * Destination for the receiver. */ - (id) destination; /** * Establish the connection. */ - (void) establishConnection; /** * The method to which the receiver will be connected. */ - (NSString*) label; /** * Replace anObject with anotherObject. This method looks at * the receiver's source and destination and replaces whichever * one matches anObject with anotherObject. */ - (void) replaceObject: (id)anObject withObject: (id)anotherObject; /** * The source of the receiver. */ - (id) source; /** * Set the receiver's destination to anObject. */ - (void) setDestination: (id)anObject; /** * Set the receiver's label. */ - (void) setLabel: (NSString*)label; /** * Set the receiver's source to anObject. */ - (void) setSource: (id)anObject; /** * Called after the document is loaded on connections. */ - (id) nibInstantiate; @end @interface NSNibConnector (IBConnectorsProtocol) @end @interface NSObject (IBNibInstantiation) /** * Invoked after loading. */ - (id) nibInstantiate; @end @interface NSApplication (IBConnections) /** * [NSApp -connectSource] returns the source object as set by the most recent * [NSApp -displayConnectionBetween:and:] */ - (id) connectSource; /** * [NSApp -connectDestination] returns the target object as set by the most * recent [NSApp -displayConnectionBetween:and:] */ - (id) connectDestination; /** * [NSApp -isConnecting] simply lets you know if a connection is in progress. */ - (BOOL) isConnecting; /** * [NSApp -stopConnecting] terminates the current connection process and * removes the connection marks from the display. */ - (void) stopConnecting; /** * [NSApp -displayConnectionBetween:and:] is used to set the source and target * objects and mark the display appropriately. Setting either source or * target to 'nil' will remove markup from any previous source or target. * NB. This method expects to be able to call the active document to ask it * for the window and rectangle in which to perform markup. */ - (void) displayConnectionBetween: (id)source and: (id)destination; @end #endif gorm-1.2.24/GormLib/IBObjectAdditions.m0000644000000000000000000000415513410616261016240 0ustar rootroot/* IBObjectAdditions.m * * Copyright (C) 2003 Free Software Foundation, Inc. * * Author: Gregory John Casamento * Date: 2003 * * This file is part of GNUstep. * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU Lesser General Public License as published by * the Free Software Foundation; either version 2.1 of the License, or * (at your option) any later version. * g * This program 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 Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02111 USA. */ #include #include #include // object additions -- object adopts protocol @implementation NSObject (_IBObjectAdditions) // Return yes if origClass can substitute for current class, otherwise NO. /* NOTE: Some versions of the runtime handle loading of class methods differently and do not replace them with the later loaded version. For this reason, this method is being removed. + (BOOL)canSubstituteForClass: (Class)origClass { return NO; } */ /** This method is called on all objects after they are loaded into the IBDocuments object. */ - (void)awakeFromDocument: (id )doc { // does nothing... } /** Name for the reciever in the name table. */ - (NSString *)nibLabel: (NSString *)objectName { NSString *label = [NSString stringWithFormat: @"%@(%@)", [self className], objectName]; return label; } /** Title to display in the inspector. */ - (NSString *)objectNameForInspectorTitle { return [self className]; } /** Lists all properties if this object not compatible with IB. */ - (NSArray*) ibIncompatibleProperties { return nil; } @end gorm-1.2.24/GormLib/IBEditors.m0000644000000000000000000000243013410616261014576 0ustar rootroot/* IBEditors.m * * Copyright (C) 2003 Free Software Foundation, Inc. * * Author: Gregory John Casamento * Date: 2003 * * This file is part of GNUstep. * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU Lesser General Public License as published by * the Free Software Foundation; either version 2.1 of the License, or * (at your option) any later version. * * This program 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 Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02111 USA. */ #include NSString *IBAttributesChangedNotification = @"IBAttributesChangedNotification"; NSString *IBInspectorDidModifyObjectNotification = @"IBInspectorDidModifyObjectNotification"; NSString *IBSelectionChangedNotification = @"IBSelectionChangedNotification"; NSString *IBClassNameChangedNotification = @"IBClassNameChangedNotification"; gorm-1.2.24/GormLib/IBSystem.h0000644000000000000000000000302313410616261014443 0ustar rootroot/** Platform specific definitions for externs Copyright (C) 2001 Free Software Foundation, Inc. Written by: Gregory John Casamento Based on AppKitDefines.h by: Adam Fedor Date: Dec, 2004 This file is part of GNUstep. 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.1 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 Lesser General Public License for more details. You should have received a copy of the GNU Library General Public License along with this library; if not, write to the Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111 USA. */ #ifndef IBSystem_INCLUDE #define IBSystem_INCLUDE #ifdef GNUSTEP_WITH_DLL #if BUILD_libGorm_DLL # if defined(__MINGW32__) /* On Mingw, the compiler will export all symbols automatically, so * __declspec(dllexport) is not needed. */ # define IB_EXTERN extern # else # define IB_EXTERN __declspec(dllexport) # endif #else # define IB_EXTERN extern __declspec(dllimport) #endif #else /* GNUSTEP_WITH[OUT]_DLL */ # define IB_EXTERN extern #endif #endif /* IBSystem_INCLUDE */ gorm-1.2.24/GormPrefs/0000755000000000000000000000000013426741712013155 5ustar rootrootgorm-1.2.24/GormPrefs/GormPrefController.m0000644000000000000000000000401713410616261017113 0ustar rootroot#include "GormPrefController.h" #include "GormGeneralPref.h" #include "GormHeadersPref.h" #include "GormShelfPref.h" #include "GormPalettesPref.h" #include "GormPluginsPref.h" #include "GormGuidelinePref.h" #include #include #include #include @implementation GormPrefController - (id) init { self = [super init]; if (self != nil) { if(![NSBundle loadNibNamed: @"GormPreferences" owner: self]) { return nil; } } return self; } - (void) awakeFromNib { _generalView = [[GormGeneralPref alloc] init]; _headersView = [[GormHeadersPref alloc] init]; _shelfView = [[GormShelfPref alloc] init]; _palettesView = [[GormPalettesPref alloc] init]; _pluginsView = [[GormPluginsPref alloc] init]; _guidelineView = [[GormGuidelinePref alloc] init]; [prefBox setContentView:[_generalView view]]; [[self panel] setFrameUsingName: @"Preferences"]; [[self panel] setFrameAutosaveName: @"Preferences"]; [[self panel] center]; } - (void) popupAction: (id)sender { int tag = -1; if ( sender != popup ) return; tag = [[sender selectedItem] tag]; switch(tag) { case 0: [prefBox setContentView: [_generalView view]]; break; case 1: [prefBox setContentView: [_headersView view]]; break; case 2: [prefBox setContentView: [_shelfView view]]; break; case 4: [prefBox setContentView: [_palettesView view]]; break; case 5: [prefBox setContentView: [_guidelineView view]]; break; case 6: [prefBox setContentView: [_pluginsView view]]; break; default: NSLog(@"Error Default (GormPrefController.m) : - (void) popupAction: (id)sender, no match for tag %d",tag); break; } } - (void) dealloc { RELEASE(_generalView); RELEASE(_headersView); RELEASE(_shelfView); RELEASE(_colorsView); RELEASE(_palettesView); RELEASE(_pluginsView); RELEASE(panel); [super dealloc]; } - (id) panel { return panel; } @end gorm-1.2.24/GormPrefs/GormHeadersPref.h0000644000000000000000000000114213410616261016332 0ustar rootroot#ifndef INCLUDED_GormHeadersPref_h #define INCLUDED_GormHeadersPref_h #include #include #include @interface GormHeadersPref : NSObject { id preloadButton; id table; id addButton; id removeButton; id window; id _view; NSMutableArray *headers; } /** * View to show in prefs panel. */ - (NSView *) view; /** * Add a header. */ - (void) addAction: (id)sender; /** * Remove a header. */ - (void) removeAction: (id)sender; /** * Called when the "preload" switch is set. */ - (void) preloadAction: (id)sender; @end #endif gorm-1.2.24/GormPrefs/GormGeneralPref.m0000644000000000000000000000656013410616261016352 0ustar rootroot/* GormGeneralPref.m * * Copyright (C) 2003, 2004, 2005 Free Software Foundation, Inc. * * Author: Gregory John Casamento * Date: 2003, 2004, 2005 * * This file is part of GNUstep. * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 3 of the License, or * (at your option) any later version. * * This program 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 General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02111 USA. */ #include "GormGeneralPref.h" #include #include #include #include #include #include #include static NSString *BACKUPFILE=@"BackupFile"; static NSString *INTTYPE=@"ClassViewType"; static NSString *REPAIRFILE=@"GormRepairFileOnLoad"; @implementation GormGeneralPref - (id) init { _view = nil; self = [super init]; if ( ! [NSBundle loadNibNamed:@"GormPrefGeneral" owner:self] ) { NSLog(@"Can not load bundle GormPrefGeneral"); return nil; } _view = [[window contentView] retain]; //Defaults { NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults]; NSString *intType = [defaults stringForKey: INTTYPE]; [backupButton setState: [defaults integerForKey: BACKUPFILE]]; // [checkConsistency setState: ([defaults boolForKey: REPAIRFILE]?NSOnState:NSOffState)]; // set the interface matrix... if([intType isEqual: @"Outline"]) { [interfaceMatrix setState: NSOnState atRow: 0 column: 0]; [interfaceMatrix setState: NSOffState atRow: 1 column: 0]; } else if([intType isEqual: @"Browser"]) { [interfaceMatrix setState: NSOffState atRow: 0 column: 0]; [interfaceMatrix setState: NSOnState atRow: 1 column: 0]; } } return self; } - (void) dealloc { TEST_RELEASE(_view); [super dealloc]; } - (NSView *) view { return _view; } - (void) backupAction: (id)sender { NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults]; [defaults setInteger:[backupButton state] forKey:BACKUPFILE]; } - (void) classesAction: (id)sender { NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults]; // NSNotificationCenter *nc = [NSNotificationCenter defaultCenter]; if([[interfaceMatrix cellAtRow: 0 column: 0] state] == NSOnState) { [defaults setObject: @"Outline" forKey: INTTYPE]; } else if([[interfaceMatrix cellAtRow: 1 column: 0] state] == NSOnState) { [defaults setObject: @"Browser" forKey: INTTYPE]; } // let the world know it's changed. // [nc postNotificationName: GormSwitchViewPreferencesNotification // object: nil]; } - (void) consistencyAction: (id)sender { NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults]; [defaults setBool: (([checkConsistency state] == NSOnState)?YES:NO) forKey: REPAIRFILE]; } @end gorm-1.2.24/GormPrefs/GormGeneralPref.h0000644000000000000000000000103513410616261016335 0ustar rootroot#ifndef INCLUDED_GormGeneralPref_h #define INCLUDED_GormGeneralPref_h #include #include @interface GormGeneralPref : NSObject { id window; id backupButton; id interfaceMatrix; id checkConsistency; id _view; } /** * View to be shown. */ - (NSView *) view; /** * Should create a backup file. */ - (void) backupAction: (id)sender; /** * Show the classes view as a browser or an outline. */ - (void) classesAction: (id)sender; - (void) consistencyAction: (id)sender; @end #endif gorm-1.2.24/GormPrefs/GNUmakefile.preamble0000644000000000000000000000217613410616261017014 0ustar rootroot# GNUmakefile: main makefile for GNUstep Object Relationship Modeller # # Copyright (C) 2003 Free Software Foundation, Inc. # # Author: Gregory John Casamento # Date: 2003 # # This file is part of GNUstep. # # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 2 of the License, or # (at your option) any later version. # # This program 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 General Public License for more details. # # You should have received a copy of the GNU General Public License # along with this program; if not, write to the Free Software # Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA # # ADDITIONAL_OBJCFLAGS += -Wall -Werror ADDITIONAL_GUI_LIBS += \ -lGormCore \ -lGorm ADDITIONAL_LIB_DIRS += \ -L../GormLib/$(GNUSTEP_OBJ_DIR) \ -L../GormCore/$(GNUSTEP_OBJ_DIR) gorm-1.2.24/GormPrefs/GormPluginsPref.m0000644000000000000000000000607013410616261016412 0ustar rootroot#/* GormPluginsPref.m * * Copyright (C) 2004 Free Software Foundation, Inc. * * Author: Gregory John Casamento * Date: 2004 * * This file is part of GNUstep. * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 3 of the License, or * (at your option) any later version. * * This program 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 General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02111 USA. */ #include #include #include #include #include #include "GormPluginsPref.h" @class NSTableView; // data source... @interface PluginDataSource : NSObject @end @implementation PluginDataSource - (NSInteger) numberOfRowsInTableView: (NSTableView *)tv { NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults]; NSArray *list = [defaults objectForKey: @"UserPlugins"]; return [list count]; } - (id) tableView: (NSTableView *)tv objectValueForTableColumn: (NSTableColumn *)tc row: (NSInteger)rowIndex { NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults]; NSArray *list = [defaults objectForKey: @"UserPlugins"]; id value = nil; if([list count] > 0) { value = [[list objectAtIndex: rowIndex] lastPathComponent]; } return value; } @end @implementation GormPluginsPref - (id) init { _view = nil; self = [super init]; if ( ! [NSBundle loadNibNamed:@"GormPrefPlugins" owner:self] ) { NSLog(@"Can not load bundle GormPrefPlugins"); return nil; } _view = [[(NSWindow *)window contentView] retain]; return self; } - (void) dealloc { TEST_RELEASE(_view); [super dealloc]; } -(NSView *) view { return _view; } - (void) addAction: (id)sender { [[(id)NSApp pluginManager] openPlugin: self]; [table reloadData]; } - (void) removeAction: (id)sender { NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults]; NSMutableArray *list = [defaults objectForKey: @"UserPlugins"]; int row = [table selectedRow]; if(row >= 0) { NSString *stringValue = [list objectAtIndex: row]; if(stringValue != nil) { [list removeObject: stringValue]; [defaults setObject: list forKey: @"UserPlugins"]; [table reloadData]; } } } - (BOOL) tableView: (NSTableView *)tableView shouldEditTableColumn: (NSTableColumn *)aTableColumn row: (NSInteger)rowIndex { BOOL result = NO; return result; } - (BOOL) tableView: (NSTableView *)tv shouldSelectRow: (NSInteger)rowIndex { BOOL result = YES; return result; } @end gorm-1.2.24/GormPrefs/GormPrefController.h0000644000000000000000000000275613410616261017116 0ustar rootroot/* GormShelfPref.m * * Copyright (C) 2003 Free Software Foundation, Inc. * * Author: Gregory Casamento * Date: February 2004 * * This class is heavily based on work done by Enrico Sersale * on ShelfPref.m for GWorkspace. * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 3 of the License, or * (at your option) any later version. * * This program 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 General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ #ifndef INCLUDED_GormPrefController_h #define INCLUDED_GormPrefController_h #include #include @interface GormPrefController : NSObject { id panel; id popup; id prefBox; id _generalView; id _headersView; id _shelfView; id _colorsView; id _palettesView; id _pluginsView; id _guidelineView; } /** * Called when the popup is used to select a pref panel. */ - (void) popupAction: (id)sender; /** * Return the preferences panel. */ - (id) panel; @end #endif gorm-1.2.24/GormPrefs/GormPalettesPref.m0000644000000000000000000000603613410616261016554 0ustar rootroot#/* GormPalettesPref.m * * Copyright (C) 2004 Free Software Foundation, Inc. * * Author: Gregory John Casamento * Date: 2004 * * This file is part of GNUstep. * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 3 of the License, or * (at your option) any later version. * * This program 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 General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02111 USA. */ #include #include #include #include #include "GormPalettesPref.h" @class NSTableView; // data source... @interface PaletteDataSource : NSObject @end @implementation PaletteDataSource - (NSInteger) numberOfRowsInTableView: (NSTableView *)tv { NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults]; NSArray *list = [defaults objectForKey: @"UserPalettes"]; return [list count]; } - (id) tableView: (NSTableView *)tv objectValueForTableColumn: (NSTableColumn *)tc row: (NSInteger)rowIndex { NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults]; NSArray *list = [defaults objectForKey: @"UserPalettes"]; id value = nil; if([list count] > 0) { value = [[list objectAtIndex: rowIndex] lastPathComponent]; } return value; } @end @implementation GormPalettesPref - (id) init { _view = nil; self = [super init]; if ( ! [NSBundle loadNibNamed:@"GormPrefPalettes" owner:self] ) { NSLog(@"Can not load bundle GormPrefPalettes"); return nil; } _view = [[(NSWindow *)window contentView] retain]; return self; } - (void) dealloc { TEST_RELEASE(_view); [super dealloc]; } -(NSView *) view { return _view; } - (void) addAction: (id)sender { [[(id)NSApp palettesManager] openPalette: self]; [table reloadData]; } - (void) removeAction: (id)sender { NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults]; NSMutableArray *list = [defaults objectForKey: @"UserPalettes"]; int row = [table selectedRow]; if(row >= 0) { NSString *stringValue = [list objectAtIndex: row]; if(stringValue != nil) { [list removeObject: stringValue]; [defaults setObject: list forKey: @"UserPalettes"]; [table reloadData]; } } } - (BOOL) tableView: (NSTableView *)tableView shouldEditTableColumn: (NSTableColumn *)aTableColumn row: (NSInteger)rowIndex { BOOL result = NO; return result; } - (BOOL) tableView: (NSTableView *)tv shouldSelectRow: (NSInteger)rowIndex { BOOL result = YES; return result; } @end gorm-1.2.24/GormPrefs/GormPluginsPref.h0000644000000000000000000000100313410616261016374 0ustar rootroot#ifndef INCLUDED_GormPluginsPref_h #define INCLUDED_GormPluginsPref_h #include #include #include @interface GormPluginsPref : NSObject { id table; id addButton; id removeButton; id window; id _view; } /** * View to be shown in the preferences panel. */ - (NSView *) view; /** * Add a palette to the list. */ - (void) addAction: (id)sender; /** * Remove a palette from the list. */ - (void) removeAction: (id)sender; @end #endif gorm-1.2.24/GormPrefs/GormShelfPref.m0000644000000000000000000001652013410616261016033 0ustar rootroot/* GormShelfPref.m * * Copyright (C) 2003 Free Software Foundation, Inc. * * Author: Gregory Casamento * Date: February 2004 * * Author: Enrico Sersale * Date: August 2001 * * This class is heavily based on work done by Enrico Sersale * on ShelfPref.m for GWorkspace. * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 3 of the License, or * (at your option) any later version. * * This program 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 General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ #include #include #include #include #include "GormShelfPref.h" #define BOX_W 197 #define NAME_OR_Y 5 #define NAME_W 16 #define NAME_MARGIN 6 #ifndef max #define max(a,b) ((a) > (b) ? (a):(b)) #endif #ifndef min #define min(a,b) ((a) < (b) ? (a):(b)) #endif static NSString *nibName = @"GormShelfPref"; @implementation ArrResizer - (void)dealloc { RELEASE (arrow); [super dealloc]; } - (id)initForController:(id)acontroller withPosition:(ArrowPosition)pos { self = [super init]; [self setFrame: NSMakeRect(0, 0, 16, 16)]; position = pos; controller = acontroller; if (position == leftarrow) { ASSIGN (arrow, [NSImage imageNamed: @"LeftArr.tiff"]); } else { ASSIGN (arrow, [NSImage imageNamed: @"RightArr.tiff"]); } return self; } - (ArrowPosition)position { return position; } - (void)mouseDown:(NSEvent *)e { [controller startMouseEvent: e onResizer: self]; } - (void)drawRect:(NSRect)rect { [super drawRect: rect]; [arrow compositeToPoint: NSZeroPoint operation: NSCompositeSourceOver]; } @end @implementation GormShelfPref - (void)dealloc { [[NSNotificationCenter defaultCenter] removeObserver: self]; TEST_RELEASE (prefbox); RELEASE (leftResizer); RELEASE (rightResizer); RELEASE (fname); [super dealloc]; } - (id)init { self = [super init]; if ((self = [super init]) != nil) { if ([NSBundle loadNibNamed: nibName owner: self] == NO) { NSLog(@"failed to load %@!", nibName); } else { int orx; RETAIN (prefbox); RELEASE (win); [imView setImageScaling: NSScaleProportionally]; // set up the info... [imView setImage: [NSImage imageNamed: @"GormObject.tiff"]]; ASSIGN(fname, @"GormSampleObjectName"); cellsWidth = [self shelfCellsWidth]; orx = (int)((BOX_W - cellsWidth) / 2); leftResizer = [[ArrResizer alloc] initForController: self withPosition: leftarrow]; [leftResizer setFrame: NSMakeRect(0, 0, NAME_W, NAME_W)]; [(NSBox *)leftResBox setContentView: leftResizer]; [leftResBox setFrame: NSMakeRect(orx - NAME_W, NAME_OR_Y, NAME_W, NAME_W)]; rightResizer = [[ArrResizer alloc] initForController: self withPosition: rightarrow]; [rightResizer setFrame: NSMakeRect(0, 0, NAME_W, NAME_W)]; [(NSBox *)rightResBox setContentView: rightResizer]; [rightResBox setFrame: NSMakeRect(orx + cellsWidth, NAME_OR_Y, NAME_W, NAME_W)]; [nameField setFrame: NSMakeRect(orx, NAME_OR_Y, cellsWidth, NAME_W)]; [nameField setStringValue: cutFileLabelText(fname, nameField, cellsWidth -NAME_MARGIN)]; /* Internationalization */ [setButt setTitle: _(@"Default")]; [iconbox setTitle: _(@"Title Width")]; } } return self; } - (NSView *)view { return ((NSView *)prefbox); } - (void)selectionChanged:(NSNotification *)n { /* NSArray *selPaths = [gw selectedPaths]; int count = [selPaths count]; NSString *fpath = [selPaths objectAtIndex: 0]; NSString *defApp; NSString *type; ASSIGN (fname, [fpath lastPathComponent]); [imView setImage: @"GormObject.tiff"]; cellsWidth = [self shelfCellsWidth]; [self tile]; */ } - (int) shelfCellsWidth { // return the current cell width; return [[NSUserDefaults standardUserDefaults] integerForKey: @"CellSizeWidth"]; } - (void)tile { int orx = (int)((BOX_W - cellsWidth) / 2); [nameField setFrame: NSMakeRect(orx, NAME_OR_Y, cellsWidth, NAME_W)]; [nameField setStringValue: cutFileLabelText(fname, nameField, cellsWidth -NAME_MARGIN)]; [leftResBox setFrame: NSMakeRect(orx - NAME_W, NAME_OR_Y, NAME_W, NAME_W)]; [rightResBox setFrame: NSMakeRect(orx + cellsWidth, NAME_OR_Y, NAME_W, NAME_W)]; [iconbox setNeedsDisplay: YES]; } - (void)startMouseEvent:(NSEvent *)event onResizer:(ArrResizer *)resizer { NSApplication *app = [NSApplication sharedApplication]; NSDate *farAway = [NSDate distantFuture]; ArrowPosition pos = [resizer position]; int orx = (int)[prefbox convertPoint: [event locationInWindow] fromView: nil].x; NSView *resbox1 = (pos == leftarrow) ? leftResBox : rightResBox; NSView *resbox2 = (pos == leftarrow) ? rightResBox : leftResBox; unsigned int eventMask = NSLeftMouseUpMask | NSLeftMouseDraggedMask; NSEvent *e; [prefbox lockFocus]; [[NSRunLoop currentRunLoop] limitDateForMode: NSEventTrackingRunLoopMode]; e = [app nextEventMatchingMask: eventMask untilDate: farAway inMode: NSEventTrackingRunLoopMode dequeue: YES]; while ([e type] != NSLeftMouseUp) { int x = (int)[prefbox convertPoint: [e locationInWindow] fromView: nil].x; int diff = x - orx; int orx1 = (int)[resbox1 frame].origin.x; int orx2 = (int)[resbox2 frame].origin.x; if ((max(orx1 + diff, orx2 - diff) - min(orx1 + diff, orx2 - diff)) < 160 && (max(orx1 + diff, orx2 - diff) - min(orx1 + diff, orx2 - diff)) > 70) { int fieldwdt = max(orx1 + diff, orx2 - diff) - min(orx1 + diff, orx2 - diff) - NAME_W; int nameforx = (int)((BOX_W - fieldwdt) / 2); [resbox1 setFrameOrigin: NSMakePoint(orx1 + diff, NAME_OR_Y)]; [resbox2 setFrameOrigin: NSMakePoint(orx2 - diff, NAME_OR_Y)]; [nameField setFrame: NSMakeRect(nameforx, NAME_OR_Y, fieldwdt, NAME_W)]; [nameField setStringValue: cutFileLabelText(fname, nameField, fieldwdt -NAME_MARGIN)]; [iconbox setNeedsDisplay: YES]; orx = x; } e = [app nextEventMatchingMask: eventMask untilDate: farAway inMode: NSEventTrackingRunLoopMode dequeue: YES]; } [prefbox unlockFocus]; [self setNewWidth: (int)[nameField frame].size.width]; [setButt setEnabled: YES]; } - (void) _postNotification { NSDebugLog(@"Notify the app that the size has changed...."); [[NSNotificationCenter defaultCenter] postNotificationName: GormResizeCellNotification object: self]; } - (void)setNewWidth:(int)w { // set the new default... [[NSUserDefaults standardUserDefaults] setInteger: w forKey: @"CellSizeWidth"]; [self _postNotification]; } - (void)setDefaultWidth:(id)sender { // set some default width... cellsWidth = 72; [[NSUserDefaults standardUserDefaults] setInteger: cellsWidth forKey: @"CellSizeWidth"]; [self tile]; [setButt setEnabled: NO]; [self _postNotification]; } @end gorm-1.2.24/GormPrefs/GormGuidelinePref.h0000644000000000000000000000271213410616261016670 0ustar rootroot/* GormGuidelinePref.h * * Copyright (C) 2003 Free Software Foundation, Inc. * * Author: Gregory John Casamento * Date: 1999, 2003, 2005 * * This file is part of GNUstep. * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 3 of the License, or * (at your option) any later version. * * This program 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 General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02111 USA. */ #ifndef INCLUDED_GormGuidelinePref_h #define INCLUDED_GormGuidelinePref_h #include #include #include @class NSWindow; @interface GormGuidelinePref : NSObject { NSWindow *window; id _view; id spacingSlider; id currentSpacing; id halfSpacing; id colorWell; } /** * View to show in prefs panel. */ - (NSView *) view; /** * Called when the guidline preferences are changed. */ - (void)ok: (id)sender; /** * Reset to defaults. */ - (void)reset: (id)sender; @end #endif gorm-1.2.24/GormPrefs/GormShelfPref.h0000644000000000000000000000456613410616261016035 0ustar rootroot/* GormShelfPref.h * * Copyright (C) 2003 Free Software Foundation, Inc. * * Author: Gregory Casamento * Date: February 2004 * * Author: Enrico Sersale * Date: August 2001 * * This class is heavily based on work done by Enrico Sersale * on ShelfPref.h for GWorkspace. * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 3 of the License, or * (at your option) any later version. * * This program 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 General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ #ifndef GORMSHELFPREF_H #define GORMSHELFPREF_H #include #include typedef enum { leftarrow, rightarrow } ArrowPosition; @class NSEvent; @class NSNotification; @interface ArrResizer : NSView { NSImage *arrow; ArrowPosition position; id controller; } - (id)initForController:(id)acontroller withPosition:(ArrowPosition)pos; - (ArrowPosition)position; @end @interface GormShelfPref : NSObject { IBOutlet id win; IBOutlet id prefbox; IBOutlet id iconbox; IBOutlet id imView; IBOutlet id leftResBox; IBOutlet id rightResBox; IBOutlet id nameField; IBOutlet id setButt; ArrResizer *leftResizer; ArrResizer *rightResizer; NSString *fname; int cellsWidth; } /** * Sets the frame for the resize arrows. */ - (void)tile; /** * Called when the selection is changed. */ - (void)selectionChanged:(NSNotification *)n; /** * Invoked when the resizer widgets are moved. */ - (void)startMouseEvent:(NSEvent *)event onResizer:(ArrResizer *)resizer; /** * Programmatically set a width. */ - (void)setNewWidth:(int)w; /** * Set the resizer back to the default width. */ - (IBAction)setDefaultWidth:(id)sender; /** * The view to display in the prefs panel. */ - (NSView *)view; /** * Return the current width. */ - (int) shelfCellsWidth; @end #endif gorm-1.2.24/GormPrefs/GormGuidelinePref.m0000644000000000000000000000344613410616261016702 0ustar rootroot#include "GormGuidelinePref.h" #include #include #include #include #include #include @implementation GormGuidelinePref - (id) init { if((self = [super init]) != nil) { NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults]; int spacing = [defaults integerForKey: @"GuideSpacing"]; NSColor *aColor = colorFromDict([defaults objectForKey: @"GuideColor"]); // default the color to something, if nothing is returned. if(aColor == nil) { aColor = [NSColor redColor]; } if ( [NSBundle loadNibNamed:@"GormPrefGuideline" owner:self] == NO ) { NSLog(@"Can not load bundle GormPrefGuideline"); return nil; } [colorWell setColor: aColor]; [spacingSlider setIntValue: spacing]; [currentSpacing setIntValue: spacing]; [halfSpacing setIntValue: spacing/2]; _view = [[window contentView] retain]; } return self; } - (void) dealloc { TEST_RELEASE(_view); [super dealloc]; } -(NSView *) view { return _view; } - (void) ok: (id)sender { NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults]; if(sender == spacingSlider) { int spacing = [spacingSlider intValue]; [currentSpacing setIntValue: spacing]; [halfSpacing setIntValue: spacing/2]; [defaults setInteger: spacing forKey: @"GuideSpacing"]; } else if(sender == colorWell) { NSColor *color = [colorWell color]; [defaults setObject: colorToDict(color) forKey: @"GuideColor"]; } } - (void) reset: (id)sender { [spacingSlider setIntValue: 10]; [colorWell setColor: [NSColor redColor]]; [self ok: spacingSlider]; [self ok: colorWell]; } @end gorm-1.2.24/GormPrefs/GNUmakefile0000644000000000000000000000251513410616261015223 0ustar rootroot# # GNUmakefile # Written by Gregory John Casamento # PACKAGE_NAME = gorm include $(GNUSTEP_MAKEFILES)/common.make # # Subprojects # # # Framework # PACKAGE_NAME=GormPrefs LIBRARY_VAR=GORMPREFS LIBRARY_NAME=GormPrefs GormPrefs_HEADER_FILES_DIR=. GormPrefs_HEADER_FILES_INSTALL_DIR=/GormPrefs ADDITIONAL_INCLUDE_DIRS = -I.. srcdir = . include ../Version # # Additional libraries # GormPrefs_LIBRARIES_DEPEND_UPON += -lgnustep-gui -l$(FOUNDATION_LIBRARY_NAME) # # Header files # GormPrefs_HEADER_FILES= \ GormGeneralPref.h \ GormGuidelinePref.h \ GormHeadersPref.h \ GormPalettesPref.h \ GormPluginsPref.h \ GormPrefController.h \ GormShelfPref.h # # Class files # GormPrefs_OBJC_FILES= \ GormGeneralPref.m \ GormGuidelinePref.m \ GormHeadersPref.m \ GormPalettesPref.m \ GormPluginsPref.m \ GormPrefController.m \ GormShelfPref.m # # Resources # #GormPrefs_LOCALIZED_RESOURCE_FILES= \ #GormPrefColors.gorm \ #GormPreferences.gorm \ #GormPrefGeneral.gorm \ #GormPrefGuideline.gorm \ #GormPrefHeaders.gorm \ #GormPrefPalettes.gorm \ #GormShelfPref.gorm # # Languages # #GormPrefs_LANGUAGES= \ #English # # C files # GormPrefs_C_FILES= HEADERS_INSTALL = $(GormPrefs_HEADER_FILES) -include GNUmakefile.preamble -include GNUmakefile.local include $(GNUSTEP_MAKEFILES)/library.make -include GNUmakefile.postamble gorm-1.2.24/GormPrefs/GormHeadersPref.m0000644000000000000000000000601613410616261016344 0ustar rootroot#include "GormHeadersPref.h" #include #include #include #include #include #include #include // data source... @interface HeaderDataSource : NSObject @end @implementation HeaderDataSource - (NSInteger) numberOfRowsInTableView: (NSTableView *)tv { NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults]; NSArray *list = [defaults objectForKey: @"HeaderList"]; return [list count]; } - (id) tableView: (NSTableView *)tv objectValueForTableColumn: (NSTableColumn *)tc row: (NSInteger)rowIndex { NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults]; NSArray *list = [defaults objectForKey: @"HeaderList"]; id value = nil; // NSFontAttributeName if([list count] > 0) { value = [[list objectAtIndex: rowIndex] lastPathComponent]; } return value; } @end @implementation GormHeadersPref - (id) init { _view = nil; self = [super init]; if ( ! [NSBundle loadNibNamed:@"GormPrefHeaders" owner:self] ) { NSLog(@"Can not load bundle GormPrefHeaders"); return nil; } _view = [[window contentView] retain]; return self; } - (void) dealloc { TEST_RELEASE(_view); [super dealloc]; } -(NSView *) view { return _view; } - (void) addAction: (id)sender { NSArray *fileTypes = [NSArray arrayWithObjects: @"h", @"H", nil]; NSOpenPanel *openPanel = [NSOpenPanel openPanel]; int result; [openPanel setAllowsMultipleSelection: YES]; [openPanel setCanChooseFiles: YES]; [openPanel setCanChooseDirectories: NO]; result = [openPanel runModalForDirectory: nil file: nil types: fileTypes]; if (result == NSOKButton) { NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults]; NSMutableArray *list = [defaults objectForKey: @"HeaderList"]; [list addObjectsFromArray: [openPanel filenames]]; [defaults setObject: list forKey: @"HeaderList"]; [table reloadData]; } } - (void) removeAction: (id)sender { NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults]; NSMutableArray *list = [defaults objectForKey: @"HeaderList"]; int row = [table selectedRow]; if(row >= 0) { NSString *stringValue = [list objectAtIndex: row]; if(stringValue != nil) { [list removeObject: stringValue]; [table reloadData]; } } } - (void) preloadAction: (id)sender { if (sender != preloadButton) { return; } else { NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults]; [defaults setBool: ([preloadButton state] == NSOnState?YES:NO) forKey:@"PreloadHeaders"]; } } - (BOOL) tableView: (NSTableView *)tableView shouldEditTableColumn: (NSTableColumn *)aTableColumn row: (NSInteger)rowIndex { BOOL result = NO; return result; } - (BOOL) tableView: (NSTableView *)tv shouldSelectRow: (NSInteger)rowIndex { BOOL result = YES; return result; } @end gorm-1.2.24/GormPrefs/GormPalettesPref.h0000644000000000000000000000100613410616261016537 0ustar rootroot#ifndef INCLUDED_GormPalettesPref_h #define INCLUDED_GormPalettesPref_h #include #include #include @interface GormPalettesPref : NSObject { id table; id addButton; id removeButton; id window; id _view; } /** * View to be shown in the preferences panel. */ - (NSView *) view; /** * Add a palette to the list. */ - (void) addAction: (id)sender; /** * Remove a palette from the list. */ - (void) removeAction: (id)sender; @end #endif gorm-1.2.24/README0000644000000000000000000000202313426755310012125 0ustar rootroot1 Introduction ============== Read the NEWS file for the latest user visible changes. Read the INSTALL file for installation instructions. Gorm is an acronym for Graphic Object Relationship modeler (or perhaps GNUstep Object Relationship Modeler). Gorm is a clone of the Cocoa (OpenStep/NeXTSTEP) 'Interface Builder' application for GNUstep. Gorm is part of the GNUstep project, and is copyrighted by the Free Software Foundation. Gorm is released under the GPL - see the file 'COPYING' for details. Documentation for Gorm is located in the Documentation directory. It's also available on the wiki at http://wiki.gnustep.org/index.php/Gorm_Manual. 2 Status ======== Gorm is usable and stable. Please report bugs to bug-gnustep@gnu.org Known problems (things to do) - 1. Support for IB 3.0 functionality. 2. More palettes. 3 Acknowledgements ================== 1. Icons - Mostly by Andrew Lindsay. Gorm application icon by Jesse Ross. 2. Code - GormViewKnobs.m adapted from code by Gerrit van Dyk. gorm-1.2.24/GNUmakefile.postamble0000644000000000000000000000242713410616261015306 0ustar rootroot# # GNUmakefile.postamble # # Copyright (C) 2003 Free Software Foundation, Inc. # # Author: Gregory John Casamento # # This file is part of GNUstep # # 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, # 51 Franklin Street, Fifth Floor, Boston, MA 02111 # USA. # # Define this variable if not defined for backwards-compatibility as # it is only available in gnustep-make >= 2.0.5 ifeq ($(LN_S_RECURSIVE),) LN_S_RECURSIVE = $(LN_S) endif before-all:: $(RM_LN_S) InterfaceBuilder; \ $(LN_S_RECURSIVE) GormLib InterfaceBuilder after-all:: after-clean:: after-distclean:: after-clean:: $(RM_LN_S) InterfaceBuilder gorm-1.2.24/ANNOUNCE0000644000000000000000000000240513426755324012407 0ustar rootroot1 ANNOUNCE ********** This is version 1.2.24 of Gorm. 1.1 What is Gorm? ================= Gorm is an acronym for Graphic Object Relationship modeler (or perhaps GNUstep Object Relationship Modeler). Gorm is a clone of the Cocoa (OpenStep/NeXTSTEP) 'Interface Builder' application for GNUstep. 1.2 Noteworthy changes in version '1.2.24' ========================================== * Fix for issue where Gorm was referencing private variables. This caused a crash when built with clang. 1.3 How can I get support for this software? ============================================ You may wish to use the GNUstep discussion mailing list for general questions and discussion. Look at the GNUstep Web Pages for more information regarding GNUstep resources 1.4 Where can you get it? How can you compile it? ================================================= You can download sources and rpms (for some machines) from . 1.5 Where do I send bug reports? ================================ Bug reports can be sent to . 1.6 Obtaining GNU Software ========================== Check out the GNUstep web site. (), and the GNU web site. () gorm-1.2.24/Gorm.spec.in0000644000000000000000000000070713410616261013433 0ustar rootrootSummary: The GNUstep graphical interface builder Release: 1 Copyright: GPL Group: Development/Tools Source: ftp://ftp.gnustep.org/pub/gnustep/dev-apps/%{gs_name}-%{gs_version}.tar.gz Requires: gnustep-gui %description Gorm is an acronym for GNUstep/Graphical Object Relationship Modeler. It is a clone of the NeXTstep `Interface Builder' application for GNUstep. With Gorm, a developer can build an interface very quickly and easily with no code. gorm-1.2.24/GNUmakefile.preamble0000644000000000000000000000255513410616261015111 0ustar rootroot# GNUmakefile: main makefile for GNUstep Object Relationship Modeller # # Copyright (C) 2003 Free Software Foundation, Inc. # # Author: Gregory John Casamento # Date: 2003 # # This file is part of GNUstep. # # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 2 of the License, or # (at your option) any later version. # # This program 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 General Public License for more details. # # You should have received a copy of the GNU General Public License # along with this program; if not, write to the Free Software # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02111 # USA. # # ADDITIONAL_OBJCFLAGS += -Wall -Werror ADDITIONAL_GUI_LIBS += \ -lGormCore \ -lGorm \ -lGormObjCHeaderParser \ -lGormPrefs ADDITIONAL_INCLUDE_DIRS += \ -IInterfaceBuilder \ -IGormObjCHeaderParser \ -IGormPrefs \ -IGormCore ADDITIONAL_LIB_DIRS += \ -LGormLib/$(GNUSTEP_OBJ_DIR) \ -LGormObjCHeaderParser/$(GNUSTEP_OBJ_DIR) \ -LGormPrefs/$(GNUSTEP_OBJ_DIR) \ -LGormCore/$(GNUSTEP_OBJ_DIR) gorm-1.2.24/Plugins/0000755000000000000000000000000013410616261012663 5ustar rootrootgorm-1.2.24/Plugins/Gorm/0000755000000000000000000000000013426741712013576 5ustar rootrootgorm-1.2.24/Plugins/Gorm/GormGormWrapperBuilder.m0000644000000000000000000002336513410616261020357 0ustar rootroot/* GormWrapperBuilder * * This class is a subclass of the NSDocumentController * * Copyright (C) 2006 Free Software Foundation, Inc. * * Author: Gregory John Casamento * Date: 2006 * * This file is part of GNUstep. * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 3 of the License, or * (at your option) any later version. * * This program 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 General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02111 USA. */ #include #include #include #include #include #include #include #include #include #include @interface GormDocument (BuilderAdditions) - (void) prepareConnections; - (void) resetConnections; @end @implementation GormDocument (BuilderAdditions) /** * Start the process of archiving. */ - (void) prepareConnections { NSEnumerator *enumerator; id con; id obj; /* * Map all connector sources and destinations to their name strings. * Deactivate editors so they won't be archived. */ enumerator = [connections objectEnumerator]; while ((con = [enumerator nextObject]) != nil) { NSString *name; obj = [con source]; name = [self nameForObject: obj]; [con setSource: name]; obj = [con destination]; name = [self nameForObject: obj]; [con setDestination: name]; } /* * Remove objects and connections that shouldn't be archived. */ NSMapRemove(objToName, (void*)[nameTable objectForKey: @"NSOwner"]); [nameTable removeObjectForKey: @"NSOwner"]; NSMapRemove(objToName, (void*)[nameTable objectForKey: @"NSFirst"]); [nameTable removeObjectForKey: @"NSFirst"]; /* Add information about the NSOwner to the archive */ NSMapInsert(objToName, (void*)[filesOwner className], (void*)@"NSOwner"); [nameTable setObject: [filesOwner className] forKey: @"NSOwner"]; /* * Set the appropriate profile so that we save the right versions of * the classes for older GNUstep releases. */ [filePrefsManager setClassVersions]; } /** * Stop the archiving process. */ - (void) resetConnections { NSEnumerator *enumerator; id con; id obj; /* * Restore class versions. */ [filePrefsManager restoreClassVersions]; /* * Restore removed objects. */ [nameTable setObject: filesOwner forKey: @"NSOwner"]; NSMapInsert(objToName, (void*)filesOwner, (void*)@"NSOwner"); [nameTable setObject: firstResponder forKey: @"NSFirst"]; NSMapInsert(objToName, (void*)firstResponder, (void*)@"NSFirst"); /* * Map all connector source and destination names to their objects. */ enumerator = [connections objectEnumerator]; while ((con = [enumerator nextObject]) != nil) { NSString *name; name = (NSString*)[con source]; obj = [self objectForName: name]; [con setSource: obj]; name = (NSString*)[con destination]; obj = [self objectForName: name]; [con setDestination: obj]; } } @end @interface GSNibContainer (BuilderAdditions) - (id) initWithDocument: (GormDocument *)document; @end; @implementation GSNibContainer (BuilderAdditions) - (id) initWithDocument: (GormDocument *)document { if((self = [self init]) != nil) { NSDictionary *custom = [[document classManager] customClassMap]; // Create the container for the .gorm file... [topLevelObjects addObjectsFromArray: [[document topLevelObjects] allObjects]]; [nameTable addEntriesFromDictionary: [document nameTable]]; [connections addObjectsFromArray: [document connections]]; [visibleWindows addObjectsFromArray: [[document visibleWindows] allObjects]]; [deferredWindows addObjectsFromArray: [[document deferredWindows] allObjects]]; [customClasses addEntriesFromDictionary: custom]; } return self; } @end @interface GormGormWrapperBuilder : GormWrapperBuilder @end @implementation GormGormWrapperBuilder + (NSString *) fileType { return @"GSGormFileType"; } /** * Private method which iterates through the list of custom classes and instructs * the archiver to replace the actual object with template during the archiving * process. */ - (void) _replaceObjectsWithTemplates: (NSArchiver *)archiver { NSEnumerator *en = [[document nameTable] keyEnumerator]; GormClassManager *classManager = [document classManager]; GormFilePrefsManager *filePrefsManager = [document filePrefsManager]; id key = nil; // loop through all custom objects and windows while((key = [en nextObject]) != nil) { id customClass = [classManager customClassForName: key]; id object = [document objectForName: key]; id template = nil; if(customClass != nil) { NSString *superClass = [classManager nonCustomSuperClassOf: customClass]; template = [GSTemplateFactory templateForObject: object withClassName: customClass withSuperClassName: superClass]; } else if([object isKindOfClass: [NSWindow class]] && [filePrefsManager versionOfClass: @"GSWindowTemplate"] > 0) { template = [GSTemplateFactory templateForObject: object withClassName: [object className] withSuperClassName: [object className]]; } // if the template has been created, replace the object with it. if(template != nil) { // if the object is deferrable, then set the flag appropriately. if([template respondsToSelector: @selector(setDeferFlag:)]) { [template setDeferFlag: [document objectIsDeferred: object]]; } // if the object can accept autoposition information if([object respondsToSelector: @selector(autoPositionMask)]) { int mask = [object autoPositionMask]; if([template respondsToSelector: @selector(setAutoPositionMask:)]) { [template setAutoPositionMask: mask]; } } // replace the object with the template. [archiver replaceObject: object withObject: template]; } } } - (NSMutableDictionary *)buildFileWrapperDictionaryWithDocument: (GormDocument *)doc { NSArchiver *archiver = nil; NSMutableData *archiverData = nil; NSString *gormPath = @"objects.gorm"; NSString *classesPath = @"data.classes"; NSString *infoPath = @"data.info"; GormPalettesManager *palettesManager = [(id)NSApp palettesManager]; NSDictionary *substituteClasses = [palettesManager substituteClasses]; NSEnumerator *en = [substituteClasses keyEnumerator]; NSString *subClassName = nil; NSFileWrapper *fileWrapper = nil; NSMutableDictionary *fileWrappers = [super buildFileWrapperDictionaryWithDocument: doc]; if(fileWrappers) { GormClassManager *classManager = [document classManager]; GormFilePrefsManager *filePrefsManager = [document filePrefsManager]; GSNibContainer *container = nil; // // If we are a nib, currently, and it's not being saved using the Latest, then // flag an error. NOTE: The next time the gorm container version is // changed, it will be necessary to add to the list here... // if([[document fileType] isEqual: @"GSNibFileType"] && [[document filePrefsManager] isLatest] == NO) { NSRunAlertPanel(_(@"Incorrect gui version"), _(@"Nibs cannot be converted to gui-0.10.3 and older"), _(@"OK"), nil, nil, nil); return nil; } [document prepareConnections]; container = [[GSNibContainer alloc] initWithDocument: document]; /* * Set up archiving... */ archiverData = [NSMutableData dataWithCapacity: 0]; archiver = [[NSArchiver alloc] initForWritingWithMutableData: archiverData]; /* * Special gorm classes to their archive equivalents. */ [archiver encodeClassName: @"GormObjectProxy" intoClassName: @"GSNibItem"]; [archiver encodeClassName: @"GormCustomView" intoClassName: @"GSCustomView"]; while((subClassName = [en nextObject]) != nil) { NSString *realClassName = [substituteClasses objectForKey: subClassName]; [archiver encodeClassName: subClassName intoClassName: realClassName]; } /* * Initialize templates */ [self _replaceObjectsWithTemplates: archiver]; [archiver encodeRootObject: container]; RELEASE(archiver); // We're done with the archiver here.. /* * Add the gorm, info and classes files to the package. */ fileWrapper = [[NSFileWrapper alloc] initRegularFileWithContents: archiverData]; [fileWrappers setObject: fileWrapper forKey: gormPath]; RELEASE(fileWrapper); fileWrapper = [[NSFileWrapper alloc] initRegularFileWithContents: [classManager data]]; [fileWrappers setObject: fileWrapper forKey: classesPath]; RELEASE(fileWrapper); fileWrapper = [[NSFileWrapper alloc] initRegularFileWithContents: [filePrefsManager data]]; [fileWrappers setObject: fileWrapper forKey: infoPath]; RELEASE(fileWrapper); // release the container... RELEASE(container); [document resetConnections]; } return fileWrappers; } @end gorm-1.2.24/Plugins/Gorm/GormGormWrapperLoader.m0000644000000000000000000004325513410616261020177 0ustar rootroot/* GormDocumentController.m * * This class is a subclass of the NSDocumentController * * Copyright (C) 2006 Free Software Foundation, Inc. * * Author: Gregory John Casamento * Date: 2006 * * This file is part of GNUstep. * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 3 of the License, or * (at your option) any later version. * * This program 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 General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02111 USA. */ #include #include #include #include #include #include #include #include #include #include @interface GormGormWrapperLoader : GormWrapperLoader { NSMutableArray *_repairLog; id message; id textField; id panel; } @end @interface NSWindow (Level) - (int) windowLevel; @end; @implementation NSWindow (Level) - (int) windowLevel { return _windowLevel; } @end; @implementation GormGormWrapperLoader + (NSString *) fileType { return @"GSGormFileType"; } - (id) init { if((self = [super init]) != nil) { _repairLog = [[NSMutableArray alloc] init]; } return self; } - (void) dealloc { RELEASE(_repairLog); [super dealloc]; } - (void) _openMessagePanel: (NSString *) msg { NSEnumerator *en = [_repairLog objectEnumerator]; id m = nil; if([NSBundle loadNibNamed: @"GormInconsistenciesPanel" owner: self] == NO) { NSLog(@"Failed to open message panel..."); } else { [message setStringValue: msg]; while((m = [en nextObject]) != nil) { [textField insertText: m]; } [panel orderFront: self]; } [_repairLog removeAllObjects]; } /** * The sole purpose of this method is to clean up .gorm files from older * versions of Gorm which might have some dangling references. This method * may be added to as time goes on to make sure that it's possible * to repair old .gorm files. */ - (void) _repairFile { NSEnumerator *en = [[[document nameTable] allKeys] objectEnumerator]; NSString *key = nil; int errorCount = 0; NSString *errorMsg = nil; NSArray *connections = [document allConnectors]; id con = nil; NSRunAlertPanel(_(@"Warning"), _(@"You are running with 'GormRepairFileOnLoad' set to YES."), nil, nil, nil); /** * Iterate over all objects in nameTable. */ [document deactivateEditors]; while((key = [en nextObject]) != nil) { id obj = [[document nameTable] objectForKey: key]; /* * Take care of any dangling menus... */ if([obj isKindOfClass: [NSMenu class]] && ![key isEqual: @"NSMenu"]) { id sm = [obj supermenu]; if(sm == nil) { NSArray *menus = findAll(obj); [_repairLog addObject: [NSString stringWithFormat: @"ERROR ==> Found and removed a dangling menu %@, %@.\n", obj, key]]; [document detachObjects: menus]; [document detachObject: obj]; // Since the menu is a top level object, it is not retained by // anything else. When it was unarchived it was autoreleased, and // the detach also does a release. Unfortunately, this causes a // crash, so this extra retain is only here to stave off the // release, so the autorelease can release the menu when it should. RETAIN(obj); // extra retain to stave off autorelease... errorCount++; } } /* * Take care of any dangling menu items... */ /* if([obj isKindOfClass: [NSMenuItem class]]) { id m = [obj menu]; if(m == nil) { id sm = [obj submenu]; [_repairLog addObject: [NSString stringWithFormat: @"ERROR ==> Found and removed an unattached menu item %@, %@.\n", obj, key]]; [document detachObject: obj]; // if there are any submenus, detach those as well. if(sm != nil) { NSArray *menus = findAll(sm); [document detachObjects: menus]; } errorCount++; } } */ /* * If there is a view which is not associated with a name, give it one... */ if([obj isKindOfClass: [NSWindow class]]) { NSArray *allViews = allSubviews([obj contentView]); NSEnumerator *ven = [allViews objectEnumerator]; id v = nil; if([obj windowLevel] != NSNormalWindowLevel) { [obj setLevel: NSNormalWindowLevel]; [_repairLog addObject: [NSString stringWithFormat: @"ERROR ==> Found window %@ with an invalid level, correcting.\n", obj]]; errorCount++; } while((v = [ven nextObject]) != nil) { NSString *name = nil; // skip these... if([v isKindOfClass: [NSMatrix class]]) { [_repairLog addObject: @"INFO: Skipping NSMatrix view.\n"]; continue; } else if([v isKindOfClass: [NSScroller class]] && [[v superview] isKindOfClass: [NSTextView class]]) { [_repairLog addObject: @"INFO: Skipping NSScroller in an NSTextView.\n"]; continue; } else if([v isKindOfClass: [NSScroller class]] && [[v superview] isKindOfClass: [NSBrowser class]]) { [_repairLog addObject: @"INFO: Skipping NSScroller in an NSTextView.\n"]; continue; } else if([v isKindOfClass: [NSClipView class]] && [[v superview] isKindOfClass: [NSTextView class]]) { [_repairLog addObject: @"INFO: Skipping NSClipView in an NSTextView.\n"]; continue; } else if([v isKindOfClass: [NSClipView class]] && [[v superview] isKindOfClass: [NSBrowser class]]) { [_repairLog addObject: @"INFO: Skipping NSClipView in an NSTextView.\n"]; continue; } if((name = [document nameForObject: v]) == nil) { [document attachObject: v toParent: [v superview]]; name = [document nameForObject: v]; [_repairLog addObject: [NSString stringWithFormat: @"ERROR ==> Found view %@ without an associated name, adding to the nametable as %@\n", v, name]]; if([v respondsToSelector: @selector(stringValue)]) { [_repairLog addObject: [NSString stringWithFormat: @"INFO: View string value is %@\n",[v stringValue]]]; } errorCount++; } [_repairLog addObject: [NSString stringWithFormat: @"INFO: Checking view %@ with name %@\n", v, name]]; } } } [document reactivateEditors]; /** * Iterate over all connections... remove connections with nil sources. */ en = [connections objectEnumerator]; while((con = [en nextObject]) != nil) { id src = [con source]; id dst = [con destination]; if([con isKindOfClass: [NSNibConnector class]]) { if(src == nil) { [_repairLog addObject: [NSString stringWithFormat: @"ERROR ==> Removing bad connector with nil source: %@\n",con]]; [document removeConnector: con]; errorCount++; } else if([src isKindOfClass: [NSString class]]) { id obj = [document objectForName: src]; if(obj == nil) { [_repairLog addObject: [NSString stringWithFormat: @"ERROR ==> Removing bad connector with source that is not in the nametable: %@\n", con]]; [document removeConnector: con]; errorCount++; } } else if([dst isKindOfClass: [NSString class]]) { id obj = [document objectForName: dst]; if(obj == nil) { [_repairLog addObject: [NSString stringWithFormat: @"ERROR ==> Removing bad connector with destination that is not in the nametable: %@\n", con]]; [document removeConnector: con]; errorCount++; } } } } // report the number of errors... if(errorCount > 0) { errorMsg = [NSString stringWithFormat: @"%d inconsistencies were found, please save the file.",errorCount]; [self _openMessagePanel: errorMsg]; [document touch]; } } /** * Private method. Determines if the document contains an instance of a given * class or one of it's subclasses. */ - (BOOL) _containsKindOfClass: (Class)cls { NSEnumerator *en = [[document nameTable] objectEnumerator]; id obj = nil; while((obj = [en nextObject]) != nil) { if([obj isKindOfClass: cls]) { return YES; } } return NO; } - (BOOL) loadFileWrapper: (NSFileWrapper *)wrapper withDocument: (GormDocument *) doc { BOOL result = NO; NS_DURING { NSData *data = nil; NSData *classes = nil; NSUnarchiver *u = nil; NSEnumerator *enumerator = nil; id con = nil; NSString *ownerClass, *key = nil; BOOL repairFile = [[NSUserDefaults standardUserDefaults] boolForKey: @"GormRepairFileOnLoad"]; GormPalettesManager *palettesManager = [(id)NSApp palettesManager]; NSDictionary *substituteClasses = [palettesManager substituteClasses]; NSEnumerator *en = [substituteClasses keyEnumerator]; NSString *subClassName = nil; NSUInteger version = NSNotFound; NSDictionary *fileWrappers = nil; GSNibContainer *container; NSArray *visible; NSArray *deferred; GormFilesOwner *filesOwner; GormFirstResponder *firstResponder; NSArray *objs; NSMutableArray *connections; NSDictionary *nt; id visObj; id defObj; if ([super loadFileWrapper: wrapper withDocument: doc]) { GormClassManager *classManager = [document classManager]; key = nil; if ([wrapper isDirectory]) { fileWrappers = [wrapper fileWrappers]; enumerator = [fileWrappers keyEnumerator]; while((key = [enumerator nextObject]) != nil) { NSFileWrapper *fw = [fileWrappers objectForKey: key]; if([fw isRegularFile]) { NSData *fileData = [fw regularFileContents]; if([key isEqual: @"objects.gorm"]) { data = fileData; } else if([key isEqual: @"data.info"]) { [document setInfoData: fileData]; } else if([key isEqual: @"data.classes"]) { classes = fileData; // load the custom classes... if (![classManager loadCustomClassesWithData: classes]) { NSRunAlertPanel(_(@"Problem Loading"), _(@"Could not open the associated classes file.\n" @"You won't be able to edit connections on custom classes"), _(@"OK"), nil, nil); } } } } } else if ([wrapper isRegularFile]) // if it's a file... here we need to handle legacy files. { NSString *classesFileName = [[[document documentPath] stringByDeletingPathExtension] stringByAppendingPathExtension: @"classes"]; // dump the contents to the data section... data = [wrapper regularFileContents]; classes = [NSData dataWithContentsOfFile: classesFileName]; // load the custom classes... if (![classManager loadCustomClassesWithData: classes]) { NSRunAlertPanel(_(@"Problem Loading"), _(@"Could not open the associated classes file.\n" @"You won't be able to edit connections on custom classes"), _(@"OK"), nil, nil); } } // check the data... if (data == nil || classes == nil) { result = NO; } else { /* * Create an unarchiver, and use it to unarchive the gorm file while * handling class replacement so that standard objects understood * by the gui library are converted to their Gorm internal equivalents. */ u = [[NSUnarchiver alloc] initForReadingWithData: data]; /* * Special internal classes */ [u decodeClassName: @"GSNibItem" asClassName: @"GormObjectProxy"]; [u decodeClassName: @"GSCustomView" asClassName: @"GormCustomView"]; /* * Substitute any classes specified by the palettes... */ while((subClassName = [en nextObject]) != nil) { NSString *realClassName = [substituteClasses objectForKey: subClassName]; [u decodeClassName: realClassName asClassName: subClassName]; } // turn off custom classes. [GSClassSwapper setIsInInterfaceBuilder: YES]; container = [u decodeObject]; if (container == nil || [container isKindOfClass: [GSNibContainer class]] == NO) { result = NO; } else { // turn on custom classes. [GSClassSwapper setIsInInterfaceBuilder: NO]; // // Retrieve the custom class data and refresh the classes view... // [classManager setCustomClassMap: [NSMutableDictionary dictionaryWithDictionary: [container customClasses]]]; // // Get all of the visible objects... // visible = [container visibleWindows]; visObj = nil; enumerator = [visible objectEnumerator]; while((visObj = [enumerator nextObject]) != nil) { [document setObject: visObj isVisibleAtLaunch: YES]; } // // Get all of the deferred objects... // deferred = [container deferredWindows]; defObj = nil; enumerator = [deferred objectEnumerator]; while((defObj = [enumerator nextObject]) != nil) { [document setObject: defObj isDeferred: YES]; } // // In the newly loaded nib container, we change all the connectors // to hold the objects rather than their names (using our own dummy // object as the 'NSOwner'. // filesOwner = [document filesOwner]; firstResponder = [document firstResponder]; ownerClass = [[container nameTable] objectForKey: @"NSOwner"]; if (ownerClass) { [filesOwner setClassName: ownerClass]; } [[container nameTable] setObject: filesOwner forKey: @"NSOwner"]; [[container nameTable] setObject: firstResponder forKey: @"NSFirst"]; // // Add entries... // [[document nameTable] addEntriesFromDictionary: [container nameTable]]; // // Add top level items... // objs = [[container topLevelObjects] allObjects]; [[document topLevelObjects] addObjectsFromArray: objs]; // // Add connections // connections = [document connections]; [connections addObjectsFromArray: [container connections]]; /* Iterate over the contents of nameTable and create the connections */ nt = [document nameTable]; enumerator = [connections objectEnumerator]; while ((con = [enumerator nextObject]) != nil) { NSString *name; id obj; name = (NSString*)[con source]; obj = [nt objectForKey: name]; [con setSource: obj]; name = (NSString*)[con destination]; obj = [nt objectForKey: name]; [con setDestination: obj]; } /* * If the GSNibContainer version is 0, we need to add the top level objects * to the list so that they can be properly processed. */ version = [u versionForClassName: NSStringFromClass([GSNibContainer class])]; if(version == 0) { id obj; NSEnumerator *en = [nt objectEnumerator]; // get all of the GSNibItem subclasses which could be top level objects while((obj = [en nextObject]) != nil) { if([obj isKindOfClass: [GSNibItem class]] && [obj isKindOfClass: [GSCustomView class]] == NO) { [[container topLevelObjects] addObject: obj]; } } [document setOlderArchive: YES]; } else if(version == 1) { // nothing else, just mark it as older... [document setOlderArchive: YES]; } /* * If the GSWindowTemplate version is 0, we need to let Gorm know that this is * an older archive. Also, if the window template is not in the archive we know * it was made by an older version of Gorm. */ version = [u versionForClassName: NSStringFromClass([GSWindowTemplate class])]; if(version == NSNotFound && [self _containsKindOfClass: [NSWindow class]]) { [document setOlderArchive: YES]; } /* * Rebuild the mapping from object to name for the nameTable... */ [document rebuildObjToNameMapping]; /* * Repair the .gorm file, if needed. */ /* if(repairFile) { [self _repairFile]; } */ NSDebugLog(@"nameTable = %@",[container nameTable]); // awaken all elements after the load is completed. enumerator = [nt keyEnumerator]; while ((key = [enumerator nextObject]) != nil) { id o = [nt objectForKey: key]; if ([o respondsToSelector: @selector(awakeFromDocument:)]) { [o awakeFromDocument: document]; } } // document opened... [document setDocumentOpen: YES]; // release the unarchiver.. RELEASE(u); // done... result = YES; } } } } NS_HANDLER { NSRunAlertPanel(_(@"Problem Loading"), [NSString stringWithFormat: @"Failed to load file. Exception: %@",[localException reason]], _(@"OK"), nil, nil); result = NO; } NS_ENDHANDLER; // if we made it here, then it was a success.... return result; } @end gorm-1.2.24/Plugins/Gorm/GNUmakefile.preamble0000644000000000000000000000130313410616261017424 0ustar rootroot# Additional include directories the compiler should search ADDITIONAL_INCLUDE_DIRS += -I../.. ifeq ($(GNUSTEP_TARGET_OS),mingw32) ADDITIONAL_LIB_DIRS += \ -L../../GormLib/$(GNUSTEP_OBJ_DIR) \ -L../../GormObjCHeaderParser/$(GNUSTEP_OBJ_DIR) \ -L../../GormPrefs/$(GNUSTEP_OBJ_DIR) \ -L../../GormCore/$(GNUSTEP_OBJ_DIR) ADDITIONAL_GUI_LIBS += -lGorm -lGormCore endif ifeq ($(GNUSTEP_TARGET_OS),cygwin) ADDITIONAL_LIB_DIRS += \ -L../../GormLib/$(GNUSTEP_OBJ_DIR) \ -L../../GormObjCHeaderParser/$(GNUSTEP_OBJ_DIR) \ -L../../GormPrefs/$(GNUSTEP_OBJ_DIR) \ -L../../GormCore/$(GNUSTEP_OBJ_DIR) Gorm_LIBRARIES_DEPEND_UPON += -lGorm -lGormCore endifgorm-1.2.24/Plugins/Gorm/GormGormWrapperLoader.h0000644000000000000000000000216013410616261020160 0ustar rootroot/* GormNibWrapperLoader * * * Copyright (C) 2006 Free Software Foundation, Inc. * * Author: Gregory John Casamento * Date: 2006 * * This file is part of GNUstep. * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 3 of the License, or * (at your option) any later version. * * This program 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 General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software */ #ifndef GORM_GORMWRAPPERLOADER #define GORM_GORMWRAPPERLOADER #include @class NSMutableArray, NSString; @interface GormGormWrapperLoader : GormWrapperLoader { NSMutableArray *_repairLog; id message; id textField; id panel; } @end #endif gorm-1.2.24/Plugins/Gorm/GormGormPlugin.m0000644000000000000000000000233213410616261016655 0ustar rootroot/* GormNibModule.m * * Copyright (C) 2007 Free Software Foundation, Inc. * * Author: Gregory John Casamento * Date: 2007 * * This file is part of GNUstep. * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 3 of the License, or * (at your option) any later version. * * This program 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 General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software */ #include #include #include #include "GormGormWrapperLoader.h" @interface GormGormPlugin : GormPlugin @end @implementation GormGormPlugin - (void) didLoad { [self registerDocumentTypeName: [GormGormWrapperLoader fileType] humanReadableName: @"GNUstep Gorm" forExtensions: [NSArray arrayWithObjects: @"gorm",nil]]; } @end gorm-1.2.24/Plugins/Gorm/GNUmakefile0000644000000000000000000000246413410616261015647 0ustar rootroot# GNUmakefile # # Copyright (C) 1999 Free Software Foundation, Inc. # # Author: Richard Frith-Macdonald # Date: 1999 # # This file is part of GNUstep. # # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 2 of the License, or # (at your option) any later version. # # This program 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 General Public License for more details. # # You should have received a copy of the GNU General Public License # along with this program; if not, write to the Free Software # Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. PACKAGE_NAME = gorm include $(GNUSTEP_MAKEFILES)/common.make BUNDLE_NAME = Gorm BUNDLE_EXTENSION = .plugin Gorm_PRINCIPAL_CLASS = GormGormPlugin Gorm_OBJC_FILES = GormGormPlugin.m \ GormGormWrapperBuilder.m \ GormGormWrapperLoader.m Gorm_RESOURCE_FILES = Gorm_STANDARD_INSTALL = no -include GNUmakefile.preamble -include GNUmakefile.local include $(GNUSTEP_MAKEFILES)/bundle.make -include GNUmakefile.postamble gorm-1.2.24/Plugins/Nib/0000755000000000000000000000000013426741712013402 5ustar rootrootgorm-1.2.24/Plugins/Nib/GNUmakefile.preamble0000644000000000000000000000130213410616261017227 0ustar rootroot# Additional include directories the compiler should search ADDITIONAL_INCLUDE_DIRS += -I../.. ifeq ($(GNUSTEP_TARGET_OS),mingw32) ADDITIONAL_LIB_DIRS += \ -L../../GormLib/$(GNUSTEP_OBJ_DIR) \ -L../../GormObjCHeaderParser/$(GNUSTEP_OBJ_DIR) \ -L../../GormPrefs/$(GNUSTEP_OBJ_DIR) \ -L../../GormCore/$(GNUSTEP_OBJ_DIR) ADDITIONAL_GUI_LIBS += -lGorm -lGormCore endif ifeq ($(GNUSTEP_TARGET_OS),cygwin) ADDITIONAL_LIB_DIRS += \ -L../../GormLib/$(GNUSTEP_OBJ_DIR) \ -L../../GormObjCHeaderParser/$(GNUSTEP_OBJ_DIR) \ -L../../GormPrefs/$(GNUSTEP_OBJ_DIR) \ -L../../GormCore/$(GNUSTEP_OBJ_DIR) Nib_LIBRARIES_DEPEND_UPON += -lGorm -lGormCore endifgorm-1.2.24/Plugins/Nib/GormNibWrapperBuilder.m0000644000000000000000000002777113410616261017774 0ustar rootroot/* GormWrapperBuilder * * This class is a subclass of the NSDocumentController * * Copyright (C) 2006-2013 Free Software Foundation, Inc. * * Author: Gregory John Casamento * Date: 2006 * * This file is part of GNUstep. * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 3 of the License, or * (at your option) any later version. * * This program 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 General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02111 USA. */ #include #include #include #include #include #include #include #include #include #include #include #include // allow access to a private category... @interface NSIBObjectData (BuilderAdditions) - (id) initWithDocument: (GormDocument *)document; @end; @implementation NSIBObjectData (BuilderAdditions) - (id) initWithDocument: (GormDocument *)document { if((self = [self init]) != nil) { NSArray *cons = [document connections]; NSDictionary *customClasses = [[document classManager] customClassMap]; NSArray *keys = [customClasses allKeys]; NSEnumerator *en = [cons objectEnumerator]; id o = nil; id owner = [document objectForName: @"NSOwner"]; unsigned int oid = 1; // Create the container for the .nib file... ASSIGN(_root, owner); NSMapInsert(_names, owner, @"File's Owner"); NSMapInsert(_oids, owner, [[NSNumber alloc] initWithUnsignedInt: oid++]); ASSIGN(_framework, @"IBCocoaFramework"); [_topLevelObjects addObjectsFromArray: [[document topLevelObjects] allObjects]]; [_visibleWindows addObjectsFromArray: [[document visibleWindows] allObjects]]; // fill in objects and connections.... while((o = [en nextObject]) != nil) { NSNumber *currOid = [NSNumber numberWithUnsignedInt: oid++]; // NSString *currOid = [NSString stringWithFormat: @"%d", oid++]; if ([o isMemberOfClass: [NSNibConnector class]]) { id src = [o source]; id dst = [o destination]; NSString *name = nil; // if (src != nil) { name = [document nameForObject: src]; } else { continue; } if ([name isEqual: @"NSOwner"]) { name = @"File's Owner"; } if ([name isEqual: @"NSMenu"]) { name = @"MainMenu"; } else if ([name isEqual: @"NSFirst"]) { // skip it... continue; } if (dst == nil) { NSLog(@"==> WARNING: value for object %@ is %@ in objects map.", src, dst); } else { NSMapInsert(_objects, src, dst); } if (name == nil) { NSLog(@"==> WARNING: value for object %@ is %@ in names map.", src, name); } else { NSMapInsert(_names, src, name); } if (currOid == nil) { NSLog(@"==> WARNING: value for object %@ is %@ in oids map.", src, currOid); } else { NSMapInsert(_oids, src, currOid); } } else { [_connections addObject: o]; NSMapInsert(_oids, o, currOid); } } // set the next oid... _nextOid = oid; // custom classes... en = [keys objectEnumerator]; while((o = [en nextObject]) != nil) { id obj = [document objectForName: o]; NSString *className = [customClasses objectForKey: o]; NSMapInsert(_classes, obj, className); } } return self; } @end @interface GSNibTemplateFactory : NSObject + (id) templateForObject: (id)object withClassName: (NSString *)customClass withSuperClassName: (NSString *)superClass withDocument: (GormDocument *)document; @end @implementation GSNibTemplateFactory + (id) templateForObject: (id)object withClassName: (NSString *)customClass withSuperClassName: (NSString *)superClass withDocument: (GormDocument *)document { id template = nil; if([object isKindOfClass: [NSWindow class]]) { BOOL isDeferred = [document objectIsDeferred: object]; BOOL isVisible = [document objectIsVisibleAtLaunch: object]; BOOL wantsToBeColor = YES; int autoPositionMask = 0; template = [[NSWindowTemplate alloc] initWithWindow: object className: customClass isDeferred: isDeferred isOneShot: [object isOneShot] isVisible: isVisible wantsToBeColor: wantsToBeColor autoPositionMask: autoPositionMask]; } else if([object isKindOfClass: [NSText class]]) { template = [[NSTextTemplate alloc] initWithObject: object className: customClass]; } else if([object isKindOfClass: [NSTextView class]]) { template = [[NSTextViewTemplate alloc] initWithObject: object className: customClass]; } else if([object isKindOfClass: [NSView class]]) { template = [[NSViewTemplate alloc] initWithObject: object className: customClass]; } else { template = [[NSClassSwapper alloc] initWithObject: object withClassName: customClass originalClassName: superClass]; } return template; } @end @interface GormNibWrapperBuilder : GormWrapperBuilder { NSMapTable *_objectMap; NSIBObjectData *_container; } @end @implementation GormNibWrapperBuilder + (NSString *) fileType { return @"GSNibFileType"; } - (id) init { if((self = [super init]) != nil) { _objectMap = NSCreateMapTableWithZone(NSObjectMapKeyCallBacks, NSObjectMapValueCallBacks, 128, [self zone]); } return self; } - (void) dealloc { RELEASE(_container); NSFreeMapTable(_objectMap); [super dealloc]; } /** * Private method which iterates through the list of custom classes and instructs * the archiver to replace the actual object with template during the archiving * process. */ - (void) _replaceObjectsWithTemplates: (NSKeyedArchiver *)archiver { NSEnumerator *en = [[document nameTable] keyEnumerator]; GormClassManager *classManager = [document classManager]; // GormFilePrefsManager *filePrefsManager = [document filePrefsManager]; id key = nil; // loop through all custom objects and windows while((key = [en nextObject]) != nil) { id customClass = [classManager customClassForName: key]; id object = [document objectForName: key]; id template = nil; if(customClass != nil) { NSString *superClass = [classManager nonCustomSuperClassOf: customClass]; template = [GSNibTemplateFactory templateForObject: object withClassName: customClass withSuperClassName: superClass withDocument: document]; } else if([object isKindOfClass: [NSWindow class]]) { template = [GSNibTemplateFactory templateForObject: object withClassName: [object className] withSuperClassName: [object className] withDocument: document]; } // if the template has been created, replace the object with it. if(template != nil) { /* NOT YET IMPLEMENTED * // if the object can accept autoposition information if([object respondsToSelector: @selector(autoPositionMask)]) { int mask = [object autoPositionMask]; if([template respondsToSelector: @selector(setAutoPositionMask:)]) { [template setAutoPositionMask: mask]; } } */ // replace the object with the template. NSMapInsert(_objectMap, object, template); } } } - (id) archiver: (NSKeyedArchiver *)archiver willEncodeObject: (id) object { id replacementObject = NSMapGet(_objectMap,object); id o = object; if([o isKindOfClass: [GormFirstResponder class]]) { o = nil; } else if(replacementObject != nil) { o = replacementObject; } return o; } - (NSArray *) openItems { NSMapTable *oids = [_container oids]; NSMutableArray *openItems = [NSMutableArray array]; NSEnumerator *en = [[_container visibleWindows] objectEnumerator]; id menu = [document objectForName: @"NSMenu"]; id obj = nil; // Get the open items, so that IB displays the same windows that Gorm had open when it // saved.... while((obj = [en nextObject]) != nil) { if([obj isVisible]) { NSNumber *windowOid = NSMapGet(oids, obj); [openItems addObject: windowOid]; } } // add the menu... if(menu != nil) { NSNumber *menuOid = NSMapGet(oids,menu); [openItems addObject: menuOid]; } return openItems; } - (NSMutableDictionary *)buildFileWrapperDictionaryWithDocument: (GormDocument *)doc { NSKeyedArchiver *archiver = nil; NSMutableData *archiverData = nil; NSString *nibPath = @"keyedobjects.nib"; NSString *classesPath = @"classes.nib"; NSString *infoPath = @"info.nib"; GormPalettesManager *palettesManager = [(id)NSApp palettesManager]; NSDictionary *substituteClasses = [palettesManager substituteClasses]; NSEnumerator *en = [substituteClasses keyEnumerator]; NSString *subClassName = nil; NSFileWrapper *fileWrapper = nil; NSMutableDictionary *fileWrappers = [super buildFileWrapperDictionaryWithDocument: doc]; if(fileWrappers) { GormClassManager *classManager = [document classManager]; GormFilePrefsManager *filePrefsManager = [document filePrefsManager]; // instantiate the container. _container = [[NSIBObjectData alloc] initWithDocument: document]; /* * Set up archiving... */ archiverData = [NSMutableData dataWithCapacity: 10240]; archiver = [[NSKeyedArchiver alloc] initForWritingWithMutableData: archiverData]; [archiver setDelegate: self]; /* * Special gorm classes to their archive equivalents. */ [archiver setClassName: @"NSCustomObject" forClass: [GormObjectProxy class]]; [archiver setClassName: @"NSCustomView" forClass: [GormCustomView class]]; [archiver setClassName: @"NSCustomObject" forClass: [GormFilesOwner class]]; while((subClassName = [en nextObject]) != nil) { NSString *realClassName = [substituteClasses objectForKey: subClassName]; Class subClass = NSClassFromString(subClassName); [archiver setClassName: realClassName forClass: subClass]; } /* * Initialize templates */ [self _replaceObjectsWithTemplates: archiver]; [archiver setOutputFormat: NSPropertyListXMLFormat_v1_0]; // force XML output for now.... [archiver encodeObject: _container forKey: @"IB.objectdata"]; [archiver finishEncoding]; RELEASE(archiver); // We're done with the archiver here.. /* * Add the gorm, info and classes files to the package. */ fileWrapper = [[NSFileWrapper alloc] initRegularFileWithContents: archiverData]; [fileWrappers setObject: fileWrapper forKey: nibPath]; RELEASE(fileWrapper); fileWrapper = [[NSFileWrapper alloc] initRegularFileWithContents: [classManager nibData]]; [fileWrappers setObject: fileWrapper forKey: classesPath]; RELEASE(fileWrapper); fileWrapper = [[NSFileWrapper alloc] initRegularFileWithContents: [filePrefsManager nibDataWithOpenItems: [self openItems]]]; [fileWrappers setObject: fileWrapper forKey: infoPath]; RELEASE(fileWrapper); } return fileWrappers; } @end gorm-1.2.24/Plugins/Nib/GormNibWrapperLoader.m0000644000000000000000000002475013410616261017606 0ustar rootroot/* GormNibWrapperLoader * * Copyright (C) 2006 Free Software Foundation, Inc. * * Author: Gregory John Casamento * Date: 2006 * * This file is part of GNUstep. * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 3 of the License, or * (at your option) any later version. * * This program 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 General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02111 USA. */ #include #include #include #include #include #include #include #include #include #include #include #include #include "GormNibWrapperLoader.h" @class GormNSWindow; @implementation GormNibWrapperLoader + (NSString *) fileType { return @"GSNibFileType"; } - (NSDictionary *)defaultClassesDict { NSString *defaultClassesString = @"{ IBClasses = ({CLASS = FirstResponder; LANGUAGE = ObjC; SUPERCLASS = NSObject; }); IBVersion = 1; }"; return [defaultClassesString propertyList]; } - (BOOL) isTopLevelObject: (id)obj { NSMapTable *objects = [container objects]; id val = NSMapGet(objects,obj); BOOL result = NO; if(val == nibFilesOwner || val == nil) { result = YES; } return result; } - (BOOL) loadFileWrapper: (NSFileWrapper *)wrapper withDocument: (GormDocument *) doc { BOOL result = NO; NS_DURING { NSData *data = nil; NSData *classes = nil; NSKeyedUnarchiver *u = nil; NSString *key = nil; GormPalettesManager *palettesManager = [(id)NSApp palettesManager]; NSDictionary *substituteClasses = [palettesManager substituteClasses]; NSString *subClassName = nil; NSDictionary *fileWrappers = nil; if ([super loadFileWrapper: wrapper withDocument: doc]) { GormClassManager *classManager = [document classManager]; id docFilesOwner; NSMapTable *objects; NSArray *objs; NSEnumerator *en; id o; NSMapTable *classesTable; NSArray *classKeys; // turn off custom classes... [NSClassSwapper setIsInInterfaceBuilder: YES]; if([wrapper isDirectory]) { key = nil; fileWrappers = [wrapper fileWrappers]; en = [fileWrappers keyEnumerator]; while((key = [en nextObject]) != nil) { NSFileWrapper *fw = [fileWrappers objectForKey: key]; if([fw isRegularFile]) { NSData *fileData = [fw regularFileContents]; if([key isEqual: @"keyedobjects.nib"]) { data = fileData; } else if([key isEqual: @"classes.nib"]) { classes = fileData; // load the custom classes... if (![classManager loadNibFormatCustomClassesWithData: classes]) { NSRunAlertPanel(_(@"Problem Loading"), _(@"Could not open the associated classes file.\n" @"You won't be able to edit connections on custom classes"), _(@"OK"), nil, nil); } } } } } else { data = [wrapper regularFileContents]; classes = nil; // (NSData *)0xdeadbeef; } // check the data... if (data == nil)// || classes == nil) { result = NO; } else { /* * Create an unarchiver, and use it to unarchive the gorm file while * handling class replacement so that standard objects understood * by the gui library are converted to their Gorm internal equivalents. */ u = [[NSKeyedUnarchiver alloc] initForReadingWithData: data]; [u setDelegate: self]; /* * Special internal classes */ [u setClass: [GormObjectProxy class] forClassName: @"NSCustomObject"]; [u setClass: [GormCustomView class] forClassName: @"NSCustomView"]; [u setClass: [GormWindowTemplate class] forClassName: @"NSWindowTemplate"]; [u setClass: [GormNSWindow class] forClassName: @"NSWindow"]; /* * Substitute any classes specified by the palettes... */ en = [substituteClasses keyEnumerator]; while((subClassName = [en nextObject]) != nil) { NSString *realClassName = [substituteClasses objectForKey: subClassName]; Class substituteClass = NSClassFromString(subClassName); [u setClass: substituteClass forClassName: realClassName]; } // // decode // container = [u decodeObjectForKey: @"IB.objectdata"]; if (container == nil || [container isKindOfClass: [NSIBObjectData class]] == NO) { result = NO; } else { nibFilesOwner = [container objectForName: @"File's Owner"]; docFilesOwner = [document filesOwner]; objects = [container names]; objs = NSAllMapTableKeys(objects); en = [objs objectEnumerator]; o = nil; // // set the current class on the File's owner... // if([nibFilesOwner isKindOfClass: [GormObjectProxy class]]) { [docFilesOwner setClassName: [nibFilesOwner className]]; } // // add objects... // while((o = [en nextObject]) != nil) { id obj = o; NSString *customClassName = nil; NSString *objName = nil; // skip the file's owner, it is handled above... if(o == nibFilesOwner) continue; // // if it's a window template, then replace it with an actual window. // if([o isKindOfClass: [NSWindowTemplate class]]) { NSString *className = [o className]; BOOL isDeferred = [o isDeferred]; BOOL isVisible = [[container visibleWindows] containsObject: o]; // make the object deferred/visible... obj = [o nibInstantiate]; [document setObject: obj isDeferred: isDeferred]; [document setObject: obj isVisibleAtLaunch: isVisible]; // record the custom class... if([classManager isCustomClass: className]) { customClassName = className; } } if([self isTopLevelObject: obj]) { [document attachObject: obj toParent: nil]; } if(customClassName != nil) { objName = [document nameForObject: obj]; [classManager setCustomClass: customClassName forName: objName]; } } // // Add custom classes... // classesTable = [container classes]; classKeys = NSAllMapTableKeys(classesTable); en = [classKeys objectEnumerator]; while((o = [en nextObject]) != nil) { NSString *name = [document nameForObject: o]; NSString *customClass = NSMapGet(classesTable, o); if(name != nil && customClass != nil) { [classManager setCustomClass: customClass forName: name]; } else { NSLog(@"Name %@ or class %@ for object %@ is nil.", name, customClass, o); } } // // add connections... // en = [[container connections] objectEnumerator]; o = nil; while((o = [en nextObject]) != nil) { id dest = [o destination]; id src = [o source]; // NSLog(@"Connector: %@",o); if([o isKindOfClass: [NSNibControlConnector class]]) { NSString *tag = [o label]; NSRange colonRange = [tag rangeOfString: @":"]; NSUInteger location = colonRange.location; if(location == NSNotFound) { NSString *newTag = [NSString stringWithFormat: @"%@:",tag]; [o setLabel: (id)newTag]; } } if(dest == nibFilesOwner) { [o setDestination: [document filesOwner]]; } else if(dest == nil) { [o setDestination: [document firstResponder]]; } if(src == nibFilesOwner) { [o setSource: [document filesOwner]]; } else if(src == nil) { [o setSource: [document firstResponder]]; } // check src/dest for window template... if([src isKindOfClass: [NSWindowTemplate class]]) { id win = [src realObject]; [o setSource: win]; } if([dest isKindOfClass: [NSWindowTemplate class]]) { id win = [dest realObject]; [o setDestination: win]; } // skip any help connectors... if([o isKindOfClass: [NSIBHelpConnector class]]) { continue; } [document addConnector: o]; } // turn on custom classes. [NSClassSwapper setIsInInterfaceBuilder: NO]; // clear the changes, since we just loaded the document. [document updateChangeCount: NSChangeCleared]; result = YES; } } [NSClassSwapper setIsInInterfaceBuilder: NO]; } } NS_HANDLER { NSRunAlertPanel(_(@"Problem Loading"), [NSString stringWithFormat: @"Failed to load file. Exception: %@",[localException reason]], _(@"OK"), nil, nil); result = NO; } NS_ENDHANDLER; // return the result. return result; } - (void) unarchiver: (NSKeyedUnarchiver *)unarchiver willReplaceObject: (id)obj withObject: (id)newObj { // Nothing for now... } - (id) unarchiver: (NSKeyedUnarchiver *)unarchiver didDecodeObject: (id)obj { if([obj isKindOfClass: [NSWindowTemplate class]]) { GormClassManager *classManager = [document classManager]; Class clz ; NSString *className = [obj className]; if([classManager isCustomClass: className]) { className = [classManager nonCustomSuperClassOf: className]; } clz = [unarchiver classForClassName: className]; [obj setBaseWindowClass: clz]; } else if([obj respondsToSelector: @selector(setTarget:)] && [obj respondsToSelector: @selector(setAction:)] && [obj isKindOfClass: [NSCell class]] == NO) { // blank the target/action for all objects. [obj setTarget: nil]; [obj setAction: NULL]; } return obj; } @end gorm-1.2.24/Plugins/Nib/GormNibCustomResource.h0000644000000000000000000000177713410616261020020 0ustar rootroot/* GormNibCustomResource * * Copyright (C) 2009 Free Software Foundation, Inc. * * Author: Gregory John Casamento * Date: 2009 * * This file is part of GNUstep. * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 3 of the License, or * (at your option) any later version. * * This program 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 General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software */ #ifndef GORM_NIBCUSTOMRESOURCE #define GORM_NIBCUSTOMRESOURCE #include @interface GormNibNibCustomResource : NSCustomResource @end #endif gorm-1.2.24/Plugins/Nib/GNUmakefile0000644000000000000000000000245413410616261015452 0ustar rootroot# GNUmakefile # # Copyright (C) 1999 Free Software Foundation, Inc. # # Author: Richard Frith-Macdonald # Date: 1999 # # This file is part of GNUstep. # # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 2 of the License, or # (at your option) any later version. # # This program 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 General Public License for more details. # # You should have received a copy of the GNU General Public License # along with this program; if not, write to the Free Software # Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. PACKAGE_NAME = gorm include $(GNUSTEP_MAKEFILES)/common.make BUNDLE_NAME = Nib BUNDLE_EXTENSION = .plugin Nib_PRINCIPAL_CLASS = GormNibPlugin Nib_OBJC_FILES = GormNibPlugin.m \ GormNibWrapperBuilder.m \ GormNibWrapperLoader.m Nib_RESOURCE_FILES = Nib_STANDARD_INSTALL = no -include GNUmakefile.preamble -include GNUmakefile.local include $(GNUSTEP_MAKEFILES)/bundle.make -include GNUmakefile.postamble gorm-1.2.24/Plugins/Nib/GormNibCustomResource.m0000644000000000000000000000204613410616261020013 0ustar rootroot/* GormNibCustomResource * * Copyright (C) 2009 Free Software Foundation, Inc. * * Author: Gregory John Casamento * Date: 2009 * * This file is part of GNUstep. * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 3 of the License, or * (at your option) any later version. * * This program 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 General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software */ #include "GormNibCustomResource.h" @implementation GormNibNibCustomResource : NSCustomResource - (id) initWithCoder: (NSCoder *)coder { return self; } - (void) encodeWithCoder: (NSCoder *)coder { } @end gorm-1.2.24/Plugins/Nib/GormNibWrapperLoader.h0000644000000000000000000000224013410616261017567 0ustar rootroot/* GormNibWrapperLoader * * * Copyright (C) 2006 Free Software Foundation, Inc. * * Author: Gregory John Casamento * Date: 2006 * * This file is part of GNUstep. * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 3 of the License, or * (at your option) any later version. * * This program 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 General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software */ #ifndef GORM_NIBWRAPPERLOADER #define GORM_NIBWRAPPERLOADER #include #include #include "GormNibCustomResource.h" @interface GormNibWrapperLoader : GormWrapperLoader { NSIBObjectData *container; id nibFilesOwner; } - (BOOL) isTopLevelObject: (id)obj; @end #endif gorm-1.2.24/Plugins/Nib/GormNibPlugin.m0000644000000000000000000000232213410616261016264 0ustar rootroot/* GormNibModule.m * * Copyright (C) 2007 Free Software Foundation, Inc. * * Author: Gregory John Casamento * Date: 2007 * * This file is part of GNUstep. * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 3 of the License, or * (at your option) any later version. * * This program 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 General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software */ #include #include #include "GormNibWrapperLoader.h" #include @interface GormNibPlugin : GormPlugin @end @implementation GormNibPlugin - (void) didLoad { [self registerDocumentTypeName: [GormNibWrapperLoader fileType] humanReadableName: @"Cocoa Nib" forExtensions: [NSArray arrayWithObjects: @"nib",nil]]; } @end gorm-1.2.24/Plugins/Xib/0000755000000000000000000000000013426741712013414 5ustar rootrootgorm-1.2.24/Plugins/Xib/GormXibCustomResource.m0000644000000000000000000000204613410616261020037 0ustar rootroot/* GormNibCustomResource * * Copyright (C) 2009 Free Software Foundation, Inc. * * Author: Gregory John Casamento * Date: 2009 * * This file is part of GNUstep. * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 3 of the License, or * (at your option) any later version. * * This program 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 General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software */ #include "GormNibCustomResource.h" @implementation GormNibNibCustomResource : NSCustomResource - (id) initWithCoder: (NSCoder *)coder { return self; } - (void) encodeWithCoder: (NSCoder *)coder { } @end gorm-1.2.24/Plugins/Xib/GNUmakefile.preamble0000644000000000000000000000130213410616261017241 0ustar rootroot# Additional include directories the compiler should search ADDITIONAL_INCLUDE_DIRS += -I../.. ifeq ($(GNUSTEP_TARGET_OS),mingw32) ADDITIONAL_LIB_DIRS += \ -L../../GormLib/$(GNUSTEP_OBJ_DIR) \ -L../../GormObjCHeaderParser/$(GNUSTEP_OBJ_DIR) \ -L../../GormPrefs/$(GNUSTEP_OBJ_DIR) \ -L../../GormCore/$(GNUSTEP_OBJ_DIR) ADDITIONAL_GUI_LIBS += -lGorm -lGormCore endif ifeq ($(GNUSTEP_TARGET_OS),cygwin) ADDITIONAL_LIB_DIRS += \ -L../../GormLib/$(GNUSTEP_OBJ_DIR) \ -L../../GormObjCHeaderParser/$(GNUSTEP_OBJ_DIR) \ -L../../GormPrefs/$(GNUSTEP_OBJ_DIR) \ -L../../GormCore/$(GNUSTEP_OBJ_DIR) Nib_LIBRARIES_DEPEND_UPON += -lGorm -lGormCore endifgorm-1.2.24/Plugins/Xib/GormXibWrapperLoader.h0000644000000000000000000000213413410616261017615 0ustar rootroot/* GormNibWrapperLoader * * * Copyright (C) 2006 Free Software Foundation, Inc. * * Author: Gregory John Casamento * Date: 2006 * * This file is part of GNUstep. * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 3 of the License, or * (at your option) any later version. * * This program 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 General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software */ #ifndef GORM_NIBWRAPPERLOADER #define GORM_NIBWRAPPERLOADER #include #include @interface GormXibWrapperLoader : GormWrapperLoader { IBObjectContainer *container; id nibFilesOwner; } @end #endif gorm-1.2.24/Plugins/Xib/GormXibPlugin.m0000644000000000000000000000232213410616261016310 0ustar rootroot/* GormXibModule.m * * Copyright (C) 2010 Free Software Foundation, Inc. * * Author: Gregory John Casamento * Date: 2010 * * This file is part of GNUstep. * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 3 of the License, or * (at your option) any later version. * * This program 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 General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software */ #include #include #include "GormXibWrapperLoader.h" #include @interface GormXibPlugin : GormPlugin @end @implementation GormXibPlugin - (void) didLoad { [self registerDocumentTypeName: [GormXibWrapperLoader fileType] humanReadableName: @"Cocoa Xib" forExtensions: [NSArray arrayWithObjects: @"xib",nil]]; } @end gorm-1.2.24/Plugins/Xib/GormXibCustomResource.h0000644000000000000000000000177713410616261020044 0ustar rootroot/* GormNibCustomResource * * Copyright (C) 2009 Free Software Foundation, Inc. * * Author: Gregory John Casamento * Date: 2009 * * This file is part of GNUstep. * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 3 of the License, or * (at your option) any later version. * * This program 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 General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software */ #ifndef GORM_NIBCUSTOMRESOURCE #define GORM_NIBCUSTOMRESOURCE #include @interface GormNibNibCustomResource : NSCustomResource @end #endif gorm-1.2.24/Plugins/Xib/GormXibWrapperLoader.m0000644000000000000000000002237713410616261017635 0ustar rootroot/* GormNibWrapperLoader * * Copyright (C) 2010 Free Software Foundation, Inc. * * Author: Gregory John Casamento * Date: 2010 * * This file is part of GNUstep. * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 3 of the License, or * (at your option) any later version. * * This program 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 General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02111 USA. */ #include #include #include #include #include #include #include #include #include #include #include #include #include "GormXibWrapperLoader.h" /* * Forward declarations for classes */ @class GormNSWindow; /* * Xib loader... */ @implementation GormXibWrapperLoader + (NSString *) fileType { return @"GSXibFileType"; } - (BOOL) loadFileWrapper: (NSFileWrapper *)wrapper withDocument: (GormDocument *) doc { BOOL result = NO; NS_DURING { // NSData *classes = nil; // NSString *key = nil; GormPalettesManager *palettesManager = [(id)NSApp palettesManager]; NSDictionary *substituteClasses = [palettesManager substituteClasses]; NSString *subClassName = nil; // NSDictionary *fileWrappers = nil; if ([super loadFileWrapper: wrapper withDocument: doc] && [wrapper isDirectory] == NO) { // NSString *path = [[wrapper filename] stringByDeletingLastPathComponent]; NSData *data = [wrapper regularFileContents]; GormClassManager *classManager = [document classManager]; id docFilesOwner; // turn off custom classes... [NSClassSwapper setIsInInterfaceBuilder: YES]; // check the data... if (data == nil) { result = NO; } else { NSEnumerator *en; GSXibKeyedUnarchiver *u; // // Create an unarchiver, and use it to unarchive the gorm file while // handling class replacement so that standard objects understood // by the gui library are converted to their Gorm internal equivalents. // u = [[GSXibKeyedUnarchiver alloc] initForReadingWithData: data]; [u setDelegate: self]; // // Special internal classes // [u setClass: [GormObjectProxy class] forClassName: @"NSCustomObject"]; [u setClass: [GormCustomView class] forClassName: @"NSCustomView"]; [u setClass: [GormWindowTemplate class] forClassName: @"NSWindowTemplate"]; [u setClass: [GormNSWindow class] forClassName: @"NSWindow"]; // // Substitute any classes specified by the palettes... // en = [substituteClasses keyEnumerator]; while ((subClassName = [en nextObject]) != nil) { NSString *realClassName = [substituteClasses objectForKey: subClassName]; Class substituteClass = NSClassFromString(subClassName); [u setClass: substituteClass forClassName: realClassName]; } // // decode // container = [u decodeObjectForKey: @"IBDocument.Objects"]; if (container == nil || [container isKindOfClass: [IBObjectContainer class]] == NO) { result = NO; } else { IBObjectRecord *or = nil; IBConnectionRecord *cr = nil; NSArray *rootObjects; id firstResponder; rootObjects = [u decodeObjectForKey: @"IBDocument.RootObjects"]; nibFilesOwner = [rootObjects objectAtIndex: 0]; firstResponder = [rootObjects objectAtIndex: 1]; docFilesOwner = [document filesOwner]; // // set the current class on the File's owner... // if ([nibFilesOwner isKindOfClass: [GormObjectProxy class]]) { [docFilesOwner setClassName: [nibFilesOwner className]]; } // // add objects... // en = [container objectRecordEnumerator]; while ((or = [en nextObject]) != nil) { id obj = [or object]; id o = obj; NSString *customClassName = nil; NSString *objName = nil; // skip the file's owner, it is handled above... if ((obj == nibFilesOwner) || (obj == firstResponder)) continue; // // if it's a window template, then replace it with an actual window. // if ([obj isKindOfClass: [NSWindowTemplate class]]) { NSString *className = [obj className]; BOOL isDeferred = [obj isDeferred]; BOOL isVisible = YES; // [[container visibleWindows] containsObject: obj]; // make the object deferred/visible... o = [obj nibInstantiate]; [document setObject: o isDeferred: isDeferred]; [document setObject: o isVisibleAtLaunch: isVisible]; // record the custom class... if ([classManager isCustomClass: className]) { customClassName = className; } } if ([rootObjects containsObject: obj]) { id parent = [or parent]; [document attachObject: o toParent: parent]; } if (customClassName != nil) { objName = [document nameForObject: obj]; [classManager setCustomClass: customClassName forName: objName]; } } /* FIXME: Should use IBDocument.Classes // // Add custom classes... // classesTable = [container classes]; classKeys = NSAllMapTableKeys(classesTable); en = [classKeys objectEnumerator]; while((o = [en nextObject]) != nil) { NSString *name = [document nameForObject: o]; NSString *customClass = NSMapGet(classesTable, o); if(name != nil && customClass != nil) { [classManager setCustomClass: customClass forName: name]; } else { NSLog(@"Name %@ or class %@ for object %@ is nil.", name, customClass, o); } } */ // // add connections... // en = [container connectionRecordEnumerator]; while ((cr = [en nextObject]) != nil) { IBConnection *conn = [cr connection]; NSNibConnector *o = [conn nibConnector]; id dest = [o destination]; id src = [o source]; if (dest == nibFilesOwner) { [o setDestination: [document filesOwner]]; } else if (dest == firstResponder) { [o setDestination: [document firstResponder]]; } if (src == nibFilesOwner) { [o setSource: [document filesOwner]]; } else if (src == firstResponder) { [o setSource: [document firstResponder]]; } // check src/dest for window template... if ([src isKindOfClass: [NSWindowTemplate class]]) { id win = [src realObject]; [o setSource: win]; } if ([dest isKindOfClass: [NSWindowTemplate class]]) { id win = [dest realObject]; [o setDestination: win]; } // skip any help connectors... if ([o isKindOfClass: [NSIBHelpConnector class]]) { continue; } [document addConnector: o]; } // turn on custom classes. [NSClassSwapper setIsInInterfaceBuilder: NO]; // clear the changes, since we just loaded the document. [document updateChangeCount: NSChangeCleared]; result = YES; } } [NSClassSwapper setIsInInterfaceBuilder: NO]; } } NS_HANDLER { NSRunAlertPanel(_(@"Problem Loading"), [NSString stringWithFormat: @"Failed to load file. Exception: %@",[localException reason]], _(@"OK"), nil, nil); result = NO; } NS_ENDHANDLER; // return the result. return result; } - (void) unarchiver: (NSKeyedUnarchiver *)unarchiver willReplaceObject: (id)obj withObject: (id)newObj { // Nothing for now... } - (id) unarchiver: (NSKeyedUnarchiver *)unarchiver didDecodeObject: (id)obj { if ([obj isKindOfClass: [NSWindowTemplate class]]) { GormClassManager *classManager = [document classManager]; Class clz ; NSString *className = [obj className]; if([classManager isCustomClass: className]) { className = [classManager nonCustomSuperClassOf: className]; } clz = [unarchiver classForClassName: className]; // [obj setBaseWindowClass: clz]; } else if ([obj respondsToSelector: @selector(setTarget:)] && [obj respondsToSelector: @selector(setAction:)] && [obj isKindOfClass: [NSCell class]] == NO) { // blank the target/action for all objects. [obj setTarget: nil]; [obj setAction: NULL]; } return obj; } @end gorm-1.2.24/Plugins/Xib/GNUmakefile0000644000000000000000000000242213410616261015457 0ustar rootroot# GNUmakefile # # Copyright (C) 1999 Free Software Foundation, Inc. # # Author: Richard Frith-Macdonald # Date: 1999 # # This file is part of GNUstep. # # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 2 of the License, or # (at your option) any later version. # # This program 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 General Public License for more details. # # You should have received a copy of the GNU General Public License # along with this program; if not, write to the Free Software # Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. PACKAGE_NAME = gorm include $(GNUSTEP_MAKEFILES)/common.make BUNDLE_NAME = Xib BUNDLE_EXTENSION = .plugin Xib_PRINCIPAL_CLASS = GormXibPlugin Xib_OBJC_FILES = GormXibPlugin.m \ GormXibWrapperLoader.m Xib_RESOURCE_FILES = Xib_STANDARD_INSTALL = no -include GNUmakefile.preamble -include GNUmakefile.local include $(GNUSTEP_MAKEFILES)/bundle.make -include GNUmakefile.postamble gorm-1.2.24/Plugins/GNUmakefile0000644000000000000000000000227413410616261014742 0ustar rootroot# GNUmakefile: main makefile for Gorm palettes # # Copyright (C) 1999 Free Software Foundation, Inc. # # Author: Gregory John Casamento # Date: 2007 # # This file is part of GNUstep. # # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 2 of the License, or # (at your option) any later version. # # This program 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 General Public License for more details. # # You should have received a copy of the GNU General Public License # along with this program; if not, write to the Free Software # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02111 USA. # PACKAGE_NAME = gorm include $(GNUSTEP_MAKEFILES)/common.make # # Each palette is a subproject # SUBPROJECTS = \ Gorm \ Nib \ GModel \ Xib -include GNUmakefile.preamble -include GNUmakefile.local include $(GNUSTEP_MAKEFILES)/aggregate.make -include GNUmakefile.postamble gorm-1.2.24/Plugins/GModel/0000755000000000000000000000000013426741712014041 5ustar rootrootgorm-1.2.24/Plugins/GModel/GNUmakefile.preamble0000644000000000000000000000130513410616261017671 0ustar rootroot# Additional include directories the compiler should search ADDITIONAL_INCLUDE_DIRS += -I../.. ifeq ($(GNUSTEP_TARGET_OS),mingw32) ADDITIONAL_LIB_DIRS += \ -L../../GormLib/$(GNUSTEP_OBJ_DIR) \ -L../../GormObjCHeaderParser/$(GNUSTEP_OBJ_DIR) \ -L../../GormPrefs/$(GNUSTEP_OBJ_DIR) \ -L../../GormCore/$(GNUSTEP_OBJ_DIR) ADDITIONAL_GUI_LIBS += -lGorm -lGormCore endif ifeq ($(GNUSTEP_TARGET_OS),cygwin) ADDITIONAL_LIB_DIRS += \ -L../../GormLib/$(GNUSTEP_OBJ_DIR) \ -L../../GormObjCHeaderParser/$(GNUSTEP_OBJ_DIR) \ -L../../GormPrefs/$(GNUSTEP_OBJ_DIR) \ -L../../GormCore/$(GNUSTEP_OBJ_DIR) GModel_LIBRARIES_DEPEND_UPON += -lGorm -lGormCore endifgorm-1.2.24/Plugins/GModel/GormGModelWrapperLoader.m0000644000000000000000000004552013410616261020702 0ustar rootroot/* GModelDecoder * * Copyright (C) 2002 Free Software Foundation, Inc. * * Author: Adam Fedor * Date: 2002 * * This file is part of GNUstep. * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 3 of the License, or * (at your option) any later version. * * This program 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 General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02111 USA. */ #include #include #include #include #include #include #include #include #include #include #include #include "GormGModelWrapperLoader.h" static Class gmodel_class(NSString *className); static id gormNibOwner; static id gormRealObject; static BOOL gormFileOwnerDecoded; @interface NSWindow (GormPrivate) - (void) gmSetStyleMask: (unsigned int)mask; @end @implementation NSWindow (GormPrivate) // private method to change the Window style mask on the fly - (void) gmSetStyleMask: (unsigned int)mask { _styleMask = mask; [GSServerForWindow(self) stylewindow: mask : [self windowNumber]]; } @end @interface NSWindow (GormNSWindowPrivate) - (unsigned int) _styleMask; @end @interface GModelApplication : NSObject { id mainMenu; id windowMenu; id delegate; NSArray *windows; } + (id)createObjectForModelUnarchiver:(GMUnarchiver*)unarchiver; - (id)initWithModelUnarchiver:(GMUnarchiver*)unarchiver; - mainMenu; - windowMenu; - delegate; - (NSArray *) windows; @end @implementation GModelApplication - (id)initWithModelUnarchiver:(GMUnarchiver*)unarchiver { NSEnumerator *enumerator; NSWindow *win; mainMenu = [unarchiver decodeObjectWithName:@"mainMenu"]; windows = [unarchiver decodeObjectWithName:@"windows"]; enumerator = [windows objectEnumerator]; while ((win = [enumerator nextObject]) != nil) { /* Fix up window frames */ if ([win styleMask] == NSBorderlessWindowMask) { NSLog(@"Fixing borderless window %@", win); [win gmSetStyleMask: NSTitledWindowMask]; } /* Fix up the background color */ [win setBackgroundColor: [NSColor windowBackgroundColor]]; } delegate = [unarchiver decodeObjectWithName:@"delegate"]; return self; } - (NSArray *) windows { return windows; } - mainMenu { return mainMenu; } - windowMenu { return windowMenu; } - delegate { return delegate; } + (id)createObjectForModelUnarchiver:(GMUnarchiver*)unarchiver { return AUTORELEASE([[GModelApplication alloc] init]); } @end @interface GModelMenuTemplate : NSObject { NSString *menuClassName; id realObject; } + (id)createObjectForModelUnarchiver:(GMUnarchiver*)unarchiver; - (id)initWithModelUnarchiver:(GMUnarchiver*)unarchiver; @end @implementation GModelMenuTemplate - (id)initWithModelUnarchiver:(GMUnarchiver*)unarchiver { menuClassName = [unarchiver decodeObjectWithName:@"menuClassName"]; realObject = [unarchiver decodeObjectWithName: @"realObject"]; // RELEASE(self); return realObject; } + (id)createObjectForModelUnarchiver:(GMUnarchiver*)unarchiver { return AUTORELEASE([[GModelMenuTemplate alloc] init]); } @end @implementation GormObjectProxy (GModel) + (id)createObjectForModelUnarchiver:(GMUnarchiver*)unarchiver { return AUTORELEASE([[self alloc] init]); } - (id)initWithModelUnarchiver: (GMUnarchiver*)unarchiver { id extension; id realObject; theClass = RETAIN([unarchiver decodeStringWithName: @"className"]); extension = [unarchiver decodeObjectWithName: @"extension"]; realObject = [unarchiver decodeObjectWithName: @"realObject"]; //real = [unarchiver representationForName: @"realObject" isLabeled: &label]; if (!gormFileOwnerDecoded || [realObject isKindOfClass: [GModelApplication class]]) { gormFileOwnerDecoded = YES; gormNibOwner = self; gormRealObject = realObject; } return self; } @end @implementation GormCustomView (GModel) + (id)createObjectForModelUnarchiver:(GMUnarchiver*)unarchiver { return AUTORELEASE([[self alloc] initWithFrame: NSMakeRect(0,0,10,10)]); } - (id)initWithModelUnarchiver:(GMUnarchiver*)unarchiver { NSString *cn; id realObject; id extension; cn = [unarchiver decodeStringWithName: @"className"]; extension = [unarchiver decodeObjectWithName: @"extension"]; realObject = [unarchiver decodeObjectWithName: @"realObject"]; [self setFrame: [unarchiver decodeRectWithName: @"frame"]]; [self setClassName: cn]; if (!gormFileOwnerDecoded) { gormFileOwnerDecoded = YES; gormNibOwner = self; gormRealObject = realObject; } return self; } @end @interface GormDocument (GModelLoaderAdditions) - (void) defineClass: (id)className inFile: (NSString *)path; - (id) connectionObjectForObject: object; - (NSDictionary *) processModel: (NSMutableDictionary *)model inPath: (NSString *)path; @end @implementation GormDocument (GModelLoaderAdditions) /* Try to define a possibly custom class that's in the gmodel file. This is not information that is contained in the file itself. For instance, we don't even know what the superclass is, and at best, we could search the connections to see what outlets and actions are used. */ - (void) defineClass: (id)className inFile: (NSString *)path { int result; NSString *header; NSFileManager *mgr; NSRange notFound = NSMakeRange(NSNotFound, 0); if ([classManager isKnownClass: className]) return; /* Can we parse a header in this directory? */ mgr = [NSFileManager defaultManager]; path = [path stringByDeletingLastPathComponent]; header = [path stringByAppendingPathComponent: className]; header = [header stringByAppendingPathExtension: @"h"]; if ([mgr fileExistsAtPath: header]) { result = NSRunAlertPanel(_(@"GModel Loading"), _(@"Parse %@ to define unknown class %@?"), _(@"Yes"), _(@"No"), _(@"Choose File"), header, className, nil); } else { result = NSRunAlertPanel(_(@"GModel Loading"), _(@"Unknown class %@. Parse header file to define?"), _(@"Yes"), _(@"No, Choose Superclass"), nil, className, nil); if (result == NSAlertDefaultReturn) result = NSAlertOtherReturn; } if (result == NSAlertOtherReturn) { NSOpenPanel *opanel = [NSOpenPanel openPanel]; NSArray *fileTypes = [NSArray arrayWithObjects: @"h", @"H", nil]; result = [opanel runModalForDirectory: path file: nil types: fileTypes]; if (result == NSOKButton) { header = [opanel filename]; result = NSAlertDefaultReturn; } } // make a guess and warn the user if (result != NSAlertDefaultReturn) { NSString *superClass = promptForClassName([NSString stringWithFormat: @"Superclass: %@",className], [classManager allClassNames]); BOOL added = NO; // cheesy attempt to determine superclass.. if(superClass == nil) { if([className isEqual: @"GormCustomView"]) { superClass = @"NSView"; } else if(NSEqualRanges(notFound,[className rangeOfString: @"Window"]) == NO) { superClass = @"NSWindow"; } else if(NSEqualRanges(notFound,[className rangeOfString: @"Panel"]) == NO) { superClass = @"NSPanel"; } else { superClass = @"NSObject"; } } added = [classManager addClassNamed: className withSuperClassNamed: superClass withActions: [NSMutableArray array] withOutlets: [NSMutableArray array]]; // inform the user... if(added) { NSLog(@"Added class %@ with superclass of %@.", className, superClass); } else { NSLog(@"Failed to add class %@ with superclass of %@.", className, superClass); } } else { NS_DURING { if(![classManager parseHeader: header]) { NSString *file = [header lastPathComponent]; NSString *message = [NSString stringWithFormat: _(@"Unable to parse class in %@"),file]; NSRunAlertPanel(_(@"Problem parsing class"), message, nil, nil, nil); } } NS_HANDLER { NSString *message = [localException reason]; NSRunAlertPanel(_(@"Problem parsing class"), message, nil, nil, nil); } NS_ENDHANDLER; } } /* Replace the proxy with the real object if necessary and make sure there is a name for the connection object */ - (id) connectionObjectForObject: object { if (object == nil) return nil; if (object == gormNibOwner) object = filesOwner; else [self setName: nil forObject: object]; return object; } - (NSDictionary *) processModel: (NSMutableDictionary *)model inPath: (NSString *)path { NSMutableDictionary *customMap = nil; NSEnumerator *en = [model keyEnumerator]; NSMutableArray *deleted = [NSMutableArray array]; id key; NSLog(@"Processing model..."); while((key = [en nextObject]) != nil) { NSDictionary *obj = [model objectForKey: key]; if(obj != nil) { if([obj isKindOfClass: [NSDictionary class]]) { NSString *objIsa = [(NSMutableDictionary *)obj objectForKey: @"isa"]; Class cls = NSClassFromString(objIsa); if(cls == nil) { // Remove this class. It's not defined on GNUstep and it's generally // useless. if([objIsa isEqual: @"NSNextStepFrame"]) { NSString *subviewsKey = [obj objectForKey: @"subviews"]; NSDictionary *subviews = [model objectForKey: subviewsKey]; NSArray *elements = [subviews objectForKey: @"elements"]; NSEnumerator *subViewEnum = [elements objectEnumerator]; NSString *svkey = nil; while((svkey = [subViewEnum nextObject]) != nil) { [deleted addObject: svkey]; } [deleted addObject: key]; [deleted addObject: subviewsKey]; continue; } if([objIsa isEqual: @"NSImageCacheView"]) { // this is eliminated in the NSNextStepFrame section above. continue; } if([classManager isKnownClass: objIsa] == NO && [objIsa isEqual: @"IMControlConnector"] == NO && [objIsa isEqual: @"IMOutletConnector"] == NO && [objIsa isEqual: @"IMCustomObject"] == NO && [objIsa isEqual: @"IMCustomView"] == NO) { NSString *superClass; NSLog(@"%@ is not a known class",objIsa); [self defineClass: objIsa inFile: path]; superClass = [classManager superClassNameForClassNamed: objIsa]; [(NSMutableDictionary *)obj setObject: superClass forKey: @"isa"]; } } } } } // remove objects marked for deletion the model. en = [deleted objectEnumerator]; while((key = [en nextObject]) != nil) { [model removeObjectForKey: key]; } return customMap; } @end @implementation GormGModelWrapperLoader + (NSString *) fileType { return @"GSGModelFileType"; } /* importing of legacy gmodel files.*/ - (BOOL) loadFileWrapper: (NSFileWrapper *)wrapper withDocument: (GormDocument *) doc { id obj, con; id unarchiver; id decoded; NSEnumerator *enumerator; NSArray *gmobjects; NSArray *gmconnections; Class u = gmodel_class(@"GMUnarchiver"); NSString *delegateClass = nil; NSData *data = [wrapper regularFileContents]; NSString *dictString = AUTORELEASE([[NSString alloc] initWithData: data encoding: NSASCIIStringEncoding]); NSMutableDictionary *model = [NSMutableDictionary dictionaryWithDictionary: [dictString propertyList]]; NSString *path = [[wrapper filename] stringByDeletingLastPathComponent]; gormNibOwner = nil; gormRealObject = nil; gormFileOwnerDecoded = NO; /* GModel classes */ [u decodeClassName: @"NSApplication" asClassName: @"GModelApplication"]; [u decodeClassName: @"IMCustomView" asClassName: @"GormCustomView"]; [u decodeClassName: @"IMCustomObject" asClassName: @"GormObjectProxy"]; /* Gorm classes */ [u decodeClassName: @"NSMenu" asClassName: @"GormNSMenu"]; [u decodeClassName: @"NSWindow" asClassName: @"GormNSWindow"]; [u decodeClassName: @"NSPanel" asClassName: @"GormNSPanel"]; [u decodeClassName: @"NSBrowser" asClassName: @"GormNSBrowser"]; [u decodeClassName: @"NSTableView" asClassName: @"GormNSTableView"]; [u decodeClassName: @"NSOutlineView" asClassName: @"GormNSOutlineView"]; [u decodeClassName: @"NSPopUpButton" asClassName: @"GormNSPopUpButton"]; [u decodeClassName: @"NSPopUpButtonCell" asClassName: @"GormNSPopUpButtonCell"]; [u decodeClassName: @"NSOutlineView" asClassName: @"GormNSOutlineView"]; [u decodeClassName: @"NSMenuTemplate" asClassName: @"GModelMenuTemplate"]; [u decodeClassName: @"NSCStringText" asClassName: @"NSText"]; // process the model to take care of any custom classes... [doc processModel: model inPath: path]; // initialize with the property list... unarchiver = [[u alloc] initForReadingWithPropertyList: [[model description] propertyList]]; if (!unarchiver) { return NO; } NS_DURING { decoded = [unarchiver decodeObjectWithName:@"RootObject"]; } NS_HANDLER { NSRunAlertPanel(_(@"GModel Loading"), [localException reason], @"Ok", nil, nil); return NO; } NS_ENDHANDLER gmobjects = [decoded performSelector: @selector(objects)]; gmconnections = [decoded performSelector: @selector(connections)]; if (gormNibOwner) { [doc defineClass: [gormNibOwner className] inFile: path]; [[document filesOwner] setClassName: [gormNibOwner className]]; } /* * Now we merge the objects from the gmodel into our own data * structures. */ enumerator = [gmobjects objectEnumerator]; while ((obj = [enumerator nextObject])) { if (obj != gormNibOwner) { [doc attachObject: obj toParent: nil]; } if([obj isKindOfClass: [GormObjectProxy class]]) { if([[obj className] isEqual: @"NSFontManager"]) { // if it's the font manager, take care of it... [doc setName: @"NSFont" forObject: obj]; [doc attachObject: obj toParent: nil]; } else { NSLog(@"processing... %@",[obj className]); [doc defineClass: [obj className] inFile: path]; } } } // build connections... enumerator = [gmconnections objectEnumerator]; while ((con = [enumerator nextObject]) != nil) { NSNibConnector *newcon; id source, dest; source = [doc connectionObjectForObject: [con source]]; dest = [doc connectionObjectForObject: [con destination]]; NSDebugLog(@"connector = %@",con); if ([[con className] isEqual: @"IMOutletConnector"]) // We don't link the gmodel library at compile time... { newcon = AUTORELEASE([[NSNibOutletConnector alloc] init]); if(![[doc classManager] isOutlet: [con label] ofClass: [source className]]) { [[doc classManager] addOutlet: [con label] forClassNamed: [source className]]; } if([[source className] isEqual: @"NSApplication"]) { delegateClass = [dest className]; } } else { NSString *className = (dest == nil)?(NSString *)@"FirstResponder":(NSString *)[dest className]; newcon = AUTORELEASE([[NSNibControlConnector alloc] init]); if(![[doc classManager] isAction: [con label] ofClass: className]) { [[doc classManager] addAction: [con label] forClassNamed: className]; } } NSDebugLog(@"conn = %@ source = %@ dest = %@ label = %@, src name = %@ dest name = %@", newcon, source, dest, [con label], [source className], [dest className]); [newcon setSource: source]; [newcon setDestination: (dest != nil)?dest:[doc firstResponder]]; [newcon setLabel: [con label]]; [[doc connections] addObject: newcon]; } // make sure that all of the actions on the application's delegate object are also added to FirstResponder. enumerator = [[doc connections] objectEnumerator]; while ((con = [enumerator nextObject]) != nil) { if([con isKindOfClass: [NSNibControlConnector class]]) { id dest = [con destination]; if([[dest className] isEqual: delegateClass]) { if(![[doc classManager] isAction: [con label] ofClass: @"FirstResponder"]) { [[doc classManager] addAction: [con label] forClassNamed: @"FirstResponder"]; } } } } if ([gormRealObject isKindOfClass: [GModelApplication class]]) { if([gormRealObject respondsToSelector: @selector(windows)]) { enumerator = [[gormRealObject windows] objectEnumerator]; while ((obj = [enumerator nextObject])) { if([obj isKindOfClass: [NSWindow class]]) { if([obj _styleMask] == 0) { // Skip borderless window. Borderless windows are // sometimes used as temporary objects in nib files, // they will show up unless eliminated. continue; } } [doc attachObject: obj toParent: nil]; } if([gormRealObject respondsToSelector: @selector(mainMenu)]) { if ([(GModelApplication *)gormRealObject mainMenu]) { [doc attachObject: [(GModelApplication *)gormRealObject mainMenu] toParent: nil]; } } } } else if(gormRealObject != nil) { // Here we need to addClass:... (outlets, actions). */ [doc defineClass: [gormRealObject className] inFile: path]; } else { NSLog(@"Don't understand real object %@", gormRealObject); } [doc rebuildObjToNameMapping]; // clear the changes, since we just loaded the document. [document updateChangeCount: NSChangeCleared]; return YES; } @end static Class gmodel_class(NSString *className) { static Class gmclass = Nil; if (gmclass == Nil) { NSBundle *theBundle; NSEnumerator *benum; NSString *path; /* Find the bundle */ benum = [NSStandardLibraryPaths() objectEnumerator]; while ((path = [benum nextObject])) { path = [path stringByAppendingPathComponent: @"Bundles"]; path = [path stringByAppendingPathComponent: @"libgmodel.bundle"]; if ([[NSFileManager defaultManager] fileExistsAtPath: path]) break; path = nil; } NSCAssert(path != nil, @"Unable to load gmodel bundle"); NSDebugLog(@"Loading gmodel from %@", path); theBundle = [NSBundle bundleWithPath: path]; NSCAssert(theBundle != nil, @"Can't init gmodel bundle"); gmclass = [theBundle classNamed: className]; NSCAssert(gmclass, @"Can't load gmodel bundle"); } return gmclass; } gorm-1.2.24/Plugins/GModel/GormGModelWrapperLoader.h0000644000000000000000000000205213410616261020666 0ustar rootroot/* GormNibWrapperLoader * * * Copyright (C) 2006 Free Software Foundation, Inc. * * Author: Gregory John Casamento * Date: 2006 * * This file is part of GNUstep. * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 3 of the License, or * (at your option) any later version. * * This program 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 General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software */ #ifndef GORM_GMODELWRAPPERLOADER #define GORM_GMODELWRAPPERLOADER #include @class NSMutableArray, NSString; @interface GormGModelWrapperLoader : GormWrapperLoader @end #endif gorm-1.2.24/Plugins/GModel/GormGModelPlugin.m0000644000000000000000000000235113410616261017364 0ustar rootroot/* GormGModelModule.m * * Copyright (C) 2007 Free Software Foundation, Inc. * * Author: Gregory John Casamento * Date: 2007 * * This file is part of GNUstep. * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 3 of the License, or * (at your option) any later version. * * This program 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 General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software */ #include #include #include #include "GormGModelWrapperLoader.h" @interface GormGModelPlugin : GormPlugin @end @implementation GormGModelPlugin - (void) didLoad { [self registerDocumentTypeName: [GormGModelWrapperLoader fileType] humanReadableName: @"GNUstep GModel" forExtensions: [NSArray arrayWithObjects: @"gmodel",nil]]; } @end gorm-1.2.24/Plugins/GModel/GNUmakefile0000644000000000000000000000245113410616261016106 0ustar rootroot# GNUmakefile # # Copyright (C) 1999 Free Software Foundation, Inc. # # Author: Richard Frith-Macdonald # Date: 1999 # # This file is part of GNUstep. # # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 2 of the License, or # (at your option) any later version. # # This program 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 General Public License for more details. # # You should have received a copy of the GNU General Public License # along with this program; if not, write to the Free Software # Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. PACKAGE_NAME = gorm include $(GNUSTEP_MAKEFILES)/common.make BUNDLE_NAME = GModel BUNDLE_EXTENSION = .plugin GModel_PRINCIPAL_CLASS = GormGModelPlugin GModel_OBJC_FILES = GormGModelPlugin.m \ GormGModelWrapperLoader.m GModel_RESOURCE_FILES = GModel_STANDARD_INSTALL = no -include GNUmakefile.preamble -include GNUmakefile.local include $(GNUSTEP_MAKEFILES)/bundle.make -include GNUmakefile.postamble gorm-1.2.24/main.m0000644000000000000000000000177413410616261012355 0ustar rootroot/* main.m * * Copyright (C) 2004 Free Software Foundation, Inc. * * Author: Gregory John Casamento * Date: 2004 * * This file is part of GNUstep. * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 3 of the License, or * (at your option) any later version. * * This program 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 General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02111 * USA. */ #include int main(int argc, const char *argv[]) { return NSApplicationMain(argc, argv); } gorm-1.2.24/INSTALL0000644000000000000000000000114413426755320012302 0ustar rootroot1 Required software ------------------- You need to have the GNUstep core libraries installed in order to compile and use Gorm. The core packages are, at a minimum: * gnustep-make * gnustep-base * gnustep-gui * gnustep-back See for further information. 2 Build and Install ------------------- Steps to build: * make && make install Please note that GormLib must be installed for Gorm.app to run. 3 Trouble --------- Give us feedback! Tell us what you like; tell us what you think could be better. Send bug reports and patches to . gorm-1.2.24/Images/0000755000000000000000000000000013410616261012447 5ustar rootrootgorm-1.2.24/Images/GormNib.tiff0000644000000000000000000002246413410616261014666 0ustar rootrootII*$LrŒ&]†f–¯ß_‹£¾-KZ!c‹¤Šj™²Ül›·üu¥¿ÿ€«Ãÿj™´ý-CK?-TjÇA`wsX€ ÿyŸ·ÿ‘·Íÿ…°Èÿz©ÂÿµËÿÝèïÿåíòÿãëðÿáéïÿÞçíÿÜåìÿÚäêÿÇØáÿ}©Àÿl·ÿkœ·ÿkœ·ÿkœ·ÿkœ·ÿkœ·ÿ\‡ ÿkœ·ÿ¡½Íÿ¡½Íÿ`’¯ÿ`’¯ÿ^ޝÿao‰ÿchªÿœ¢ÿÿœ¢ÿÿ”™Ýÿ4:…ÿBf‰ÿ8P{ÿRV…ÿœ¢ÿÿrw¾ÿcnÿEgƒÝ )9J:W€¡þq“«ÿ~¬Åÿ•ºÏÿx§Âÿx§ÁÿŒ´ÊÿÕãêÿáêïÿÞèîÿÔàèÿ³ËÙÿбÇÿmž¸ÿlœ·ÿkœ·ÿkœ·ÿkœ·ÿkœ·ÿkœ·ÿkœ·ÿ„¦ºÿ¡½Íÿ`’¯ÿ`’¯ÿ`’¯ÿhš¶ÿhš¶ÿ|¦ÁÿS~î7PfÈ%7Gœ#,ePv•ëp’®ÿdŽªÿ‹³Êÿƒ®Æÿv¥Àÿu¥Àÿt¤¿ÿt¤¾ÿ“·Ìÿ¿ÓßÿÊÚãÿ²ÊØÿš»Íÿ³ÇÿŒ±Æÿ³ÇÿŸ½Íÿ±ÈÔÿ©ÂÐÿ{¥¼ÿb”°ÿa’®ÿh”­ÿc‡ÿt¢»ÿk™³ÿk™³ÿ_w†ÿax‹ÿ_cŽÿ›¡ÿÿ±¶ÿÿ©¬ÐÿZ]†ÿptºÿqrnKp‹ÌhŽ«ÿbˆ£ÿv¥Àÿ–ºÎÿt£¿ÿt¤¾ÿs£¾ÿr¢½ÿq¡¼ÿq¡¼ÿ~©Áÿ’µÉÿ¤ÁÑÿªÄÓÿ§ÂÑÿœ»Ìÿˆ®ÃÿrŸ¸ÿe—³ÿe–²ÿrž·ÿy¢¹ÿk™³ÿk™³ÿk™³ÿ18šŒu{Íÿœ¢ÿÿ«°ÿÿ„Ïÿ).w€Hh„ž^†¦ÿk¨ÿmšµÿ“¸Íÿu¤¿ÿs¢¾ÿq¡½ÿq¡¼ÿp »ÿo ºÿmŸ¹ÿl¸ÿjœ·ÿiš¶ÿg™µÿg˜´ÿe—³ÿl›¶ÿz¤¼ÿx¢ºÿi™´ÿYˆ¤þDg|î0:º €HM’ÿœ¢ÿÿœ¢ÿÿ_bŸÿDOâQ=\vgV€¡ÿw—²ÿh«ÿ„¯Çÿ¬Äÿq¢½ÿq¡¼ÿp »ÿoŸºÿmž¹ÿm¹ÿkœ¸ÿj›·ÿhš¶ÿhšµÿs ºÿ¨¾ÿv¡ºÿd”°ÿW„žú>_qÔ 'z5*?U1ER!7BÛ,RUŠÿœ¢ÿÿœ¢ÿÿ“˜ðÿ==Jn7Wg¸þÁ=µÿ¾<²ÿ»;¯þ¸:¬þª5žî„*{¾^Yn¢3—¾ÕDÈþÓAÆÿÑ=ÃÿÐ5ÂÿÏ1ÀÿÍ1¾ÿË0¼ÿÈ/ºÿÆ/·ÿÃ.µÿÁ-³ÿ¿-±ÿ¸2«ÿ±5¥ÿ¬6¡þ2“î{'s¾`YnÍA¿îÙBËÿ×>ÉÿÖ3ÇÿÖ+ÅÿÕ'ÄÿÔ#ÃÿÓ"ÂÿÑ#ÀÿÐ"¿ÿÎ"½ÿÍ"¼ÿË"ºÿÉ!¹ÿÇ ·ÿÄ"´ÿ¾$°ÿµ*§ÿ­/ ÿ¢2—ÿŸ2•þs$l¾b[nÑCÃîÜDÎþÛ;ÌÿÚ-ÉÿÙ&ÈÿØ$Çÿ×$ÅÿÕ#ÄÿÔ#ÃÿÒ#ÁÿÑ#ÀÿÏ"¾ÿÍ"½ÿË"»ÿÉ!¹ÿÈ!¸ÿÆ!¶ÿÄ ´ÿ ³ÿÀ°ÿ¼!­ÿµ#§ÿ©(ÿœ-’ÿ–.Œÿl!d¾¨6¾àGÑþÝ<ÎÿÜ/ÌÿÛ&ÊÿÚ$ÉÿÙ$Çÿ×$ÆÿÖ#ÅÿÕ#ÄÿÓ#ÂÿÑ#ÀÿÐ"¿ÿÎ"½ÿÌ"¼ÿË"ºÿÉ!¸ÿÇ!·ÿÅ!µÿà ³ÿÁ ²ÿÀ °ÿ½®ÿ»¬ÿ¸©ÿ± £ÿ£&—ÿ“+‰ÿƒ(zî;8nÔCÆîáGÒÿÞ<ÏÿÝ)ÌÿÜ%ÊÿÛ$ÉÿÙ$ÈÿØ$Çÿ×$ÅÿÕ#ÄÿÔ#ÃÿÒ#ÁÿÑ#ÀÿÏ"¾ÿÍ"¼ÿË"»ÿÊ!¹ÿÈ!·ÿÆ!¶ÿÄ ´ÿ ²ÿÀ ±ÿ¾®ÿ¼­ÿº«ÿ¸©ÿ·¨ÿ³¤ÿ¤"˜ÿŒ)ƒÿ†)}þ84nÕCÇîâDÒÿß4ÏÿÞ%ÌÿÜ$ËÿÜ$ÊÿÚ$ÉÿÙ$ÈÿØ$ÆÿÖ$ÅÿÕ#ÄÿÓ#ÂÿÑ#ÀÿÐ"¿ÿÎ"½ÿÌ"¼ÿÊ!ºÿÈ!¸ÿÇ!¶ÿÅ µÿà ³ÿÁ ±ÿ¿ ¯ÿ½­ÿ»¬ÿ¹ªÿ¶¨ÿµ¦ÿ³¤ÿ¯¡ÿ¢ –ÿŠ&ÿ'yÿ62nÖEÈîâDÓÿà-Ïÿß%ÍÿÞ%ÌÿÜ%ËÿÛ$ÊÿÚ$ÈÿØ$Çÿ×$ÆÿÕ#ÄÿÔ#ÃÿÒ#ÁÿÑ#ÀÿÏ"¾ÿÍ"½ÿË"»ÿÉ!¹ÿÇ!·ÿÅ!µÿà ³ÿÁ ²ÿÀ °ÿ½®ÿ»¬ÿ¹ªÿ·¨ÿ¶§ÿ´¥ÿ²£ÿ°¡ÿ­Ÿÿ¦™ÿ†$}ÿ~'vÿ96n×DÉîäDÕÿá-Ðÿß%ÍÿÞ%ÌÿÝ%ËÿÜ%ÊÿÛ$ÉÿÙ$ÈÿØ$ÇÿÖ$ÅÿÕ#ÄÿÓ#ÂÿÑ#ÀÿÏ"¿ÿÊ!¹ÿº«ÿµ¦ÿ´¥ÿ³¥ÿ³¤ÿº«ÿÀ±ÿ¾¯ÿ¼­ÿº«ÿ¹ªÿ¶§ÿ´¥ÿ²¤ÿ°¢ÿ® ÿ¬žÿªœÿ¢•ÿ‹$ÿogÿ84nµC¯¾ëQàÿâ5Ñÿà%Îÿß%ÍÿÞ%ÌÿÝ%ËÿÜ$ÊÿÚ$ÉÿÙ$Çÿ×$ÆÿÖ#ÄÿÔ"ÃÿÆ!¶ÿž‘ÿƒxÿjbÿWPÿo|‡þp|‡þp{‡þ`Yÿsjÿ‹ÿ‘†ÿ­Ÿÿ¶¨ÿ·¨ÿµ¦ÿ²¤ÿ±¢ÿ® ÿ­žÿ«ÿ “ÿ|rÿƒ&}ÿÕTÒÿž7—ÿ41nc^n|tÿ¬=¨ÿ÷YñÿÞ$Ìÿß%ÍÿÞ%ÌÿÜ%ËÿÛ$ÉÿÚ$ÈÿØ$Çÿ×$ÅÿÐ"Àÿ·¨ÿjbÿb~}þg²’þvç°þuã®þa¾‘þa¼ÿ`¼ÿnפþlÔ¢þg£Œþes{þtkÿšŽÿ²£ÿ³¤ÿ²£ÿ¯¡ÿ­Ÿÿ«ÿ•‰ÿkcÿÕTÒÿÍBÅÿœÿt#lÿf`î×DÉîã>Óÿ—Œÿƒ&}ÿÕTÒÿæ6ØÿÝ%ÌÿÜ%ÊÿÚ$ÉÿÙ$Èÿ×#ÅÿÉ!¸ÿ–Šÿ_Hiþyì´þd•þY®…ÿP›wÿP›wÿP›wÿP›wÿP›wÿP›wÿP›wÿV§€þ[²ˆþdÕþtHzþŒ ÿ©œÿ°¢ÿ®Ÿÿ¬žÿneÿ¬=¨ÿæVáÿ´.ªÿšÿŸ’ÿŒÿf`ÿ+ (nc\näFÕþá/ÐÿÞ$ÌÿÜ$Êÿ{qÿ¬=¨ÿöYðÿä6ÖÿÚ$ÈÿÔ#Âÿ¹©ÿldÿg¶“þoØ¥þP›wÿP›wÿP›wÿP›wÿP›wÿP›wÿP›wÿP›wÿP›wÿP›wÿP›wÿP›wÿP›wÿ\²ˆÿg’‡þˆ$~ÿŸ “ÿƒxÿƒ&}ÿÕTÒÿ¸.®ÿž‘ÿŸ’ÿÿŸ’ÿ™ŒÿldÿZUîÕDÈîâ=Òÿà%Îÿß%ÍÿÞ%ÌÿÜ$Ëÿº¬ÿzpÿÕTÒÿìGâÿ¹ªÿfIoÿzî¶þZ°†þP›wÿP›wÿP›wÿP›wÿP›wÿP›wÿP›wÿP›wÿP›wÿP›wÿP›wÿP›wÿP›wÿP›wÿP›wÿR {þY­„þsAwþÕTÒÿÑCÉÿ£•ÿ “ÿž‘ÿ¢”ÿ “ÿž‘ÿœÿ‡|ÿaZÿ( $nc\nãEÔþà-Ïÿß%Íÿß%ÍÿÞ%ÌÿÝ$ËÿÚ$ÉÿÙ$Çÿ™ÿƒ&}ÿƒ'}ÿyíµþP›wÿP›wÿP›wÿP›wÿP›wÿP›wÿP›wÿÿÿÿÿP›wÿP›wÿP›wÿP›wÿP›wÿP›wÿP›wÿP›wÿT£}þ…Iˆÿœ ÿ¡”ÿ¡”ÿ¢•ÿ “ÿŸ’ÿÿ›Žÿ”‰ÿjcÿSMî©6Ÿ¾áAÒÿß%ÍÿÞ%ÌÿÞ%ÌÿÝ%ËÿÜ$ÊÿÚ$ÈÿÙ#ÈÿÅ.·ÿ™!Žÿnµ™þZ¯†þP›wÿP›wÿP›wÿP›wÿP›wÿP›wÿP›wÿP›wÿÿÿÿP›wÿP›wÿP›wÿP›wÿP›wÿP›wÿP›wÿP›wÿP›wÿU¥~ÿ‚G„ÿž’ÿ¡”ÿ¡”ÿŸ’ÿÿœÿšÿ˜‹ÿ{qÿWQÿN GnáHÓÿß2ÏÿÞ%ÌÿÝ%ÌÿÝ%ËÿÜ$ÊÿÛ$ÉÿÚ$ÈÿÙ$ÈÿØ#ÇÿzXƒþnÖ¤þP›wÿP›wÿP›wÿP›wÿP›wÿP›wÿP›wÿP›wÿP›wÿÿÿÿP›wÿP›wÿP›wÿP›wÿP›wÿP›wÿP›wÿP›wÿP›wÿOšvÿtc‚ÿ &”ÿ¡”ÿ ’ÿž‘ÿœÿ›Žÿ™Œÿ—‹ÿ‰~ÿ\Vÿ=9¾b[nßDÑþÞ-ÍÿÝ%ÌÿÜ%ËÿÛ$ÊÿÚ$ÉÿÚ$ÈÿÙ$ÇÿË!ºÿkcÿwè±þP›wÿP›wÿP›wÿP›wÿP›wÿP›wÿP›wÿP›wÿP›wÿP›wÿÿÿÿP›wÿP›wÿP›wÿP›wÿP›wÿP›wÿP›wÿP›wÿP›wÿP›wÿF‰hþ¨1ÿ£!–ÿž‘ÿÿ›Žÿ™ÿ˜‹ÿ–ŠÿŽƒÿb[ÿKFî¨6¾Þ@ÏÿÝ'ÌÿÝ%ËÿÜ$ÊÿÛ$ÉÿÚ$ÈÿÙ$Çÿ×#Æÿ¡”ÿa{{ÿcÀ“þP›wÿP›wÿP›wÿP›wÿP›wÿP›wÿP›wÿP›wÿP›wÿP›wÿÿÿÿP›wÿP›wÿP›wÿP›wÿP›wÿP›wÿP›wÿP›wÿP›wÿP›wÿIŽmþy[ƒÿ¬. ÿœÿ›Žÿ™ÿ˜‹ÿ–Šÿ”ˆÿ“‡ÿofÿNHÿÞGÐþÜ7ÍÿÜ%ËÿÛ$ÊÿÚ$ÉÿÚ$ÈÿÙ$Çÿ×$ÆÿÖ#Åÿ…zÿe®ŽþY­„ÿP›wÿP›wÿP›wÿP›wÿP›wÿP›wÿP›wÿP›wÿP›wÿP›wÿÿÿÿP›wÿP›wÿÿÿP›wÿP›wÿP›wÿP›wÿP›wÿP›wÿL“qÿ[ioþ³5§ÿŸ“ÿšÿ˜Œÿ—Šÿ•‰ÿ“‡ÿ’†ÿˆ|ÿLGÿ73¾ÝGÏÿÛ5ËÿÛ$ÊÿÛ$ÉÿÚ$ÈÿØ$Çÿ×$ÆÿÖ$ÅÿÐ"Àÿvmÿsà«þP›wÿP›wÿP›wÿP›wÿP›wÿP›wÿP›wÿP›wÿP›wÿP›wÿP›wÿÿÿÿÿÿÿÿÿP›wÿP›wÿP›wÿP›wÿP›wÿP›wÿ;rWþ¹7¬ÿ ”ÿ˜‹ÿ—Šÿ•‰ÿ”ˆÿ’†ÿ‘…ÿ…zÿJEÿ61¾ÛFÍþÚ4ÊÿÛ$ÉÿÙ$ÈÿØ$Çÿ×$ÆÿÖ#ÅÿÕ#ÃÿÀ ±ÿUOÿqÝ©þP›wÿP›wÿP›wÿP›wÿP›wÿP›wÿP›wÿP›wÿP›wÿP›wÿP›wÿÿÿÿP›wÿP›wÿP›wÿÿÿÿP›wÿP›wÿP›wÿP›wÿP›wÿ8mSþÀ<´ÿ«)Ÿÿ—Šÿ•‰ÿ”ˆÿ’†ÿ‘…ÿƒÿƒyÿHCÿ4 0¾ÙEËþÙ2ÉÿÚ$ÈÿØ$Çÿ×$ÆÿÖ$ÅÿÕ#ÄÿÔ#Ãÿ»¬ÿmx…ÿ`ºŽþP›wÿP›wÿP›wÿP›wÿP›wÿP›wÿP›wÿP›wÿP›wÿP›wÿP›wÿÿÿÿP›wÿP›wÿP›wÿÿÿÿP›wÿP›wÿP›wÿP›wÿP›wÿB€bþ}R„þ¯,¢ÿ•‰ÿ”ˆÿ“‡ÿ‘…ÿ„ÿƒÿ‚xÿPJÿ3 0¾×EÊþØ/ÈÿÙ$Çÿ×$ÆÿÖ$ÅÿÕ#ÄÿÔ#ÃÿÒ#Áÿ»¬ÿmw„þ^¸þP›wÿP›wÿP›wÿP›wÿP›wÿP›wÿP›wÿP›wÿP›wÿP›wÿP›wÿÿÿÿP›wÿP›wÿP›wÿÿÿÿP›wÿP›wÿP›wÿP›wÿP›wÿA~`þ~P„ÿ°,£ÿ”ˆÿ“‡ÿ‘…ÿ„ÿŽƒÿ‚ÿwÿD?ÿ1 .¾ÖDÈþ×/ÇÿØ$ÆÿÖ$ÅÿÕ#ÄÿÔ#ÃÿÒ#ÁÿÑ#Àÿº«ÿdFlþd”þP›wÿP›wÿP›wÿP›wÿP›wÿP›wÿP›wÿP›wÿP›wÿP›wÿP›wÿÿÿÿP›wÿP›wÿP›wÿÿÿÿP›wÿP›wÿP›wÿP›wÿP›wÿ8mSþ§H£þ²,¥ÿ“‡ÿ‘…ÿ„ÿŽƒÿÿÿ€uÿB=ÿ0 -¾ÔCÆþÕ.Æÿ×$ÅÿÖ#ÄÿÔ#ÃÿÓ#ÂÿÑ#ÁÿÐ"¿ÿ½ ®ÿ`YÿiÍœþP›wÿP›wÿP›wÿP›wÿP›wÿP›wÿP›wÿP›wÿP›wÿP›wÿP›wÿÿÿÿP›wÿP›wÿP›wÿÿÿÿP›wÿP›wÿP›wÿP›wÿP›wÿ.YDþÐBÃÿ¯+£ÿ‘…ÿ„ÿƒÿŽ‚ÿŒÿ‹€ÿtÿ@;ÿ. +¾ÒCÄþÔ0ÄÿÕ#ÄÿÔ#ÃÿÓ#ÂÿÑ#ÀÿÐ"¿ÿÎ"¾ÿÉ!¹ÿvmÿfǘþP›wÿP›wÿP›wÿP›wÿP›wÿÿÿP›wÿP›wÿP›wÿP›wÿÿÿÿP›wÿP›wÿP›wÿÿÿÿP›wÿP›wÿP›wÿP›wÿP›wÿ+T@þÍ>Àÿž ’ÿ„ÿƒÿŽ‚ÿŒÿ‹€ÿŠÿ}sÿ>9ÿÐBÃþÑ2ÂÿÕ#ÄÿÓ#ÂÿÒ#ÁÿÐ#ÀÿÏ"¾ÿÍ"½ÿË!»ÿ…{ÿ\mqþY­„ÿP›wÿP›wÿP›wÿÿÿÿÿP›wÿP›wÿP›wÿÿÿÿP›wÿP›wÿP›wÿÿÿÿP›wÿP›wÿP›wÿP›wÿ=v[þ€KƒþÎ>Àÿ›ÿƒÿŽ‚ÿŒÿ‹€ÿŠÿ‰~ÿ|rÿ<8ÿ›1‘¿Ï7ÀÿÓ#ÂÿÒ#ÁÿÐ#ÀÿÏ"¿ÿÎ"½ÿÌ"»ÿÊ!ºÿ£–ÿfClþ[±ˆþP›wÿP›wÿP›wÿÿÿÿÿP›wÿP›wÿP›wÿÿÿÿP›wÿP›wÿP›wÿÿÿÿP›wÿP›wÿP›wÿP›wÿ2aJþ¨D£þÂ6µÿƒÿŽ‚ÿŒÿ‹€ÿŠ~ÿ‰~ÿˆ}ÿneÿ:6ÿ; 6f _Ë;½ÿÐ'ÀÿÑ#ÀÿÏ"¿ÿÎ"½ÿÌ"¼ÿÊ!ºÿÉ!¸ÿ ²ÿ…{ÿ^Ž~þR zÿP›wÿP›wÿP›wÿÿÿP›wÿP›wÿP›wÿÿÿÿÿÿP›wÿÿÿÿÿÿP›wÿP›wÿE‡gÿTJ^þÎ=Àÿ¦%™ÿŽ‚ÿŒÿ‹€ÿŠÿ‰}ÿˆ}ÿ…zÿ\Tÿ95ÿÈ?»ÿÌ.½ÿÐ"¿ÿÎ"¾ÿÍ"¼ÿË"»ÿÉ!¹ÿÈ!·ÿÆ!¶ÿ³¥ÿxpÿWª‚þP›wÿP›wÿP›wÿP›wÿP›wÿP›wÿP›wÿP›wÿP›wÿP›wÿP›wÿP›wÿP›wÿP›wÿP›wÿP›wÿP›wÿP›wÿP›wÿP›wÿP›wÿ&J8þÜFÎÿ·/ªÿ„ÿÿ‹€ÿŠÿ‰~ÿˆ}ÿ‡|ÿ|rÿB=ÿHC¿”/‹¿Ç4¹ÿÏ"¾ÿÍ"½ÿÌ"»ÿÊ!ºÿÈ!¸ÿÆ!¶ÿÅ!µÿÁ±ÿ¡•ÿjBoþPxþP›wÿP›wÿP›wÿP›wÿP›wÿP›wÿP›wÿP›wÿP›wÿP›wÿP›wÿP›wÿP›wÿP›wÿP›wÿP›wÿP›wÿP›wÿP›wÿ/\Gþ¯F©þÆ8¸ÿ˜Œÿÿ‹€ÿŠÿ‰~ÿˆ}ÿ‡|ÿ†{ÿlcÿ62ÿ: 5a[Â9¶ÿË&»ÿÌ"¼ÿË!ºÿÉ!¹ÿÇ!·ÿÅ!µÿÄ ´ÿ ²ÿº«ÿŠ"ÿZ|tþM–sÿP›wÿP›wÿP›wÿP›wÿP›wÿP›wÿP›wÿP›wÿP›wÿP›wÿP›wÿP›wÿP›wÿP›wÿP›wÿP›wÿP›wÿ:pVÿMAVþÑ>ÃÿŸ!“ÿÿŒ€ÿŠÿ‰~ÿˆ}ÿ‡|ÿ†{ÿƒxÿUNÿ51ÿ-)?À<³ÿÄ.¶ÿË"»ÿÉ!¹ÿÈ!·ÿÆ!¶ÿÄ ´ÿ ²ÿÁ ±ÿ¾¯ÿ±£ÿ%„ÿh\vþIŽlþM•rþP›wÿP›wÿP›wÿP›wÿP›wÿP›wÿP›wÿP›wÿP›wÿP›wÿP›wÿP›wÿP›wÿE†gþ/[Eþ}C~þÒ>Ãÿ³,¦ÿŽ‚ÿŒÿ‹ÿ‰~ÿˆ}ÿ‡|ÿ†{ÿ…zÿvlÿ<8ÿGA¿^X½7°ÿÆ%·ÿÈ!¸ÿÆ!¶ÿÅ µÿà ³ÿÁ ±ÿ¿ °ÿ½®ÿº«ÿ¯¡ÿš&ÿ~BþVklþGŠjþP›wÿP›wÿP›wÿP›wÿP›wÿP›wÿP›wÿP›wÿP›wÿP›wÿP›wÿ:qWþRF[þ¯F©þÒ?Äÿ¯)¢ÿ“‡ÿ‚ÿŒ€ÿŠÿ‰}ÿ‡|ÿ†{ÿ…zÿ‚xÿPJÿ3 /ÿ-)?¹:­ÿ¾,°ÿÆ!¶ÿÅ!µÿà ³ÿÁ ²ÿÀ °ÿ¾®ÿ¼­ÿº«ÿ¸©ÿ²¤ÿ§#šÿœ,’ÿnUxÿ;rWþ>z]þBcþAaþP›wÿP›wÿP›wÿ=w[þÁÿ¯)¢ÿ˜‹ÿ‘…ÿƒÿ‚ÿŒ€ÿŠÿ‰~ÿˆ|ÿ†{ÿ…zÿzpÿMGÿ1 .ÿ-)?„)|¿¯3¤ÿ»%¬ÿÀ ±ÿ¾¯ÿ½­ÿ»¬ÿ¹ªÿ·¨ÿµ¦ÿ³¤ÿ±£ÿ¯¡ÿ¬žÿ«#žÿ¬) ÿ¯+¢ÿ·4ªÿ¼8°ÿ†)}ÿàFÑÿÆ<¹ÿ¿4²ÿ¶.©ÿ³,¦ÿ¡ ”ÿ•‰ÿ’†ÿ„ÿŽƒÿŒÿ‹€ÿŠ~ÿˆ}ÿ‡|ÿ†{ÿtÿQKÿ2 /ÿf^¿+ (?ª5Ÿÿ®.¢ÿ¼!­ÿ½®ÿ»¬ÿ¹ªÿ·¨ÿ¶§ÿ³¥ÿ²£ÿ¯¡ÿ­Ÿÿ«ÿ©›ÿ§šÿ¥˜ÿ¦™ÿ¦ ™ÿxoÿÍ8¿ÿ£–ÿšÿ˜‹ÿ–Šÿ”ˆÿ’†ÿ‘…ÿƒÿ‚ÿŒ€ÿ‹ÿ‰~ÿˆ}ÿ‡|ÿ„yÿg^ÿ8 4ÿ& #Ä * '?¥3šÿª+žÿ· ¨ÿ¹ªÿ¸©ÿ¶§ÿ´¦ÿ²¤ÿ°¢ÿ® ÿ­žÿªÿ©›ÿ¦™ÿ¤—ÿ¢•ÿ “ÿrjÿÅ3·ÿšŽÿ™Œÿ—Šÿ•‰ÿ“‡ÿ’†ÿ„ÿŽƒÿÿŒ€ÿŠÿ‰}ÿˆ|ÿ„yÿjaÿ<8ÿSMÿ0" ( %?ž1”ÿ¤*™ÿ²!¤ÿ¶§ÿµ¦ÿ³¥ÿ±¢ÿ¯¡ÿ­Ÿÿ«ÿ©›ÿ§™ÿ¥—ÿ£–ÿ¡”ÿŸ’ÿnfÿ¾1±ÿ™ÿ˜‹ÿ–‰ÿ”ˆÿ’†ÿ‘…ÿƒÿŽ‚ÿŒÿ‹ÿŠ~ÿˆ}ÿwÿjbÿ?;ÿTNÿ-)xEB>$& $?˜/ÿ›+ÿ©"œÿ³¥ÿ±£ÿ°¡ÿ­Ÿÿ¬žÿ©›ÿ¨šÿ¦˜ÿ¤–ÿ¢•ÿ “ÿž‘ÿjaÿ·/ªÿ™Œÿ—Šÿ•‰ÿ“‡ÿ’…ÿ„ÿŽƒÿÿŒ€ÿ‹ÿ‰~ÿ~sÿTNÿ=8ÿUOÿ-)‚TPUC3% #?“-‰ÿ“*Šÿ¤!˜ÿ­Ÿÿ® ÿ¬žÿ«ÿ¨šÿ§™ÿ¤—ÿ£•ÿ¡”ÿŸ’ÿÿe]ÿ¯,¢ÿ˜‹ÿ–Šÿ”ˆÿ“†ÿ‘…ÿƒÿŽ‚ÿÿ‹€ÿˆ|ÿ{pÿSMÿ;7ÿ* 'Øc_YUNB4$j!c¿)ƒÿ“$ˆÿž“ÿ§™ÿªœÿ§™ÿ¥˜ÿ£–ÿ¡”ÿŸ’ÿÿœÿaYÿ¨*œÿ–Šÿ•‰ÿ“‡ÿ’†ÿ„ÿŽƒÿ‚ÿŒ€ÿuÿc[ÿFAÿ:6ÿh_Ûphc\TMC6$" ?c\¿ƒ&zÿ‡#~ÿ’‡ÿ›ÿ “ÿ¢•ÿ “ÿž‘ÿœÿ›Žÿ]Vÿ¢(—ÿ–‰ÿ”ˆÿ’†ÿ‘…ÿÿ„zÿukÿc[ÿLGÿB>ÿKEÛ-)“c_\WRPPM;  C\VÃw$oÿv"oÿ€vÿ‰~ÿ”ˆÿ”ˆÿ„ÿŽ‚ÿVOÿš'ÿ‹ÿ‰~ÿ‡|ÿyoÿd]ÿRMÿGCÿA=ÿMGÔ-)VUQNLIDCD4)-)H95ŠRLÅjcÿjcÿkdÿc\ÿd]ÿKFÿo gÿ]VÿZSÿWQÿNHÿHCÿPJÍ> 9›-)i=<<;;<>5*%"2/1./,ˆ- *Œ, )Ž* ') &Ž' %& $? :#########" 00ª$$²$º$(R€ü '€ü 'gorm-1.2.24/Images/iconLeft_nib.tiff0000644000000000000000000000435213410616261015720 0ustar rootrootII*˜      ÿÿÿÿÿÿÿÿÿÿÿúúúÿúúúÿúúúÿúúúÿúúúÿúúúÿúúúÿúúúÿÿHHH`ÿúúúÿúúúÿúúúÿúúúÿúúúÿúúúÿúúúÿúúúÿÿÿúúúÿúúúÿúúúÿúúúÿúúúÿúúúÿúúúÿúúúÿÿÿúúúÿúúúÿúúúÿúúúÿúúúÿúúúÿúúúÿúúúÿÿÿúúúÿúúúÿúúúÿúúúÿúúúÿúúúÿúúúÿúúúÿÿÿÿÿÿÿÿÿÿúúúÿúúúÿúúúÿúúúÿúúúÿúúúÿúúúÿúúúÿÿÿúúúÿúúúÿúúúÿúúúÿúúúÿúúúÿúúúÿúúúÿÿÿúúúÿúúúÿúúúÿúúúÿúúúÿúúúÿúúúÿúúúÿÿÿÿÿÿÿÿÿÿÿÿ  þv F~Ä@Úâ(R/misc/applications/gnustep/cvs/dev-apps/Gorm/Images/iconLeft_nib.tiffCreated with The GIMPHHgorm-1.2.24/Images/iconRight_nib.tiff0000644000000000000000000000435413410616261016105 0ustar rootrootII*˜       ÿÿÿÿÿÿÿÿÿÿÿúúúÿúúúÿúúúÿúúúÿúúúÿúúúÿúúúÿúúúÿÿHHH`ÿúúúÿúúúÿúúúÿúúúÿúúúÿúúúÿúúúÿúúúÿÿÿúúúÿúúúÿúúúÿúúúÿúúúÿúúúÿúúúÿúúúÿÿÿúúúÿúúúÿúúúÿúúúÿúúúÿúúúÿúúúÿúúúÿÿÿÿÿÿÿÿÿÿúúúÿúúúÿúúúÿúúúÿúúúÿúúúÿúúúÿúúúÿÿÿúúúÿúúúÿúúúÿúúúÿúúúÿúúúÿúúúÿúúúÿÿÿúúúÿúúúÿúúúÿúúúÿúúúÿúúúÿúúúÿúúúÿÿÿúúúÿúúúÿúúúÿúúúÿúúúÿúúúÿúúúÿúúúÿÿ ÿÿÿÿÿÿÿÿÿÿþv G~Æ@Üä(R/misc/applications/gnustep/cvs/dev-apps/Gorm/Images/iconRight_nib.tiffCreated with The GIMPHHgorm-1.2.24/Images/GormEVCoil.tiff0000644000000000000000000001002013410616261015260 0ustar rootrootII*àÿÿPPPÿÿPPPÿÿPPPÿÿPPPÿÿPPPÿÿPPPÿÿPPPÿÿPPPÿÿ¦äûä¦UPPPyÿÿÿÿÿÿÿÿÿyPPP¹ÿæ}88}æÿ¹PPPgÿ¬ PPP ¬ÿgPPPÞÿ""ÿÞPPPPPPÞÿ""ÿÞPPPÿÿ¬ ¬ÿgÿÿÿæ}88}æÿ¹¹ÿæyÿÿÿÿÿÿÿÿÿyPPPgÿ¬ PPPU¦äûä¦UPPPÞÿ"PPPPPPPPPPPPPPPPPPPPPPPPÞÿ"PPPgÿ¬ U¦äûä¦UPPP¹ÿæyÿÿÿÿÿÿÿÿÿyPPPÿÿÿæ}88}æÿ¹PPPÿÿ¬ ¬ÿgPPPPPPÿÿ""ÿÞPPPÿÿ""ÿÞÿÿ¬ ¬ÿgÿÿÿæ}88}æÿ¹¹ÿæyÿÿÿÿÿÿÿÿÿyPPPgÿ¬ U¦äûä¦UPPPÞÿ"PPPÞÿ"U¦äûä¦UPPPgÿ¬yÿÿÿÿÿÿÿÿÿyPPP¹ÿøÿæ}88}æÿ¹PPPÿÿ¬ ¬ÿgPPPPPPÞÿ""ÿÞPPPÞÿ""ÿÞgÿ¬ ¬ÿg¹ÿæ}88}æÿ¹yÿÿÿÿÿÿÿÿÿyPPPU¦ÿûä¦UPPPÿÿPPPÿÿPPPÿÿPPPPPPÿÿPPPÿÿPPPÿÿPPPÿÿPPPÿÿPPPÿÿPPPþ2² Eº@Ø(R/home/heron/Development/gnustep/dev-apps/gorm/Images/GormEVCoil.tiffHHgorm-1.2.24/Images/GormActionSelected.tiff0000644000000000000000000000177213410616261017043 0ustar rootrootII*¬$888ò'''ÿÿÿ***ÿ...Ë6 ×///ÿ???ÿNNNÿLLLÿ<<<ÿ444ÿ===¸$6 ÎDDDÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿUUUÿbbbÿeee¹ $***×666ÿÿÿÿÿUUUÿUUUÿÿÿÿÿUUUÿUUUÿÿÿÿÿWWWÿ¥¥¥ÿrrrË 0+++ÿCCCÿÿÿÿÿUUUÿUUUÿÿÿÿÿUUUÿUUUÿÿÿÿÿUUUÿ„„„ÿÅÅÅþ0&&&ÿOOOÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿUUUÿgggÿàààþ0555þVVVÿÿÿÿÿUUUÿUUUÿÿÿÿÿUUUÿUUUÿÿÿÿÿUUUÿbbbÿàààþ0^^^þ[[[ÿÿÿÿÿUUUÿUUUÿÿÿÿÿUUUÿUUUÿÿÿÿÿUUUÿ˜˜˜ÿéééþ-mmmõjjjÿUUUÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿUUUÿXXXÿ···þ»»»ÿ,,,HzzzãfffÿVVVÿUUUÿUUUÿUUUÿUUUÿ\\\ÿŸŸŸþÝÝÝþyyyË999PŒŒŒâ’’’ÿsssÿ^^^ÿaaaÿyyyÿ«««þØØØþ‚‚‚¹888G¥¥¥õÃÃÃþÄÄÄþÇÇÇþÔÔÔþÉÉÉþ{{{¹$-+++000000000...0###0þ  Š A’Ô@¤êò(R/home/heron/gnustep/dev-apps/Gorm/Images/GormActionSelected.tiffCreated with The GIMPHHgorm-1.2.24/Images/GormTesting.tiff0000644000000000000000000002247013410616261015570 0ustar rootrootII*$LrŒ]†Lf–¯¤_‹£~-KZc‹¤Rj™² l›·åu¥¿þ€«Ãÿj™´è-CK"-<¿¿¿,ÄÄÄ My…aŠ Qj™±¥q¡½çx§Àüˆ°Çÿ¶Êÿ‰°Æÿ’¶Êÿw¥¾þU}“˜NshRx—›U{›ÆYƒ¥æ%:J0ˆ•)ÒÒ񾯯ØÅÅÅÅG3DUd¦Qmš´¥p »ãy¨Âþ޵Ëÿ“¸Ìÿ‰±Çÿ†¯Æÿ´ÉÿŒ²Èÿ€«Âÿ‰°Åÿe”°ÿU{šÿa‡§ÿh«ÿX£þ:Ul`??,DS4ƒ‡ÂÏÏÏÿÍÍÍûÀÀÀIUtŠdަTn›µ¦t¥Àî~¬Åþ޵Ëÿ—»Ïÿ¦ÄÕÿ‰²Èÿ´Éÿ”¸Ìÿ„®Åÿq¡¼ÿnžºÿk¹ÿ‚«ÂÿpŸºÿhŒ¥ÿiªÿr”°ÿ^†¦ÿDfŽ+=O3AI€ƒ„„ò£££þÄÅ÷ÔÔÔ DUfh¨SqŸ¹¦u¤¿ä~«Åý”¹Ïÿ›½Ñÿ޵Ëÿ|ªÃÿs£¿ÿ|©Âÿš¼Ïÿ‹²Èÿ‰±Çÿƒ­Äÿ¬Ãÿy¦¿ÿkœ¸ÿnž¹ÿ‚«Âÿa«ÿTz™ÿe‹©ÿf‹ªÿLoŒ° **U,?N4%3<{T[_µ¬¬ªùÑÓѯÝÝÝ"3Ns‹*c‹£_qŸ¸«v¦Àí…±Êÿ“¹Ïÿ›¾Òÿ”¹Ïÿ}ªÄÿt¤Àÿu¥Àÿt¤¿ÿs£¾ÿq¡½ÿ–ºÍÿ…¯Åÿ‚¬ÄÿŒ²Èÿ‡®Åÿƒ¬Ãÿu£¼ÿt¢»ÿ…­ÂÿjšµÿU}šÿ]…¥ÿl®ÿQw–Õ $$H1AZ0HXTVbk·¯±®üÃÇÇÄj‘ª³oœ¸Üw¦Àñ€®Çþ–»ÐÿžÁÔÿ’¹Îÿ€­Æÿx¨Âÿw¦Áÿv¦Áÿu¥Àÿu¤¿ÿt£¿ÿr£¾ÿq¢½ÿ¬Äÿ”¸Ìÿ’¶ËÿŒ²Çÿ…®Äÿ‹±Æÿ{¦¿ÿr ºÿož¸ÿ|¦¾ÿ]‹§ÿU|œÿr•°ÿS{›é 4A'8^qHnˆLPÿÿ ÿ ÿÿ2GSÿc©ÿiš¶ÿg™µÿ|¥½ÿ£¾Îÿb”°ÿc•±ÿ~¦¼ÿm›´ÿ`’®ÿg–±ÿk™²ÿo›´ÿ_¬ÿZ©ÿ]Žªÿh–¯ÿO~˜É Fdzpx§Âÿ¡ÃÕÿ|«Åÿ†±Éÿçðôÿòöùÿñõùÿðõøÿïó÷ÿíòöÿëñõÿéðôÿÜçíÿ‘·Ìÿ~ªÃÿz§Àÿp›³ÿ[”ÿ"08ÿÿ ÿÿÿ!%ÿLp„ÿf˜´ÿ|¥½ÿ¡½Íÿb”°ÿ`“¯ÿw¡¸ÿo›µÿu ·ÿuŸ¶ÿj˜±ÿf•¯ÿk˜±ÿk˜±ÿe“®ÿi–¯ÿV‰¥ù9]nL5ObCl˜³þ—¼Ñÿ…°Éÿ®ÇÿÜèïÿñöøÿðõøÿòöøÿñô÷ÿìñõÿêðôÿèïóÿäìðÿ”¸Íÿ}©Ãÿ{¨Áÿx¥¿ÿm˜°ÿ[€–ÿ .6ÿÿ ÿÿ(((ÿÿ*V!/:‘ îÿÿÿÿ333ÿ111ÿ³ÿÿÿ/………ýÿËÉÿåãÿÜÚÿ ÿÿÿ87ÿåãÿåãÿˆ‡ ÿÿŽÿ~¨¿ÿhšµÿs ºÿ¨¾ÿv¡ºÿd”°üW„žÝ>_q– 'G*?U 1ER>&4@ƒ ëÿÿÿÿÿÎÞÞÞ¿ ÿpo ÿåãÿåãÿåãÿFFÿÿÿcb ÿåãÿåãÿãáÿ%$ÿÿÃÎÕÿ€©¿ÿsŸ¹ÿc”°ûPyÇ5P_x 0.EE 1CU9%5A æÿÿÿú!#(kÿÿÿT```ÿÿÚØÿåãÿåãÿåãÿÃÁÿ Ÿÿ–•ÿÂÀÿåãÿåãÿåãÿ¡ŸÿÿlllÿŒ­¿ñJo„«!09U ??/BU6(9Fw Üüô*.4‰*FUÿÿÿÂÂÂÞÿ ÿåãÿåãÿåãÿåãÿwv ÿ\[ÿ\[ÿ„ƒ ÿåãÿåãÿåãÿåãÿ87ÿÿÁÁÂã'''8U .CS1,=Lh(1Œ%2Æ ]1 0 dI1æa@)ý—d@þä—aÿô¢hÿ÷¤jÿú¦kÿü§lÿ¸zOÿnI.ý\=&ý]=&ý]='ý]='ý]='ý]=&ý\=&ý\<&ý]='ýlG-ý…X8þªqIÿÙ]ÿðŸgÿìeÿá•`þ›gAûò¢2¯ß ôÆ‚Týó¡hÿö£jÿù¥kÿû§kÿ_?)ÿ ÿýúùùùùùùùù ú#þ\='ÿƃTÿìœeÿá•`ÿœgCÿ ý³ $4 =½}PÖò gÿõ¢iÿø¤jÿú¦kÿO4"ÿíšM>>>>>>>>>@_Y;%ÛÖ[þà•`ÿ›gCÿ ý³»|PÊð fÿó¡hÿö£iÿø¥jÿN4!ÿÐ< ,_=Ÿß”_ÿšgBÿ ý³º{PÊïžfÿñ gÿô¡hÿö£iÿM3!ÿÍ5  iE-tÕZö™fBÿ ý³¹zOÊíeÿïžfÿñ gÿô¡hÿL3 ÿÍ5M3!V»|OÛ˜eBÿ ý³¶yNÊê›dÿíeÿïžfÿñ gÿL2 ÿÍ5-7]<©}S5ñ ý³µxMÊèšcÿê›dÿíeÿîžfÿK1 ÿÍ5  ? Áû³³vLÊä˜bÿç™bÿéšdÿëœeÿJ1 ÿÍ5 mÌŒ±vLÊâ–aÿä—aÿæ™bÿèšdÿI1 ÿÍ5)¯tKÊß”`ÿá–`ÿã—aÿå˜bÿI1 ÿÍ5  ¬rJÊÜ’^ÿÞ“_ÿà”`ÿâ–`ÿH0 ÿÍ5 U8$d\='o «qHÊÙ]ÿÛ’^ÿÝ’^ÿÞ“_ÿG/ÿÍ5"(£lEÁ•c?È#m; §oHÊÖŽ[ÿØ\ÿÙ]ÿÚ‘^ÿE.ÿÍ58%C¿~QäšeBô$Þ¦(¥nGÊÓŒZÿÔ[ÿÖŽ[ÿ×\ÿC-ÿÍ5 lG.ƒÆƒUñ™eAþ#ùÀ1£lEÊЊYÿÒ‹ZÿÓŒZÿÔZÿ^>(ÿ0 ×5#['/(/(/(/'/'/'/+4:&GfD,}­sIÔ͈Wü˜dAÿ"úÀ1¡jDÊ͈XÿΉXÿЊYÿÑŠYÿ¥mGÿ“a?ð•b@À“a>°“b?°“b@°“b?°’a>°‘`>°‘_>°•c?·¨pHϼ|PèɆVú͈Xÿ–c@ÿ"úÀ1ŸiDÊʆVÿ̇Wÿ͈Wÿ͈Xÿ·yNÿ«rIý¬rIù¬rI÷­rI÷­sJ÷­rI÷¬rI÷¬rH÷«rH÷±uKøÃSý͈Wÿ̇WÿʆVÿ”a?ÿ" úÀ1œgCÊÇ„UÿÈ…UÿÉ…VÿʆWÿnI/ÿD-ÿD,þD,ýD,ýD,ýD,ýD,ýD,ýC,ýJ1ý`?(þ‹];ÿ»|PÿÇ„Uÿ’`>ÿ! úÀ1šfAÊÄ‚TÿƃTÿÆ„UÿÇ„Uÿ^?(ÿ-þ.ý.ü/ü/ü/ü.ü.ü.ü2!üC,ýmG-þªpHÿÃSÿ_=ÿ  úÀ1˜e@ÊÁ€RÿÂSÿÂTÿÄ‚Tÿ=(ÿóÏ ÆrJ0Ù¹zOú^<ÿ  úÀ1–c@Ê¿~QÿÀRÿÀ€Rÿ€Rÿ<(ÿÖY.........3>)i­rJê‹\;ÿ  úÀ1”b?ʼ}Pÿ½}Qÿ¾~Qÿ¾~Qÿ;'ÿÍ5#1gBÕ‰[:ÿ úÀ1‘`>ʹ{Oÿº{Oÿ»|Pÿ¼}Pÿ:'ÿÍ5 T8$y^?(É úÀ1_=Ê·yNÿ¸zOÿ¸zOÿ¹{Oÿ:&ÿÍ5  qî·-^<Ê´xMÿµxNÿ¶xNÿ¶yNÿ9&ÿÍ5:žxŒ\;ʲvLÿ³vLÿ³wLÿ´wMÿ8%ÿÍ5 "Š[;ʰtKÿ°uKÿ±uKÿ±uLÿ7%ÿÍ5‰Z:Ê­sJÿ®sJÿ®tKÿ¯tKÿ7$ÿÍ5†Y9Ê«qIÿ¬rIÿ¬rJÿ¬sJÿ6$ÿÍ5…X9Ê©pHÿªpHÿªpHÿªqHÿ5#ÿÍ5ƒW8ʧnGÿ¨oGÿ¨oGÿ©oHÿ4"ÿÍ5‚V7Ê¥mFÿ¥nGÿ¦nGÿ¦nGÿ5#ÿÍ5 „X8УlFÿ£lFÿ¤mFÿ¤mFÿM3!ÿ Î7  (#9.KV8$Š•c@í¡kEÿ¢kEÿ¢kEÿ¢lEÿ„X8ÿQ6"Ý:&q'@ . &   D-piE-¬yO4ƆX9Ü–b@õhBþžiCÿžhCÿžiDÿžiDÿžiDÿ–c?úŠ[:æ€T6ÐsL1ºmH.°T7#– 3D-{nI/ÃtM1åuM2ñuM1ùuM2ýuM2þwN3ÿwN3ÿwO3ÿxO3ÿxO3ÿxO3ÿwN2þwO2ýxO2ù`>(å žZ  U ã ú ý þ þ þ þ þ þ þ þ þ þ ý ûõ¯þ00æ$ Jî$8%@$N%V%(R/home/heron/Development/gnustep/dev-apps/Gorm/Images/GormFontManager.tiffCreated with The GIMPHHgorm-1.2.24/Images/GormMenu.tiff0000644000000000000000000002253413410616261015060 0ustar rootrootII*$)))8…†…æVWVßLLLßLLLßLLLßLLLßLLLßLLLßLLLßLLLßLLLßLLLßLLLßLLLßLLLßLLLßLLLßLLLßEGEßcdcßLLLßLLLßLLLßLLLßLLLßLLLßLLLßLLLßLLLßLLLßLLLßLLLßLLLßLLLßLLLßLLLßLLLßLLLßLLLßLLLßLLLßLLLßLLLßLLLßLLLßLLLßMNMßdedÿÿ ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ>>>ÿÿ ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿŽŽÿÿqqqÿBBBÿ???ÿ777ÿ:9:ÿQPQÿ777ÿÿÿÿÿÿÿÿÿÿÿ>>>ÿoooÿ???ÿwwwÿIIIÿ555ÿ---ÿGFGÿ%%%ÿ222ÿGGGÿ ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ…‡…ÿÿsssÿ†††ÿ|||ÿ Ÿ ÿUUUÿ¥¥¥ÿlllÿÿÿÿÿÿÿÿÿÿÿ>>>ÿihiÿMLMÿˆˆˆÿµµµÿˆˆˆÿ€€€ÿ®­®ÿrsrÿnonÿ¬¬¬ÿ"""ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿŠ‹Šÿ###ÿ ÿ ÿ ÿ ÿ ÿ ÿ ÿ ÿ ÿ ÿ ÿ ÿ ÿ ÿ ÿ ÿ#$#ÿFFFÿ ÿ ÿ ÿ ÿ ÿ ÿ ÿ ÿ ÿ ÿ ÿ ÿ ÿ ÿ ÿ ÿ ÿ ÿ ÿ ÿ ÿ ÿ ÿ ÿ ÿ ÿÿŒŒÿ•••ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ^_^ÿ˜—˜ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿyyyÿ“”“ÿ´²´ÿŸŸÿ¬ª¬ÿš˜šÿ¬ª¬ÿ¬ª¬ÿ¬ª¬ÿ¬ª¬ÿ¬ª¬ÿ¬ª¬ÿ¬ª¬ÿ¬ª¬ÿ¬ª¬ÿ¬ª¬ÿ¬ª¬ÿ–•–ÿ¬ª¬ÿeeeÿ¸·¸ÿ¥¤¥ÿ›š›ÿ¬ª¬ÿ¬ª¬ÿ¬ª¬ÿ¬ª¬ÿª¨ªÿ¬ª¬ÿ¬ª¬ÿ›ÿ¦¥¦ÿ¬ª¬ÿ¥¤¥ÿ¬ª¬ÿ¬ª¬ÿ¥¤¥ÿ¬ª¬ÿ¬ª¬ÿ¬ª¬ÿ¬ª¬ÿ¬ª¬ÿ¬ª¬ÿ¬ª¬ÿ¬ª¬ÿžžÿ¢¡¢ÿˆ‡ˆÿ“”“ÿ´²´ÿutuÿusuÿjijÿ{y{ÿ£¡£ÿ¬ª¬ÿ¬ª¬ÿ¬ª¬ÿ¬ª¬ÿ¬ª¬ÿ¬ª¬ÿ¬ª¬ÿ¬ª¬ÿ¬ª¬ÿ‰ˆ‰ÿ°®°ÿeeeÿ¸·¸ÿ—–—ÿ£¡£ÿ–•–ÿ‰‰‰ÿš™šÿŽÿ‹Œ‹ÿƒƒƒÿ©§©ÿ’’’ÿ—–—ÿ˜—˜ÿ‘‘ÿ“““ÿ—–—ÿ—–—ÿŽŽÿ–––ÿ›š›ÿ™™™ÿ¬ª¬ÿ¬ª¬ÿ¬ª¬ÿ¬ª¬ÿ—–—ÿ¢¡¢ÿˆ‡ˆÿ“”“ÿ´²´ÿ€€ÿŠˆŠÿ…„…ÿ{y{ÿ£¡£ÿ¬ª¬ÿ¬ª¬ÿ¬ª¬ÿ¬ª¬ÿ¬ª¬ÿ¬ª¬ÿ¬ª¬ÿ¬ª¬ÿ¬ª¬ÿ¨¦¨ÿ¬ª¬ÿeeeÿ¸·¸ÿœ›œÿ“’“ÿœœœÿ”“”ÿš™šÿŒŒŒÿ•”•ÿ‘‘‘ÿª¨ªÿ•”•ÿ˜—˜ÿ‹‹‹ÿ™—™ÿ’’’ÿ–•–ÿœ›œÿ‰‰‰ÿ–•–ÿ—–—ÿ•”•ÿ£¢£ÿ¨¦¨ÿ¬ª¬ÿ¬ª¬ÿ•••ÿ™˜™ÿˆ‡ˆÿŒŒÿ‡‡‡ÿ€€€ÿ€€€ÿ€€€ÿ€€€ÿ€€€ÿ€€€ÿ€€€ÿ€€€ÿ€€€ÿ€€€ÿ€€€ÿ€€€ÿ€€€ÿ€€€ÿ€€€ÿ€€€ÿVWVÿŒŒŒÿ€€€ÿ€€€ÿ€€€ÿ€€€ÿ€€€ÿ€€€ÿ€€€ÿ€€€ÿ€€€ÿ€€€ÿ€€€ÿ€€€ÿ€€€ÿ€€€ÿ€€€ÿ€€€ÿ€€€ÿ€€€ÿ€€€ÿ€€€ÿ€€€ÿ€€€ÿ€€€ÿ€€€ÿ€€€ÿ€€€ÿmmmÿ“”“ÿ·µ·ÿ°®°ÿ°®°ÿ°®°ÿ°®°ÿ°®°ÿ°®°ÿ°®°ÿ°®°ÿ°®°ÿ°®°ÿ°®°ÿ°®°ÿ°®°ÿ°®°ÿ°®°ÿ°®°ÿhhhÿ»¹»ÿ°®°ÿ°®°ÿ°®°ÿ°®°ÿ°®°ÿ°®°ÿ°®°ÿ°®°ÿ°®°ÿ°®°ÿ°®°ÿ°®°ÿ°®°ÿ°®°ÿ°®°ÿ°®°ÿ°®°ÿ°®°ÿ°®°ÿ°®°ÿ°®°ÿ°®°ÿ°®°ÿ°®°ÿ°®°ÿ°®°ÿŒ‹Œÿ“”“ÿ´²´ÿvtvÿƒ‚ƒÿ™˜™ÿ¤¢¤ÿ¡Ÿ¡ÿ£¡£ÿ ž ÿ—–—ÿ¤¢¤ÿœšœÿ›ÿŽŽÿ¤¢¤ÿ¬ª¬ÿ}|}ÿ¨§¨ÿeeeÿ¸·¸ÿœ›œÿ«©«ÿ¢¡¢ÿ§¦§ÿ¦¤¦ÿ˜˜˜ÿ¦¤¦ÿ–•–ÿ˜—˜ÿ›š›ÿ¢¡¢ÿ¥£¥ÿ¨¦¨ÿ§¥§ÿ¬ª¬ÿ¬ª¬ÿ¬ª¬ÿ¬ª¬ÿ¬ª¬ÿ¬ª¬ÿ¬ª¬ÿ¬ª¬ÿ¬ª¬ÿ¬ª¬ÿœ›œÿ¬ª¬ÿˆ‡ˆÿ“”“ÿ´²´ÿƒ‚ƒÿyxyÿtqtÿbabÿŒŠŒÿjijÿonoÿxvxÿZXZÿgegÿ|z|ÿa`aÿ£¡£ÿ¬ª¬ÿžžÿ³±³ÿeeeÿ¸·¸ÿ—–—ÿ˜˜˜ÿŒŒÿ—–—ÿ€€€ÿŒŒŒÿ¥£¥ÿ•”•ÿœ›œÿÿ„„„ÿÿÿ–––ÿ«©«ÿ«©«ÿ¬ª¬ÿ¬ª¬ÿ¬ª¬ÿ¬ª¬ÿ¬ª¬ÿ¬ª¬ÿ¬ª¬ÿ¬ª¬ÿ–––ÿ«©«ÿˆ‡ˆÿ“”“ÿª¨ªÿ…„…ÿ•”•ÿˆ‡ˆÿ—•—ÿ’‘’ÿ‰ˆ‰ÿ—–—ÿ™˜™ÿ•”•ÿŒÿ™˜™ÿ”“”ÿ˜—˜ÿ¡Ÿ¡ÿ¡Ÿ¡ÿ¡Ÿ¡ÿ`a`ÿ°¯°ÿ–•–ÿ–•–ÿ”””ÿ™˜™ÿ–––ÿ“““ÿ ž ÿ™™™ÿ™˜™ÿ›š›ÿ’’’ÿ•••ÿ›š›ÿ™˜™ÿ™˜™ÿœÿ¡Ÿ¡ÿ¡Ÿ¡ÿ¡Ÿ¡ÿ¡Ÿ¡ÿ¡Ÿ¡ÿ¡Ÿ¡ÿ¡Ÿ¡ÿ¡Ÿ¡ÿÿœÿ€€€ÿŒŒÿ”””ÿŽÿŽÿŽÿŽÿŽÿŽÿŽÿŽÿŽÿŽÿŽÿŽÿŽÿŽÿŽÿŽÿ^^^ÿ———ÿŽÿŽÿŽÿŽÿŽÿŽÿŽÿŽÿŽÿŽÿŽÿŽÿŽÿŽÿŽÿŽÿŽÿŽÿŽÿŽÿŽÿŽÿŽÿŽÿŽÿŽÿxxxÿ“”“ÿ´²´ÿ‰‡‰ÿ™—™ÿ¢ ¢ÿ¡Ÿ¡ÿ©§©ÿ¬ª¬ÿ¬ª¬ÿ¬ª¬ÿ¬ª¬ÿ¬ª¬ÿ¬ª¬ÿ¬ª¬ÿ¬ª¬ÿ¬ª¬ÿ—–—ÿ¬ª¬ÿeeeÿ¸·¸ÿ¦¤¦ÿœ›œÿ¬ª¬ÿ¬ª¬ÿ¬ª¬ÿ¬ª¬ÿ«©«ÿ¬ª¬ÿ¬ª¬ÿ¡ ¡ÿ Ÿ ÿ¦¤¦ÿ¬ª¬ÿ¬ª¬ÿ¬ª¬ÿ¬ª¬ÿ¢¡¢ÿ›™›ÿ¢ ¢ÿ¬ª¬ÿ¬ª¬ÿ¬ª¬ÿ¬ª¬ÿ¬ª¬ÿ—–—ÿ¦¥¦ÿˆ‡ˆÿ“”“ÿ´²´ÿonoÿŠˆŠÿhghÿ„‚„ÿzyzÿ¬ª¬ÿ¬ª¬ÿ¬ª¬ÿ¬ª¬ÿ¬ª¬ÿ¬ª¬ÿ¬ª¬ÿ¬ª¬ÿ¬ª¬ÿˆ‡ˆÿ°®°ÿeeeÿ¸·¸ÿ—–—ÿ¢¡¢ÿ–•–ÿŠŠŠÿ›™›ÿÿŒŒŒÿ„„„ÿ©§©ÿ—–—ÿ¢¡¢ÿ•”•ÿŽÿ”””ÿš™šÿŸžŸÿ•”•ÿœÿ‰‰‰ÿ’‘’ÿ•”•ÿ‘‘‘ÿ¬ª¬ÿ¬ª¬ÿˆˆˆÿ—–—ÿˆ‡ˆÿ“”“ÿ´²´ÿ{y{ÿ…ƒ…ÿtstÿ‹ÿŠˆŠÿ¬ª¬ÿ¬ª¬ÿ¬ª¬ÿ¬ª¬ÿ¬ª¬ÿ¬ª¬ÿ¬ª¬ÿ¬ª¬ÿ¬ª¬ÿ¨¦¨ÿ¬ª¬ÿeeeÿ¸·¸ÿœ›œÿ“’“ÿœ›œÿ“’“ÿ™™™ÿ‹‹‹ÿ”””ÿÿ«©«ÿ—–—ÿ—–—ÿ•”•ÿ‹‹‹ÿ”“”ÿ˜—˜ÿ™˜™ÿžžÿ¬ª¬ÿ‘‘‘ÿ˜–˜ÿœÿŽŽŽÿ¬ª¬ÿ¬ª¬ÿÿŸŸÿˆ‡ˆÿŒŒÿ†††ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿUVUÿ‹Œ‹ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿklkÿ“”“ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ‰Š‰ÿ»º»ÿ±¯±ÿ±¯±ÿ±¯±ÿ±¯±ÿ±¯±ÿ±¯±ÿ±¯±ÿ±¯±ÿ±¯±ÿ±¯±ÿ±¯±ÿ±¯±ÿ±¯±ÿ±¯±ÿ±¯±ÿ±¯±ÿ±¯±ÿ±¯±ÿ±¯±ÿ±¯±ÿ±¯±ÿ±¯±ÿ±¯±ÿ±¯±ÿ±¯±ÿ±¯±ÿŒÿ“”“ÿÿÿÿÿÁÂÁÿÅÅÅÿÐÐÐÿåååÿíííÿõõõÿòòòÿåæåÿòòòÿ÷÷÷ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ³³³ÿóóóÿ‡ˆ‡ÿ¸·¸ÿœ›œÿ¢¡¢ÿ§¦§ÿ¡ ¡ÿ¡ ¡ÿ¦¤¦ÿ£¡£ÿœ›œÿ¡Ÿ¡ÿ£¡£ÿœ›œÿ£¢£ÿ¬©¬ÿ¬ª¬ÿ¬ª¬ÿ¬ª¬ÿ¬ª¬ÿ¬ª¬ÿ¬ª¬ÿ¬ª¬ÿ¬ª¬ÿ¬ª¬ÿ¬ª¬ÿ¬ª¬ÿœ›œÿ¬ª¬ÿˆ‡ˆÿ“”“ÿÿÿÿÿ¾¾¾ÿÕÕÕÿ¯¯¯ÿÿ´³´ÿ±±±ÿ¯®¯ÿ|{|ÿ´´´ÿÏÏÏÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÔÔÔÿÿÿÿÿ‡ˆ‡ÿ¸·¸ÿ˜—˜ÿЉŠÿŒŒÿŽŽŽÿŽŽÿŽŽÿÿ†††ÿ•”•ÿÿÿ‚‚‚ÿžžÿ¬ª¬ÿ¬ª¬ÿ¬ª¬ÿ¬ª¬ÿ¬ª¬ÿ¬ª¬ÿ¬ª¬ÿ¬ª¬ÿ¬ª¬ÿ¬ª¬ÿ¬ª¬ÿ˜—˜ÿ¬ª¬ÿˆ‡ˆÿ“”“ÿíîíÿר×ÿÓÔÓÿÛÛÛÿÃÃÃÿÊÊÊÿÚÚÚÿÖÖÖÿÈÈÈÿ×××ÿÞÞÞÿìììÿìììÿìììÿìììÿìììÿìììÿ€ÿ±°±ÿžœžÿœ›œÿ™˜™ÿš™šÿ–•–ÿ–•–ÿœÿ˜—˜ÿœ›œÿ“““ÿ—–—ÿ•••ÿ¡ ¡ÿ¢ ¢ÿ¢ ¢ÿ¢ ¢ÿ¢ ¢ÿ¢ ¢ÿ¢ ¢ÿ¢ ¢ÿ¢ ¢ÿ¢ ¢ÿ¢ ¢ÿ¢ ¢ÿžœžÿ¢ ¢ÿÿŒŒÿ“““ÿŽŽÿŽŽÿŽŽÿŽŽÿŽŽÿŽŽÿŽŽÿŽŽÿŽŽÿŽŽÿŽŽÿŽŽÿŽŽÿŽŽÿŽŽÿŽŽÿ]^]ÿ–––ÿŽŽÿŽŽÿŽŽÿŽŽÿŽŽÿŽŽÿŽŽÿŽŽÿŽŽÿŽŽÿŽŽÿŽŽÿŽŽÿŽŽÿŽŽÿŽŽÿŽŽÿŽŽÿŽŽÿŽŽÿŽŽÿŽŽÿŽŽÿŽŽÿŽŽÿŽŽÿxxxÿ“”“ÿ³±³ÿƒƒÿ™˜™ÿ¬ª¬ÿ¬ª¬ÿ¡Ÿ¡ÿ«©«ÿ¬ª¬ÿ¬ª¬ÿ¬ª¬ÿ¬ª¬ÿ¬ª¬ÿ¬ª¬ÿ¬ª¬ÿ¬ª¬ÿ™—™ÿ¬ª¬ÿeeeÿ¸·¸ÿ§¦§ÿ¥£¥ÿ¬ª¬ÿ¦¤¦ÿ¦¤¦ÿ¬ª¬ÿœ›œÿ¦¥¦ÿ¬ª¬ÿ«©«ÿ¦¤¦ÿ¬ª¬ÿ«©«ÿ§¥§ÿ¡ ¡ÿ¬ª¬ÿ«©«ÿ¨¦¨ÿ¬ª¬ÿ¬ª¬ÿ¬ª¬ÿ¬ª¬ÿ¬ª¬ÿ¬ª¬ÿ Ÿ ÿ¬ª¬ÿˆ‡ˆÿ“”“ÿ´²´ÿ†…†ÿ‘‘ÿ„‚„ÿ}|}ÿtstÿ…ƒ…ÿžœžÿ¬ª¬ÿ¬ª¬ÿ¬ª¬ÿ¬ª¬ÿ¬ª¬ÿ¬ª¬ÿ¬ª¬ÿ‡†‡ÿ°®°ÿeeeÿ¸·¸ÿ“““ÿŒŒŒÿ“““ÿ‰ˆ‰ÿŒŒŒÿ£¡£ÿŸŸÿŒÿœ›œÿ‘‘ÿ‰‰‰ÿŽŽÿŒÿÿˆˆˆÿ”“”ÿŒŒŒÿ’’’ÿ’’’ÿ™˜™ÿš™šÿ¬ª¬ÿ¬ª¬ÿ¬ª¬ÿƒ„ƒÿžœžÿˆ‡ˆÿ“”“ÿ´²´ÿ‘‘ÿŽŒŽÿÿzxzÿ{z{ÿˆ‡ˆÿ’‘’ÿ¬ª¬ÿ¬ª¬ÿ¬ª¬ÿ¬ª¬ÿ¬ª¬ÿ¬ª¬ÿ¬ª¬ÿ¨¦¨ÿ¬ª¬ÿeeeÿ¸·¸ÿ›š›ÿ–––ÿ‘’‘ÿŽŽŽÿ“““ÿ©§©ÿ“““ÿ”“”ÿŽŽŽÿš™šÿÿ—–—ÿ’‘’ÿš™šÿš™šÿ‘‘ÿ•”•ÿ’’’ÿÿœÿžžÿ¬ª¬ÿ¬ª¬ÿ©§©ÿœ›œÿ›š›ÿˆ‡ˆÿŒŒÿ………ÿ~~~ÿ~~~ÿ~~~ÿ~~~ÿ~~~ÿ~~~ÿ~~~ÿ~~~ÿ~~~ÿ~~~ÿ~~~ÿ~~~ÿ~~~ÿ~~~ÿ~~~ÿ~~~ÿTUTÿ‹‹‹ÿ~~~ÿ~~~ÿ~~~ÿ~~~ÿ~~~ÿ~~~ÿ~~~ÿ~~~ÿ~~~ÿ~~~ÿ~~~ÿ~~~ÿ~~~ÿ~~~ÿ~~~ÿ~~~ÿ~~~ÿ~~~ÿ~~~ÿ~~~ÿ~~~ÿ~~~ÿ~~~ÿ~~~ÿ~~~ÿ~~~ÿjjjÿ“”“ÿ¹¸¹ÿ²°²ÿ²°²ÿ²°²ÿ²°²ÿ²°²ÿ²°²ÿ²°²ÿ²°²ÿ²°²ÿ²°²ÿ²°²ÿ²°²ÿ²°²ÿ²°²ÿ²°²ÿ²°²ÿjjjÿ¼»¼ÿ²°²ÿ²°²ÿ²°²ÿ²°²ÿ²°²ÿ²°²ÿ²°²ÿ²°²ÿ²°²ÿ²°²ÿ²°²ÿ²°²ÿ²°²ÿ²°²ÿ²°²ÿ²°²ÿ²°²ÿ²°²ÿ²°²ÿ²°²ÿ²°²ÿ²°²ÿ²°²ÿ²°²ÿ²°²ÿ²°²ÿŽŽŽÿ“”“ÿ³±³ÿ€~€ÿwuwÿxvxÿŸžŸÿ¤¢¤ÿ‚‚ÿŸŸÿ¤¢¤ÿ¤¢¤ÿ¥£¥ÿ¡Ÿ¡ÿ¬ª¬ÿ¬ª¬ÿ¬ª¬ÿ~}~ÿ¨¦¨ÿeeeÿ¸·¸ÿ”“”ÿÿ¦¥¦ÿ¨¦¨ÿ¤£¤ÿ¦¤¦ÿ¤¢¤ÿ©§©ÿ©§©ÿ¤¢¤ÿ¬ª¬ÿ¬ª¬ÿ¬ª¬ÿ¬ª¬ÿ¬ª¬ÿ¬ª¬ÿ¬ª¬ÿ¬ª¬ÿ¬ª¬ÿ¬ª¬ÿ¬ª¬ÿ¬ª¬ÿ¬ª¬ÿ«©«ÿ‘‘‘ÿžžÿˆ‡ˆÿ“”“ÿ´²´ÿcacÿigiÿqpqÿzxzÿZYZÿmlmÿwuwÿjhjÿUSUÿusuÿvuvÿ¬ª¬ÿ¬ª¬ÿ¬ª¬ÿœÿ´²´ÿeeeÿ¸·¸ÿÿŒŒŒÿ‰ˆ‰ÿ‹Š‹ÿ‡‡‡ÿ‹‹‹ÿÿŒŒŒÿ‹‹‹ÿ~~~ÿª¨ªÿ¬ª¬ÿ¬ª¬ÿ¬ª¬ÿ¬ª¬ÿ¬ª¬ÿ¬ª¬ÿ¬ª¬ÿ¬ª¬ÿ¬ª¬ÿ¬ª¬ÿ¬ª¬ÿ¬ª¬ÿ¬ª¬ÿˆˆˆÿ¡ ¡ÿˆ‡ˆÿ“”“ÿ¬«¬ÿ–•–ÿ—–—ÿš™šÿ›™›ÿ•“•ÿ‰ˆ‰ÿ‹Š‹ÿœšœÿ’’ÿš™šÿŽŽÿ£¢£ÿ£¢£ÿ£¢£ÿ£¢£ÿ£¢£ÿabaÿ²±²ÿŸŸÿžžÿ™˜™ÿœ›œÿœ›œÿžžÿ”””ÿ Ÿ ÿŸžŸÿ•••ÿ£¢£ÿ£¢£ÿ£¢£ÿ£¢£ÿ£¢£ÿ£¢£ÿ£¢£ÿ£¢£ÿ£¢£ÿ£¢£ÿ£¢£ÿ£¢£ÿ£¢£ÿ¢ ¢ÿŸŸÿœÿ‚‚ÿŒŒÿ’’’ÿŒÿŒÿŒÿŒÿŒÿŒÿŒÿŒÿŒÿŒÿŒÿŒÿŒÿŒÿŒÿŒÿTTTæZ Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z “”“ÿ´²´ÿ“‘“ÿ¡Ÿ¡ÿ¬ª¬ÿ¬ª¬ÿ¬ª¬ÿ¤¢¤ÿ¬ª¬ÿ¬ª¬ÿ¬ª¬ÿ¬ª¬ÿ¬ª¬ÿ¬ª¬ÿ¬ª¬ÿ¬ª¬ÿš˜šÿ¬ª¬ÿXXXÙ“”“ÿ´²´ÿ{y{ÿ„„ÿdcdÿ…„…ÿŒŠŒÿvuvÿ€ÿ€~€ÿwuwÿ}{}ÿª¨ªÿ¬ª¬ÿ¬ª¬ÿ¬ª¬ÿ†…†ÿ°®°ÿXXXÙ“”“ÿ´²´ÿ€ÿÿrprÿ‹Š‹ÿ~ÿ‰ˆ‰ÿ|{|ÿ}ÿ„‚„ÿtstÿ§¥§ÿ¬ª¬ÿ¬ª¬ÿ¬ª¬ÿ¨¦¨ÿ¬ª¬ÿXXXÙŒŒÿ„„„ÿ}}}ÿ}}}ÿ}}}ÿ}}}ÿ}}}ÿ}}}ÿ}}}ÿ}}}ÿ}}}ÿ}}}ÿ}}}ÿ}}}ÿ}}}ÿ}}}ÿ}}}ÿ}}}ÿFFFÙ“”“ÿº¹ºÿ³±³ÿ³±³ÿ³±³ÿ³±³ÿ³±³ÿ³±³ÿ³±³ÿ³±³ÿ³±³ÿ³±³ÿ³±³ÿ³±³ÿ³±³ÿ³±³ÿ³±³ÿ³±³ÿ_^_Ù“”“ÿ´²´ÿŽŽÿŽŽÿ—•—ÿƒ‚ƒÿ¢ ¢ÿ§¥§ÿ¬ª¬ÿ¬ª¬ÿ¬ª¬ÿ¬ª¬ÿ¬ª¬ÿ¬ª¬ÿ¬ª¬ÿ¬ª¬ÿ†…†ÿ¨¦¨ÿXXXÙ“”“ÿ´²´ÿonoÿsqsÿ^]^ÿkikÿhfhÿ}ÿ¬ª¬ÿ¬ª¬ÿ¬ª¬ÿ¬ª¬ÿ¬ª¬ÿ¬ª¬ÿ¬ª¬ÿ¬ª¬ÿwvwÿ†„†ÿXXXÙ“”“ÿ­¬­ÿ›š›ÿ›š›ÿ–”–ÿˆ‡ˆÿ‘‘ÿœšœÿ¤£¤ÿ¤£¤ÿ¤£¤ÿ¤£¤ÿ¤£¤ÿ¤£¤ÿ¤£¤ÿ¤£¤ÿ›š›ÿ›š›ÿUUUÙŒŒÿ‘‘ÿ‹‹‹ÿ‹‹‹ÿ‹‹‹ÿ‹‹‹ÿ‹‹‹ÿ‹‹‹ÿ‹‹‹ÿ‹‹‹ÿ‹‹‹ÿ‹‹‹ÿ‹‹‹ÿ‹‹‹ÿ‹‹‹ÿ‹‹‹ÿ‹‹‹ÿ‹‹‹ÿOOOÙ“”“ÿ´²´ÿ›š›ÿ–”–ÿ¬ª¬ÿ¤¢¤ÿª¨ªÿ¬ª¬ÿ¬ª¬ÿ¬ª¬ÿ¬ª¬ÿ¬ª¬ÿ¬ª¬ÿ¬ª¬ÿ¬ª¬ÿ¬ª¬ÿ¬ª¬ÿ¬ª¬ÿXXXÙ“”“ÿ´²´ÿÿ€€ÿ•“•ÿxwxÿxvxÿ¬ª¬ÿ¬ª¬ÿ¬ª¬ÿ¬ª¬ÿ¬ª¬ÿ¬ª¬ÿ¬ª¬ÿ¬ª¬ÿ¬ª¬ÿ}|}ÿ“‘“ÿXXXÙ“”“ÿ´²´ÿ…ƒ…ÿjijÿzyzÿutuÿˆ†ˆÿ¬ª¬ÿ¬ª¬ÿ¬ª¬ÿ¬ª¬ÿ¬ª¬ÿ¬ª¬ÿ¬ª¬ÿ¬ª¬ÿ¬ª¬ÿvuvÿ‚€‚ÿXXXÙ‰Š‰ûbabßZZZßZZZßZZZßZZZßZZZßZZZßZZZßZZZßZZZßZZZßZZZßZZZßZZZßZZZßZZZßKKKß010½ded­þ00æ$ Gî$6%@$L%T%(R/home/heron/Development/gnustep/dev-apps/Gorm/Images/GormMenuDrag.tiffCreated with The GIMPHHgorm-1.2.24/Images/line_nib.tiff0000644000000000000000000000434613410616261015107 0ustar rootrootII*˜   ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿEEE`ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþv B~À@ÖÞ(R/misc/applications/gnustep/cvs/dev-apps/Gorm/Images/line_nib.tiffCreated with The GIMPHHgorm-1.2.24/Images/GormFile.tiff0000644000000000000000000002246613410616261015037 0ustar rootrootII*$LrŒ]†Lf–¯¤_‹£~-KZc‹¤Rj™² l›·åu¥¿þ€«Ãÿj™´è-CK"-<My…aŠ Qj™±¥q¡½çx§Àüˆ°Çÿ¶Êÿ‰°Æÿ’¶Êÿw¥¾þU}“˜NshRx—›U{›ÆYƒ¥æ%:J0ˆ•)3DUd¦Qmš´¥p »ãy¨Âþ޵Ëÿ“¸Ìÿ‰±Çÿ†¯Æÿ´ÉÿŒ²Èÿ€«Âÿ‰°Åÿe”°ÿU{šÿa‡§ÿh«ÿX£þ:Ul`??UtŠdަTn›µ¦t¥Àî~¬Åþ޵Ëÿ—»Ïÿ¦ÄÕÿ‰²Èÿ´Éÿ”¸Ìÿ„®Åÿq¡¼ÿnžºÿk¹ÿ‚«ÂÿpŸºÿhŒ¥ÿiªÿr”°ÿ^†¦ÿDfŽDUfh¨SqŸ¹¦u¤¿ä~«Åý”¹Ïÿ›½Ñÿ޵Ëÿ|ªÃÿs£¿ÿ|©Âÿš¼Ïÿ‹²Èÿ‰±Çÿƒ­Äÿ¬Ãÿy¦¿ÿkœ¸ÿnž¹ÿ‚«Âÿa«ÿTz™ÿe‹©ÿf‹ªÿLoŒ° **U"3Ns‹*c‹£_qŸ¸«v¦Àí…±Êÿ“¹Ïÿ›¾Òÿ”¹Ïÿ}ªÄÿt¤Àÿu¥Àÿt¤¿ÿs£¾ÿq¡½ÿ–ºÍÿ…¯Åÿ‚¬ÄÿŒ²Èÿ‡®Åÿƒ¬Ãÿu£¼ÿt¢»ÿ…­ÂÿjšµÿU}šÿ]…¥ÿl®ÿQw–Õ $$HVbk·j‘ª³oœ¸Üw¦Àñ€®Çþ–»ÐÿžÁÔÿ’¹Îÿ€­Æÿx¨Âÿw¦Áÿv¦Áÿu¥Àÿu¤¿ÿt£¿ÿr£¾ÿq¢½ÿ¬Äÿ”¸Ìÿ’¶ËÿŒ²Çÿ…®Äÿ‹±Æÿ{¦¿ÿr ºÿož¸ÿ|¦¾ÿ]‹§ÿU|œÿr•°ÿS{›é 4A'8^qHnˆFÿ¨¾ÿj™³ÿ]­ÿ\¬ÿ]¬ÿ_‘¬ÿg•¯ÿoš²ÿYŒ©þ9Znf[~–¡ˆ³Ëÿ“ºÏÿ}«Åÿ†±Éÿèðôÿó÷ùÿòöùÿñõùÿðôøÿ[]^ÿ./0ÿÃÉËÿQTUÿ)+,ÿMTXÿ!ÿW•ÿ/EQÿ ÿ_‹£ÿÿ-BMÿ_‹£ÿkœ·ÿ"(ÿ(0ÿ^}ÿÿ*?Kÿ9Wgÿÿm›´ÿ`’®ÿg–±ÿk™²ÿo›´ÿ_¬ÿZ©ÿ]Žªÿh–¯ÿO~˜É Fdzpx§Âÿ¡ÃÕÿ|«Åÿ†±Éÿçðôÿòöùÿñõùÿðõøÿïó÷ÿ ÿ–šœÿéðôÿSWZÿ7FNÿ ÿMjyÿkœ·ÿCbsÿ ÿKm€ÿ ÿi™´ÿkœ·ÿjšµÿÿOtˆÿd…™ÿÿ]Œ§ÿ7Tdÿÿo›µÿu ·ÿuŸ¶ÿj˜±ÿf•¯ÿk˜±ÿk˜±ÿe“®ÿi–¯ÿV‰¥ù9]nL5ObCl˜³þ—¼Ñÿ…°Éÿ®ÇÿÜèïÿñöøÿðõøÿïô÷ÿîòöÿ ÿy|~ÿ°µ¸ÿÿWlxÿ ÿ9OZÿ`…šÿÿ'8Bÿ6N\ÿ+2ÿkœ·ÿkœ·ÿY‚˜ÿÿd’«ÿI^iÿ ÿb“¯ÿ$6Aÿ&8Bÿx¡¹ÿy¢¸ÿpœ´ÿtž¶ÿvŸ¶ÿe•®ÿYŒ¨ÿVЧÿ]Žªÿb’¬ÿLz“·3H^#]„ ñ†±Éÿ–»Ñÿ~¬ÆÿËÝçÿñõøÿïôøÿîó÷ÿìñõÿ{ÿÿ245ÿÿ¡­ÿNk|ÿ ÿÿ(9Bÿe”­ÿ!09ÿ1HUÿkœ·ÿkœ·ÿDduÿÿkœ·ÿ,@Kÿ:DJÿa“¯ÿÿ6Teÿx¡¸ÿuŸ¶ÿp›´ÿnš³ÿj—°ÿYŒ©ÿW‹§ÿVЧÿU‰¦ÿh•®ÿU‡¤ù1L]9$6HPt‘Úx¦Àÿ ÂÔÿ}«Åÿ©ÇØÿñõøÿîó÷ÿíòöÿÞãçÿ“—šÿÆÌÏÿmqsÿÿÎÜäÿ|¨Áÿx¦Àÿs¢¼ÿq »ÿl·ÿkœ·ÿkœ·ÿkœ·ÿkœ·ÿkœ·ÿkœ·ÿkœ·ÿkœ·ÿ¡½Íÿ`’¯ÿ_’®ÿ]­ÿj˜²ÿrµÿw ·ÿa‘­ÿX‹¨ÿX‹¨ÿWЧÿV‰¦ÿTˆ¥ÿ`ªÿ_ªÿIv¤Nr·j•°ÿ™¾Òÿƒ¯Èÿ„¯Èÿäíòÿíòöÿëñõÿµº½ÿ ÿÿ$%&ÿª±´ÿÞçíÿµÊÿv¤½ÿq »ÿoŸ¹ÿl·ÿkœ·ÿkœ·ÿkœ·ÿkœ·ÿkœ·ÿkœ·ÿkœ·ÿ¡½Íÿ`’¯ÿ`’¯ÿ`’¯ÿ]­ÿ]¬ÿsžµÿf•¯ÿZ©ÿX‹¨ÿWЧÿVЦÿ\Ž©ÿh•®ÿc‘¬ÿTˆ¤ýL|•Ó+4Mr‘]„¡ÿ®Çÿš¾Òÿ|ªÄÿ³ÍÝÿìòöÿêðôÿéîóÿæíòÿäìðÿâëïÿßéîÿÝçìÿ¯É×ÿq »ÿoŸ¹ÿm¸ÿlœ·ÿkœ·ÿkœ·ÿkœ·ÿkœ·ÿkœ·ÿkœ·ÿkœ·ÿ¡½Íÿ`’¯ÿ`’¯ÿ`’¯ÿ`’¯ÿ[Ž«ÿo›³ÿ\ŽªÿX‹¨ÿX‹¨ÿe“­ÿi–¯ÿaªÿUˆ¥ÿLy“þ3Pc§5 Ik†hYžþz¥¿ÿžÀÔÿ{©Ãÿ€­ÆÿÓâêÿéïôÿçíòÿåìñÿâêïÿàéîÿÝçíÿÛåëÿÊÛãÿx¦¿ÿmž¸ÿlœ·ÿkœ·ÿkœ·ÿkœ·ÿkœ·ÿkœ·ÿkœ·ÿkœ·ÿ¡½Íÿ`’¯ÿ`’¯ÿ`’¯ÿ`’¯ÿ`’¯ÿhš¶ÿhš¶ÿt¢»ÿi–¯ÿk—°ÿ\Ž©ÿS„ ÿKtÿKkƒÿZy“þ8UjzA`wBX€ úyŸ·ÿ‘·Íÿ…°Èÿz©ÂÿµËÿÝèïÿåíòÿãëðÿáéïÿÞçíÿÜåìÿÚäêÿÇØáÿ}©Àÿl·ÿkœ·ÿkœ·ÿkœ·ÿkœ·ÿkœ·ÿ\‡ ÿkœ·ÿ¡½Íÿ¡½Íÿ`’¯ÿ`’¯ÿ`’¯ÿhš¶ÿhš¶ÿt¢»ÿt¢»ÿk™³ÿk™³ÿQÿFm†ÿEgÿVx”ÿjŒ©ÿt–²ÿHkˆ¡)9JW€¡ñq“«ÿ~¬Åÿ•ºÏÿx§Âÿx§ÁÿŒ´ÊÿÕãêÿáêïÿÞèîÿÔàèÿ³ËÙÿбÇÿmž¸ÿlœ·ÿkœ·ÿkœ·ÿkœ·ÿkœ·ÿkœ·ÿkœ·ÿ„¦ºÿ¡½Íÿ`’¯ÿ`’¯ÿ`’¯ÿhš¶ÿhš¶ÿt¢»ÿt¢»ÿk™³ÿk™³ÿ_w†ÿWvŒÌ^z‘ÿm¦ÿr”¯ÿk­ÿ`‡§ÿV~ ûKnо SzšÜn©ÿqŸºÿ›¾Ñÿv¥Áÿw¦Áÿv¦Àÿƒ®Åÿ¾ÔàÿÙäëÿ¤ÂÓÿv¤½ÿm¸ÿlœ·ÿkœ·ÿkœ·ÿkœ·ÿkœ·ÿkœ·ÿ}¦½ÿ§ÀÏÿºÊÿe‘¬ÿkœ·ÿhš¶ÿhš¶ÿt¢»ÿt¢»ÿk™³ÿk™³ÿ_w†ÿ_w†ÿ_w†ÿ_w†ÿW€¡úQx˜íJoŠÓA`y®7Pf‰%7G`#,9Pv•·p’®ÿdŽªÿ‹³Êÿƒ®Æÿv¥Àÿu¥Àÿt¤¿ÿt¤¾ÿ“·Ìÿ¿ÓßÿÊÚãÿ²ÊØÿš»Íÿ³ÇÿŒ±Æÿ³ÇÿŸ½Íÿ±ÈÔÿ©ÂÐÿ{¥¼ÿb”°ÿa’®ÿh”­ÿc‡ÿt¢»ÿk™³ÿk™³ÿ_w†ÿ_w†ÿ_w†ÿKp‹hŽ«ÿbˆ£ÿv¥Àÿ–ºÎÿt£¿ÿt¤¾ÿs£¾ÿr¢½ÿq¡¼ÿq¡¼ÿ~©Áÿ’µÉÿ¤ÁÑÿªÄÓÿ§ÂÑÿœ»Ìÿˆ®ÃÿrŸ¸ÿe—³ÿe–²ÿrž·ÿy¢¹ÿk™³ÿk™³ÿk™³ÿHh„b^†¦ÿk¨ÿmšµÿ“¸Íÿu¤¿ÿs¢¾ÿq¡½ÿq¡¼ÿp »ÿo ºÿmŸ¹ÿl¸ÿjœ·ÿiš¶ÿg™µÿg˜´ÿe—³ÿl›¶ÿz¤¼ÿx¢ºÿi™´ÿYˆ¤òDg|½0:z K=\v:V€¡ûw—²ÿh«ÿ„¯Çÿ¬Äÿq¢½ÿq¡¼ÿp »ÿoŸºÿmž¹ÿm¹ÿkœ¸ÿj›·ÿhš¶ÿhšµÿs ºÿ¨¾ÿv¡ºÿd”°üW„žÝ>_q– 'G*?U1ER7Wg U}žëe‹©ÿ]‚Ÿÿt¤¿ÿµËÿp¡¼ÿo ¼ÿnŸ»ÿmžºÿl¹ÿkœ¸ÿi›·ÿj›·ÿ~§¿ÿ€©¿ÿsŸ¹ÿc”°ûPyÇ5P_x 0.EE1CU&*? U{œÒU~žöOt’êf’¬ôµÊÿq ¼ÿoŸºÿmžºÿl¹ÿkœ¸ÿt¢»ÿ‚ªÁÿ‚ªÁÿl›¶þ_ލëJo„«!09U /BU$*FU3LbP#2AV:Sx’}©Âÿ‚«Ãÿnž¹ÿl¸ÿ|¦¿ÿ‰¯Åÿ|¦¾ÿlœ·ý[ˆ¡ÞAaq&.B8U.CS*?UFds3n¸ò´Éÿ„¬ÃÿаÅÿy¥¾ÿf•±öU~•Á2KXp)33.EQ*DU d“­Åz¦¿ÿr¡»þd“®ëMp„§&:CW U~”q`‹¤×BarŠ< %þ00Ú$ Câ$@$&%.%(R/home/heron/Development/gnustep/dev-apps/gorm/Images/GormFile.tiffHHgorm-1.2.24/Images/Gorm.tiff0000644000000000000000000002241013410616261014224 0ustar rootrootII*$ (/LBaq¤/EQ~ -5RC`p aŒ¥åu¥¿þ€«ÃÿaŒ¤è "!!!,  ,3QEcs¥g’¬çw¦¾üˆ°Çÿ¶Êÿ‰°Æÿ’¶Êÿw¥¾þ3KX˜ /;h2I\›B`yÆQw•æ 0)¾¾¾æ§§§Å777G -5QGdu¥d§ãy¨Âþ޵Ëÿ“¸Ìÿ‰±Çÿ†¯Æÿ´ÉÿŒ²Èÿ€«Âÿ‰°Åÿe”°ÿU{šÿa‡§ÿh«ÿX£þ )` 4adgÂÏÏÏÿÊÊÊû777I !/7THev¦mš´î~¬Åþ޵Ëÿ—»Ïÿ¦ÄÕÿ‰²Èÿ´Éÿ”¸Ìÿ„®Åÿq¡¼ÿnžºÿk¹ÿ‚«ÂÿpŸºÿhŒ¥ÿiªÿr”°ÿ^†¦ÿ&9HŽ !%€}~~ò£££þŽŒ· "/7SJhy¦i“«ä~ªÄý”¹Ïÿ›½Ñÿ޵Ëÿ|ªÃÿs£¿ÿ|©Âÿš¼Ïÿ‹²Èÿ‰±Çÿƒ­Äÿ¬Ãÿy¦¿ÿkœ¸ÿnž¹ÿ‚«Âÿa«ÿTz™ÿe‹©ÿf‹ªÿ5Ma°  4{GM·­¯¬ü–™™ÄKfx³`‡ŸÜq¶ñ€®Çþ–»ÐÿžÁÔÿ’¹Îÿ€­Æÿx¨Âÿw¦Áÿv¦Áÿu¥Àÿu¤¿ÿt£¿ÿr£¾ÿq¢½ÿ¬Äÿ”¸Ìÿ’¶ËÿŒ²Çÿ…®Äÿ‹±Æÿ{¦¿ÿr ºÿož¸ÿ|¦¾ÿ]‹§ÿU|œÿr•°ÿLqŽé '  <"1>j0FY•BayÆNrŽéTy’ý_w†ÿ¯°±ÿ»ÈÐÿ™¼Ñÿ¿Óÿ–»Ðÿ€­Çÿw§Ãÿy¨Ãÿ{©Ãÿy¨Âÿv¦Áÿu¥Àÿu¥Àÿt¤¿ÿs£¾ÿr¢½ÿq¡½ÿr¡½ÿ•¸Ìÿ•¸Ëÿˆ¯ÅÿŒ²Çÿ©Àÿi›¶ÿhšµÿf˜´ÿ€¨¿ÿf˜³ÿRy—ÿt–±ÿT}ú E#BGi„ÔRx—íX ù]…¥þb«ÿn›·ÿw¦Áÿ©Áÿ|°ÿr…’ÿ®°±ÿ¿ÊÐÿƒ®ÇÿгËÿ«ÉÚÿËÝèÿÚæîÿÞéïÿÛçîÿÍÞçÿ³ÍÛÿ‘·Ìÿx§Áÿr¢½ÿr¢½ÿq¡¼ÿo »ÿбÇÿ޳Èÿ³Èÿq »ÿj›·ÿhš¶ÿiš¶ÿlœ·ÿt¡ºÿu¢ºÿZ‡£ÿoªÿYƒ¤ÿ$.h!G_‡§ÿ| ¹ÿ~§Àÿy¨Âÿƒ¯Èÿš½ÒÿÀÓÿ”ºÏÿ}¨Áÿg§ÿd|Œÿ¬®¯ÿÊÑÔÿìòõÿòöùÿðõøÿïô÷ÿíòöÿëñõÿéðôÿèîóÿåìñÿÑàèÿš¼Ïÿs¢½ÿp »ÿoŸ»ÿs¢¼ÿ´Èÿ|§Àÿl¸ÿs¡»ÿ|¦¾ÿ¨¿ÿk›¶ÿe—³ÿ~¦½ÿ`’®ÿc†¡ÿb‰¨ÿ)LPÿÿ ÿ ÿÿ2GSÿc©ÿiš¶ÿg™µÿ|¥½ÿ£¾Îÿb”°ÿc•±ÿ~¦¼ÿm›´ÿ`’®ÿg–±ÿk™²ÿo›´ÿ_¬ÿZ©ÿ]Žªÿh–¯ÿ?dxÉ ,6px§Âÿ¡ÃÕÿ|«Åÿ†±Éÿçðôÿòöùÿñõùÿðõøÿïó÷ÿíòöÿëñõÿéðôÿÜçíÿ‘·Ìÿ~ªÃÿz§Àÿp›³ÿ[”ÿ"08ÿÿ ÿÿÿ!%ÿLp„ÿf˜´ÿ|¥½ÿ¡½Íÿb”°ÿ`“¯ÿw¡¸ÿo›µÿu ·ÿuŸ¶ÿj˜±ÿf•¯ÿk˜±ÿk˜±ÿe“®ÿi–¯ÿT†¢ù!LCl˜³þ—¼Ñÿ…°Éÿ®ÇÿÜèïÿñöøÿðõøÿïô÷ÿîòöÿìñõÿêðôÿèïóÿäìðÿ”¸Íÿ}©Ãÿ{¨Áÿx¥¿ÿm˜°ÿ[€–ÿ .6ÿÿ ÿÿ(((ÿÿ*\sÓ-BS®+7‰` 9:Uk·p’®ÿdŽªÿ‹³Êÿƒ®Æÿv¥Àÿu¥Àÿt¤¿ÿt¤¾ÿ“·Ìÿ¿ÓßÿÊÚãÿ²ÊØÿš»Íÿ³ÇÿŒ±Æÿ³ÇÿŸ½Íÿ±ÈÔÿ©ÂÐÿ{¥¼ÿb”°ÿa’®ÿh”­ÿc‡ÿ@Ziÿÿÿ ÿÿÿ444ÿ222ÿü †2 *>MhŽ«ÿbˆ£ÿv¥Àÿ–ºÎÿt£¿ÿt¤¾ÿs£¾ÿr¢½ÿq¡¼ÿq¡¼ÿ~©Áÿ’µÉÿ¤ÁÑÿªÄÓÿ§ÂÑÿœ»Ìÿˆ®ÃÿrŸ¸ÿe—³ÿe–²ÿrž·ÿy¢¹ÿk™³ÿX‡¡û>^qì$2<á öÿÿÿÿ333ÿ333ÿå4(3b^†¦ÿk¨ÿmšµÿ“¸Íÿu¤¿ÿs¢¾ÿq¡½ÿq¡¼ÿp »ÿo ºÿmŸ¹ÿl¸ÿjœ·ÿiš¶ÿg™µÿg˜´ÿe—³ÿl›¶ÿz¤¼ÿx¢ºÿi™´ÿU‚œò3M\½zK V!‘ îÿÿÿÿ333ÿ111ÿ³:U~Ÿûw—²ÿh«ÿ„¯Çÿ¬Äÿq¢½ÿq¡¼ÿp »ÿoŸºÿmž¹ÿm¹ÿkœ¸ÿj›·ÿhš¶ÿhšµÿs ºÿ¨¾ÿv¡ºÿc“®üLs‰Ý%8C– G >!ƒ ëÿÿÿÿÿÎ Ot’ëe‹©ÿ]‚Ÿÿt¤¿ÿµËÿp¡¼ÿo ¼ÿnŸ»ÿmžºÿl¹ÿkœ¸ÿi›·ÿj›·ÿ~§¿ÿ€©¿ÿsŸ¹ÿb’®û?_qÇ&-x0 9! æÿÿÿúk FfÒRz™öIk†êbŒ¥ôµÊÿq ¼ÿoŸºÿmžºÿl¹ÿkœ¸ÿt¢»ÿ‚ªÁÿ‚ªÁÿl›¶þXƒ›ë2KY« U  6!w Üüô‰P V:0EQ’}©Âÿ‚«Ãÿnž¹ÿl¸ÿ|¦¿ÿ‰¯Åÿ|¦¾ÿl›¶ýPwÞ%7@ B 1hŒf3i•¯ò´Éÿ„¬ÃÿаÅÿy¥¾ÿc«öA`qÁ!'p)  Nr†Åz¦¿ÿr¡»þ]ˆ¡ë3JW§ W &8BqQv‹×$5>Š<%þ00Ú$ â$@$ø$%(R/home/heron/Gorm.tiffHHgorm-1.2.24/Images/iconBottom_nib.tiff0000644000000000000000000000435413410616261016274 0ustar rootrootII*˜  DDD`ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþv H~Æ@Üä(R/misc/applications/gnustep/cvs/dev-apps/Gorm/Images/iconBottom_nib.tiffCreated with The GIMPHHgorm-1.2.24/Images/tabbot_nib.tiff0000644000000000000000000000426413410616261015432 0ustar rootrootII*˜  ÿÿÿÿÿÿÿÿÿÿÿÿÿøüøÿÿxxxÿxxxÿxxxÿxxxÿxxxÿxxxÿxxxÿxxxÿxxxÿxxxÿxxxÿøüøÿDDD`ÿxxxÿøüøÿÿxxxÿøüøÿÿxxxÿøüøÿÿxxxÿøüøÿÿxxxÿøüøÿÿxxxÿøüøÿÿøüøÿøüøÿøüøÿøüøÿøüøÿøüøÿøüøÿøüøÿøüøÿøüøÿøüøÿøüøÿøüøÿøüøÿøüøÿøüøÿøüøÿøüøÿxxxÿøüøÿøüøÿøüøÿxxxÿøüøÿøüøÿøüøÿøüøÿxxxÿþv ~Ž@¤¬(Rtabbot_nib.tiffCreated with The GIMPHHgorm-1.2.24/Images/GormUnknown.tiff0000644000000000000000000002230213410616261015604 0ustar rootrootII*$\Un1“¾ÏBÂÿÍAÀþÊ@½þÇ?»þÄ>¸þÁ=µÿ¾<²ÿ»;¯þ¸:¬þª5žî„*{¾^Yn¢3—¾ÕDÈþÓAÆÿÑ=ÃÿÐ5ÂÿÏ1ÀÿÍ1¾ÿË0¼ÿÈ/ºÿÆ/·ÿÃ.µÿÁ-³ÿ¿-±ÿ¸2«ÿ±5¥ÿ¬6¡þ2“î{'s¾`YnÍA¿îÙBËÿ×>ÉÿÖ3ÇÿÖ+ÅÿÕ'ÄÿÔ#ÃÿÓ"ÂÿÑ#ÀÿÐ"¿ÿÎ"½ÿÍ"¼ÿË"ºÿÉ!¹ÿÇ ·ÿÄ"´ÿ¾$°ÿµ*§ÿ­/ ÿ¢2—ÿŸ2•þs$l¾b[nÑCÃîÜDÎþÛ;ÌÿÚ-ÉÿÙ&ÈÿØ$Çÿ×$ÅÿÕ#ÄÿÔ#ÃÿÒ#ÁÿÑ#ÀÿÏ"¾ÿÍ"½ÿË"»ÿÉ!¹ÿÈ!¸ÿÆ!¶ÿÄ ´ÿ ³ÿÀ°ÿ¼!­ÿµ#§ÿ©(ÿœ-’ÿ–.Œÿl!d¾¨6¾àGÑþÝ<ÎÿÜ/ÌÿÛ&ÊÿÚ$ÉÿÙ$Çÿ×$ÆÿÖ#ÅÿÕ#ÄÿÓ#ÂÿÑ#ÀÿÐ"¿ÿÎ"½ÿÌ"¼ÿË"ºÿÉ!¸ÿÇ!·ÿÅ!µÿà ³ÿÁ ²ÿÀ °ÿ½®ÿ»¬ÿ¸©ÿ± £ÿ£&—ÿ“+‰ÿƒ(zî;8nÔCÆîáGÒÿÞ<ÏÿÝ)ÌÿÜ%ÊÿÛ$ÉÿÙ$ÈÿØ$Çÿ×$ÅÿÕ#ÄÿÔ#ÃÿÒ#ÁÿÑ#ÀÿÏ"¾ÿÍ"¼ÿË"»ÿÊ!¹ÿÈ!·ÿÆ!¶ÿÄ ´ÿ ²ÿÀ ±ÿ¾®ÿ¼­ÿº«ÿ¸©ÿ·¨ÿ³¤ÿ¤"˜ÿŒ)ƒÿ†)}þ84nÕCÇîâDÒÿß4ÏÿÞ%ÌÿÜ$ËÿÜ$ÊÿÚ$ÉÿÙ$ÈÿØ$ÆÿÖ$ÅÿÕ#ÄÿÓ#ÂÿÑ#ÀÿÐ"¿ÿÎ"½ÿÌ"¼ÿÊ!ºÿÈ!¸ÿÇ!¶ÿÅ µÿà ³ÿÁ ±ÿ¿ ¯ÿ½­ÿ»¬ÿ¹ªÿ¶¨ÿµ¦ÿ³¤ÿ¯¡ÿ¢ –ÿŠ&ÿ'yÿ62nÖEÈîâDÓÿà-Ïÿß%ÍÿÞ%ÌÿÜ%ËÿÛ$ÊÿÚ$ÈÿØ$Çÿ×$ÆÿÕ#ÄÿÔ#ÃÿÒ#ÁÿÑ#ÀÿÏ"¾ÿÍ"½ÿË"»ÿÉ!¹ÿÇ!·ÿÅ!µÿà ³ÿÁ ²ÿÀ °ÿ½®ÿ»¬ÿ¹ªÿ·¨ÿ¶§ÿ´¥ÿ²£ÿ°¡ÿ­Ÿÿ¦™ÿ†$}ÿ~'vÿ96n×DÉîäDÕÿá-Ðÿß%ÍÿÞ%ÌÿÝ%ËÿÜ%ÊÿÛ$ÉÿÙ$ÈÿØ$ÇÿÖ$ÅÿÕ#ÄÿÓ#ÂÿÑ#ÀÿÏ"¿ÿÊ!¹ÿº«ÿµ¦ÿ´¥ÿ³¥ÿ³¤ÿº«ÿÀ±ÿ¾¯ÿ¼­ÿº«ÿ¹ªÿ¶§ÿ´¥ÿ²¤ÿ°¢ÿ® ÿ¬žÿªœÿ¢•ÿ‹$ÿogÿ84nµC¯¾ëQàÿâ5Ñÿà%Îÿß%ÍÿÞ%ÌÿÝ%ËÿÜ$ÊÿÚ$ÉÿÙ$Çÿ×$ÆÿÖ#ÄÿÔ"ÃÿÆ!¶ÿž‘ÿƒxÿjbÿWPÿo|‡þp|‡þp{‡þ`Yÿsjÿ‹ÿ‘†ÿ­Ÿÿ¶¨ÿ·¨ÿµ¦ÿ²¤ÿ±¢ÿ® ÿ­žÿ«ÿ “ÿ|rÿƒ&}ÿÕTÒÿž7—ÿ41nc^n|tÿ¬=¨ÿ÷YñÿÞ$Ìÿß%ÍÿÞ%ÌÿÜ%ËÿÛ$ÉÿÚ$ÈÿØ$Çÿ×$ÅÿÐ"Àÿ·¨ÿjbÿb~}þg²’þvç°þuã®þa¾‘þa¼ÿ`¼ÿnפþlÔ¢þg£Œþes{þtkÿšŽÿ²£ÿ³¤ÿ²£ÿ¯¡ÿ­Ÿÿ«ÿ•‰ÿkcÿÕTÒÿÍBÅÿœÿt#lÿf`î×DÉîã>Óÿ—Œÿƒ&}ÿÕTÒÿæ6ØÿÝ%ÌÿÜ%ÊÿÚ$ÉÿÙ$Èÿ×#ÅÿÉ!¸ÿ–Šÿ_Hiþyì´þd•þY®…ÿP›wÿP›wÿP›wÿP›wÿP›wÿP›wÿP›wÿV§€þ[²ˆþdÕþtHzþŒ ÿ©œÿ°¢ÿ®Ÿÿ¬žÿneÿ¬=¨ÿæVáÿ´.ªÿšÿŸ’ÿŒÿf`ÿ+ (nc\näFÕþá/ÐÿÞ$ÌÿÜ$Êÿ{qÿ¬=¨ÿöYðÿä6ÖÿÚ$ÈÿÔ#Âÿ¹©ÿldÿg¶“þoØ¥þP›wÿP›wÿP›wÿP›wÿP›wÿP›wÿP›wÿP›wÿP›wÿP›wÿP›wÿP›wÿP›wÿ\²ˆÿg’‡þˆ$~ÿŸ “ÿƒxÿƒ&}ÿÕTÒÿ¸.®ÿž‘ÿŸ’ÿÿŸ’ÿ™ŒÿldÿZUîÕDÈîâ=Òÿà%Îÿß%ÍÿÞ%ÌÿÜ$Ëÿº¬ÿzpÿÕTÒÿìGâÿ¹ªÿfIoÿzî¶þZ°†þP›wÿP›wÿP›wÿP›wÿP›wÿP›wÿP›wÿP›wÿP›wÿP›wÿP›wÿP›wÿP›wÿP›wÿP›wÿR {þY­„þsAwþÕTÒÿÑCÉÿ£•ÿ “ÿž‘ÿ¢”ÿ “ÿž‘ÿœÿ‡|ÿaZÿ( $nc\nãEÔþà-Ïÿß%Íÿß%ÍÿÞ%ÌÿÝ$ËÿÚ$ÉÿÙ$Çÿ™ÿƒ&}ÿƒ'}ÿyíµþP›wÿP›wÿP›wÿP›wÿP›wÿP›wÿP›wÿP›wÿP›wÿP›wÿP›wÿP›wÿP›wÿP›wÿP›wÿP›wÿP›wÿP›wÿP›wÿT£}þ…Iˆÿœ ÿ¡”ÿ¡”ÿ¢•ÿ “ÿŸ’ÿÿ›Žÿ”‰ÿjcÿSMî©6Ÿ¾áAÒÿß%ÍÿÞ%ÌÿÞ%ÌÿÝ%ËÿÜ$ÊÿÚ$ÈÿÙ#ÈÿÅ.·ÿ™!Žÿnµ™þZ¯†þP›wÿP›wÿP›wÿP›wÿP›wÿP›wÿP›wÿP›wÿP›wÿP›wÿP›wÿP›wÿP›wÿP›wÿP›wÿP›wÿP›wÿP›wÿP›wÿP›wÿU¥~ÿ‚G„ÿž’ÿ¡”ÿ¡”ÿŸ’ÿÿœÿšÿ˜‹ÿ{qÿWQÿN GnáHÓÿß2ÏÿÞ%ÌÿÝ%ÌÿÝ%ËÿÜ$ÊÿÛ$ÉÿÚ$ÈÿÙ$ÈÿØ#ÇÿzXƒþnÖ¤þP›wÿP›wÿP›wÿP›wÿP›wÿP›wÿP›wÿP›wÿP›wÿP›wÿP›wÿP›wÿP›wÿP›wÿP›wÿP›wÿP›wÿP›wÿP›wÿP›wÿP›wÿOšvÿtc‚ÿ &”ÿ¡”ÿ ’ÿž‘ÿœÿ›Žÿ™Œÿ—‹ÿ‰~ÿ\Vÿ=9¾b[nßDÑþÞ-ÍÿÝ%ÌÿÜ%ËÿÛ$ÊÿÚ$ÉÿÚ$ÈÿÙ$ÇÿË!ºÿkcÿwè±þP›wÿP›wÿP›wÿP›wÿP›wÿP›wÿP›wÿP›wÿP›wÿP›wÿP›wÿP›wÿP›wÿP›wÿP›wÿP›wÿP›wÿP›wÿP›wÿP›wÿP›wÿP›wÿP›wÿF‰hþ¨1ÿ£!–ÿž‘ÿÿ›Žÿ™ÿ˜‹ÿ–ŠÿŽƒÿb[ÿKFî¨6¾Þ@ÏÿÝ'ÌÿÝ%ËÿÜ$ÊÿÛ$ÉÿÚ$ÈÿÙ$Çÿ×#Æÿ¡”ÿa{{ÿcÀ“þP›wÿP›wÿP›wÿP›wÿP›wÿP›wÿP›wÿP›wÿP›wÿP›wÿP›wÿP›wÿP›wÿP›wÿP›wÿP›wÿP›wÿP›wÿP›wÿP›wÿP›wÿP›wÿP›wÿIŽmþy[ƒÿ¬. ÿœÿ›Žÿ™ÿ˜‹ÿ–Šÿ”ˆÿ“‡ÿofÿNHÿÞGÐþÜ7ÍÿÜ%ËÿÛ$ÊÿÚ$ÉÿÚ$ÈÿÙ$Çÿ×$ÆÿÖ#Åÿ…zÿe®ŽþY­„ÿP›wÿP›wÿP›wÿP›wÿP›wÿP›wÿP›wÿP›wÿP›wÿP›wÿP›wÿP›wÿP›wÿP›wÿP›wÿP›wÿP›wÿP›wÿP›wÿP›wÿP›wÿP›wÿP›wÿL“qÿ[ioþ³5§ÿŸ“ÿšÿ˜Œÿ—Šÿ•‰ÿ“‡ÿ’†ÿˆ|ÿLGÿ73¾ÝGÏÿÛ5ËÿÛ$ÊÿÛ$ÉÿÚ$ÈÿØ$Çÿ×$ÆÿÖ$ÅÿÐ"Àÿvmÿsà«þP›wÿP›wÿP›wÿP›wÿP›wÿP›wÿP›wÿP›wÿP›wÿP›wÿP›wÿP›wÿP›wÿP›wÿP›wÿP›wÿP›wÿP›wÿP›wÿP›wÿP›wÿP›wÿP›wÿP›wÿP›wÿ;rWþ¹7¬ÿ ”ÿ˜‹ÿ—Šÿ•‰ÿ”ˆÿ’†ÿ‘…ÿ…zÿJEÿ61¾ÛFÍþÚ4ÊÿÛ$ÉÿÙ$ÈÿØ$Çÿ×$ÆÿÖ#ÅÿÕ#ÃÿÀ ±ÿUOÿqÝ©þP›wÿP›wÿP›wÿP›wÿP›wÿP›wÿP›wÿP›wÿP›wÿP›wÿP›wÿP›wÿP›wÿP›wÿP›wÿP›wÿP›wÿP›wÿP›wÿP›wÿP›wÿP›wÿP›wÿP›wÿP›wÿ8mSþÀ<´ÿ«)Ÿÿ—Šÿ•‰ÿ”ˆÿ’†ÿ‘…ÿƒÿƒyÿHCÿ4 0¾ÙEËþÙ2ÉÿÚ$ÈÿØ$Çÿ×$ÆÿÖ$ÅÿÕ#ÄÿÔ#Ãÿ»¬ÿmx…ÿ`ºŽþP›wÿP›wÿP›wÿP›wÿP›wÿP›wÿP›wÿP›wÿP›wÿP›wÿP›wÿP›wÿP›wÿP›wÿP›wÿP›wÿP›wÿP›wÿP›wÿP›wÿP›wÿP›wÿP›wÿP›wÿP›wÿB€bþ}R„þ¯,¢ÿ•‰ÿ”ˆÿ“‡ÿ‘…ÿ„ÿƒÿ‚xÿPJÿ3 0¾×EÊþØ/ÈÿÙ$Çÿ×$ÆÿÖ$ÅÿÕ#ÄÿÔ#ÃÿÒ#Áÿ»¬ÿmw„þ^¸þP›wÿP›wÿP›wÿP›wÿP›wÿP›wÿP›wÿP›wÿP›wÿP›wÿP›wÿP›wÿP›wÿP›wÿP›wÿP›wÿP›wÿP›wÿP›wÿP›wÿP›wÿP›wÿP›wÿP›wÿP›wÿA~`þ~P„ÿ°,£ÿ”ˆÿ“‡ÿ‘…ÿ„ÿŽƒÿ‚ÿwÿD?ÿ1 .¾ÖDÈþ×/ÇÿØ$ÆÿÖ$ÅÿÕ#ÄÿÔ#ÃÿÒ#ÁÿÑ#Àÿº«ÿdFlþd”þP›wÿP›wÿP›wÿP›wÿP›wÿP›wÿP›wÿP›wÿP›wÿP›wÿP›wÿP›wÿP›wÿP›wÿP›wÿP›wÿP›wÿP›wÿP›wÿP›wÿP›wÿP›wÿP›wÿP›wÿP›wÿ8mSþ§H£þ²,¥ÿ“‡ÿ‘…ÿ„ÿŽƒÿÿÿ€uÿB=ÿ0 -¾ÔCÆþÕ.Æÿ×$ÅÿÖ#ÄÿÔ#ÃÿÓ#ÂÿÑ#ÁÿÐ"¿ÿ½ ®ÿ`YÿiÍœþP›wÿP›wÿP›wÿP›wÿP›wÿP›wÿP›wÿP›wÿP›wÿP›wÿP›wÿP›wÿP›wÿP›wÿP›wÿP›wÿP›wÿP›wÿP›wÿP›wÿP›wÿP›wÿP›wÿP›wÿP›wÿ.YDþÐBÃÿ¯+£ÿ‘…ÿ„ÿƒÿŽ‚ÿŒÿ‹€ÿtÿ@;ÿ. +¾ÒCÄþÔ0ÄÿÕ#ÄÿÔ#ÃÿÓ#ÂÿÑ#ÀÿÐ"¿ÿÎ"¾ÿÉ!¹ÿvmÿfǘþP›wÿP›wÿP›wÿP›wÿP›wÿP›wÿP›wÿP›wÿP›wÿP›wÿP›wÿP›wÿP›wÿP›wÿP›wÿP›wÿP›wÿP›wÿP›wÿP›wÿP›wÿP›wÿP›wÿP›wÿP›wÿ+T@þÍ>Àÿž ’ÿ„ÿƒÿŽ‚ÿŒÿ‹€ÿŠÿ}sÿ>9ÿÐBÃþÑ2ÂÿÕ#ÄÿÓ#ÂÿÒ#ÁÿÐ#ÀÿÏ"¾ÿÍ"½ÿË!»ÿ…{ÿ\mqþY­„ÿP›wÿP›wÿP›wÿP›wÿP›wÿP›wÿP›wÿP›wÿP›wÿP›wÿP›wÿP›wÿP›wÿP›wÿP›wÿP›wÿP›wÿP›wÿP›wÿP›wÿP›wÿP›wÿP›wÿ=v[þ€KƒþÎ>Àÿ›ÿƒÿŽ‚ÿŒÿ‹€ÿŠÿ‰~ÿ|rÿ<8ÿ›1‘¿Ï7ÀÿÓ#ÂÿÒ#ÁÿÐ#ÀÿÏ"¿ÿÎ"½ÿÌ"»ÿÊ!ºÿ£–ÿfClþ[±ˆþP›wÿP›wÿP›wÿP›wÿP›wÿP›wÿP›wÿP›wÿP›wÿP›wÿP›wÿP›wÿP›wÿP›wÿP›wÿP›wÿP›wÿP›wÿP›wÿP›wÿP›wÿP›wÿP›wÿ2aJþ¨D£þÂ6µÿƒÿŽ‚ÿŒÿ‹€ÿŠ~ÿ‰~ÿˆ}ÿneÿ:6ÿ; 6f _Ë;½ÿÐ'ÀÿÑ#ÀÿÏ"¿ÿÎ"½ÿÌ"¼ÿÊ!ºÿÉ!¸ÿ ²ÿ…{ÿ^Ž~þR zÿP›wÿP›wÿP›wÿP›wÿP›wÿP›wÿP›wÿP›wÿP›wÿP›wÿP›wÿP›wÿP›wÿP›wÿP›wÿP›wÿP›wÿP›wÿP›wÿP›wÿP›wÿE‡gÿTJ^þÎ=Àÿ¦%™ÿŽ‚ÿŒÿ‹€ÿŠÿ‰}ÿˆ}ÿ…zÿ\Tÿ95ÿÈ?»ÿÌ.½ÿÐ"¿ÿÎ"¾ÿÍ"¼ÿË"»ÿÉ!¹ÿÈ!·ÿÆ!¶ÿ³¥ÿxpÿWª‚þP›wÿP›wÿP›wÿP›wÿP›wÿP›wÿP›wÿP›wÿP›wÿP›wÿP›wÿP›wÿP›wÿP›wÿP›wÿP›wÿP›wÿP›wÿP›wÿP›wÿP›wÿ&J8þÜFÎÿ·/ªÿ„ÿÿ‹€ÿŠÿ‰~ÿˆ}ÿ‡|ÿ|rÿB=ÿHC¿”/‹¿Ç4¹ÿÏ"¾ÿÍ"½ÿÌ"»ÿÊ!ºÿÈ!¸ÿÆ!¶ÿÅ!µÿÁ±ÿ¡•ÿjBoþPxþP›wÿP›wÿP›wÿP›wÿP›wÿP›wÿP›wÿP›wÿP›wÿP›wÿP›wÿP›wÿP›wÿP›wÿP›wÿP›wÿP›wÿP›wÿP›wÿ/\Gþ¯F©þÆ8¸ÿ˜Œÿÿ‹€ÿŠÿ‰~ÿˆ}ÿ‡|ÿ†{ÿlcÿ62ÿ: 5a[Â9¶ÿË&»ÿÌ"¼ÿË!ºÿÉ!¹ÿÇ!·ÿÅ!µÿÄ ´ÿ ²ÿº«ÿŠ"ÿZ|tþM–sÿP›wÿP›wÿP›wÿP›wÿP›wÿP›wÿP›wÿP›wÿP›wÿP›wÿP›wÿP›wÿP›wÿP›wÿP›wÿP›wÿP›wÿ:pVÿMAVþÑ>ÃÿŸ!“ÿÿŒ€ÿŠÿ‰~ÿˆ}ÿ‡|ÿ†{ÿƒxÿUNÿ51ÿ-)?À<³ÿÄ.¶ÿË"»ÿÉ!¹ÿÈ!·ÿÆ!¶ÿÄ ´ÿ ²ÿÁ ±ÿ¾¯ÿ±£ÿ%„ÿh\vþIŽlþM•rþP›wÿP›wÿP›wÿP›wÿP›wÿP›wÿP›wÿP›wÿP›wÿP›wÿP›wÿP›wÿP›wÿE†gþ/[Eþ}C~þÒ>Ãÿ³,¦ÿŽ‚ÿŒÿ‹ÿ‰~ÿˆ}ÿ‡|ÿ†{ÿ…zÿvlÿ<8ÿGA¿^X½7°ÿÆ%·ÿÈ!¸ÿÆ!¶ÿÅ µÿà ³ÿÁ ±ÿ¿ °ÿ½®ÿº«ÿ¯¡ÿš&ÿ~BþVklþGŠjþP›wÿP›wÿP›wÿP›wÿP›wÿP›wÿP›wÿP›wÿP›wÿP›wÿP›wÿ:qWþRF[þ¯F©þÒ?Äÿ¯)¢ÿ“‡ÿ‚ÿŒ€ÿŠÿ‰}ÿ‡|ÿ†{ÿ…zÿ‚xÿPJÿ3 /ÿ-)?¹:­ÿ¾,°ÿÆ!¶ÿÅ!µÿà ³ÿÁ ²ÿÀ °ÿ¾®ÿ¼­ÿº«ÿ¸©ÿ²¤ÿ§#šÿœ,’ÿnUxÿ;rWþ>z]þBcþAaþP›wÿP›wÿP›wÿ=w[þÁÿ¯)¢ÿ˜‹ÿ‘…ÿƒÿ‚ÿŒ€ÿŠÿ‰~ÿˆ|ÿ†{ÿ…zÿzpÿMGÿ1 .ÿ-)?„)|¿¯3¤ÿ»%¬ÿÀ ±ÿ¾¯ÿ½­ÿ»¬ÿ¹ªÿ·¨ÿµ¦ÿ³¤ÿ±£ÿ¯¡ÿ¬žÿ«#žÿ¬) ÿ¯+¢ÿ·4ªÿ¼8°ÿ†)}ÿàFÑÿÆ<¹ÿ¿4²ÿ¶.©ÿ³,¦ÿ¡ ”ÿ•‰ÿ’†ÿ„ÿŽƒÿŒÿ‹€ÿŠ~ÿˆ}ÿ‡|ÿ†{ÿtÿQKÿ2 /ÿf^¿+ (?ª5Ÿÿ®.¢ÿ¼!­ÿ½®ÿ»¬ÿ¹ªÿ·¨ÿ¶§ÿ³¥ÿ²£ÿ¯¡ÿ­Ÿÿ«ÿ©›ÿ§šÿ¥˜ÿ¦™ÿ¦ ™ÿxoÿÍ8¿ÿ£–ÿšÿ˜‹ÿ–Šÿ”ˆÿ’†ÿ‘…ÿƒÿ‚ÿŒ€ÿ‹ÿ‰~ÿˆ}ÿ‡|ÿ„yÿg^ÿ8 4ÿ& #Ä * '?¥3šÿª+žÿ· ¨ÿ¹ªÿ¸©ÿ¶§ÿ´¦ÿ²¤ÿ°¢ÿ® ÿ­žÿªÿ©›ÿ¦™ÿ¤—ÿ¢•ÿ “ÿrjÿÅ3·ÿšŽÿ™Œÿ—Šÿ•‰ÿ“‡ÿ’†ÿ„ÿŽƒÿÿŒ€ÿŠÿ‰}ÿˆ|ÿ„yÿjaÿ<8ÿSMÿ0" ( %?ž1”ÿ¤*™ÿ²!¤ÿ¶§ÿµ¦ÿ³¥ÿ±¢ÿ¯¡ÿ­Ÿÿ«ÿ©›ÿ§™ÿ¥—ÿ£–ÿ¡”ÿŸ’ÿnfÿ¾1±ÿ™ÿ˜‹ÿ–‰ÿ”ˆÿ’†ÿ‘…ÿƒÿŽ‚ÿŒÿ‹ÿŠ~ÿˆ}ÿwÿjbÿ?;ÿTNÿ-)xEB>$& $?˜/ÿ›+ÿ©"œÿ³¥ÿ±£ÿ°¡ÿ­Ÿÿ¬žÿ©›ÿ¨šÿ¦˜ÿ¤–ÿ¢•ÿ “ÿž‘ÿjaÿ·/ªÿ™Œÿ—Šÿ•‰ÿ“‡ÿ’…ÿ„ÿŽƒÿÿŒ€ÿ‹ÿ‰~ÿ~sÿTNÿ=8ÿUOÿ-)‚TPUC3% #?“-‰ÿ“*Šÿ¤!˜ÿ­Ÿÿ® ÿ¬žÿ«ÿ¨šÿ§™ÿ¤—ÿ£•ÿ¡”ÿŸ’ÿÿe]ÿ¯,¢ÿ˜‹ÿ–Šÿ”ˆÿ“†ÿ‘…ÿƒÿŽ‚ÿÿ‹€ÿˆ|ÿ{pÿSMÿ;7ÿ* 'Øc_YUNB4$j!c¿)ƒÿ“$ˆÿž“ÿ§™ÿªœÿ§™ÿ¥˜ÿ£–ÿ¡”ÿŸ’ÿÿœÿaYÿ¨*œÿ–Šÿ•‰ÿ“‡ÿ’†ÿ„ÿŽƒÿ‚ÿŒ€ÿuÿc[ÿFAÿ:6ÿh_Ûphc\TMC6$" ?c\¿ƒ&zÿ‡#~ÿ’‡ÿ›ÿ “ÿ¢•ÿ “ÿž‘ÿœÿ›Žÿ]Vÿ¢(—ÿ–‰ÿ”ˆÿ’†ÿ‘…ÿÿ„zÿukÿc[ÿLGÿB>ÿKEÛ-)“c_\WRPPM;  C\VÃw$oÿv"oÿ€vÿ‰~ÿ”ˆÿ”ˆÿ„ÿŽ‚ÿVOÿš'ÿ‹ÿ‰~ÿ‡|ÿyoÿd]ÿRMÿGCÿA=ÿMGÔ-)VUQNLIDCD4)-)H95ŠRLÅjcÿjcÿkdÿc\ÿd]ÿKFÿo gÿ]VÿZSÿWQÿNHÿHCÿPJÍ> 9›-)i=<<;;<>5*%"2/1./,ˆ- *Œ, )Ž* ') &Ž' %& $? :#########" 00ª$$²$º$(R€ü '€ü 'gorm-1.2.24/Images/GormMHCoil.tiff0000644000000000000000000001607413410616261015271 0ustar rootrootII* PPPgÞÞggÞÞggÞÞgPPPgÞÞggÞÞggÞÞg¹ÿÿÿÿ¹¹ÿÿÿÿ¹¹ÿÿÿÿ¹PPP¹ÿÿÿÿ¹¹ÿÿÿÿ¹¹ÿÿÿÿ¹yÿ¬""¬ÿyyÿ¬""¬ÿyyÿ¬""¬ÿyPPPyÿ¬""¬ÿyyÿ¬""¬ÿyyÿ¬""¬ÿyÿæ æÿÿæ æÿÿæ æÿPPPÿæ æÿÿæ æÿÿæ æÿUÿ}}ÿUUÿ}}ÿUUÿ}}ÿUPPPUÿ}}ÿUUÿ}}ÿUUÿ}}ÿU¦ÿ88ÿ¦¦ÿ88ÿ¦¦ÿ88ÿ¦ÿÿPPP¦ÿ88ÿ¦¦ÿ88ÿ¦¦ÿ88ÿ¦äÿÿääÿÿääÿÿäÿÿPPPäÿÿääÿÿääÿÿäÿÿÿÿÿûÿÿûûÿÿûûÿÿûÿÿPPPûÿÿûûÿÿûûÿÿûÿÿÿÿÿÿÿÿäÿÿääÿÿääÿÿÿÿÿÿÿÿÿÿÿÿÿäÿÿääÿÿääÿÿÿÿÿÿÿÿÿÿÿÿ¦ÿ88ÿ¦¦ÿ88ÿ¦¦ÿ88ÿÿÿÿÿÿÿÿÿÿÿÿÿÿ88ÿ¦¦ÿ88ÿ¦¦ÿ88ÿ¦ÿÿÿÿÿÿÿÿÿ}}ÿUUÿ}}ÿUUÿ}}ÿUÿÿPPPUÿ}}ÿUUÿ}}ÿUUÿ}}ÿUÿÿÿæ æÿÿæ æÿÿæ æÿÿÿPPPÿæ æÿÿæ æÿÿæ æÿyÿ¬""¬ÿyyÿ¬""¬ÿyyÿ¬""¬ÿyÿÿPPPyÿ¬""¬ÿyyÿ¬""¬ÿyyÿ¬""¬ÿyPPP¹ÿÿÿÿÿæ æÿÿÿÿÿÿæ øÿÿÿÿ¹PPPPPPPPPPPPPPPÿÿPPPPPPPPPPPP¹ÿÿÿÿÿæ æÿÿÿÿÿø æÿÿÿÿÿ¹PPPPPPgÞÞÿÿÿ¬""¬ÿÿÿÞÞÿÿÿ¬""¬ÿ¯ÞÞgÿÿPPPgÞÿÿÿÿ¬""¬ÿÿÿÞÞÿÿ¬""¬ÿÿÿÿÞgPPPPPPPPP¹ÿÿÿÿ¹¹ÿÿÿÿ¹ÿÿPPPPPPPPP¹ÿÿÿÿ¹¹ÿÿÿÿ¹PPPPPPPPPPPPgÞÞgPPPgÞÞgPPPPPPgÞÞggÞÞgPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPþ[Þ Eæ@,4(R/home/heron/Development/gnustep/dev-apps/gorm/Images/GormMHCoil.tiffHHgorm-1.2.24/Images/iconTopLeft_nib.tiff0000644000000000000000000000435613410616261016407 0ustar rootrootII*˜ ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿDDD`ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþv I~È@Þæ(R/misc/applications/gnustep/cvs/dev-apps/Gorm/Images/iconTopLeft_nib.tiffCreated with The GIMPHHgorm-1.2.24/Images/GormFirstResponder.tiff0000644000000000000000000002230213410616261017116 0ustar rootrootII*$?¿ÿÿÿÿ¿??ÿ´´´ÿÿÿÿÿÿÿÿÿÿÿÿÿ¿¿¿ÿ ÿÿ¿yyyÿòòòÿòòòÿòòòÿ¹¹¹ÿÿ ÿ+++ÿ ÿ¿ÿ¤¤¤ÿÝÝÝÿÝÝÝÿÝÝÝÿÿ?¿ ÿ+++ÿ ÿ¿ÿÕÕÕÿÕÕÕÿÕÕÕÿÕÕÕÿÿ¿%%%ÿ666ÿ ÿ?ÿÂÂÂÿÂÂÂÿÂÂÂÿÂÂÂÿÿÿ```ÿEEEÿ¿ÿ­­­ÿ­­­ÿ­­­ÿ­­­ÿÿ888ÿjjjÿ ÿ?ÿ­­­ÿ­­­ÿ­­­ÿ­­­ÿÿ¿€€€ÿ```ÿ¿ÿ­­­ÿ­­­ÿ­­­ÿ­­­ÿÿ?'''ÿÿ'''ÿ ŸXXXÿXXXÿ888Þ Oÿ­­­ÿ­­­ÿ­­­ÿ­­­ÿÿÿ¹¹¹ÿ\\\ÿzzzÿôôôÿ´´´ÿ,,,ÿAAAÿŽÿ­­­ÿ­­­ÿ­­­ÿ­­­ÿÿjjjÿÕÕÕÿ888ÿÝÝÝÿIIIÎ/333î@@@ÿnÿ­­­ÿ­­­ÿ­­­ÿ­­­ÿÿ?555ÿÕÕÕÿÿÄÄÄÿAAA¾ _cccÿ///Þ /¾ŽŽŽ¾///® #@@@...q ÿ­­­ÿ­­­ÿ­­­ÿ­­­ÿÿ¿ÕÕÕÿjjjÿ‰‰‰ÿ===¾999¯‚‚‚ÿ _===®éééÿwwwÞ???ÎFFFÞooo¿àààÿKKKÆJJJÔ ÿ­­­ÿ­­­ÿ­­­ÿ­­­ÿÿŸŸŸÿjjjÿ[[[ÿ===¾ O|||ÿ555¿PPP¾ËËËÿPPP¾iiiÿ###~}}}Ôµµµÿ *PPP¾///~ÿ­­­ÿ­­­ÿ­­­ÿ­­­ÿÿ?jjjÿÕÕÕÿ---ÿ===¾OOOÿ}}}ÿMMMÎÀÀÀÿMMM¾ nzzzîxxxÔ­­­ÿ *0|||éÿ­­­ÿ­­­ÿ­­­ÿ­­­ÿÿjjjÿÕÕÕÿÿÞ? _ÂÂÂÿNNNîÀÀÀÿMMM¾«««ÿzzzã­­­ÿ *‚‚‚Ó8ÿ­­­ÿ­­­ÿ­­­ÿ­­­ÿÿ555ÿŸŸŸÿÕÕÕÿŸŸŸÿjjjÿÿ/···ÿ```ÿÀÀÀÿMMM¾mmmΈˆˆù­­­ÿ *eee·CCC›ÿ­­­ÿ­­­ÿ­­­ÿ­­­ÿÿ¿ŸŸŸÿÕÕÕÿÕÕÕÿjjjÿ«««ÿfffÿpppÿGGG¾qqqÞ•••ÿnnnÿ *```©ŸŸŸâÿ­­­ÿ­­­ÿ­­­ÿ­­­ÿÿ?555ÿÕÕÕÿÕÕÕÿ555ÿ~ÂÂÂÿÚÚÚÿMMMÿEEE¾CCCžÉÉÉÿ 4Fÿÿÿÿÿÿ¾jjjÿŸŸŸÿ¾VVVÞ«««ÿ_ .o:jy¼`³ß©k£ýÐlÇù‰Jƒ¯$"2zCu…ÏqÆéÊqÂìrDm‘¿ÿ  w2p‡™@çd2_ýÍOÁý¥Cœ×¯U§ÛáiÖÿÝiÑÿÊmÂüÌgÃÿÍgÃÿ»e³ûËwÅÿ­®»ý¨«¶ýÂ|½ÿkDh”@;SÑQÄèßKÑÿÛJÍÿÖIÈÿÐHÂÿÉG¼ÿÁF¶ÿ®P¦þ“£¦üŠ¿¦üŒ¹¥ü©‰¯üÃm»ÿ±j«þ“Á«ÿ“Á«ÿ¢¤®ý¯o©ùLGW¹7¬ÖØ4ÉÿÖ)ÆÿÔ$ÃÿÑ"ÀÿÎ"½ÿË!ºÿÇ ·ÿÂ!²ÿ·&©ÿ§+œþib¯-*C±=¦ÈÛ;ÍýÚ5ÊÿÖ4ÆÿÑ3ÂÿÌ2½ÿÇ1¸ÿÁ0²ÿ±4¥ÿ°=¥ÿÕEÇÿ©n­ýŽŒŸý…žý©[¨þ¾E²ÿ´K¬ÿŸ]ÿ‡¸¡ÿˆ»£ÿˆ»£ÿ³v±þ·c¯ÿ“Á«ÿ“Á«ÿ¡ž¬ý©m¤ú—0ªÞ:ÎþÛ'ÊÿÙ$ÇÿÖ#ÅÿÓ#ÂÿÐ"¿ÿÌ"¼ÿÉ!¸ÿÅ µÿÁ ²ÿ½®ÿ¹ªÿ¯ ¡ÿ”(Šþµ/©ÿÛ5ÌÿØ4ÈÿÓ3ÄÿÈ1¹ÿÄ1¶ÿÄ0¶ÿ¾/°ÿ¸.«ÿ­.¡ÿŽJŒþo¦ýo­ÿo­ÿq¬‘þ”xžþµGªÿ©BŸÿ†ˆ’ÿˆ»£ÿˆ»£ÿ¥‡«ý´b­ÿ§°ý¨œ±ýºw´ÿiFe¢£3˜¶à2ÏÿÝ$ËÿÚ$ÉÿØ$ÆÿÕ#ÄÿÑ#ÀÿÎ"½ÿÊ!ºÿÆ!¶ÿà ³ÿ¿¯ÿ»«ÿ·¨ÿ³¤ÿ«ÿ#„ÿ¯,¢ÿ«G§ýw†Žýj›Šýl“ˆý~qý«2¡þµ-§ÿ§4ÿ°>¨ÿ|^ƒÿo­ÿo­ÿo­ÿo§ÿ¬N¤þ©AŸÿ…Z‡ÿˆ»£ÿˆº¢ÿ¬z¬ü°b¨ÿ·n¯ö´q®úuPq¼B6–ªá2ÑÿÞ%ÌÿÜ$ÊÿÙ$ÈÿÖ#ÅÿÐ"¿ÿ°¢ÿ‘…ÿ’M–þ3Šþž‘ÿ® ÿ¸©ÿ´¥ÿ°¢ÿ¬žÿšÿ”.ÿwqˆý]¢ÿ]¢ÿ]¢ÿ]¢ÿg˜‡þ›M›ÿ®4¤ÿ¦+™ÿ‰,ÿk—‡ÿo­ÿo­ÿo­ÿ›`œþ¥A›ÿ„Fÿ†¸Ÿüš•¥ü¶e®ÿ¤`žÿ NIW¨-žÿË=Ãÿà)ÏÿÛ$ÉÿØ#ÇÿÁ ±ÿ~Y‰þa¨ŠþbÀ“þX¬ƒþ[²ˆþ^®‰þf€þ“)‹þ¯¡ÿ­Ÿÿ– Œÿ¶:°ÿ¨$ÿt!mÿ]“}ÿ]¢ÿ]¢ÿ]¢ÿ]¢ÿe’‚ÿ¨0œÿ£+—ÿš*ÿlawÿo­ÿo­ÿm©þ¤XŸÿ¡@—ÿ„B~þ²t®ü·e°ÿ­b¦ÿfBcµ  ¿9²Öß'ÍÿÄ ´ÿµ2­ÿß=Ôÿ«*¡ÿi™ŒþWª‚þP›wÿP›wÿP›wÿP›wÿP›wÿP›wÿYŸ€þ|Lƒþ«4¤ÿ´-ªÿŸ’ÿž‘ÿŠ~ÿ^Qiÿ]¢ÿ]¢ÿ]¢ÿ]¢ÿ[Ÿÿ–K•þ *”ÿ›)ÿk=kÿo­ÿo­ÿzŽŽý¬G£þž@”ÿ‹F„ÿ¶c­ÿªb£ÿpKmÏQ C>Kà6ÐþÞ%ÌÿÝ$ËÿÙ#Èÿž#“ÿqž”þP›wÿP›wÿP›wÿP›wÿP›wÿP›wÿP›wÿP›wÿP›wÿQxþ~U†ÿ “ÿ “ÿÿ˜‹ÿd^ÿf“„ÿ]¢ÿ]¢ÿ]¢ÿ]¢ÿ‰[Žÿœ*ÿ—)Œÿh0eþj¤ˆý|Šý¨Q¢ýž@•ÿ’>Šÿ)'^  ˆ*šÞ*ÍÿÜ$ËÿÚ$ÉÿÕ#Äÿ]—þW©‚þP›wÿP›wÿP›wÿP›wÿP›wÿP›wÿP›wÿP›wÿP›wÿP›wÿVˆuÿ£$–ÿž‘ÿšŽÿ—‹ÿulÿWgiÿ]¢ÿ]¢ÿ]¢ÿ]¢ÿ’O’ÿ˜)ÿ•)‰ÿi(dþ°U©ý°H¦ÿ¡@—ÿ›?‘ÿZ-VÌ Ð=ÂîÜ%ËÿÚ$ÉÿØ$Çÿ´¦ÿ`¥ˆþP›wÿP›wÿP›wÿP›wÿP›wÿP›wÿP›wÿP›wÿP›wÿP›wÿP›wÿM•sÿŒIŽÿœÿ˜‹ÿ”ˆÿ‡{ÿQ@Xÿ]¢ÿ]¢ÿ]¢ÿVtý­?¤þ•)Šÿ‘(‡ÿo(iÿ®E¤ÿ¤@šÿ˜?ÿb2]Ýb* Û=ÌþÚ$ÉÿØ$ÇÿÖ#Äÿ–‹ÿa¼þP›wÿP›wÿP›wÿP›wÿP›wÿP›wÿP›wÿP›wÿP›wÿP›wÿP›wÿP›wÿ{T‚ÿž’ÿ•‰ÿ’†ÿŠ~ÿK%Jÿ]¢ÿ]¢ÿZž}ÿX‘ýš+ÿ’(ˆÿ†&}ÿj,dï:xác/^Ã20 E7  Ø:ÉþØ$ÇÿÖ#ÅÿÓ#Âÿ”K˜þWª‚þP›wÿP›wÿP›wÿP›wÿP›wÿP›wÿP›wÿP›wÿP›wÿP›wÿP›wÿP›wÿ_hrÿ¢"•ÿ’†ÿ„ÿ‡}ÿI#IþX™zýW†rý•U•ý¥1™ÿ“(ˆÿ'…ÿe!_ö   Õ9ÆþÖ#ÅÿÔ#ÃÿÑ"ÀÿŽ'‡þ[±‡þP›wÿP›wÿP›wÿP›wÿP›wÿP›wÿP›wÿP›wÿP›wÿP›wÿP›wÿP›wÿwTÿ¡!•ÿ„ÿÿ…zÿIEþ¤HŸý³<¨ÿ+’ÿ•)Šÿ‘(‡ÿ|%sÿ.,‡Ñ9ÃþÔ#ÃÿÑ#ÀÿÎ"¾ÿ£—ÿZŸþP›wÿP›wÿP›wÿP›wÿP›wÿP›wÿP›wÿP›wÿP›wÿP›wÿP›wÿK‘pþ‘Fþ–Šÿ‚ÿ‹€ÿƒxÿRMÿ¬2 ÿœ*ÿ—)Œÿ”(‰ÿ~%uÿJEÎ;¦0›ÏÑ$ÀÿÏ"¾ÿÌ!»ÿ¾ ®ÿig{þPœwÿP›wÿP›wÿP›wÿP›wÿP›wÿP›wÿP›wÿP›wÿP›wÿP›wÿFsaþ·7¬þ‚ÿ‹€ÿ‰}ÿulÿaZÿ£/—ÿ™)ŽÿŽ(„ÿp$hú52¶\L$ WQoÌ)¼ÿÍ"¼ÿÉ!¹ÿÆ!¶ÿ£–ÿX‰xþP›wÿP›wÿP›wÿP›wÿP›wÿP›wÿP›wÿP›wÿP›wÿG‹kþC™þ›Žÿ‹€ÿ‰~ÿ‡|ÿXQÿa[ãg%`ØVQÌ40“N9. Ä2¶ÿÊ!ºÿÇ!·ÿà ³ÿ¾¯ÿˆ8‡þS†sþO™uþP›wÿP›wÿP›wÿP›wÿP›wÿP›wÿE…fþuL{þ¬(ŸÿŒ€ÿ‰~ÿ‡|ÿvÿC>ï    u#mŸÄ$µÿÄ ´ÿÁ ±ÿ½®ÿ¶¨ÿœ*“þi]xþFˆhþHlþP›wÿK’pþC‚dþKgaþ§A¡þ¬(ŸÿŽƒÿŠÿ‡|ÿ…zÿ`Yÿ)& ©.žïÀ!°ÿ¾®ÿº«ÿ¶§ÿ²¤ÿ«!žÿ¤0šÿ”?þgEmþ“G’þ¦<Ÿþ¾3±ÿ›ÿƒÿŒ€ÿ‰~ÿ†{ÿsjÿE@ï  ?;_®+¡ÿº«ÿ·¨ÿ³¥ÿ¯¡ÿ«ÿ§šÿ¤—ÿŒÿ³(¦ÿ˜‹ÿ”ˆÿ‘…ÿ‚ÿ‹ÿˆ}ÿ~sÿKEÿ G  ;7_¢)—ÿ±£ÿ±¢ÿ­Ÿÿ©›ÿ¥—ÿ¡”ÿ…zÿ©$ÿ–‰ÿ’†ÿƒÿŒÿŠ~ÿvmÿNIÿ+(“K6 .+O‹%‚ÿªœÿ¦™ÿ¢•ÿŸ’ÿuÿ¡"”ÿ”ˆÿ‘…ÿŽ‚ÿˆ}ÿkbÿLFö  „]Q;- A<€{ rðŒÿ—‹ÿ—‹ÿwmÿ— ‹ÿ‚ÿ~tÿd]ÿOIô. +«  gUMI9  00ª$$²$º$(R€ü '€ü 'gorm-1.2.24/Images/GormWindow.tiff0000644000000000000000000002230213410616261015414 0ustar rootrootII*$ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿOÿ???ÿ???ÿ???ÿ???ÿ???ÿ???ÿ???ÿ???ÿ???ÿ???ÿ???ÿ???ÿ???ÿ???ÿ???ÿ???ÿ???ÿ???ÿ???ÿ???ÿ???ÿ???ÿ???ÿ???ÿ???ÿ???ÿ???ÿ???ÿ???ÿ???ÿ???ÿ???ÿ???ÿ???ÿ???ÿ???ÿ???ÿ???ÿ???ÿ???ÿ???ÿ???ÿ???ÿ+++ÿÿ…ÿ???ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ+++ÿÿ…Oÿ???ÿÿUUUÿ€€€ÿªªªÿUUUÿÿÿÿÿÿÿÿÿÿÿÿ888ÿÿÿ888ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ+++ÿªªªÿ+++ÿUUUÿÿ+++ÿÿ…Oÿ???ÿÿUUUÿ+++ÿªªªÿUUUÿÿÿÿÿÿÿÿÿÿÿUUUÿUUUÿUUUÿUUUÿªªªÿÿqqqÿUUUÿqqqÿUUUÿUUUÿUUUÿÿÿÿÿÿÿÿÿÿÿªªªÿªªªÿªªªÿUUUÿÿ+++ÿÿ…Oÿ???ÿÿªªªÿªªªÿªªªÿUUUÿÿÿÿÿÿÿÿÿÿÿUUUÿqqqÿUUUÿ888ÿÿUUUÿUUUÿÿqqqÿªªªÿÿqqqÿÿÿÿÿÿÿÿÿÿÿ+++ÿªªªÿ+++ÿUUUÿÿ+++ÿÿ…Oÿ???ÿÿUUUÿUUUÿUUUÿUUUÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ888ÿÿÿÿÿÿÿÿÿÿÿÿUUUÿUUUÿUUUÿUUUÿÿ+++ÿÿ…Oÿ???ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ+++ÿÿ…Oÿ+++ÿ+++ÿ+++ÿ+++ÿ+++ÿ+++ÿ+++ÿ+++ÿ+++ÿ+++ÿ+++ÿ+++ÿ+++ÿ+++ÿ+++ÿ+++ÿ+++ÿ+++ÿ+++ÿ+++ÿ+++ÿ+++ÿ+++ÿ+++ÿ+++ÿ+++ÿ+++ÿ+++ÿ+++ÿ+++ÿ+++ÿ+++ÿ+++ÿ+++ÿ+++ÿ+++ÿ+++ÿ+++ÿ+++ÿ+++ÿ+++ÿ+++ÿ+++ÿ+++ÿÿ…Oÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ…Oÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ…Oÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ…Oÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ…Oÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ…Oÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ…Oÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ…Oÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ…Oÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ…Oÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ…Oÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ…Oÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ…Oÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ…Oÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ…Oÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ…Oÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ…Oÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ…Oÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ…Oÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ…Oÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ…Oÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ…Oÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ…Oÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ…Oÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ…Oÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ…Oÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ…Oÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ…Oÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ…Oÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ…Oÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ…Oÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ…Oÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ…Oÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ…Oÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ…Oÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ…Oÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ…Oÿ ÿÿÿÿÿÿ ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ…OO…………………………………………………………………………………………………………………………OOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO 00ª$$²$º$(R€ü '€ü 'gorm-1.2.24/Images/GormPalette.tiff0000644000000000000000000002247013410616261015551 0ustar rootrootII*$LrŒ]†Lf–¯¤_‹£~-KZc‹¤Rj™² l›·åu¥¿þ€«Ãÿj™´è-CK"-<¿¿¿ÄÄÄMy…aŠ Qj™±¥q¡½çx§Àüˆ°Çÿ¶Êÿ‰°Æÿ’¶Êÿw¥¾þU}“˜NshRx—›U{›ÆYƒ¥æ%:J0ˆ•)ÒÒÒØØØÅÅÅ3DUd¦Qmš´¥p »ãy¨Âþ޵Ëÿ“¸Ìÿ‰±Çÿ†¯Æÿ´ÉÿŒ²Èÿ€«Âÿ‰°Åÿe”°ÿU{šÿa‡§ÿh«ÿX£þ:Ul`??,DSƒ‡ÏÏÏÍÍÍÀÀÀUtŠdަTn›µ¦t¥Àî~¬Åþ޵Ëÿ—»Ïÿ¦ÄÕÿ‰²Èÿ´Éÿ”¸Ìÿ„®Åÿq¡¼ÿnžºÿk¹ÿ‚«ÂÿpŸºÿhŒ¥ÿiªÿr”°ÿ^†¦ÿDfŽ+=O3AIƒ„„£££ÄÅÃÔÔÔDUfh¨SqŸ¹¦u¤¿ä~«Åý”¹Ïÿ›½Ñÿ޵Ëÿ|ªÃÿs£¿ÿ|©Âÿš¼Ïÿ‹²Èÿ‰±Çÿƒ­Äÿ¬Ãÿy¦¿ÿkœ¸ÿnž¹ÿ‚«Âÿa«ÿTz™ÿe‹©ÿf‹ªÿLoŒ° **U,?N%3<T[_¬¬ªÑÓÑÝÝÝ"3Ns‹*c‹£_qŸ¸«v¦Àí…±Êÿ“¹Ïÿ›¾Òÿ”¹Ïÿ}ªÄÿt¤Àÿu¥Àÿt¤¿ÿs£¾ÿq¡½ÿ–ºÍÿ…¯Åÿ‚¬ÄÿŒ²Èÿ‡®Åÿƒ¬Ãÿu£¼ÿt¢»ÿ…­ÂÿjšµÿU}šÿ]…¥ÿl®ÿQw–Õ $$H1AZ0HXVbk·¯±®ÃÇÇj‘ª³oœ¸Üw¦Àñ€®Çþ–»ÐÿžÁÔÿ’¹Îÿ€­Æÿx¨Âÿw¦Áÿv¦Áÿu¥Àÿu¤¿ÿt£¿ÿr£¾ÿq¢½ÿ¬Äÿ”¸Ìÿ’¶ËÿŒ²Çÿ…®Äÿ‹±Æÿ{¦¿ÿr ºÿož¸ÿ|¦¾ÿ]‹§ÿU|œÿr•°ÿS{›é 4A'8^qHnˆ]jVZhQer^S`Ln{g]oE}”L” `•˜U}`g{Xš”`zgaeDptO@J(BTDQ\LRfMX_@jeEchH€ƒVrnAVY.HM7ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿœ ‰´¸§ÅËËÂËÒµÃÄ¿ÏÏÀÏÔÄÑÚÓÜãÛàæÛÝØäæÎÎЫÁÄ‹´·r®´j­µl¦­g»¼z¼½{´ºt©³l°Àyš®i‘§f‘©k”­sŸ³€›«‡˜¦•£Œ‰–|esRo}ZcqPjTUp;‚¡^p‹Vƒ‘w…iŒRŒœU‡žPTb?^n?t„Ey‡Jr{P|‚\SZ1‡‹pJQ?t‚^~^DT/ZhQN\Chv]ZhQ^lS[l@„›UŠ–X’•Rw‡ZcwR§ lzs`uvVjoGCM+EWGHSCQdNIP1mhJglL‘”i~zMuxMTYCÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ”˜Š®´ªÐÕÛÌÒÞØãåÕáßÒÜÞÝäêó÷úàäåéêâÔÔ¸ÛÛµÑÒ™¬­kµ¸q°¶p°µr°³p²µp¬´kª¶n¨¸q£·rŸ¶rœ´v¦n¬…§´˜²¿««¸¦“¡ˆv…dt†`p‚Zh}V`zMŒ¬kz™]Š£y°Â˜•Z•UuRNcBbxI|Q˜ªlš¦vxSš¡n‚Z{^‡•dŒ eWhoG{‰X…Z®¬s’›perG±§lsmKvtK‚X]e@PcM_hUDV@GK2‡€cX[>”‘nXR2ŸxOT>ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿƒ‰}»À¹ÏÔÚÙàæèòêíòëïñîîéí÷îïåäàèèÜÌ˯èå¾»ˆ°¯o°±m²µn¦¬fÀÇ­·p—£[¥µj¦ºr¢·rœ±n¡¹{™®v¤¯…ÄЬµÂ¤š©Œƒ–xc{Wx“f«y†–g™§tuŠO˜_p†X|Œ_“ k‹™d}_uˆhhxQt‚O{‡Uq~So|Qv€Lšœj`_1p|NvˆXZiLHTHN[JCQ7SbCwˆ\ŒždlyD–¡e••Y{…ShtBÊÁ†urI•’gwuN[a?PbJ]ePFUBEG/‹‚cWX9šyYR6«­ˆY^Hÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ›£ŽÌÓÃÚàÜåîé• ÁʹòõìôóñöððýþøêìÞÛÛÁ××µ¹·‡··y³¶qµ»q¯·n¯ºuºÇ‚ °iª»t±j“¨g—«l™®s–«s¬º…™©z˜©|Žh}’qpˆdv‘fv”b’ªl“¬jfƒC_zGdyPz‡\›¨r›ªo–«pª¸”^eCw~UrzSp~[WhDl{P{Q“•f„b|Ž^^mNXdX[hV]kQkz[t…[‚”V—¨aš­^œž]Œ–bo{K¯©wŠŠh~{ZЇh`eGkzc~‚qHUDbdL–ŽjghF™•pYR5¡£|SXBÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ£«”ßæÔ×ÞÖñûò¦´±»£íöåôõïðïêûþóêîÝÚÝÀÌÍ«²±µ¶z³¸uºÂy¨²k¯¼w«ºw©ºv©ºtª½{”¨i›¯rŸ´|®Â¦·“¥s—ª}‚”l–ukƒal‡^{™g}›_€ž`Xv@b}TxˆknxU™¥u–¤oƒšb„’n|‚`lpMjpLhuWZmMoWmsC¦¦t~ŠXp‚Nk{W]jXSaHQ`A[jIbsI{ŽNš°^›±^‘–Vƒ_]j?d_5JJ0KG.PL1:<$S`L…t\hZddL•ŒeiiC®ª„OI)–˜qIN8ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ‘–ª²˜‹©´£•¦„—¨„­¼ÍÙÅøÿíÑÞÄÝèÈæîÉÒÙ°º¾Œ·¼„¸À„°º{²¾€ªº|¥·y§¹{£¶vŸ³v¢jœ¯x”¨w˜«}›±ƒœ±†‘§€Œ¢~¤‰}‘vxl…Ÿpg„XYuMZrPfrZut_ukPoiEfd>iqJr€_hoN£¨ˆlsRgvWcyUy‹[‚†K«©n‹WŠœhbrMjxaP^DP_BXgJXgFoM‘¦aŒ¦]GN">K-=J0UQ6glVddLWR>ED2CP?RVGQ[PƒhŸ–kkl@½¹Œfa;¥§[`Jÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ}€mz~o•Ц³Ÿ—¬ƒœ³…žµ‰š®‹§¶•®À–¥¶‰³Á¼È˜ÁÉ–«´²»†§´¢°{ž¯x‘¥j®Â‡š®sš®s”¦r˜ªx”§z‰žw¦½ ‰¡‡ž§‚•‚¯Â®­Â¡‰Ÿq†›t{Œh_iG‚|X”~U°a¥†XwN€qPR]=|ŠignOž§ˆevTg~R‹œe‰†?È¿||„S{Œb}ŒoZgVFSAKXFYfUVcRVeHp…\cO@G54?78E;BA-¢­syS¦¡ŽTRFUaUJL?C/€†`±³QTC@E/GL5?HCT]J ¢ŠppL®¡~VM&¥¨}TbAÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿu€pÓÞÎÜçÖðøãþÿïþÿîô÷äóöåúþïúÿòîôæî÷äßèÓËØ¾”¤‡•¨ˆ”¨…–©‹£²›½Ë¼ ´›–©“¹Ëµ×åËìöÝôùåùùßõõÓð÷ÕþÿâÑÒ³âáÅþÿæöÿãñõÜÿÿæïòÓìçÊž’xöìѾºŸ¨«éëÓôóßñëÛûúæïï×úøß×Òµ¯°fmCol7Å»ŠŽ’{tye³´¤Ô×Ì~…s²¯ž«¤”¹´ž…Œc¹Áš†‹wjn`bfWfl^BN:@O8;E:lti¢¤–a]B‹g’ƒn“ˆv¤ž„ÊΩKTCtwXlkVÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ˜—¢ª¬¾ÅÍÄÏÕÃÒÕÃÐÖÑÚáÒÍÊÆ´ êëïÑÜîÊÔíÁÍå»ÇáÛçýÙàðËÐÖåæàµ¯¡àØÃÉÁªǪ̂ÝÖ ÖÑÕΆáÙ‘ÞÔŒæßÑÌŠ¶¨k²wÕÑ¡—–hÕÑ”ÂÅ~ŽˆV–\ÄÈs××s¸ªQ­Sž}^‘u]–ŒiþùÛÊñˆjÊÇšÓÔ¦¥oycxq^ߨ®ÚÍ Ê“¼¼ŠÌÇéÖœçÊŽÝÁ‚Ò¾ÜÖœ´»ˆ‚ŠcW`ET\EFM;Y^JDL7CPK9CK4ÍÉšÍÅ–’m›¡{‹r’™•¢‘¤±•hrW¸ÀwÍËtÉÁ€ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ›±¤ÃÖÐÂÍáÅÌéÄÍÞÊÒÕÒÔÓÎĺ£ŠtϾ¬ÈÇ­¼µ«½¯É×´ƒY‡|\ÎΪÅÐ¥§´†Ì×›ÉÍ’¾¶ÛΫÓΔÑÑ‘ÂÆ”y†€p±®­¦r¨¥n–¨n´ËƒÒÛ€××}õ²ÉëÉÁšÞÓøãÄèÑ¿ÚÆ­Ñ›åß‹ÖÒqçߌØÌ‚¼¬qçיȿr¿¹eÛÓ~ÞÑqïå†ãßsÇÇKÖÑ\ãÜtÑËiÞØŠ‚€W‡|nrc›ž‹ƒˆt=H7AR@GVA@J2²®±«{’Žq™ž~›‡Œ˜–•£’œ«ŽcnPÈÑŽÅÈqÄÁ|ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿœ­£ÀÏÊËÓàÍÒæÓÚìØÞìÐÒÞîåà͹ž«’|¼³¬ÇÑÉãñàÍÓ­À±ˆÕ½¡óêÍÃÊ ÉÔœÈÎŽôï¸Â°ŒÚÃ¡Í¿Ž¬£l¹·†¢Ÿ€ŒzlÊÁ Ý×™ÓÓ¡µpž³n™¢S¦«[¾¿{Ä‘ìãÜèáÅÙÒ›óäÃøãÐäеñ‹ÝÕ€ß×uØË}žŒNŸ‡c—Pïã‘ÙÐsÛÕÛÒ‡{p2Ý׃áßpÜØmÏÆgËÂg±§`’ŠfŒ•‚w~lˆx|…tITDDS@CR;M[AÕÖ®Á¿˜y{e€‡u™£šŠŒ‰–Œw„pwƒox„\Š“TÇÊ›ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿœ—ÀÁ»ÊËÅÓØÒßçêÍÓãÊËßáÖÒÉ´‡È¨y´ ‡óõßþÿèçã³²–d½—rúä½éè²ÈÎ’½½‰âصïÝÅÀª’ôáÁÛͪº²•iŠj‹…c žmƒ„JŽœa’ cÎЇÁÂvÃÄ€ÏÍÿúþêâËÚÖ™óêÃæÖ¿áвϻ–ß×ráÜfÛÓ€£—[˜†pˆyRàÙäÞpº³Y‹€J‰z[•ŒUÙÔ€ÍËvÝ܉âä‘ßÞ›’Ži—š}‚‡q‘—‰¡§›=A3aeTT\E?L2GL.Z]B[`LŠ“€šŠƒ…zˆwyˆs|‰wo{m„Špqsfÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ«£–¹³£¯­”ª°–ÌØÎäîúÑ×çäØÌɪsÀ˜]˱ŒÿÿãÿÿáäÖ§³_»‘iþæºÏÍ’ÀƒÎ͟»ŸüíÖ° ‰ìÛÇͽ¦°¥‡‰\®¢Š‹‡j¢¢lÖÙ’ÉÖ~ÉÏuÛ×~ÆÁo¶·sÛÚªûóððéÏÜØ›òéÀÝÏµÕÆ©ÑÁ ÛÒwØÕdêæÑÌŒ­¢Ž‚y\ÔІáÚ‚º¯o¶¨y¸¦Ž’„]®©g‰ŠF—ŸV¶Àw›¦d†Še~{\ˆŠt›¡“Š‚EF8€jjnWS_IRZE`hQXaLNX@t‚_pW€‘gk{Vuƒl\eF^aXÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿw{Z£©‡¤«‰ª´œÅÔÑÍáèÊßàçãÊØ­zÖ¨w¹›wÿÿßÿûÛÕÛ´—o¯‘kñç¶ÉÏ“´µ{âÝ³èØ¾ó߯½¤Ž÷ßÓéÑÅ´¤‹­£€‰„q‰„^ÉÄ‚½¸gãÝ{ÕÐhÕÑn½º]¶»{ÎÕ¢ëêÌîåÈÎÖòå»ï߯ßнάðèŸÞÛtãä|íí“­©y¯«~ÛÚ‡êç†ôì¡ÖÏÆ»ƒ”ˆ`”aŸj‘T…‹M‰X†Šs––~lt\¤­šƒŒy9?%„Šf~‡jT_Y\h\bm]OZLakbITD–¢z~ŒOky©²yºÃ„´½|ƒ[uSš¥{ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ›Ÿ„ãéÍßèÍ £„ÐÏ£²º~®ºxËÔ‘ÛÕ›ÍÈÎÐÃʆ¼Ã}¼ÂzÐуÓÒÝÝ“ÒÔ¢onRwsh€{hˆ†UÖ׉ÙÖ…ÞÚ¯¦k®£v¥ ‚ÓÐõò¥æâ‰ìçƒçã€×ÔwÈÆoʾhοlÌÁqÛ×~ÄÈgËÍzÚÖ—âÞŸÜÖŠ¡ j“’t‡…n}dvq]zt“„„b£¢t~I|v\ˆ‚€l€ƒXˆGz…AŒ•j‰ŒŒz„ŒtU^MT[STVUabZcjXZfXXdXO[MM[DUaKfo^U^A‚‹^}‡Sx‚Ni{K]rIu‰dÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ„[±¸Ž¯¸¥©w¾¿ƒ·¿t±¼nºÄ{ÂÁÊÒ‰»ÈvÐÝÊÕ‡·¼zËËØØš½À‹ccApkW|uoi`[„~Zãà™ÒÒzèèßâ•Ô× XWCiiE·¶}ããÈÆsÕÓ~ÖÔ‡ÃÀ{ÍË×Õ‹ÛÜš»À}‘UŒ•^inNwz]‹h—ž}pwgŽ‘€™†s”–ˆŒ†‰’}Š”r˜›nxsS’wšš€’—y“z|ˆdt‚a™¢ƒ…o‚ˆn[bPRXNjlipsjgo`UcT]i_amaS^MXcRQ\NKVFgqX[hL\iMTkAdyZ`tYÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ‚ˆX¶¾¦­y¬±w­²pº½vº¼sÎΆÇÇÔ×ÏÓ‡ÆÉ‚ÅLj­©„vq[geP{xe|{ijiUru`x|n„‡vÐÓžæë×ß|äë§_eIZgMn|Xbs=ÂÑ–¤´sy‡Ian9bn@n~QSd8csOWfIZkIH]4e|NczLr‰]o†RyX€”c€“ewŠ]‘gzŒb}exˆa|Šg“ž~©´”¸Ã¥{†hƒrmw\gqXnx]‹—s‡kRWCgi\^aZ\c\Ze_O^YWg]Zj_XfU[fUMUFV_NR`I^mPezQ_tMWaHhpYÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ‰…`³¯‰§¦v´¶w¸»t¿ÃvÅÉ|ÎÒ…ÇË~ÕÚŠÚßÕØ•ÁÁ‹¿¾ zxinl_kka_^Yyvo{{qˆ‰„hjgDH/·¿„ÈÑ’ÖÙ¬jk]ZeaUaSXgJ„”pl{TcqM]jNjv`kzYk{WgvYx†mgw\wŒek‚TaxJk‚Vn…Wh~Op†WxasŠ\t‹]qˆZ{’do„Yn‚]WjJo‚boƒ`YmHcwRZnIg{Vr‡`u‡_m|[S]E]fSu{oeofcnfcsi\lbWg\VdSZeTFN?ludWeNapSi~U\qHjtYhpXÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ‘g°­‚¶µ}²´kÒÕ„ÐÒÍÎ~ËÌ€ÉÉÊÌxËÎ}ÊÌÂÄ’¬°mqXY_E\aKim_„ƒ~ywk]]Qab\ouidoOpzW€ƒf]]QYf]VdSRbEl}[l~Vp]m}`l{diw]M[A4A-?L:hw`p„_e|PjSm„X_xN[tJk…Xj„Wh‚SeOl†VZtDj…Xd€X^zT^zTnŠbe‚VbQg„TmŠZp]q]j€Y_oRO]Fp{kkvh`l``mcfvl[k`YgV[fUW_PXaPM[DapSwŒce|RfsUs}bÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿŒd¨«|µ¹|º¾qÉÍvÎÍzÎÍ{ÑÎÉÂzÕÕÐÓ„ÈÌ‘ËÏœyYRY7MW4Wa?ejTz}rghVa_Hmk\_cU_iPny[„ˆmSVEXfUScI^oKuŠayanƒZfzWj}aK[A?M6:G69E7z‰ts‡df}Qf}OWnB\uM`zSi„Yi„Wf‚RnŠYlˆUePt`_{R]yQa}Ta~R[xJ]zLe‚Rm‹Yh†Th…Ug‚WTgGFVdtW~m€”op…dUlO2I/-<'CP@O:;I24A0evR`sFdwIr†Sr…W†—s†–{Œž†ˆ ~˜qd}VsŒen‡]™lqŒ_b}Pydz†b~„hdiU^`SuxqhohgrlSb]brh[k`WeTT_NDL=U^MJXAapSsˆ_v“]_uG{cÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿm‡lgfj}gVbT€…š›Ÿ‘• ¡¦ ¤¥Ÿ˜Ÿªª¬– —Š•‡Ÿ¤™Ž|—‚o§“{¥’t¢‡i¤‰k ˆl®–~Ç±š¸©”¬¦\fMŸ‡¯¶¤¸Âª¡«’s}bs€dAN4`nWp}kv‰mj}_M`DCV:8K/_oRJZ=^nQYiLZiHƒ“oy“£~‘¡|“£q€Žtž®“ˆ˜{œ°‹„šs„œzPhH~’m™«…p{[w}c˜—‚‰ˆtZ[KSUG=@5gnf\g_Zj`bpaZfX^j`OZR=I?O\HKY?VdJr€fg}VTf@aoKÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿqt8T;AVEŒ†„ˆ‰˜™Ž’†‹ŽŒ•”£™¡¤Ÿ£ ¥Ÿ™ž—–’†©“…œ}i¥‹p§q£…i¯‘u‘v[¨Žwʱ°¡Œ š„TaGk‚f|Šsiw]v…ft‚a~ŒkFS5q~dq}g[mSL`DEY=FZ>QdH`pUzˆn–¤Š“¡‡Ÿ®ª¸—›©ˆž­Œœ«Œ©¸›”£†‚v›œ‚ž®Š¢{…š{ŠžƒŒ{Œšw‡qvxc{xe{zfOP@EG9BHAN<S`F|’ndtP[iFÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ˜›’ÙÜÑöúììîáÿÿøôöõåé츿Ŋ“œ¦¨´˜Ÿ§†œ¥ Œƒ›…x˜tfkU¤k›|htaˆr]ydO´ŸŠª›„¤ƒŒ“tx‹kr‡f™®©¿›Œ {p„_h|Ym€`[nPcw[bvZ_sWs‡kwŠn‰™~Žœ‚‰—}’ †£¬¥«›¡…𣆖Ÿ„‘™¥Ž®¶ŸbgShkZ‡Šu…Žs€ŠohuYv„a}‹gdpJ‘›yknSkoVŠyswf^fYeof^ieXdbZaZ[bZRZOX`UW_TT\QFO>LUB`jOkZhxTiwTÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ ™“êæÝÐοÜÝËÑÕÇ ¤£†‰‡™š£u˜¤¢~‡‘¡–†Œ€Š‚u’qʵ¤·¥‘¬›‰Æ¹¦´®–»³œ°¨‘ œ™™}bpOYoKc{Y_wSVnJOgCo‡c_wSXpLm…cnƒdme`tXq…iZmQp€em{azˆnbpVs^„’nk~Œhƒ‘n™§†‚qƒrnx_KPMU=NVAfn_oypkvpXc_X_X`e^]cUbiYY_SPVLV]MgoZu~_eyTTd@XfCÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ}wa«¥££Ÿ£~Š“t“žssw„}u‚y|ˆzfwg[p]_vbdwcozi“‚…ˆw–™†šœ†’–}fpU{…jƒŒo{„gy„fbuUl†cSkGVnL`xXShIUjKYnO_tSWlKZoPXlPWkORfJTgKWgLn|bsgTbHbwN_tIq†[r‰]i€VPf?_uNg}WbsSNZBU\J`hQS\A]hHP_>^nJg|SgyOitROZ:]gLMW>IU?MXGS_QUaUQ\NS^N\hTXdNKWCGRAbnXlv[coKAW0]mISa>ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿŒgÐ̦ÌΟÄÌ™ÄѦx†lXeQYgVUdQ`mYgyc]s\]u]f~fm€jvƒqbo]nzdv~ferVhx[y‰l`mQhuYetWXmNd}]DY8QfGbvZN`FOaGTgKTgIXkKNcDOcGQeIMaEXkO`pUesYhv\]kQe|R[rFWnB[uH[tJ]vN`yQ^wPYoK\lQ^jToyabmOZeEm|[r`TiBsˆ_uƒ`ftSraq~`WdJJV@LXD[fU]iUWdPVdMDR9Q_HHV?^mPhvU]lCPf?gwSP^;ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ„O¾Ã‹´¾¸È‰i}JSfFRdJXhNTcBRaDO_DPdHSjM\uXa{`e}cau\dw[kz[k|Zc{YUmMfv[`nT^lSTfNI`DVfIXhNKZEETAN]JTcNK[AZjMK_CWkOThL`tXM`DXhMZhNVdJ_mSNb=bvQh|WdzTl‚^UjIdyX^sT]rSl„bJaDHZ@SbATb?UdGhx[^qQh~WizVfvRQa=ZjFN^:jxUn|[iwV[lJgzZZmOM`DYlNk\cxO\nD_rDOe>Rb>Sa>ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ‚‰UËÔ«¹|dw?Ri?McNI[M]kZQ`CIVbrXThLI_9\pK]nJ[mGUe@YiBfuLyˆ]ixM[pEb{QayUZqTVnJ[uH[vC]uC[sAJc;csO\jGÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ}‰cq}WapGl|UarNViKJ]?cvXOc@`tQObB\lRYgNbpVWhFfxRcxQXnHA[6SmHNg@J[9N\BWcOLXDLX@eqM¥¥iº·„¨¦}¥¤…ci]P]L]nLarPLYEbm\Q]GQ_ESbEdsVl|afv\_oUjl_–r¬£|—j”wwu\qqW‚oAW3UnNUnQSgNK]CP`EFV9UfFO`>XjDOeAeyVVfLQ`I\mI`uLTmF]xMH^7Pf?YoILb>`vPYoHNe;bwNNc:L]9XhDdtPÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ”}z~g|jejSqyaZdKS]DisZVcIdqU[eMOUG`dV`bT_dM[dGVcEo}cSaJYeMY_EQP;LHbiJTX=Z[KZXL]`EjpL]hH_mIly[[eLXbIS]D`jQZdKYcJfpW]gN_bEgfHrqSÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþ`HÚQ GàQ(R>R@FRNRVR(/misc/applications/gnustep/cvs/dev-apps/Gorm/Images/Sunday_seurat.tiffCreated with The GIMPHH HHgorm-1.2.24/Images/GormEVLine.tiff0000644000000000000000000001002013410616261015261 0ustar rootrootII*àÿÿPPPÿÿPPPÿÿPPPÿÿPPPÿÿPPPÿÿPPPÿÿPPPÿÿPPPÿÿPPPÿÿPPPÿÿPPPÿÿPPPPPPÿÿPPPPPPÿÿPPPÿÿÿÿÿÿPPPPPPÿÿPPPPPPPPPÿÿPPPPPPPPPPPPÿÿPPPÿÿPPPÿÿPPPÿÿPPPÿÿPPPPPPÿÿPPPÿÿÿÿÿÿÿÿPPPÿÿPPPÿÿPPPÿÿPPPÿÿPPPÿÿPPPÿÿPPPPPPÿÿPPPÿÿÿÿÿÿÿÿPPPÿÿPPPÿÿPPPÿÿPPPÿÿPPPPPPÿÿPPPÿÿPPPÿÿPPPÿÿPPPÿÿPPPÿÿPPPþ2² Eº@Ø(R/home/heron/Development/gnustep/dev-apps/gorm/Images/GormEVLine.tiffHHgorm-1.2.24/Images/iconCenter_nib.tiff0000644000000000000000000000435413410616261016250 0ustar rootrootII*˜  ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿDDD`ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþv H~Æ@Üä(R/misc/applications/gnustep/cvs/dev-apps/Gorm/Images/iconCenter_nib.tiffCreated with The GIMPHHgorm-1.2.24/Images/GormAction.tiff0000644000000000000000000000171213410616261015364 0ustar rootrootII*¬$ºººòØØØÿèèèÿåååÿÕÕÕÿË0006···×ÐÐÐÿÀÀÀÿ±±±ÿ³³³ÿÃÃÃÿËËËÿ{{{¸$0006®®®Î»»»ÿÿÿÿÿÿªªªÿÿTTT¹ $­­­×ÉÉÉÿÿªªªÿªªªÿÿªªªÿªªªÿÿ¨¨¨ÿZZZÿYYYË'''0ÔÔÔÿ¼¼¼ÿÿªªªÿªªªÿÿªªªÿªªªÿÿªªªÿ{{{ÿ999þ+++0ÙÙÙÿ°°°ÿÿÿÿÿÿÿÿªªªÿ˜˜˜ÿþ)))0ÉÉÉþ©©©ÿÿªªªÿªªªÿÿªªªÿªªªÿÿªªªÿÿþ0   þ¤¤¤ÿÿªªªÿªªªÿÿªªªÿªªªÿÿªªªÿgggÿþ-ˆˆˆõ•••ÿªªªÿÿÿÿÿÿªªªÿ§§§ÿGGGþDDDÿHiiiã™™™ÿ©©©ÿªªªÿªªªÿªªªÿªªªÿ£££ÿ___þ!!!þRRRËPVVVâmmmÿŒŒŒÿ¡¡¡ÿžžžÿ†††ÿSSSþ&&&þ777¹ GPPPõ;;;þ:::þ777þ***þ555þ>>>¹ $-0000 0 þ  Š ’¤@¤ºÂ(Rgorm_Action.tiffCreated with The GIMPHHgorm-1.2.24/Images/FileIcon_gmodel.tiff0000755000000000000000000002247413410616261016354 0ustar rootrootII*$LrŒ]†Lf–¯¤_‹£~-KZc‹¤Rj™² l›·åu¥¿þ€«Ãÿj™´è-CK"-<My…aŠ Qj™±¥q¡½çx§Àüˆ°Çÿ¶Êÿ‰°Æÿ’¶Êÿw¥¾þU}“˜NshRx—›U{›ÆYƒ¥æ%:J0ˆ•)3DUd¦Qmš´¥p »ãy¨Âþ޵Ëÿ“¸Ìÿ‰±Çÿ†¯Æÿ´ÉÿŒ²Èÿ€«Âÿ‰°Åÿe”°ÿU{šÿa‡§ÿh«ÿX£þ:Ul`??UtŠdަTn›µ¦t¥Àî~¬Åþ޵Ëÿ—»Ïÿ¦ÄÕÿ‰²Èÿ´Éÿ”¸Ìÿ„®Åÿq¡¼ÿnžºÿk¹ÿ‚«ÂÿpŸºÿhŒ¥ÿiªÿr”°ÿ^†¦ÿDfŽDUfh¨SqŸ¹¦u¤¿ä~«Åý”¹Ïÿ›½Ñÿ޵Ëÿ|ªÃÿs£¿ÿ|©Âÿš¼Ïÿ‹²Èÿ‰±Çÿƒ­Äÿ¬Ãÿy¦¿ÿkœ¸ÿnž¹ÿ‚«Âÿa«ÿTz™ÿe‹©ÿf‹ªÿLoŒ° **U"3Ns‹*c‹£_qŸ¸«v¦Àí…±Êÿ“¹Ïÿ›¾Òÿ”¹Ïÿ}ªÄÿt¤Àÿu¥Àÿt¤¿ÿs£¾ÿq¡½ÿ–ºÍÿ…¯Åÿ‚¬ÄÿŒ²Èÿ‡®Åÿƒ¬Ãÿu£¼ÿt¢»ÿ…­ÂÿjšµÿU}šÿ]…¥ÿl®ÿQw–Õ $$HVbk·j‘ª³oœ¸Üw¦Àñ€®Çþ–»ÐÿžÁÔÿ’¹Îÿ€­Æÿx¨Âÿw¦Áÿv¦Áÿu¥Àÿu¤¿ÿt£¿ÿr£¾ÿq¢½ÿ¬Äÿ”¸Ìÿ’¶ËÿŒ²Çÿ…®Äÿ‹±Æÿ{¦¿ÿr ºÿož¸ÿ|¦¾ÿ]‹§ÿU|œÿr•°ÿS{›é 4A'8^qHnˆ`sÿ_‘¬ÿg•¯ÿoš²ÿYŒ©þ9Znf[~–¡ˆ³Ëÿ“ºÏÿd‰žÿÿÕÝàÿó÷ùÿÿÿJKLÿîóöÿ355ÿ=?@ÿ°µ¸ÿÿW^bÿ]nxÿÿkœ·ÿ);FÿÿW•ÿ/EQÿ ÿ*>Iÿ#ÿY‚˜ÿ+:Bÿ#&ÿ#5@ÿ#*ÿUq€ÿÿLs‰ÿ^‰¡ÿÿ`†œÿ_¬ÿZ©ÿ]Žªÿh–¯ÿO~˜É Fdzpx§Âÿ¡ÃÕÿ[~’ÿÿÚâæÿñõøÿÖÚÝÿ,--ÿvxzÿëðôÿ ÿ­²µÿ²»Àÿÿw¡¹ÿF`nÿÿkœ·ÿ ÿCctÿkœ·ÿCbsÿ ÿ ÿDctÿkœ·ÿ/>Gÿ=HNÿÿÿÿÿYzŒÿSqÿ ÿf•¯ÿk˜±ÿk˜±ÿe“®ÿi–¯ÿV‰¥ù9]nL5ObCl˜³þ—¼Ñÿ{£ºÿÿ[`cÿÍÑÓÿ§«­ÿ ÿ £¥ÿÅÉÌÿÿÙàãÿ‹’ÿ ÿ}©Ãÿ.?Hÿ,=Fÿkœ·ÿ ÿ2IVÿV~”ÿÿ'8Bÿÿ7P^ÿQv‹ÿ ÿWitÿ ÿ0JYÿV~•ÿ\|Žÿy¢¸ÿ9P\ÿ*0ÿvŸ¶ÿe•®ÿYŒ¨ÿVЧÿ]Žªÿb’¬ÿLz“·3H^#]„ ñ†±Éÿ–»ÑÿYzŒÿ !ÿÿ !ÿprtÿàåéÿ–šœÿ ÿçîòÿ^acÿAJOÿ{¨Âÿ!ÿE_oÿoŸ¹ÿDctÿ ÿÿ&8Bÿe”­ÿ.CNÿÿÿÿ}’Ÿÿ<\mÿ ÿ ÿ>S_ÿuŸ¶ÿ#08ÿ2GRÿj—°ÿYŒ©ÿW‹§ÿVЧÿU‰¦ÿh•®ÿU‡¤ù1L]9$6HPt‘Úx¦Àÿ ÂÔÿ}«Åÿ©ÇØÿñõøÿîó÷ÿíòöÿëñõÿéðôÿçîòÿåíñÿãëïÿÒàèÿ|¨Áÿx¦Àÿs¢¼ÿq »ÿl·ÿkœ·ÿkœ·ÿkœ·ÿkœ·ÿkœ·ÿa¦ÿjšµÿkœ·ÿ¡½Íÿ`’¯ÿ_’®ÿ]­ÿj˜²ÿrµÿw ·ÿa‘­ÿX‹¨ÿX‹¨ÿWЧÿV‰¦ÿTˆ¥ÿ`ªÿ_ªÿIv¤Nr·j•°ÿ™¾Òÿƒ¯Èÿ„¯ÈÿäíòÿíòöÿëñõÿêðôÿèîóÿåíñÿãìðÿáêîÿÞçíÿµÊÿv¤½ÿq »ÿoŸ¹ÿl·ÿkœ·ÿkœ·ÿkœ·ÿkœ·ÿkœ·ÿkœ·ÿkœ·ÿ¡½Íÿ`’¯ÿ`’¯ÿ`’¯ÿ]­ÿ]¬ÿsžµÿf•¯ÿZ©ÿX‹¨ÿWЧÿVЦÿ\Ž©ÿh•®ÿc‘¬ÿTˆ¤ýL|•Ó+4Mr‘]„¡ÿ®Çÿš¾Òÿ|ªÄÿ³ÍÝÿìòöÿêðôÿéîóÿæíòÿäìðÿâëïÿßéîÿÝçìÿ¯É×ÿq »ÿoŸ¹ÿm¸ÿlœ·ÿkœ·ÿkœ·ÿkœ·ÿkœ·ÿkœ·ÿkœ·ÿkœ·ÿ¡½Íÿ`’¯ÿ`’¯ÿ`’¯ÿ`’¯ÿ[Ž«ÿo›³ÿ\ŽªÿX‹¨ÿX‹¨ÿe“­ÿi–¯ÿaªÿUˆ¥ÿLy“þ3Pc§5 Ik†hYžþz¥¿ÿžÀÔÿ{©Ãÿ€­ÆÿÓâêÿéïôÿçíòÿåìñÿâêïÿàéîÿÝçíÿÛåëÿÊÛãÿx¦¿ÿmž¸ÿlœ·ÿkœ·ÿkœ·ÿkœ·ÿkœ·ÿkœ·ÿkœ·ÿkœ·ÿ¡½Íÿ`’¯ÿ`’¯ÿ`’¯ÿ`’¯ÿ`’¯ÿhš¶ÿhš¶ÿt¢»ÿi–¯ÿk—°ÿ\Ž©ÿS„ ÿKtÿKkƒÿZy“þ8UjzA`wBX€ úyŸ·ÿ‘·Íÿ…°Èÿz©ÂÿµËÿÝèïÿåíòÿãëðÿáéïÿÞçíÿÜåìÿÚäêÿÇØáÿ}©Àÿl·ÿkœ·ÿkœ·ÿkœ·ÿkœ·ÿkœ·ÿ\‡ ÿkœ·ÿ¡½Íÿ¡½Íÿ`’¯ÿ`’¯ÿ`’¯ÿhš¶ÿhš¶ÿt¢»ÿt¢»ÿk™³ÿk™³ÿQÿFm†ÿEgÿVx”ÿjŒ©ÿt–²ÿHkˆ¡)9JW€¡ñq“«ÿ~¬Åÿ•ºÏÿx§Âÿx§ÁÿŒ´ÊÿÕãêÿáêïÿÞèîÿÔàèÿ³ËÙÿбÇÿmž¸ÿlœ·ÿkœ·ÿkœ·ÿkœ·ÿkœ·ÿkœ·ÿkœ·ÿ„¦ºÿ¡½Íÿ`’¯ÿ`’¯ÿ`’¯ÿhš¶ÿhš¶ÿt¢»ÿt¢»ÿk™³ÿk™³ÿ_w†ÿWvŒÌ^z‘ÿm¦ÿr”¯ÿk­ÿ`‡§ÿV~ ûKnо SzšÜn©ÿqŸºÿ›¾Ñÿv¥Áÿw¦Áÿv¦Àÿƒ®Åÿ¾ÔàÿÙäëÿ¤ÂÓÿv¤½ÿm¸ÿlœ·ÿkœ·ÿkœ·ÿkœ·ÿkœ·ÿkœ·ÿ}¦½ÿ§ÀÏÿºÊÿe‘¬ÿkœ·ÿhš¶ÿhš¶ÿt¢»ÿt¢»ÿk™³ÿk™³ÿ_w†ÿ_w†ÿ_w†ÿ_w†ÿW€¡úQx˜íJoŠÓA`y®7Pf‰%7G`#,9Pv•·p’®ÿdŽªÿ‹³Êÿƒ®Æÿv¥Àÿu¥Àÿt¤¿ÿt¤¾ÿ“·Ìÿ¿ÓßÿÊÚãÿ²ÊØÿš»Íÿ³ÇÿŒ±Æÿ³ÇÿŸ½Íÿ±ÈÔÿ©ÂÐÿ{¥¼ÿb”°ÿa’®ÿh”­ÿc‡ÿt¢»ÿk™³ÿk™³ÿ_w†ÿ_w†ÿ_w†ÿKp‹hŽ«ÿbˆ£ÿv¥Àÿ–ºÎÿt£¿ÿt¤¾ÿs£¾ÿr¢½ÿq¡¼ÿq¡¼ÿ~©Áÿ’µÉÿ¤ÁÑÿªÄÓÿ§ÂÑÿœ»Ìÿˆ®ÃÿrŸ¸ÿe—³ÿe–²ÿrž·ÿy¢¹ÿk™³ÿk™³ÿk™³ÿHh„b^†¦ÿk¨ÿmšµÿ“¸Íÿu¤¿ÿs¢¾ÿq¡½ÿq¡¼ÿp »ÿo ºÿmŸ¹ÿl¸ÿjœ·ÿiš¶ÿg™µÿg˜´ÿe—³ÿl›¶ÿz¤¼ÿx¢ºÿi™´ÿYˆ¤òDg|½0:z K=\v:V€¡ûw—²ÿh«ÿ„¯Çÿ¬Äÿq¢½ÿq¡¼ÿp »ÿoŸºÿmž¹ÿm¹ÿkœ¸ÿj›·ÿhš¶ÿhšµÿs ºÿ¨¾ÿv¡ºÿd”°üW„žÝ>_q– 'G*?U1ER7Wg U}žëe‹©ÿ]‚Ÿÿt¤¿ÿµËÿp¡¼ÿo ¼ÿnŸ»ÿmžºÿl¹ÿkœ¸ÿi›·ÿj›·ÿ~§¿ÿ€©¿ÿsŸ¹ÿc”°ûPyÇ5P_x 0.EE1CU&*? U{œÒU~žöOt’êf’¬ôµÊÿq ¼ÿoŸºÿmžºÿl¹ÿkœ¸ÿt¢»ÿ‚ªÁÿ‚ªÁÿl›¶þ_ލëJo„«!09U /BU$*FU3LbP#2AV:Sx’}©Âÿ‚«Ãÿnž¹ÿl¸ÿ|¦¿ÿ‰¯Åÿ|¦¾ÿlœ·ý[ˆ¡ÞAaq&.B8U.CS*?UFds3n¸ò´Éÿ„¬ÃÿаÅÿy¥¾ÿf•±öU~•Á2KXp)33.EQ*DU d“­Åz¦¿ÿr¡»þd“®ëMp„§&:CW U~”q`‹¤×BarŠ< %þ00Ú$ Jâ$@$,%4%(R/home/heron/Development/gnustep/dev-apps/gorm/Images/FileIcon_gmodel.tiffHHgorm-1.2.24/Images/GormOutlet.tiff0000644000000000000000000000171213410616261015423 0ustar rootrootII*¬$ºººòØØØÿèèèÿåååÿÕÕÕÿË0006···×ÐÐÐÿÀÀÀÿ±±±ÿ³³³ÿÃÃÃÿËËËÿ{{{¸$0006®®®Î»»»ÿ«««ÿªªªÿªªªÿªªªÿªªªÿªªªÿÿTTT¹ $­­­×ÉÉÉÿ«««ÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿ¨¨¨ÿZZZÿYYYË'''0ÔÔÔÿ¼¼¼ÿªªªÿªªªÿÿªªªÿªªªÿÿªªªÿªªªÿ{{{ÿ999þ+++0ÙÙÙÿ°°°ÿªªªÿªªªÿÿªªªÿªªªÿÿªªªÿªªªÿ˜˜˜ÿþ)))0ÉÉÉþ©©©ÿªªªÿªªªÿÿªªªÿªªªÿÿªªªÿªªªÿÿþ0   þ¤¤¤ÿªªªÿªªªÿÿªªªÿªªªÿÿªªªÿªªªÿgggÿþ-ˆˆˆõ•••ÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿ§§§ÿGGGþDDDÿHiiiã™™™ÿ©©©ÿªªªÿªªªÿªªªÿªªªÿ£££ÿ___þ!!!þRRRËPVVVâmmmÿŒŒŒÿ¡¡¡ÿžžžÿ†††ÿSSSþ&&&þ777¹ GPPPõ;;;þ:::þ777þ***þ555þ>>>¹ $-0000 0 þ  Š ’¤@¤ºÂ(Rgorm_Outlet.tiffCreated with The GIMPHHgorm-1.2.24/Images/GormCopyImage.tiff0000644000000000000000000000064013410616261016023 0ustar rootrootII*Ú€#Ç®ü ‚Àá0xT" … B¤çø-ŒFc0ˆ”R:ÿÈbr Š=#‹ÅcR¸ÔrK/“Ìd“)4¨6–NeÓI„Î}5Êg40î=ÒiTºe6O¥•jPº<ò)K‡Ã+UJÍr)£P$uˆ…n»g²Íª–)•’Íi´[à–Œökn¯\¯7»¤Ù>¼\ox+íW ¸boP‰M-j¡cñ¼UóDœäðyZîG1Í`´Uü¾AJÑå/Yí4^¤UÈifùíŽÏej€€ˆÑ˜(R€ü '€ü 'gorm-1.2.24/Images/naturalalign_nib.tiff0000644000000000000000000000436013410616261016635 0ustar rootrootII*˜ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ ÿÿÿÿÿÿÿÿÿÿÿÿ ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþv K~Ê@àè(R/home/heron/Development/gnustep/dev-apps/gorm/Images/naturalalign_nib.tiffCreated with The GIMPHHgorm-1.2.24/Images/GormObject.tiff0000644000000000000000000002230213410616261015353 0ustar rootrootII*$\Un1“¾ÏBÂÿÍAÀþÊ@½þÇ?»þÄ>¸þÁ=µÿ¾<²ÿ»;¯þ¸:¬þª5žî„*{¾^Yn¢3—¾ÕDÈþÓAÆÿÑ=ÃÿÐ5ÂÿÏ1ÀÿÍ1¾ÿË0¼ÿÈ/ºÿÆ/·ÿÃ.µÿÁ-³ÿ¿-±ÿ¸2«ÿ±5¥ÿ¬6¡þ2“î{'s¾`YnÍA¿îÙBËÿ×>ÉÿÖ3ÇÿÖ+ÅÿÕ'ÄÿÔ#ÃÿÓ"ÂÿÑ#ÀÿÐ"¿ÿÎ"½ÿÍ"¼ÿË"ºÿÉ!¹ÿÇ ·ÿÄ"´ÿ¾$°ÿµ*§ÿ­/ ÿ¢2—ÿŸ2•þs$l¾b[nÑCÃîÜDÎþÛ;ÌÿÚ-ÉÿÙ&ÈÿØ$Çÿ×$ÅÿÕ#ÄÿÔ#ÃÿÒ#ÁÿÑ#ÀÿÏ"¾ÿÍ"½ÿË"»ÿÉ!¹ÿÈ!¸ÿÆ!¶ÿÄ ´ÿ ³ÿÀ°ÿ¼!­ÿµ#§ÿ©(ÿœ-’ÿ–.Œÿl!d¾¨6¾àGÑþÝ<ÎÿÜ/ÌÿÛ&ÊÿÚ$ÉÿÙ$Çÿ×$ÆÿÖ#ÅÿÕ#ÄÿÓ#ÂÿÑ#ÀÿÐ"¿ÿÎ"½ÿÌ"¼ÿË"ºÿÉ!¸ÿÇ!·ÿÅ!µÿà ³ÿÁ ²ÿÀ °ÿ½®ÿ»¬ÿ¸©ÿ± £ÿ£&—ÿ“+‰ÿƒ(zî;8nÔCÆîáGÒÿÞ<ÏÿÝ)ÌÿÜ%ÊÿÛ$ÉÿÙ$ÈÿØ$Çÿ×$ÅÿÕ#ÄÿÔ#ÃÿÒ#ÁÿÑ#ÀÿÏ"¾ÿÍ"¼ÿË"»ÿÊ!¹ÿÈ!·ÿÆ!¶ÿÄ ´ÿ ²ÿÀ ±ÿ¾®ÿ¼­ÿº«ÿ¸©ÿ·¨ÿ³¤ÿ¤"˜ÿŒ)ƒÿ†)}þ84nÕCÇîâDÒÿß4ÏÿÞ%ÌÿÜ$ËÿÜ$ÊÿÚ$ÉÿÙ$ÈÿØ$ÆÿÖ$ÅÿÕ#ÄÿÓ#ÂÿÑ#ÀÿÐ"¿ÿÎ"½ÿÌ"¼ÿÊ!ºÿÈ!¸ÿÇ!¶ÿÅ µÿà ³ÿÁ ±ÿ¿ ¯ÿ½­ÿ»¬ÿ¹ªÿ¶¨ÿµ¦ÿ³¤ÿ¯¡ÿ¢ –ÿŠ&ÿ'yÿ62nÖEÈîâDÓÿà-Ïÿß%ÍÿÞ%ÌÿÜ%ËÿÛ$ÊÿÚ$ÈÿØ$Çÿ×$ÆÿÕ#ÄÿÔ#ÃÿÒ#ÁÿÑ#ÀÿÏ"¾ÿÍ"½ÿË"»ÿÉ!¹ÿÇ!·ÿÅ!µÿà ³ÿÁ ²ÿÀ °ÿ½®ÿ»¬ÿ¹ªÿ·¨ÿ¶§ÿ´¥ÿ²£ÿ°¡ÿ­Ÿÿ¦™ÿ†$}ÿ~'vÿ96n×DÉîäDÕÿá-Ðÿß%ÍÿÞ%ÌÿÝ%ËÿÜ%ÊÿÛ$ÉÿÙ$ÈÿØ$ÇÿÖ$ÅÿÕ#ÄÿÓ#ÂÿÑ#ÀÿÏ"¿ÿÊ!¹ÿº«ÿµ¦ÿ´¥ÿ³¥ÿ³¤ÿº«ÿÀ±ÿ¾¯ÿ¼­ÿº«ÿ¹ªÿ¶§ÿ´¥ÿ²¤ÿ°¢ÿ® ÿ¬žÿªœÿ¢•ÿ‹$ÿogÿ84nµC¯¾ëQàÿâ5Ñÿà%Îÿß%ÍÿÞ%ÌÿÝ%ËÿÜ$ÊÿÚ$ÉÿÙ$Çÿ×$ÆÿÖ#ÄÿÔ"ÃÿÆ!¶ÿž‘ÿƒxÿjbÿWPÿo|‡þp|‡þp{‡þ`Yÿsjÿ‹ÿ‘†ÿ­Ÿÿ¶¨ÿ·¨ÿµ¦ÿ²¤ÿ±¢ÿ® ÿ­žÿ«ÿ “ÿ|rÿƒ&}ÿÕTÒÿž7—ÿ41nc^n|tÿ¬=¨ÿ÷YñÿÞ$Ìÿß%ÍÿÞ%ÌÿÜ%ËÿÛ$ÉÿÚ$ÈÿØ$Çÿ×$ÅÿÐ"Àÿ·¨ÿjbÿb~}þg²’þvç°þuã®þa¾‘þa¼ÿ`¼ÿnפþlÔ¢þg£Œþes{þtkÿšŽÿ²£ÿ³¤ÿ²£ÿ¯¡ÿ­Ÿÿ«ÿ•‰ÿkcÿÕTÒÿÍBÅÿœÿt#lÿf`î×DÉîã>Óÿ—Œÿƒ&}ÿÕTÒÿæ6ØÿÝ%ÌÿÜ%ÊÿÚ$ÉÿÙ$Èÿ×#ÅÿÉ!¸ÿ–Šÿ_Hiþyì´þd•þY®…ÿP›wÿP›wÿP›wÿP›wÿP›wÿP›wÿP›wÿV§€þ[²ˆþdÕþtHzþŒ ÿ©œÿ°¢ÿ®Ÿÿ¬žÿneÿ¬=¨ÿæVáÿ´.ªÿšÿŸ’ÿŒÿf`ÿ+ (nc\näFÕþá/ÐÿÞ$ÌÿÜ$Êÿ{qÿ¬=¨ÿöYðÿä6ÖÿÚ$ÈÿÔ#Âÿ¹©ÿldÿg¶“þoØ¥þP›wÿP›wÿP›wÿP›wÿP›wÿP›wÿP›wÿP›wÿP›wÿP›wÿP›wÿP›wÿP›wÿ\²ˆÿg’‡þˆ$~ÿŸ “ÿƒxÿƒ&}ÿÕTÒÿ¸.®ÿž‘ÿŸ’ÿÿŸ’ÿ™ŒÿldÿZUîÕDÈîâ=Òÿà%Îÿß%ÍÿÞ%ÌÿÜ$Ëÿº¬ÿzpÿÕTÒÿìGâÿ¹ªÿfIoÿzî¶þZ°†þP›wÿP›wÿP›wÿP›wÿP›wÿP›wÿP›wÿP›wÿP›wÿP›wÿP›wÿP›wÿP›wÿP›wÿP›wÿR {þY­„þsAwþÕTÒÿÑCÉÿ£•ÿ “ÿž‘ÿ¢”ÿ “ÿž‘ÿœÿ‡|ÿaZÿ( $nc\nãEÔþà-Ïÿß%Íÿß%ÍÿÞ%ÌÿÝ$ËÿÚ$ÉÿÙ$Çÿ™ÿƒ&}ÿƒ'}ÿyíµþP›wÿP›wÿP›wÿP›wÿP›wÿP›wÿP›wÿP›wÿP›wÿP›wÿP›wÿP›wÿP›wÿP›wÿP›wÿP›wÿP›wÿP›wÿP›wÿT£}þ…Iˆÿœ ÿ¡”ÿ¡”ÿ¢•ÿ “ÿŸ’ÿÿ›Žÿ”‰ÿjcÿSMî©6Ÿ¾áAÒÿß%ÍÿÞ%ÌÿÞ%ÌÿÝ%ËÿÜ$ÊÿÚ$ÈÿÙ#ÈÿÅ.·ÿ™!Žÿnµ™þZ¯†þP›wÿP›wÿP›wÿP›wÿP›wÿP›wÿP›wÿP›wÿP›wÿP›wÿP›wÿP›wÿP›wÿP›wÿP›wÿP›wÿP›wÿP›wÿP›wÿP›wÿU¥~ÿ‚G„ÿž’ÿ¡”ÿ¡”ÿŸ’ÿÿœÿšÿ˜‹ÿ{qÿWQÿN GnáHÓÿß2ÏÿÞ%ÌÿÝ%ÌÿÝ%ËÿÜ$ÊÿÛ$ÉÿÚ$ÈÿÙ$ÈÿØ#ÇÿzXƒþnÖ¤þP›wÿP›wÿP›wÿP›wÿP›wÿP›wÿP›wÿP›wÿP›wÿP›wÿP›wÿP›wÿP›wÿP›wÿP›wÿP›wÿP›wÿP›wÿP›wÿP›wÿP›wÿOšvÿtc‚ÿ &”ÿ¡”ÿ ’ÿž‘ÿœÿ›Žÿ™Œÿ—‹ÿ‰~ÿ\Vÿ=9¾b[nßDÑþÞ-ÍÿÝ%ÌÿÜ%ËÿÛ$ÊÿÚ$ÉÿÚ$ÈÿÙ$ÇÿË!ºÿkcÿwè±þP›wÿP›wÿP›wÿP›wÿP›wÿP›wÿP›wÿP›wÿP›wÿP›wÿP›wÿP›wÿP›wÿP›wÿP›wÿP›wÿP›wÿP›wÿP›wÿP›wÿP›wÿP›wÿP›wÿF‰hþ¨1ÿ£!–ÿž‘ÿÿ›Žÿ™ÿ˜‹ÿ–ŠÿŽƒÿb[ÿKFî¨6¾Þ@ÏÿÝ'ÌÿÝ%ËÿÜ$ÊÿÛ$ÉÿÚ$ÈÿÙ$Çÿ×#Æÿ¡”ÿa{{ÿcÀ“þP›wÿP›wÿP›wÿP›wÿÿÿÿÿP›wÿP›wÿÿÿÿP›wÿP›wÿP›wÿP›wÿÿÿÿP›wÿP›wÿP›wÿIŽmþy[ƒÿ¬. ÿœÿ›Žÿ™ÿ˜‹ÿ–Šÿ”ˆÿ“‡ÿofÿNHÿÞGÐþÜ7ÍÿÜ%ËÿÛ$ÊÿÚ$ÉÿÚ$ÈÿÙ$Çÿ×$ÆÿÖ#Åÿ…zÿe®ŽþY­„ÿP›wÿP›wÿP›wÿP›wÿP›wÿÿÿÿP›wÿÿÿÿÿÿP›wÿP›wÿÿÿÿÿÿP›wÿP›wÿL“qÿ[ioþ³5§ÿŸ“ÿšÿ˜Œÿ—Šÿ•‰ÿ“‡ÿ’†ÿˆ|ÿLGÿ73¾ÝGÏÿÛ5ËÿÛ$ÊÿÛ$ÉÿÚ$ÈÿØ$Çÿ×$ÆÿÖ$ÅÿÐ"Àÿvmÿsà«þP›wÿP›wÿP›wÿP›wÿP›wÿP›wÿÿÿÿÿP›wÿP›wÿP›wÿÿÿÿÿP›wÿP›wÿP›wÿÿÿÿP›wÿP›wÿ;rWþ¹7¬ÿ ”ÿ˜‹ÿ—Šÿ•‰ÿ”ˆÿ’†ÿ‘…ÿ…zÿJEÿ61¾ÛFÍþÚ4ÊÿÛ$ÉÿÙ$ÈÿØ$Çÿ×$ÆÿÖ#ÅÿÕ#ÃÿÀ ±ÿUOÿqÝ©þP›wÿP›wÿP›wÿP›wÿP›wÿP›wÿÿÿÿP›wÿP›wÿP›wÿP›wÿÿÿÿP›wÿP›wÿP›wÿP›wÿÿÿÿP›wÿP›wÿ8mSþÀ<´ÿ«)Ÿÿ—Šÿ•‰ÿ”ˆÿ’†ÿ‘…ÿƒÿƒyÿHCÿ4 0¾ÙEËþÙ2ÉÿÚ$ÈÿØ$Çÿ×$ÆÿÖ$ÅÿÕ#ÄÿÔ#Ãÿ»¬ÿmx…ÿ`ºŽþP›wÿP›wÿP›wÿP›wÿP›wÿP›wÿÿÿÿP›wÿP›wÿP›wÿP›wÿÿÿÿP›wÿP›wÿP›wÿP›wÿÿÿÿP›wÿP›wÿB€bþ}R„þ¯,¢ÿ•‰ÿ”ˆÿ“‡ÿ‘…ÿ„ÿƒÿ‚xÿPJÿ3 0¾×EÊþØ/ÈÿÙ$Çÿ×$ÆÿÖ$ÅÿÕ#ÄÿÔ#ÃÿÒ#Áÿ»¬ÿmw„þ^¸þP›wÿP›wÿP›wÿP›wÿP›wÿP›wÿÿÿÿP›wÿP›wÿP›wÿP›wÿÿÿÿP›wÿP›wÿP›wÿP›wÿÿÿÿP›wÿP›wÿA~`þ~P„ÿ°,£ÿ”ˆÿ“‡ÿ‘…ÿ„ÿŽƒÿ‚ÿwÿD?ÿ1 .¾ÖDÈþ×/ÇÿØ$ÆÿÖ$ÅÿÕ#ÄÿÔ#ÃÿÒ#ÁÿÑ#Àÿº«ÿdFlþd”þP›wÿP›wÿP›wÿP›wÿP›wÿP›wÿÿÿÿP›wÿP›wÿP›wÿP›wÿÿÿÿP›wÿP›wÿP›wÿP›wÿÿÿÿP›wÿP›wÿ8mSþ§H£þ²,¥ÿ“‡ÿ‘…ÿ„ÿŽƒÿÿÿ€uÿB=ÿ0 -¾ÔCÆþÕ.Æÿ×$ÅÿÖ#ÄÿÔ#ÃÿÓ#ÂÿÑ#ÁÿÐ"¿ÿ½ ®ÿ`YÿiÍœþÿÿP›wÿP›wÿP›wÿP›wÿÿÿÿP›wÿP›wÿP›wÿP›wÿÿÿÿP›wÿP›wÿP›wÿP›wÿÿÿÿP›wÿP›wÿ.YDþÐBÃÿ¯+£ÿ‘…ÿ„ÿƒÿŽ‚ÿŒÿ‹€ÿtÿ@;ÿ. +¾ÒCÄþÔ0ÄÿÕ#ÄÿÔ#ÃÿÓ#ÂÿÑ#ÀÿÐ"¿ÿÎ"¾ÿÉ!¹ÿvmÿÿÿÿÿP›wÿP›wÿP›wÿÿÿÿP›wÿP›wÿP›wÿP›wÿÿÿÿP›wÿP›wÿP›wÿP›wÿÿÿÿP›wÿP›wÿ+T@þÍ>Àÿž ’ÿ„ÿƒÿŽ‚ÿŒÿ‹€ÿŠÿ}sÿ>9ÿÐBÃþÑ2ÂÿÕ#ÄÿÓ#ÂÿÒ#ÁÿÐ#ÀÿÏ"¾ÿÍ"½ÿË!»ÿ…{ÿÿÿÿÿP›wÿP›wÿP›wÿÿÿÿP›wÿP›wÿP›wÿP›wÿÿÿÿP›wÿP›wÿP›wÿP›wÿÿÿÿP›wÿ=v[þ€KƒþÎ>Àÿ›ÿƒÿŽ‚ÿŒÿ‹€ÿŠÿ‰~ÿ|rÿ<8ÿ›1‘¿Ï7ÀÿÓ#ÂÿÒ#ÁÿÐ#ÀÿÏ"¿ÿÎ"½ÿÌ"»ÿÊ!ºÿ£–ÿfClþÿÿP›wÿP›wÿP›wÿÿÿÿÿÿP›wÿP›wÿÿÿÿÿÿP›wÿP›wÿÿÿÿÿÿ2aJþ¨D£þÂ6µÿƒÿŽ‚ÿŒÿ‹€ÿŠ~ÿ‰~ÿˆ}ÿneÿ:6ÿ; 6f _Ë;½ÿÐ'ÀÿÑ#ÀÿÏ"¿ÿÎ"½ÿÌ"¼ÿÊ!ºÿÉ!¸ÿ ²ÿ…{ÿ^Ž~þR zÿP›wÿP›wÿP›wÿP›wÿP›wÿP›wÿP›wÿP›wÿP›wÿP›wÿP›wÿP›wÿP›wÿP›wÿP›wÿP›wÿP›wÿP›wÿP›wÿP›wÿP›wÿE‡gÿTJ^þÎ=Àÿ¦%™ÿŽ‚ÿŒÿ‹€ÿŠÿ‰}ÿˆ}ÿ…zÿ\Tÿ95ÿÈ?»ÿÌ.½ÿÐ"¿ÿÎ"¾ÿÍ"¼ÿË"»ÿÉ!¹ÿÈ!·ÿÆ!¶ÿ³¥ÿxpÿWª‚þP›wÿP›wÿP›wÿP›wÿP›wÿP›wÿP›wÿP›wÿP›wÿP›wÿP›wÿP›wÿP›wÿP›wÿP›wÿP›wÿP›wÿP›wÿP›wÿP›wÿP›wÿ&J8þÜFÎÿ·/ªÿ„ÿÿ‹€ÿŠÿ‰~ÿˆ}ÿ‡|ÿ|rÿB=ÿHC¿”/‹¿Ç4¹ÿÏ"¾ÿÍ"½ÿÌ"»ÿÊ!ºÿÈ!¸ÿÆ!¶ÿÅ!µÿÁ±ÿ¡•ÿjBoþPxþP›wÿP›wÿP›wÿP›wÿP›wÿP›wÿP›wÿP›wÿP›wÿP›wÿP›wÿP›wÿP›wÿP›wÿP›wÿP›wÿP›wÿP›wÿP›wÿ/\Gþ¯F©þÆ8¸ÿ˜Œÿÿ‹€ÿŠÿ‰~ÿˆ}ÿ‡|ÿ†{ÿlcÿ62ÿ: 5a[Â9¶ÿË&»ÿÌ"¼ÿË!ºÿÉ!¹ÿÇ!·ÿÅ!µÿÄ ´ÿ ²ÿº«ÿŠ"ÿZ|tþM–sÿP›wÿP›wÿP›wÿP›wÿP›wÿP›wÿP›wÿP›wÿP›wÿP›wÿP›wÿP›wÿP›wÿP›wÿP›wÿP›wÿP›wÿ:pVÿMAVþÑ>ÃÿŸ!“ÿÿŒ€ÿŠÿ‰~ÿˆ}ÿ‡|ÿ†{ÿƒxÿUNÿ51ÿ-)?À<³ÿÄ.¶ÿË"»ÿÉ!¹ÿÈ!·ÿÆ!¶ÿÄ ´ÿ ²ÿÁ ±ÿ¾¯ÿ±£ÿ%„ÿh\vþIŽlþM•rþP›wÿP›wÿP›wÿP›wÿP›wÿP›wÿP›wÿP›wÿP›wÿP›wÿP›wÿP›wÿP›wÿE†gþ/[Eþ}C~þÒ>Ãÿ³,¦ÿŽ‚ÿŒÿ‹ÿ‰~ÿˆ}ÿ‡|ÿ†{ÿ…zÿvlÿ<8ÿGA¿^X½7°ÿÆ%·ÿÈ!¸ÿÆ!¶ÿÅ µÿà ³ÿÁ ±ÿ¿ °ÿ½®ÿº«ÿ¯¡ÿš&ÿ~BþVklþGŠjþP›wÿP›wÿP›wÿP›wÿP›wÿP›wÿP›wÿP›wÿP›wÿP›wÿP›wÿ:qWþRF[þ¯F©þÒ?Äÿ¯)¢ÿ“‡ÿ‚ÿŒ€ÿŠÿ‰}ÿ‡|ÿ†{ÿ…zÿ‚xÿPJÿ3 /ÿ-)?¹:­ÿ¾,°ÿÆ!¶ÿÅ!µÿà ³ÿÁ ²ÿÀ °ÿ¾®ÿ¼­ÿº«ÿ¸©ÿ²¤ÿ§#šÿœ,’ÿnUxÿ;rWþ>z]þBcþAaþP›wÿP›wÿP›wÿ=w[þÁÿ¯)¢ÿ˜‹ÿ‘…ÿƒÿ‚ÿŒ€ÿŠÿ‰~ÿˆ|ÿ†{ÿ…zÿzpÿMGÿ1 .ÿ-)?„)|¿¯3¤ÿ»%¬ÿÀ ±ÿ¾¯ÿ½­ÿ»¬ÿ¹ªÿ·¨ÿµ¦ÿ³¤ÿ±£ÿ¯¡ÿ¬žÿ«#žÿ¬) ÿ¯+¢ÿ·4ªÿ¼8°ÿ†)}ÿàFÑÿÆ<¹ÿ¿4²ÿ¶.©ÿ³,¦ÿ¡ ”ÿ•‰ÿ’†ÿ„ÿŽƒÿŒÿ‹€ÿŠ~ÿˆ}ÿ‡|ÿ†{ÿtÿQKÿ2 /ÿf^¿+ (?ª5Ÿÿ®.¢ÿ¼!­ÿ½®ÿ»¬ÿ¹ªÿ·¨ÿ¶§ÿ³¥ÿ²£ÿ¯¡ÿ­Ÿÿ«ÿ©›ÿ§šÿ¥˜ÿ¦™ÿ¦ ™ÿxoÿÍ8¿ÿ£–ÿšÿ˜‹ÿ–Šÿ”ˆÿ’†ÿ‘…ÿƒÿ‚ÿŒ€ÿ‹ÿ‰~ÿˆ}ÿ‡|ÿ„yÿg^ÿ8 4ÿ& #Ä * '?¥3šÿª+žÿ· ¨ÿ¹ªÿ¸©ÿ¶§ÿ´¦ÿ²¤ÿ°¢ÿ® ÿ­žÿªÿ©›ÿ¦™ÿ¤—ÿ¢•ÿ “ÿrjÿÅ3·ÿšŽÿ™Œÿ—Šÿ•‰ÿ“‡ÿ’†ÿ„ÿŽƒÿÿŒ€ÿŠÿ‰}ÿˆ|ÿ„yÿjaÿ<8ÿSMÿ0" ( %?ž1”ÿ¤*™ÿ²!¤ÿ¶§ÿµ¦ÿ³¥ÿ±¢ÿ¯¡ÿ­Ÿÿ«ÿ©›ÿ§™ÿ¥—ÿ£–ÿ¡”ÿŸ’ÿnfÿ¾1±ÿ™ÿ˜‹ÿ–‰ÿ”ˆÿ’†ÿ‘…ÿƒÿŽ‚ÿŒÿ‹ÿŠ~ÿˆ}ÿwÿjbÿ?;ÿTNÿ-)xEB>$& $?˜/ÿ›+ÿ©"œÿ³¥ÿ±£ÿ°¡ÿ­Ÿÿ¬žÿ©›ÿ¨šÿ¦˜ÿ¤–ÿ¢•ÿ “ÿž‘ÿjaÿ·/ªÿ™Œÿ—Šÿ•‰ÿ“‡ÿ’…ÿ„ÿŽƒÿÿŒ€ÿ‹ÿ‰~ÿ~sÿTNÿ=8ÿUOÿ-)‚TPUC3% #?“-‰ÿ“*Šÿ¤!˜ÿ­Ÿÿ® ÿ¬žÿ«ÿ¨šÿ§™ÿ¤—ÿ£•ÿ¡”ÿŸ’ÿÿe]ÿ¯,¢ÿ˜‹ÿ–Šÿ”ˆÿ“†ÿ‘…ÿƒÿŽ‚ÿÿ‹€ÿˆ|ÿ{pÿSMÿ;7ÿ* 'Øc_YUNB4$j!c¿)ƒÿ“$ˆÿž“ÿ§™ÿªœÿ§™ÿ¥˜ÿ£–ÿ¡”ÿŸ’ÿÿœÿaYÿ¨*œÿ–Šÿ•‰ÿ“‡ÿ’†ÿ„ÿŽƒÿ‚ÿŒ€ÿuÿc[ÿFAÿ:6ÿh_Ûphc\TMC6$" ?c\¿ƒ&zÿ‡#~ÿ’‡ÿ›ÿ “ÿ¢•ÿ “ÿž‘ÿœÿ›Žÿ]Vÿ¢(—ÿ–‰ÿ”ˆÿ’†ÿ‘…ÿÿ„zÿukÿc[ÿLGÿB>ÿKEÛ-)“c_\WRPPM;  C\VÃw$oÿv"oÿ€vÿ‰~ÿ”ˆÿ”ˆÿ„ÿŽ‚ÿVOÿš'ÿ‹ÿ‰~ÿ‡|ÿyoÿd]ÿRMÿGCÿA=ÿMGÔ-)VUQNLIDCD4)-)H95ŠRLÅjcÿjcÿkdÿc\ÿd]ÿKFÿo gÿ]VÿZSÿWQÿNHÿHCÿPJÍ> 9›-)i=<<;;<>5*%"2/1./,ˆ- *Œ, )Ž* ') &Ž' %& $? :#########" 00ª$$²$º$(R€ü '€ü 'gorm-1.2.24/Images/number_formatter.tiff0000644000000000000000000001337413410616261016704 0ustar rootrootII*´xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx‡‡‡¥¥¥‡‡‡xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx‡‡‡ððð‡‡‡xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx–––ÃÃÃxxxxxxxxx‡‡‡´´´ÃÃLJ‡xxxxxxÃÃÃáááÃÃLJ‡xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx‡‡‡¥¥¥ðððÿÿÿxxxxxx‡‡‡ððð‡‡‡‡‡‡ððð‡‡‡xxxÒÒÒ¥¥¥¥¥¥ÒÒÒxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxÒÒÒÿÿÿxxxxxx´´´ÿÿÿxxxxxxÿÿÿ´´´xxxÃÃÃ¥¥¥¥¥¥ÃÃÃxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxÒÒÒÿÿÿxxxxxxÒÒÒÿÿÿxxxxxxÿÿÿÒÒÒxxxxxx´´´¥¥¥‡‡‡xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxÒÒÒÿÿÿxxxxxxÒÒÒÿÿÿxxxxxxÿÿÿÒÒÒxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxÒÒÒÿÿÿxxxxxxÒÒÒÿÿÿxxxxxxÿÿÿÃÃÃxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxÒÒÒÿÿÿxxxxxx–––ÿÿÿxxx‡‡‡ÿÿÿ–––xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxáááÿÿÿ‡‡‡xxxxxxÒÒÒ¥¥¥´´´ÒÒÒxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx‡‡‡¥¥¥¥¥¥¥¥¥¥¥¥‡‡‡xxxxxx¥¥¥–––xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx´´´ÒÒÒ´´´xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx–––ÒÒÒÃÃLJ‡xxxxxxxxxxxxxxxxxxxxx–––ÒÒÒÃÃLJ‡xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx‡‡‡ðððÒÒÒxxxÒÒÒððð‡‡‡xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxÒÒÒððð‡‡‡¥¥¥ÿÿÿ¥¥¥xxxxxxxxxxxxxxxÒÒÒððð‡‡‡¥¥¥ÿÿÿ¥¥¥xxxxxxxxxxxxxxxxxxxxxxxxxxxáááÿÿÿ¥¥¥xxx¥¥¥ÿÿÿÒÒÒxxxxxxxxxxxxxxxxxxxxxxxxxxx´´´ÿÿÿÒÒÒxxxxxxÿÿÿððð‡‡‡xxxxxxxxx´´´ÿÿÿÒÒÒxxxxxxÿÿÿððð‡‡‡xxxxxxxxxxxxxxxxxxxxx´´´ÿÿÿÿÿÿxxxxxxxxxÿÿÿÿÿÿ–––xxxxxxxxxxxxxxxxxxxxx‡‡‡ÿÿÿÿÿÿ¥¥¥xxxxxxÒÒÒÿÿÿÃÃÃxxxxxx‡‡‡ÿÿÿÿÿÿ¥¥¥xxxxxxÒÒÒÿÿÿÃÃÃxxxxxxxxxxxxxxxxxxxxxáááÿÿÿÿÿÿxxxxxxxxxÿÿÿÿÿÿáááxxxxxxxxxxxxxxxxxxxxx´´´ÿÿÿÿÿÿ¥¥¥xxxxxxÒÒÒÿÿÿÿÿÿ‡‡‡xxx´´´ÿÿÿÿÿÿ¥¥¥xxxxxxÒÒÒÿÿÿÿÿÿ‡‡‡xxxxxxxxxxxxxxxxxxÿÿÿÿÿÿÿÿÿxxxxxxxxxÿÿÿÿÿÿÿÿÿxxxxxxxxxxxxxxxxxxxxxÒÒÒÿÿÿÿÿÿ¥¥¥xxxxxxÒÒÒÿÿÿÿÿÿ¥¥¥xxxÒÒÒÿÿÿÿÿÿ¥¥¥xxxxxxÒÒÒÿÿÿÿÿÿ¥¥¥xxxxxxxxxxxxxxx–––ÿÿÿÿÿÿÿÿÿxxxxxxxxxÿÿÿÿÿÿÿÿÿ–––xxxxxxxxxxxxxxxxxxðððÿÿÿÿÿÿ¥¥¥xxxxxxÒÒÒÿÿÿÿÿÿÃÃÃxxxðððÿÿÿÿÿÿ¥¥¥xxxxxxÒÒÒÿÿÿÿÿÿÃÃÃxxxxxxxxxxxxxxx¥¥¥ÿÿÿÿÿÿÿÿÿxxxxxxxxxÿÿÿÿÿÿÿÿÿ¥¥¥xxxxxxxxxxxxxxxxxxÿÿÿÿÿÿÿÿÿ¥¥¥xxxxxxÒÒÒÿÿÿÿÿÿÒÒÒxxxÿÿÿÿÿÿÿÿÿ¥¥¥xxxxxxÒÒÒÿÿÿÿÿÿÒÒÒxxxxxxxxxxxxxxx¥¥¥ÿÿÿÿÿÿÿÿÿxxxxxxxxxÿÿÿÿÿÿÿÿÿ¥¥¥xxxxxxxxxxxxxxxxxxÿÿÿÿÿÿÿÿÿ¥¥¥xxxxxxÒÒÒÿÿÿÿÿÿÒÒÒxxxÿÿÿÿÿÿÿÿÿ¥¥¥xxxxxxÒÒÒÿÿÿÿÿÿÒÒÒxxxxxxxxxxxxxxx¥¥¥ÿÿÿÿÿÿÿÿÿxxxxxxxxxÿÿÿÿÿÿÿÿÿ¥¥¥xxxxxxxxxxxxxxxxxxÿÿÿÿÿÿÿÿÿ¥¥¥xxxxxxÒÒÒÿÿÿÿÿÿÒÒÒxxxÿÿÿÿÿÿÿÿÿ¥¥¥xxxxxxÒÒÒÿÿÿÿÿÿÒÒÒxxxxxxxxxxxxxxx‡‡‡ÿÿÿÿÿÿÿÿÿxxxxxxxxxÿÿÿÿÿÿÿÿÿ‡‡‡xxxxxxxxxxxxxxxxxxáááÿÿÿÿÿÿ¥¥¥xxxxxxÒÒÒÿÿÿÿÿÿ´´´xxxáááÿÿÿÿÿÿ¥¥¥xxxxxxÒÒÒÿÿÿÿÿÿ´´´xxxxxxxxxxxxxxxxxxÿÿÿÿÿÿÿÿÿxxxxxxxxxÿÿÿÿÿÿÿÿÿxxxxxxxxxxxxxxxxxxxxxÒÒÒÿÿÿÿÿÿ¥¥¥xxxxxxÒÒÒÿÿÿÿÿÿ¥¥¥xxxÒÒÒÿÿÿÿÿÿ¥¥¥xxxxxxÒÒÒÿÿÿÿÿÿ¥¥¥xxxxxxxxxxxxxxxxxxÒÒÒÿÿÿÿÿÿxxxxxxxxxÿÿÿÿÿÿÃÃÃxxxxxx¥¥¥ÒÒÒÃÃÃxxxxxx¥¥¥ÿÿÿÿÿÿ¥¥¥xxxxxxÒÒÒÿÿÿðððxxxxxx¥¥¥ÿÿÿÿÿÿ¥¥¥xxxxxxÒÒÒÿÿÿðððxxxxxxxxxxxxxxxxxxxxx–––ÿÿÿÿÿÿ‡‡‡xxx–––ÿÿÿÿÿÿ‡‡‡xxxxxxÿÿÿÿÿÿÿÿÿ´´´xxxxxxðððÿÿÿ´´´xxxxxxðððÿÿÿ´´´xxxxxxxxxðððÿÿÿ´´´xxxxxxðððÿÿÿ´´´xxxxxxxxxxxxxxxxxxxxxxxx´´´ÿÿÿ´´´xxx´´´ÿÿÿ´´´xxxxxxxxxÿÿÿÿÿÿÿÿÿÃÃÃxxxxxx‡‡‡ÿÿÿáááxxx‡‡‡ÿÿÿáááxxxxxxxxxxxx‡‡‡ÿÿÿáááxxx‡‡‡ÿÿÿáááxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx¥¥¥ðððÒÒÒðð𥥥xxxxxxxxxxxx´´´ÿÿÿááᇇ‡xxxxxxxxx‡‡‡ááááááðððÃÃÃxxxxxxxxxxxxxxxxxx‡‡‡ááááááðððÃÃÃxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx––––––xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx´´´ÃÃÃÒÒÒ´´´xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx´´´´´´¥¥¥¥¥¥ÃÃÃxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxÒÒÒððð´´´¥¥¥–––xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx¥¥¥ÿÿÿÿÿÿÒÒÒ‡‡‡xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx¥¥¥ðððÿÿÿððð‡‡‡xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx¥¥¥ÒÒÒÿÿÿÒÒÒxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxÃÃÃxxx¥¥¥¥¥¥ÒÒÒÒÒÒxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx´´´ÒÒÒ´´´´´´ááᇇ‡xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx‡‡‡ÃÃÃÃÃÃxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx––––––xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxþ++† JŒÖ@«ìô(/misc/applications/gnustep/cvs/dev-apps/Gorm/Images/number_formatter.tiffCreated with The GIMPHHgorm-1.2.24/Images/RightArr.tiff0000644000000000000000000000242013410616261015041 0ustar rootrootII*ýýýsýsýs€ýsýsýÿýs¯Çý[ï›·çG[ss ›™ýs/Åë ýsssëç6ýsßGýs€ñÿýsÿýs€ýsýsSU¶  R¾€R/home/enrico/Grivei/sviluppo/FileManager/GWorkspace/GWorkspace/Icons/RightArr.tifgorm-1.2.24/Images/browserView.tiff0000644000000000000000000000513213410616261015640 0ustar rootrootII* ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþæ  Fî 4 @ J R (R/home/heron/Development/gnustep/dev-apps/gorm/Images/browserView.tiffCreated with The GIMPHHgorm-1.2.24/Images/GormEHCoil.tiff0000644000000000000000000001002013410616261015242 0ustar rootrootII*àPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPgÞÞgPPPPPPgÞÞgPPPgÞÞgPPPPPPPPPPPPPPP¹ÿÿÿÿ¹¹ÿÿÿÿ¹¹ÿÿÿÿ¹PPPPPPPPPyÿ¬""¬ÿyyÿ¬""¬ÿyyÿ¬""¬ÿyPPPPPPÿæ æÿÿæ æÿÿæ æÿPPPPPPUÿ}}ÿUUÿ}}ÿUUÿ}}ÿUPPP¦ÿ8PPP8ÿ¦PPP¦ÿ88ÿ¦¦ÿ88ÿ¦ÿäÿÿäPPPäÿÿääÿÿäÿÿûÿÿûPPPûÿÿûûÿÿûÿÿÿÿÿÿÿäÿÿäPPPäÿÿääÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ¦ÿ88ÿ¦PPP¦ÿ88ÿ¦¦ÿ88ÿ¦ÿÿÿÿÿÿÿÿÿÿÿ}}ÿUPPPUÿ}}ÿUUÿ}}ÿUÿÿÿæ æÿPPPÿæ æÿÿæ æÿyÿ¬""¬ÿyPPPyÿ¬""¬ÿyyÿ¬""¬ÿy¹ÿÿÿÿÿæ æÿÿÿÿÿÿæ øÿÿÿÿ¹gÞÞÿÿÿ¬""¬ÿÿÿÞÞÿÿÿ¬""¬ÿÿÿÞgPPPPPP¹ÿÿÿÿ¹PPPPPP¹ÿÿÿÿ¹PPPPPPgÞÞggÞÞgþ2² Eº@Ø(R/home/heron/Development/gnustep/dev-apps/gorm/Images/GormEHCoil.tiffHHgorm-1.2.24/Images/GormSourceTag.tiff0000755000000000000000000000230213410616261016042 0ustar rootrootII*ÓÓÿÿÓÓ½ÿ ÿJ]Tÿµ£þНþASJþþÿ½é ÿœÂ°þt«‘þp§þL“qþJ‘oþe™€þ`”{þf|þ ÿé½ ÿй£þa¡ƒþM•sþL”rþK’pÿJnþHlþG‹jþN‰mþ[…qþ ÿ½ÿœÂ°þa¡ƒþM–sþL”rþ9nUþ%H7þ$G6þ5hPþFˆiþD†gþI‚gþQyfþÿÓ ÿt«‘þM•sþL”rþ2aKÿÿÿþÿ+UAþC„eþBcþGv`þ þÓÓJ]Tÿp§þL”rþK“qþ ÿÿ6iQþ.[Fþ þ,"ÿBcþ@aþBq[þ!1)þÓÿµ£þL“qþK’pÿJoþ(O=þþÿ ÿ,WBþAcþ@~aþ?|_þ>{^ÿ;ZKþÿÿНþJ‘oþJnþIŽmþH‹kþ6jQþ"B3ÿÿÿ(O=þ>|^þ=z]þ{^ÿ¦aP©Œö%4–P&Ó‰Ô¾}0¡Rf³:$î'¤Óiu8ý6=ÈáóyÍ*ƒ«Câ´êÝB¥_´Fl1´~I<ŸW'UIµ‚»K«Óâ7*õÖÓd½Y®÷û¦1¾ao,=C¼ãa8ûôÛ#Àfmù¸h²px(R€ü '€ü 'gorm-1.2.24/Images/GormFilesOwner.tiff0000644000000000000000000002230213410616261016222 0ustar rootrootII*$™‡—©Ò—ÌðÙ—ÓýÔ”ÏþБËþÊÄþʼn¿þ¿…ºþ¤z ßeeeˆž‹œ¦Æ–ÁÙÜ›Ööà—ÙþÒ2ÃÿÑ-ÂÿÏ)¿ÿÌ(¼ÿÈ'¸ÿÅ&µÿÂ'³ÿ·,©þ³y®þªv¦ü„h‚Ë`[`•" '½–¹ÈÜ›ÖîÖ5ÇùØ.ÈþÖ'ÅÿÔ$ÃÿÓ#ÂÿÐ"¿ÿÍ"¼ÿÊ!¹ÿÈ ·ÿÅ µÿ¿!°ÿ¹#«ÿ°&£ÿŸ'•øe‰çp[n½/”Š’˜¾–ºÉê ãýÜ0ÌþÚ&ÉÿØ$ÇÿÖ#ÅÿÔ#ÃÿÒ"ÁÿÏ"¾ÿÌ!»ÿÉ!¸ÿÆ ¶ÿÄ ´ÿÀ°ÿ½®ÿº«ÿ²¤ÿ %”ÿaŒùyYvÛQKP—˜Œ˜žÓÎàà7ÏþÝ*ÌÿÛ$ÊÿÙ$Èÿ×#ÆÿÔ#ÃÿÒ#ÁÿÐ"¿ÿÍ"¼ÿÊ!ºÿÆ ¶ÿÄ ´ÿ ²ÿ¾®ÿ»«ÿ¸©ÿ´¥ÿ¯¡ÿ  ”þŽ"…ýqSnßIEH“½–ºÇÜ;ÍøÞ)ÍÿÝ%ËÿÛ$ÉÿÙ$ÈÿÖ#ÅÿÔ#ÃÿÑ"ÀÿÎ"½ÿ ²ÿ»¬ÿº«ÿ¼¬ÿ¾¯ÿ¼­ÿ¹ªÿ¶§ÿ³¤ÿ¯¡ÿ©›ÿ ”ÿƒ#zø^H\È+"Á—¾Ýá¢Ýþå5×ÿÞ%ÌÿÜ$ÊÿÚ$ÈÿØ$ÆÿÐ"¿ÿ²&¦þ†?ˆþvd‡þj‡†þhœ‹þiŽˆþnrƒþv_„þ‘+Šþ® ÿ´¥ÿ°¡ÿ¬žÿšŽÿ•‹ÿ¨4¡ÿƒSýaG_Õ¬©´Í—Èí¯3¦ÿË=Ãÿà*ÏÿÛ$ÊÿÙ$ÈÿÕ#Äÿµ'©þ€Rˆþg˜Šþa°þ_¹þX¬ƒþZ¯†þ^´‹þ^¤†þpfþ“)‹þ® ÿ® ÿ—‹ÿœ'“ÿ°6©ÿ³-©ÿ…{þbB_æ:6:–309Ýœ×ïÞ/ÍüÞ%ÌÿÌ!»ÿÁ-µÿÄ3¹ÿ¶'ªÿŠ^•þf—ˆþV¨þP›wÿP›wÿP›wÿP›wÿP›wÿP›wÿP›wÿQxÿUž}þey}þ’A’þ­0¤ÿ¨"œÿ “ÿž‘ÿ—ŠÿvþJ8IÍ  E@MåšÝúß+ÍþÞ%ÌÿÝ$ËÿÌ#¼ÿµ&¨ÿF’þl“þW¥€þP›wÿP›wÿP›wÿP›wÿP›wÿP›wÿP›wÿP›wÿP›wÿP›wþQžyþxm‰þš,“ÿ “ÿ “ÿž‘ÿ™Œÿ‰~ÿV7Rê(%U  ˆž¯ä•ÝþÝ(ÌþÜ$ËÿÛ$Éÿ×#ÅÿÂ(µþ‚‰œþ]¨‡þQyþP›wÿP›wÿP›wÿP›wÿP›wÿP›wÿP›wÿP›wÿP›wÿP›wÿP›wÿ[ˆzþŽ<Œÿ “ÿŸ’ÿœÿ™Œÿ„ÿX4UùB.@Ñ 'Å‘ÀÛÝ-ÍþÜ%ËÿÛ$ÉÿÙ$ÈÿÈ&¹ÿ™Dšþfš‰þS¡|þP›wÿP›wÿP›wÿP›wÿP›wÿP›wÿP›wÿP›wÿP›wÿP›wÿP›wÿP›wÿP•uþV‡þ'“ÿž‘ÿšÿ—‹ÿ“‡ÿjbýC,Aæ:à–ÙýÛ(ÊÿÛ$ÉÿÙ$Çÿ×$Æÿµ8¯þp{ˆþU¡}þP›wÿP›wÿP›wÿP›wÿP›wÿP›wÿP›wÿP›wÿP›wÿP›wÿP›wÿP›wÿP›wÿO™vþVwoþŽ<Œþ “ÿ—‹ÿ”ˆÿ“‡ÿsjÿE)BøNÝ“ÖþÚ&ÉÿÙ$Çÿ×#ÆÿÕ#Äÿ«@©þi’ŠþU¥~þP›wÿP›wÿP›wÿP›wÿP›wÿP›wÿP›wÿP›wÿP›wÿP›wÿP›wÿP›wÿP›wÿP›wÿB€bþ…F‡þ¡#•þ–‰ÿ“‡ÿ‘…ÿtkÿD'AýSÙ‘ÒþØ&Çÿ×$ÆÿÕ#ÄÿÓ#ÂÿžE þa›…þR¡{þP›wÿP›wÿP›wÿP›wÿP›wÿP›wÿP›wÿP›wÿP›wÿP›wÿP›wÿP›wÿP›wÿP›wÿE†fþ|Q„þŸ*•þ“‡ÿ…ÿƒÿsjÿ@"=ýSÕÎþ×%ÆÿÖ#ÄÿÔ#ÃÿÑ#ÀÿBþ`–ƒþS {þP›wÿP›wÿP›wÿP›wÿP›wÿP›wÿP›wÿP›wÿP›wÿP›wÿP›wÿP›wÿP›wÿP›wÿB€bþM†þ¢*˜þ‘…ÿƒÿ‚ÿpgÿ:7ýSщÊþÕ%ÄÿÔ#ÃÿÒ"ÁÿÏ"¿ÿ¢<ŸþcŠþS¢|þP›wÿP›wÿP›wÿP›wÿP›wÿP›wÿP›wÿP›wÿP›wÿP›wÿP›wÿP›wÿP›wÿP›wÿ:rWþˆB‰þ¥&™þƒÿ‚ÿ‹€ÿmdÿ52üRÉ…ÃüÓ%ÂÿÒ#ÁÿÐ"¿ÿÍ"½ÿ®/¥þmc~þT˜yþP›wÿP›wÿP›wÿP›wÿP›wÿP›wÿP›wÿP›wÿP›wÿP›wÿP›wÿP›wÿP›wÿM•rþc`rþ›6•þÿÿ‹€ÿ‰~ÿi`ÿ1/ùO¸~²ìÐ'ÀÿÏ#¿ÿÎ"¾ÿÌ!»ÿ·$ªþ…=‡þZ‹zþPœwþP›wÿP›wÿP›wÿP›wÿP›wÿP›wÿP›wÿP›wÿP›wÿP›wÿP›wÿP›wÿL‡lþP’þ¦+›þ”ˆÿ‹€ÿ‰~ÿ‡|ÿbZþ/,òH–r“ÆÂw»þÍ#½ÿÌ!¼ÿÉ!¹ÿÁ ±ÿ§%œþis€þR™xþP›wþP›wÿP›wÿP›wÿP›wÿP›wÿP›wÿP›wÿP›wÿP›wÿP›wÿP›wÿXimþ£;þž ’ÿ‚ÿ‰~ÿˆ|ÿƒxÿ63ý'$à5>:Q»v´ýÊ%»ÿË!ºÿÈ!¸ÿÄ ´ÿ½®ÿ3‹þ`twþP–uþP›wÿP›wÿP›wÿP›wÿP›wÿP›wÿP›wÿP›wÿP›wÿP›wÿA~aÿŒCŒþž#’þƒÿŠÿˆ}ÿ†{ÿxnÿ.+ö5 0ƒ & #3§q¢íÃ(µýÇ!·ÿÆ ¶ÿ ²ÿ¿°ÿ¸©ÿ›+“þpW|þO‡pþN—tþP›wÿP›wÿP›wÿP›wÿP›wÿP›wÿJ‚jþ][lþ§A¡þ¨&œÿ„ÿŠ~ÿˆ}ÿ†{ÿ~tÿ_Wÿ Ò$ ‘iÔªi¤øÄ#µÿÄ ´ÿÁ±ÿ¾®ÿ»¬ÿ°£ÿ•1þk[xþLjþGŠiþK’oþP›wÿL”rþE†fþ@|_þc[qþ§A¡þ¸/«ÿ”‰ÿŒ€ÿ‰}ÿ‡|ÿ†{ÿukÿ.+þ· " 0d‰Ü£cû¿!°ÿ¾®ÿ»¬ÿ¸©ÿµ¦ÿ±¢ÿ«"žÿ¥+šÿ—6’þxD|þQH\þqHwþ‘=þ¨: þ¸/«ÿÿ„ÿŒÿŠÿˆ}ÿ‡{ÿtÿ+ (ý! ßB>a‘`ìµ'§ÿ»¬ÿ¹ªÿ¶§ÿ³¤ÿ°¡ÿ¬žÿ©œÿ¨›ÿª#ÿ”#‰ÿÄ4¶ÿ§#šÿ¡ •ÿ˜Œÿ‘…ÿŽƒÿ‹€ÿ‰~ÿ‡|ÿ„yÿg_ÿ ò€ cQb°‹Y†ó®#¡ÿµ¦ÿ´¥ÿ±¢ÿ®Ÿÿªœÿ§šÿ¥—ÿ¡”ÿˆ}ÿ´*§ÿ˜Œÿ–‰ÿ’†ÿ„ÿŽ‚ÿ‹ÿ‰}ÿuÿjaÿ+ (ÿÒi5q%q±:,¶£bkøŒU‚þ‹N„ÿ® ÿ® ÿ«ÿ¨šÿ¦˜ÿ£–ÿŸ’ÿƒxÿ¬'Ÿÿ–Šÿ”ˆÿ‘…ÿŽƒÿÿ‰}ÿyoÿ1.þ& #þ' þ* Ø$ Ï/ Á9 µ;$ (·.ªØÏ/ÀüÊ,ºþ¸)«ús k¶  ª8&ªÛI1þÈD.þÈD.ÿ®7VÿOwÿ€G{ÿ¤—ÿ¨šÿ¦˜ÿ£–ÿ¡”ÿž‘ÿuÿ¤$˜ÿ•‰ÿ“‡ÿ„ÿŽ‚ÿŒ€ÿwmÿ,*ÿ% !þ2 þ- ÿ3 þ9 þIþVþ ©0.6Ý4Íý×#ÆÿÑ"ÀÿÊ!¹ÿÀ°ÿ´¦ÿ”"ˆùf!#yÛI1ÿÉD.ÿÈD.ÿÈD.þÆC.þÀ@3ÿ{JcÿoCjÿp2þ¢2Cþf:Mþ]4OþV.NÿP*JÿE%@ÿH#Bþ?:þ<7þ90þ8*þd8ÿUþOþLþKþPþZÿ]þi#þo%þo&þb!þ1 âqD?MÔ(Ä÷ªE©þX–}þP›wþP›wÿP›wþÓWSþþS7þìN4þìN4þëN4þêN4þéM4ÿçL3þåL2þâJ2þßJ1ÿÖE4þÇ@8þ¿=<ÿ·:=ÿ®7;þ¤47ÿ¡38þ™04þ•/4þ-/þŽ-,þŒ,(þ€*þz)þv'þr&þq&þr&þq&þr&þq&þp&ÿo&þb!þ1 â8HCTØ'Çþ„g”þP›wþP›wÿP›wÿP›wÿýS7ÿ˜2!ý˜2!ý˜2!ý—2!ý—2!ý–2!ý•1!ý“1!ý‘0 ý0 ý/ýŠ.ý‡-ý„,ý€*ü{)ýv'ýr&ýo%ýj#ýd"üa ü]üYýVýTýQýNüMüKýJýIýHýHý0 þUGATÓ&ÂþyiŠþP›wÿP›wÿP›wÿP›wÿýS7ÿe"ýe"ýe"üe"üe"üd"üc"üb!üa!ü`!ü^ ü\üZüYüVüSýPüNüLüIüFüDüAü?ü= ü; ü: ü8 ü7 ü6 ü5 ü5 ü4 ü4 ü" ý p: 6IÁ#²ó­+£þ^‚{þU’yþn…‰þ²P²þÔ+ÄþÍ)¼þÀ&±þª&›þ†#býl!/ýd"üb!üb!ýa!ü` ü^ü\üZüXýUüRüOüMüKüRüˆ%aüÃ.®þÐ*ÀþÇ'·þ»&¬þŸ#Žþ[<ü:ü6 ü5 ü4 ü4 ü3 ü3 ü" ý ‡@ 'œ‘о®ÿ‹Eþ~eŽþ®S°þØ'ÈþÀ2¶þ°=¬þ­3¦þ²!¥þ£!–þƒ"gýb üb!üa!ü`!ü_ ü]ü[üZüXüUüRüOüLüMý}%VýÝ/ÌþÖ#Åÿº5²þ­:¨þ¯-¦þ²!¥þš"ŽþP0ü5 ü5 ü4 ü3 ü3 ü3 ü" ý  i; 3 /K¥!˜ø¶#¨ÿÌ.½þÑ*Âþ¦N©ÿh„…þ]Ž~þa…þXŒþ-–þšŽþuRý­/‰ý¬*‰ý¤'ýœ&zý$Tý]üYüWüTüQüNüLüf5ýÂ+­þË*¾ÿ”`Ÿþd‡‚þ]Œ}þe€€þXŒþ¤ ˜ÿ{kþC$ü4 ü3 ü3 ü2 ü2 ü! ý ¸e8 5 0U‘ ‡ÒÙ.ÉþÉ/½þvyþPœwþP›wÿP›wþZŠzþˆD‹þ£"˜þ¾-­þÖ)ÅþÑ&ÁþÇ$·þ¾"¯þ¤!þy Tý^#üVüTüQüMüKüw!KüÖ)ÅþªE©þ]“€þP›wþP›wÿP›wþZŠzþ%“þ…yþR<ý4 ü3 ü2 ü2 ü2 ý! ý«sI:ZSwÙ,Èþ»:µþaŠþP›wÿP›wÿP›wÿP™vþ~X‰þ³3«þÝ*ÌþÆ,ºþ£H¥þ“Tšþž;›þ§%œþ•#‡þs PýUüSüPüMüKüy NüØ'Çþ„g”þPœwþP›wÿP›wÿP›wÿP™vþŒ7Šþ…zþWCý3 ü3 ü2 ü2 ü2 ü! ý«W?E@TÐ)Àþ·2¯þc‚þP›wÿP›wÿP›wÿR‘vþ©T«þÖ*Æþ¶9°þ`‚þPœwþP›wÿP›wþud…þ’þ‡zþaBýRüOüLüJüuJüÏ%¾þˆSþP™wþP›wÿP›wÿP›wÿR‘vþ“.Œþ}rþQ>ý3 ü2 ü2 ü2 ü2 ü! ý ¸e;1@;QÄ)µøÀ$²þ}_ŠþQ”uÿO™vÿP”uÿhn|þ¸@²þÙ(Èþ‘\›þPœwþP›wÿP›wÿP›wÿfu~þ”'Œþ‡|þYEý6 ý4 ý2 ý0 ýZ=ýÁ#²þ­+£þez~þP•uÿN˜uÿSvÿhn|þ”‰þqgþ> 0ý" ý! ý! ý! ý! ýþ”X8#( %5 †¿¿"°þ¤.þod€ÿbtyþlh~þ‰6‡ÿÀ,³ÿÕ&Äÿxn‹þP›wÿP›wÿP›wÿP›wÿbz|þ‹/‡þ‚xþD ?⪪ªª«œ‘â¾®ÿ˜5”ÿji~þer|þq_þ‰6‡ÿ‡|ÿSLᬪªªªªªU&"3ul¯«žþ¦™ÿŽ…þ› þŠÿ´%¦þÍ%¼þ–B–þP˜wþP›wÿP›wÿP›wÿjl~þ’!ˆþ|qþ@ ;¨3 /K¥!˜ø­Ÿÿž’þ™"Žþ˜ŒþŠÿaYûŽ"JE’ƒxýtkþrhþKDô{rô·#©üÀ°ÿxX„þQ‹sþL“qþY|uþ€<þ„yÿh_ñ,(ŽOJ›xnñulûh_ôA <ÑxF }u±º«ÿ¯¡ÿž&”þ™0‘þŸ%”þ„ÿtjþ9 4±"mc¬—‹õ”‡þ‚þ†{þaYô)&Ú  £DMH—TM¨OH©H A©%"–qN 00ª$$²$º$(R€ü '€ü 'gorm-1.2.24/Images/GormMHLine.tiff0000644000000000000000000001607413410616261015272 0ustar rootrootII* PPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPÿÿPPPPPPPPPPPPPPPPPPPPPPPPÿÿPPPPPPPPPPPPPPPPPPÿÿPPPPPPPPPÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿPPPPPPPPPÿÿPPPPPPPPPPPPPPPÿÿPPPÿÿPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPÿÿPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPÿÿPPPPPPPPPPPPPPPPPPPPPPPPÿÿPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPþ[Þ Eæ@,4(R/home/heron/Development/gnustep/dev-apps/gorm/Images/GormMHLine.tiffHHgorm-1.2.24/Images/GormMVLine.tiff0000644000000000000000000001611413410616261015303 0ustar rootrootII* PPPÿÿPPPÿÿPPPÿÿPPPÿÿPPPÿÿPPPÿÿPPPÿÿPPPÿÿPPPÿÿPPPPPPÿÿPPPPPPPPPPPPÿÿPPPPPPPPPÿÿÿÿÿÿÿÿPPPÿÿÿÿPPPÿÿPPPPPPPPPPPPÿÿPPPÿÿPPPPPPÿÿPPPPPPPPPÿÿPPPÿÿÿÿÿÿPPPÿÿPPPÿÿPPPPPPÿÿPPPPPPPPPÿÿPPPPPPPPPPPPÿÿPPPÿÿPPPÿÿPPPÿÿPPPÿÿPPPÿÿPPPÿÿPPPÿÿPPPÿÿPPPÿÿPPPÿÿPPPÿÿPPPÿÿPPPÿÿÿÿÿÿÿÿÿÿPPPÿÿÿÿÿÿÿÿÿÿPPPÿÿPPPÿÿÿÿPPPÿÿPPPPPPPPPPPPPPPPPPPPPPPPÿÿPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPÿÿPPPÿÿPPPÿÿPPPÿÿPPPÿÿPPPÿÿPPPÿÿPPPÿÿPPPÿÿPPPÿÿPPPÿÿPPPÿÿPPPPPPÿÿPPPPPPPPPÿÿPPPÿÿÿÿÿÿPPPÿÿPPPÿÿPPPÿÿPPPPPPPPPÿÿPPPPPPPPPPPPÿÿPPPÿÿPPPÿÿPPPÿÿPPPÿÿÿÿPPPÿÿÿÿPPPÿÿPPPPPPPPPÿÿPPPPPPPPPÿÿPPPPPPPPPPPPÿÿPPPÿÿPPPÿÿPPPÿÿPPPÿÿPPPÿÿPPPÿÿPPPÿÿþ[Þ Eæ,@4<D(R/home/heron/Development/gnustep/dev-apps/gorm/Images/GormMVLine.tiffHHgorm-1.2.24/Images/justifyalign_nib.tiff0000644000000000000000000000436013410616261016664 0ustar rootrootII*˜ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿaÿÿÿÿÿhÿÿÿÿÿÿÿÿÿÿÿÿÿÿ§äÿÿÿÿÿÿÿÿÿÿ“ÿÿÿÿÿÿÿÿÿÿÿÿÿÿ“üìÿÿÿÿÿÿÿÿÿÿ“ÿÿ“ÿÿÿÿÿÿÿÿÿÿìü“ÿÿÿÿÿÿÿÿÿÿÿÿÿÿ“ÿÿÿÿÿÿÿÿÿÿÿÿÿä§ÿÿÿÿÿÿÿÿÿÿÿÿÿÿhÿÿÿÿÿÿÿÿaÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþv K~Ê@àè(R/home/heron/Development/gnustep/dev-apps/gorm/Images/justifyalign_nib.tiffCreated with The GIMPHHgorm-1.2.24/Images/leftalign_nib.tiff0000644000000000000000000000435413410616261016124 0ustar rootrootII*˜ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ ÿÿÿÿÿÿÿÿÿÿÿÿ ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿaÿÿÿÿÿÿÿÿÿÿÿÿÿÿ§äÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ“üìÿÿÿÿÿÿÿÿÿ“ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ“ÿÿÿÿÿhÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþv H~Æ@Üä(R/home/heron/Development/gnustep/dev-apps/gorm/Images/leftalign_nib.tiffCreated with The GIMPHHgorm-1.2.24/Images/iconCenterRight_nib.tiff0000644000000000000000000000436213410616261017245 0ustar rootrootII*˜ ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿDDD`ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþv M~Ì@âê(R/misc/applications/gnustep/cvs/dev-apps/Gorm/Images/iconCenterRight_nib.tiffCreated with The GIMPHHgorm-1.2.24/Images/GormTargetTag.tiff0000755000000000000000000000230213410616261016030 0ustar rootrootII*ÓÓÿÿÓÓ½ÿ&$ÿm?hÿÕyÌþÍsÄþb6]þþÿ½é ÿã„ÚþÛRÍþÖPÉþÏ"¾þË!ºþÃE·þ½A°þ®[¦þ  ÿé½ ÿâm×þÚ<ÊþÕ#ÃþÑ"ÀþÍ"¼ÿÈ!¸þÄ ³þ¿¯þµ,§þ£B™þ  ÿ½ÿã„ÚþÚ<ÊþÕ#ÄþÒ#ÁþÏ"¾þÊ!¹þÅ µþÀ°þº«þµ¦þª(þA…þÿÓ&$ÿÛRÍþÕ#ÃþÒ#Áþtjÿ  þÿÿ  þf]þ±¢þ¬žþ–*‹þ þÓÓm?hÿÖPÉþÑ"ÀþÏ"¾þË!ºþÆ ¶þÿÿ¶§þ°¢ÿ«þ§™þ&„þ;7þÓÿÕyÌþÏ"¾þÍ"¼ÿÊ!¹þÆ ¶þÁ±þÿÿ±¢þ«œþ¦˜þ¢”þŸ‘ÿm(fþÿÿÍsÄþË!ºþÈ!¸þÅ µþÁ±þ¼¬þÿÿ«œþ¥—þ¡“þþšþd"^þÿÓb6]þÃE·þÄ ³þÀ°þ»«þ¶§þÿÿ¥—þ “þœþ˜‹þ{qþ/+þÓÓþ½A°þ¿¯þº«þ¶§þ°¢ÿÿÿ “þœŽÿ˜‹ÿ”ˆþulþ þÓÿ²L§þµ,§þµ¦þ±¢þ«þ¦˜þ¡“þœþ˜‹ÿ”‡þ‚wþTMþÿ½  ÿ£B™þª(þ¬žþ§™þ¢”þþ˜‹þ”ˆþ‚wþaYþÿ½é  ÿ•8Œþ–*‹þ&„þŸ‘ÿšþ{qþulþTMþÿé½ÿ þ;7þm(fþd"^þ/+þ þÿ½ÓÓÿÿÓÓ ª²º(R€ü '€ü 'gorm-1.2.24/Images/titleOnly_nib.tiff0000644000000000000000000000435213410616261016140 0ustar rootrootII*˜    HHH`ÿÿÿÿÿÿÿÿÿÿÿÿÿÿ   þv F~Ä@Úâ(R/misc/applications/gnustep/cvs/dev-apps/Gorm/Images/iconOnly_nib.tiffCreated with The GIMPHHgorm-1.2.24/Images/GormOutletSelected.tiff0000644000000000000000000000177213410616261017102 0ustar rootrootII*¬$888ò'''ÿÿÿ***ÿ...Ë6 ×///ÿ???ÿNNNÿLLLÿ<<<ÿ444ÿ===¸$6 ÎDDDÿTTTÿUUUÿUUUÿUUUÿUUUÿUUUÿbbbÿeee¹ $***×666ÿTTTÿUUUÿUUUÿUUUÿUUUÿUUUÿUUUÿWWWÿ¥¥¥ÿrrrË 0+++ÿCCCÿUUUÿUUUÿÿÿÿÿUUUÿUUUÿÿÿÿÿUUUÿUUUÿ„„„ÿÅÅÅþ0&&&ÿOOOÿUUUÿUUUÿÿÿÿÿUUUÿUUUÿÿÿÿÿUUUÿUUUÿgggÿàààþ0555þVVVÿUUUÿUUUÿÿÿÿÿUUUÿUUUÿÿÿÿÿUUUÿUUUÿbbbÿàààþ0^^^þ[[[ÿUUUÿUUUÿÿÿÿÿUUUÿUUUÿÿÿÿÿUUUÿUUUÿ˜˜˜ÿéééþ-mmmõjjjÿUUUÿUUUÿUUUÿUUUÿUUUÿUUUÿUUUÿXXXÿ···þ»»»ÿ,,,HzzzãfffÿVVVÿUUUÿUUUÿUUUÿUUUÿ\\\ÿŸŸŸþÝÝÝþyyyË999PŒŒŒâ’’’ÿsssÿ^^^ÿaaaÿyyyÿ«««þØØØþ‚‚‚¹888G¥¥¥õÃÃÃþÄÄÄþÇÇÇþÔÔÔþÉÉÉþ{{{¹$-+++000000000...0###0þ  Š A’Ô@¤êò(R/home/heron/gnustep/dev-apps/Gorm/Images/GormOutletSelected.tiffCreated with The GIMPHHgorm-1.2.24/Images/GormSound.tiff0000644000000000000000000002230213410616261015235 0ustar rootrootII*$SXëÿ%´ÿ3"ÌÿSXëÿ%´ÿ%´ÿSXëÿ%´ÿSXëÿ%´ÿSXëÿ3"»ÿ""»ÿ%´ÿSXëÿ%´ÿSXëÿ""»ÿSXëÿSXëÿ%´ÿ%´ÿ%´ÿSXëÿ""ªÿ%´ÿ33™ÿ%´ÿSXëÿ"»ÿSXëÿSXëÿ%´ÿ%´ÿ%´ÿSXëÿ3"™ÿ%´ÿ3"™ÿ%´ÿSXëÿSXëÿ%´ÿSXëÿSXëÿ%´ÿ%´ÿ%´ÿSXëÿ%´ÿ%´ÿ""™ÿ%´ÿSXëÿSXëÿ%´ÿ%´ÿ%´ÿ%´ÿSXëÿ%´ÿ%´ÿSXëÿSXëÿ%´ÿ%´ÿSXëÿSXëÿ%´ÿ%´ÿSXëÿ%´ÿ%´ÿ%´ÿSXëÿ%´ÿ%´ÿ%´ÿSXëÿ%´ÿSXëÿ%´ÿ%´ÿ%´ÿ%´ÿSXëÿ%´ÿ%´ÿ%´ÿ%´ÿSXëÿ%´ÿ%´ÿ%´ÿ%´ÿ%´ÿSXëÿ%´ÿ%´ÿ%´ÿSXëÿ%´ÿ%´ÿ%´ÿ""ˆÿ""ˆÿ%´ÿ%´ÿ%´ÿ%´ÿ%´ÿ%´ÿ%´ÿSXëÿ%´ÿ%´ÿSXëÿ%´ÿSXëÿ%´ÿSXëÿ%´ÿ%´ÿSXëÿ%´ÿ%´ÿ%´ÿ%´ÿ%´ÿ%´ÿ%´ÿ%´ÿ%´ÿ%´ÿ%´ÿ%´ÿ%´ÿ%´ÿSXëÿSXëÿSXëÿSXëÿSXëÿ%´ÿ%´ÿSXëÿ%´ÿ%´ÿSXëÿ%´ÿ%´ÿ%´ÿSXëÿ%´ÿ%´ÿSXëÿ%´ÿ%´ÿSXëÿ%´ÿSXëÿ%´ÿSXëÿSXëÿSXëÿSXëÿSXëÿSXëÿSXëÿSXëÿSXëÿSXëÿ%´ÿ%´ÿ%´ÿ%´ÿ%´ÿ%´ÿSXëÿSXëÿ%´ÿ%´ÿSXëÿ%´ÿ%´ÿSXëÿ%´ÿSXëÿ%´ÿ%´ÿ%´ÿ%´ÿ%´ÿ%´ÿ%´ÿSXëÿ%´ÿ%´ÿSXëÿSXëÿ%´ÿ%´ÿ%´ÿ%´ÿ%´ÿ%´ÿ%´ÿSXëÿ%´ÿ%´ÿ%´ÿSXëÿ%´ÿ%´ÿ%´ÿ%´ÿ%´ÿSXëÿSXëÿ%´ÿ%´ÿ%´ÿSXëÿSXëÿ%´ÿ%´ÿSXëÿSXëÿ%´ÿ 00ª$$²$º$(R€ü '€ü 'gorm-1.2.24/Images/LeftArr.tiff0000644000000000000000000000242013410616261014656 0ustar rootrootII*USsýsý€sýÿsýÿñ€sýGßsý6çësssý ëÅ/sý™› ss[Gç·›ï[ýǯsýÿýsýsý€sýsýsýýý¶  R¾€R/home/enrico/Grivei/sviluppo/FileManager/GWorkspace/GWorkspace/Icons/LeftArr.tiffgorm-1.2.24/Images/GormEHLine.tiff0000644000000000000000000001002013410616261015243 0ustar rootrootII*àPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿPPPPPPPPPPPPPPPPPPPPPPPPPPPþ2² Eº@Ø(R/home/heron/Development/gnustep/dev-apps/gorm/Images/GormEHLine.tiffHHgorm-1.2.24/Images/iconCenterLeft_nib.tiff0000644000000000000000000000436013410616261017060 0ustar rootrootII*˜ ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿDDD`ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþv L~Ê@àè(R/misc/applications/gnustep/cvs/dev-apps/Gorm/Images/iconCenterLeft_nib.tiffCreated with The GIMPHHgorm-1.2.24/Images/GormImage.tiff0000644000000000000000000002230213410616261015167 0ustar rootrootII*$ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿWÿUUUÿUUUÿUUUÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿWÿUUUÿUUUÿUUUÿÿÿÿÿÿŽŽŽÿÿÿÿÿãããÿrrrÿÿÿÿÿÿÿÿÿÿÿÿÿÇÇÇÿÇÇÇÿŽŽŽÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÇÇÇÿÇÇÇÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿUUUÿUUUÿUUUÿÿÿÿÿÿUUUÿãããÿ999ÿãããÿÿÿÿÿªªªÿãããÿªªªÿªªªÿUUUÿÇÇÇÿãããÿÿÿÿÿªªªÿãããÿãããÿãããÿÇÇÇÿÇÇÇÿÿ51,ÿ<83ÿ3/'ÿ)&ÿÿÿ)0;ÿhrÿ«Êÿ…¬Ñÿ|¨Ðÿ†«Óÿ‚©ÒÿƒªÓÿƒªÓÿ‚©Òÿ„«ÓÿƒªÒÿ¨ÐÿƒªÒÿÿaÿUUUÿUUUÿUUUÿÿÿÿÿÿUUUÿÿÇÇÇÿÿÿÿÿrrrÿªªªÿUUUÿªªªÿªªªÿ999ÿªªªÿUUUÿrrrÿªªªÿUUUÿªªªÿªªªÿ999ÿrrrÿÿ7<`ÿ9?`ÿ5;Wÿ-4Mÿ.(Cÿ)ÿÿÿ$'5ÿYwŽÿˆµÙÿ…®Úÿ„«Ôÿ…¬Õÿ…¬Õÿ„«Ôÿ…¬ÓÿƒªÑÿ…¬Óÿ†­ÔÿÿaÿUUUÿUUUÿUUUÿÿÿÿÿÿUUUÿãããÿ999ÿãããÿUUUÿªªªÿªªªÿªªªÿªªªÿUUUÿÿÿÿÿUUUÿUUUÿªªªÿªªªÿªªªÿªªªÿUUUÿªªªÿÿ;Cdÿ=DdÿVÿ*0Qÿ.0Pÿ.+Aÿÿÿ"ÿ.16ÿj„™ÿ”¸Ûÿ†³Ôÿ„±Óÿ‰«Óÿ‰°Úÿ€®Óÿ„±Õÿ‡­ÖÿÿaÿUUUÿUUUÿUUUÿÿÿÿÿÿUUUÿÿÿÿÿãããÿ999ÿŽŽŽÿ999ÿUUUÿªªªÿªªªÿUUUÿÿÿÿÿUUUÿªªªÿ999ÿUUUÿªªªÿªªªÿUUUÿªªªÿÿ14@ÿÿI?Cÿ<55ÿ42/ÿ/'3ÿ$"5ÿ+8Pÿk…£ÿ”¸àÿ‰³áÿйáÿ‰¶ÓÿÿaÿUUUÿUUUÿUUUÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿMB9ÿSH<ÿ[Q@ÿ[Q>ÿbZAÿ[SCÿRL?ÿOK;ÿJF7ÿGF;ÿDE;ÿDC7ÿFI=ÿVPBÿgaMÿ`eHÿlwaÿ³½ÿ”·Üÿ¶àÿÿaÿUUUÿUUUÿUUUÿÿÿÿÿÿŽŽŽÿUUUÿUUUÿãããÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ ÿ+'ÿ85$ÿC>*ÿNI5ÿID1ÿSN;ÿRP;ÿYXEÿZYJÿIJ=ÿ‹…}ÿ~zjÿX]RÿŒš¨ÿÿaÿUUUÿUUUÿUUUÿÿÿÿÿÿUUUÿÿÿÿÿãããÿUUUÿÿÿÿÿÇÇÇÿÇÇÇÿÿÿÿÿãããÿªªªÿÇÇÇÿÿÿÿÿªªªÿãããÿãããÿãããÿªªªÿÿÿÿÿãããÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿEA&ÿŠgÿKJ?ÿÿaÿUUUÿUUUÿUUUÿÿÿÿÿÿUUUÿUUUÿ999ÿªªªÿÇÇÇÿrrrÿrrrÿÇÇÇÿUUUÿªªªÿ999ÿrrrÿªªªÿUUUÿªªªÿrrrÿrrrÿªªªÿUUUÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ+##ÿ$ÿ=6)ÿÿaÿUUUÿUUUÿUUUÿÿÿÿÿÿUUUÿÿÿÿÿÇÇÇÿŽŽŽÿªªªÿrrrÿªªªÿãããÿUUUÿÿÿÿÿUUUÿUUUÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿŽŽŽÿÿÿÿ ÿ ÿ ÿ ÿ ÿÿÿÿÿ ÿ ÿ-+ÿGI+ÿqwLÿFI*ÿÿ  ÿ#&!ÿÿaÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿUUUÿÿÿÿÿÿÿÿÿUUUÿãããÿ999ÿUUUÿÇÇÇÿrrrÿUUUÿÿªªªÿ999ÿUUUÿªªªÿªªªÿªªªÿªªªÿ999ÿÿuzWÿyzcÿ¨¯Ÿÿ³Äµÿ¾ÂÃÿ¿À½ÿ‡ŠƒÿŠŠÿzzxÿQOMÿKE@ÿAÿ€rGÿ¦œwÿ¯°…ÿ‘šxÿOVDÿ"ÿHF/ÿYV4ÿÿaÿªªªÿªªªÿªªªÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿªªªÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ°ÿ`pyÿCGMÿ>DIÿ@=OÿBFQÿRV^ÿTQ]ÿIK[ÿOXYÿNQ_ÿ.)2ÿO]EÿufOÿÈʲÿpqÿ@B8ÿÿÿÿÿaÿªªªÿªªªÿªªªÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ77Eÿ?APÿ47Gÿ6;Kÿ:=PÿADUÿBEUÿ\_nÿDMVÿJN]ÿDEQÿ347ÿCE4ÿ{bSÿÏʵÿsiÿÿÿÿÿÿaÿªªªÿªªªÿªªªÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ11Eÿ>?Tÿ68NÿDH`ÿ?BUÿ;>Oÿ>AQÿPSbÿJS\ÿKO^ÿNO[ÿ569ÿRU>ÿkY9ÿ¹¹•ÿ/4%ÿÿÿÿÿÿaÿªªªÿªªªÿªªªÿÿÿÿÿÿŽŽŽÿUUUÿUUUÿãããÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÇÇÇÿÇÇÇÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿXZ\ÿMQTÿOTYÿFNSÿ7:Mÿ8;LÿEHXÿLO^ÿGPYÿLP_ÿMNYÿ88;ÿVYDÿrfHÿ>?%ÿÿÿÿÿÿÿaÿÿÿÿÿÿÿÿÿUUUÿÿÿÿÿãããÿUUUÿãããÿªªªÿãããÿãããÿãããÿÇÇÇÿãããÿãããÿªªªÿŽŽŽÿªªªÿÿÿÿÿÇÇÇÿÿÿÿÿÇÇÇÿÿGHQÿJLVÿCGSÿ@FRÿ8;Nÿ8;LÿADTÿ?BQÿDMVÿGKZÿMNYÿ::=ÿ=>0ÿ3'ÿ ÿÿÿ ÿÿÿÿaÿUUUÿUUUÿUUUÿÿÿÿÿÿUUUÿUUUÿ999ÿŽŽŽÿŽŽŽÿªªªÿUUUÿªªªÿrrrÿ999ÿªªªÿUUUÿªªªÿUUUÿŽŽŽÿŽŽŽÿUUUÿÿÿÿÿUUUÿÿAFWÿ@DRÿ?BNÿ?AMÿ>?Pÿ-2=ÿ?GSÿZbuÿ_lxÿOV_ÿegjÿJFFÿ)!ÿÿÿÿ ÿÿÿ.ÿÿaÿUUUÿUUUÿUUUÿÿÿÿÿÿUUUÿÿÿÿÿÿÿÿÿ999ÿrrrÿŽŽŽÿUUUÿªªªÿªªªÿUUUÿÿÿÿÿUUUÿªªªÿªªªÿÿÿÿÿUUUÿUUUÿÿÿÿÿUUUÿÿbl|ÿHP_ÿ9=Kÿ79Fÿ:;Kÿ5ÿ‹§‡ÿ$ÿÿ0ÿZÿH ÿ\!ÿÿaÿUUUÿUUUÿUUUÿÿÿÿÿÿUUUÿÿÿÿÿãããÿÿÇÇÇÿ999ÿrrrÿªªªÿUUUÿÿÿÿÿUUUÿÿÿÿÿUUUÿUUUÿUUUÿ999ÿÇÇÇÿ999ÿrrrÿÿœ³ÿz—ÿ36@ÿ02>ÿ*(-ÿ/12ÿMZiÿ‹¡Àÿ—£ÿWl[ÿrlSÿrq\ÿ@C4ÿ‹©Šÿ;6*ÿ!ÿ9-ÿg*ÿb*ÿ]%ÿÿaÿUUUÿUUUÿUUUÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿX!ÿÿaÿUUUÿUUUÿUUUÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ+++ÿªªªÿªªªÿªªªÿªªªÿ€€€ÿÿ5ÿÿaÿÿÿÿÿÿÿÿÿÇÇÇÿÇÇÇÿÿÿÿÿÿÊÊÊÿqqqÿqqqÿÿÿÿÿÊÊÊÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ+++ÿªªªÿÿÿÿ€€€ÿÿ- ÿÿaÿªªªÿªªªÿUUUÿÿÿÿÿÿªªªÿªªªÿÿÿÿÿÿqqqÿÿÿÿÿÊÊÊÿ›››ÿ222ÿÊÊÊÿOOOÿqqqÿqqqÿqqqÿ›››ÿqqqÿOOOÿÊÊÊÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ+++ÿªªªÿUUUÿÿUUUÿ€€€ÿÿ0ÿÿaÿªªªÿÿUUUÿÿÿÿÿÿªªªÿªªªÿÿÿÿÿÿqqqÿÿÿÿÿÿÿÿÿqqqÿqqqÿÊÊÊÿOOOÿOOOÿqqqÿÿÿÿÿqqqÿqqqÿÿÿÿÿqqqÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ+++ÿªªªÿªªªÿÿªªªÿ€€€ÿÿ- ÿÿaÿUUUÿUUUÿUUUÿÿÿÿÿÿªªªÿªªªÿÿÿÿÿÿ›››ÿqqqÿOOOÿÿÿÿÿqqqÿqqqÿOOOÿ222ÿOOOÿqqqÿqqqÿOOOÿOOOÿ›››ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ+++ÿªªªÿªªªÿªªªÿªªªÿ€€€ÿÿÿÿaÿÿÿÿÿÿÿÿÿªªªÿªªªÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿqqqÿOOOÿ›››ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ+++ÿ€€€ÿ€€€ÿ€€€ÿ€€€ÿ€€€ÿÿɰaÿªªªÿªªªÿUUUÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿŠTÿªªªÿÿUUUÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿŒŒŒÿŒŒŒÿŒŒŒÿmmmÿ|||ÿŒŒŒÿŒŒŒÿŒŒŒÿŒŒŒÿŒŒŒÿŒŒŒÿŒŒŒÿŒŒŒÿŒŒŒÿŒŒŒÿŒŒŒÿÿÌ±ŠŠŠŠŠŠŠŠŠŠŠŠŠŠŠŠŠŠTÿUUUÿUUUÿUUUÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ´ŽTTTTTTTTTTTTTTTTTTTÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿjWWWWWWWWWWWWWWWWWWWWWWWWWWWWW 00ª$$²$º$(R€ü '€ü 'gorm-1.2.24/Images/rightalign_nib.tiff0000644000000000000000000000435613410616261016311 0ustar rootrootII*˜ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿhÿÿÿÿÿ“ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ“ÿÿÿÿÿÿÿÿÿìü“ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿä§ÿÿÿÿÿÿÿÿÿÿÿÿÿÿaÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ ÿÿÿÿÿÿÿÿÿÿÿÿ ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ ÿÿÿÿÿÿÿÿÿÿÿÿþv I~È@Þæ(R/home/heron/Development/gnustep/dev-apps/gorm/Images/rightalign_nib.tiffCreated with The GIMPHHgorm-1.2.24/Images/shortbutton_nib.tiff0000644000000000000000000000435613410616261016554 0ustar rootrootII*˜  DDD`"ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ¬¬¬¬ÊÔÔÔÔbabÍÿùùùù{y{ÿÿÿÿÿÿ{y{ÿÿÿÿÿÿ{y{ÿ{y{ÿ{y{ÿ{y{ÿ{y{ÿ{y{ÿ{y{ÿ{y{ÿ{y{ÿ{y{ÿ{y{ÿ{y{ÿ{y{ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþv J~È@Þæ(R/home/heron/Development/gnustep/dev-apps/Gorm/Images/shortbutton_nib.tiffCreated with The GIMPHHgorm-1.2.24/Images/GormView.tiff0000644000000000000000000002260413410616261015064 0ustar rootrootII*$ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿvbêÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿvbêÿvbêÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿvbêÿvbêÿvbêÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿvbêÿvbêÿvbêÿvbêÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿvbêÿvbêÿvbêÿvbêÿvbêÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ999ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿrrrÿÿãããÿÿUUUÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿªªªÿÿªªªÿÿÿÿÿÿÿÿÿÿÿÿÿÿ999ÿÿÿÿÿªªªÿÇÇÇÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿUUUÿÿÿÿÿÿÿÿÿªªªÿÿŽŽŽÿÿÿÿÿUUUÿŽŽŽÿÿÿÿÿÿÿÿÿÇÇÇÿUUUÿUUUÿŽŽŽÿÿÿÿÿÿÿÿÿŽŽŽÿUUUÿÿÿÿÿÿÿÿÿUUUÿªªªÿÿÿÿÿÇÇÇÿUUUÿÇÇÇÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿrrrÿÿÿÿÿÿÿÿÿÿUUUÿÿÿÿÿÿÿÿÿÿÿUUUÿÿÿÿÿrrrÿÿ999ÿUUUÿÿÿÿÿÿÿŽŽŽÿÿÇÇÇÿÇÇÇÿÿUUUÿÿÿÿÿUUUÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÇÇÇÿÿªªªÿÿÿÿÿÿrrrÿÿÿÿÿÿÿÿÿÿUUUÿãããÿÿUUUÿÿÿÿÿÿÿÿÿãããÿÿŽŽŽÿãããÿÿŽŽŽÿŽŽŽÿÿÿÿÿÿÿÿUUUÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ999ÿ999ÿªªªÿÿÇÇÇÿÿÿÿÿÿÿÿÿÿUUUÿªªªÿÿÿÿÿÿÿUUUÿÿÿÿÿ999ÿ999ÿUUUÿrrrÿÿŽŽŽÿÿÇÇÇÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿŽŽŽÿÿ999ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿUUUÿÇÇÇÿÿUUUÿªªªÿªªªÿªªªÿªªªÿÇÇÇÿÿÿÿÿŽŽŽÿÿÿÇÇÇÿUUUÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿŽŽŽÿÿÿÿÿÿÿÿÿÿÿÿÿÿUUUÿÿÿÿÿUUUÿÿŽŽŽÿªªªÿ999ÿÿÇÇÇÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿŽŽŽÿÿrrrÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿUUUÿÿãããÿÿÿÿÿÿÿÿÿÿÿÿÿÿUUUÿÿÿÿÿÿÿÿÿrrrÿÿÿ999ÿÇÇÇÿÿÿÿÿÿÿÿÿÿÿÿÿUUUÿUUUÿÿÿÿÿãããÿÿÇÇÇÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþ00æ$ Cî$B2%@$t%|%(R/home/heron/Development/gnustep/dev-apps/Gorm/Images/GormView.tiffCreated By Gregory Casamento released under the terms of the GPL.HHgorm-1.2.24/Resources/0000755000000000000000000000000013410616261013214 5ustar rootrootgorm-1.2.24/Resources/ClassInformation.plist0000644000000000000000000003121613410616261017547 0ustar rootroot{ FirstResponder = { Actions = ( "activateContextHelpMode:", "alignCenter:", "alignJustified:", "alignLeft:", "alignRight:", "arrangeInFront:", "cancel:", "capitalizeWord:", "centerSelectionInVisibleArea:", "changeColor:", "changeFont:", "checkSpelling:", "clearRecentDocuments:", "close:", "complete:", "copy:", "copyFont:", "copyRuler:", "cut:", "delete:", "deleteBackward:", "deleteForward:", "deleteToBeginningOfLine:", "deleteToBeginningOfParagraph:", "deleteToEndOfLine:", "deleteToEndOfParagraph:", "deleteToMark:", "deleteWordBackward:", "deleteWordForward:", "deminiaturize:", "deselectAll:", "fax:", "hide:", "hideOtherApplications:", "indent:", "loosenKerning:", "lowerBaseline:", "lowercaseWord:", "makeKeyAndOrderFront:", "miniaturize:", "miniaturizeAll:", "moveBackward:", "moveBackwardAndModifySelection:", "moveDown:", "moveDownAndModifySelection:", "moveForward:", "moveForwardAndModifySelection:", "moveLeft:", "moveRight:", "moveToBeginningOfDocument:", "moveToBeginningOfLine:", "moveToBeginningOfParagraph:", "moveToEndOfDocument:", "moveToEndOfLine:", "moveToEndOfParagraph:", "moveUp:", "moveUpAndModifySelection:", "moveWordBackward:", "moveWordBackwardAndModifySelection:", "moveWordForward:", "moveWordForwardAndModifySelection:", "newDocument:", "ok:", "open:", "openDocument:", "orderBack:", "orderFront:", "orderFrontColorPanel:", "orderFrontDataLinkPanel:", "orderFrontHelpPanel:", "orderFrontStandardAboutPanel:", "orderFrontStandardInfoPanel:", "orderOut:", "pageDown:", "pageUp:", "paste:", "pasteAsPlainText:", "pasteAsRichText:", "pasteFont:", "pasteRuler:", "performClose:", "performFindPanelAction:", "performMiniaturize:", "performZoom:", "print:", "printDocument:", "raiseBaseline:", "redo:", "revertDocumentToSaved:", "runPageLayout:", "runToolbarCustomizationPalette:", "saveAllDocuments:", "saveDocument:", "saveDocumentAs:", "saveDocumentTo:", "scrollLineDown:", "scrollLineUp:", "scrollPageDown:", "scrollPageUp:", "scrollViaScroller:", "selectAll:", "selectLine:", "selectNextKeyView:", "selectParagraph:", "selectPreviousKeyView:", "selectText:", "selectToMark:", "selectWord:", "showContextHelp:", "showGuessPanel:", "showHelp:", "showWindow:", "stop:", "subscript:", "superscript:", "swapWithMark:", "takeDoubleValueFrom:", "takeFloatValueFrom:", "takeIntValueFrom:", "takeObjectValueFrom:", "takeStringValueFrom:", "terminate:", "tightenKerning:", "toggle:", "toggleContinuousSpellChecking:", "toggleRuler:", "toggleToolbarShown:", "toggleTraditionalCharacterShape:", "transpose:", "transposeWords:", "turnOffKerning:", "turnOffLigatures:", "underline:", "undo:", "unhide:", "unhideAllApplications:", "unscript:", "uppercaseWord:", "useAllLigatures:", "useStandardKerning:", "useStandardLigatures:", "yank:", "zoom:" ); Super = NSObject; }; IBInspector = { Actions = ("ok:", "revert:", "touch:"); Outlets = (window); Super = NSObject; }; IBPalette = {Actions = (); Outlets = (originalWindow); Super = NSObject; }; NSActionCell = {Super = NSCell; }; NSApplication = { Actions = ( "arrangeInFront:", "hide:", "hideOtherApplications:", "miniaturizeAll:", "orderFrontColorPanel:", "orderFrontDataLinkPanel:", "orderFrontHelpPanel:", "orderFrontStandardAboutPanel:", "orderFrontStandardInfoPanel:", "runPageLayout:", "stop:", "terminate:", "unhide:", "unhideAllApplications:" ); Outlets = (delegate); Super = NSResponder; }; NSArray = {Super = NSObject; }; NSBox = {Super = NSView; }; NSBrowser = { Actions = ("doClick:", "doDoubleClick:", "selectAll:"); Outlets = (delegate); Super = NSControl; }; NSBrowserCell = {Super = NSCell; }; NSButton = {Actions = ("performClick:"); Super = NSControl; }; NSButtonCell = {Actions = ("performClick:"); Super = NSActionCell; }; NSCStringText = {Actions = ("clear:", "selectText:"); Super = NSText; }; NSCell = { Actions = ( "takeDoubleValueFrom:", "takeFloatValueFrom:", "takeIntValueFrom:", "takeStringValueFrom:" ); Super = NSObject; }; NSColorWell = {Actions = ("takeColorFrom:"); Super = NSControl; }; NSComboBox = {Outlets = (dataSource); Super = NSTextField; }; NSControl = { Actions = ( "takeDoubleValueFrom:", "takeFloatValueFrom:", "takeIntValueFrom:", "takeObjectValueFrom:", "takeStringValueFrom:" ); Outlets = (target); Super = NSView; }; NSCursor = {Super = NSObject; }; NSDateFormatter = {Super = NSFormatter; }; NSDictionary = {Super = NSObject; }; NSDocument = { Actions = ( "printDocument:", "revertDocumentToSaved:", "runPageLayout:", "saveDocument:", "saveDocumentAs:", "saveDocumentTo:" ); Outlets = ("_window"); Super = NSObject; }; NSDocumentController = { Actions = ("clearRecentDocuments:", "newDocument:", "openDocument:", "saveAllDocuments:"); Super = NSObject; }; NSDrawer = { Actions = ("close:", "open:", "toggle:"); Outlets = (delegate, contentView, parentWindow); Super = NSResponder; }; NSFontManager = { Actions = ( "addFontTrait:", "modifyFont:", "modifyFontViaPanel:", "orderFrontFontPanel:", "removeFontTrait:" ); Outlets = (menu); Super = NSObject; }; NSForm = {Super = NSMatrix; }; NSFormCell = {Super = NSActionCell; }; NSFormatter = {Super = NSObject; }; NSHelpManager = {Actions = ("activateContextHelpMode:", "showHelp:"); Super = NSObject; }; NSImage = {Super = NSObject; }; NSImageCell = {Super = NSCell; }; NSImageView = {Super = NSControl; }; NSMatrix = { Actions = ("selectAll:", "selectText:"); Outlets = (delegate); Super = NSControl; }; NSMenu = {Actions = ("submenuAction:"); Super = NSObject; }; NSMenuItem = {Outlets = (target); Super = NSObject; }; NSMenuItemCell = {Super = NSButtonCell; }; NSMutableArray = {Super = NSArray; }; NSMutableDictionary = {Super = NSDictionary; }; NSNumberFormatter = {Super = NSFormatter; }; NSObject = {}; NSOpenGLView = {Super = NSView; }; NSOutlineView = {Super = NSTableView; }; NSPanel = {Super = NSWindow; }; NSPopUpButton = {Super = NSButton; }; NSPopUpButtonCell = {Super = NSMenuItemCell; }; NSProgressIndicator = {Actions = ("animate:", "startAnimation:", "stopAnimation:"); Super = NSView; }; NSResponder = {Outlets = (menu); Super = NSObject; }; NSRulerView = {Super = NSView; }; NSScrollView = {Super = NSView; }; NSScroller = {Super = NSControl; }; NSSearchField = {Super = NSTextField; }; NSSearchFieldCell = {Super = NSTextFieldCell; }; NSSecureTextField = {Super = NSTextField; }; NSSecureTextFieldCell = {Super = NSTextFieldCell; }; NSSlider = {Super = NSControl; }; NSSliderCell = {Super = NSActionCell; }; NSSplitView = { Outlets = (delegate); Super = NSView; }; NSStepper = {Super = NSControl; }; NSStepperCell = {Super = NSActionCell; }; NSTabView = { Actions = ( "selectFirstTabViewItem:", "selectLastTabViewItem:", "selectNextTabViewItem:", "selectPreviousTabViewItem:", "takeSelectedTabViewItemFromSender:" ); Outlets = (delegate); Super = NSView; }; NSTableColumn = {Super = NSObject; }; NSTableHeaderCell = {Super = NSTextFieldCell; }; NSTableHeaderView = {Super = NSView; }; NSTableView = { Actions = ("deselectAll:", "selectAll:"); Outlets = (dataSource, delegate); Super = NSControl; }; NSText = { Actions = ( "alignCenter:", "alignLeft:", "alignRight:", "changeFont:", "changeSpelling:", "checkSpelling:", "copy:", "copyFont:", "copyRuler:", "cut:", "delete:", "ignoreSpelling:", "paste:", "pasteFont:", "pasteRuler:", "selectAll:", "showGuessPanel:", "subscript:", "superscript:", "toggleRuler:", "underline:", "unscript:" ); Outlets = (delegate); Super = NSView; }; NSTextField = {Actions = ("selectText:"); Outlets = (delegate); Super = NSControl; }; NSTextFieldCell = {Super = NSActionCell; }; NSTextView = { Actions = ( "alignJustified:", "changeColor:", "deleteBackwards:", "insertBacktab:", "insertNewLine:", "insertParagraphSeparator:", "insertTab:", "loosenKerning:", "lowerBaseline:", "moveBackward:", "moveDown:", "moveForward:", "moveLeft:", "moveRight:", "moveUp:", "pasteAsPlainText:", "pasteAsRichText:", "raiseBaseline:", "tightenKerning:", "toggleContinuousSpellChecking:", "toggleTraditionalCharacterShape:", "turnOffKerning:", "turnOffLigatures:", "useAllLigatures:", "useDefaultBaseline:", "useDefaultKerning:", "useDefaultLigatures:", "useStandardBaseline:", "useStandardKerning:", "useStandardLigatures:" ); Super = NSText; }; NSView = {Actions = ("fax:", "print:"); Outlets = (nextKeyView); Super = NSResponder; }; NSWindow = { Actions = ( "deminiaturize:", "fax:", "makeKeyAndOrderFront:", "miniaturize:", "orderBack:", "orderFront:", "orderOut:", "performClose:", "performMiniaturize:", "performZoom:", "print:", "runToolbarCustomizationPalette:", "selectNextKeyView:", "selectPreviousKeyView:", "toggleToolbarShown:", "zoom:" ); Outlets = (delegate, initialFirstResponder, windowController); Super = NSResponder; }; NSWindowController = { Actions = ("showWindow:"); Outlets = (document, window); Super = NSResponder; }; Object = {}; } gorm-1.2.24/Resources/VersionProfiles.plist0000644000000000000000000000417013410616261017424 0ustar rootroot{ "GNUstep gui-0.9.3" = { GSNibContainer = { comment = "Will not properly store any non-UI objects which have been dragged into the objects view."; version = 0; }; NSTextFieldCell = { comment = "Will store the old default settings in the action mask field."; version = 1; }; GSWindowTemplate = { comment = "Will not store autoposition mask information."; version = 0; }; NSButtonCell = { comment = "NSEvent masks are not compatible with Mac OS X."; version = 0; }; }; "GNUstep gui-0.9.5" = { GSNibContainer = { comment = "Not compatible with GNUstep gui-0.9.3 or earlier."; version = 1; }; NSTextFieldCell = { comment = "Change the default behavior defined in the action mask, this will not be useable under older versions."; version = 2; }; GSWindowTemplate = { comment = "Will not store autoposition mask information."; version = 0; }; NSButtonCell = { comment = "NSEvent masks are not compatible with Mac OS X."; version = 1; }; }; "GNUstep gui-0.10.3" = { GSNibContainer = { comment = "Not compatible with GNUstep gui-0.9.5 or earlier."; version = 1; }; NSTextFieldCell = { comment = "Change the default behavior defined in the action mask, this will not be useable under older versions."; version = 2; }; GSWindowTemplate = { comment = "New attribute to store auto-position mask. Not compatible with 0.9.5 or earlier."; version = 1; }; NSButtonCell = { comment = "NSEvent masks are not compatible with Mac OS X."; version = 2; }; }; "Latest Version" = { GSNibContainer = { comment = "Not compatible with GNUstep gui-0.10.3 or earlier."; version = 2; }; NSTextFieldCell = { comment = "Change the default behavior defined in the action mask, this will not be useable under older versions."; version = 2; }; GSWindowTemplate = { comment = "New attribute to store auto-position mask. Not compatible with 0.9.5 or earlier."; version = 1; }; NSButtonCell = { comment = "Not compatible with GNUstep gui-0.10.3 or earlier."; version = 3; }; }; }gorm-1.2.24/Resources/Defaults.plist0000644000000000000000000000132313410616261016037 0ustar rootroot{ AllowUserBundles = YES; ArchiveType = Typed; BuiltinPalettes = ( 0Menus.palette, 1Windows.palette, 2Controls.palette, 3Containers.palette, 4Data.palette ); BuiltinPlugins = ( Gorm.plugin, Nib.plugin, GModel.plugin ); CellSizeWidth = 72; ClassViewType = Browser; GuideColor = { alpha = 1; blue = 0; green = 0; red = 1; }; GuideSpacing = 10; HeaderList = ( ); PreloadHeaders = NO; ShowInspectors = YES; ShowPalettes = YES; UserPalettes = ( ); "NSWindow Frame Inspector" = "663 15 274 452 0 0 960 768 "; "NSWindow Frame Palettes" = "663 470 274 298 0 0 960 768 "; "NSWindow Frame Preferences" = "336 200 352 368 0 0 960 768 "; }gorm-1.2.24/NEWS0000644000000000000000000006151013426755314011756 0ustar rootroot1 Noteworthy changes in version '1.2.24' ======================================== * Fix for issue where Gorm was referencing private variables. This caused a crash when built with clang. 2 Noteworthy changes in version '1.2.23' ======================================== * Fix for issue where NSPanel was being saved as an NSWindow in some cases. 3 Noteworthy changes in version '1.2.22' ======================================== * Fix for bug#45040: Fix allows Gorm custom class functionality to work normally on OpenBSD/NetBSD/FreeBSD. * Fixes for Solaris * Memory leak fixes. * Objective-C parser improvements. 4 Noteworthy changes in version '1.2.20' ======================================== * Bug fixes #28643, #32827 * Corrected issues with updating document when there is a change. * Add cells as objects to the document so they can be properly edited. * Changes to prevent recursive frame change notifications. 5 Noteworthy changes in version '1.2.18' ======================================== * Code cleanup, removal of warnings when building with clang. * Removal of use of call to objc_poseAs(..) which was preventing building with newer runtimes. * Stability improvements. 6 Noteworthy changes in version '1.2.16' ======================================== * XIB reading. * Bug fixes for standalone views. * Stability changes. 7 Noteworthy changes in version '1.2.12' ======================================== Requires: gnustep-base-1.20.0, gnustep-gui-0.18.0. Reason: Parts of the runtime which Gorm used were refactored and it was necessary to make corresponding changes in Gorm to use it. * Correction for bugs #27295, 28643, 29085. * Added a DO server which allows modification of internal data structures using a simple interface. * Tooltips now show the object name and the object type for informational purposes. * Opens default document when using NSWindows95InterfaceStyle. 8 Noteworthy changes in version '1.2.10' ======================================== * Correction for bug #25401 * Correction for some nib loading issues. * Limited support for standalone views. * Fixes for various bugs. 9 Noteworthy changes in version '1.2.8' ======================================= Requires: gnustep-gui-0.16.0. It will not compile without this version of the library. Reason: Nib and Gorm loading were moved to a more sensible file structure. Additionally, Nib loading was refactored. * Correction for bug#25001. * Correction for bug#25111. * Fixes for nib encoding to use the proper template class instances. * Changes to use new headers. 10 Noteworthy changes in version '1.2.6' ======================================== * Corrections to allow Gorm to build and run properly on the Darwin operating system. * Corrected sizing of Controls Palette. * Added preliminary support for IBPlugin API. * Added preferences panel to add plugins dynamically. * Moved load/save logic for gorm, gmodel, and nib to plugins. This change should allow plugins for virtually any format to be read/written by Gorm. * Correction for bug#24146, bug#23889. 11 Noteworthy changes in version '1.2.4' ======================================== Requires: gnustep-gui-0.13.2. Reason: Due to changes in popupbutton controller logic. * Corrected bug#'s 19640, 21845, 19792, 15637, 17892, 18171. * Added error panel to show the detected inconsistencies in a file. * Added preference setting to turn on or off the gorm file repair logic. * Added capability to repair logic to fix window level issue. * Added ruler switch to scroll view inspector. 12 Noteworthy changes in version '1.2.2' ======================================== Requires: gnustep-gui-0.13.0. * Moved to GPLv3 * Added text field to NSTableColumn inspector to allow editing of table column title. * Corrected issue with selection. * Added button modifiers for special keys to button inspectors. * Corrected issue with loading of older gorm files. * Fix to allow Gorm's menus to be Mac-style, but not the one being edited. * Other miscellaneous bug corrections. 13 Noteworthy changes in version '1.2.1' ======================================== * Minor corrections to previous release. 14 Noteworthy changes in version '1.2.0' ======================================== * Corrections to some editors to not change selection if connection is in progress. * Force menu style to NSNextStepInterfaceStyle for editing purposes. * Correction for memory issue when closing document. * Minor bug fixes. 15 Noteworthy changes in version '1.1.0' ======================================== * Changed Gorm architecture to use NSDocument classes. * Abstracted model loading mechanism. This was done by implementing a set of "Loader" and "Builder" classes which handle filling in the data structures in Gorm and exporting them to external formats. * Implemented GormNibWrapperLoader and GormNibWrapperBuilder for reading and writing Cocoa NIB files. * Implemented GormGormWrapperLoader and GormGormWrapperBuilder for reading and writing GNUstep Gorm files * Implemented GormGModelWrapperLoader for reading GNUstep gmodel files. * Updated icon * A number of bugs have been addressed in this release. 16 Noteworthy changes in version '1.0.8' ======================================== This is a bugfix release. * Correction for bug#16587. * Correction for handling non-string identifiers in tableviews. 17 Noteworthy changes in version '1.0.6' ======================================== This is a bugfix release. * Entirely new icon set, for palettes, gorm, gmodel, nib and the application. * Replaced some of the images for the inspectors. * Corrected the following bugs since the last release: #16049, #16050, #15988, #16049, #15989, #15987, #15817, #15780, #15642, #15556. * Changed formatting in some of the inspectors so that they are easier to navigate. 18 Noteworthy changes in version '1.0.4' ======================================== This is a bugfix release. * Corrected some bug#15236 with window style mask settings. * Corrected bug#15236, which caused window fields in the inspector not to update when the field was being edited and a new window is selected. * Corrected bug #15178. * Corrected problem with standalone views 19 Noteworthy changes in version '1.0.2' ======================================== This is a bugfix release. * Fixed some bugs with table column selection. * Corrected a minor problem in the custom class inspector. 20 Noteworthy changes in version '1.0.0' ======================================== PLEASE NOTE: This version of Gorm requires base 1.11.1 and gui 0.10.1 to be installed (gnustep-startup-0.13.0). * All inspectors are now modeled in .gorm files. * Added autosizing to form attributes inspector. * Utilize and maintain parent/child data structure more pervasively * Reorganized code in palettes for cleaner implementation. * Removed code to check for user bundles, since bugs in Camaelon which prompted those changes were fixed long ago. * Added documentation to GormCore 21 Noteworthy changes in version '0.11.0' ========================================= * Improved implementation of canSubstituteForClass: the default implementation of this method tests the classes to see if initWithCoder: or encodeWithCoder: is implemented on a subclass to determine automatically if that class has the same encoding signature as the original class, if it does, it can be substituted. * Improved handling of classes which use cell classes in the custom class inspector. The inspector now autmatically replaces the cell class with the appropriate one when the user selects a given subclass. * Browser based class editor in document panel. This interface is more like the one on OSX. The user now has a choice in preferences to determine which view they would like to use. * Translation tools. The Document->Translate menu allows the user to export string and import strings in the strings format, so that someone can easily translate just the strings in the file and doesn't need to directly edit anything in Gorm. The strings file can then be loaded back into Gorm and all of the relevant strings are updated. * Alignment tools. In the new Layout menu there are options to align views, center views, bring views to front or push them to the back of the view layers. * Implementation of IBViewResourceDraggingDelegate. This allows updating of the pull down in the inspectors panel dynamically. It requires the developer of a palette to implement some code to enable this, as on OSX. * Lots of bugfixes and usability changes are also included in this release. 22 Noteworthy changes in version '0.9.10' ========================================= * Gorm now has a full implementation of canSubstituteForClass: which is used to determine if a class can be substituted in the custom class inspector. This allows classes added in palettes to say whether or not they can be used as a subsitute for a kit class. * Better separation of Gorm into libraries. As well as the ability to compile on windows with a simple: "make install" * Implementation of IBResourceManager class. This class is used by palettes to register drag types to be considered by the top level editors in the document window: object, sound, image, class. * Gorm now is able to switch views in the document window when you drag a file into it. If it's an image it will switch to the image view, if it's a sound, the sound view, an object the object view etc or if it's a class (a .h file) it will switch to the classes view. * Drag and drop parsing of header files (if you hadn't gathered from the previous item). * Better support for standalone views. while the user cannot instantiate from the classes view (there were too many problems with this approach). They can now drag any view from the palette into the objects view and have it work. * A myriad of bug fixes. 23 Noteworthy changes in version '0.9.2' ======================================== NOTE: This is mainly a bugfix release. * Some improvements to the procedure for removing connections. * Corrected various issues with header parsing. * Now closes windows which were opened during interface testing such as font panels, info panels, etc. * Minor corrections to background color for a number of inspectors. * Improvements to gmodel importation. * Better detection of when the user is utilizing a user bundle. Gorm will now warn the user with a panel. * Various improvements in documentation 24 Noteworthy changes in version '0.9.0' ======================================== * Images/Sounds can now be dragged into a matrix cell. * Fully implemented date and number formatter inspectors (these classes still need work in GUI). * Added warning panel if the user attempts to edit a .gorm file created with a newer version of Gorm * Modified data.classes format so that only those actions specifically added to FirstResponder are listed. * Greatly improved gmodel importation. (experimental) * It's now possible to add methods to classes which are not custom. This allows the user to add actions which may have been added to those classes by categories. * Completely new header parser implemented. * Improved cut/paste. It's now possible to use cut/paste from almost anywhere. The class editor now fully supports it. * Improved implementation of some of the InterfaceBuilder framework classes. * Object editor will now remove all instances of a class that has been deleted from the class editor. * The class inspector and the classes view will now apply stricter rules to names of actions and outlets to ensure that they are properly entered. * All inspectors work perfectly with customized colors. * Fixed a number of bugs. 25 Noteworthy changes in version '0.8.0' ======================================== PLEASE NOTE: It is important for this release that you upgrade to Gorm 0.8.0 when using Gorm with the new GNUstep libraries (base-1.10.0 and gui-0.9.4). This version of Gorm contains some features which are reliant on changes made in those versions of the libraries. It is stated in Gorm's documentation (the Gorm.texi file) that this is required, but I felt it important enough to also mention it here so that it is known beyond a reasonable doubt. * New gorm file version. * Full custom palette support * Palette preferences panel to allow the user to configure palettes to load * Experimental: Standalone views. This feature is to allow the use of a view without the need of a containing window. This allows developers to treat these views as they would any other top level object in the .gorm file. This is experimental functionality. * Improved NSTableColumn inspector. The new inspector allows the user to change the data cell used for a given column. This allows the user to select from a list of cell subclasses and set the appropriate custom or non-custom one they want to appear in that column of the table. * Improved layout of some of the inspectors. * Removed old class parser. The parser was somewhat buggy and was actually causing some issues. A new parser will be available in the next version of Gorm. For now users will need to use the class inspector or the outline view to enter classes into Gorm. * Experimental: "File" section. This is essentially a per-file preference which allows the user to control which version of GNUstep a given file will be compatible with. It also lists the potential compatibility issues with the selected version. * Improved controls palette. New items for some of the standard font replace the old "Title" widget which was a System-14 font. The new widgets use a selection of the standard System font to allow the user to easily build a gui using these and reducing the amount of time the user needs to spend fiddling with the font panel. 26 Noteworthy changes in version '0.7.7' ======================================== * Important bugfixes in editor classes. * Rearranged some of the editor classes to be in the palettes which contain the classes they are responsible for editing (GormButtonEditor & GormTabViewEditor). * Image and Sound editors will now display system default images or sounds if they are available. * Document window now uses an NSToolbar (experimental). * Improved the layout of some of the inspectors. * Corrected some minor issues in the inspectors * Added code to allow NSTableView and NSOutlineView to show some data during testing * Gorm will now show an alert panel when a model fails to load or test properly. 27 Noteworthy changes in version '0.7.6' ======================================== This release is mainly a bugfix release for 0.7.5. * Improved .gmodel support * Corrections to previous repair feature. * Important bugfixes for Menu editing. * Important bugfixes for class inspector. 28 Noteworthy changes in version '0.7.5' ======================================== * The 'reparent' feature in the class inspector. This allows the user to change the class hierarchy from within Gorm. * Some important bugfixes * a property 'GormRepairFileOnLoad' (untested) which should repaire old .gorm files... It is HIGHLY recommended that Gorm not be run with this on constantly and that you back up any files which you want to repair before opening them with this option turned on. * A shelf inspector in prefs that lets you expand the size of the names in the object view.. * Support for NSFontManager * A way to restore a complete NSMenu if it's deleted (a new palette entry for NSMenu, not just an item) 29 Noteworthy changes in version '0.6.0' ======================================== * Several major bugs corrected. * Clarified some of the inspectors * Menu items are now properly enabled/disabled when appropriate * More descriptive title displayed when a class is being edited. 30 Noteworthy changes in version '0.5.0' ======================================== * Enabled defer in NSWindow inspector. * Added code to the connection inspector to prevent erroneous connections. * Added support for upgrading of old .gorm files using the older template mechanism * Grouping with an NSSplitView now operates using the relative positions of the views in the window. * Custom Class inspector now shows all subclasses, not just direct custom subclasses. * Bug fixes, eliminated memory leak, code cleanup, etc. 31 Noteworthy changes in version '0.4.0' ======================================== * New Menu and Menu Item inspectors. * User can now specify the Services and Windows menus in the menu inspector. * User can specify a non-custom subclass as well as a custom one to replace the class when the .gorm is unarchived. This can be used to turn a NSTextField into NSSecureTextField and etc. * New set name panel. * New switch control on the font panel to allow the user to specify if a font is encoded with its default size or not. * Added NSStepper and NSStepperCell to the class list to allow creation of custom subclasses. * Windows and Services menus now function correctly. 32 Noteworthy changes in version '0.3.1' ======================================== * New custom class system. * Images now persist correctly when added to a button or view. * Fixed DND * Various bugfixes 33 Noteworthy changes in version '0.3.0' ======================================== * Preferences added. * User can now enable and disable guidlines for easier editing. * Refactored code into GormLib which is a clone of the InterfaceBuilder framework. This facilitates creating palettes and inspectors outside of Gorm. * Added class inspector for easier editing of classes. This gives the user the option to use either the outline view or the inspector to edit new classes. * Added inspectors for the following: NSScrollView, NSProgressIndicator, NSColorWell, GormImageInspector (for images added to .gorm files). * Improved look of NSTabView inspector. * Removed all warnings from the code. * various bug fixes. 34 Noteworthy changes in version '0.2.5'. ========================================= Many fixes and improvements to make the app work better. * Better parsing of headers * Interface code redone as gorm files. * Re-add multiple selection via mouse drag. 35 Noteworthy changes in version '0.2.0' snapshot. ================================================== Gobs of improvements, mostly due to the hard work of Gregory John Casamento and Pierre-Yves Rivaille. Thanks guys! * Custom class support/translations implemented. * Added NSScrollView, NSPopupButton, NSOutlineView, NSTableView editing. * Improved test mode support. * Improved drag n' drop support on many items. * Intelligent placement hints. * Read gmodel files. * More inspectors. * Sound and Image support. * gorm files were changed to directory wrappers for more flexibility. 36 Noteworthy changes in version '0.1.0' ======================================== * load/parses class files for entry into class list. * Pallete/inspectors for date and number formatters * Pallete/Inspectors for browsers and tableViews * NSStepper, NSForm, NSPopupButton pallete item and inspector * Most inspectors greatly improved and fleshed out. * Custom views added. * Ability to edit cells in a matrix. * Ability to change the font of some objects. 37 Noteworthy changes in version '0.0.3' ======================================== * Create stub .m and .h files from new classes * Works better with ProjectCenter. * Handle Ctrl-Drag and Alt-Drag of objects - automatic conversion to matrices and/or increase decrease rows and cols. * Edit NSForms titles in place. * Edit NSBoxes and add subviews. * Support for custom objects. 38 Noteworthy changes in version '0.0.2' ======================================== * Add popup and pulldown menu controls * Menu support * More inspectors * Some support for connections * Much more fleshed out - too numerous to mention. 39 Noteworthy changes in version '0.0.1' ======================================== * 8th December 1999 * 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. gorm-1.2.24/GormObjCHeaderParser/0000755000000000000000000000000013426741712015201 5ustar rootrootgorm-1.2.24/GormObjCHeaderParser/NSScanner+OCHeaderParser.m0000644000000000000000000000337613410616261021776 0ustar rootroot/* NSScanner+OCHeaderParser.h * * Copyright (C) 1999 Free Software Foundation, Inc. * * Author: Gregory John Casamento * Date: 1999, 2002 * * This file is part of GNUstep. * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 3 of the License, or * (at your option) any later version. * * This program 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 General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. */ #include #include @implementation NSScanner (OCHeaderParser) - (void) scanUpToAndIncludingString: (NSString *)string intoString: (NSString **)buffer { NSString *buffer2 = nil; [self scanUpToString: string intoString: buffer]; [self scanString: string intoString: &buffer2]; if(buffer != NULL) { if(*buffer != NULL) { *buffer = [*buffer stringByAppendingString: buffer2]; } } } - (void) scanUpToAndIncludingCharactersFromSet: (NSCharacterSet *)set intoString: (NSString **)buffer { NSString *buffer2 = nil; [self scanUpToCharactersFromSet: set intoString: buffer]; [self scanCharactersFromSet: set intoString: &buffer2]; if(buffer != NULL) { if(*buffer != NULL) { *buffer = [*buffer stringByAppendingString: buffer2]; } } } @end gorm-1.2.24/GormObjCHeaderParser/OCIVarDecl.h0000644000000000000000000000227213410616261017221 0ustar rootroot/* OCHeaderParser.h * * Copyright (C) 1999 Free Software Foundation, Inc. * * Author: Gregory John Casamento * Date: 1999, 2002 * * This file is part of GNUstep. * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 3 of the License, or * (at your option) any later version. * * This program 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 General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. */ #include #ifndef INCLUDED_OCIVarDecl_h #define INCLUDED_OCIVarDecl_h @class NSMutableArray, NSString; @interface OCIVarDecl : NSObject { NSString *ivarString; NSMutableArray *ivars; } - (id) initWithString: (NSString *)string; - (NSArray *) ivars; - (void) parse; @end #endif gorm-1.2.24/GormObjCHeaderParser/OCHeaderParser.h0000644000000000000000000000232413410616261020133 0ustar rootroot/* OCHeaderParser.h * * Copyright (C) 1999 Free Software Foundation, Inc. * * Author: Gregory John Casamento * Date: 1999, 2002 * * This file is part of GNUstep. * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 3 of the License, or * (at your option) any later version. * * This program 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 General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. */ #include #ifndef INCLUDED_OCHeaderParser_h #define INCLUDED_OCHeaderParser_h @class NSMutableArray, NSString; @interface OCHeaderParser : NSObject { NSMutableArray *classes; NSString *fileData; } - (id) initWithContentsOfFile: (NSString *)file; - (NSMutableArray *)classes; - (BOOL) parse; @end #endif gorm-1.2.24/GormObjCHeaderParser/ParserFunctions.h0000644000000000000000000000217513410616261020475 0ustar rootroot/* ParserFunctions.h * * Copyright (C) 2005 Free Software Foundation, Inc. * * Author: Gregory John Casamento * Date: Jan 2005 * * This file is part of GNUstep. * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 3 of the License, or * (at your option) any later version. * * This program 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 General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. */ #ifndef INCLUDED_ParserFunctions_h #define INCLUDED_ParserFunctions_h #include BOOL lookAhead(NSString *stringToScan, NSString *stringToFind); BOOL lookAheadForToken(NSString *stringToScan, NSString *stringToFind); #endif gorm-1.2.24/GormObjCHeaderParser/OCMethod.h0000644000000000000000000000264513410616261017014 0ustar rootroot/* OCMethod.h * * Copyright (C) 1999 Free Software Foundation, Inc. * * Author: Gregory John Casamento * Date: 1999, 2002 * * This file is part of GNUstep. * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 3 of the License, or * (at your option) any later version. * * This program 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 General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. */ #include #ifndef INCLUDED_OCMethod_h #define INCLUDED_OCMethod_h @class NSMutableArray, NSString; @interface OCMethod : NSObject { NSString *name; NSString *methodString; BOOL isAction; BOOL isClassMethod; } - (id) initWithString: (NSString *)string; - (NSString *)name; - (void) setName: (NSString *)aName; - (BOOL) isAction; - (void) setIsAction: (BOOL)flag; - (BOOL) isClassMethod; - (void) setIsClassMethod: (BOOL) flag; - (void) parse; @end #endif gorm-1.2.24/GormObjCHeaderParser/OCClass.m0000644000000000000000000001522213410616261016641 0ustar rootroot/* OCClass.m * * Copyright (C) 1999 Free Software Foundation, Inc. * * Author: Gregory John Casamento * Date: 1999, 2002 * * This file is part of GNUstep. * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 3 of the License, or * (at your option) any later version. * * This program 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 General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. */ #include #include #include #include #include #include #include #include #include #include @implementation OCClass - (id) initWithString: (NSString *)string { if((self = [super init]) != nil) { methods = [[NSMutableArray alloc] init]; ivars = [[NSMutableArray alloc] init]; ASSIGN(classString, string); } return self; } - (void) dealloc { RELEASE(methods); RELEASE(ivars); RELEASE(classString); RELEASE(className); RELEASE(superClassName); [super dealloc]; } - (NSArray *) methods { return methods; } - (void) addMethod: (NSString *)name isAction: (BOOL) flag { OCMethod *method = AUTORELEASE([[OCMethod alloc] init]); [method setName: name]; [method setIsAction: flag]; [methods addObject: method]; } - (NSArray *) ivars { return ivars; } - (void) addIVar: (NSString *)name isOutlet: (BOOL) flag { OCIVar *ivar = AUTORELEASE([[OCIVar alloc] init]); [ivar setName: name]; [ivar setIsOutlet: flag]; [ivars addObject: ivar]; } - (NSString *) className { return className; } - (void) setClassName: (NSString *)name { ASSIGN(className, name); } - (NSString *) superClassName { return superClassName; } - (void) setSuperClassName: (NSString *)name { ASSIGN(superClassName,name); } - (BOOL) isCategory { return isCategory; } - (void) setIsCategory: (BOOL)flag { isCategory = flag; } - (void) _strip { NSScanner *stripScanner = [NSScanner scannerWithString: classString]; NSString *resultString = @""; NSCharacterSet *wsnl = [NSCharacterSet whitespaceAndNewlineCharacterSet]; while(![stripScanner isAtEnd]) { NSString *string = nil; [stripScanner scanUpToCharactersFromSet: wsnl intoString: &string]; resultString = [resultString stringByAppendingString: string]; if(![stripScanner isAtEnd]) { resultString = [resultString stringByAppendingString: @" "]; } } ASSIGN(classString, resultString); } - (void) parse { NSScanner *scanner = nil; NSScanner *iscan = nil; NSString *interfaceLine = nil; NSString *methodsString = nil; NSString *ivarsString = nil; NSCharacterSet *wsnl = [NSCharacterSet whitespaceAndNewlineCharacterSet]; NSCharacterSet *pmcs = [NSCharacterSet characterSetWithCharactersInString: @"+-"]; // get the interface line... look ahead... [self _strip]; scanner = [NSScanner scannerWithString: classString]; if(lookAhead(classString, @"{")) { [scanner scanUpToString: @"@interface" intoString: NULL]; [scanner scanUpToString: @"{" intoString: &interfaceLine]; iscan = [NSScanner scannerWithString: interfaceLine]; // reset scanner... } else // if there is no "{", then there are no ivars... { [scanner scanUpToString: @"@interface" intoString: NULL]; [scanner scanUpToCharactersFromSet: pmcs intoString: &interfaceLine]; iscan = [NSScanner scannerWithString: interfaceLine]; // reset scanner... } // look ahead... if(lookAhead(interfaceLine, @":")) { NSString *cn = nil, *scn = nil; [iscan scanUpToAndIncludingString: @"@interface" intoString: NULL]; [iscan scanUpToString: @":" intoString: &cn]; className = [cn stringByTrimmingCharactersInSet: wsnl]; RETAIN(className); [iscan scanString: @":" intoString: NULL]; [iscan scanUpToCharactersFromSet: wsnl intoString: &scn]; superClassName = [scn stringByTrimmingCharactersInSet: wsnl]; RETAIN(superClassName); } else // category... { NSString *cn = nil; [iscan scanUpToAndIncludingString: @"@interface" intoString: NULL]; [iscan scanUpToCharactersFromSet: wsnl intoString: &cn]; className = [cn stringByTrimmingCharactersInSet: wsnl]; RETAIN(className); // check to see if it's a category on an existing interface... if(lookAhead(interfaceLine,@"(")) { isCategory = YES; } } if(isCategory == NO) { NSScanner *ivarScan = nil; // put the ivars into a a string... [scanner scanUpToAndIncludingString: @"{" intoString: NULL]; [scanner scanUpToString: @"}" intoString: &ivarsString]; [scanner scanString: @"}" intoString: NULL]; if(ivarsString != nil) { // scan each ivar... ivarScan = [NSScanner scannerWithString: ivarsString]; while(![ivarScan isAtEnd]) { NSString *ivarLine = nil; OCIVarDecl *ivarDecl = nil; [ivarScan scanUpToString: @";" intoString: &ivarLine]; [ivarScan scanString: @";" intoString: NULL]; ivarDecl = AUTORELEASE([[OCIVarDecl alloc] initWithString: ivarLine]); [ivarDecl parse]; [ivars addObjectsFromArray: [ivarDecl ivars]]; } } } // put the methods into a string... if(ivarsString != nil) { [scanner scanUpToString: @"@end" intoString: &methodsString]; } else // { scanner = [NSScanner scannerWithString: classString]; [scanner scanUpToAndIncludingString: interfaceLine intoString: NULL]; [scanner scanUpToString: @"@end" intoString: &methodsString]; } // scan each method... if(methodsString != nil) { NSScanner *methodScan = [NSScanner scannerWithString: methodsString]; while(![methodScan isAtEnd]) { NSString *methodLine = nil; OCMethod *method = nil; [methodScan scanUpToString: @";" intoString: &methodLine]; [methodScan scanString: @";" intoString: NULL]; method = AUTORELEASE([[OCMethod alloc] initWithString: methodLine]); [method parse]; [methods addObject: method]; } } } @end gorm-1.2.24/GormObjCHeaderParser/OCMethod.m0000644000000000000000000001400013410616261017005 0ustar rootroot/* OCHeaderParser.m * * Copyright (C) 1999 Free Software Foundation, Inc. * * Author: Gregory John Casamento * Date: 1999, 2002 * * This file is part of GNUstep. * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 3 of the License, or * (at your option) any later version. * * This program 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 General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. */ #include #include #include @implementation OCMethod - (id) initWithString: (NSString *)string { if((self = [super init]) != nil) { ASSIGN(methodString, string); } return self; } - (void) dealloc { RELEASE(methodString); RELEASE(name); [super dealloc]; } - (NSString *) name { return name; } - (void) setName: (NSString *)aName { ASSIGN(name,aName); } - (BOOL) isAction { return isAction; } - (void) setIsAction: (BOOL)flag { isAction = flag; } - (BOOL) isClassMethod { return isClassMethod; } - (void) setIsClassMethod: (BOOL) flag { isClassMethod = flag; } - (void) _strip { NSScanner *stripScanner = [NSScanner scannerWithString: methodString]; NSString *resultString = @""; // [NSString stringWithString: @""]; NSCharacterSet *wsnl = [NSCharacterSet whitespaceAndNewlineCharacterSet]; while(![stripScanner isAtEnd]) { NSString *string = nil; [stripScanner scanUpToCharactersFromSet: wsnl intoString: &string]; resultString = [resultString stringByAppendingString: string]; if(![stripScanner isAtEnd]) { resultString = [resultString stringByAppendingString: @" "]; } } ASSIGN(methodString, resultString); } /** * Parse the method. */ - (void) parse { NSRange notFound = NSMakeRange(NSNotFound,0); NSCharacterSet *wsnl = [NSCharacterSet whitespaceAndNewlineCharacterSet]; NSScanner *scanner = nil; NSString *tempSelector = nil; NSString *selectorPart = nil; NSString *returnPart = nil; NSString *argPart = nil; NSRange range; [self _strip]; scanner = [NSScanner scannerWithString: methodString]; // stringByTrimmingCharactersInSet: wsnl]]; isClassMethod = ([methodString compare: @"+" options: NSLiteralSearch range: NSMakeRange(0,1)] == NSOrderedSame); if(isClassMethod) { [scanner scanString: @"+" intoString: NULL]; [scanner scanCharactersFromSet: wsnl intoString: NULL]; } else { [scanner scanString: @"-" intoString: NULL]; [scanner scanCharactersFromSet: wsnl intoString: NULL]; } if(NSEqualRanges((range = [methodString rangeOfString: @":"]),notFound) == NO && isClassMethod == NO) { [scanner scanUpToAndIncludingString: @":" intoString: &tempSelector]; argPart = [methodString substringFromIndex: (range.location + 1)]; // the rest of the line... if(NSEqualRanges([tempSelector rangeOfString: @"("],notFound) == NO) { NSScanner *selScanner = [NSScanner scannerWithString: tempSelector]; [selScanner scanUpToAndIncludingString: @"(" intoString: NULL]; [selScanner scanUpToString: @")" intoString: &returnPart]; [selScanner scanString: @")" intoString: NULL]; [selScanner scanUpToAndIncludingString: @":" intoString: &selectorPart]; if([returnPart isEqual: @"IBAction"] || [returnPart isEqual: @"id"] || [returnPart isEqual: @"void"]) { BOOL noMoreArgs = NSEqualRanges([argPart rangeOfString: @":"],notFound); if(NSEqualRanges([argPart rangeOfString: @"("],notFound) == NO && noMoreArgs) { NSString *argType = nil; NSScanner *argScanner = [NSScanner scannerWithString: argPart]; [argScanner scanUpToAndIncludingString: @"(" intoString: NULL]; [argScanner scanUpToString: @")" intoString: &argType]; [argScanner scanString: @")" intoString: NULL]; if([argType isEqual: @"id"]) { isAction = YES; } } else if(noMoreArgs) { isAction = YES; } else { selectorPart = [selectorPart stringByAppendingString: argPart]; } } ASSIGN(name, [selectorPart stringByTrimmingCharactersInSet: wsnl]); } else // No return type specified. The default is id, so we must treat it as a potential action... { BOOL noMoreArgs = NSEqualRanges([argPart rangeOfString: @":"],notFound); NSScanner *selScanner = [NSScanner scannerWithString: tempSelector]; [selScanner scanUpToAndIncludingString: @":" intoString: &selectorPart]; if(NSEqualRanges([argPart rangeOfString: @"("],notFound) == NO && noMoreArgs) { NSString *argType = nil; NSScanner *argScanner = [NSScanner scannerWithString: argPart]; [argScanner scanUpToAndIncludingString: @"(" intoString: NULL]; [argScanner scanUpToString: @")" intoString: &argType]; [argScanner scanString: @")" intoString: NULL]; if([argType isEqual: @"id"]) { isAction = YES; } } else if(noMoreArgs) { isAction = YES; } else { selectorPart = [selectorPart stringByAppendingString: argPart]; } ASSIGN(name, [selectorPart stringByTrimmingCharactersInSet: wsnl]); } } else { [scanner scanUpToCharactersFromSet: wsnl intoString: &tempSelector]; if(NSEqualRanges([tempSelector rangeOfString: @"("],notFound) == NO) { NSScanner *selScanner = [NSScanner scannerWithString: tempSelector]; [selScanner scanUpToAndIncludingString: @")" intoString: NULL]; [selScanner scanUpToCharactersFromSet: wsnl intoString: &selectorPart]; ASSIGN(name, [selectorPart stringByTrimmingCharactersInSet: wsnl]); } } } @end gorm-1.2.24/GormObjCHeaderParser/OCIVar.h0000644000000000000000000000247413410616261016435 0ustar rootroot/* OCHeaderParser.h * * Copyright (C) 1999 Free Software Foundation, Inc. * * Author: Gregory John Casamento * Date: 1999, 2002 * * This file is part of GNUstep. * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 3 of the License, or * (at your option) any later version. * * This program 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 General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. */ #include #ifndef INCLUDED_OCIVar_h #define INCLUDED_OCIVar_h @class NSMutableArray, NSString; @interface OCIVar : NSObject { NSString *name; BOOL isOutlet; NSString *ivarString; } - (id) initWithString: (NSString *)string; - (NSString *)name; - (void) setName: (NSString *)aName; - (BOOL) isOutlet; - (void) setIsOutlet: (BOOL)flag; - (void) parse; @end #endif gorm-1.2.24/GormObjCHeaderParser/OCHeaderParser.m0000644000000000000000000001252113410616261020140 0ustar rootroot/* OCHeaderParser.m * * Copyright (C) 1999 Free Software Foundation, Inc. * * Author: Gregory John Casamento * Date: 1999, 2002 * * This file is part of GNUstep. * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 3 of the License, or * (at your option) any later version. * * This program 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 General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. */ #include #include #include #include @implementation OCHeaderParser +(void) initialize { if(self == [OCHeaderParser class]) { // } } - (id) initWithContentsOfFile: (NSString *)file { if((self = [super init]) != nil) { fileData = [NSString stringWithContentsOfFile: file]; classes = [[NSMutableArray alloc] init]; RETAIN(fileData); } return self; } - (void) dealloc { RELEASE(classes); RELEASE(fileData); [super dealloc]; } - (NSMutableArray *)classes { return classes; } - (void) _stripComments { NSScanner *scanner = [NSScanner scannerWithString: fileData]; NSString *resultString = @""; NSString *finalString = @""; // strip all of the one line comments out... [scanner setCharactersToBeSkipped: nil]; while(![scanner isAtEnd]) { NSString *tempString = nil; [scanner scanUpToString: @"//" intoString: &tempString]; [scanner scanUpToString: @"\n" intoString: NULL]; resultString = [resultString stringByAppendingString: tempString]; } // strip all of the multiline comments out... scanner = [NSScanner scannerWithString: resultString]; [scanner setCharactersToBeSkipped: nil]; while(![scanner isAtEnd]) { NSString *tempString = nil; [scanner scanUpToString: @"/*" intoString: &tempString]; [scanner scanUpToAndIncludingString: @"*/" intoString: NULL]; finalString = [finalString stringByAppendingString: tempString]; } // make this our new fileData... ASSIGN(fileData, finalString); } - (void) _stripPreProcessor { NSScanner *scanner = [NSScanner scannerWithString: fileData]; NSString *resultString = @""; // [NSString stringWithString: @""]; // strip all of the one line comments out... [scanner setCharactersToBeSkipped: nil]; while(![scanner isAtEnd]) { NSString *tempString = @""; [scanner scanUpToString: @"#" intoString: &tempString]; [scanner scanUpToAndIncludingString: @"\n" intoString: NULL]; resultString = [resultString stringByAppendingString: tempString]; } // make this our new fileData... ASSIGN(fileData,resultString); } - (void) _stripRedundantStatements { NSScanner *scanner = [NSScanner scannerWithString: fileData]; NSString *resultString = @""; // [NSString stringWithString: @""]; // strip all of the one line comments out... [scanner setCharactersToBeSkipped: nil]; while(![scanner isAtEnd]) { NSString *tempString = nil, *aString = nil; // [scanner scanUpToString: @";" intoString: &tempString]; // [scanner scanString: @";" intoString: &tempString2]; [scanner scanUpToAndIncludingString: @";" intoString: &tempString]; // Scan any redundant ";" characters into aString... once it // returns nil we know we're done. do { aString = nil; [scanner scanString: @";" intoString: &aString]; } while([aString isEqualToString:@";"]); [scanner scanUpToAndIncludingString: @"\n" intoString: NULL]; resultString = [resultString stringByAppendingString: tempString]; } // make this our new fileData... ASSIGN(fileData,resultString); } - (void) _preProcessFile { [self _stripComments]; [self _stripPreProcessor]; [self _stripRedundantStatements]; } - (BOOL) _processClasses { NSScanner *scanner = [NSScanner scannerWithString: fileData]; BOOL result = YES; NS_DURING { // get all of the classes... while(![scanner isAtEnd]) { NSString *classString = nil; OCClass *cls = nil; [scanner scanUpToString: @"@interface" intoString: NULL]; [scanner scanUpToAndIncludingString: @"@end" intoString: &classString]; if(classString != nil && [classString length] != 0) { cls = AUTORELEASE([[OCClass alloc] initWithString: classString]); [cls parse]; [classes addObject: cls]; } } // if we got zero classes, return NO. if([classes count] == 0) { result = NO; } } NS_HANDLER { NSLog(@"%@",localException); result = NO; } NS_ENDHANDLER return result; } - (BOOL) parse { BOOL result = NO; [self _preProcessFile]; NS_DURING { // parse the header here... result = [self _processClasses]; } NS_HANDLER { // exception while processing... NSLog(@"%@",localException); result = NO; } NS_ENDHANDLER return result; } @end gorm-1.2.24/GormObjCHeaderParser/ParserFunctions.m0000644000000000000000000000353213410616261020500 0ustar rootroot/* ParserFunctions.m * * Copyright (C) 2005 Free Software Foundation, Inc. * * Author: Gregory John Casamento * Date: Jan 2005 * * This file is part of GNUstep. * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 3 of the License, or * (at your option) any later version. * * This program 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 General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. */ #include #include "ParserFunctions.h" BOOL lookAhead(NSString *stringToScan, NSString *stringToFind) { NSRange range; return (NSEqualRanges((range = [stringToScan rangeOfString: stringToFind]), NSMakeRange(NSNotFound,0)) == NO); } BOOL lookAheadForToken(NSString *stringToScan, NSString *stringToFind) { NSScanner *scanner = [NSScanner scannerWithString: stringToScan]; NSString *resultString = @""; // [NSString stringWithString: @""]; [scanner setCharactersToBeSkipped: nil]; [scanner scanString: stringToFind intoString: &resultString]; if([resultString isEqualToString: stringToFind]) { NSString *postTokenString = @""; // [NSString stringWithString: @""]; NSCharacterSet *wsnl = [NSCharacterSet whitespaceAndNewlineCharacterSet]; [scanner scanCharactersFromSet: wsnl intoString: &postTokenString]; if([postTokenString length] == 0) { return NO; } return YES; } return NO; } gorm-1.2.24/GormObjCHeaderParser/GNUmakefile0000644000000000000000000000216313410616261017246 0ustar rootroot# # GNUmakefile # Written by Gregory John Casamento # PACKAGE_NAME = gorm include $(GNUSTEP_MAKEFILES)/common.make # # Subprojects # # # Library # LIBRARY_VAR=GMOBJCHEADERPARSER LIBRARY_NAME=libGormObjCHeaderParser libGormObjCHeaderParser_HEADER_FILES_DIR=. libGormObjCHeaderParser_HEADER_FILES_INSTALL_DIR=/GormObjCHeaderParser ADDITIONAL_INCLUDE_DIRS = -I.. srcdir = . include ./Version # # Additional libraries # libGormObjCHeaderParser_LIBRARIES_DEPEND_UPON += -lgnustep-gui -l$(FOUNDATION_LIBRARY_NAME) # # Header files # libGormObjCHeaderParser_HEADER_FILES= \ NSScanner+OCHeaderParser.h \ OCClass.h \ OCHeaderParser.h \ OCIVar.h \ OCIVarDecl.h \ OCMethod.h \ ParserFunctions.h # # Class files # libGormObjCHeaderParser_OBJC_FILES= \ NSScanner+OCHeaderParser.m \ OCClass.m \ OCHeaderParser.m \ OCIVar.m \ OCIVarDecl.m \ OCMethod.m \ ParserFunctions.m # # C files # libGormObjCHeaderParser_C_FILES= HEADERS_INSTALL = $(libGormObjCHeaderParser_HEADER_FILES) -include GNUmakefile.preamble -include GNUmakefile.local include $(GNUSTEP_MAKEFILES)/library.make -include GNUmakefile.postamble gorm-1.2.24/GormObjCHeaderParser/NSScanner+OCHeaderParser.h0000644000000000000000000000254013410616261021761 0ustar rootroot/* NSScanner+OCHeaderParser.h * * Copyright (C) 1999 Free Software Foundation, Inc. * * Author: Gregory John Casamento * Date: 1999, 2002 * * This file is part of GNUstep. * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 3 of the License, or * (at your option) any later version. * * This program 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 General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. */ #include #ifndef INCLUDED_NSScanner_OCHeaderParser_h #define INCLUDED_NSScanner_OCHeaderParser_h @class NSString, NSCharacterSet; @interface NSScanner (OCHeaderParser) - (void) scanUpToAndIncludingString: (NSString *)string intoString: (NSString **)buffer; - (void) scanUpToAndIncludingCharactersFromSet: (NSCharacterSet *)set intoString: (NSString **)buffer; @end #endif gorm-1.2.24/GormObjCHeaderParser/Version0000644000000000000000000000064613410616261016550 0ustar rootroot # This file is included in various Makefile's to get version information. # Compatible with Bourne shell syntax, so it can included there too. # The gcc version required to compile the library. GNUSTEP_GCC=3.1.0 # GNUstep version required GNUSTEP_CORE_VERSION=0.11.0 # The version number of this release. MAJOR_VERSION=1 MINOR_VERSION=1 SUBMINOR_VERSION=0 VERSION=${MAJOR_VERSION}.${MINOR_VERSION}.${SUBMINOR_VERSION} gorm-1.2.24/GormObjCHeaderParser/OCIVarDecl.m0000644000000000000000000001103213410616261017220 0ustar rootroot/* OCIVarDecl.m * * Copyright (C) 2004 Free Software Foundation, Inc. * * Author: Gregory John Casamento * Date: 2004 * * This file is part of GNUstep. * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 3 of the License, or * (at your option) any later version. * * This program 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 General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. */ #include #include #include #include #include @implementation OCIVarDecl - (id) initWithString: (NSString *)string { if((self = [super init]) != nil) { ASSIGN(ivarString, string); ivars = [[NSMutableArray alloc] init]; } else { RELEASE(self); } return self; } - (NSArray *)ivars { return ivars; } - (void) dealloc { RELEASE(ivarString); RELEASE(ivars); [super dealloc]; } - (void) _strip { NSString *replacementString = [ivarString stringByReplacingOccurrencesOfString:@"*" withString:@" "]; NSScanner *stripScanner = [NSScanner scannerWithString: replacementString]; NSString *resultString = nil; NSString *tempString = @""; NSString *tempString2 = @""; NSCharacterSet *wsnl = [NSCharacterSet whitespaceAndNewlineCharacterSet]; NSString *typeName = @""; NSString *varName = @""; while(![stripScanner isAtEnd]) { NSString *string = nil; [stripScanner scanUpToCharactersFromSet: wsnl intoString: &string]; tempString = [tempString stringByAppendingString: string]; if(![stripScanner isAtEnd]) { tempString = [tempString stringByAppendingString: @" "]; } } if(lookAhead(tempString, @"*")) { stripScanner = [NSScanner scannerWithString: tempString]; while(![stripScanner isAtEnd]) { NSString *string = nil, *string2 = nil; [stripScanner scanUpToString: @"*" intoString: &string]; [stripScanner scanString: @"*" intoString: NULL]; [stripScanner scanUpToCharactersFromSet: wsnl intoString: &string2]; tempString2 = [tempString2 stringByAppendingString: string]; tempString2 = [tempString2 stringByAppendingString: string2]; } } else { tempString2 = tempString; } // strip protocol qualifiers if(lookAhead(tempString2,@"<")) { stripScanner = [NSScanner scannerWithString: tempString2]; [stripScanner scanUpToString: @"<" intoString: &typeName]; [stripScanner scanUpToAndIncludingString: @">" intoString: NULL]; [stripScanner scanUpToCharactersFromSet: wsnl intoString: &varName]; resultString = [[typeName stringByAppendingString: @" "] stringByAppendingString: varName]; } else { resultString = tempString2; } ASSIGN(ivarString, resultString); } - (void) parse { NSCharacterSet *wsnl = [NSCharacterSet whitespaceAndNewlineCharacterSet]; [self _strip]; if(lookAhead(ivarString,@",")) { OCIVar *ivar = nil; NSScanner *scanner = [NSScanner scannerWithString: ivarString]; NSString *tempIvar = nil; BOOL isOutlet = NO; // scan the first one in... [scanner scanUpToString: @"," intoString: &tempIvar]; [scanner scanString: @"," intoString: NULL]; ivar = AUTORELEASE([[OCIVar alloc] initWithString: tempIvar]); [ivar parse]; [ivars addObject: ivar]; isOutlet = [ivar isOutlet]; while(![scanner isAtEnd]) { NSString *name = nil; OCIVar *newIvar = nil; [scanner scanCharactersFromSet: wsnl intoString: NULL]; [scanner scanUpToString: @"," intoString: &name]; [scanner scanString: @"," intoString: NULL]; [scanner scanCharactersFromSet: wsnl intoString: NULL]; newIvar = AUTORELEASE([[OCIVar alloc] initWithString: nil]); [newIvar setName: name]; [newIvar setIsOutlet: isOutlet]; [ivars addObject: newIvar]; } } else // for everything else... { OCIVar *ivar = AUTORELEASE([[OCIVar alloc] initWithString: ivarString]); [ivar parse]; [ivars addObject: ivar]; } } @end gorm-1.2.24/GormObjCHeaderParser/OCClass.h0000644000000000000000000000332213410616261016632 0ustar rootroot/* OCHeaderParser.h * * Copyright (C) 1999 Free Software Foundation, Inc. * * Author: Gregory John Casamento * Date: 1999, 2002 * * This file is part of GNUstep. * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 3 of the License, or * (at your option) any later version. * * This program 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 General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. */ #include #ifndef INCLUDED_OCClass_h #define INCLUDED_OCClass_h @class NSMutableArray, NSString; @interface OCClass : NSObject { NSMutableArray *ivars; NSMutableArray *methods; NSMutableArray *protocols; NSString *className; NSString *superClassName; NSString *classString; BOOL isCategory; } - (id) initWithString: (NSString *)string; - (NSArray *) methods; - (void) addMethod: (NSString *)name isAction: (BOOL) flag; - (NSArray *) ivars; - (void) addIVar: (NSString *)name isOutlet: (BOOL) flag; - (NSString *) className; - (void) setClassName: (NSString *)name; - (NSString *) superClassName; - (void) setSuperClassName: (NSString *)name; - (BOOL) isCategory; - (void) setIsCategory: (BOOL)flag; - (void) parse; @end #endif gorm-1.2.24/GormObjCHeaderParser/OCIVar.m0000644000000000000000000000770413410616261016443 0ustar rootroot/* OCHeaderParser.m * * Copyright (C) 1999 Free Software Foundation, Inc. * * Author: Gregory John Casamento * Date: 1999, 2002 * * This file is part of GNUstep. * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 3 of the License, or * (at your option) any later version. * * This program 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 General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. */ #include #include #include #include @implementation OCIVar - (id) initWithString: (NSString *)string { if((self = [super init]) != nil) { ASSIGN(ivarString, [string copy]); } return self; } - (void) dealloc { RELEASE(ivarString); RELEASE(name); [super dealloc]; } - (NSString *) name { return name; } - (void) setName: (NSString *)aName { ASSIGN(name,aName); } - (BOOL) isOutlet { return isOutlet; } - (void) setIsOutlet: (BOOL)flag { isOutlet = flag; } - (void) _strip { NSString *replacementString = [ivarString stringByReplacingOccurrencesOfString:@"*" withString:@" "]; NSScanner *stripScanner = [NSScanner scannerWithString: replacementString]; NSString *resultString = @""; NSCharacterSet *wsnl = [NSCharacterSet whitespaceAndNewlineCharacterSet]; // [stripScanner setCharactersToBeSkipped: [NSCharacterSet characterSetWithCharactersInString: @"*"]]; // string whitespace while(![stripScanner isAtEnd]) { NSString *string = nil; [stripScanner scanUpToCharactersFromSet: wsnl intoString: &string]; resultString = [resultString stringByAppendingString: string]; if(![stripScanner isAtEnd]) { resultString = [resultString stringByAppendingString: @" "]; } } ASSIGN(ivarString, resultString); } - (void) parse { NSCharacterSet *wsnl = [NSCharacterSet whitespaceAndNewlineCharacterSet]; NSScanner *scanner = nil; NSString *tempName = nil; [self _strip]; scanner = [NSScanner scannerWithString: ivarString]; [scanner setCharactersToBeSkipped: [NSCharacterSet characterSetWithCharactersInString: @"*"]]; if(lookAhead(ivarString,@"IBOutlet")) { [scanner scanUpToAndIncludingString: @"IBOutlet" intoString: NULL]; // return type [scanner scanCharactersFromSet: wsnl intoString: NULL]; [scanner scanUpToCharactersFromSet: wsnl intoString: NULL]; // typespec... [scanner scanCharactersFromSet: wsnl intoString: NULL]; [scanner scanUpToCharactersFromSet: wsnl intoString: &tempName]; // variable name... [self setIsOutlet: YES]; } else if(lookAheadForToken(ivarString, @"id")) { [scanner scanUpToCharactersFromSet: wsnl intoString: NULL]; // id [scanner scanCharactersFromSet: wsnl intoString: NULL]; [scanner scanUpToCharactersFromSet: wsnl intoString: &tempName]; // id [self setIsOutlet: YES]; } else // for everything else... { [scanner scanUpToCharactersFromSet: wsnl intoString: NULL]; [scanner scanCharactersFromSet: wsnl intoString: NULL]; [scanner scanUpToCharactersFromSet: wsnl intoString: &tempName]; } // fix name... scanner = [NSScanner scannerWithString: tempName]; [scanner setCharactersToBeSkipped: [NSCharacterSet characterSetWithCharactersInString: @"*"]]; // [scanner scanUpToCharactersFromSet: wsnl intoString: &name]; name = [tempName stringByTrimmingCharactersInSet: wsnl]; RETAIN(name); } @end gorm-1.2.24/NOTICE0000644000000000000000000000262313410616261012151 0ustar rootrootHere is an email which was sent to the list Jun 4, 2005: Hey, As promised here's a detailed report of what's happening. As many of you know one problem with moving .gorm files from one machine to another is that sometimes, when the machine which is running the app has a considerably smaller screen than the one on which the app was created, the window will be created against the edge of the screen. This is somewhat annoying. I decided to add information to the GSWindowTemplate in gui and also make it so that all windows in Gorm are archived using the template (whether they are custom or not) so that this information is present in when the window is unarchived and can be used to autoposition the window on the screen. I have also added backwards compatibility changes to Gorm so that it will notify users when the file is going to be updated as well as a new entry in the "File" section of the main window so that it is possible to save it using the previous version. I have tested this extensively for the last couple of days, so I don't expect any issues. I will notify all of you if there are any other changes which might have some impact. Thanks, GJC Gregory John Casamento -- CEO/President Open Logic Corp. (A MD Corp.) ## Maintainer of Gorm (IB Equiv.) for GNUstep. ------------------ BTW, forgot to mention: You MUST update core (specifically gui) and Gorm together for this change. Later, GJC gorm-1.2.24/GNUmakefile0000644000000000000000000001266213410616261013323 0ustar rootroot# GNUmakefile: main makefile for GNUstep Object Relationship Modeller # # Copyright (C) 1999,2002,2003 Free Software Foundation, Inc. # # Author: Gregory John Casamento # Date: 2003 # Author: Richard Frith-Macdonald # Date: 1999 # # This file is part of GNUstep. # # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 2 of the License, or # (at your option) any later version. # # This program 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 General Public License for more details. # # You should have received a copy of the GNU General Public License # along with this program; if not, write to the Free Software # Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. # ifeq ($(GNUSTEP_MAKEFILES),) GNUSTEP_MAKEFILES := $(shell gnustep-config --variable=GNUSTEP_MAKEFILES 2>/dev/null) ifeq ($(GNUSTEP_MAKEFILES),) $(warning ) $(warning Unable to obtain GNUSTEP_MAKEFILES setting from gnustep-config!) $(warning Perhaps gnustep-make is not properly installed,) $(warning so gnustep-config is not in your PATH.) $(warning ) $(warning Your PATH is currently $(PATH)) $(warning ) endif endif ifeq ($(GNUSTEP_MAKEFILES),) $(error You need to set GNUSTEP_MAKEFILES before compiling!) endif PACKAGE_NAME = gorm export PACKAGE_NAME include $(GNUSTEP_MAKEFILES)/common.make CVS_MODULE_NAME = gorm SVN_MODULE_NAME = gorm SVN_BASE_URL = svn+ssh://svn.gna.org/svn/gnustep/apps include ./Version # # Each palette is a subproject # SUBPROJECTS = \ GormObjCHeaderParser \ GormLib \ GormCore \ GormPrefs \ Palettes \ Plugins # # MAIN APP # APP_NAME = Gorm Gorm_PRINCIPAL_CLASS=Gorm Gorm_APPLICATION_ICON=Gorm.tiff Gorm_RESOURCE_FILES = \ GormInfo.plist \ Resources/ClassInformation.plist \ Resources/VersionProfiles.plist \ Resources/Defaults.plist \ Palettes/0Menus/0Menus.palette \ Palettes/1Windows/1Windows.palette \ Palettes/2Controls/2Controls.palette \ Palettes/3Containers/3Containers.palette \ Palettes/4Data/4Data.palette \ Plugins/Gorm/Gorm.plugin \ Plugins/Nib/Nib.plugin \ Plugins/GModel/GModel.plugin \ Plugins/Xib/Xib.plugin \ Images/GormClass.tiff \ Images/GormFilesOwner.tiff \ Images/GormFirstResponder.tiff \ Images/GormFontManager.tiff \ Images/GormImage.tiff \ Images/GormWindow.tiff \ Images/GormMenu.tiff \ Images/GormObject.tiff \ Images/GormSound.tiff \ Images/GormUnknown.tiff \ Images/GormSourceTag.tiff \ Images/GormTargetTag.tiff \ Images/GormLinkImage.tiff \ Images/GormEHCoil.tiff \ Images/GormEHLine.tiff \ Images/GormEVCoil.tiff \ Images/GormEVLine.tiff \ Images/GormMHCoil.tiff \ Images/GormMHLine.tiff \ Images/GormMVCoil.tiff \ Images/GormMVLine.tiff \ Images/Gorm.tiff \ Images/GormFile.tiff \ Images/GormNib.tiff \ Images/GormPalette.tiff \ Images/leftalign_nib.tiff \ Images/rightalign_nib.tiff \ Images/centeralign_nib.tiff \ Images/justifyalign_nib.tiff \ Images/naturalalign_nib.tiff \ Images/iconAbove_nib.tiff \ Images/iconBelow_nib.tiff \ Images/iconLeft_nib.tiff \ Images/iconOnly_nib.tiff \ Images/iconRight_nib.tiff \ Images/titleOnly_nib.tiff \ Images/line_nib.tiff \ Images/bezel_nib.tiff \ Images/noBorder_nib.tiff \ Images/ridge_nib.tiff \ Images/button_nib.tiff \ Images/shortbutton_nib.tiff \ Images/photoframe_nib.tiff \ Images/date_formatter.tiff \ Images/number_formatter.tiff \ Images/Sunday_seurat.tiff \ Images/iconBottomLeft_nib.tiff \ Images/iconBottomRight_nib.tiff \ Images/iconBottom_nib.tiff \ Images/iconCenterLeft_nib.tiff \ Images/iconCenterRight_nib.tiff \ Images/iconCenter_nib.tiff \ Images/iconTopLeft_nib.tiff \ Images/iconTopRight_nib.tiff \ Images/iconTop_nib.tiff \ Images/GormAction.tiff \ Images/GormOutlet.tiff \ Images/GormActionSelected.tiff \ Images/GormOutletSelected.tiff \ Images/FileIcon_gmodel.tiff \ Images/tabtop_nib.tiff \ Images/tabbot_nib.tiff \ Images/GormView.tiff \ Images/LeftArr.tiff \ Images/RightArr.tiff \ Images/GormTesting.tiff \ Images/outlineView.tiff \ Images/browserView.tiff Gorm_LOCALIZED_RESOURCE_FILES = \ GormClassEditor.gorm \ GormClassInspector.gorm \ GormClassPanel.gorm \ GormConnectionInspector.gorm \ GormCustomClassInspector.gorm \ GormDocument.gorm \ GormDummyInspector.gorm \ GormFontView.gorm \ GormHelpInspector.gorm \ Gorm.gorm \ GormImageInspector.gorm \ GormInconsistenciesPanel.gorm \ GormInspectorPanel.gorm \ GormObjectInspector.gorm \ GormNSSplitViewInspector.gorm \ GormPalettePanel.gorm \ GormPrefColors.gorm \ GormPreferences.gorm \ GormPrefGeneral.gorm \ GormPrefGuideline.gorm \ GormPrefHeaders.gorm \ GormPrefPalettes.gorm \ GormPrefPlugins.gorm \ GormScrollViewAttributesInspector.gorm \ GormSetName.gorm \ GormShelfPref.gorm \ GormSoundInspector.gorm \ GormViewSizeInspector.gorm Gorm_LANGUAGES = \ English Gorm_HEADERS = Gorm_OBJC_FILES = \ Gorm.m \ main.m # Gorm_ADDITIONAL_NATIVE_LIBS = m -include GNUmakefile.preamble -include GNUmakefile.local include $(GNUSTEP_MAKEFILES)/aggregate.make include $(GNUSTEP_MAKEFILES)/application.make -include GNUmakefile.postamble include $(GNUSTEP_MAKEFILES)/Master/nsis.make gorm-1.2.24/ChangeLog0000644000000000000000000151161513426755467013051 0ustar rootroot2019-02-07 02:15-EDT Gregory John Casamento * ANNOUNCE * Documentation/news.texi * GormInfo.plist * NEWS * Version: 1.2.24 2019-01-25 Fred Kiefer * GormCore/GormDocument.m: Fix wrong string type in David Chisnall fix for the new libobjc. 2015-11-05 20:40-EST Gregory John Casamento * GormCore/GormWindowTemplate.m: in baseWindowClass return GormNSPanel if _windowClass is NSPanel. This should probably use GormPalettesManager substituteClasses at some point, but for now this is a workable solution. 2015-05-20 06:19-EDT Gregory John Casamento * ANNOUNCE * NEWS * Version: 1.2.22 2015-05-20 06:16-EDT Gregory John Casamento * ChangeLog * Documentation/news.texi * English.lproj/GormPrefGeneral.gorm * GormCore/GormFilePrefsManager.m * GormInfo.plist * GormPrefs/GormGeneralPref.m * Plugins/Gorm/GormGormWrapperLoader.m: Remove calls to repairFile: as some of the logic in it is outdated and could cause issues with perfectly good gorm files. Disabling pending further development. * Version 2015-05-11 Gregory John Casamento * Palettes/3Containers/GormTabViewAttributesInspector.m * Palettes/3Containers/GormBrowserAttributesInspector.m * GormCore/GormFilePrefsManager.m Use cast to larger type for string formatting to allow compilation on Solaris. 2015-03-02 00:04-EST Gregory John Casamento * GormObjCHeaderParser/NSScanner+OCHeaderParser.m * GormObjCHeaderParser/OCHeaderParser.m: Fix for crash seen after last commit. 2015-03-02 00:04-EST Gregory John Casamento * GormObjCHeaderParser/OCHeaderParser.m: Add _stripRedundantStatements method which eliminates excess empty statements from the code which could confuse the parser. 2015-02-22 21:21-EST Gregory John Casamento * English.lproj/GormPreferences.gorm: Removed from pulldown menu * English.lproj/GormPrefGuideline.gorm: Added colorwell and connections. * GormPrefs/GNUmakefile: Removed classes. * GormPrefs/GormColorsPref.h * GormPrefs/GormColorsPref.m: Removed. * GormPrefs/GormGuidelinePref.h * GormPrefs/GormGuidelinePref.m: Added color well... * GormPrefs/GormPrefController.m: Removed view from case statement 2014-10-28 03:08-EDT Gregory John Casamento * English.lproj/Gorm.gorm: Change connection to point to new selectAll: * GormCore/GormWrapperLoader.m: Fix for bug #42782 * Gorm.m: Add select all method. 2014-08-31 Fred Kiefer * GormCore/GormDocument.m: Rewrite fix for bug #39072 to stop leaking memory. 2014-07-21 Fred Kiefer * GormCore/GormImage.m: Fix the init issue for the second method as well. Small cleanup. 2014-05-31 10:58-EDT Gregory John Casamento * GormCore/GormDocumentController.h: add declaration of openDocumentForContentsOfURL: * GormCore/GormDocumentController.m: add implementation of openDocumentForContentsOfURL: * GormCore/GormDocument.m: Add implementation of revertContentsOfURL:.. Fix bug#28644 2014-05-30 Sebastian Reitenbach * Palettes/2Controls/GormColorWellAttributesInspector.h fix typo in header guard * Palettes/2Controls/GormFormAttributesInspector.m fix some format string warnings 2014-05-28 Riccardo Mottola * GormCore/GormClassInspector.m * GormCore/GormClassManager.m * GormCore/GormFilePrefsManager.m * GormCore/GormInspectorsManager.m Explicitely cast NSIntegers to avoid warning and problems. 2014-05-27 03:26-EDT Gregory John Casamento * GormCore/GormInspectorsManager.m * Palettes/2Controls/GormMatrixAttributesInspector.h * Palettes/2Controls/GormMatrixAttributesInspector.m * Palettes/2Controls/GormNSMatrixInspector.gorm: Fix for bug #28646. 2014-05-27 03:15-EDT Gregory John Casamento * GormCore/GormDocument.m: Fix bug #39072: add retain to prevent segmentation fault when renaming object in document view. 2014-05-26 19:25-EDT Gregory John Casamento * GormObjCHeaderParser/OCIVarDecl.m * GormObjCHeaderParser/OCIVar.m: Fix for bug#30837. 2014-05-26 18:32-EDT Gregory John Casamento * Palettes/2Controls/GormFormAttributesInspector.h * Palettes/2Controls/GormFormAttributesInspector.m * Palettes/2Controls/GormNSFormInspector.gorm: Accept patch on bug#38477 by Sergei Golovin. Allows user to modify the number of items in an NSForm using the inspector. 2014-01-19 Fred Kiefer * Palettes/2Controls/GormButtonAttributesInspector.h: Use NSButton instead of the non-existign NSSwitch. * GormCore/GormViewKnobs.m: Replace DPS calls. Only realloc rect lists if needed. * Plugins/Gorm/GormGormWrapperBuilder.m, * Palettes/2Controls/GormPopUpButtonAttributesInspector.m, * Palettes/2Controls/GormButtonEditor.m: Remove compiler warnings. 2014-01-19 Fred Kiefer * GormCore/GormResourceManager.m, * GormCore/GormResource.m, * GormCore/GormOutlineView.m, * GormCore/GormObjectEditor.m, * GormCore/GormClassManager.m: Remove compiler warnings. 2014-01-19 Fred Kiefer * GormInfo.plist: Don't claim to be able to write XIB files. 2013-12-31 Fred Kiefer * GormCore/GormResourceManager.m (-resourcePasteboardTypes): Add IBMenuPboardType to work around menus not being draggable. 2013-11-04 10:03-EST Gregory John Casamento * GormCore/GormBoxEditor.m * GormCore/GormClassEditor.m * GormCore/GormClassInspector.m * GormCore/GormClassManager.m * GormCore/GormControlEditor.m * GormCore/GormCustomView.m * GormCore/GormDocument.m * GormCore/GormDocumentWindow.m * GormCore/GormFilePrefsManager.h * GormCore/GormFilePrefsManager.m * GormCore/GormFunctions.h * GormCore/GormFunctions.m * GormCore/GormInspectorsManager.m * GormCore/GormInternalViewEditor.m * GormCore/GormMatrixEditor.h * GormCore/GormMatrixEditor.m * GormCore/GormNSPanel.h * GormCore/GormNSPanel.m * GormCore/GormNSWindow.h * GormCore/GormNSWindow.m * GormCore/GormObjectEditor.m * GormCore/GormObjectInspector.m * GormCore/GormOutlineView.m * GormCore/GormPrivate.h * GormCore/GormPrivate.m * GormCore/GormResourceEditor.m * GormCore/GormResourceManager.m * GormCore/GormSoundView.m * GormCore/GormSplitViewEditor.m * GormCore/GormStandaloneViewEditor.m * GormCore/GormViewEditor.m * GormCore/GormViewKnobs.m * GormCore/GormViewWithContentViewEditor.m * GormCore/GormViewWithSubviewsEditor.m: int -> NSInteger transition. 2013-10-26 Fred Kiefer * Plugins/Nib/GormNibWrapperBuilder.m (-initWithDocument:): Don't store nil values in maps. 2013-10-26 Riccardo Mottola * Plugins/Nib/GormNibWrapperBuilder.m Write warnings of respectively the proper nil object. 2013-10-19 Sebastian Reitenbach * GormCore/GormClassEditor.m * GormCore/GormFilePrefsManager.m * Palettes/3Containers/GormBrowserAttributesInspector.m * Palettes/3Containers/GormTabViewAttributesInspector.m fix format strings 2013-10-14 Eric Wasylishen * Palettes/2Controls/GormNSMatrixInspector.gorm: * Palettes/2Controls/GormNSSliderInspector.gorm: * Palettes/2Controls/GormNSBoxInspector.gorm: * Palettes/2Controls/GormNSTextFieldInspector.gorm: * Palettes/2Controls/GormNSPopUpButtonInspector.gorm: * Palettes/2Controls/GormNSButtonInspector.gorm: * Palettes/2Controls/ControlsPalette.gorm: * Palettes/2Controls/GormNSFormInspector.gorm: * Palettes/2Controls/GormNSCellInspector.gorm: * Palettes/0Menus/GormMenuAttributesInspector.gorm: * Palettes/3Containers/GormNSTableColumnSizeInspector.gorm: * Palettes/3Containers/GormTabViewInspector.gorm: * Palettes/3Containers/GormNSTableViewInspector.gorm: * Palettes/3Containers/GormNSBrowserInspector.gorm: * Palettes/1Windows/GormNSWindowSizeInspector.gorm: * Palettes/1Windows/GormNSWindowInspector.gorm: * Palettes/4Data/GormNSComboBoxInspector.gorm: * Palettes/4Data/GormNSImageViewInspector.gorm: * Palettes/4Data/GormNSTextViewInspector.gorm: Turn off "Draws Background" on NSMatrix and NSForms; there's no need to draw backgrounds and it may look bad with themes. 2013-07-03 Niels Grewe * InterfaceBuilder/InterfaceBuilder.h: Fix incorrect header inclusion guard. 2013-06-05 Riccardo Mottola * GormCore/GormSetNameController.h * GormCore/GormSetNameController.m Make runModal return NSInteger 2013-05-26: Sebastian Reitenbach * Palettes/3Containers/GormNSOutlineView.m * GormCore/GormMatrixEditor.m * GormCore/GormClassEditor.m some int -> NSInteger and float -> CGFloat transitions spotted by libobjc2 runtime in debug mode 2013-04-14 13:19-EDT Gregory John Casamento * ANNOUNCE * Documentation/news.texi * GormInfo.plist * NEWS * Version: 1.2.20 2013-03-06 01:44-EST Gregory John Casamento * GormCore/GormViewEditor.m: -handleNotification: touch document when text editing is completed. Fixes for bug #28643. 2013-03-06 00:05-EST Gregory John Casamento * GormCore/GormDocument.m: Touch document when aligning views in -alignSelectedObjects:. * Palettes/4Data/DataPalette.m: -depositViewResourceFromPasteboard:.. touch document when adding formatter. * Palettes/4Data/GormDateFormatterAttributesInspector.m * Palettes/4Data/GormNumberFormatterAttributesInspector.m: -ok: touch document when changing formatter. Fixes for bug #28643. 2013-03-05 20:23-EST Gregory John Casamento * GormCore/GormInternalViewEditor.m: touch document when font is changed in changeFont: 2013-02-25 15:07-EST Gregory John Casamento * GormCore/GormWindowEditor.m: Second try to fix the previous issue. 2013-02-25 04:14-EST Gregory John Casamento * GormCore/GormWindowEditor.m: Check the _firstResponder on the window to see if it is the same as the _initialFirstResponder. If it is, set it to nil as well in -unsetInitialFirstResponder:. 2013-02-23 Sebastian Reitenbach * GormCore/GormObjectEditor.h * GormCore/GormObjectEditor.m * GormCore/GormPalettesManager.m * GormCore/GormSplitViewEditor.m * GormCore/GormViewEditor.m * GormCore/GormViewWithSubviewsEditor.m * GormCore/GormWindowEditor.m * Palettes/0Menus/GormMenuEditor.m * Palettes/3Containers/GormTableViewEditor.m * Palettes/4Data/GormTextViewEditor.m * adapt to -gui changes for DnD 2013-02-16 20:10-EST Gregory John Casamento * GormCore/GormViewEditor.m: -editedObjectFrameDidChange: alter code so that allViews under the editor are collected and set to not post notifications. This change prevents a notification/setFrame cycle which was occurring when certain controls were added as subviews to NSTabView or NSBox. 2013-01-26 20:42-EST Gregory John Casamento * GormCore/GormDocument.m: Corrected issue with adding cells to object tree so that the can be properly addressed in connections. Change to -attachObject:toParent:. 2013-01-13 17:45-EST Gregory John Casamento * GormCore/GormViewSizeInspector.m: Correct bug#30886: Gorm should change the document to edited when changing resize attributes. 2013-01-13 16:57-EST Gregory John Casamento * Palettes/2Controls/GormColorWellAttributesInspector.m: NSColorWell inspector was showing inverted settings after the last change. Corrected this in -ok: and -revert: bug#32827 2012-12-12 12:33-EST Gregory John Casamento * GormCore/GormViewEditor.m: Prevent recursive frame/bounds notifications when resizing a view. * Plugins/Nib/GormNibWrapperLoader.m: Preliminary changes to support reading nibs as files instead of packages. 2012-07-25 22:29-EDT Gregory John Casamento * GormCore/GormDocument.m: Apply patch suggested by Sebastian. This appears to correct an issue seen by Sergey causing an out of memory error. 2012-07-12: Sebastian Reitenbach * GormLib/IBObjectAdditions.m * revert change from 2012-04-20, to fix Connection Inspector on at least a couple of *BSD 2012-06-19 00:44-EDT Gregory John Casamento * ANNOUNCE * Documentation/news.texi * GormCore/GormDocument.m * GormCore/GormFilePrefsManager.m * GormCore/GormObjectEditor.m * GormCore/GormViewEditor.m * GormCore/GormViewWindow.m * GormInfo.plist * NEWS * Version: 1.2.18 2012-05-01 23:25-EDT Gregory John Casamento * GormCore/GormDocument.m * GormCore/GormFilePrefsManager.m * GormCore/GormStandaloneViewEditor.m * GormCore/GormViewWithContentViewEditor.m * GormCore/GormWindowTemplate.m * Palettes/0Menus/GormMenuEditor.m * Palettes/0Menus/MenusPalette.m: Eliminate as many of the remaining warnings in the code as possible. 2012-04-20 18:53-EDT Gregory John Casamento * GormCore/GormResourceEditor.m: Correct compiler warnings. 2012-04-20 12:16-EDT Gregory John Casamento * Palettes/2Controls/GormNSPopUpButton.h * Palettes/2Controls/GormNSPopUpButton.m: Added new files for Gorm subclass of NSPopUpButton. 2012-04-20 12:03-EDT Gregory John Casamento * GormCore/GormCustomView.m * GormCore/GormFilesOwner.m * GormCore/GormFunctions.m * GormObjCHeaderParser/OCHeaderParser.m * Palettes/2Controls/ControlsPalette.m * Palettes/2Controls/GNUmakefile * Palettes/2Controls/GormPopUpButtonEditor.m * Palettes/3Containers/GormNSBrowser.m * Palettes/4Data/GormImageViewAttributesInspector.m: Correct compiler warnings found by clang. 2012-04-20 10:34-EDT Gregory John Casamento * GormLib/IBObjectAdditions.m * GormObjCHeaderParser/OCClass.m * GormObjCHeaderParser/OCHeaderParser.m * GormObjCHeaderParser/OCIVarDecl.m * GormObjCHeaderParser/OCIVar.m * GormObjCHeaderParser/OCMethod.m * GormObjCHeaderParser/ParserFunctions.m: Fix compiler warnings when building with clang. 2012-04-20 02:11-EDT Gregory John Casamento * GormCore/GormClassInspector.m * GormCore/GormClassManager.m * GormCore/GormDocument.m * GormCore/GormGenericEditor.m * GormCore/GormObjectInspector.m * GormCore/GormOutlineView.m * GormCore/GormPrivate.h * GormCore/GormPrivate.m * Palettes/0Menus/GormMenuEditor.m * Palettes/1Windows/GormDrawerAttributesInspector.m * Palettes/3Containers/GormTableColumnAttributesInspector.m * Palettes/3Containers/GormTableViewEditor.m * Palettes/4Data/DataPalette.m * Palettes/4Data/GormNumberFormatterAttributesInspector.m: Change int/unsigned int to NSInteger and NSUInteger to address 64-bit issues. Patch by Sebastian Reitenbach * Plugins/Gorm/GormGormWrapperLoader.m * Plugins/Nib/GormNibWrapperBuilder.m * Plugins/Nib/GormNibWrapperLoader.m * Plugins/Xib/GormXibWrapperLoader.m: Clean up warnings found by clang. 2012-04-05 14:38-EDT Gregory John Casamento * GormCore/GormMatrixEditor.m: Change modifier to Ctrl+Shift since these two keys are never remapped and Alt does not always exist on european and some US keyboards. This change should address bug#36096. 2012-03-17 German A. Arias * Gorm.m: Added method -applicationShouldTerminateAfterLastWindowClosed: to avoid terminate Gorm when the user close the last window but have documents minimized at taskbar. 2012-02-19 18:58-EST Gregory John Casamento * Version * GormInfo.plist * GormCore/GormFilePrefsManager.m: Update version information. 2012-02-15 17:59-EST Gregory John Casamento * GormCore/GormPrivate.m: Remove poseAs: override. Fix for compilation with ObjC2.0 compilers. * Palettes/3Containers/GormNSTableColumnInspector.gorm: Correction for tableView column identifiers. Delegate wasn't connected. 2012-02-06 02:02-EST Gregory John Casamento * Version: 1.2.16 * GormInfo.plist * Documentation/news.texi: Update version and documentation. 2012-02-06 02:02-EST Gregory John Casamento * GormCore/GormClassInspector.m * GormCore/GormCustomClassInspector.h * GormCore/GormFilesOwner.m * GormCore/GormOutlineView.m 2012-01-15 Eric Wasylishen * English.lproj/GormClassInspector.gorm: Re-save with the last change, so the outlet/action table data cells are editable. 2012-01-15 Eric Wasylishen * Palettes/3Containers/GormTableColumnAttributesInspector.m: Set editable state of the data cell to match editable state of the column. (NSTableView now refuses to edit non-editable data cells in editable columns.) 2012-01-15 Eric Wasylishen * Palettes/3Containers/GormTabViewAttributesInspector.m: Add retain/release so tab view item isn't deallocated while being moved from one position to another. 2011-11-28 Gregory John Casamento * Palettes/0Menus/GormMenuAttributesInspector.m * Palettes/0Menus/GormMenuInspectors.m: Correction for bug #33457, title change should now cause document to be modified. 2011-10-29 Gregory John Casamento * Plugins/Xib/GormXibWrapperLoader.m * Plugins/Nib/GormNibWrapperLoader.m: Include GormWindowTemplate from GormCore instead of locally. * Plugins/Nib/GormWindowTemplate.h * Plugins/Nib/GormWindowTemplate.m: Move to GormCore. * Plugins/Nib/GNUmakefile: Remove GormWindowTemplate from here. * GormCore/GNUmakefile: Add GormWindowTemplate.[hm] here. 2011-11-04 Eric Wasylishen * GormCore/GormFunctions.m: change float to CGFloat to match change in gui of -[NSColor getRed:green:blue:alpha:] method 2011-11-03 Fred Kiefer * Plugins/Xib/GormXibWrapperLoader.h, * Plugins/Xib/GormXibWrapperLoader.m: Get XIB files to be loaded. 2011-10-29 Gregory John Casamento * Palettes/3Containers/GormTableColumnAttributesInspector.h: Add sortMatrix and sortOrder to class for inspector. * Palettes/3Containers/GormTableColumnAttributesInspector.m: Add logic to ok:/revert: to handle sort descriptors. * Palettes/3Containers/GormTableColumnAttributesInspector.gorm: Add fields and popupbutton for sortKey, sortSelector and sortOrder removed previous changes and moved them over to these classes since they didn't belong in the NSTableView inspector. 2011-10-26 Gregory John Casamento * Palettes/3Containers/GormTableViewAttributesInspector.h: Add sortMatrix and sortOrder to class for inspector. * Palettes/3Containers/GormTableViewAttributesInspector.m: Add logic to ok:/revert: to handle sort descriptors. * Palettes/3Containers/GormNSTableViewInspector.gorm: Add form and popupbutton for sortMatrix and sortOrder 2011-10-25 Fred Kiefer * Palettes/0Menu/GormMenuEditor.m: Protect against the menu parent being a popup button cell. * Plugins/Xib/GormXibWrapperLoader.m: Move additional methods into gui and correct handling of file owner. 2011-09-15 Fred Kiefer * GormCore/GormPrivate.h ([NSDateFormatter +initialize], [NSNumberFormatter +initialize]): Remove these dangerours methods. * Palettes/4Data/DataPalette.m: Move +initialize method into DataPalette and retain the static objects. * Palettes/4Data/GormNumberFormatterAttributesInspector.m: Clean up compiler warnings. 2011-09-15 Fred Kiefer * Palettes/0Menu/GormMenuEditor.m: Change becomeMainWindow call to makeMainWindow. Patch by Matt Rice 2011-05-17 20:43-EDT Gregory John Casamento * GormCore/GormStandaloneViewEditor.h: * GormCore/GormStandaloneViewEditor.m: Improve support for standalone views. Correct issue with ungrouping. Correct issues with editing subviews in a standalone view. * GormCore/GormViewSizeInspector.m: Remove code which made standalone views uneditable in the size inspector. 2011-05-17 17:32-EDT Gregory John Casamento * GormLib/COPYING.LIB: Update license text for files. * GormLib/IBApplicationAdditions.h * GormLib/IBApplicationAdditions.m * GormLib/IBCellAdditions.h * GormLib/IBCellProtocol.h * GormLib/IBConnectors.h * GormLib/IBConnectors.m * GormLib/IBDefines.h * GormLib/IBDocuments.h * GormLib/IBDocuments.m * GormLib/IBEditors.h * GormLib/IBEditors.m * GormLib/IBInspector.h * GormLib/IBInspector.m * GormLib/IBInspectorManager.h * GormLib/IBInspectorManager.m * GormLib/IBInspectorMode.h * GormLib/IBInspectorMode.m * GormLib/IBObjectAdditions.h * GormLib/IBObjectAdditions.m * GormLib/IBObjectProtocol.h * GormLib/IBPalette.h * GormLib/IBPalette.m * GormLib/IBPlugin.h * GormLib/IBPlugin.m * GormLib/IBProjectFiles.h * GormLib/IBProjects.h * GormLib/IBResourceManager.h * GormLib/IBResourceManager.m * GormLib/IBSystem.h * GormLib/IBViewAdditions.h * GormLib/IBViewProtocol.h * GormLib/IBViewResourceDragging.h * GormLib/InterfaceBuilder.h 2011-05-17 17:32-EDT Gregory John Casamento * Plugins/Xib/GormXibWrapperLoader.m: Various fixes for XIB loading. * English.lproj/GormDocument.gorm: Fix button title. 2011-04-28 14:44-EDT Gregory John Casamento * Plugins/Xib/GormXibWrapperLoader.m: Correct compilation errors and warnings in Xib loading code. Correct loading code so that Xib file partially loads. 2011-04-26 20:24-EDT Gregory John Casamento * Palettes/2Controls/GormTextFieldAttributesInspector.m: Fix issue with refreshing display of enter/end editing when selecting fields. 2011-04-01 03:04-EDT Gregory John Casamento * Palettes/2Controls/GormNSTextFieldInspector.gorm: Add matrix for enter/end editing. * Palettes/2Controls/GormTextFieldAttributesInspector.h: Added ivar to point to new matrix * Palettes/2Controls/GormTextFieldAttributesInspector.m: Implement changes to handle "Send Action On Enter/End editing" per task #10799. Added code to ok: method to handle new matrix. 2011-04-01 03:04-EDT Gregory John Casamento * GormInfo.plist: Bump version. * Version: Bump version for SVN version. 2011-01-04 Wolfgang Lux * GormCore/GormMatrixEditor.m (-connectTargetAtPoint:, -draggingEntered:, -performDragOperation:): Make connections to the whole matrix possible again for matrixes with small intercell spacing. 2011-01-04 Wolfgang Lux * GormCore/GormDocument.m (-windowAndRect:forObject:): * GormCore/GormMatrixEditor.m (-draggingEntered:, -performDragOperation:): Allow making connections to individual cells of a matrix. * GormCore/GormMatrixEditor.m (-validateFrame:...): Attach added cells and detach removed cells when changing the number of rows or columns in a matrix. 2010-12-05 19:10-EST Gregory John Casamento * Palettes/4Data/GormImageViewAttributesInspector.m: Archive by name. 2010-12-05 18:12-EST Gregory John Casamento * Palettes/4Data/GormImageViewAttributesInspector.m: Remove check for name so that images which currently do not reference a known image can be saved by name. * Palettes/4Data/GormNSImageViewInspector.gorm: Add connection to ok: from the text field. 2010-11-01 Riccardo Mottola * Plugins/Xib/GormXibWrapperLoader.m Removed c99-ism 2010-09-39 Niels Grewe * Gorm.m: Replace calls to sel_eq() with sel_isEqual() for compatibility with the Objective-C 2 runtime API. Whitespace cleanup. Small tweak for Objective-C 2 runtime API compatibility. 2010-09-17 Wolfgang Lux * Palettes/4Data/GormTextViewAttributesInspector.h: * Palettes/4Data/GormTextViewAttributesInspector.m (-ok:, -revert:): * Palettes/4Data/GormNSTextViewInspector.gorm: Add switches to the text view inspector to control use of an undo manager and the find panel, respectively. 2010-09-17 Wolfgang Lux * Palettes/2Controls/GormButtonEditor.m (-mouseDown): Fix bug where a button's title was lost when starting editing by double clicking into the button. 2010-09-17 Wolfgang Lux * English.lproj/Gorm.gorm: Actually bring the "Recent Documents" menu to life. 2010-09-15 Eric Wasylishen * GormCore/GormClassManager.m: * GormCore/GormObjectInspector.m: Tweaks to use ObjectiveC2 runtime API functions. Now Gorm works on libobjc2. 2010-08-04 13:20-EDT Gregory John Casamento * English.lproj/Gorm.gorm: Add "Recent Documents" to menu. * GormCore/GormClassManager.m: Post notifications when files are created. * GormInfo.plist: Update my email address and list of authors to include Wolfgang and Adam. 2010-08-02 Wolfgang Lux * Palettes/0Menus/MenusPalette.m (-finishInstantiate): Initialize the find menu items with tags and actions suitable for using the standard NSTextView find panel. * Resources/ClassInformation.plist: Add -centerSelectionInVisibleArea: and -performFindPanelAction: to the list of first responder actions. 2010-07-10 01:22-EDT Gregory John Casamento * GormInfo.plist: Simplified copyright portion. Give a range of years instead of each year individually. * Gorm.m: Implement simple mechanism for recieving notifications to parse a given class file. 2010-06-24 Wolfgang Lux * Palettes/2Controls/GormPopUpButtonEditor.m (-attachPopUpWithFrame:inView:): Copy change from -gui which swaps the meaning of NSMinYEdge and NSMaxYEdge. 2010-06-24 Wolfgang Lux * Palettes/2Controls/GormPopUpButtonAttributesInspector.h * Palettes/2Controls/GormPopUpButtonAttributesInspector.m * Palettes/2Controls/GormNSPopUpButtonInspector.gorm: Add a form to allow editing the title of a pull down menu and a pop up button to allow setting its preferred attachment edge. 2010-06-19 Riccardo Mottola * GormLib/IBEditors.h Make IBEditors implement NSobject protocol to avoid warnings. 2010-06-02 17:45-EDT Gregory John Casamento * English.lproj/GormFontView.gorm: Fix problem with popup showing as Button. * GormCore/GormDocument.m: Add the NSMenu as a top level item only if it has filesOwner as it's parent. * GormCore/GormPalettesManager.m: remove the restriction for having just one instance of NSMenu in the document at the top level. 2010-05-30 03:07-EDT Gregory John Casamento * GormCore/GormDocument.m: In [GormDocument loadFileWrapperRepresentation:ofType:] call updateChangeCount: to clear changes so that the document doesn't show as modified on load. 2010-05-30 03:02-EDT Gregory John Casamento * GNUmakefile: Added Xib.plugin to resources. * GormInfo.plist: Added xib to the list of files Gorm can load * Gorm.m: Change to recieve notifications to add/delete classes. * Plugins/GNUmakefile: Added Xib plugin to subprojects list. * Plugins/Xib/GNUmakefile * Plugins/Xib/GNUmakefile.preamble * Plugins/Xib/GormXibCustomResource.h * Plugins/Xib/GormXibCustomResource.m * Plugins/Xib/GormXibPlugin.m * Plugins/Xib/GormXibWrapperLoader.h * Plugins/Xib/GormXibWrapperLoader.m: Initial code for XIB plugin. 2010-05-28 Wolfgang Lux * Palettes/0Menus/GormNSMenu.h: * Palettes/0Menus/GormNSMenu.m: * Palettes/0Menus/GormMenuAttributesInspector.m: Don't validate menu items in design menus. 2010-05-28 Wolfgang Lux * GormCore/GormDocument.h: * GormCore/GormDocument.m: * Palettes/0Menus/GormMenuAttributesInspector.m: * Palettes/0Menus/GormMenuAttributesInspector.gorm: Add support for a recent documents menu in gorm documents. * Palettes/0Menus/MenusPalette.m: Add a recent documents menu to the palette's file menu. Add undo and redo commands to the palette's edit menu. 2010-05-22 02:23-EDT Gregory John Casamento * English.lproj/GormPreferences.gorm: Correct issue with pop up showing up as "Button." 2010-05-20 04:04-EDT Gregory John Casamento * GormCore/GormFilePrefsManager.m: Update version * GormInfo.plist: Update version * Palettes/2Controls/GormPopUpButtonEditor.m: Override method to prevent changes to appearance during editing. * Version: Change to 1.2.13 for SVN version of Gorm. 2010-05-18 21:55-EDT Gregory John Casamento * Version: 1.2.12 2010-05-18 21:50-EDT Gregory John Casamento * ChangeLog * GormCore/GormNSWindow.m * GormCore/GormNSPanel.m: Update to use new designated initializer. 2010-05-18 20:50-EDT Gregory John Casamento * ANNOUNCE * Documentation/announce.texi * Documentation/news.texi * Documentation/readme.texi * NEWS * README: Updating for release. 2010-05-18 20:38-EDT Gregory John Casamento * GormCore/GormFilePrefsManager.m * GormInfo.plist: Update version number. 2010-05-18 20:31-EDT Gregory John Casamento * English.lproj/Gorm.gorm: Remove delegate connection, since it's manually set in the Gorm NSApplication subclass to self. * GormCore/GormDocumentController.[hm]: Added new method buildDocumentType: * GormCore/GormDocument.m: Added call to touch in setName: so that the document would be set as modified when the user alters the name of an object in the document. * GormCore/GormDocumentWindow.m: Remove methods preventing document window from assuming main/key status. * GormCore/GormPalettesManager.m: Remove methods allowing palette window to assume main/key status * Gorm.m: Added delegate methods to handle opening a document, if in a mode which requires a default document to be created. 2010-05-18 19:42-EDT Gregory John Casamento * Documentation/Gorm.texi * Documentation/news.texi * Documentation/readme.texi * GormCore/GormDocument.m: Correction for bug #28643. * Version 2010-05-05 20:55-EDT Gregory John Casamento * GormCore/GormClassManager.m: Correct bug#29795: Unable to change superclass of NSOwner... This bug was due to the owner class name being released and a subsequent set failing on NSOwner in the parseHeader: method. 2010-05-05 12:38-EDT Gregory John Casamento * GormCore/GormClassInspector.m: [GormClassInspector selectClass:] Refresh connections so that when the class is reparented only those connections which aren't present anymore get broken. 2010-05-04 19:25-EDT Gregory John Casamento * GormCore/GormClassInspector.m: Allow a class' name to be changed in the GormClassInspector without it disconnecting all connections for that class. 2010-05-02 01:11-EDT Gregory John Casamento Applied patch submitted by qmathe. * GormCore/GormClassManager.m: Remove include for GSCategories.h 2010-03-07 Richard Frith-Macdonald * Documentation/gorm.texi: Fixed opening file to say 'gopen -a Gorm.app' for bug #29085 2010-03-05 Richard Frith-Macdonald * GormCore/GormFunctions.m: update for latest base library. 2010-02-24 17:55-EST Gregory John Casamento * Palettes/2Controls/ControlsPalette.tiff * Palettes/4Data/DataPalette.tiff: Remove background and replace with alpha. 2010-02-12 20:01-EST Gregory John Casamento * GormCore/GormFunctions.m: Correct the function which enumerates over the list of methods in a class when adding from a palette. 2010-02-08 07:13-EST Gregory John Casamento * Gorm.m: Separate out the server methods into a category. 2010-02-08 06:46-EST Gregory John Casamento * GormCore/GormServer.h: Added deleteClass: method * Gorm.m: Added implementation for deleteClass: 2010-02-07 05:43-EST Gregory John Casamento * GormCore/GNUmakefile: Added GormServer.h to the headers. * GormCore/GormCustomClassInspector.m: Change tooltip when a new custom class is selected from the list. * GormCore/GormPalettesManager.m: Set autoresizing on drag view. * GormCore/GormServer.h: Protocol for GormServer. * GormCore/GormViewEditor.m: Add the class name to the tooltip. * Gorm.m: Vend the object so that other apps can talk to Gorm via DO. 2010-01-20 Wolfgang Lux * Palettes/2Controls/ControlsPalette.gorm: Replace the two orphaned radio buttons by a NSMatrix. 2010-01-17 Wolfgang Lux * Palettes/2Controls/GormButtonAttributesInspector.m(-ok:, -revert:): Fix the NSButton inspector to use \r as key equivalent for the Return key. * GormCore/GormViewWithContentViewEditor.m (-ungroup): * GormCore/GormSplitViewEditor.m (-ungroup, -destroyAndListSubviews): Remove the former container view from its parent after an ungroup operation. 2010-01-14 06:46-EST Gregory John Casamento * GormCore/GormDocumentWindow.m: Make window unable to become main. This is so that the document window will not receive the menu on Windows. * GormCore/GormPalettesManager.m: Make the panel able to become main so that it can recieve the menu on Windows. 2010-01-06 01:06-EST Gregory John Casamento * GormCore/GNUmakefile: Add files here. * GormCore/GormNSPanel.[hm] * GormCore/GormNSWindow.[hm]: Move GormNSPanel.[hm] and GormWindow.[hm] here. * Palettes/1Windows/GNUmakefile: Remove files from being compiled * Palettes/1Windows/GormNSPanel.h * Palettes/1Windows/GormNSPanel.m * Palettes/1Windows/GormNSWindow.h * Palettes/1Windows/GormNSWindow.m: Remove these from here * Palettes/1Windows/GormWindowAttributesInspector.m * Palettes/1Windows/WindowsPalette.m: Change to include GormNSPanel/GormNSWindow from the correct area. 2009-12-30 23:40-EST Gregory John Casamento * Plugins/Nib/GormNibWrapperLoader.m: Remove reference to GSClassSwapper and replace it with NSClassSwapper. * Plugins/Nib/GormWindowTemplate.m: Override the baseWindowClass method to return GormNSWindow as appropriate. 2009-12-27 01:17-EST Gregory John Casamento * Gorm.m * Plugins/Nib/GNUmakefile: Add new class to makefile. * Plugins/Nib/GormNibWrapperLoader.m: Modified to use GormWindowTemplate. * Plugins/Nib/GormWindowTemplate.[hm]: Replace flags used only at runtime when the template is loaded. This is so, for example, the released when closed flag will not cause issues when editing the window. 2009-12-01 Riccardo Mottola * Gorm.m: do not open untitled document on application start 2009-12-01 German Arias * GormCore/GormDocument.m: Changes to prevent menus placed off screen on screens with low resolutions 2009-11-11 09:27-WIT Hans Baier * English.lproj/Gorm.gorm: remove duplicate keyboard shortcut #p (now pops up palette only) 2009-10-13 23:52-EDT Gregory John Casamento * GormCore/GormFunctions.m: Temporary change to fix compilation problem. * GormCore/GormViewEditor.m: Added code to show id of the object as a tooltip. 2009-09-22 16:59-EDT Gregory John Casamento * GormCore/GormViewWithSubviewsEditor.m: Call super instead of parent. Corrects issue with connecting to NSBox and NSProgressIndicator. Patch by Wolfgang Lux 2009-09-06 23:55-EDT Gregory John Casamento * English.lproj/Gorm.gorm * GormCore/GormGenericEditor.h * GormCore/GormViewWithContentViewEditor.h * GormCore/GormViewWithContentViewEditor.m * Gorm.m: Beginning of implementation of groupSelectionInView: 2009-08-22 18:04-EDT Gregory John Casamento * GormCore/GormOutlineView.m: Remove .tiff from the end of the images. This is interfering with theming in gorm since it's not pulling the right images in this case. * Plugins/Nib/GormNibCustomResource.[hm]: Handle custom resources in gorm, currently just images/sounds. * Plugins/Nib/GormNibWrapperLoader.h: Include nib resource header 2009-08-10 10:02-EDT Gregory John Casamento * GormCore/GormDefines.h: Move defines for certain things here so that they are centralized. 2009-08-08 03:09-EDT Gregory John Casamento * GormCore/GNUmakefile: Added reference to new classes. * GormCore/GormBoxEditor.m: Cleanup. * GormCore/GormClassManager.m: Correction for when loading from a nib and there are no custom classes in the nib file. * GormCore/GormDocumentWindow.m: Added awakeFromNib to accept mouse moved events. * GormCore/GormInternalViewEditor.m: Cleanup. * GormCore/GormStandaloneViewEditor.[hm]: Addition of new class. * GormCore/GormViewWithContentViewEditor.[hm]: Removal of handleMouseOnKnob:ofView:withEvent:, handleMouseOnView:withEvent: methods * GormCore/GormViewWithSubviewsEditor.[hm]: Addition of handleMouseOnKnob:ofView:withEvent:, handleMouseOnView:withEvent: methods * Palettes/0Menus/GormNSMenu.m: Cleanup. 2009-07-25 18:47-EDT Gregory John Casamento * GormCore/GNUmakefile * GormCore/GormBoxEditor.m * GormCore/GormDocumentWindow.m * GormCore/GormInternalViewEditor.m * GormCore/GormObjectEditor.m * GormCore/GormStandaloneViewEditor.[hm]: New classes to handle standalone views. * GormCore/GormViewWithContentViewEditor.[hm]: * GormCore/GormViewWithContentViewEditor.m * GormCore/GormViewWithSubviewsEditor.h * GormCore/GormViewWithSubviewsEditor.m 2009-06-23 22:19-EDT Gregory John Casamento * GormCore/GormFilePrefsManager.m * GormInfo.plist * Version: Update to 1.2.11. 2009-06-01 21:21-EDT Gregory John Casamento * Version: 1.2.10 2009-03-24 18:02-EDT Gregory John Casamento * Palettes/0Menus/GormMenuEditor.m: -(void)deleteSelection, remove arbitrary limitation which prevents removing all items in a menu. 2009-03-19 23:39-EDT Gregory John Casamento * GormCore/GormWrapperLoader.m: Allow handling of wrappers which are not directories. * Plugins/Gorm/GormGormWrapperLoader.m: Change logic to accommodate previous generation of .gorm files which were not packages. Also correct the code so that a return is not made within the NS_DURING block. * Plugins/Nib/GormNibWrapperLoader.m: Do not load if the wrapper is not a directory. 2009-03-17 01:05-EDT Gregory John Casamento * Plugins/Nib/GormNibWrapperLoader.m: Correct the code so that return is not called from within an NS_DURING block. 2009-03-16 20:18-EDT Gregory John Casamento * Plugins/Nib/GormNibWrapperLoader.m: Correct compilation error. 2009-03-03 18:17-EST Gregory John Casamento * GormCore/GormClassInspector.m: Change the cell to scrollable to allow long action/outlet names. 2009-02-11 09:22-EST Gregory John Casamento * Palettes/0Menus/GormMenuEditor.m: Revert some changes from previous modification. Corrects issue with submenus showing up when they shouldn't. 2009-02-11 01:31-EST Gregory John Casamento * GormCore/GormDocument.m: Remove call to deprecated method. * GormCore/GormInternalViewEditor.m: Minor cleanup * GormObjCHeaderParser/OCMethod.m: Minor cleanup * Palettes/2Controls/GormNSTextFieldInspector.gorm: Correct issue with misspelled outlet name. 2009-02-02 17:13-EST Gregory John Casamento * Palettes/2Controls/GormButtonAttributesInspector.[hm]: Added code to handle button style. * Palettes/2Controls/GormNSButtonInspector.gorm: Added button style popup to the inspector. 2009-02-01 09:20-EST Gregory John Casamento * GormCore/GormBoxEditor.m * GormCore/GormInternalViewEditor.m * GormCore/GormViewWithSubviewsEditor.m: Changes to support standalone views. 2009-01-31 18:45-EST Gregory John Casamento * GormCore/GormCustomView.m: Allow addition of plain NSView to a gorm file. 2009-01-25 09:47-EST Gregory John Casamento * GormCore/GormViewWindow.m: Change the color used for standalone views. 2009-01-25 07:54-EST Gregory John Casamento * Palettes/0Menus/GormNSMenu.m: Fix memory leak. 2009-01-25 07:00-EST Gregory John Casamento * GormCore/GormFilePrefsManager.m * GormInfo.plist: Change version to 1.2.9 (SVN) unstable. 2009-01-25 06:50-EST Gregory John Casamento * Palettes/0Menus/GormMenuEditor.m: Display the in certain situations. * Palettes/0Menus/GormNSMenu.m: Remove call to setMenu: in _createWindow since it's not needed and was causing display issues. * Palettes/0Menus/GormNSMenuView.m: Use new method in NSMenuView to reduce code duplication. Corrections for bug #25401. 2009-01-06 20:48-EST Gregory John Casamento * Resources/ClassInformation.plist: Added printDocument: method to FirstResponder 2009-01-06 Fred Kiefer * GormCore/GormClassManager.m (-nibData): Make sure an action name of ":" gets ignored. 2008-12-26 13:53-EST Gregory John Casamento * Version: 1.2.8 2008-12-26 13:53-EST Gregory John Casamento * ANNOUNCE * Documentation/news.texi * GormCore/GormFilePrefsManager.m * GormInfo.plist * NEWS: Update with new version information. 2008-12-19 Nicola Pero * All GNUmakefiles: removed GNUSTEP_CORE_SOFTWARE=YES and added PACKAGE_NAME=gorm. * GNUmakefile: Export PACKAGE_NAME to reduce chances of a problem if a GNUmakefile in a subdirectory is missing it. * GormObjCHeaderParser/GNUmakefile: Do not set PACKAGE_NAME to GormObjCHeaderParser. 2008-12-18 Nicola Pero * All GNUmakefiles: added GNUSTEP_CORE_SOFTWARE=YES at the beginning. * GNUmakefile: Export GNUSTEP_CORE_SOFTWARE to reduce chances of a problem if a GNUmakefile in a subdirectory is missing it. 2008-12-18 00:52-EST Gregory John Casamento * Plugins/Nib/GormNibWrapperBuilder.m: -[GormNibWrapperBuilder archiver: willEncodeObject:] add back code to replace GormFirstResponder with nil. Changes to use proper templates when encoding nib files. 2008-12-18 00:20-EST Gregory John Casamento * GormCore/GormInspectorsManager.m: Fix for bug#25111. * Plugins/Nib/GormNibWrapperBuilder.m: Remove code which adds nil to the map if the object is a GormFirstResponder 2008-12-06 11:04-EST Bernard Cafarelli Gregory John Casamento * GormCore/GNUmakefile.preamble: Corrects bug #25001. 2008-12-02 02:58-EST Gregory John Casamento * GormCore/GormCustomView.m * GormCore/GormDocument.m * GormCore/GormFilePrefsManager.m * GormCore/GormHelpInspector.m * GormCore/GormPrivate.h * GormCore/GormPrivate.m * Palettes/1Windows/GormNSPanel.m * Palettes/1Windows/GormNSWindow.m * Palettes/1Windows/GormWindowSizeInspector.m * Palettes/1Windows/WindowsPalette.m * Plugins/Gorm/GormGormWrapperBuilder.m * Plugins/Nib/GormNibWrapperBuilder.m * Plugins/Nib/GormNibWrapperLoader.h: Use new header files for nib/gorm loading. 2008-11-27 11:43-EST Gregory John Casamento * GNUmakefile: Remove default install to SYSTEM, per bug #24673. * Plugins/Gorm/GormGormWrapperLoader.m: Minor grammatical correction. 2008-11-13 23:36-EST Gregory John Casamento * GormCore/GormDocument.m: Change to apply labels in the document to cells in a matrix. * GormCore/GormFilePrefsManager.m: Update version to 1.2.7 * GormInfo.plist: Same * Version: Same 2008-10-25 18:40-EDT Gregory John Casamento * Version: 1.2.6 2008-10-22 22:30-EDT Wolfgang Lux Patch committed by: Gregory John Casamento * GormLib/IBObjectAdditions.m: Remove duplicate method implementations from here to fix issues on Darwin. 2008-10-19 21:50-EDT Wolfgang Lux Patch committed by: Gregory John Casamento * GormCore/GormGenericEditor.h * GormCore/GormGenericEditor.m * GormCore/GormImageEditor.m * GormCore/GormObjectEditor.m * GormCore/GormSoundEditor.m: Observe notification IBWillCloseDocument and remove the reference to the document when that is recieved to avoid a crash. * Resources/ClassInformation.plist: Add outlet for delegate to NSSplitView. 2008-10-06 19:22-EDT Gregory John Casamento * Palettes/2Controls/ControlsPalette.m: Correct sizing issue with Controls Palette. 2008-09-27 23:11-EDT Gregory John Casamento * GormPrefs/GormPluginsPref.m: Include GormPluginManager.h to eliminate compiler warning. 2008-09-27 23:02-EDT Gregory John Casamento * English.lproj/GormPreferences.gorm * English.lproj/GormPrefPlugins.gorm * GNUmakefile * GormCore/GormPluginManager.m * GormPrefs/GNUmakefile * GormPrefs/GormPalettesPref.h * GormPrefs/GormPluginsPref.h * GormPrefs/GormPluginsPref.m * GormPrefs/GormPrefController.h * GormPrefs/GormPrefController.m: Changes to allow addition of plugins by users. 2008-09-27 21:10-EDT Gregory John Casamento * GormCore/GormPalettesManager.h * GormCore/GormPalettesManager.m: Reverted the previous change to the palettes manager. 2008-09-06 16:12-EDT Gregory John Casamento * GormCore/GNUmakefile: Added GNUSTEP_INSTALLATION_DOMAIN * GormCore/GormCustomView.m: Reverted previous change. Need to write a GormCustomViewEditor instead to handle this case. * GormLib/GNUmakefile: Added GNUSTEP_INSTALLATION_DOMAIN 2008-09-04 08:00-EDT Gregory John Casamento * Gorm.m: Remove unhide: implementation. Correction for bug#24146. 2008-08-24 13:20-EDT Gregory John Casamento * GormCore/GormCustomView.m: Code to return the best possible superclass. * GormCore/GormDocument.m: More info in the description method * GormCore/GormViewWindow.m: Fixing handling of standalone views. 2008-07-20 09:32-EDT Gregory John Casamento * GormObjCHeaderParser/OCIVar.m * GormObjCHeaderParser/ParserFunctions.h * GormObjCHeaderParser/ParserFunctions.m: Correction for bug #23889. 2008-06-24 19:18-EDT Gregory John Casamento * GormCore/GormWrapperBuilder.h * GormCore/GormWrapperBuilder.m * GormCore/GormWrapperLoader.h * GormCore/GormWrapperLoader.m * Plugins/GModel/GormGModelPlugin.m * Plugins/GModel/GormGModelWrapperLoader.h * Plugins/GModel/GormGModelWrapperLoader.m * Plugins/Gorm/GormGormPlugin.m * Plugins/Gorm/GormGormWrapperBuilder.m * Plugins/Gorm/GormGormWrapperLoader.m * Plugins/Nib/GormNibPlugin.m * Plugins/Nib/GormNibWrapperBuilder.m * Plugins/Nib/GormNibWrapperLoader.m: Change method name from "type" to "fileType" to avoid issues with gcc < 3.0 2008-06-24 18:09-EDT Gregory John Casamento * GormCore/GormWrapperLoader.h * Plugins/Gorm/GormGormWrapperLoader.h * Plugins/Nib/GormNibPlugin.m: Call type from here. * Plugins/Nib/GormNibWrapperLoader.h: Move type method to super-class declaration. 2008-05-25 09:09-EDT Gregory John Casamento * GormCore/GormObjectEditor.m: Correction for segfault. * Plugins/Nib/GormNibPlugin.m: Correction for compilation error on gcc < 3.1 systems. 2008-05-20 fabien * GormCore/GormObjectEditor.m: add draggingExited: to implement autoscrolling during IBAction connections. 2008-05-18 19:16-EDT Gregory John Casamento * GormCore/GormDocument.m: Correct segfault. Remove unecessary call to removeFromSuperview for the selection box from GormDocument window. 2008-05-18 fabien * Palettes/3Containers/GormTabViewAttributesInspector.h: Add itemPrevious and itemNext outlets * Palettes/3Containers/GormTabViewInspector.gorm: Add itemPrevious and itemNext outlets * Palettes/3Containers/GormTabViewInspector.gorm: Implement NSTabView items ordering in ok: 2008-05-16 20:47-EDT Gregory John Casamento * GormCore/GormPluginManager.h * GormCore/GormPluginManager.m: Added manager class. 2008-05-16 20:46-EDT Gregory John Casamento * GormCore/GormPlugin.h * GormCore/GormPlugin.m: plugin class for gorm plugins. 2008-05-16 20:41-EDT Gregory John Casamento * GNUmakefile: Added plugins as resources. * GormCore/GNUmakefile: Remove classes from file * GormCore/GormGModelWrapperLoader.m * GormCore/GormGormWrapperBuilder.m * GormCore/GormGormWrapperLoader.m * GormCore/GormNibWrapperBuilder.m * GormCore/GormNibWrapperLoader.m: Removed the loaders from GormCore. * GormCore/GormProtocol.h: Added a new method. * GormLib/IBPlugin.m: Added implementations to some of the methods. * Gorm.m: Added a "pluginManager" method. * Palettes/1Windows/GNUmakefile.preamble * Palettes/2Controls/GNUmakefile.preamble * Palettes/3Containers/GNUmakefile.preamble * Palettes/4Data/GNUmakefile.preamble: Corrected issue with all of the palette makefiles pointing to the wrong name. * Plugins/GModel/GNUmakefile * Plugins/GModel/GNUmakefile.preamble * Plugins/GModel/GormGModelPlugin.m * Plugins/GModel/GormGModelWrapperLoader.h * Plugins/GModel/GormGModelWrapperLoader.m * Plugins/Gorm/GNUmakefile * Plugins/Gorm/GNUmakefile.preamble * Plugins/Gorm/GormGormPlugin.m * Plugins/Gorm/GormGormWrapperBuilder.m * Plugins/Gorm/GormGormWrapperLoader.h * Plugins/Gorm/GormGormWrapperLoader.m * Plugins/Nib/GNUmakefile * Plugins/Nib/GNUmakefile.preamble * Plugins/Nib/GormNibPlugin.m * Plugins/Nib/GormNibWrapperBuilder.m * Plugins/Nib/GormNibWrapperLoader.h * Plugins/Nib/GormNibWrapperLoader.m: Added new plugins for each supported file type. * Resources/Defaults.plist: Added the "BuiltinPlugins" default. 2008-05-06 20:04-EDT Gregory John Casamento * English.lproj/Gorm.gorm: Added shortcut to Page Layout menu. 2008-05-05 20:26-EDT Gregory John Casamento * English.lproj/Gorm.gorm: Add Page Layout menu. 2008-05-05 20:08-EDT Gregory John Casamento * English.lproj/Gorm.gorm: Added Print menu. * Gorm.m: Added print: method to print the current keyWindow. 2008-05-04 18:09-EDT Gregory John Casamento * GormCore/GormPalettesManager.m: Cleanup 2008-05-04 18:00-EDT Gregory John Casamento * GormCore/GormPalettesManager.m: Correction for issue with palette clipping the top of the controls. 2008-05-03 13:40-EDT Gregory John Casamento * Palettes/1Windows/GormNSPanel.m * Palettes/1Windows/GormNSWindow.m: Cleanup and fix for release when closed on panel. * Palettes/2Controls/ControlsPalette.gorm: Minor adjustment 2008-04-28 19:06-EDT Gregory John Casamento * English.lproj/GormPalettePanel.gorm 2008-04-28 17:31-EDT Gregory John Casamento * GormCore/GormDocument.m: Reinstate large toolbar on document. 2008-04-27 19:32-EDT Gregory John Casamento * English.lproj/GormPalettePanel.gorm: Moved palette window to gorm file. * GNUmakefile: Added new gorm here. * GormCore/GormDocument.m: Made toolbar items smaller * GormCore/GormPalettesManager.[hm]: Added toolbar implementation to this class to allow the user to switch palettes using the toolbar. 2008-04-25 17:41-EDT Gregory John Casamento * English.lproj/GormDocument.gorm: Corrected possition. * GormCore/GormInspectorsManager.m: Show the name of the object which is being edited in the inspector title. * Palettes/1Windows/GormNSWindowInspector.gorm: Added support for setting the frame save name. * Palettes/1Windows/GormWindowAttributesInspector.h: Added ivar * Palettes/1Windows/GormWindowAttributesInspector.m: Modified ok: and revert: 2008-04-24 18:57-EDT Gregory John Casamento * English.lproj/GormDocument.gorm: Correct position of window. 2008-04-24 18:06-EDT Gregory John Casamento * English.lproj/GormDocument.gorm: Correct resize attributes of GormDocument. 2008-04-24 01:28-EDT Gregory John Casamento * English.lproj/GormScrollViewAttributesInspector.gorm: Correct resizing issues with inspector. 2008-04-24 01:21-EDT Gregory John Casamento * GormCore/GormDocument.m: change to log to debug instead. * GormCore/GormImageEditor.m: properly dealloc the image code. 2008-04-24 00:54-EDT Gregory John Casamento * English.lproj/GormDocument.gorm: Correct issue with window. * GormCore/GormDocument.m * GormCore/GormImageEditor.m * GormCore/GormObjectEditor.m * GormCore/GormSoundEditor.m: Fix memory leak. 2008-04-23 20:03-EDT Gregory John Casamento * Palettes/1Windows/GormNSWindowInspector.gorm: Connected the button for "released when closed" button. * Palettes/1Windows/GormNSWindow.m: Correction for issue where isReleasedWhenClosed isn't set properly. 2008-04-20 11:47-EDT Gregory John Casamento * GormInfo.plist: Minor correction to the plist. 2008-04-14 17:37-EDT Gregory John Casamento * GormCore/GormImageEditor.m * GormCore/GormOutlineView.m * GormCore/GormResourceManager.m * GormCore/GormSoundInspector.m * GormCore/GormSplitViewEditor.m * GormLib/IBInspectorManager.m * Palettes/2Controls/GormBoxAttributesInspector.m * Palettes/4Data/GormDateFormatterAttributesInspector.m * Palettes/4Data/GormImageViewAttributesInspector.m * Palettes/4Data/GormNumberFormatterAttributesInspector.m: General clean up and compilation fixes to allow Gorm to compile without warnings. 2008-04-07 18:59-EDT Gregory John Casamento * GormCore/GormFilePrefsManager.m * GormInfo.plist * Version: Moved to version 1.2.5. 2008-04-06 22:09-EDT Gregory John Casamento * Version: 1.2.4 2008-04-06 22:09-EDT Gregory John Casamento * ANNOUNCE * ChangeLog * Documentation/news.texi * GormCore/GormFilePrefsManager.m * GormInfo.plist * NEWS * Version: Updating for release. 2008-03-05 20:45-EST Gregory John Casamento * GormCore/GormWrapperLoader.m: Correct c99'ism. 2008-02-18 20:31-EST Gregory John Casamento * Palettes/2Controls/GormPopUpButtonEditor.m: Change to use helper method to set up "preferred edge" correctly. 2008-02-17 12:49-EST Gregory John Casamento * GormCore/GormViewEditor.m * GormCore/GormViewWindow.m: Minor correction to view resizing for windowless views to show contents properly. Still working on editor issues. 2008-02-17 01:07-EST Gregory John Casamento * GormCore/GormInternalViewEditor.m * GormCore/GormScrollViewEditor.m * GormCore/GormSplitViewEditor.m * GormCore/GormViewEditor.m * GormCore/GormViewWithContentViewEditor.m: Corrections for bug#18171. Fixes issues with grouping and ungrouping. 2008-02-16 20:54-EST Gregory John Casamento * Palettes/2Controls/GormSliderAttributesInspector.m: Cleaned up code to use NSOnState and NSOffState properly, since we can't depend on them always reflecting YES and NO respectively. * Palettes/3Containers/GormTableViewAttributesInspector.m: Corrected call in ok: to use enclosingScrollView instead of simply getting the superview of the table. This corrects bug#22333. 2008-02-09 Adam Fedor * GormCore/GormGenericEditor.m ([GormGenericEditor -refreshCells]): Avoid segfault on solaris machines. 2008-02-09 12:15-EST Gregory John Casamento * GormCore/GormClassEditor.m * GormCore/GormGenericEditor.m * GormCore/GormObjectEditor.m: Change background color of object view. 2008-01-10 Nicola Pero * GNUmakefile.postamble (LN_S_RECURSIVE): For backwards-compatibility with older versions of gnustep-make, define to be the same as LN_S if not defined yet. (before-all): Use RM_LN_S to delete the symlink, and use LN_S_RECURSIVE to create it. (after-clean): Use RM_LN_S to delete the symlink. * GormPrefs/GormPrefController.m ([-init]): Avoid compiler warning. 2008-01-07 20:04-EST Gregory John Casamento * Palettes/0Menus/GormMenuItemAttributesInspector.h * Palettes/0Menus/GormMenuItemAttributesInspector.m: Moved strings for non-printable characters to class variables. 2008-01-07 18:50-EST Gregory John Casamento * GormCore/GormGenericEditor.m: Removed patch for bug#17539. Was causing issues on load. * GormCore/GormNibWrapperLoader.m: Removed extra NSLog(...); 2008-01-07 18:37-EST Gregory John Casamento * GormCore/GormNibWrapperLoader.m: Minor issues corrected with c99 changes. 2008-01-07 17:40-EST Gregory John Casamento * Palettes/1Windows/GormDrawerAttributesInspector.gorm: Fixed issue with dropdown. * Palettes/2Controls/GormButtonEditor.m: Fixed minor resize issue. 2008-01-05 Riccardo Mottola * GormCore/GormWrapperBuilder.m: removed some c99-isms 2008-01-04 Riccardo Mottola * GormCore/GormGormWrapperLoader.m: removed some c99-isms * GormCore/GormNibWrapperLoader.m: removed some c99-isms 2008-01-04 18:38-EST Gregory John Casamento * GormCore/GormViewWindow.m: Try to get the editor for the standalone view and activate it. 2008-01-04 13:22-EST Gregory John Casamento * English.lproj/Gorm.gorm: Changed delete to require command, it was causing issues with editing text fields. * English.lproj/GormScrollViewAttributesInspector.gorm * GormCore/GormScrollViewAttributesInspector.h * GormCore/GormScrollViewAttributesInspector.m: Added ruler switches to inspector. 2008-01-04 12:05-EST Gregory John Casamento * GormCore/GormDocument.m * GormLib/IBDocuments.h: Addition of private methods for bug#17892. 2008-01-03 20:39-EST Gregory John Casamento * GormCore/GormGenericEditor.m: Reformed and applied patch provided by Sergey Golovin. Corrects bug#17539. 2008-01-03 20:17-EST Gregory John Casamento * English.lproj/Gorm.gorm: Added menu shortcut for delete/backspace to correct bug#15637. 2008-01-03 20:02-EST Gregory John Casamento * GormCore/GormNibWrapperLoader.m: Corrections for bug#19792. Nib loader connector logic modified to correct this issue. 2008-01-03 19:40-EST Gregory John Casamento * GormCore/GormViewKnobs.m: drkgrey changed to fgcolor. 2008-01-03 17:22-EST Gregory John Casamento * GormCore/GormViewKnobs.m: Draw initial knobs as red to differentiate them from the black ones which indicates that the inside of a non-simple view is selected. Corrects bug#21479. 2008-01-03 14:50-EST Gregory John Casamento * GormCore/GormGormWrapperLoader.m: Correct invalid window level in _repairFile: method. 2008-01-01 23:07-EST Gregory John Casamento * GormCore/GormGormWrapperLoader.m: Touch the document to mark it as modified in the _repairFile method only if corrections have been made. 2008-01-01 22:57-EST Gregory John Casamento * GormCore/GormGormWrapperLoader.m: Cleanup array after display of errors/warnings. 2008-01-01 15:26-EST Gregory John Casamento * Plugins/GModel/GNUmakefile * Plugins/Gorm/GNUmakefile * Plugins/Nib/GNUmakefile: Add dummy makefiles. 2008-01-01 15:21-EST Gregory John Casamento * Plugins/GNUmakefile: Add makefile in plugins dir. 2008-01-01 14:03-EST Gregory John Casamento * GormCore/GormGormWrapperLoader.m: More corrections to the _repairFile method. * GormInfo.plist: Changed to reflect SVN status 2007-12-31 21:22-EST Gregory John Casamento * English.lproj/GormInconsistenciesPanel.gorm: Error panel to show detected inconsistencies. * English.lproj/GormPrefGeneral.gorm: Added option to turn on repair method. * GNUmakefile: Added reference to new gorm file. * GormCore/GormGormWrapperLoader.m: Added code to bring up the new panel and show the errors. * GormPrefs/GormGeneralPref.[mh]: Added new method and ivar to handle switch for consistency checking. 2007-12-19 19:03-EST Gregory John Casamento * GormCore/GormGormWrapperLoader.m * GormCore/GormNibWrapperBuilder.m: Correction for bug#21845. 2007-12-04 20:52-EST Gregory John Casamento * English.lproj/GormViewSizeInspector.gorm: Correction for bug#19640. 2007-11-30 15:58-EST Gregory John Casamento * GNUmakefile * GormLib/GNUmakefile * GormLib/IBPlugin.h * GormLib/IBPlugin.m * GormLib/InterfaceBuilder.h * Plugins/GNUmakefile: First cut at changes to add Plugin support to Gorm. 2007-11-11 15:40-EST Gregory John Casamento * Version: 1.2.2 2007-11-11 15:38-EST Gregory John Casamento * ANNOUNCE * Documentation/Gorm.texi * GNUmakefile * GormCore/GormFilePrefsManager.m * GormInfo.plist * NEWS * Palettes/GNUmakefile * README * Resources/Defaults.plist * Version: Preparing for release. 2007-11-11 00:18-EST Gregory John Casamento * Palettes/0Menus/GormMenuItemAttributesInspector.m: call itemChanged: so that changes are seen immediately in the menu. 2007-11-10 21:46-EST Gregory John Casamento * Documentation/news.texi * Documentation/readme.texi: Update of documentation. * Palettes/0Menus/GormMenuItemAttributesInspector.gorm * Palettes/0Menus/GormMenuItemAttributesInspector.h * Palettes/0Menus/GormMenuItemAttributesInspector.m * Palettes/2Controls/GormButtonAttributesInspector.m: Add key equivalent drop down for special keys for menu items. 2007-11-05 18:43-EST Gregory John Casamento * GormCore/GormBoxEditor.h * GormCore/GormBoxEditor.m * GormCore/GormClassEditor.h * GormCore/GormClassEditor.m * GormCore/GormClassInspector.h * GormCore/GormClassInspector.m * GormCore/GormClassManager.h * GormCore/GormClassManager.m * GormCore/GormClassPanelController.h * GormCore/GormClassPanelController.m * GormCore/GormConnectionInspector.h * GormCore/GormConnectionInspector.m * GormCore/GormControlEditor.h * GormCore/GormControlEditor.m * GormCore/GormCustomClassInspector.h * GormCore/GormCustomClassInspector.m * GormCore/GormCustomView.h * GormCore/GormCustomView.m * GormCore/GormDocumentController.h * GormCore/GormDocumentController.m * GormCore/GormDocument.h * GormCore/GormDocument.m * GormCore/GormDocumentWindow.h * GormCore/GormDocumentWindow.m * GormCore/GormFilePrefsManager.m * GormCore/GormFilesOwner.h * GormCore/GormFilesOwner.m * GormCore/GormFunctions.h * GormCore/GormFunctions.m * GormCore/GormGenericEditor.h * GormCore/GormGenericEditor.m * GormCore/GormGModelWrapperLoader.m * GormCore/GormGormWrapperBuilder.m * GormCore/GormGormWrapperLoader.m * GormCore/GormImageEditor.h * GormCore/GormImageEditor.m * GormCore/GormImage.h * GormCore/GormImage.m * GormCore/GormInspectorsManager.h * GormCore/GormInspectorsManager.m * GormCore/GormInternalViewEditor.h * GormCore/GormInternalViewEditor.m * GormCore/GormMatrixEditor.h * GormCore/GormMatrixEditor.m * GormCore/GormNibWrapperBuilder.m * GormCore/GormNibWrapperLoader.m * GormCore/GormObjectEditor.h * GormCore/GormObjectEditor.m * GormCore/GormObjectInspector.h * GormCore/GormObjectInspector.m * GormCore/GormOpenGLView.h * GormCore/GormOpenGLView.m * GormCore/GormOutlineView.h * GormCore/GormOutlineView.m * GormCore/GormPalettesManager.h * GormCore/GormPalettesManager.m * GormCore/GormPlacementInfo.h * GormCore/GormPrivate.h * GormCore/GormPrivate.m * GormCore/GormProtocol.h * GormCore/GormResourceEditor.h * GormCore/GormResourceEditor.m * GormCore/GormResource.h * GormCore/GormResource.m * GormCore/GormResourceManager.h * GormCore/GormResourceManager.m * GormCore/GormScrollViewAttributesInspector.h * GormCore/GormScrollViewAttributesInspector.m * GormCore/GormScrollViewEditor.m * GormCore/GormSoundEditor.h * GormCore/GormSoundEditor.m * GormCore/GormSound.h * GormCore/GormSoundInspector.h * GormCore/GormSoundInspector.m * GormCore/GormSound.m * GormCore/GormSoundView.h * GormCore/GormSoundView.m * GormCore/GormSplitViewEditor.h * GormCore/GormSplitViewEditor.m * GormCore/GormViewEditor.h * GormCore/GormViewEditor.m * GormCore/GormViewKnobs.h * GormCore/GormViewKnobs.m * GormCore/GormViewSizeInspector.h * GormCore/GormViewSizeInspector.m * GormCore/GormViewWindow.h * GormCore/GormViewWindow.m * GormCore/GormViewWithContentViewEditor.h * GormCore/GormViewWithContentViewEditor.m * GormCore/GormViewWithSubviewsEditor.h * GormCore/GormViewWithSubviewsEditor.m * GormCore/GormWindowEditor.h * GormCore/GormWindowEditor.m * GormCore/GormWrapperBuilder.h * GormCore/GormWrapperBuilder.m * GormCore/GormWrapperLoader.h * GormCore/GormWrapperLoader.m * GormCore/NSCell+GormAdditions.h * GormCore/NSCell+GormAdditions.m * GormCore/NSColorWell+GormExtensions.h * GormCore/NSColorWell+GormExtensions.m * GormCore/NSFontManager+GormExtensions.h * GormCore/NSFontManager+GormExtensions.m * GormCore/NSView+GormExtensions.h * GormCore/NSView+GormExtensions.m * GormLib/IBApplicationAdditions.h * GormLib/IBApplicationAdditions.m * GormLib/IBCellAdditions.h * GormLib/IBCellProtocol.h * GormLib/IBConnectors.h * GormLib/IBConnectors.m * GormLib/IBDefines.h * GormLib/IBDocuments.h * GormLib/IBDocuments.m * GormLib/IBEditors.h * GormLib/IBEditors.m * GormLib/IBInspector.h * GormLib/IBInspector.m * GormLib/IBInspectorManager.h * GormLib/IBInspectorManager.m * GormLib/IBInspectorMode.h * GormLib/IBInspectorMode.m * GormLib/IBObjectAdditions.h * GormLib/IBObjectAdditions.m * GormLib/IBObjectProtocol.h * GormLib/IBPalette.h * GormLib/IBPalette.m * GormLib/IBProjectFiles.h * GormLib/IBProjects.h * GormLib/IBResourceManager.h * GormLib/IBResourceManager.m * GormLib/IBSystem.h * GormLib/IBViewAdditions.h * GormLib/IBViewProtocol.h * GormLib/IBViewResourceDragging.h * GormLib/InterfaceBuilder.h * Gorm.m * GormObjCHeaderParser/NSScanner+OCHeaderParser.h * GormObjCHeaderParser/NSScanner+OCHeaderParser.m * GormObjCHeaderParser/OCClass.h * GormObjCHeaderParser/OCClass.m * GormObjCHeaderParser/OCHeaderParser.h * GormObjCHeaderParser/OCHeaderParser.m * GormObjCHeaderParser/OCIVarDecl.h * GormObjCHeaderParser/OCIVarDecl.m * GormObjCHeaderParser/OCIVar.h * GormObjCHeaderParser/OCIVar.m * GormObjCHeaderParser/OCMethod.h * GormObjCHeaderParser/OCMethod.m * GormObjCHeaderParser/ParserFunctions.h * GormObjCHeaderParser/ParserFunctions.m * GormPrefs/GormColorsPref.h * GormPrefs/GormGeneralPref.m * GormPrefs/GormGuidelinePref.h * GormPrefs/GormPalettesPref.m * GormPrefs/GormPrefController.h * GormPrefs/GormShelfPref.h * GormPrefs/GormShelfPref.m * main.m * Palettes/0Menus/GormMenuAttributesInspector.h * Palettes/0Menus/GormMenuAttributesInspector.m * Palettes/0Menus/GormMenuEditor.m * Palettes/0Menus/GormMenuInspectors.m * Palettes/0Menus/GormMenuItemAttributesInspector.h * Palettes/0Menus/GormMenuItemAttributesInspector.m * Palettes/0Menus/GormNSMenu.h * Palettes/0Menus/GormNSMenu.m * Palettes/0Menus/GormNSMenuView.h * Palettes/0Menus/GormNSMenuView.m * Palettes/0Menus/inspectors.m * Palettes/0Menus/MenusPalette.m * Palettes/1Windows/GormDrawerAttributesInspector.h * Palettes/1Windows/GormDrawerAttributesInspector.m * Palettes/1Windows/GormNSPanel.h * Palettes/1Windows/GormNSPanel.m * Palettes/1Windows/GormNSWindow.h * Palettes/1Windows/GormNSWindow.m * Palettes/1Windows/GormWindowAttributesInspector.h * Palettes/1Windows/GormWindowAttributesInspector.m * Palettes/1Windows/GormWindowSizeInspector.h * Palettes/1Windows/GormWindowSizeInspector.m * Palettes/1Windows/inspectors.m * Palettes/1Windows/WindowsPalette.h * Palettes/1Windows/WindowsPalette.m * Palettes/2Controls/ControlsPalette.m * Palettes/2Controls/GormBoxAttributesInspector.h * Palettes/2Controls/GormBoxAttributesInspector.m * Palettes/2Controls/GormButtonAttributesInspector.h * Palettes/2Controls/GormButtonAttributesInspector.m * Palettes/2Controls/GormButtonEditor.h * Palettes/2Controls/GormButtonEditor.m * Palettes/2Controls/GormCellAttributesInspector.h * Palettes/2Controls/GormCellAttributesInspector.m * Palettes/2Controls/GormColorWellAttributesInspector.h * Palettes/2Controls/GormColorWellAttributesInspector.m * Palettes/2Controls/GormFormAttributesInspector.h * Palettes/2Controls/GormFormAttributesInspector.m * Palettes/2Controls/GormMatrixAttributesInspector.h * Palettes/2Controls/GormMatrixAttributesInspector.m * Palettes/2Controls/GormPopUpButtonAttributesInspector.h * Palettes/2Controls/GormPopUpButtonAttributesInspector.m * Palettes/2Controls/GormProgressIndicatorAttributesInspector.h * Palettes/2Controls/GormProgressIndicatorAttributesInspector.m * Palettes/2Controls/GormSliderAttributesInspector.h * Palettes/2Controls/GormSliderAttributesInspector.m * Palettes/2Controls/GormStepperAttributesInspector.h * Palettes/2Controls/GormStepperAttributesInspector.m * Palettes/2Controls/GormTextFieldAttributesInspector.h * Palettes/2Controls/GormTextFieldAttributesInspector.m * Palettes/2Controls/inspectors.m * Palettes/3Containers/ContainersPalette.m * Palettes/3Containers/GormBrowserAttributesInspector.h * Palettes/3Containers/GormBrowserAttributesInspector.m * Palettes/3Containers/GormNSBrowser.h * Palettes/3Containers/GormNSBrowser.m * Palettes/3Containers/GormNSOutlineView.h * Palettes/3Containers/GormNSOutlineView.m * Palettes/3Containers/GormNSTableView.h * Palettes/3Containers/GormNSTableView.m * Palettes/3Containers/GormTableColumnAttributesInspector.h * Palettes/3Containers/GormTableColumnAttributesInspector.m * Palettes/3Containers/GormTableColumnSizeInspector.h * Palettes/3Containers/GormTableColumnSizeInspector.m * Palettes/3Containers/GormTableViewAttributesInspector.h * Palettes/3Containers/GormTableViewAttributesInspector.m * Palettes/3Containers/GormTableViewEditor.h * Palettes/3Containers/GormTableViewEditor.m * Palettes/3Containers/GormTableViewSizeInspector.h * Palettes/3Containers/GormTableViewSizeInspector.m * Palettes/3Containers/GormTabViewAttributesInspector.h * Palettes/3Containers/GormTabViewAttributesInspector.m * Palettes/3Containers/GormTabViewEditor.h * Palettes/3Containers/GormTabViewEditor.m * Palettes/3Containers/inspectors.m * Palettes/4Data/DataPalette.m * Palettes/4Data/GormDateFormatterAttributesInspector.h * Palettes/4Data/GormDateFormatterAttributesInspector.m * Palettes/4Data/GormImageViewAttributesInspector.h * Palettes/4Data/GormImageViewAttributesInspector.m * Palettes/4Data/GormNSComboBoxAttributesInspector.h * Palettes/4Data/GormNSComboBoxAttributesInspector.m * Palettes/4Data/GormNumberFormatterAttributesInspector.h * Palettes/4Data/GormNumberFormatterAttributesInspector.m * Palettes/4Data/GormTextViewAttributesInspector.h * Palettes/4Data/GormTextViewAttributesInspector.m * Palettes/4Data/GormTextViewEditor.h * Palettes/4Data/GormTextViewEditor.m * Palettes/4Data/GormTextViewSizeInspector.h * Palettes/4Data/GormTextViewSizeInspector.m * Palettes/4Data/inspectors.m * Palettes/5Controllers/ControllersPalette.m: Change header to reflect license change to GPLv3. 2007-11-05 18:20-EST Gregory John Casamento * GormCore/GormViewEditor.m: Removed commented out code. * Palettes/3Containers/GormNSTableColumnInspector.gorm * Palettes/3Containers/GormTableColumnAttributesInspector.h * Palettes/3Containers/GormTableColumnAttributesInspector.m * Palettes/3Containers/GormTableViewEditor.m: Added new column title field to the inspector so that the title can be edited there instead of directly. 2007-11-05 01:56-EST Gregory John Casamento * GormCore/GormViewEditor.m: Change code to use drawRect: instead of drawInNeededIgnoringOpacity: to correct bug#21478. 2007-09-07 19:57-EDT Gregory John Casamento * Palettes/0Menus/GormNSMenu.m: Correct exception on start when opening a gorm from the command line. 2007-09-05 00:41-EDT Gregory John Casamento * Palettes/2Controls/GormButtonAttributesInspector.h: Added ivars for new buttons. * Palettes/2Controls/GormButtonAttributesInspector.m: Addeed code in ok: and revert: to handle modifier settings * Palettes/2Controls/GormNSButtonInspector.gorm: Added key equivalent modifier buttons. 2007-09-03 23:12-EDT Gregory John Casamento * Palettes/2Controls/GormButtonAttributesInspector.m: added code to ok: and revert: to handle arrow keys for key equivalents. * Palettes/2Controls/GormNSButtonInspector.gorm: Added to dropdown list to include options for arrow keys. 2007-09-01 16:24-EDT Gregory John Casamento * Palettes/0Menus/GormNSMenu.m: Correction for compilation issue found by Riccardo. Code was improperly using protected _superMenu variable directly. 2007-08-24 22:36-EDT Gregory John Casamento * Resources/VersionProfiles.plist: Added version information for NSButtonCell. 2007-08-24 00:50-EDT Gregory John Casamento * GormCore/GormPrivate.m: Changed initWithCoder: to handle older .gorm (version 0) files correctly. 2007-08-19 21:22-EDT Gregory John Casamento * ChangeLog * GNUmakefile * Palettes/5Controllers/ControllersPalette.m * Palettes/5Controllers/ControllersPalette.tiff * Palettes/5Controllers/GNUmakefile * Palettes/5Controllers/GNUmakefile.preamble * Palettes/5Controllers/palette.table * Palettes/GNUmakefile * Resources/Defaults.plist: Initial changes for controllers palette. 2007-08-19 21:21-EDT Gregory John Casamento * GNUmakefile * Palettes/GNUmakefile * Resources/Defaults.plist 2007-07-27 13:30-EDT Gregory John Casamento * Gorm.m: Remove commented code. * Palettes/0Menus/GormNSMenu.m: Added private category to prevent compilation warning. 2007-07-26 10:25-EDT Gregory John Casamento * Palettes/0Menus/GormNSMenuView.m: Remove commented out code. 2007-07-26 10:06-EDT Gregory John Casamento * Gorm.m: Remove default setting * Palettes/0Menus/GNUmakefile: Add GormNSMenuView.m * Palettes/0Menus/GormNSMenu.m: Override methods to prevent changing style to Mac style for menu being edited. * Palettes/0Menus/GormNSMenuView.[mh]: New class overrides methods to prevent switching style to Mac style for menu being edited. * Palettes/0Menus/palette.table: Added substitution rule for NSMenuView. 2007-06-27 19:25-EDT Gregory John Casamento * GormCore/GormViewEditor.m: Correct bug#20274. Changed call displayIfNeededInRectIgnoringOpacity: to displayRectIgnoringOpacity: 2007-04-29 17:08-EDT Gregory John Casamento * English.lproj/GormViewSizeInspector.gorm: Correct bug#19640 * GormInfo.plist: update 2007-03-17 Gregory John Casamento * Version: 1.2.0 2007-03-08 Fred Kiefer * Palettes/3Containers/GormTabViewAttributesInspector.m (-ok:): Handle changed NSTabViewType enumerator values correctly. 2007-02-21 Matt Rice * GormLib/IBResourceManager.m (+registerResourceManagerClass:): Post an IBResourceManagerRegistryDidChangeNotification. 2007-02-04 Matt Rice * GormCore/GormDocument.m (_real_close): New function. (handleNotification:): Move document closing code to _real_close. (close:): Call _real_close. 2006-12-27 23:01-EST Gregory John Casamento * Gorm.m: [Gorm init] added code to force menu interface style to NSNextStepInterfaceStyle. 2006-10-04 Matt Rice * Palettes/3Menus/GormTableViewEditor.m: Start a connection when control-mousing the selected table column. 2006-12-03 19:54-EST Gregory John Casamento * GormCore/GormDocument.h: Change declaration for window member from NSWindow to GormDocumentWindow. * GormCore/GormDocument.m: Move cast from call to setDocument: to call to _docWindow private method. 2006-12-03 19:34-EST Gregory John Casamento * GormCore/GormDocument.m: Cast window for call of setDocument: method in awakeFromNib. * GormCore/GormDocumentWindow.h: Add setDocument: method. 2006-12-02 Matt Rice * Palettes/0Menus/GormMenuEditor.m (-mouseDown:): Call startConnecting. * GormCore/GormViewEditor.m (-startConnectingObject:withEvent:): Ditto. * GormCore/GormObjectEditor.m (-mouseDown:): Ditto. * GormCore/GormDocument.m (changeToViewWithTag:): Don't change the selection if connecting. * GormCore/GormResourceManager.m: Revert previous commit. * Gorm.m (-startConnecting:): Remove checks for a nil connectDestination. 2006-11-27 Matt Rice * GormCore/GormResourceManager.m: Temporarily comment out some code. 2006-11-23 22:23-EST Gregory John Casamento * English.lproj/GormDocument.gorm: Move initial position of Gorm document window back to the lower left of the screen. 2006-11-23 11:03-EST Gregory John Casamento * Version: 1.1.0 (also updated version requirements.) 2006-11-18 Matt Rice * GormCore/GormDocumentWindow.[h,m]: Add copyright headers. 2006-11-18 Matt Rice * GormCore/GNUmakefile: Add GormDocumentWindow.[h,m]. * GormCore/GormResourceManager.m: Add code to handle image/sound/header files. * GormCore/GormDocument.[h,m]: Add -viewWithTag: method. * GormCore/GormClassEditor.m: Remove dragging destination code for resources. * GormCore/GormResourceEditor.m: Ditto. * GormCore/GormObjectEditor.m: Ditto. (addObject:): Change the editor to the GormObjectEditor. * GormCore/GormDocument.m: Register the window for dragged types. Implement -viewWithTag:. * GormCore/GormDocumentWindow.[h,m]: New subclass of NSWindow which handles drag and drop to GormResourceManager. * GormCore/GormDocument.gorm: Set the main document window to a GormDocumentWindow class. 2006-11-15 Nicola Pero * Documentation/Examples/Controller/GNUmakefile: Do not set GNUSTEP_INSTALLATION_DIR. * Documentation/Examples/SimpleApp/GNUmakefile: Same change. 2006-11-11 00:04-EST Gregory John Casamento * Palettes/2Controls/GormNSSliderInspector.gorm: Added switch and textfield to hold the number of tickmarks. * Palettes/2Controls/GormSliderAttributesInspector.[hm]: Added method and ivar to handle tick marks. 2006-10-29 19:21-EST Gregory John Casamento * Palettes/3Containers/GormTableViewEditor.m: Add scrollToPoint: method to call the super_view. Corrects bug #18143. 2006-10-28 09:41-EDT Gregory John Casamento * English.lproj/GormClassEditor.gorm: Add tool tips for button and for pulldown. 2006-10-27 Matt Rice * Palettes/3Containers/GormTableViewEditor.m: Change documentRect to documentVisibleRect. 2006-10-23 01:23-EDT Gregory John Casamento * English.lproj/GormHelpInspector.gorm: Change resize properties. * GormCore/GormHelpInspector.m: in revert: blank text field when no connections are retrieved. 2006-10-23 01:14-EDT Gregory John Casamento * English.lproj/GormHelpInspector.gorm: Help inspector .gorm file. * GNUmakefile: Add .gorm file. * GormCore/GNUmakefile: Add new class. * GormCore/GormConnectionInspector.m: Call [super ok:] from ok: method. * GormCore/GormHelpInspector.[hm]: Implemented the beginnings of the help inspector. * GormCore/GormObjectEditor.m: Add helpInspectorClassName implementation to NSView category. 2006-10-21 23:51-EDT Gregory John Casamento * Palettes/3Containers/GormNSTableViewInspector.gorm: Added connection from tag form to tagForm instance variable. * Palettes/3Containers/GormTableViewAttributesInspector.m: Cleaned up includes. 2006-10-21 16:06-EDT Gregory John Casamento * GormCore/GormConnectionInspector.m: Added awakeFromNib method to call setDoubleAction: on the newBrowser (connection) object so that double click will now cause a connection to be made. * GormCore/GormGenericEditor.m: Initialize local variables in refreshCells method. 2006-10-21 11:45-EDT Matt Rice * Palettes/3Containers/GormTableViewEditor.m: Implement documentRect. Since the editor is the table's superview, it will take its size from the editor. Corrects bug#18073 Patch committed by Gregory John Casamento 2006-10-20 20:08-EDT Gregory John Casamento * GormCore/GNUmakefile * GormLib/GNUmakefile * GormLib/Version * GormObjCHeaderParser/GNUmakefile * GormObjCHeaderParser/Version * GormPrefs/GNUmakefile: Modify GNUmakefiles to use Version to properly name .so libraries. 2006-10-19 23:11-EDT Gregory John Casamento * GormCore/GormClassManager.m: Retain File's Owner setting, if class is being updated. Correction for bug #18035 2006-10-19 22:56-EDT Gregory John Casamento * GormCore/GormClassManager.[hm]: Added actionExists:onClassNamed: and outletExists:onClassNamed: methods to query the existence of a given action/outlet on a given class. * GormCore/GormDocument.[hm]: Added refreshConnectionsForClassNamed: method. * Images/GormFile.tiff: Added "gorm" in the center to make it obvious which type this is for. * Images/GormNib.tiff: Added "nib" in the center to make it obvious which type this is for. Correction for bug #18035 2006-10-18 14:03-EDT Gregory John Casamento * Images/FileIcon_gmodel.tiff * Images/GormNib.tiff * Images/GormPalette.tiff: Redid icons. 2006-10-15 19:32-EDT Gregory John Casamento * Images/GormFile.tiff: New Gorm file icon, based on new Gorm icon. * Images/GormTesting.tiff: New testing icon. * Images/Gorm.tiff: Switch to icon by Jesse Ross. 2006-10-10 22:46-EDT Gregory John Casamento * GNUmakefile: Install into SYSTEM domain by default. 2006-10-10 21:28-EDT Gregory John Casamento * GormLib/IBInspector.m: Remove uneeded call to [window setDocumentEdited:] in touch: method. * Palettes/2Controls/GormButtonAttributesInspector.m: In ok: call [super ok:]. 2006-10-10 20:56-EDT Gregory John Casamento * English.lproj/GormClassEditor.gorm: Make button momentary push and remove the image. * English.lproj/GormPrefGeneral.gorm: Change box title. * GormCore/GormClassEditor.[hm]: Change switchView to switchViewToDefault, add method toggleView:, add code to change image as appropriate. * GormPrefs/GormGeneralPref.m: Remove notification in classesAction: so that the default changes don't effect all class editors. 2006-10-10 00:37-EDT Gregory John Casamento * English.lproj/GormClassEditor.gorm: Aligned the toggle with the classesView. 2006-10-09 23:54-EDT Gregory John Casamento * English.lproj/GormClassEditor.gorm: Added button and search image. * GNUmakefile: Added new tiff files to images. * GormCore/GormClassEditor.m: Added toggleView: method. * Images/browserView.tiff: Browser image. * Images/outlineView.tiff: Outline image. 2006-10-09 Nicola Pero If you further modify any makefile using ProjectCenter, manually edit it before committing removing any line that sets GNUSTEP_INSTALLATION_DIR. * GNUmakefile: Do not try to set GNUSTEP_INSTALLATION_DIR. * Documentation/GNUmakefile: Same change. * GormCore/GNUmakefile: Same change. * GormObjCHeaderParser/GNUmakefile: Same change. * GormPrefs/GNUmakefile: Samce change. 2006-10-08 20:32-EDT Gregory John Casamento * Resources/ClassInformation.plist: Add NSSearchField and NSSearchFieldCell. 2006-10-06 Richard Frith-Macdonald * GormCore/GormPalettesManager.m: rewrite code to set up drag image so we avoid glitches on the pallette view (we no longer use the pallette window directly as the cached image window) and ensure that the image dragged is all copied correctly to avoid the glitches when dragging BSBox and NSScrollView items. 2006-10-06 00:16-EDT Gregory John Casamento * GormCore/GormClassEditor.m: Minor cleanup in handleNotification: method. 2006-10-05 13:16-EDT Gregory John Casamento * English.lproj/GormClassEditor.gorm: Added new gorm file to hold classes view contents as well as search and operations drop down. * English.lproj/GormDocument.gorm: Removed search and drop down * GNUmakefile: Added new gorm file. * GormCore/GormClassEditor.h: new outlets classesView and mainView, added declarations for methods createSubclass:, createClassFiles:, instantiateClass:, removeClass: * GormCore/GormClassEditor.m: Changes to methods to use the above. * GormCore/GormDocument.h: Removed duplicate declarations. * GormCore/GormDocument.m: Remove code for methods and replace with simple calls to the editor. * Palettes/2Controls/GormBoxAttributesInspector.m: ok: and revert: changed to convert to integer. 2006-10-04 22:35-EDT Gregory John Casamento * GormCore/GormCustomView.m: Minor cleanup in initWithFrame: * GormCore/GormGormWrapperLoader.m: Added logic to _repairFile to correct issue with views that don't have a name in the nametable. * GormCore/GormViewWithContentViewEditor.m: Properly add the subview back into the document in ungroup method. 2006-10-04 00:12-EDT Gregory John Casamento * English.lproj/GormDocument.gorm: Make connection to fileType in GormFilePrefsManager. * GormCore/GormDocumentController.m: Move the window when "New Application" is selected. * GormCore/GormDocument.m: Add call in awakeFromNib to setFileTypeName:. * GormCore/GormFilePrefsManager.h: add setFileTypeName: and fileTypeName. * GormCore/GormFilePrefsManager.m: add setFileTypeName: and fileTypeName. * Palettes/4Data/GormTextViewEditor.m: Remove commented out windowAndRect:forObject: 2006-10-01 23:07-EDT Gregory John Casamento * GormCore/GormClassEditor.m: Correct issue with class selection in deleteSelection method. 2006-10-01 22:50-EDT Gregory John Casamento * English.lproj/GormDocument.gorm: Remove some extra classes. 2006-10-01 22:23-EDT Gregory John Casamento * English.lproj/GormDocument.gorm: Added section in file section to show fileType. * GormCore/GormFilePrefsManager.m: Changed version number from 1,1,0 to 1,1,2. * GormCore/GormInspectorsManager.m: Removed kludge from setCurrentInspector:. * GormCore/GormScrollViewEditor.m: Remove code which returns the table view editor in editorClassName. In mouseDown: remove check in mouseDown: for NSScroller and subclasses. * GormCore/GormViewEditor.h: Declare frameDidChange: * Palettes/3Containers/GormTableViewEditor.m: Remove redundant implementation of performDragOperation:. Call draggingUpdated instead. * Palettes/4Data/DataPalette.m: Change minimum size. * Palettes/4Data/GormTextViewEditor.m: Add handleNotification: and add initWithObject:inDocument:. 2006-09-30 23:09-EDT Gregory John Casamento * GormCore/GormGModelWrapperLoader.m: Cleanup NSLog() calls. 2006-09-30 12:00-EDT Gregory John Casamento * GormCore/GormClassManager.h: Added declaration findByClassName: * GormCore/GormClassManager.m: Added findClassByName: method to find classes with partial text matches. * GormCore/GormDocument.m: Modified controlTextDidChange: to call findClassByName:. * GormCore/GormGModelWrapperLoader.m: Change className to cm in initWithModelUnarchiver: to avoid warning. 2006-09-29 22:56-EDT Gregory John Casamento * English.lproj/GormDocument.gorm: Added "Remove" to Operations menu. 2006-09-29 21:59-EDT Gregory John Casamento * English.lproj/GormDocument.gorm: Added "Operations" item to prevent accidental subclassing. Aligned with side of view and changed resizing properties. 2006-09-28 22:27-EDT Gregory John Casamento * GormCore/GormClassManager.m: Allow addClassNamed:... to accept arguments superClass, actions, and outlets as nil. * GormObjCHeaderParser/OCClass.m: Correctly recognize a category in [OCClass parse]; Corrects bug#17804. 2006-09-28 20:38-EDT Gregory John Casamento * English.lproj/GormDocument.gorm: Added search field and drop down for loading reading and subclassing. * GormCore/GormClassManager.m: Removed sorting from allSuperclassesOf: * GormCore/GormDocument.m: Added delegate method for search field. Implemments suggestions in bug#17802 (Change request). 2006-09-28 00:43-EDT Gregory John Casamento * Resources/Defaults.plist: Make the browser classes view the default. 2006-09-28 00:36-EDT Gregory John Casamento * GormCore/GormClassEditor.m: Correct problem which caused class inspector to loose focus. * GormInfo.plist: Update version to reflect SVN. * GormPrefs/GormGuidelinePref.m: Eliminate warning. 2006-09-27 22:28-EDT Gregory John Casamento * GormCore/GormClassManager.m: Sort classnames in subClassesOf:, allSuperclassesOf:, allSubclassesOf:, allCustomSubClassesOf:. 2006-09-13 23:19-EDT Gregory John Casamento * Palettes/1Windows/GNUmakefile: Added new classes and interface. * Palettes/1Windows/GormDrawerAttributesInspector.gorm: Inspector interface. * Palettes/1Windows/GormDrawerAttributesInspector.[hm]: Inspector. * Palettes/1Windows/inspectors.m: Added implementation for inspectorClassName. 2006-09-12 23:10-EDT Gregory John Casamento * GormCore/GormWindowEditor.m: Remove IBApplicationAdditions category. * Palettes/1Windows/DrawerSmall.tiff: icon for NSDrawer in objects view. * Palettes/1Windows/Drawer.tiff: Icon for drawer on palette * Palettes/1Windows/GNUmakefile: Added new files. * Palettes/1Windows/inspectors.m: Add IBApplicationAdditions category for NSWindow (from GormWindowEditor above) and add category for NSDrawer. * Palettes/1Windows/WindowsPalette.h: Moved interface for WindowsPalette here. * Palettes/1Windows/WindowsPalette.m: Removed interface and added #include * Resources/ClassInformation.plist: Added ivars which were missing for NSDrawer. 2006-08-27 01:37-EDT Gregory John Casamento * GormCore/GormBoxEditor.m: Check to see if the subview responds to destroyAndListSubviews. * GormCore/GormViewWithContentViewEditor.m: [GormViewWithContentViewEditor ungroup] added local variable "v" to hold the view. * Gorm.m: Remove NSLog from ungroup method. Partial correction for bug#17538. 2006-08-20 12:23-EDT Gregory John Casamento * GormCore/GormDocument.m: Modify outdated "upgrade" warning in fileWrapperRepresentationOfType:. * GormCore/GormGormWrapperLoader.m: Set .gorms of version 1 as old in buildFileWrapperDictionaryWithDocument:. 2006-08-19 19:18-EDT Gregory John Casamento * Palettes/2Controls/GormFormAttributesInspector.m: Minor cleanup in ok: * Palettes/2Controls/GormNSFormInspector.gorm: Added missing connections. 2006-08-16 00:54-EDT Gregory John Casamento * GormCore/GormDocument.m: Simplify message in fileRepresentationOfType:. * GormCore/GormNibWrapperBuilder.m: Correct test for menu which was causing the app to crash in openItems method. 2006-08-15 17:50-EDT Gregory John Casamento * GormCore/GormWrapperLoader.m: Correct problem introduced in previous commit in [GormWrapperLoader loadFileWrapper: withDocument:]; 2006-08-15 02:16-EDT Gregory John Casamento * GormCore/GormFilePrefsManager.h: Add declaration for nibDataWithOpenObjects: * GormCore/GormFilePrefsManager.m: Rename nibData to nibDataWithOpenObjects: * GormCore/GormNibWrapperBuilder.m: Create the IBOpenObjects list in buildWrapper... * GormCore/GormResource.m: Properly assign the data to the ivar in initWithData:... * GormCore/GormWrapperBuilder.m: Correct image loading and saving issue. * GormCore/GormWrapperLoader.m: Correct image problem. 2006-08-14 21:48-EDT Gregory John Casamento * GormCore/GormNibWrapperBuilder.m: Properly encode oids as integers in -[NSIBObjectData initWithDocument:] since bug#17426 is corrected. 2006-08-14 01:04-EDT Gregory John Casamento * GormCore/GormNibWrapperBuilder.m: Temporary workaround in -[NSIBObjectData initWithDocument:] until 17426 is resolved. 2006-08-13 21:48-EDT Gregory John Casamento * GormCore/GormNibWrapperBuilder.m: Correct issue which was causing IB to complain about the File's Owner not having an oid in [NSIBObjectData initWithDocument:]. * GormCore/GormWrapperBuilder.m: Correct issue discovered by Benhur Stein that was causing images not to be saved in the wrapper correctly in buildFileWrapperDictionaryWithDocument: * Gorm.m: Remove uneeded application:openFile: method which was commented out. 2006-08-11 11:13-EDT Gregory John Casamento * GormCore/GormDocumentController.m: Default backing store changed in newDocument: to NSBackingStoreBuffered instead of NSBackingStoreRetained. 2006-08-11 01:53-EDT Gregory John Casamento * GormCore/GormCustomView.m: Corrected encoding issues with custom view in encodeWithCoder: it now properly encodes itself as an NSCustomView. 2006-08-09 02:29-EDT Gregory John Casamento * GormCore/GormCustomView.m: encodeWithCoder: changes to encode the customview. * GormCore/GormNibWrapperBuilder.m: Add oids for connectors and also add one for the owner. 2006-08-06 00:37-EDT Gregory John Casamento * GormCore/GormFilesOwner.m: Remove implementation of initWithCoder: * GormCore/GormNibWrapperBuilder.m: In -[NSIBObjectData initWithDocument:] add code to set NSFramework key. 2006-08-05 08:46-EDT Gregory John Casamento * GormCore/GormClassManager.m: Fixes to encode classes.nib file properly. * GormCore/GormFilePrefsManager.m: Added code to encode a dummy info.nib for nib saving. * GormCore/GormFilesOwner.m: Code to encode this as a NSCustomObject in encodeWithCoder: * GormCore/GormNibWrapperBuilder.m: in -[NSIBObjectData initWithDocument:] added code to pull the names and generate OIDS for the .nib properly. 2006-08-01 00:12-EDT Gregory John Casamento * GormCore/GNUmakefile: Add GormNibWrapperBuilder.m * GormCore/GormClassManager.m: Correct nibData method to properly output information in classes.nib format. * GormCore/GormDocument.m: Slight improvement to windowAndRect: forObject:. * GormCore/GormFilePrefsManager.[hm]: Add nibData method. * GormInfo.plist: Change GSNibFileType entry to "Editor" * GormNibWrapperBuilder.m: Class to write nibs. 2006-07-18 23:04 Gregory John Casamento * GormCore/GormFunctions.m: Remove the width and height adjustment from the function minimalContainerFrame(). * GormCore/GormPrivate.m: Add the encoding logic for saving NSCustomObject. * GormCore/GormViewWindow.m: Add the width and height here, instead of in the function. 2006-07-16 23:13 Gregory John Casamento * GormCore/GormFunctions.h: * GormCore/GormFunctions.m: * GormCore/GormViewWindow.m: Improved placement of standalone views when being loaded by .gorm files. 2006-07-15 18:34 Gregory John Casamento * Images/Gorm.tiff: Slightly improved icon. Based on suggestions from people on #gnustep. More improvements to come. 2006-07-12 00:31 Gregory John Casamento * Gorm.m: in testInterface, make the item with terminate: the "Quit Test" item, if none is found add one. 2006-07-10 01:32 Gregory John Casamento * GormCore/GormGormWrapperLoader.m: in loadFileWrapper:withDocument: removed the check for the info file. Some earlier versions of the .gorm wrapper don't have this file. 2006-07-09 23:27 Gregory John Casamento * GormCore/GormNibWrapperLoader.m: Replace the destination or source of any connection which connects to an NSWindowTemplate object. 2006-07-09 17:59 Gregory John Casamento * GormCore/GormViewEditor.m: Correction for issue which was causing size inspector not to update when a view was moved or changed. Removed code in editoedObjectFrameDidChange: and frameDidChange: to correct the problem. 2006-07-09 13:04 Gregory John Casamento * GormCore/GormNibWrapperLoader.m: Correct test for customClass or name in loadFileWrapper:withDocument:. 2006-07-09 11:18 Gregory John Casamento * GormCore/GormCustomView.m: initWithCoder: move call to get customView className after the if, so that it's properly set. * GormCore/GormNibWrapperLoader.m: Remove commented out code. 2006-07-09 10:46 Gregory John Casamento * English.lproj/GormDocument.gorm: New version profile added to pull down. * GormCore/GormDocument.m: Encode topLevelObjects first in encodeWithCoder: and decode first in initWithCoder:. * GormCore/GormGormWrapperBuilder.m: Changes for version 2 of GSNibContainer. * GormCore/GormGormWrapperLoader.m: Changes for version 2 of GSNibContainer. * GormCore/GormNibWrapperLoader.m: No longer explicitly get the main menu. The main menu is the only menu that is a top level object, so let it determine itself. * GormCore/GormWrapperBuilder.m: Changes to prevent sending back a file wrapper if the dictionary returned is nil in buildWrapperWithDocument:. * Resources/VersionProfiles.plist: New version profile. 2006-07-05 20:17 Gregory John Casamento * Gorm.m: In testInterface, assign top level objects from the testContainer to topObjects, a temporary var, so that they can be properly cleaned up. 2006-07-05 19:56 Gregory John Casamento * Gorm.m: Correct bug introduced at some point in testInterface which causes the test mode not to display a menu when the application has no menu. It is supposed to show a small test menu so that test mode can be exited. 2006-07-05 00:02 Gregory John Casamento * GormCore/GormNibWrapperLoader.m: Added check to prevent error if customclass or name comes back nil. 2006-07-03 17:18 Gregory John Casamento * GormCore/GormNibWrapperLoader.m: Remove category for NSView which provided setSuperview as it is no longer needed. 2006-07-02 00:53 Gregory John Casamento * GormCore/GormCustomView.[hm]: If CustomView includes some subviews in a nib file make the custom view into the best possible superclass of the custom class indicated. Also store the className in a variable instead of depending on "stringValue". 2006-06-24 20:49 Gregory John Casamento * GormCore/GormNibWrapperLoader.m: Make _isTopLevelObject: into a normal method, not private. 2006-06-24 20:41 Gregory John Casamento * GormCore/GormNibWrapperLoader.m: Change -[GormNibWrapperLoader _isTopLevelObject:] to use the "objects" map. This map is used to maintain parent/child object relationships in the .nib file. * Gorm.m: in -[Gorm testInterface] change the warning to use multiple lines. On smaller screens it runs over. 2006-06-24 10:36 Gregory John Casamento * GormCore/GormNibWrapperLoader.m: Remove swappedObjects ivar and also remove from -init and -dealloc in GormNibWrapperLoader. 2006-06-24 10:22 Gregory John Casamento * GormCore/GormNibWrapperLoader.m: Use the "classes" map properly in -[GormNibWrapperLoader loadWrapperFile:withDocument:]. * main.m: Correct comment. 2006-06-23 00:57 Gregory John Casamento * GormCore/GormGModelWrapperLoader.m: call -[NSDocument updateChangeCount:] to clear changes so that the document isn't flagged as needing to be saved right after load. * GormCore/GormNibWrapperLoader.m: Use the objects in the map returned by -names in -loadFileWrapper:withDocument:. 2006-06-18 14:40 Gregory John Casamento * GormCore/GormNibWrapperLoader.m: Added filter to remove NSIBHelpConnector instances from the connections array. 2006-06-17 20:39 Gregory John Casamento * GormCore/GormNibWrapperLoader.m: Remove resizing change from loadFileWrapper:withDocument: since it was moved to NSWindowTemplate nibInstantiate. 2006-06-17 12:45 Gregory John Casamento * GormCore/GormInternalViewEditor.m: Removed previous resize in activate method. * GormCore/GormNibWrapperLoader.m: Code to properly resize the window after loading. 2006-06-17 10:54 Gregory John Casamento * GormCore/GormCustomView.m: Return self in the conditional that reads the custom view. * GormCore/GormInternalViewEditor.m: Reset the current view size so that the window is properly displayed. * Palettes/1Windows/GormNSWindow.m: Send deferred as "NO" always. 2006-06-17 06:53 Gregory John Casamento * GormCore/GormNibWrapperLoader.m: Added code to clear changes so that the nib loads without showing the document as changed. Also added code to correct the missing colon in some nib files for certain methods so that connections are correctly made. * Resources/ClassInformation.plist: Addition of missing methods on NSFirst. 2006-06-17 06:25 Gregory John Casamento * GormCore/GormNibWrapperLoader.m: Fix for connections to NSOwner. 2006-06-15 00:48 Gregory John Casamento * GormCore/GModelDecoder.m: Removed old class. * GormCore/GNUmakefile: Added new GormGModelWrapperLoader class * GormCore/GormClassManager.m: Minor cleanup * GormCore/GormDocument.m: Temporarily comment out release of file prefs window. * GormCore/GormGModelWrapperLoader.m: new loader class for GModel. * GormCore/GormNibWrapperLoader.m: Minor cleanup * GormInfo.plist: Added GModel entry back in and made both GModel and Nib "Viewer" entries. 2006-06-14 22:45 Gregory John Casamento * GormCore/GormDocument.[hm]: Added new deactivateEditors and reactivateEditors methods. * GormCore/GormGormWrapperBuilder.m: Moved connection name/object swap here for gorm format. * Gorm.m: Calling new deactivate/reactivateEditors 2006-06-14 01:42 Gregory John Casamento * GormCore/GNUmakefile: Addition of GormNibWrapperLoader to the makefile. * GormCore/GormClassManager.[hm]: Correction for nib classes loading. * GormCore/GormDocument.h: Added include for GSNibContainer * GormCore/GormDocument.m: In NSNibConnector category which implements "isEqual" check if it's the same "kind of class". If not return NO. * GormCore/GormGormWrapperBuilder.m: Corrections for connection persistence issues. * GormCore/GormGormWrapperLoader.m: Corrections for connection persistence issues. * GormCore/GormNibWrapperLoader.m: Initial cut at class to build the nib wrapper. * GormCore/GormPrivate.[hm]: Added encoding changes to GormObjectProxy and GormCustomView to allow them to handle NSCustomObject and NSCustomView respectively * Gorm.m: In testing, don't substitute the browser either. 2006-06-10 21:04 Gregory John Casamento * GormCore/GormGormWrapperLoader.m: removed uneeded sound/image logic. That is in the parent class. 2006-06-10 10:28 Gregory John Casamento * GormCore/GormDocument.m: Removed code that does name/obj substitution in connections. * GormCore/GormGormWrapperBuilder.m: Added code which handles name/obj substitution. * Gorm.m: Corrected issues with testing. 2006-06-10 09:24 Gregory John Casamento * GormCore/GModelDecoder.m: Changes to make this compile with new modifications. * GormCore/GNUmakefile: Addition of new files. * GormCore/GormCustomView.m:Encoding changes for NSCustomView. * GormCore/GormDocumentController.m: Removed touch, so that it is possible to quit when first creating a new document, this is the way other document oriented apps behave. * GormCore/GormDocument.[hm]: Added container methods and coding methods. * GormCore/GormGormWrapperBuilder.m: Class whic writes gorm files. * GormCore/GormGormWrapperLoader.m: Class which loads gorm files * GormCore/GormPrivate.[hm]: Simplification of init call to GormObjectProxy. * GormCore/GormWrapperBuilder.[hm]: Wrapper builder * GormCore/GormWrapperLoader.[hm]: Wrapper loader * Gorm.m: Change testInterface to encode the doc. 2006-06-05 21:20 Gregory John Casamento * GormCore/GormDocumentController.m: touches the initial document so that the user cannot simply quit after. Also sets the initial fileType. * GormCore/GormDocument.m: Compose the names used in Gorm name table using the base class name (without NS or GS) and a number in parenthesis starting with 0. A new panel or window might look like Window(0) or Panel(1). 2006-06-05 01:46 Gregory John Casamento * GormCore/GormClassManager.h: Added classes.nib loading and saving method declarations. * GormCore/GormClassManager.m: Added classes.nib loading and saving method implementations. * GormCore/GormDocument.h: Add NSObject to id declaration for container ivar. * GormCore/GormDocument.m: Minor cleanup. * GormCore/GormProtocol.h: Minor cleanup. 2006-06-04 22:11 Gregory John Casamento * ChangeLog * English.lproj/GormDocument.gorm * English.lproj/Gorm.gorm * GormCore/GModelDecoder.m * GormCore/GNUmakefile * GormCore/GormClassManager.h * GormCore/GormClassManager.m * GormCore/GormDocument.h * GormCore/GormDocument.m * GormCore/GormFilePrefsManager.h * GormCore/GormFilePrefsManager.m * GormCore/GormFilesOwner.m * GormCore/GormImageEditor.m * GormCore/GormImage.h * GormCore/GormImage.m * GormCore/GormProtocol.h * GormCore/GormResource.h * GormCore/GormResource.m * GormCore/GormSound.h * GormCore/GormSound.m * GormCore/GormViewWithContentViewEditor.m * GormInfo.plist * GormLib/IBDocuments.h * GormLib/IBPalette.m * Gorm.m * Palettes/0Menus/GormNSMenu.m * Palettes/1Windows/GormNSWindow.m * Version: Merged from NibCompatibility branch. 2006-06-03 11:44 Gregory John Casamento * English.lproj/Gorm.gorm: Add GormDocumentController as delegate to Gorm. * GormCore/GormDocumentController.m: Comment. * GormCore/GormDocument.h: Comments and containerClass declaration. * GormCore/GormDocument.m: containerClass implementation and use. * GormLib/IBDocuments.h: More descriptive comment. * GormLib/IBPalette.m: Remove IBPaletteDocument, since this is not used. * Gorm.m: Remove applicationShouldTerminate, since it is handled by GormDocumentController as the app delegate. 2006-06-01 23:06 Gregory John Casamento * GormInfo.plist: Correct NSName entries. 2006-05-30 00:03 Gregory John Casamento * GormCore/GormDocumentController.h * GormCore/GormDocumentController.m: New file. * Gorm.m: Reimplemented activeDocument to use the document controller. 2006-05-29 22:55 Gregory John Casamento * GormCore/GormDocument.m: Removed some unused variables in fileWrapperRepresentationOfType:. 2006-05-29 22:50 Gregory John Casamento * GormCore/GormDocument.[hm]: Added scmDirWrapper and private method saveSCMDirectory to preserve the .svn/CVS directories, if they are there. * GormInfo.plist: GormDocument will be responsible for saving/reading all types. 2006-05-29 18:38 Gregory John Casamento * GormCore/GormImage.m: Corrected minor issue in initWithData:... 2006-05-29 11:48 Gregory John Casamento * GormCore/GormDocument.h: Added new ivars for holding images/sounds temporarily. * GormCore/GormDocument.m: loadFileWrapperRepresentation:ofType: modified to use images/sounds arrays. The awakeFromNib method now pulls objects from those arrays and inserts them into the GormImageEditor/GormSoundEditor instances when the nib is fully loaded. 2006-05-29 10:39 Gregory John Casamento * GormCore/GormDocument.m: Override displayName and keepBackupFile. * Palettes/1Windows/GormNSWindow.m: Remove test code. 2006-05-28 23:31 Gregory John Casamento * GormCore/GormProtocol.h: Removed some methods not needed anymore. 2006-05-28 23:03 Gregory John Casamento * English.lproj/Gorm.gorm: Removed uneeded methods from Gorm class. * GormCore/GormDocument.[hm]: Add sender as a parameter to translate and exportStrings. * Gorm.m: Removed some uneeded checks in validateMenu: also removed uneeded methods which were used to forward to GormDocument. * Palettes/0Menus/GormNSMenu.m: Can't become key. 2006-05-28 19:36 Gregory John Casamento * English.lproj/GormDocument.gorm: Reparented GormDocument to be a subclass of NSDocument and also redid connections. * English.lproj/Gorm.gorm: Added new GormDocumentController class. redid connections to save/new/and loadDocument methods for NSDocument subclasses. * GormCore/GModelDecoder.m: Changed to reflect changes to document. * GormCore/GNUmakefile: Added new classes. * GormCore/GormClassManager.[hm]: Added methods to allow initialization and saving to NSData * GormCore/GormDocument.[hm]: Removed save* and load* methods, implemented loadFileWrapperRepresentation:ofType: and fileWrapperRepresentationOfType: for NSDocument. * GormCore/GormFilePrefsManager.[hm]: Added methods to allow initialization from data. * GormCore/GormImageEditor.m: Changed comment. * GormCore/GormImage.[hm]: Allow init with data. * GormCore/GormProtocol.h: Removed superceded methods. * GormCore/GormResource.[hm]: Allow initialization with data. * GormCore/GormSound.[hm]: Changed to allow initialization with data. * GormCore/GormViewWithContentViewEditor.m: Fixed warning. * GormInfo.plist: Updated information for use with NSDocument. * Gorm.m: Remove superceded methods. * Palettes/1Windows/GormNSWindow.m: Temporary debugging method. 2006-05-20 18:19 Gregory John Casamento * GormCore/GormFilePrefsManager.m: Updated to 1.0.9 * GormInfo.plist: Updated to 1.0.9. * [NibCompatibility]: Merged from this branch to HEAD. 2006-01-08 14:03 Gregory John Casamento * GormCore/GormPrivate.m: Removed deprecated templates. * GormCore/GormViewEditor.m: Removed problem which was causing a notification loop. [NibCompatibility] 2006-05-20 04:47 Gregory John Casamento * Version 1.0.8 2006-05-20 04:46 Gregory John Casamento * ANNOUNCE * Documentation/news.texi * GormCore/GormFilePrefsManager.m * GormInfo.plist * NEWS * Version: Changes for 1.0.8 bugfix release. 2006-05-16 00:56 Gregory John Casamento * GormCore/GormDocument.m: Improved logic in detachObject: to clear the selection in the parent editor and reset the selection in the document to prevent any problems when an object is removed. Also added code for removeAllInstancesOfClass: from GormObjectEditor. * GormCore/GormFunctions.m: allSubviews shouldn't return the view which is initially passed. * GormCore/GormInternalViewEditor.m: simplified deleteSelection because of changes to detachObject: * GormCore/GormObjectEditor.[hm]: Remove removeAllInstancesOfClass: from the header and class. 2006-05-15 22:58 Gregory John Casamento * GormCore/GormClassEditor.m: Reload all on calls to reloadData * GormCore/GormDocument.m: in detachObject: make certain that window is closed and released. Corrects bug#16587. 2006-05-15 21:28 Gregory John Casamento * GormCore/GormFilePrefsManager.m * GormInfo.plist: Update to 1.0.7. 2006-05-01 07:45 David Ayers * Palettes/3Containers/GormNSTableView.m ([-tableView:objectValueForTableColumn:row:]): Do not assume that the identifier of the table column is an NSString. 2006-04-30 09:15 David Ayers * GormCore/GormCustomClassInspector.m ([-_replaceWithCellClassForClassName:]): Cast to NSCell to invoke type to disambiguate incompatible method signatures. 2006-04-08 15:16 Gregory John Casamento * Version 1.0.6 2006-04-08 15:15 Gregory John Casamento * GormCore/GormFilePrefsManager.m 2006-04-08 14:40 Gregory John Casamento * ANNOUNCE * Documentation/news.texi * NEWS * Version: Changed for release 1.0.6. 2006-04-06 07:29 Gregory John Casamento * GormInfo.plist: Update date in info file. 2006-03-25 10:32 Gregory John Casamento * Palettes/4Data/GormNSNumberFormatterInspector.gorm: Change labels in inspector to clarify. 2006-03-24 17:34 Gregory John Casamento * Images/GormTesting.tiff: New testing icon * Palettes/2Controls/GormNSButtonInspector.gorm: * Palettes/2Controls/GormNSTextFieldInspector.gorm: * Palettes/4Data/GormNSImageViewInspector.gorm: Usability changes. Some inspectors had some "dead" space. 2006-03-21 20:03 Gregory John Casamento * Images/Gorm.tiff: Slight change so that .xpm renders a little more nicely when docking. 2006-03-21 19:54 Gregory John Casamento * GNUmakefile * GormInfo.plist * Images/Gorm.tiff: Improved icon. 2006-03-20 22:41 Gregory John Casamento * GNUmakefile: Added entries for new icons * GormInfo.plist: Added entries for new icons * Images/FileIcon_gmodel.tiff: Changed icon * Images/GormFile.tiff: New icon * Images/GormPalette.tiff: New icon * Images/GormTesting.tiff: Changed icon * Images/Gorm.tiff: Changed icon 2006-03-19 23:38 Gregory John Casamento * GormInfo.plist: Added 2006 * Images/centeralign_nib.tiff * Images/leftalign_nib.tiff * Images/rightalign_nib.tiff: Recreated images. 2006-03-19 22:42 Gregory John Casamento * GormInfo.plist: Update date. 2006-03-19 21:43 Gregory John Casamento * Images/GormEHCoil.tiff * Images/GormEHLine.tiff * Images/GormEVCoil.tiff * Images/GormEVLine.tiff * Images/GormMHCoil.tiff * Images/GormMHLine.tiff * Images/GormMVCoil.tiff * Images/GormMVLine.tiff: Improved images. 2006-03-18 20:12 Gregory John Casamento * GormCore/GormDocument.m: Generalize rule for adding documentView objects from a scrollview. * GormCore/GormInspectorsManager.m: Correct logic which selects the object to send to the inspector. * GormCore/GormScrollViewEditor.m: Cleanup code a little bit. 2006-03-16 06:33 Gregory John Casamento * GormCore/GormViewWithContentViewEditor.m: Correction related to bug#16049. There was an issue with moving a table column while the table was selected. 2006-03-11 20:40 Gregory John Casamento * GormCore/GormViewWithContentViewEditor.m: Minor formatting changes. * Palettes/4Data/DataPalette.m: Correction for bug#15988, patch by Matt Rice. 2006-03-11 16:57 Gregory John Casamento * Palettes/3Containers/GormTableViewEditor.m: Correction for bug#16050. 2006-03-10 01:24 Gregory John Casamento * GormCore/GormViewEditor.m: Correction for bug#16049 2006-03-09 05:18 Gregory John Casamento * Images/GormEHCoil.tiff * Images/GormEHLine.tiff * Images/GormEVCoil.tiff * Images/GormEVLine.tiff * Images/GormMHCoil.tiff * Images/GormMHLine.tiff * Images/GormMVCoil.tiff * Images/GormMVLine.tiff: Remade coil/lines to look cleaner. 2006-03-05 20:10 Gregory John Casamento * GormCore/GormPalettesManager.m: Correction for bug#15989 2006-03-04 19:44 Gregory John Casamento * Palettes/3Containers/GormTableViewEditor.m: Correction for bug#15987. 2006-02-22 22:52 Gregory John Casamento * Gorm.m: Overide arrangeInFront: so that when testing the interface it doesn't inadvertantly bring the edited window forward. 2006-02-20 08:54 Gregory John Casamento * GormCore/GormScrollViewEditor.m: Correction for bug#15817. Returning only GormScrollViewEditor was causing an issue with editing tables. 2006-02-19 12:07 Gregory John Casamento * Palettes/2Controls/GormTextFieldAttributesInspector.m: Correction for bug#15780. 2006-02-09 23:36 Gregory John Casamento * GormInfo.plist: Change "RELEASE" to SVN to indicate that 1.0.5 is an unstable version. 2006-02-06 21:06 Gregory John Casamento * Palettes/3Containers/GormNSTableViewInspector.gorm * Palettes/3Containers/GormTableViewAttributesInspector.m: Correction for bug#15642. 2006-02-03 21:56 Gregory John Casamento * GormCore/GormScrollViewAttributesInspector.m * GormCore/GormScrollViewEditor.m: Corrected problem with adding something to a scrollview. 2006-02-01 23:24 Gregory John Casamento * GormCore/GormFilePrefsManager.m * GormInfo.plist * Version: Updated with new version information. 2006-02-01 22:08 Gregory John Casamento * Palettes/4Data/GormDateFormatterAttributesInspector.m: Correction for bug#15556 2006-01-25 05:21 Gregory John Casamento * Version 1.0.4 2006-01-21 00:19 Gregory John Casamento * GormCore/GormViewEditor.m: [GormViewEditor activate] do not send notifications about frame size changes, if the object is a standalone view. * GormCore/GormViewSizeInspector.m: [GormViewSizeInspector setObject:] Added code to enable/disable cells if view is standalone. 2006-01-17 22:03 Gregory John Casamento * ChangeLog * GormCore/GormViewEditor.m * GormCore/GormViewSizeInspector.m * Palettes/1Windows/GormWindowAttributesInspector.m * Palettes/1Windows/GormWindowSizeInspector.m: Merged changes from the baseline. 2006-01-16 23:19 Gregory John Casamento * GormCore/GormViewSizeInspector.m: Correction for a similar problem in the view size inspector. Added to call to abort editing. 2006-01-16 16:25 Gregory John Casamento * Palettes/1Windows/GormWindowSizeInspector.m: Correction for bug#13994. abortEditing call to all forms added to revert:. 2006-01-16 12:20 Gregory John Casamento * Palettes/1Windows/GormWindowAttributesInspector.m: Correction for bug#15236. In ok: method the newStyleMask variable wasn't properly initialized, this was causing the flags to be set 2006-01-08 14:03 Gregory John Casamento * GormCore/GormPrivate.m: Removed deprecated templates. * GormCore/GormViewEditor.m: Removed problem which was causing a notification loop. 2005-12-15 19:08 Gregory John Casamento * GormCore/GormDocument.m: Correction for crash on close after opening objects.gorm directly. Corrects bug#15178. 2005-12-14 22:08 Gregory John Casamento * GormCore/GormDocument.h: Declaration for new readableTypes method. * GormCore/GormDocument.m: Added readableTypes method to return the types accepted by GormDocument. * Gorm.m: Use readableTypes in application:openFile: corrects bug#15178 2005-11-19 09:57 Gregory John Casamento * Version 1.0.1 2005-11-14 09:59 Gregory John Casamento * Palettes/3Containers/GormTabViewEditor.m: Correction to tabView: shouldSelectTabViewItem: for gcc < 3.x compatibility. 2005-11-13 23:17 Gregory John Casamento * GormCore/GormCustomClassInspector.m: Correctly handle image/text cell in replaceWithCellClassForClassName:. 2005-11-13 Richard Frith-Macdonald * GormCore/GormFunctions.m: Use NSSearchPathForDirectoriesInDomains() to locate resources rather than broken use of NSOpenStepRootDirectory() 2005-11-12 16:32 Gregory John Casamento * GormCore/GormClassManager.m * GormCore/GormGenericEditor.h * GormCore/GormPalettesManager.m * GormCore/GormPrivate.h * GormObjCHeaderParser/OCHeaderParser.m * Palettes/0Menus/GormMenuAttributesInspector.m: Corrected minor compilation warnings. 2005-11-12 15:33 Gregory John Casamento * GormCore/GormScrollViewAttributesInspector.m: Corrected problem reported by Matt Rice with table column selection. 2005-11-04 00:20 Gregory John Casamento * GormCore/GormCustomClassInspector.m: Corrected problem with cell. 2005-11-02 20:17 Gregory John Casamento * GormCore/GormFilePrefsManager.m: Updated version to 1.0.1 * GormInfo.plist: Same * Palettes/2Controls/GormNSTextFieldInspector.gorm: Corrected resize issues. 2005-10-29 09:09 Gregory John Casamento * Version 1.0.0 2005-10-29 09:04 Gregory John Casamento * ANNOUNCE: Updated for 1.0 * Documentation/news.texi: Updated for 1.0 * INSTALL: Updated for 1.0 * NEWS: Updated for 1.0 * README: Updated for 1.0 * Version: Updated for 1.0 * GormCore/GormCustomClassInspector.m: Fixed minor problem updating cell. 2005-10-05 20:21 Gregory John Casamento * Palettes/1Windows/GormNSWindowSizeInspector.gorm: Remove delegate from sizeForm and connect to ok: * Palettes/1Windows/GormWindowSizeInspector.m: Cleanup in ok: and other methods. 2005-10-05 fabien * Palettes/2Controls/GormButtonAttributesInspector.m : Add delegate method for forms 2005-10-05 00:21 Gregory John Casamento * Palettes/1Windows/GormNSWindowInspector.gorm: Corrected spelling of "deactivate" on Window Inspector. 2005-10-04 20:57 Gregory John Casamento * GormCore/GormScrollViewAttributesInspector.m: In category IBObjectAdditions, for editorClassName, return only GormScrollViewEditor. * GormCore/GormScrollViewEditor.m: Cleanup. 2005-09-29 19:38 Gregory John Casamento * GormCore/GormConnectionInspector.m: Corrected resizing attributes in the GormInspectorManager setCurrentInspector: method. * GormCore/GormInspectorsManager.m: Corrected resizing attributes for connect and revert buttons in init. 2005-09-25 14:40 Gregory John Casamento * GormCore/GormInspectorsManager.m: Additional correct in setCurrentInspector: 2005-09-25 12:54 Gregory John Casamento * English.lproj/GormInspectorPanel.gorm: Set resize options correctly. * GormCore/GormConnectionInspector.m: [GormConnectionInspector init] modified size of ok/revert buttons. * GormCore/GormDocument.m: Pull the archive type in [GormDocument saveGormDocument:] * GormCore/GormInspectorsManager.m: in setCurrentInspector: corrected issues with inspector resizing. 2005-09-15 00:53 Gregory John Casamento * GormCore/GormInspectorsManager.[mh]: Added origFrame to allow resetting the inspectorView frame to it's original size in setCurrentInspector:. * GormCore/GormPalettesManager.m: Removed old commented out code in init. 2005-09-12 22:15 Gregory John Casamento * GNUmakefile: Copy the .gorm file into the Resources. * GormCore/GormInspectorsManager.h: Use the inspector panel gorm. * GormCore/GormInspectorsManager.m: Use the inspector panel gorm. * English.lproj/GormInspectorPanel.gorm: corrects bug#13767. * English.lproj/GormDummyInspector.gorm: corrects bug#13767. 2005-09-04 10:17 Gregory John Casamento * Palettes/4Data/GormNSComboBoxAttributesInspector.m: In ok: performs a revert to show any changes which were made automatically as a result of other changes. 2005-09-04 10:00 Gregory John Casamento * Palettes/1Windows/GormWindowAttributesInspector.m * Palettes/1Windows/GormWindowSizeInspector.m * Palettes/2Controls/GormBoxAttributesInspector.m * Palettes/2Controls/GormColorWellAttributesInspector.m * Palettes/2Controls/GormMatrixAttributesInspector.m * Palettes/2Controls/GormNSTextFieldInspector.gorm * Palettes/2Controls/GormTextFieldAttributesInspector.m * Palettes/3Containers/GormTableColumnAttributesInspector.m * Palettes/3Containers/GormTableViewAttributesInspector.m * Palettes/4Data/GormNSComboBoxAttributesInspector.h * Palettes/4Data/GormNSComboBoxAttributesInspector.m * Palettes/4Data/GormNSComboBoxInspector.gorm * Palettes/4Data/GormTextViewAttributesInspector.m: Removed all extraneous and unecessary (and annoying) #warning messages. 2005-08-29 22:41 Gregory John Casamento * Palettes/2Controls/GormFormAttributesInspector.h: Added ivar autosizeSwitch. * Palettes/2Controls/GormFormAttributesInspector.m: Added code to handle autosize flag. * Palettes/2Controls/GormNSFormInspector.gorm: Added autosize flag * Palettes/2Controls/GormNSMatrixInspector.gorm: Box on bottom now reads "Options". 2005-08-29 19:40 Gregory John Casamento * GormCore/GormMatrixEditor.m: Corrected bug in editTitleWithEvent: which was causing a portion of the window to become transparent. 2005-08-19 00:24 Gregory John Casamento * GormCore/GormDocument.m: [GormDocument attachObject:toParent:] handle popup button items. * GormCore/GormFilePrefsManager.m: Updated version. * GormInfo.plist: Updated version. 2005-08-18 23:22 Gregory John Casamento * GormCore/GormDocument.m: retrieveObjectForParent:.. check for nil before placing in result array. 2005-08-18 22:21 Gregory John Casamento * GormCore/GormDocument.m: attachObject:toParent: added code to add menu items and submenus to document. 2005-08-18 21:32 Gregory John Casamento * GormCore/GormDocument.m: attachObject:toParent code to add all subviews of a view when it's added to the document. 2005-08-18 21:02 Gregory John Casamento * GormCore/GormDocument.m: attachObject:toParent: added code to insert the content view into the nametable and the parent->child connections. * GormCore/GormViewWithContentViewEditor.m: in the group* methods added code to "reparent" the objects so that the parent->child relationships are reset to represent the reflect the new relationship. 2005-08-18 20:21 Gregory John Casamento * GormCore/GormDocument.m: Remove commented out code. 2005-08-17 23:26 Gregory John Casamento * GormCore/GormDocument.m: attachObject:toParent: code to handle addition of tab view and items. * Palettes/3Containers/GormTabViewAttributesInspector.m: in ok: code to handle attaching and detaching from the document, when items are added and deleted. * Palettes/3Containers/GormTabViewEditor.m: Streamlined code in delegate. Corrects bug#14004. 2005-08-12 01:23 Gregory John Casamento * GormCore/GormClassEditor.m: Correction for crash when loading .gorm files via [NSApplication openFile:...]. 2005-08-11 23:00 Gregory John Casamento * GormCore/GormInspectorsManager.m: Removed explicit check for table or text view. * GormCore/GormScrollViewAttributesInspector.m: removed explicit check for table or text view. * Palettes/3Containers/inspectors.m: Added editorClassName * Palettes/4Data/GNUmakefile: Added new files. * Palettes/4Data/GormImageViewAttributesInspector.m: Pulled out IBObjectAdditions category * Palettes/4Data/GormTextViewAttributesInspector.[hm]: Change class name to GormTextViewAttributesInspector. * Palettes/4Data/GormNumberFormatterAttributesInspector.m: Split * Palettes/4Data/GormDateFormatterAttributesInspector.m: Split * Palettes/4Data/GormTextViewEditor.m: Split * Palettes/4Data/inspectors.m: Moved all IBObjectAdditions categories here. 2005-08-10 21:05 Gregory John Casamento * Palettes/3Containers/GormTableViewEditor.m: in pasteInSelection, pasteType:fromPasteboard:parent: w/ _editedObject as the parent. 2005-08-10 02:36 Gregory John Casamento * GormCore/GormDocument.[hm]: Added retrieveObjectForParent:recursive: which retrieves all of the children of a given parent. Also modified detachObject: to use this method. * GormCore/GormFilePrefsManager.m: Bumped version to 0.13.1 * GormInfo.plist: Bumped version to 0.13.1 * Palettes/3Containers/GormNSTableViewInspector.gorm: Corrected minor spacing issue. 2005-08-07 21:15 Gregory John Casamento * GNUmakefile: Added new GormObjectInspector.gorm file. * English.lproj/GormObjectInspector.gorm: New file. * GormCore/GNUmakefile: Added new GormObjectInspector.h. * GormCore/GormObjectInspector.m: Now loads gorm file. * GormCore/GormObjectInspector.h: New file. * Gorm.m: Corrected comment in header. 2005-08-07 10:26 Gregory John Casamento * GormCore/GNUmakefile: Add new header file. * GormCore/GormConnectionInspector.m: Include new header. * GormCore/GormConnectionInspector.h: New file, split from .m 2005-08-07 08:38 Gregory John Casamento * GormCore/GNUmakefile: Added new file. * GormCore/GormInspectorsManager.m: Removed GormConnectionInspector. * GormCore/GormConnectionInspector.m: Split out from GormInspectorsManager.m 2005-08-07 08:30 Gregory John Casamento * GormCore/GormFilePrefsManager.m: Update version to 0.13.0 * GormInfo.plist: Same 2005-08-06 22:25 Gregory John Casamento * English.lproj/GormClassInspector.gorm: Minor changes. * GNUmakefile: Added GormConnectionInspector.m * GormCore/GNUmakefile: Added the new resource manager. * GormCore/GormDocument.m: Changed to refer to the new resource manager. * GormCore/GormInspectorsManager.m: Removed hard coded gui. * GormCore/GormObjectEditor.m: Enabled copy/paste for objects in the object view. * GormCore/GormResourceManager.[hm]: Added to replace GormViewResourceManager.[hm] * Palettes/3Containers/GormBrowserAttributesInspector.[hm]: Added code to handle maxVisibleColumnsField. Corrected tag issue. * Palettes/3Containers/GormNSBrowserInspector.gorm: Added maximum visible columns field. 2005-08-06 18:04 Gregory John Casamento * GormLib/IBInspector.m: Change to correct problem with revert call in setObject:. It should call using self as the sender parameter, not anObject or object. 2005-08-06 17:52 Gregory John Casamento * Palettes/2Controls/GNUmakefile: Add in GormButtonAttributesInspector files. * Palettes/2Controls/GormButtonAttributesInspector.h: Changed ivar names. * Palettes/2Controls/GormButtonAttributesInspector.m: Changed names of vars and corrected problem with revert using anObject instead of object as it should. Removed explicit button item adds from init. Added trivial subclass to the file. * Palettes/2Controls/GormNSButtonInspector.gorm: Added NSPopUpButton items for button types. * Palettes/2Controls/GormStepperAttributesInspector.m: Added trivial subclass to the file. * Palettes/2Controls/inspectors.m: Moved all of IBObjectAdditions categories here. 2005-08-06 15:40 Gregory John Casamento * Palettes/0Menus/GNUmakefile: Add new file * Palettes/0Menus/GormMenuAttributesInspector.m: Removed IBObjectAdditions definitions from this file. * Palettes/0Menus/GormMenuEditor.m: Same * Palettes/0Menus/GormMenuInspectors.m: Same * Palettes/0Menus/GormMenuItemAttributesInspector.m: Same * Palettes/0Menus/inspectors.m: new file to hold implementation of IBObjectAdditions. * Palettes/1Windows/GNUmakefile: Add new file. * Palettes/1Windows/GormWindowAttributesInspector.m: Remove IBObjectAdditions definitions from this file. * Palettes/1Windows/inspectors.m: new file to hold implementation of IBObjectAdditions. 2005-08-06 15:24 Gregory John Casamento * Palettes/0Menus/GNUmakefile * Palettes/1Windows/GNUmakefile * Palettes/2Controls/GNUmakefile * Palettes/3Containers/GNUmakefile * Palettes/4Data/GNUmakefile: Added new palette file names. * Palettes/0Menus/MenusPalette.m: New file created from main.m * Palettes/1Windows/WindowsPalette.m: New file created from main.m * Palettes/2Controls/ControlsPalette.m: New file created from main.m * Palettes/3Containers/ContainersPalette.m: : New file created from main.m * Palettes/4Data/DataPalette.m: New file created from main.m 2005-08-06 11:33 Gregory John Casamento * Merge from post 1.0 branch. 2005-08-03 07:57 Gregory John Casamento * Palettes/2Controls/GormStepperAttributesInspector.m: Removed call to setNeedsDisplay in ok: method. 2005-08-03 07:11 Gregory John Casamento * Palettes/4Data/inspectors.m: Removed local declaration of GormViewSizeInspector, added include of new header, added copyright header. 2005-08-03 06:20 Gregory John Casamento * GormCore/GNUmakefile: Added new GormViewSizeInspector.h file, split out from the GormViewSizeInspector.h file. * GormCore/GormViewSizeInspector.m: Removed interface, put into .h * GormCore/GormViewSizeInspector.h: Moved interface here. * Palettes/1Windows/GormNSWindowSizeInspector.gorm: Corrected position and sizing of elements in size inspector. * Palettes/1Windows/GormWindowAttributesInspector.m: Corrected comment, added copyright header. * Palettes/1Windows/GormWindowSizeInspector.m: Corrected comment, added copyright header. * Palettes/1Windows/main.m: Added category for NSPanel to add allocSubstitute. Same as change on HEAD. * Palettes/2Controls/GormBoxAttributesInspector.[hm]: Added copyright header. * Palettes/2Controls/GormCellAttributesInspector.[hm]: Added copyright header. * Palettes/2Controls/GormColorWellAttributesInspector.[hm]: Added copyright header. * Palettes/2Controls/GormFormAttributesInspector.m: Added copyright header. * Palettes/2Controls/GormMatrixAttributesInspector.m: Corrected comment. * Palettes/2Controls/GormPopUpButtonAttributesInspector.m: Corrected comment. * Palettes/2Controls/GormProgressIndicatorAttributesInspector.m: Corrected comment. * Palettes/2Controls/GormSliderAttributesInspector.m: Corrected comment. * Palettes/2Controls/GormStepperAttributesInspector.m: Corrected comment. * Palettes/2Controls/GormTextFieldAttributesInspector.m: Corrected comment. * Palettes/3Containers/GNUmakefile: Added table size inspector files. * Palettes/3Containers/GormBrowserAttributesInspector.m: Corrected comment. * Palettes/3Containers/GormNSOutlineView.[hm]: Added copyright header. * Palettes/3Containers/GormTableColumnAttributesInspector.[hm]: Added copyright header. Corrected comment. * Palettes/3Containers/GormTableColumnSizeInspector.m: Corrected comment. * Palettes/3Containers/GormTableViewAttributesInspector.m: Corrected comment. * Palettes/3Containers/GormTableViewSizeInspector.[hm]: Re-added this as it was previously removed. * Palettes/3Containers/GormTabViewAttributesInspector.m: Corrected comment. * Palettes/3Containers/inspectors.m: Moved all categories from containers to here. * Palettes/4Data/GormImageViewAttributesInspector.m: Corrected comment. * Palettes/4Data/GormNSComboBoxAttributesInspector.m: Corrected comment. * Palettes/4Data/GormTextViewAttributesInspector.m: Corrected comment. 2005-08-02 Fabien VALLON * Palettes/2Controls/GormBoxAttributesInspector.m : split file use ok: revert:, clean up and comments. Add NSBox IBObjectAdditions category * Palettes/2Controls/GormBoxAttributesInspector.h : split file clean up and comments * Palettes/2Controls/GormCellAttributesInspector.m: split file use ok: revert: , clean up and comments. Add NSCell IBObjectAdditions category * Palettes/2Controls/GormCellAttributesInspector.h: split file clean up and comments. * Palettes/2Controls/GormFormAttributesInspector.m: split file use ok: revert:, replace optionMatrix by cellPositionSwitch, editableSwitch,selectableSwitch, and scrollableSwitch. clean up and comments. Add NSForm IBObjectAdditions category * Palettes/2Controls/GormFormAttributesInspector.h: split file replace optionMatrix by cellPositionSwitch,editableSwitch, selectableSwitch, and scrollableSwitch. clean up and comments. * Palettes/2Controls/GormNSFormInspector.gorm: replace optionMatrix by cellPositionSwitch,editableSwitch, selectableSwitch, and scrollableSwitch. setNextKeyView * Palettes/2Controls/GormMatrixdAttributesInspector.m: split file use ok: revert:. clean up and comments. Add NSMatrix IBObjectAdditions category * Palettes/2Controls/GormMatrixdAttributesInspector.h: split file clean up and comments * Palettes/2Controls/GormPopUpButtonAttributesInspector.m: split file use ok: revert:, clean up and comments. Add NSPopUpButton IBObjectAdditions category * Palettes/2Controls/GormPopUpButtonAttributesInspector.h : split file clean up and comments * Palettes/2Controls/GormSliderAttributesInspector.m: split file use ok: revert:, clean up and comments. Add NSSlider IBObjectAdditions category. Remove : altForm, knobField, numberOfTicks,snapToTicks, tickPosition Rename : valueForm into valuesForm. clean up & comments. * Palettes/2Controls/GormSliderAttributesInspector.h: split file clean up and comments * Palettes/2Controls/GormNSSliderInspector.gorm : Remove : altForm, knobField, numberOfTicks,snapToTicks,tickPosition Rename : valueForm into valuesForm. Remove : ok: target for NSForms ( use delegate ) * Palettes/2Controls/GormStepperAttributesInspector.m: split file use ok: revert: clean up and comments. Add NSStepper IBObjectAdditions category * Palettes/2Controls/GormStepperAttributesInspector.h: split file Clean up and comments * Palettes/2Controls/GormTextFieldAttributesInspector.m: split file use ok: revert. replace optionsMatrix by editableSwitch, selectableSwitch,scrollableSwitch. clean up and comments. Add NSTextField IBObjectAdditions category. * Palettes/2Controls/GormTextFieldAttributesInspector.h: split file replace optionsMatrix by editableSwitch, selectableSwitch, scrollableSwitch. clean up and comments. * Palettes/2Controls/GormNSTextFieldInspector.gorm: replace optionsMatrix by editableSwitch, selectableSwitch andscrollableSwitch. set NextKeyView: * Palettes/2Controls/GormColorWellAttributesInspector.m: split file renamed bordered in borderedSwitch, initialColor in initialColorWell, disabled in disabledSwitch, tagValue in tagField. remove initialColorSelected:, disabledSelected:, borderedSelected:. use ok: revert: clean up and comments. * Palettes/2Controls/GormColorWellAttributesInspector.h: split file renamed bordered in borderedSwitch, initialColor in initialColorWell, disabled in disabledSwitch, tagValue in tagField. remove initialColorSelected:, disabledSelected:, borderedSelected:. Clean up and comments. * Palettes/2Controls/GormColorWellInspector.gorm: renamed bordered in borderedSwitch, initialColor in initialColorWell, disabled in disabledSwitch, tagValue in tagField. remove initialColorSelected:, disabledSelected:, borderedSelected:. tagField remove ok: target ( use delegate ) * Palettes/2Controls/GormProgressIndicatorAttributesInspector.m : split file emove doubleValue; borderMatrix. use ok: revert: Clean up and comments * Palettes/2Controls/GormProgressIndicatorAttributesInspector.h : split file remove doubleValue; borderMatrix. Clean up and comments * Palettes/2Controls/GormNSProgressIndicatorInspector.gorm: remove doubleValue; borderMatrix * Palettes/3Containers/GormBrowserAttributesInspector.m : split file use ok: revert: , use multipleSelectionSwitch, emptySelectionSwitch, branchSelectionSwitch,separateColumnsSwitch,horizontalScrollerSwitch, and displayTitlesSwitch instead of optionMatrix.clean up and comments Add NSBrowser category ( IBObjectAdditions ) * Palettes/3Containers/GormBrowserAttributesInspector.h : split file use multipleSelectionSwitch, emptySelectionSwitch, branchSelectionSwitch,separateColumnsSwitch,horizontalScrollerSwitch, and displayTitlesSwitch instead of optionMatrix. clean up and comments * Palettes/3Containers/GormNSBrowserInspector.gorm: use multipleSelectionSwitch, emptySelectionSwitch, branchSelectionSwitch,separateColumnsSwitch,horizontalScrollerSwitch, and displayTitlesSwitch instead of optionMatrix. set nextKeyView: * Palettes/3Containers/GormTableViewAttributesInspector.m: split file use ok: revert:, replace selectionMatrix by multipleSelectionSwitch, emptySelectionSwith and columnSelectionSwitch, replace optionMatrix by drawgridSwitch, resizingSwitch and reorderingSwitch.clean up and comments. Add NSTableView category ( IBObjectAdditions ) * Palettes/3Containers/GormTableViewAttributesInspector.h: split file replace selectionMatrix by multipleSelectionSwitch,emptySelectionSwith and columnSelectionSwitch. replace optionMatrix by drawgridSwitch, resizingSwitch and reorderingSwitch.clean up and comments. * Palettes/3Containers/GormNSTableViewInspector.gorm : replace selectionMatrix by multipleSelectionSwitch,emptySelectionSwith and columnSelectionSwitch. replace optionMatrix by drawgridSwitch, resizingSwitch and reorderingSwitch.set nextKeyView: * Palettes/3Containers/GormTableColumnAttributesInspector.m : split file clean up, comments and warnings ( TODO ) Add NSTableColumn category ( IBObjectAdditions ) * Palettes/3Containers/GormTableColumnAttributesInspector.h : split file clean up and comments * Palettes/3Containers/GormTableColumnSizeInspector.m: split file use controlTextDidChange: for the form, clean up and comments. Add IBObjectAdditionsSize category * Palettes/3Containers/GormTableColumnSizeInspector.h: split file clean up and comments. * Palettes/3Containers/ GormNSTableColumnSizeInspector.gorm: remove ok: taget ( use delegate ) * Palettes/3Containers/GNUmakefile : add GormBrowserAttributesInspector.m GormTabViewAttributesInspector.m, GormTableColumnAttributesInspector.m GormTableColumnSizeInspector.m and GormTableViewAttributesInspector. * Palettes/3Containers/inspector.m : remove GormBrowserAttributesInspector GormTabViewAttributesInspector, GormTableColumnAttributesInspector GormTableColumnSizeInspector and GormTableViewAttributesInspector * Palettes/4Data/GormComboBoxAttributesInspector.m: split file * Palettes/4Data/GormImageViewAttributesInspector.m: split file use ok:, revert:, clean up and comments * Palettes/4Data/GormImageViewAttributesInspector.h: split file clean up * Palettes/4Data/GormTextViewAttributesInspector.m: split file replace optionsMatrix by selectableButton, editableButton, multipleFontsButtonand graphicsButton, clean up and comments. Add NSTextView IBObjectAdditions category * Palettes/4Data/GormTextViewAttributesInspector.h: split file replace optionsMatrix by selectableButton, editableButton, multipleFontsButton and graphicsButton, clean up and comments * Palettes/4Data/GormNSTextViewInspector.gorm: replace optionsMatrix by selectableButton, editableButton, multipleFontsButton and graphicsButton 2005-08-01 20:30 Gregory John Casamento * English.lproj/GormPreferences.gorm: Add keyboard equivalents to dropdown for preference panels. 2005-08-01 07:59 Gregory John Casamento * GormCore/GormClassInspector.m: Return an autoreleased copy of the class name from _currentClass. 2005-08-01 05:45 Gregory John Casamento * GormCore/GormClassInspector.m: Remove dopy code from _currentClass. * GormCore/GormPrivate.m: Use ASSIGNCOPY in initWithClassName: * Palettes/1Windows/main.m: Removed FIXME, since Gorm shouldn't show the window decoration changes directly. 2005-07-31 19:14 Gregory John Casamento * Palettes/1Windows/main.m: Addition of allocSubstitute method for NSPanel in the category GormPrivate. 2005-07-31 18:56 Gregory John Casamento * GormCore/GormDocument.m: Correction for bug#13990. * GormCore/GormInspectorsManager.m: Removed uneeded GormISelectionView class. 2005-07-31 10:57 Gregory John Casamento * GormCore/GormInspectorsManager.m: [GormConnectionsInspector ok:] Removed code which blanks out the connector. This allows the user to select connections repeatedly. Suggested by Matt Rice. 2005-07-31 08:43 Gregory John Casamento * GormCore/GormPrivate.m: Reverted previous change in init. 2005-07-30 15:57 Gregory John Casamento * English.lproj/GormPreferences.gorm: Changed class hierarchy. Also added panel outlet. * GormCore/GormClassInspector.m: -[GormClassInspector _currentClass] copy the className. * GormCore/GormPrivate.m: -[GormClassProxy init] copy the className. * Gorm.m: Changed to initialize preferences panel using init. * GormPrefs/GormPrefController.[hm]: Added panel method, changed derivation to a subclass of NSObject, instead of NSWindowController. 2005-07-30 09:30 Gregory John Casamento * Documentation/Makefile.postamble: Generate documentation from headers only. * GormPrefs/GormColorsPref.h * GormPrefs/GormGeneralPref.h * GormPrefs/GormGeneralPref.m * GormPrefs/GormGuidelinePref.h * GormPrefs/GormHeadersPref.h * GormPrefs/GormPalettesPref.h * GormPrefs/GormPrefController.h * GormPrefs/GormShelfPref.h: Added documentation. 2005-07-30 04:29 Gregory John Casamento * GormCore/GormFilePrefsManager.h: Added documentation. 2005-07-30 04:16 Gregory John Casamento * GormCore/GormDocument.m: use versionOfClass: in _replaceObjectsWithTemplates: method. * GormCore/GormFilePrefsManager.[hm]: Added versionOfClass:. 2005-07-30 Fabien VALLON * Palettes/1Window/GormWindowAttributesInspector.[mh] : split files. use ok: revert: methods, remove controls & options Matrix, & replace it by a set of switch buttons. Clean up & comments * Palettes/1Window/GormWindowSizeInspector.{m,h} :split files. use ok: revert: methods. Clean up & comments * Palettes/1Window/main.m : remove GormWindowSizeInspector, GormWindowAttributesInspector classes and move IBObjectAdditions categories into GormWindowAttributesInspector and GormSizeInspector. * Palettes/1Window/GormNSWindowInspector.gorm: remove controls and options matrix, & replace it by a set of switch buttons. * Palettes/0Menus/GormMenuAttributesInspector.{m,h} : split files. use ok: revert: methods, replace menuType matrix by a matrix of Radio buttons.Clean up and comments. * Palettes/0Menus/GormMenuItemAttributesInspector.m: split files. use ok: revert: methods, Clean up and comments. * Palettes/0Menus/MenuInspectors.m : removed * Palettes/0Menus/GormMenuAttributesInspector.gorm : improve ui, use a matrix of radioButtonCell for menu type * Palettes/0Menus/GormMenuEditor.m : rename IBObjectAdditions category 2005-07-28 00:04 Gregory John Casamento * GormCore/GormImage.h: Added documentation. * GormCore/GormImage.m: Properly implemented IBObjectAdditions. * GormCore/GormPrivate.h: Remove illegalClassSubstitution method. * GormCore/GormPrivate.m: Remove illegalClassSubstitution method. * GormCore/GormSound.h: Added documentation. * GormCore/GormSound.m: Properly implemented IBObjectAdditions. * Gorm.m: Removed methods which check for user bundles. 2005-07-27 02:10 Gregory John Casamento * GormPrefs/GormGeneralPref.m: Removed extra calls to synchronize. * GormPrefs/GormHeadersPref.m: ditto 2005-07-27 01:47 Gregory John Casamento * GormCore/GormDocument.h: Added documentation. * GormCore/GormDocument.m: Removed commented code. Corrected problem in [GormDocument instantiateClass:] when switching to the objects view. * GormCore/GormWindowEditor.h: Added documentation. 2005-07-26 22:56 Gregory John Casamento * GormCore/GNUmakefile: Added new GormWindowEditor.h file. * GormCore/GormWindowEditor.m: Reorganized methods, extracted .h * GormCore/GormWindowEditor.h: New file. * GormCore/NSCell+GormAdditions.h * GormCore/NSColorWell+GormExtensions.h * GormCore/NSColorWell+GormExtensions.m * GormCore/NSFontManager+GormExtensions.h * GormCore/NSFontManager+GormExtensions.m * GormCore/NSView+GormExtensions.h: Added documentation. 2005-07-26 21:02 Gregory John Casamento * Palettes/2Controls/GormNSTextFieldInspector.gorm: Correct resize attributes. 2005-07-25 23:26 Gregory John Casamento * GormCore/GormClassEditor.m: [GormClassEditor selectClass:editClass:] add exception handling. * GormCore/GormDocument.m: [GormDocument pasteObjects:type fromPasteboard:] added check for specific pb types. 2005-08-06 08:30 Gregory John Casamento * Version 0.11.0 (Gorm 1.0 release candidate #1) 2005-08-01 20:30 Gregory John Casamento * English.lproj/GormPreferences.gorm: Add keyboard equivalents to dropdown for preference panels. 2005-08-01 07:59 Gregory John Casamento * GormCore/GormClassInspector.m: Return an autoreleased copy of the class name from _currentClass. 2005-08-01 05:45 Gregory John Casamento * GormCore/GormClassInspector.m: Remove dopy code from _currentClass. * GormCore/GormPrivate.m: Use ASSIGNCOPY in initWithClassName: * Palettes/1Windows/main.m: Removed FIXME, since Gorm shouldn't show the window decoration changes directly. 2005-07-31 19:14 Gregory John Casamento * Palettes/1Windows/main.m: Addition of allocSubstitute method for NSPanel in the category GormPrivate. 2005-07-31 18:56 Gregory John Casamento * GormCore/GormDocument.m: Correction for bug#13990. * GormCore/GormInspectorsManager.m: Removed uneeded GormISelectionView class. 2005-07-31 10:57 Gregory John Casamento * GormCore/GormInspectorsManager.m: [GormConnectionsInspector ok:] Removed code which blanks out the connector. This allows the user to select connections repeatedly. Suggested by Matt Rice. 2005-07-31 08:43 Gregory John Casamento * GormCore/GormPrivate.m: Reverted previous change in init. 2005-07-30 15:57 Gregory John Casamento * English.lproj/GormPreferences.gorm: Changed class hierarchy. Also added panel outlet. * GormCore/GormClassInspector.m: -[GormClassInspector _currentClass] copy the className. * GormCore/GormPrivate.m: -[GormClassProxy init] copy the className. * Gorm.m: Changed to initialize preferences panel using init. * GormPrefs/GormPrefController.[hm]: Added panel method, changed derivation to a subclass of NSObject, instead of NSWindowController. 2005-07-30 09:30 Gregory John Casamento * Documentation/Makefile.postamble: Generate documentation from headers only. * GormPrefs/GormColorsPref.h * GormPrefs/GormGeneralPref.h * GormPrefs/GormGeneralPref.m * GormPrefs/GormGuidelinePref.h * GormPrefs/GormHeadersPref.h * GormPrefs/GormPalettesPref.h * GormPrefs/GormPrefController.h * GormPrefs/GormShelfPref.h: Added documentation. 2005-07-30 04:29 Gregory John Casamento * GormCore/GormFilePrefsManager.h: Added documentation. 2005-07-30 04:16 Gregory John Casamento * GormCore/GormDocument.m: use versionOfClass: in _replaceObjectsWithTemplates: method. * GormCore/GormFilePrefsManager.[hm]: Added versionOfClass:. 2005-07-28 23:09 Gregory John Casamento * Palettes/1Windows/GormNSWindowSizeInspector.gorm: Corrected layout. 2005-07-28 00:04 Gregory John Casamento * GormCore/GormImage.h: Added documentation. * GormCore/GormImage.m: Properly implemented IBObjectAdditions. * GormCore/GormPrivate.h: Remove illegalClassSubstitution method. * GormCore/GormPrivate.m: Remove illegalClassSubstitution method. * GormCore/GormSound.h: Added documentation. * GormCore/GormSound.m: Properly implemented IBObjectAdditions. * Gorm.m: Removed methods which check for user bundles. 2005-07-27 02:10 Gregory John Casamento * GormPrefs/GormGeneralPref.m: Removed extra calls to synchronize. * GormPrefs/GormHeadersPref.m: ditto 2005-07-27 01:47 Gregory John Casamento * GormCore/GormDocument.h: Added documentation. * GormCore/GormDocument.m: Removed commented code. Corrected problem in [GormDocument instantiateClass:] when switching to the objects view. * GormCore/GormWindowEditor.h: Added documentation. 2005-07-26 22:56 Gregory John Casamento * GormCore/GNUmakefile: Added new GormWindowEditor.h file. * GormCore/GormWindowEditor.m: Reorganized methods, extracted .h * GormCore/GormWindowEditor.h: New file. * GormCore/NSCell+GormAdditions.h * GormCore/NSColorWell+GormExtensions.h * GormCore/NSColorWell+GormExtensions.m * GormCore/NSFontManager+GormExtensions.h * GormCore/NSFontManager+GormExtensions.m * GormCore/NSView+GormExtensions.h: Added documentation. 2005-07-26 21:02 Gregory John Casamento * Palettes/2Controls/GormNSTextFieldInspector.gorm: Correct resize attributes. 2005-07-25 23:26 Gregory John Casamento * GormCore/GormClassEditor.m: [GormClassEditor selectClass:editClass:] add exception handling. * GormCore/GormDocument.m: [GormDocument pasteObjects:type fromPasteboard:] added check for specific pb types. 2005-07-24 16:43 Gregory John Casamento * GormCore/GormPrivate.h: Removed GormOutlineView.h from the includes. 2005-07-24 16:31 Gregory John Casamento * GormCore/GormClassEditor.m: Call selectRow: method. * GormCore/GormOutlineView.[hm]: Added new selectRow: method. Corrects bug#13754. 2005-07-24 12:29 Gregory John Casamento * Gorm.m: Eliminated [Gorm finishLaunching] and moved default initialization code to init before paletteManager is called so that the palette window is placed correctly. * Palettes/1Windows/GormNSPanel.m * Palettes/1Windows/GormNSWindow.m: Added override for saveFrameUsingName: to prevent saving the position of windows during testing in Gorm's defaults. * Resources/Defaults.plist: Added defaults for Inspector, Palettes, and Preferences windows so that they appear at a reasonable position on the screen when Gorm is first used. Corrects bug#13780. 2005-07-24 11:20 Gregory John Casamento * Palettes/1Windows/GormNSPanel.m * Palettes/1Windows/GormNSWindow.m: Readded override of orderWindow:relativeTo:. This corrects bug#13838. 2005-07-23 18:02 Gregory John Casamento * GormCore/GormInspectorsManager.m: Remove extra revert: call. * GormLib/IBInspector.m: Touch changes the inspector X to the broken X, per specs. * Gorm.m: [Gorm testInterface] fix for menu disappearance when testing the interface. * Palettes/0Menus/main.m: Added to authors list. 2005-07-23 10:10 Gregory John Casamento * Documentation/Makefile.postamble: Create documentation for GormCore, GormObjCHeaderParser and GormPrefs. 2005-07-21 fabien * Palettes/0Menus/GormMenuInspectors.m : Corrects bug #13872 2005-07-20 23:39 Gregory John Casamento * Palettes/1Windows/GormNSPanel.m * Palettes/1Windows/GormNSWindow.m: Reverted previous change. 2005-07-19 00:35 Gregory John Casamento * Palettes/1Windows/GormNSPanel.m * Palettes/1Windows/GormNSWindow.m: Removed override for orderWindow:... added sendEvent: to do the same thing, since it's a little more generic. This corrects bug#13838. 2005-07-18 23:54 Gregory John Casamento * Palettes/1Windows/GormNSPanel.m * Palettes/1Windows/GormNSWindow.m: Added override for orderWindow:relativeTo: which causes selection of the window by Gorm, if the title bar is clicked. 2005-07-17 15:47 Gregory John Casamento * GormCore/GormClassEditor.m: Added code to prevent memory leak with previous change. 2005-07-17 15:08 Gregory John Casamento * GormCore/GormClassEditor.m: Removed AUTORELEASE for subClassesArray, it was causing a crash. * GormCore/GormClassInspector.m: setObject: conditional which prints a warning if a non-GormClassProxy class is passed in. * GormCore/GormPrivate.m: initWithClassName: conditional which prints a warning if a non-string is used to initialize th GormClassProxy. 2005-07-17 08:42 Gregory John Casamento * GormCore/GormInternalViewEditor.m: -init, prepareForDragOperation:, performDragOperation: removed uneeded IBFormatterPboardType from the list. 2005-07-16 23:34 Gregory John Casamento * GormCore/GormClassInspector.m: -_refreshView removed call to deselectAll: for the actionTable and outletTable. On occasion this was causing the application to go into a notification-update loop. 2005-07-15 21:48 Gregory John Casamento * GormCore/GormInspectorsManager.m: -init, changed NSLog to NSDebugLog. 2005-07-15 00:54 Gregory John Casamento * GormCore/GormClassEditor.m: Added exception handling to portions of code which call itemAtIndex: method on the outline view to prevent any problems. * GormCore/GormInspectorsManager.m: Changed a NSLog to NSDebugLog. 2005-07-14 12:39 Gregory John Casamento * GormCore/GormDocument.m: Minor change to changeView: to switch to the appropriate toolbar item when the view changes automatically while dragging. Also a change to awakeFromNib to select the correct item on startup. 2005-07-14 09:03 Gregory John Casamento * GormCore/GormDocument.m: Implement toolbarSelectableItemIdentifiers in the toolbar delegate so that the items will remain selected showing the current selection. 2005-07-14 00:05 Gregory John Casamento * GormCore/GormInspectorsManager.m: Removed commented out code. * Palettes/3Containers/GormNSTableColumnInspector.gorm: Changed "Is visible at launch" to NO to prevent exception. 2005-07-13 22:51 Gregory John Casamento * Palettes/2Controls/GormButtonEditor.m: Corrected issue with button editing. bug #13756. 2005-07-13 09:01 Gregory John Casamento * GormCore/GormClassEditor.m: Corrected problem selecting NSObject in browser when it's selected in the outline. 2005-07-13 02:17 Gregory John Casamento * GormCore/GormClassEditor.m: Changed code in selectClass:editClass: to use the methods from the GormClassManager as appropriate. Removed do.. while construct since it did the same thing as allSuperClassesOf in GormClassManager. * GormCore/GormClassManager.[hm]: Added new method isRootClass: which returns true if the argument is a root class. Also replaced references to @"NSObject" in a number of places with calls to this method. This makes the code more generic. * GormCore/GormPalettesManager.m: Added check in importClasses:withDictionary: which should allow loading palettes which define root level classes. 2005-07-12 fabien * GormCore/GormClassEditor.m: Fix OutlineView / BrowserView switch Add some warnings. Greg please check the code. You will need to change it when GormClassManager will change ( for root object ) * Palettes/3Containers/inspector.m : Add minimum column size for NSBrowser * Palettes/3Containers/GormNSBrowserInspector.gorm : Ditto 2005-07-11 fabien * Palettes/1Windows/ControlsPalette.gorm : Fix bad layout when doing a matrix of NSForms. * Documentation : Gorm.texi, Update documentation * GormCore/GormInspectorsManager.m : make setInitialFirstResponder working with inspector * Palettes/0Menus/GormMenuInspectors.gorm : set initialFirstResponder * Palettes/0Menus/GormMenuItemAttributesInspector.gorm : Ditto * Palettes/1Windows/GormNSWindowSizeInspector.gorm : Ditto * Palettes/2Controls/GormNSButtonInspector.gorm : Ditto * Palettes/2Controls/GormNSCellInspector.gorm : Ditto * Palettes/3Containers/GormNSTableColumnInspector.gorm : Ditto * Palettes/4Data/GormNSDateFormatterInspector.gorm: Ditto * Palettes/4Data/GormNSNumberFormatterInspector.gorm : Ditto * English.lproj/GormCustomClassInspector.gorm : Ditto * English.lproj/GormScrollViewAttributesInspector.gorm: Ditto * English.lproj/GormViewSizeInspector.gorm : Ditto 2005-07-10 20:37 Gregory John Casamento * English.lproj/Gorm.gorm: Corrected some connections which were causing the "Classes" menu items to be enabled when the shouldn't have been. 2005-07-08 13:34 Gregory John Casamento * Gorm.m: Correction for problem with testing with tables and outline views in testInterface. * Palettes/3Containers/GormNSOutlineView.m: Removed awakeFromNib * Palettes/3Containers/GormNSTableView.m: ditto. 2005-07-08 04:36 Gregory John Casamento * GormCore/GormCustomClassInspector.m: In -(void)_replaceCellClassForObject:className: added checks to make sure the object/cell responds to appropriate messages before call. This prevents an issue when selecting a new custom class. 2005-07-07 22:02 Gregory John Casamento * GormCore/GormCustomClassInspector.m: In the method - (void) _replaceCellClassForObject:className: added logic to automatically replace the cell in a more generic fashion. * GormCore/GormPrivate.m: Added logic to canSubstituteForClass: to determine if it's possible for the class passed in to substitute for the reciever. * Palettes/2Controls/inspectors.m: Removed canSubstituteForClass: implementation for NSSecureTextView. * Palettes/3Containers/GormNSOutlineView.[hm]: Cleaned up initWithCoder: and encodeWithCoder:. * Palettes/3Containers/GormNSTableView.[hm]: Ditto 2005-07-07 13:22 Gregory John Casamento * GormCore/GormControlEditor.m: Removed commented out code in GormControlEditor. * GormCore/GormDocument.m: Removed unused variables. * Palettes/3Containers/GormNSTableView.m: Added encoder methods to the data source/delegate to allow testInterface: to work properly. 2005-07-07 fabien * English.lproj/GormClassInspector.gorm : Improve UI * English.lproj/GormClassPanel.gorm : Ditto * English.lproj/GormCustomClassInspector.gorm : Ditto * English.lproj/GormDocument.gorm : Ditto * English.lproj/GormFontView.gorm : Ditto * English.lproj/GormImageInspector.gorm : Ditto * English.lproj/GormNSSplitViewInspector.gorm : Ditto * English.lproj/GormPrefColors.gorm : Ditto * English.lproj/GormPrefGeneral.gorm : Ditto * English.lproj/GormPrefGuideline.gorm : Ditto * English.lproj/GormPrefHeaders.gorm : Ditto * English.lproj/GormPrefPalettes.gorm : Ditto * English.lproj/GormPreferences.gorm : Ditto * English.lproj/GormScrollViewAttributesInspector.gorm : Ditto * English.lproj/GormSetName.gorm : Ditto * English.lproj/GormShelfPref.gorm : Ditto * English.lproj/GormSoundInspector.gorm : Ditto * English.lproj/GormViewSizeInspector.gorm : Ditto * Palettes/0Menus/GormMenuInspectors.m: Implement the delegate method controlTextDidChange for textField * Palettes/0Menus/GormMenuAttributesInspector.gorm: Improve UI, set setNextView:, initialFirstResponder: ... * Palettes/0Menus/GormMenuItemAttributesInspector.gorm: Improve UI, set setNextView:, initialFirstResponder: ... * Palettes/1Windows/main.m: Implement delegate method controlTextDidChange for textFields * Palettes/1Windows/GormNSWindowInspector.gorm: Improve UI,set setNextView:, initialFirstResponder: ... * Palettes/1Windows/GormNSWindowSizeInspector.gorm: Improve UI,set setNextView:, initialFirstResponder: ... * Palettes/2Controls/inspectors.m: Implement delegate method controlTextDidChange: for textFields * Palettes/2Controls/ControlsPalette.gorm: Improve UI,set setNextView:, initialFirstResponder: ... * Palettes/2Controls/GormNSBoxInspector.gorm: Ditto * Palettes/2Controls/GormNSButtonInspector.gorm: Ditto * Palettes/2Controls/GormNSCellInspector.gorm: Ditto * Palettes/2Controls/GormNSColorWellInspector.gorm : Ditto * Palettes/2Controls/GormNSFormInspector.gorm : Ditto * Palettes/2Controls/GormNSMatrixInspector.gorm : Ditto * Palettes/2Controls/GormNSPopUpButtonInspector.gorm : Ditto * Palettes/2Controls/GormNSProgressIndicatorInspector.gorm : Ditto * Palettes/2Controls/GormNSSliderInspector.gorm : Ditto * Palettes/2Controls/GormNSStepperInspector.gorm : Ditto * Palettes/2Controls/GormNSTextFieldInspector.gorm : Ditto * Palettes/3Containers/inspectors.m: Implement delegate method controlTextDidChange: for textFields * Palettes/3Containers/GormNSBrowserInspector.gorm :Improve UI, set setNextView:, initialFirstResponder: ... * Palettes/3Containers/GormNSTableColumnInspector.gorm :Ditto * Palettes/3Containers/GormNSTableColumnSizeInspector.gorm :Ditto * Palettes/3Containers/GormNSTableViewInspector.gorm :Ditto * Palettes/3Containers/GormTabViewInspector.gorm : Ditto * Palettes/4Data/GormNSComboBoxInspector.gorm : Ditto * Palettes/4Data/GormNSDateFormatterInspector.gorm: Ditto * Palettes/4Data/GormNSImageViewInspector.gorm: Ditto * Palettes/4Data/GormNSNumberFormatterInspector.gorm: Ditto * Palettes/4Data/GormNSTextViewInspector.gorm: Ditto 2005-07-06 10:48 Gregory John Casamento * GormCore/GormDocument.m: changeToViewWithTag: added code to change current selection when switching the editor. 2005-07-05 10:59 Gregory John Casamento * GormCore/GormDocument.m: Corrected problem where the Gorm was incorrectly warning of version upgrade on .gorm files which don't contain windows. Also added documentation/comments for all methods in GormDocument.m. 2005-07-04 21:18 Gregory John Casamento * Gorm.m: In -testInterface corrected a problem with testing interface when menu item is connected to NSOwner. 2005-07-04 20:44 Gregory John Casamento * English.lproj/Gorm.gorm: Cleaned up some duplicate connections * GormCore/GormFilePrefsManager.m: Updated version to 0.10.2 * GormInfo.plist: Updated version to 0.10.2 * Version: Updated version to 0.10.2 2005-07-04 17:53 Gregory John Casamento * English.lproj/Gorm.gorm: Added Layout and Alignment menus. * GormCore/GormDocument.[hm]: Added alignSelectedObjects: and arrangeSelectedObjects: methods. * GormCore/GormProtocol.h: Added alignSelectedObjects: and arrangeSelectedObjects: methods declarations * GormCore/NSView+GormExtensions.[hm]: Added moveViewToFront: and moveViewToBack: methods. * Gorm.m: Added alignSelectedObjects: and arrangeSelectedObjects: methods. 2005-07-03 12:52 Gregory John Casamento * Palettes/4Data/main.m: Minor fix in depositViewResourceFromPasteboard: to prevent crash. 2005-07-03 12:26 Gregory John Casamento * GormCore/GormBoxEditor.m: Minor cleanup. * GormCore/GormControlEditor.m: Removed unecessary code to handle formatter, since it is now handled generically via the dragging delegate code. * GormCore/GormViewEditor.m: Added code in performDragOperation: and other dragging methods to correctly use the dragging delegate code. * GormCore/NSView+GormExtensions.m: Added implementation of delegate registration methods to NSView here. * GormLib/IBApplicationAdditions.h: Added declaration for documentForObject: to the IBDocuments protocol. * GormLib/IBPalette.h: Changed "document" ivar to paletteDocument. * GormLib/IBPalette.m: Changed "document" ivar to paletteDocument. * Gorm.m: Added implementation of documentForObject: * Palettes/2Controls/main.m: Added methods for IBViewResourceDraggingDelegates to handle images and sounds dragged to controls. * Palettes/4Data/main.m: Added methods for IBViewResourceDraggingDelegates to handle formatters being dragged to controls. 2005-07-02 16:12 Gregory John Casamento * GormCore/GormControlEditor.m: Added call to setSelectionFromEditor: in performDragOperation, if the object has a formatter. * GormCore/GormInspectorsManager.m: Changes to refresh the popup button based on the inspector modes in setCurrentInspector: * GormLib/IBInspectorManager.[hm]: New instance variable. Implemented addInspectorModeWithIndentifier:forObject:... * GormLib/IBInspectorMode.[hm]: Added. * Palettes/4Data/inspectors.m: minor cleanup. * Palettes/4Data/main.m: Added code to add the inspector mode to the manager when the object is selected. 2005-06-30 00:21 Gregory John Casamento * English.lproj/GormPrefGeneral.gorm: Remove the preferences to manually change if the inspector or palette is shown. * Gorm.m: -[Gorm applicationWillTerminate:] added code to save the inspector and palette state. 2005-06-20 20:11 Gregory John Casamento * GNUmakefile.preamble: Remove dependency on GL. * GormCore/GormOpenGLView.h: Make a subclass of NSView. * GormCore/GormOpenGLView.m: Comment out uneeded code. 2005-06-20 19:32 Gregory John Casamento * GNUmakefile.preamble: Add -lGL to ADDITIONAL_LIBS * GormCore/GNUmakefile: Added new opengl view. * GormCore/GormCustomView.m: Added include for GormOpenGLView and modified _bestPossibleSuperClass to return the GormOpenGLView. * GormCore/GormOpenGLView.[hm]: Displays a rotating polygon to illustrate that this is a OpenGL view to the user when in test mode. * GormCore/GormViewWithSubviewsEditor.m: Corrected includes. * Gorm.m: Corrected a memory leak in testInterface and endTesting. 2005-06-17 17:33 Gregory John Casamento * Palettes/0Menus/GormNSMenu.m: Code cleanup. 2005-06-17 07:59 Gregory John Casamento * Palettes/0Menus/GormMenuEditor.m * Palettes/0Menus/main.m * Palettes/1Windows/main.m * Palettes/3Containers/inspectors.m: Code cleanup. 2005-06-17 00:47 Gregory John Casamento * GormCore/GormClassManager.m * GormCore/GormDocument.m * GormCore/GormInspectorsManager.m * GormCore/GormObjectEditor.m * GormCore/GormObjectInspector.m * GormCore/GormPalettesManager.m * GormCore/GormResourceEditor.m * GormCore/GormWindowEditor.m: Code cleanup. 2005-06-17 00:24 Gregory John Casamento * Gorm.m: Code cleanup. 2005-06-16 23:49 Gregory John Casamento * Gorm.m: Override "stop:" to call endTesting: if a test session is running, instead of killing the app. 2005-06-16 19:49 Gregory John Casamento * GormLib/IBInspector.m: Added "revert" call in setObject: 2005-06-14 20:39 Gregory John Casamento * GormCore/GormDocument.m: Fix in [GormDocument translate] to properly redisplay the window after translation. 2005-06-12 23:36 Gregory John Casamento * GormCore/GormOutlineView.m: _handleDoubleClick: now calls NSDebugLog 2005-06-12 23:24 Gregory John Casamento * GormCore/GNUmakefile: Added GormProtocol.h to the exported headers. 2005-06-12 23:07 Gregory John Casamento * GormCore/GormClassEditor.m: Modified the data source method outlineView:setObjectValue:forItem: to reject outlet/action changes when the item and the objectValue are the same. * GormCore/GormDocument.m: Changed collectAllObjects to _collectAllObjects, since it is private. * GormCore/GormOutlineView.m: In mouseDown: only send to the super class under certain conditions. 2005-06-11 14:10 Gregory John Casamento * English.lproj/Gorm.gorm: Addition of "Translation" submenu as well as Load Strings and Export Strings * GormCore/GormDocument.h: Declaration of exportStrings * GormCore/GormDocument.m: Implementation of exportStrings * GormCore/GormProtocol.h: Declaration of app level exportStrings: * Gorm.m: Implementation of app level exportStrings: method. 2005-06-11 05:13 Gregory John Casamento * GormCore/GormDocument.m: Improved translate method. * Gorm.m: validateMenuItem: add case to handle translate menu. 2005-06-10 07:45 Gregory John Casamento * English.lproj/Gorm.gorm: Addition of "Translate" menu. * GormCore/GormClassInspector.m: Corrected problem in outlet and action data sources in tableView:setObjectValue: tableColumn:row: * GormCore/GormDocument.h: Added translate method, also added selectClass:editClass: method declarations. * GormCore/GormDocument.m Added translate method, also added selectClass:editClass: method implementation. * GormCore/GormProtocol.h: Added translate method declaration to call from the menu. * Gorm.m: Added translate method implementation which simply calls the method on the currently active document. 2005-06-04 07:41 Gregory John Casamento * English.lproj/GormClassInspector.gorm: Updated to new .gorm file version * English.lproj/GormDocument.gorm: Added new profile to drop down. * English.lproj/GormViewSizeInspector.gorm: Updated to new .gorm file version * GormCore/GormDocument.m: Change to _replaceObjectsWithTemplates: to always replace windows with a GSWindowTemplate. This allows the autoposition and defered logic to work properly when loading this .gorm file in an application. * GormCore/GormFilePrefsManager.m: Bumped version to 0.10.1 * GormCore/GormViewSizeInspector.m: Minor changes. * GormInfo.plist: Bumped version to 0.10.1 * Palettes/0Menus/GormMenuEditor.m: Removed uneeded code. * Palettes/0Menus/GormNSMenu.h: Added +menuWithMenu declaration. * Palettes/0Menus/GormNSMenu.m: Added +menuWithMenu: to initialize one menu from another. * Palettes/0Menus/main.m: Change to use the fontMenu: method in the NSFontManager to build the menu in Gorm's palette. * Palettes/1Windows/GormNSPanel.h: Declarations for new methods. * Palettes/1Windows/GormNSPanel.m: setAutoPositionMask: and autoPositionMask methods added. * Palettes/1Windows/GormNSWindow.h: Declarations for new methods. * Palettes/1Windows/GormNSWindow.m: setAutoPositionMask: and autoPositionMask methods added. * Palettes/1Windows/GormNSWindowSizeInspector.gorm: Additions to handle window positioning and maxsize. * Palettes/1Windows/main.m: Additions to the window inspector to handle maxSize and window position. * Resources/VersionProfiles.plist: New profile entry 2005-05-25 23:38 Gregory John Casamento * GormCore/GModelDecoder.m * GormCore/GormBoxEditor.h * GormCore/GormBoxEditor.m * GormCore/GormClassEditor.h * GormCore/GormClassEditor.m * GormCore/GormClassManager.h * GormCore/GormClassManager.m * GormCore/GormClassPanelController.h * GormCore/GormClassPanelController.m * GormCore/GormControlEditor.h * GormCore/GormControlEditor.m * GormCore/GormCustomView.h * GormCore/GormCustomView.m * GormCore/GormDocument.h * GormCore/GormDocument.m * GormCore/GormFilesOwner.h * GormCore/GormFilesOwner.m * GormCore/GormFunctions.h * GormCore/GormFunctions.m * GormCore/GormGenericEditor.h * GormCore/GormGenericEditor.m * GormCore/GormImageEditor.h * GormCore/GormImageEditor.m * GormCore/GormImage.m * GormCore/GormInspectorsManager.h * GormCore/GormInspectorsManager.m * GormCore/GormInternalViewEditor.h * GormCore/GormInternalViewEditor.m * GormCore/GormMatrixEditor.h * GormCore/GormMatrixEditor.m * GormCore/GormObjectEditor.h * GormCore/GormObjectEditor.m * GormCore/GormObjectInspector.m * GormCore/GormPalettesManager.h * GormCore/GormPalettesManager.m * GormCore/GormPlacementInfo.h * GormCore/GormPrivate.h * GormCore/GormPrivate.m * GormCore/GormProtocol.h * GormCore/GormResourceEditor.h * GormCore/GormResourceEditor.m * GormCore/GormResource.m * GormCore/GormScrollViewEditor.m * GormCore/GormSoundEditor.h * GormCore/GormSoundEditor.m * GormCore/GormSound.m * GormCore/GormSplitViewEditor.h * GormCore/GormSplitViewEditor.m * GormCore/GormViewEditor.h * GormCore/GormViewEditor.m * GormCore/GormViewResourceManager.h * GormCore/GormViewResourceManager.m * GormCore/GormViewSizeInspector.m * GormCore/GormViewWindow.h * GormCore/GormViewWindow.m * GormCore/GormViewWithContentViewEditor.h * GormCore/GormViewWithContentViewEditor.m * GormCore/GormViewWithSubviewsEditor.h * GormCore/GormViewWithSubviewsEditor.m * GormCore/GormWindowEditor.m * GormCore/NSCell+GormAdditions.h * GormCore/NSCell+GormAdditions.m * GormCore/NSColorWell+GormExtensions.h * GormCore/NSColorWell+GormExtensions.m * GormCore/NSFontManager+GormExtensions.h * GormCore/NSFontManager+GormExtensions.m * GormCore/NSView+GormExtensions.h * GormCore/NSView+GormExtensions.m * GormLib/IBApplicationAdditions.h * GormLib/IBApplicationAdditions.m * GormLib/IBCellAdditions.h * GormLib/IBCellProtocol.h * GormLib/IBConnectors.h * GormLib/IBConnectors.m * GormLib/IBDefines.h * GormLib/IBDocuments.h * GormLib/IBDocuments.m * GormLib/IBEditors.h * GormLib/IBEditors.m * GormLib/IBInspector.h * GormLib/IBInspector.m * GormLib/IBInspectorManager.h * GormLib/IBInspectorManager.m * GormLib/IBObjectAdditions.h * GormLib/IBObjectAdditions.m * GormLib/IBObjectProtocol.h * GormLib/IBPalette.h * GormLib/IBPalette.m * GormLib/IBProjectFiles.h * GormLib/IBProjects.h * GormLib/IBResourceManager.h * GormLib/IBResourceManager.m * GormLib/IBViewAdditions.h * GormLib/IBViewProtocol.h * GormLib/IBViewResourceDragging.h * GormLib/InterfaceBuilder.h * GormPrefs/GormColorsPref.h * GormPrefs/GormGeneralPref.m * GormPrefs/GormGuidelinePref.h * GormPrefs/GormPalettesPref.m * Palettes/0Menus/GormMenuEditor.m * Palettes/0Menus/GormMenuInspectors.m * Palettes/0Menus/GormNSMenu.h * Palettes/0Menus/GormNSMenu.m * Palettes/0Menus/main.m * Palettes/1Windows/GormNSPanel.h * Palettes/1Windows/GormNSPanel.m * Palettes/1Windows/GormNSWindow.h * Palettes/1Windows/GormNSWindow.m * Palettes/1Windows/main.m * Palettes/2Controls/GormButtonEditor.h * Palettes/2Controls/GormButtonEditor.m * Palettes/2Controls/inspectors.m * Palettes/2Controls/main.m * Palettes/3Containers/GormNSBrowser.h * Palettes/3Containers/GormNSBrowser.m * Palettes/3Containers/GormNSOutlineView.h * Palettes/3Containers/GormNSOutlineView.m * Palettes/3Containers/GormNSTableView.h * Palettes/3Containers/GormNSTableView.m * Palettes/3Containers/GormTableViewEditor.h * Palettes/3Containers/GormTableViewEditor.m * Palettes/3Containers/GormTabViewEditor.h * Palettes/3Containers/GormTabViewEditor.m * Palettes/3Containers/inspectors.m * Palettes/3Containers/main.m * Palettes/4Data/inspectors.m * Palettes/4Data/main.m * Palettes/GNUmakefile: Change of address for FSF in header. 2005-05-25 23:09 Gregory John Casamento * GNUmakefile * GNUmakefile.postamble * GNUmakefile.preamble * Gorm.m * main.m: Change address of FSF. * Palettes/1Windows/GormNSWindowInspector.gorm: Remove "wants to be color". * Palettes/1Windows/GormNSWindowSizeInspector.gorm: Added window autoposition section and max size section to .gorm file. 2005-05-24 00:28 Gregory John Casamento * English.lproj/GormClassInspector.gorm: Added link to invoke selectAction: when an action is selected, also added link to invoke selectOutlet: when an outlet is selected. * GormCore/GormClassInspector.m: Addition of two new actions selectAction: and selectOutlet: 2005-05-22 00:41 Gregory John Casamento * GormCore/GormClassEditor.m: Correction for outline view resize issues in switchView. 2005-05-21 13:15 Gregory John Casamento * English.lproj/GormPrefGeneral.gorm: Make the top switch off. * GormCore/GormClassEditor.m: Added code in switchView to properly resize the view so that it doesn't shrink when switching between the outline and browser. * GormPrefs/GormGeneralPref.m: Correct problem setting the radio button. 2005-05-21 11:06 Gregory John Casamento * English.lproj/GormPrefGeneral.gorm: Added oulets/actions for matrix to choose outline or browser view. * GormCore/GormClassEditor.h: Added forward declaration for NSBrowser. * GormCore/GormClassEditor.m: Added new private methods and also added code to existing methods to handle the browser view. * GormCore/GormClassManager.m: Removed artificial returning of NSObject in subClassesOf: and allSubclassesOf: so that it's now possible to all root classes when querying for "nil". * GormCore/GormFilePrefsManager.m: Updated version. * GormInfo.plist: Updated version. * GormPrefs/GormGeneralPref.h: Added interfaceMatrix and classesAction: * GormPrefs/GormGeneralPref.m: Implemented classesAction. * Resources/Defaults.plist: Added new default so that the user's preference for the classes view is stored. 2005-05-19 23:54 Gregory John Casamento * Version 0.9.10 2005-05-07 06:50 Gregory John Casamento * Gorm.m: In handleNotification: reset selection owner to nil when document is closed. In validateMenuItem: do not get class manager or selection owner when there is no active document. 2005-05-07 06:35 Gregory John Casamento * GormCore/GModelDecoder.m: Code to remove uneeded classes from the model during processing. * GormCore/GormClassEditor.m: Beginnings of class browser code. 2005-05-04 05:32 Gregory John Casamento * GormCore/GormClassEditor.h: Changed class inheritance added some ivars. * GormCore/GormClassEditor.m: Made the editor indenpendent of the outlineview. It now is an NSBox subclass. Preparing to implement NSBrowser view of class hierarchy. * GormCore/GormClassInspector.m: Changed document extensions to call resetObject: on the editor instead of reset. * GormCore/GormClassManager.m: Removed uneeded variable. * GormCore/GormDocument.m: Changed to use new editor view. * GormCore/GormPrivate.h: Added include. 2005-05-01 01:18 Gregory John Casamento * GormCore/GormClassManager.m: Added code in initWithDocument: which properly adds the methods to FirstResponder. Previously these methods were being added in "ExtraActions" which was not correct. Methods which are added in the palette should be added to "Actions". 2005-04-28 08:50 Gregory John Casamento * GormCore/GormDocument.m: Correct problem in setName:forObject: which was causing a segfault. 2005-04-24 11:16 Gregory John Casamento * GormCore/GormClassManager.m: Remove special case for NSSecureTextField. * GormCore/GormCustomClassInspector.m: Added new private method to call canSubstituteForClass: when appropriate to determine if the class should appear in the class list. * GormCore/GormPrivate.m: Added default implementation of canSubstituteForClass: on NSObject to return NO. * Palettes/2Controls/inspectors.m: Added implementation of canSubstituteForClass: to NSSecureTextField. 2005-04-23 22:57 Gregory John Casamento * GormCore/GormClassEditor.m: Change in performDragOperation: to bring up an alert panel if the header can't be parsed. 2005-04-23 20:13 Gregory John Casamento * GormCore/GormClassEditor.m: Register for all types. * GormCore/GormDocument.h: Added new method allManagedPbTypes. * GormCore/GormDocument.m: Implemented new method. * GormCore/GormObjectEditor.m: Register for all types. * GormCore/GormPrivate.m: Added call to new method which returns the pb types for all resource managers. 2005-04-23 14:37 Gregory John Casamento * GormCore/GNUmakefile: Added new files. * GormCore/GormBoxEditor.m: Added new includes. * GormCore/GormControlEditor.m: Added new includes * GormCore/GormDocument.m: Added new includes. * GormCore/GormGenericEditor.m: Added new includes. * GormCore/GormImageEditor.m: Added new includes. * GormCore/GormInternalViewEditor.m: * GormCore/GormMatrixEditor.m: Added new includes * GormCore/GormObjectEditor.m: Added new header. * GormCore/GormPrivate.h: Removed declarations. * GormCore/GormResourceEditor.m: Include new header. * GormCore/GormScrollViewEditor.m: Include new header. * GormCore/GormSoundEditor.m: Include new header. * GormCore/GormSplitViewEditor.m: Added GormViewKnobs.h * GormCore/GormViewEditor.m: Added GormViewKnobs.h * GormCore/GormViewSizeInspector.m: Added GormViewKnobs.h * GormCore/GormViewWithContentViewEditor.m: Added GormViewKnobs.h * GormCore/GormWindowEditor.m: Added GormViewKnobs.h * GormCore/GormSoundEditor.h: Pulled out of GormPrivate.h * GormCore/GormImageEditor.h: Pulled out of GormPrivate.h * GormCore/GormResourceEditor.h: Pulled out of GormPrivate.h * GormCore/GormObjectEditor.h: Pulled out of GormPrivate.h * GormCore/GormGenericEditor.h: Pulled out of GormPrivate.h * Gorm.m: Added new includes * GormPrefs/GormPalettesPref.m: Eliminated warning. * Palettes/0Menus/GormMenuEditor.m: Removed unused variable. * Palettes/3Containers/GormTabViewEditor.m: Added include to GormViewKnobs.h 2005-04-23 13:11 Gregory John Casamento * GormCore/GNUmakefile: Added new files. * GormCore/GormClassEditor.m: Changed to include new header, and use new method for registration of pboard types. * GormCode/GormClassEditor.h: New file * GormCore/GormDocument.m: Changed to include new header. * GormCore/GormObjectEditor.m: Uses new method to register all pboard types. * GormCore/GormPrivate.h: Added declaration for new method. * GormCore/GormPrivate.m: Added new method to register pboard types. * GormCore/GormResourceEditor.m: Changed to use new method. * NSCell+GormAdditions.h: Removed from GormPrivate.h * NSCell+GormAdditions.m: Removed from GormPrivate.m 2005-04-23 02:50 Gregory John Casamento * GormCore/GormClassEditor.m: Implementation of editor/dragging methods. * GormCore/GormDocument.m: Uncommented the section of the changeToTopLevelEditorAcceptingTypes: method which switches to the classes view. * GormCore/GormGenericEditor.m: Added implementation for fileTypes. * GormCore/GormPrivate.h: Added declaration of fileTypes. 2005-04-22 17:15 Gregory John Casamento * GormCore/GormDocument.h: Changed signature. * GormCore/GormDocument.m: Add another parameter on the new method added previously. * GormCore/GormObjectEditor.m: Get the ext to pass and call changeToTopLevelEditorAcceptingTypes:andFileTypes: if the type is NSFilenamePboardType. * GormCore/GormResourceEditor.m: Get the ext to pass and call changeToTopLevelEditorAcceptingTypes:andFileTypes: 2005-04-22 15:57 Gregory John Casamento * GormCore/GormDocument.h: Added new method. * GormCore/GormDocument.m: Added implementation for changeToTopLevelEditorAcceptingTypes and changeToViewWithTag:. * GormCore/GormObjectEditor.m: Added code to call changeToTopLevelEditorAcceptingTypes: when a given type isn't accepted by this editor. * GormCore/GormResourceEditor.m: Added code to call changeToTopLevelEditorAcceptingTypes: when a given type isn't accepted by this editor. 2005-04-22 12:38 Gregory John Casamento * Palettes/0Menus/GormMenuEditor.m: [GormMenuEditor pasteInSelection] removed extra call to attachObject:withParent:. 2005-04-22 12:24 Gregory John Casamento * Palettes/0Menus/GormMenuEditor.m: [GormMenuEditor pasteInSelection] corrected problem with pasting the menu items. 2005-04-21 20:40 Gregory John Casamento * GormCore/GNUmakefile: Build the new resource manager. * GormCore/GormDocument.m: Register the new resource manager. * GormCore/GormViewResourceManager.m: New resource manager for views. * GormLib/IBResourceManager.m: Removed views for the main resource manager. 2005-04-21 00:39 Gregory John Casamento * GormCore/GormViewEditor.m: Fix for double "setView:" call. * GormCore/GormViewWindow.m: Code cleanup. 2005-04-20 23:00 Gregory John Casamento * GormCore/GormObjectEditor.m: Added copyright information. * GormLib/IBResourceManager.m: Added exception handling to prevent a problem unarchiving an object from the pasteboard from crashing the app. 2005-04-20 21:51 Gregory John Casamento * GormCore/GormClassManager.m: Restrict instantiation of NSView and subclasses using Command-Shift-I. This means that standalone views can only be created from objects which are draggable from the palette. * GormCore/GormViewEditor.m: Removed logging ever time a standalone view is placed, as I don't consider the functionality experimental at this point. * GormCore/GormViewWindow.m: Size the window to accommodate the view if it already has size, if it doesn't resize the view to the window's dimensions. 2005-04-20 06:27 Gregory John Casamento * Palettes/2Controls/ControlsPalette.gorm: Corrected minor problem with switch and radio buttons in the controls palette. * TODO: Updated completed item. 2005-04-17 20:46 Gregory John Casamento * GormCore/GormCustomClassInspector.m: In _replaceCellClassForObject: className: corrected a problem where the drawBackground flag is set to NO when changing the cell type. It is now preserved when the new cell object is set. * Palettes/2Controls/GormButtonEditor.h: Added ivar. * Palettes/2Controls/GormButtonEditor.m: Corrects a bug reported by Matt Rice where the temporary text field becomes part of the document when saving while editing a button. 2005-04-17 12:06 Gregory John Casamento * GormCore/GormDocument.m: Added code in loadDocument: and saveGormDocument: to use data from the new SubstituteClasses entry in the palette.table. * GormCore/GormFilePrefsManager.m: Updated version to 0.9.9 * GormCore/GormPalettesManager.h: Added substituteClasses ivar. * GormCore/GormPalettesManager.m: Implemented code to use SubstituteClasses entry in palette. * GormInfo.plist: Update version to 0.9.9 2005-04-16 21:44 Gregory John Casamento * GormCore/GormDocument.m: In removeConnector: make the IBWillRemoveConnectorNotification carry aConnector as the object, instead of the document. The same for IBDidRemoveConnectorNotification. 2005-04-16 19:29 Gregory John Casamento * GormCore/GormPalettesManager.m: Slight improvement to palette import. 2005-04-16 17:21 Gregory John Casamento * GormCore/GormClassManager.m: Added code in initWithDocument: to add the actions to the FirstResponder. * GormCore/GormFunctions.h * GormCore/GormFunctions.m: Added function to get the actions from a class. * GormCore/GormPalettesManager.m: Added code to get actions/outlets from classes in exported from palettes. * Palettes/0Menus/GNUmakefile * Palettes/1Windows/GNUmakefile * Palettes/2Controls/palette.table * Palettes/3Containers/GNUmakefile: Added palette.table 2005-04-15 02:14 Gregory John Casamento * GormCore/GormInspectorsManager.m: Patch from Matt Rice to allow connection from a table column. * GormCore/GormPalettesManager.m: Import action methods automatically from the class. * Palettes/3Containers/GormTableViewEditor.m: Patch from Matt Rice to allow connection from a table column. 2005-04-14 01:42 Gregory John Casamento * Resources/ClassInformation.plist: Added NSPopUpButtonCell and NSMenuItemCell. 2005-04-14 00:31 Gregory John Casamento * GormCore/GormClassManager.m: More informative error message when a class can't be found. * GormCore/GormImage.m: Implement objectNameForInspectorTitle. * GormCore/GormInspectorsManager.m: Remove special cases for Image and Sound. * GormCore/GormPalettesManager.m: Beginnings of code to get outlets/actions for exported class. * GormCore/GormResource.h: Added include for IBObjectAdditions.h to GormResource.h * GormCore/GormSound.m: Implement objectNameForInspectorTitle. 2005-04-12 20:27 Gregory John Casamento * GormCore/GormGenericEditor.m: Unsubscribe from all notifications. * GormCore/GormObjectEditor.m: Correct problem preventing connections. 2005-04-11 23:24 Gregory John Casamento * GormCore/GormInspectorsManager.m: Send a call to "revert" to load the contents of the inspector from the object. 2005-04-11 22:46 Gregory John Casamento * GormCore/GormGenericEditor.m: Removed release of resource manager. This is a "weak connection" in the sense that the manager is a shared instance and is retained by the document, not the editor. 2005-04-11 19:22 Gregory John Casamento * GormCore/GormObjectEditor.m: Correction for problem which was causing issues with dragging. 2005-04-11 16:38 Gregory John Casamento * GormCore/GormDocument.m: Improved documentation. 2005-04-11 01:38 Gregory John Casamento * GormLib/IBResourceManager.m: Made addResourcesFromPasteboard: call addResources: for each array for a given type from the pasteboard. 2005-04-11 01:04 Gregory John Casamento * GormCore/GormDocument.m * GormCore/GormObjectEditor.m: Corrected problem with resource manager. 2005-04-10 23:59 Gregory John Casamento * GormCore/GormDocument.m: Moved call to register IBResourceManager here and also correct a memory problem. * GormCore/GormObjectEditor.m: Corrected a problem with registering the types. 2005-04-10 22:42 Gregory John Casamento * GormCore/GormFilePrefsManager.m * GormInfo.plist: Updated version to 0.9.7. 2005-04-10 20:09 Gregory John Casamento * GormCore/GormDocument.h * GormCore/GormDocument.m: addition of the method resourceManagerForPasteboard:. * GormCore/GormObjectEditor.m: Changes to utilize IBResourceManager * GormLib/IBResourceManager.h * GormLib/IBResourceManager.m: Changes to add objects to the document properly. 2005-04-10 18:13 Gregory John Casamento * GormCore/GormDocument.h: Organized methods. * GormCore/GormDocument.m: Added code here to add to top level objects array, when appropriate. * GormCore/GormGenericEditor.m: Prevent close when already closed. * GormCore/GormObjectEditor.m: Removed code which adds to document/top level objects, this is done in the document now. * GormCore/GormPrivate.h: Added new ivar to GormGenericEditor * GormLib/IBResourceManager.h * GormLib/IBResourceManager.m: Corrected implementation of register methods. * Resources/ClassInformation.plist: Added Object. 2005-04-03 07:36 Gregory John Casamento * GormLib/IBResourceManager.[hm]: Implementation of this class. 2005-03-30 23:36 Gregory John Casamento * GormCore/GormFilePrefsManager.m: Update the version of a file, once it's been saved with a new version of Gorm. 2005-03-30 22:43 Gregory John Casamento * GormCore/GormFilePrefsManager.m: Update to version 0.9.5. * GormInfo.plist: Update to version 0.9.5. 2005-03-30 06:09 Gregory John Casamento * Merge: from branch: build_reorg_branch. 2005-03-30 06:09 Gregory John Casamento BRANCH: build_reorg_branch * GNUmakefile: Added GormInfo.plist back to the top level dir * Resources/GormInfo.plist: Removed from here. 2005-03-29 21:42 Gregory John Casamento BRANCH: build_reorg_branch * GNUmakefile * GNUmakefile.preamble * GormPrefs/GNUmakefile * GormPrefs/GNUmakefile.preamble * Palettes/0Menus/GNUmakefile.preamble * Palettes/1Windows/GNUmakefile.preamble * Palettes/2Controls/GNUmakefile.preamble * Palettes/3Containers/GNUmakefile.preamble * Palettes/4Data/GNUmakefile.preamble: Removed GormPrefs framework, it is now a library. * Resources: Moved all .gorm files from here.. * English.lproj: To here. 2005-03-29 Richard Frith-Macdonald BRANCH: build_reorg_branch * GormPalettesManager.m: Fix some coordinate translation bugs when the gui is decorating windows itsself. 2005-03-29 02:47 Gregory John Casamento BRANCH: build_reorg_branch * GormCore/GNUmakefile.preamble: Removed link to GormPrefs. * GormCore/GormPrivate.m: Removed uneeded reference to GormPrefs. 2005-03-29 02:24 Gregory John Casamento BRANCH: build_reorg_branch * GNUmakefile.postamble: Removed kludge for windows. * GormCore/GNUmakefile.preamble: Fixed path. 2005-03-29 01:50 Gregory John Casamento BRANCH: build_reorg_branch * GNUmakefile: Reorganized the build order so that GormCore is built before GormPrefs. 2005-03-29 01:40 Gregory John Casamento BRANCH: build_reorg_branch * GNUmakefile.preamble * GormPrefs/GNUmakefile * Palettes/0Menus/GNUmakefile.preamble * Palettes/1Windows/GNUmakefile.preamble * Palettes/2Controls/GNUmakefile.preamble * Palettes/3Containers/GNUmakefile.preamble * Palettes/4Data/GNUmakefile.preamble: Build and link GormPrefs as a library on windows, for now, until the bug is fixed. 2005-03-29 01:24 Gregory John Casamento BRANCH: build_reorg_branch * Palettes/0Menus/GNUmakefile.preamble * Palettes/1Windows/GNUmakefile.preamble * Palettes/2Controls/GNUmakefile.preamble * Palettes/3Containers/GNUmakefile.preamble * Palettes/4Data/GNUmakefile.preamble: Added lines to all of these files to link the GormCore when the palette is built on windows. 2005-03-29 01:08 Gregory John Casamento BRANCH: build_reorg_branch * Gorm.m: Added new version here, after factoring out of GormCore. * install-windows.sh: Removed. 2005-03-28 19:55 Gregory John Casamento BRANCH: build_reorg_branch * GormCore: New library (may become a framework) * *.[hm]: Except for main.m, moved to GormCore. 2005-03-27 06:24 Gregory John Casamento * GormClassEditor.m: Added addAttributeToClass here. Also added a check to prevent changing the outline row count. * GormOutlineView.m: Removed addAttributeToClass from here. * GormPrivate.h: Moved addAttributeToClass to class editor. 2005-03-26 15:02 Gregory John Casamento BRANCH: build_reorg_branch * GNUmakefile: Add new framework to makefile. * Resources: Removed pref gorms. * GormLib: New framework. Pref gorms moved here as 2005-03-26 10:18 Gregory John Casamento * install-windows.sh: Installation script for windows. This automates the process until the reorg is completed. 2005-03-26 01:49 Gregory John Casamento * GNUmakefile: Correction to previous commit. Compile palettes after GormLib/InterfaceBuilder library. 2005-03-26 01:37 Gregory John Casamento These changes allow the build to work correctly on UNIX and preserve Nicola's changes for mingw. This is temporary until the build is reorganized. * GNUmakefile: Added Palettes back to subprojects back in with conditional for mingw. * GNUmakefile.postamble: Added conditional for targets so that they will work as expected on UNIX. 2005-03-22 04:30 Nicola Pero With these changes, Gorm builds and runs out-of-the-box on Mingw32 with latest gnustep-make. * GNUmakefile (SUBPROJECTS): Do not build Palettes as a subproject because they depend on Gorm.app having been built first. * GNUmakefile.postamble (after-all): Added rule to manually build Palettes after Gorm.app. (after-clean): Same change. (after-distclean): Same change. * Palettes/0Menus/GNUmakefile.preamble: Link ../../Gorm.app/Gorm.exe.a on Mingw. * Palettes/1Windows/GNUmakefile.preamble: Same change. * Palettes/2Controls/GNUmakefile.preamble: Same change. * Palettes/3Containers/GNUmakefile.preamble: Same change. * Palettes/4Data/GNUmakefile.preamble: Same change. 2005-03-21 23:30 Nicola Pero * GormLib/IBSystem.h: Fixed windows32 check for building the library. The library name is libGorm, not libGormLib! Also, simply use extern when exporting on Mingw. * GormLib/GNUmakefile.preamble: Removed special linking additions on Mingw, not needed. * Palettes/0Menus/GNUmakefile.preamble: Use ADDITIONAL_GUI_LIBS, not xxx_LIBRARIES_DEPEND_UPON, to link libGorm on Mingw. * Palettes/1Windows/GNUmakefile.preamble: Same change. * Palettes/2Controls/GNUmakefile.preamble: Same change. * Palettes/3Containers/GNUmakefile.preamble: Same change. * Palettes/4Data/GNUmakefile.preamble: Same change. 2005-03-20 10:17 Gregory John Casamento * GormViewEditor.m: [GormViewEditor performDragOperation:] call [GormDocument setSelectionFromEditor:] with self in order to force the inspector to show the newly added image name. 2005-03-19 16:04 Gregory John Casamento * GormLib/InterfaceBuilder.h: Added new header * GormLib/IBViewResourceDragging.h: New header * GormLib/GNUmakefile: Added new header 2005-03-19 05:39 Gregory John Casamento * GormViewEditor.m: Corrected problem with control snapping to edge when the threshold for the guideline was set lower than 5. * Resources/GormPrefGuideline.gorm: Set minimum of slider to 1. * Resources/GormPrefHeaders.gorm: Adjusted sizing of table. * Resources/GormPrefPalettes.gorm: Corrected background color 2005-03-19 04:57 Gregory John Casamento * Defaults.plist: Added default of 10 for "GuideSpacing". * GNUmakefile: Added new files. * GormColorsPref.h: Removed extra "#" from header. * GormGuidelinePref.[hm]: New controller class for preference module. * GormPrefController.[hm]: Added new preference panel. * GormViewEditor.m: Modifed to use new GuideSpacing preference value instead of a hardcoded value of 10 or 5. * Resources/GormPreferences.gorm: Added new pulldown. * Resources/GormPrefGuideline.gorm: New gui for setting GuideSpacing default. 2005-03-19 03:31 Gregory John Casamento * Defaults.plist: Change default to allow user bundles to YES. 2005-03-11 21:31 Gregory John Casamento * GNUmakefile: Remove Testing directory from makefile. 2005-03-11 21:25 Gregory John Casamento * Testing: Removed the "GormTest" application. Since most .gorm files use classes which will never be linked into that application and since the "test interface" functionality in Gorm itself provides the same functionality, this app is being removed. 2005-03-09 23:58 Gregory John Casamento * Documentation/GNUmakefile: Install docs into correct location under ${GNUSTEP_SYSTEM_ROOT}/Library/Documentation. 2005-03-08 00:15 Gregory John Casamento * GNUmakefile: Added new files. * GormDocument.h: Added header for InterfaceBuilder.h to get the necessary interface declarations. * GormDocument.m: Change to retain and release the last used editor. * NSFontManager+GormExtensions.[hm]: New files. 2005-03-07 22:18 Gregory John Casamento * GormDocument.m: Added code to make the window of the widget selected, the key window. This helps correct Bug#12224. * Palettes/1Windows/GormNSWindow.m: Added method canBecomeKeyWindow to guarantee that it returns YES. 2005-03-06 06:20 Gregory John Casamento * Documentation/Gorm.texi: Added FAQ concerning font modification. 2005-03-05 23:07 Gregory John Casamento * GNUmakefile: Added new class. * GormImageEditor.m: Refactored all of the code into the new parent. Implemented only those methods needed. * GormPrivate.h: Changed hierarchy of GormImageEditor and GormSoundEditor to have GormResourceEditor as their parent * GormResourceEditor.m: New parent for sound/image editors. * GormSoundEditor.m: Refactored all of the code into the new parent class. Implemented needed methods. 2005-03-04 04:04 Gregory John Casamento * GormImageEditor.m * GormPrivate.h: Added declaration for new method. * GormSoundEditor.m: Streamlined drag/drop code in image/sound editors. 2005-03-01 21:34 Gregory John Casamento * GNUmakefile: Added new files. * GormDocument.m: Calls new resource methods. * GormImageEditor.m: Calls new resource methods. * GormImage.[hm]: Now inherits from GormResource. * GormResource.[hm]: Added. New abstract resource class which implements IBResourceFiles. * GormSoundEditor.m: Calls new methods. * GormSound.[hm]: Now inherits from GormResource. * GormSoundInspector.m: Calls new methods. 2005-02-28 20:13 Gregory John Casamento * GormFilePrefsManager.m * GormInfo.plist: Bump application version in CVS. 2005-02-28 19:53 Gregory John Casamento * Version 0.9.2 2005-02-27 12:07 Gregory John Casamento * Documentation/Gorm.texi: Added a question to the FAQ. 2005-02-27 00:22 Gregory John Casamento * Documentation/Makefile.postamble: Now generates autogsdoc documentation for GormLib and places it in the "InterfaceBuilder" directory under Documentation. 2005-02-27 00:03 Gregory John Casamento * Documentation/Gorm.texi: Palette documentation. 2005-02-26 22:14 Gregory John Casamento * Documentation/Gorm.texi: Updating documentation to contain information answering recent questions about encoding. 2005-02-20 12:48 Gregory John Casamento * GModelDecoder.m: Mapped NSCStringText to NSText. 2005-02-19 02:29 Gregory John Casamento * Defaults.plist: Added new default "AllowUserBundles" to disable new code which prevents Gorm from running if a user bundle is present. * Gorm.m: Added code in [Gorm applicationDidFinishLaunching:] to warn the user and quit, unless the above default is set, if there is a user bundle loaded. It will give the user a few panels explaining what's going on. 2005-02-15 23:37 Gregory John Casamento * GormPosingView.[hm]: Removed. 2005-02-15 23:24 Gregory John Casamento * Gorm.m: Disabled poseAs: and poseAsClass: while in Gorm. * Resources/GormClassInspector.gorm * Resources/GormFontView.gorm * Resources/GormImageInspector.gorm * Resources/GormNSSplitViewInspector.gorm * Resources/GormPrefGeneral.gorm * Resources/GormPrefPalettes.gorm * Resources/GormScrollViewAttributesInspector.gorm: made sure that all fonts are system fonts. 2005-02-14 23:35 Gregory John Casamento * GormClassManager.m: changed [GormClassManager parseHeader:] to be able to properly handle categories on existing classes. 2005-02-14 01:00 Gregory John Casamento * GormObjCHeaderParser/OCIVarDecl.m: Corrected problem with reading declarations which have the "*" spaced oddly. Problem reported by Nicolas Roard. 2005-02-13 09:37 Gregory John Casamento * GModelDecoder.m: After gmodel load, mark the document as edited in openGModel:. * GormDocument.m: in setupDefaults: mark the document as edited. 2005-02-13 09:27 Gregory John Casamento * GormDocument.m: in [GormDocument attachObject:withParent:] coercion of id to NSControl to avoid warning about selection of the target method. Changed setSelectionFromEditor: to stop any connection activity when a selection is changed. 2005-02-13 04:46 Gregory John Casamento * GormDocument.m: in -loadDocument: if the extension is .gmodel call the openGModel: method to load it. 2005-02-06 10:43 Gregory John Casamento * GormDocument.m: in -saveAsDocument: return the value returned by -saveGormDocument: when it's called. 2005-02-06 02:13 Gregory John Casamento * Resources/GormViewSizeInspector.gorm: Corrected box title color. 2005-02-05 15:26 Gregory John Casamento * Palettes/0Menus/main.m: Corrected "revert To Saved" to "Revert To Saved". * Palettes/2Controls/GormNSButtonInspector.gorm: Corrected box title color. 2005-02-05 09:16 Gregory John Casamento * GormDocument.m: Improved some of the panel messages when gorm has a problem loading/saving. Added titles. * Gorm.m: Made some of the warning panels have a title. Added code to -testInterface: and -endTesting: to close extra windows opened during testing. * GormPrivate.h: testingWindows ivar to hold windows which were open before testing, so that we know which ones to orderOut when testing ends. 2005-02-02 22:44 Gregory John Casamento * GormDocument.m: -[GormDocument removeConnectionsWithLabel:..] added break to avoid iterating through all connections when the user has responded "NO". * GormFilePrefsManager.m: Update version to 0.9.1 * GormInfo.plist: Update version to 0.9.1 * GormObjCHeaderParser/OCIVarDecl.m: Change to correct problem reading ivars with <...> in them such as id xxx. 2005-02-01 23:40 Gregory John Casamento * Version 0.9.0 2005-01-31 23:34 Gregory John Casamento * GormClassManager.m: Corrected bug#11778. Added code which removes connections when a class is being reparsed. * GormFilePrefsManager.m: Updated file prefs with new version. * GormInfo.plist: Updated plist with new version. 2005-01-31 01:33 Gregory John Casamento * GormDocument.m: In the -[GormDocument removeConnections:..] methods corrected a problem with removing a connector while enumerating throught the list of connectors. This was causing the process to miss some of the connections which should have been removed. * Gorm.m: -[Gorm stopConnecting]: Properly reset the connectionSource and connectionDestination with the connecting process is stopped. Correction for bug#11777. * GormObjectEditor.m: -[GormObjectEditor removeAllInstancesOfClass:] correct problem where all instances were not being removed. 2005-01-30 14:34 Gregory John Casamento * GormObjCHeaderParser/GNUmakefile: Added new files. * GormObjCHeaderParser/OCClass.m: Uses lookAhead function * GormObjCHeaderParser/OCIVarDecl.m: Uses lookAhead function * GormObjCHeaderParser/OCIVar.m: Uses lookAhead function * GormObjCHeaderParser/ParserFunctions.[hm]: New functions for use by the class parser. * Resources/GormDocument.gorm: Corrected background color. 2005-01-30 00:33 Gregory John Casamento * GNUmakefile: Build new file. * NSColorWell+GormExtensions.[hm]: Category which allows the setting of a color into a color well without invoking the action associated with that control. * Palettes/1Windows/main.m: Include new extension. * Palettes/2Controls/inspectors.m: Include new extension. * Palettes/3Containers/inspectors.m: Include new extension. * Palettes/4Data/inspectors.m: Include new extension. 2005-01-29 22:36 Gregory John Casamento * GormDocument.m: in -handleNotification: added code to reset the selection to nil to clear the inspector when the window is miniaturized. 2005-01-29 18:55 Gregory John Casamento * GormClassInspector.m: In -addAction:, -addOutlet:, -removeAction:, -removeOutlet:, -selectClass: made changes to make sure that if the document is not active, that the method will fall through. This prevents a crash when user presses buttons on the class inspector window when the document is miniaturized. * Palettes/2Controls/inspectors.m: Improved error when the .gorm file can't be loaded for GormBoxInspector. 2005-01-28 21:50 Gregory John Casamento * Palettes/2Controls/GormNSStepperInspector.gorm: Corrected problem with inspector. 2005-01-28 00:41 Gregory John Casamento * GormClassInspector.m: Added call to super ok: method. * GormCustomClassInspector.m: Added call to super ok: method. * GormLib/IBInspector.m: Corrected touch method to properly update the document status. Implemented ok: which simply calls touch: in the superclass. * GormNSSplitViewInspector.m: Added call to super ok: method. * GormObjectInspector.m: Added call to super ok: method. * GormScrollViewAttributesInspector.m: Added call to super ok: method. * GormViewSizeInspector.m: Added call to super ok: method. * Palettes/1Windows/GormNSWindowInspector.gorm: Corrected background. * Palettes/1Windows/main.m: Added call to super ok: method for all inspectors. * Palettes/2Controls/GormNSBoxInspector.gorm: Corrected background. * Palettes/2Controls/GormNSButtonInspector.gorm: Corrected background. * Palettes/2Controls/GormNSCellInspector.gorm: Corrected background. * Palettes/2Controls/GormNSColorWellInspector.gorm: Corrected background. * Palettes/2Controls/GormNSFormInspector.gorm: Corrected background. * Palettes/2Controls/GormNSMatrixInspector.gorm: Corrected background. * Palettes/2Controls/GormNSPopUpButtonInspector.gorm: Corrected background. * Palettes/2Controls/GormNSSliderInspector.gorm: Corrected background. * Palettes/2Controls/GormNSStepperInspector.gorm: Corrected background. * Palettes/2Controls/GormNSTextFieldInspector.gorm: Corrected background. * Palettes/2Controls/inspectors.m: Added call to super ok: method. * Palettes/3Containers/GormNSBrowserInspector.gorm: Corrected background. * Palettes/3Containers/GormNSTableColumnInspector.gorm: Corrected background. * Palettes/3Containers/GormNSTableColumnSizeInspector.gorm: Corrected background. * Palettes/3Containers/GormNSTableViewInspector.gorm: Corrected background. * Palettes/3Containers/GormTabViewInspector.gorm: Corrected background. * Palettes/3Containers/inspectors.m: Added call to super ok: method. * Palettes/4Data/GormNSComboBoxInspector.gorm: Corrected background. * Palettes/4Data/GormNSDateFormatterInspector.gorm: Corrected background. * Palettes/4Data/GormNSImageViewInspector.gorm: Corrected background. * Palettes/4Data/GormNSNumberFormatterInspector.gorm: Corrected background. * Palettes/4Data/GormNSTextViewInspector.gorm: Corrected background. * Palettes/4Data/inspectors.m: Added call to super ok: method for all inspectors. * Resources/GormImageInspector.gorm: Corrected background. * Resources/GormViewSizeInspector.gorm: Corrected background. Corrects bug#11346 2005-01-23 00:41 Gregory John Casamento * GormFunctions.m: identifierString() added code which tests the result to see if it's zero length. If it is, it's replaced with "dummyIdentifier". 2005-01-22 15:38 Gregory John Casamento * GormClassEditor.m: Replaced use of the class methods from GormDocument with the appropriate function call. * GormClassInspector.m: Replaced use of the class methods from GormDocument with the appropriate function call. * GormDocument.[hm]: Removed the formatting class methods. * GormFunctions.[hm]: Added indentifierString(), formatAction(), formatOutlet() functions. NOTE: The correct way to apply this formatting is using NSFormatter subclasses. This will be done after the pending release. 2005-01-22 14:21 Gregory John Casamento * GNUmakefile: Reorganized the files in the resources, hearders and source lists. 2005-01-22 12:14 Gregory John Casamento * GormDocument.m: In [GormDocument detachObject:] made [GormDocument setObject:isVisibleAtLaunch:] called only when the object is an NSWindow subclass. * GormImageEditor.m: Added implementation of addObject: to prevent addition of duplicate images. * GormImage.h: Added isEqual: so that containsObject: can find the image. * GormImage.m: Added isEqual: declaration. * GormSoundEditor.m: Added implementation of addObject to prevent addition of duplicate sounds. * GormSound.h: Added isEqual: so that containsObject can find the sound. * GormSound.m: Added isEqual: declaration. 2005-01-11 22:04 Gregory John Casamento * GModelDecoder.m: Default NSWindows being imported from the .gmodel to the default window background color in the method [GModelApplication initWithModelUnarchiver:]. 2005-01-09 01:36 Gregory John Casamento * ClassInformation.plist: Added missing changeFont: method. * GormClassManager.m: Changed code to read only the additions to FirstResponder from the data.classes file. * GormFilePrefsManager.m: Updated version to 0.8.7. * GormImageEditor.m: Made some logs "debug". * GormInfo.plist: Updated version. * GormInternalViewEditor.m: Made some logs "debug". * Palettes/1Windows/GormNSWindowInspector.gorm: Changes to layout * Palettes/1Windows/GormNSWindowSizeInspector.gorm: Same. 2005-01-08 18:36 Gregory John Casamento * GormImage.h: Moved the declaration for setArchiveByName: here. * GormImage.m: Moved the code for the category here. * GormMatrixEditor.m: Included GormImage.h. 2005-01-08 18:06 Gregory John Casamento * GormClassManager.m: Corrected bug#11534. * GormFilePrefsManager.m: Updated alpha version * GormInfo.plist: Updated alpha version 2005-01-08 12:28 Gregory John Casamento * GormViewWithContentViewEditor.m: Change in pasteInView: to move a view to the origin if it's rect is outside the view it's being placed into. 2005-01-03 23:56 Gregory John Casamento * GormDocument.m: Improved resource handling in saveGormDocument: * GormImageEditor.m: Implemented deleteSelection * GormImage.[hm]: Added new init methods. * GormSoundEditor.m: Implemented deleteSelection * GormSound.[hm]: Added new init methods. 2005-01-02 15:11 Gregory John Casamento * GormImageEditor.m * GormSoundEditor.m: Fix to correct exception when dragging from a cell which doesn't contain a resource. 2005-01-01 10:33 Gregory John Casamento * GormLib/IBObjectAdditions.m: Implementation for nibLabel. * GormLib/IBObjectProtocol.h: Better document for nibLabel. 2005-01-01 09:59 Gregory John Casamento * GormLib/IBApplicationAdditions.h * GormLib/IBCellProtocol.h * GormLib/IBConnectors.h * GormLib/IBInspector.h * GormLib/IBObjectProtocol.h * GormLib/IBSystem.h * GormLib/IBViewProtocol.h: Completed all documentation for existing IntefaceBuilder classes. 2005-01-01 02:39 Gregory John Casamento * GormLib/GNUmakefile: Added new headers and new .m file. * GormLib/IBCellAdditions.h: Added include for NSCell.h * GormLib/IBDocuments.h: Added documentation. * GormLib/IBDocuments.m: Added include of IBDocuments.h to get string declarations. * GormLib/IBPalette.m: Implemented IBPaletteDocument. * GormLib/IBProjectFiles.h: New * GormLib/IBProjects.h: New * GormLib/IBResourceManager.[hm]: New * GormLib/InterfaceBuilder.h: Added new headers. 2004-12-31 14:29 Gregory John Casamento * Palettes/1Windows/GormNSWindowInspector.gorm: Added form to allow setting of the miniaturized image by name. * Palettes/1Windows/main.m: Changes to use the form added to the UI. 2004-12-31 08:22 Gregory John Casamento * GormDocument.h: Added GormFilesOwner to @class declaration. * Gorm.m: Made rect drawn around objects thinner to prevent residual lines from remaining when the rect is erased. * Palettes/1Windows/main.m: Simplified includes. 2004-12-28 21:21 Gregory John Casamento * GormImageEditor.m: Added check to see if object responds to setImage: in performDragOperation. * GormImage.m: Moved NSImage category dec/def here. * GormPrivate.h: Removed NSImage category declaration. * GormViewEditor.m: Removed NSImage category definition. 2004-12-28 16:38 Gregory John Casamento * GormPalettesManager.m: Enhancment in loadPalette: to allow loading using either the plist or the strings format for palette.table. 2004-12-28 12:10 Gregory John Casamento * Palettes/1Windows/GormNSPanel.m * Palettes/1Windows/GormNSWindow.m: Initialize the miniaturized window image to nil. 2004-12-28 08:38 Gregory John Casamento * Palettes/0Menus/GormMenuEditor.m: Improvement on previous correction. 2004-12-27 22:02 Gregory John Casamento * Palettes/0Menus/GormMenuEditor.m: Correction for Bug#11410. 2004-12-27 21:39 Gregory John Casamento * GormLib/IBObjectAdditions.m: Changed some implementations. * GormObjectEditor.m: Removed methods which it was unecessary to override. 2004-12-27 21:21 Gregory John Casamento * GModelDecoder.m: * GormDocument.m: Change to properly handle exception when a class fails to parse. * Gorm.m: Correction for Bug#11415 and also made a changed to discontinue connection when a cut/paste/copy operation is done. * GormObjectEditor.m: Correction for Bug#11415. * Palettes/0Menus/GormMenuEditor.m: Correction for Bug#11412. 2004-12-23 14:52 Gregory John Casamento * GormFilesOwner.h: Added inspector declaration. * GormFilesOwner.m: Changed code in setObject to create an autoreleased mutableCopy of the array and removed FirstResponder from the list to prevent the user from selecting this. * GormPrivate.h: Added the include for GormFilesOwner.h and also removed the inspector declaration from this file. 2004-12-23 13:30 Gregory John Casamento * GormViewEditor.m: In -performDragOperation: copy the image/sound before setting it into the control to make certain any changes made to the original image don't reflect in the system wide image. 2004-12-23 06:20 Gregory John Casamento * Resources/GormClassPanel.gorm: Set nextKeyView for all views in the window and the initialFirstResponder of the window to the table view. 2004-12-23 06:03 Gregory John Casamento * GormClassInspector.m: Fix for issue when loading from gmodel. Corrected _refreshView: and searchForClass: so that if list is nil, the selection isn't set. * Gorm.spec.in: Minor correction. 2004-12-19 09:05 Gregory John Casamento * GormInspectorsManager.m: Added [super init] call to init. * GormLib/IBInspectorManager.m: Corrected init. 2004-12-19 08:38 Gregory John Casamento * GormInspectorsManager.h: Changed parent class. * GormInspectorsManager.m: Added notification IBWillInspectoObjectNotification. * GormLib/GNUmakefile: Added new class. * GormLib/IBInspectorManager.h: New class * GormLib/IBInspectorManager.m: New class * GormLib/InterfaceBuilder.h: Added new class. * Gorm.m: Coerce IBInspectorManager to GormInspectorsManager. 2004-12-18 13:24 Gregory John Casamento * GormLib/IBApplicationAdditions.h * GormLib/IBConnectors.h * GormLib/IBDocuments.h * GormLib/IBEditors.h * GormLib/IBPalette.h * GormLib/IBSystem.h: Changed IB_EXPORT to IB_EXTERN. 2004-12-18 10:05 Gregory John Casamento * GormDocument.m: * GormFilesOwner.m: * Gorm.m: * GormPalettesManager.m: * GormWindowEditor.m: Changed NSRunAlertPanel(...) calls to use nil instead of NULL. NULL shouldn't be used. 2004-12-18 08:53 Gregory John Casamento * GormLib/GNUmakefile: Added new header * GormLib/GNUmakefile.preamble: Added comment. * GormLib/IBApplicationAdditions.h: Add include, change extern to IB_EXPORT * GormLib/IBConnectors.h: Same * GormLib/IBDocuments.h: Same * GormLib/IBEditors.h: Same * GormLib/IBPalette.h: Same * GormLib/IBSystem.h: New file containing declarations for IB_EXPORT for different Operating Systems. * GormLib/InterfaceBuilder.h: Include IBSystem.h. 2004-12-17 21:28 Gregory John Casamento * GormClassInspector.m: Set the double action and target for parentClass. * GormObjectEditor.m: Moved the pasteInSelection method. 2004-12-17 05:48 Gregory John Casamento * GormDocument.m: Changed implementation here to call the one on the object editor. * GormObjectEditor.m: Added implementation for removeAllInstancesOfClass: * GormPrivate.h: Added declaration for removeAllInstancesOfClass: 2004-12-16 05:32 Gregory John Casamento * GormClassEditor.m: added call to removeAllInstancesOfClass: in deleteSelection so that no objects in the objectView can refer to a class that doesn't have a correstponding class in the class manager/class editor. * GormClassManager.h: Added declaration for classNameForObject:. * GormClassManager.m: Added implemented for classNameForObject:. * GormDocument.h: Added declaration of removeAllInstancesOfClass:. * GormDocument.m: Addition of method to remove all instances from the objects view if a class is removed from the classes view. 2004-12-15 01:43 Gregory John Casamento * GormClassEditor.m: Code from -changeView added to select contents of a scrollview instead of the scrollview itself (when appropriate). * GormDocument.m: Moved code from -changeView: to GormClassEditor. * GormPrivate.h: Added methods for changing the selection in the outline view without setting the inspector. 2004-12-14 21:26 Gregory John Casamento * GormClassManager.m: -addClassNamed:withSuperClassNamed: actions:outlets:isCustom: added check for superclass of "FirstResponder". 2004-12-14 21:04 Gregory John Casamento * GormClassEditor.m: Added code in pasteInSelection to prevent the user from pasting a subclass onto FirstResponder. 2004-12-14 06:53 Gregory John Casamento * GormClassEditor.m: Further correction to previous issue. 2004-12-14 06:30 Gregory John Casamento * GormClassEditor.m: Corrected potential issue after delete of a class which is selected. 2004-12-14 06:04 Gregory John Casamento * GormClassEditor.m: Added code in -deleteSelection to copy the selection, if it's a class, added code in copySelection and pasteInSelection to handle copy/paste. * GormClassManager.h: Made variable names conform a little more to standard practice. Also changed the declarations of "NSArray*" to "NSArray *". * GormClassManager.m: Corrected addClassNamed:withSuperClassNamed: actions:outlets:isCustom: to eliminate duplicate actions, outlets from the class being added if they exist on the superclass. * Gorm.m: Changed coercion to id * GormDocument.h: Added declaration for windowAndRect:forObject: * GormLib/IBDocuments.h: Removed the declaration for windowAndRect:forObject: from here as it doesn't belong in the IBDocuments protocol. * GormLib/IBPalette.m: Started implementing the private class IBPaletteDocument. * Gorm.m: Changed some code due to to switch in location of the windowAndRect:forObject: method from IBDocuments.h to GormDocument.h. 2004-12-12 16:00 Gregory John Casamento * GormLib/GNUmakefile: Added new header files. * GormLib/IBViewAdditions.h: Creates a category/informal protocol. * GormLib/IBViewProtocol.h: New file defines IBViewProtocol * GormLib/IBCellAdditions.h: New file for IBCellAdditions, adopts protocol and creates a category/informal protocol. * GormLib/IBCellProtocol.h: New file defines IBCellProtocol 2004-12-12 15:27 Gregory John Casamento * GormClassEditor.m: Corrected problem in -outlineView: shouldEditTableColumn:item: to prevent editing of FirstResponder name in the class editor. 2004-12-12 14:16 Gregory John Casamento * GormClassEditor.m: Implemented new methods. * GormGenericEditor.m: Implemented new methods. * GormLib/IBEditors.h: Added back some of the commented out methods and added also validateEditing and openSubeditorForObject: * GormLib/IBViewAdditions.h: Added the category IBCellAdditions as defined in the IB API Spec. * GormViewEditor.m: Added stub implementations for methods not implemented in the view editor. They are implemented in some of the lower level editors, but it still needs to be compliant. * GormViewWithSubviewsEditor.[hm]: Removed redundant method for deleteSelection. 2004-12-11 18:03 Gregory John Casamento * GormClassManager.m: Correction for reparenting of a class in -setSuperClassNamed:forClassNamed: 2004-12-11 10:22 Gregory John Casamento * GormClassInspector.m: Changed _refreshView to gray out the class field when the FirstResponder is selected since it's name isn't editable. 2004-12-11 00:51 Gregory John Casamento * GormClassInspector.m: Added code in setObject: to show the total outlets and actions in the class. * Resources/GormClassInspector.gorm: Swapped the outlet/action tabs. 2004-12-11 00:21 Gregory John Casamento * GormDocument.m: in handleNotification: changed the condition for IBClassNameChangedNotification so that the inspector is cleared when the class name is modified. This prevents the inspector from accidently being used to modify a class which no longer exists. 2004-12-10 23:57 Gregory John Casamento * Resources/GormClassInspector.gorm: Added proper resizing settings so that the buttons on the outlets and actions tabs resize in the same way. 2004-12-10 17:55 Gregory John Casamento * GormClassEditor.m: Changes to return a item if it's an action/outlet holder without generating a string. * GormOutlineView.m: Modifications to make drawing of the actions and outlets more efficient. 2004-12-08 21:03 Gregory John Casamento * GormOutlineView.m: Corrected a leak. 2004-12-08 19:52 Gregory John Casamento * GormClassEditor.m: Use new ivar to store selected class. * GormClassManager.m: Reimplement addAction:toClassNamed: and addOutlet:forClassNamed:. * GormImageEditor.m: Release the objects in dealloc. * GormPrivate.h: Added new ivar for GormClassEditor to store selected class in. 2004-12-05 18:21 Gregory John Casamento * GormClassEditor.m: Added new methods moved from GormDocument. * GormDocument.m: Moved remove: to deleteSelection on GormClassEditor, also moved createSubclass to GormClassEditor. * GormPrivate.h: Added methods moved from GormDocument to GormClassEditor. * GormLib/IBEditors.h: Added deleteSelection back into the protocol. 2004-12-05 15:40 Gregory John Casamento * GNUmakefile: Added new classes to the makefile. * GormClassEditor.m: Moved some methods from GormDocument to here. * GormDocument.[hm]: Changes for new GormSound/GormImage methods. Also modifications for changes in GormClassEditor. * GormImage.[hm]: New files. * GormImageEditor.m: Added imageForPath: call. * GormImageInspector.m: Added imageForPath: call. * GormInspectorsManager.m: Added GormImage/GormSound include * GormPrivate.h: Added incudes * GormSound.[hm]: New files. * GormSoundEditor.m: Added includes and soundForPath call. * GormSoundInspector.m: Added includes and soundForPath call. * Palettes/0Menus/GormMenuAttributesInspector.gorm: Made correction to allow "Title" field to resize properly. * Palettes/3Containers/GormNSTableViewInspector.gorm: Corrected a slight problem with one of the boxes cutting off text on the bottom. * Resources/GormClassInspector.gorm: Made outlets table resize properly 2004-12-05 07:48 Gregory John Casamento * GormCustomClassInspector.m: Set the max visible columns to 1 in awakeFromNib. * GormDocument.m: Corrected a segfault when reverting to the saved document. * GormObjectEditor.m: Fully implemented IBObjectAdditions.m * Palettes/0Menus/GormMenuAttributesInspector.gorm * Palettes/0Menus/GormMenuItemAttributesInspector.gorm * Palettes/1Windows/GormNSWindowInspector.gorm * Palettes/2Controls/GormNSBoxInspector.gorm * Palettes/2Controls/GormNSButtonInspector.gorm * Palettes/2Controls/GormNSCellInspector.gorm * Palettes/2Controls/GormNSColorWellInspector.gorm * Palettes/2Controls/GormNSFormInspector.gorm * Palettes/2Controls/GormNSMatrixInspector.gorm * Palettes/2Controls/GormNSPopUpButtonInspector.gorm * Palettes/2Controls/GormNSProgressIndicatorInspector.gorm * Palettes/2Controls/GormNSSliderInspector.gorm * Palettes/2Controls/GormNSStepperInspector.gorm * Palettes/2Controls/GormNSTextFieldInspector.gorm * Palettes/3Containers/GormNSBrowserInspector.gorm * Palettes/3Containers/GormNSTableColumnInspector.gorm * Palettes/3Containers/GormNSTableColumnSizeInspector.gorm * Palettes/3Containers/GormNSTableViewInspector.gorm * Palettes/3Containers/GormTabViewInspector.gorm * Palettes/3Containers/inspectors.m * Palettes/4Data/GormNSComboBoxInspector.gorm * Palettes/4Data/GormNSDateFormatterInspector.gorm * Palettes/4Data/GormNSImageViewInspector.gorm * Palettes/4Data/GormNSNumberFormatterInspector.gorm * Palettes/4Data/GormNSTextViewInspector.gorm * Resources/GormClassInspector.gorm * Resources/GormCustomClassInspector.gorm * Resources/GormImageInspector.gorm * Resources/GormNSSplitViewInspector.gorm * Resources/GormScrollViewAttributesInspector.gorm * Resources/GormSoundInspector.gorm * Resources/GormViewSizeInspector.gorm: Modified the inspectors to resize properly. Corrects bug#11216. 2004-12-04 17:43 Gregory John Casamento * GormBoxEditor.m * GormControlEditor.m * GormInternalViewEditor.m * GormMatrixEditor.m * GormNSSplitViewInspector.m * GormObjectEditor.m * GormScrollViewAttributesInspector.m * GormScrollViewEditor.m * GormSplitViewEditor.m * GormWindowEditor.m * Palettes/2Controls/GormButtonEditor.m * Palettes/2Controls/inspectors.m * Palettes/3Containers/GormTabViewEditor.m * Palettes/3Containers/inspectors.m: Replaced all references of GormObjectAdditions with IBObjectAdditions. This makes Gorm more compliant with the IB API spec. 2004-12-03 07:09 Gregory John Casamento * GormClassManager.[hm]: New method allCustomClassNames which returns the customClasses array. * GormDocument.m: Change in handleNotification: method to select the class just added. 2004-12-02 06:20 Gregory John Casamento * GormObjCHeaderParser/OCClass.m: [OCClass parse] added a check to determine if the string is nil before loading it into the scanner. 2004-12-02 06:20 Gregory John Casamento * GormObjCHeaderParser/OCClass.m: added code in parse method to use new class for IVar parsing. * GormObjCHeaderParser/OCIVarDecl.[hm]: New class. This class handles the declaration and breaks it into separate ivar objects. 2004-12-01 02:12 Gregory John Casamento * GormClassManager.m: [GormClassManager parseHeader:] altered method to throw NSInvalidArgumentException instead of a custom exception. 2004-11-29 23:40 Gregory John Casamento * GormPalettesManager.[hm]: [GormPalettesManager loadPalette:] now returns BOOL. * GormPalettesManager.m: [GormPalettesManager openPalette:] returns nil of loadPalette returns NO. * GormObjCHeaderParser/OCHeaderParser.m: Returns NO if there is no class in the file. 2004-11-27 13:22 Gregory John Casamento * GormObjCHeaderParser/OCClass.m * GormObjCHeaderParser/OCIVar.m * GormObjCHeaderParser/OCMethod.m: Added code to parse method to trim the result of any whitespace to make certain that there aren't any extra spaces in the data which could cause problems. 2004-11-27 09:17 Gregory John Casamento * GormObjCHeaderParser/OCClass.m: Condensed parse methods into parse. Corrected a minor issue. 2004-11-27 05:53 Gregory John Casamento * GormObjCHeaderParser/OCClass.h * GormObjCHeaderParser/OCClass.m * GormObjCHeaderParser/NSScanner+OCHeaderParser.h * GormObjCHeaderParser/NSScanner+OCHeaderParser.m * GormObjCHeaderParser/OCMethod.h * GormObjCHeaderParser/OCMethod.m * GormObjCHeaderParser/OCIVar.h * GormObjCHeaderParser/OCIVar.m * GormObjCHeaderParser/OCHeaderParser.h * GormObjCHeaderParser/OCHeaderParser.m * GormObjCHeaderParser/GNUmakefile: New files for class parser. * GormClassManager.m: Changes to use new class parser. 2004-11-24 00:04 Gregory John Casamento * Palettes/3Containers/GormNSOutlineView.h: Removed savedColor and added "Gorm" methods to the header. * Palettes/3Containers/GormNSOutlineView.m: Removed all references to savedColor and commented out select and unselect methods. * Palettes/3Containers/GormNSTableView.h: Removed saved color and commented out select and unselect. * Palettes/3Containers/GormNSTableView.m: Removed all references to savedColor and commented out select and unselect methods. Corrects bug #10118. 2004-11-20 13:27 Gregory John Casamento * Resources: Updated all gorms to latest format. * Palettes: Updated all gorms to latest format. 2004-11-18 00:23 Gregory John Casamento * GNUmakefile: Addition of entries for new NSView+GormExtensions.[hm] files. * NSView+GormExtensions.[hm]: Added to hold extensions for the NSView class in Gorm. * GModelDecoder.m: Changes to minimize warnings during compilation with gcc 3.x. * GormClassEditor.m: Same as above * GormClassManager.m: Same as above * GormDocument.m: Same as above + new code to eliminate orphaned views in _repairFile. * GormGenericEditor.m: Added copyright comment. * GormInspectorsManager.h: Added copyright comment. Made changes to minimize warnings. * GormPrivate.h: Removed AppKit.h include and replaced it with several specific includes to reduce compile issues. This was causing a lot of warnings because of similar selectors. * GormLib/IBEditors.h: removed circular referece to IBDocuments.h * Palettes/3Containers/GormNSBrowser.h: Removed AppKit.h and replaced it with a specific include. * Palettes/3Containers/GormNSBrowser.m: Added specific includes for classes used. * Palettes/3Containers/GormNSOutlineView.m: Same as above. * Palettes/3Containers/GormNSTableView.m: Same as above. * Palettes/3Containers/inspectors.m: fix for method name on GormClassManager which changed from setCustomClass:forObject: to setCustomClass:forName:. Also, other changes which needed to be made to minimize warnings. * Palettes/3Containers/main.m: Removed overly general includes and added specific includes for each class used. Made changes to minimize warnings. 2004-11-17 00:59 Gregory John Casamento * GormViewEditor.m: initWithObject:withDocument: added code to instantiated GormViewWindow if the view being added has no window attached to it. This is to handle standalone views. Correction for Report #10849. * GormViewWindow.m: [GormViewWindow initWithView:] call to setReleasedWhenClosed so that the window isn't released when the view window is closed. This was causing a crash. 2004-11-16 19:19 Gregory John Casamento * GormClassPanelController.[hm]: Added method browserAction:. Changed okButton: to use the value from the textfield. Added new textfield so that the user can type the name of the class. * GormClassPanel.gorm: Added textfield. Changed connection so that the browser now invokes browserAction: on the controller. 2004-11-13 00:03 Gregory John Casamento * GModelDecoder.m: Added GModelMenuTemplate to allow decoding of .gmodels which contain the menu template class. * GormClassManager.m: Changed the allClassNames method to not prepend NSObject now that NSObject is part of the classInformation plist. * GormFunctions.[hm]: Added parameter to pass in the current list of classes from the calling document. * GormClassPanelController.[hm]: New class. * GormClassPanel.gorm: Added interface. 2004-11-12 17:08 Gregory John Casamento * GModelDecoder.m: Changes to improve loading of .gmodel files. * GormClassManager.[hm]: Changed name of setCustomClass:forObject: to setCustomClass:forName: and also removeCustomClassforObject: to removeCustomClassForName: * GormCustomClassInspector.m: Changes to accomodate the new method name. * GormDocument.m: Changes to accomodate the new method name. * GormFilesOwner.m: Corrected an issue with changing the class for the file's owner. Added code which checks both the actions and outlets attached to see if it's necessary to prompt before destroying connections. 2004-11-09 09:08 Gregory John Casamento * Palettes/2Controls/GormNSStepperInspector.gorm: Changed some of the titles and made the layout more consistent with other inspectors. 2004-11-09 08:55 Gregory John Casamento * GormClassInspector.m: Modified the code in the table delegate to use the NSTableView * to determine which table is calling the delegate instead of which tab is currently selected. 2004-11-07 22:56 Gregory John Casamento * GormClassManager.m: Added code to [GormClassManager loadCustomClasses:] to ignore any entry in the data.classes file which is not a dictionary. 2004-11-07 22:56 Gregory John Casamento * GormClassManager.m: Added code to [GormClassManager saveToFile:] and [GormClassManager loadCustomClasses:] to handle adding (and subsequently removing before processing) of a comment which warns users not to manually edit the file. 2004-11-07 22:18 Gregory John Casamento * GormClassInspector.m: [GormClassManager removeAction:] added code to check for a custom class. 2004-11-07 14:27 Gregory John Casamento * ClassInformation.plist: Added entry for NSObject. * Gorm.m: Removed check for adding attribute to class so that "category" actions can be added to existing AppKit classes. * GormClassEditor.m: Removed check for custom in outlineView: addActionToClass: for category method support. * GormClassInspector.m: Changed "isCustom" to isEditable in table delegate method. * GormClassManager.[hm]: Changed grouping of methods. Also made changes to correct various problems found while implementing category support. Fixes Bug#10934. * GormDocument.m: [GormDocument remove:] added check for custom class or for category to allow remove. * GormLib/IBConnectors.m: Added default implementation of nibInstantiate. 2004-11-04 01:43 Gregory John Casamento * GormClassManager.m: Corrected a memory leak in loadFromFile:. * GormClassManager.h: Added FSF/GPL header and organized the methods in the header according to function. 2004-11-03 22:07 Gregory John Casamento * GormClassManager.m: modified addNewActionToClassNamed: and addNewOutletToClassNamed: so that the initial names for outlets and actions are newOutet1, newOutlet2, and similar for actions newAction1:, newAction2:, etc. 2004-11-03 21:45 Gregory John Casamento * GormDocument.m: Added alert panel to loadDocument: so that if the build version loaded from the .gorm file is greater than the one of the running Gorm application, the user is warned that this .gorm file was created with a newer version of the application. * GormFilePrefsManager.[hm]: Added +currentVersion to give the current build number. 2004-10-26 21:18 Gregory John Casamento * GormControlEditor.m: Added code to call the superclass in the dragging methods if the type being dragged isn't a formatter. This was a bug introduced on 10-17. Corrected now. Thanks to Fabien Vallon for the report. 2004-10-24 01:13 Gregory John Casamento * Palettes/0Menus/GNUmakefile.preamble * Palettes/1Windows/GNUmakefile.preamble * Palettes/2Controls/GNUmakefile.preamble * Palettes/3Containers/GNUmakefile.preamble * Palettes/4Data/GNUmakefile.preamble: Removed extra slash for compilation under MinGW on win32. 2004-10-23 20:16 Gregory John Casamento * GormLib/GNUmakefile.postamble: Changed the build process a little to be more compatible with MinGW on win32. 2004-10-17 12:51 Gregory John Casamento * GormControlEditor.m: Added necessary methods for dragging of the formatter to the view. * GormInternalViewEditor.m: Changed initWithObject:inDocument: so that the view doesn't attempt to accept an IBFormatterPboardType object from the drag when it shouldn't. * GormViewEditor.m: Made similar changes here. * Palettes/4Data/inspectors.m: Removed hard coded implementations of tables. Added code to blank inspector when the formatter is detached. * Palette/4Data/GormNSDateFormatterInspector.gorm: Updated with new table. * Palette/4Data/GormNSNumberFormatterInspector.gorm: Updated with new table. 2004-10-03 12:51 Gregory John Casamento * GormMatrixEditor.m: Added performDragOperation implementation to allow the drag and drop of sound/images to a matrix cell. * GormPrivate.h: Moved a category which defines a method called on setArchiveByName to this header so it's useful to more than just the editors. * GormViewEditor.m: Removed category declaration. * Palettes/2Controls/GormButtonEditor.m: Removed some old, commented out code. 2004-10-02 13:08 Gregory John Casamento * Resources/GormDocument.gorm: Changed the spacing of the file view so that the text fields don't get cut off. 2004-10-02 01:15 Gregory John Casamento * Palettes/0Menus/GormNSMenu.m: Modified -[GormNSMenu handleNotification:] so that the menu is no longer closed if the window which displays it isn't visible. This prevents the annoying "Ordering invalid window 0" error. 2004-09-27 07:40 Gregory John Casamento * GormFilePrefsManager.m: Bumped version to 0.8.1 (Alpha) * GormInfo.plist: Bumped version to 0.8.1 (Alpha) * Documentation/Gorm.texi: Updated documentation. 2004-09-26 08:16 Gregory John Casamento * Version 0.8.0 2004-09-25 07:21 Gregory John Casamento * GormInfo.plist: Changed version number to 0.8.0 (Alpha) since we are now, more or less, in "pre-release" mode. * GormFilePrefsManager.m: Updated call which sets version. * Palettes/0Menus/GormMenuAttributesInspector.gorm: * Palettes/1Windows/GormNSWindowInspector.gorm: * Palettes/2Controls/ControlsPalette.gorm: * Palettes/2Controls/GormNSBoxInspector.gorm: * Palettes/2Controls/GormNSButtonInspector.gorm: * Palettes/2Controls/GormNSFormInspector.gorm: * Palettes/2Controls/GormNSMatrixInspector.gorm: * Palettes/2Controls/GormNSPopUpButtonInspector.gorm: * Palettes/2Controls/GormNSProgressIndicatorInspector.gorm: * Palettes/2Controls/GormNSStepperInspector.gorm: * Palettes/2Controls/GormNSTextFieldInspector.gorm: * Palettes/3Containers/GormNSBrowserInspector.gorm: * Palettes/3Containers/GormNSTableViewInspector.gorm: * Palettes/3Containers/GormTabViewInspector.gorm: * Palettes/4Data/GormNSComboBoxInspector.gorm: * Palettes/4Data/GormNSDateFormatterInspector.gorm: * Palettes/4Data/GormNSImageViewInspector.gorm: * Palettes/4Data/GormNSNumberFormatterInspector.gorm: * Palettes/4Data/GormNSTextViewInspector.gorm: Modified spacing of the widgets so that text isn't clipped when using Vera font. 2004-09-24 Adam Fedor * GModelDecoder.m ([GormDocument -openGModel:]): Initialize variable. 2004-09-17 18:07 Gregory John Casamento * VersionProfiles.plist: Updated the profile to properly set the version for NSTextFieldCell which has also been updated since the last release. 2004-09-17 00:54 Gregory John Casamento * GormPalettesManager.m: Added code to [GormPalettesManager setCurrentPalette:] to change the title to reflect the name of the palette currently selected. This makes it easier for the developer to navigate the palettes. 2004-09-17 00:54 Gregory John Casamento * Palettes/2Controls/ControlsPalette.gorm: Removed old 14pt. system title widget and added some widgets which are standard sized which use the system defined fonts. * Palettes/2Controls/main.m: Changed the location of the pulldown, since it isn't in the .gorm. 2004-09-12 20:06 Gregory John Casamento * Gorm.m: Made some changes in [Gorm testInterface] and [Gorm endTesting] to change the icon when testing and also to modify the menu and quit titles so that it is obvious to the user that Gorm is in testing mode and has not died. * Images/GormTesting.tiff: Alternate icon used when Gorm is testing. 2004-09-08 22:00 Gregory John Casamento * Gorm.m: Removed main function from Gorm class file. * main.m: Added main function here. 2004-09-07 21:00 Gregory John Casamento * Gorm.m: Removed some old code which measured the startup time for the application. * GormDocument.m: Removed previous temporary fix. * Palettes/3Containers/GormTableViewEditor.m: Correction for recently discovered crash. The problem is located here. I have added a retain which seems to stop the crash, but I need to find a better solution. Also removed some old commented out code. * Palettes/3Containers/inspectors.m: Properly indented some code. 2004-09-06 17:39 Gregory John Casamento * Gorm.m: * GormInspectorsManager.m: * GormInternalViewEditor.m: * GormMatrixEditor.m: * GormViewKnobs.m: * GormWindowEditor.m: Removed some old FIXME comments which were no longer appropriate or which have already been addressed. 2004-09-06 15:30 Gregory John Casamento * GormDocument.m: Temporary fix for crash. Corrects a problem with document deallocation, until I can find a more permanent solution. 2004-09-06 08:52 Gregory John Casamento * ClassInformation.plist: Added missing NSImageCell class description. * Palettes/3Containers/inspectors.m: Corrected issue with getting the class name of the data cell in [GormTableColumnAttributesInspector _getCellClassName]. 2004-09-06 08:38 Gregory John Casamento * ClassInformation.plist: Reformatted to canonical plist. Suggested by Deek/Jeff. * Palettes/3Containers/GormNSTableColumnInspector.gorm: Added title and made the table draw the grid. 2004-09-05 12:17 Gregory John Casamento * Palettes/3Containers/inspectors.m: Added _getCellClassName to GormTableColumnAttribitesInspector to get the cell class for the inspector. Also modified _getValuesFromObject: to call the method and display the cell class name in the table. Modified setValuesFromControl to add the object to the document and assign the correct custom class. 2004-09-05 10:15 Gregory John Casamento * Palettes/3Containers/GormNSTableColumnInspector.gorm: Made changes to allow user to edit the tableColumn dataCell. * Palettes/3Containers/inspectors.m: Added code for the delegate and datasource of the table added to the inspector. Also modified methods _getValuesFromObject and _setValuesFromControl: in GormTableColumnInspector to accommodate changing the dataCell and redisplaying the tableView which the column belongs to. 2004-08-28 16:43 Gregory John Casamento * GormCustomView.m: Modified _bestPossibleSuperClass to return NSView if the class isn't defined or is not an NSView subclass. 2004-08-28 11:00 Gregory John Casamento * Gorm.m: Added calls to [GSClassSwapper setIsInInterfaceBuilder:] to shut off the custom class -> real class morphing when testing. Added implementation for method which changes the static value of the flag as well called setIsInInterfaceBuilder:. * GormDocument.m: Added calls in loadDocument: to [GSClassSwapper setIsInInterfaceBuilder:] to turn off custom class conversion while loading the .gorm document. * GormCustomView.m: Added implementation of a method called _bestPossibleSuperClass to get the best substitute for the custom class specified when testing the interface. This allows the user to see a more accurate picture of what the gui will look like when it's done. 2004-08-25 22:28 Gregory John Casamento * Palettes/1Windows/GormNSWindow.m: Removed canBecomeKeyWindow method. This was returning NO and preventing the method user from setting the font. 2004-08-23 22:28 Gregory John Casamento * GormClassInspector.m: Corrected bug introduced a few days ago. The actions tag in the class inspector wasn't functioning correctly. 2004-08-23 15:06 Gregory John Casamento * Palettes/1Windows/GormNSPanel.[hm]: * Palettes/1Windows/GormNSWindow.[hm]: Changed the name of the styleMask method to _styleMask. Since this serves as a "proxy" of the original value so that it can be edited without effecting the window, it shouldn't have the same name as the method in the parent class anyway. The new window decoration code was calling this method. * Palettes/1Windows/main.m: [GormWindowAttributesInspector _setValuesFromControl:] and [GormWindowAttributesInspector _getValuesFromObject] changed to use new method name. 2004-08-21 00:20 Gregory John Casamento * Palettes/1Windows/GormNSPanel.m: * Palettes/1Windows/GormNSWindow.m: Added code to prevent redundant release and subsequent crash. 2004-08-18 00:20 Gregory John Casamento * GormClassEditor.m: Cleaned up some code. * GormClassInspector.m: Added code in the data source for both the GormActionDataSource and GormOutletDataSource classes in the class inspector to call the method in GormDocument which removes connections when a connections' name changes. Corrects Bug #100026. * GormMenuEditor.m: If a menu item being added to a popup has a submenu, reject it. 2004-08-13 18:30 Gregory John Casamento * Gorm.m: Disabled class parser menu item in [Gorm validateMenuItem:]. * GormClassManager.m: [GormClassManager parseClass:] commented out contents of this method. The class parser needs to be replaced and it shouldn't be used until it's rewritten. 2004-08-12 21:41 Gregory John Casamento * Gorm.m: [Gorm validateMenuItem:] deselect the cut, delete, paste, etc. items for top level objects which cannot be removed. * GormDocument.m: Simplified implementation of [GormDocument isTopLevelObject:] to simply check in the set of top level objects. 2004-08-11 22:41 Gregory John Casamento * GormDocument.[hm]: Added back isTopLevelObject:. 2004-08-11 07:18 Gregory John Casamento * GormDocument.m: Removed the delegate and data source for the outline view. Changed the code in init to use the GormClassEditor as the outline view, instead of instantiating two different classes. I also changed the coded in other areas where "classEditor" was being used. Removed an uneeded method. * GormClassEditor.m: Added the delegate here. Added the initialization code from GormDocument init to the init method here. * GormPrivate.h: Made GormClassEditor into a subclass of GormOutlineView. This ultimately makes the code cleaner as it unifies the view/editor for the class editor. 2004-08-09 17:18 Gregory John Casamento * GormFilePrefsManager.m: The method showIncompatibilities: added call to "center" method on iwindow so that the incompatibilities window shows up in the center of the screen. 2004-08-08 16:46 Gregory John Casamento * Resource/GormDocument.gorm: Made text label lengths a little longer. 2004-08-08 16:33 Gregory John Casamento * Palettes/0Menus/GormNSMenu.m: Changed the code in handleNotification to not call edited object blindly. It now checks to make sure the object responds to the message before calling. 2004-08-08 13:43 Gregory John Casamento * Palettes/1Windows/GormNSWindow.m: Removed some debugging information. 2004-08-08 13:23 Gregory John Casamento * GormDocument.[hm]: Added ivar isDocumentOpened to track when document is opened and closed. The document was being made active while closing and was causing an issue with some of the windows in the document being edited being brought to the front even though the document itself had been deallocated. This is the permanent fix for the previously discovered issue. * Palettes/1Windows/GormNSWindow.m: Added canBecomeKeyWindow which returns NO. The edited window should never be able to become either key or main window within the application. 2004-08-07 06:10 Gregory John Casamento * GormObjectEditor.m: Temporary fix for recently discovered crash. 2004-08-06 07:20 Gregory John Casamento * Palettes/GormMenuEditor.m: Added rightMouseDown: method to effectively ignore when the right mouse button is pressed when over a menu that is being edited. This was causing the problem described in Bug#9827. 2004-08-05 01:36 Gregory John Casamento * Palettes/GormNSMenu.m: Added code in the initWithCoder: method to subscribe to the notification which indicates a selection change. When the notification is recieved, if the menu is owned by a popup the menu is closed. This corrects Bug#9771. 2004-08-04 01:08 Gregory John Casamento * GormPalettesManager.m: -[GormPalettesManager loadPalette:] added code to made sure that the palette view cannot exceed the maximum size. This prevents accidentally causing the issue cited in the previous entry. 2004-08-04 00:52 Gregory John Casamento * GormDocument.m: -[GormDocument setupDefaults:] changed size of the window for a new palette. If it's too big it causes problems with event handling in the palettes. * Palettes/2Controls/GNUmakefile: Added ControlsPalette.gorm * Palettes/2Controls/main.m: Removed much of the code from the ControlsPalette class. It's not needed now that the palette uses a .gorm file. * Palettes/2Controls/ControlsPalette.gorm: New gui for the palette. 2004-08-02 23:00 Gregory John Casamento * GormViewEditor.m: Added stub for initWithCoder just for completeness. * Palettes/2Controls/GormButtonEditor.m: Change references to xDist and yDist to new names from NSCell.h 2004-08-02 08:54 Gregory John Casamento * GormPalettesManager.m: Clarified error message when unable to load palettes. 2004-08-02 00:54 Gregory John Casamento * GormPrefController.m: Center the window the prefs appear in. Changed [GormPrefController awakeFromNib] to center the window. 2004-08-02 00:14 Gregory John Casamento * Palettes/2Controls/inspectors.m: Reversion of previous change. The real problem was that in setObject: the _setValuesFromObject: method was being called unnecessarily. The call has been removed. 2004-08-01 23:17 Gregory John Casamento * GormLib/IBEditors.m: Removed some old comments which are no longer pertinent. Added documentation for all methods. * GormLib/IBObjectAdditions.m: Added documentation for all methods. * GormLib/IBPalette.h: Clarified documentation of one of the methods. * Palettes/0Menus/GormNSMenu.m: Removed some old commented out code. Changed superclass of GormNSMenuWindow to NSPanel. * Palettes/2Controls/inspectors.m: Made the first two lines conditional for NSForm and subclasses. These were causing a bug which was making it difficult to edit button matrices since the title would revert when clicking on on the next button. This corrects issue #9830. 2004-07-27 02:15 Gregory John Casamento * GormLib/IBInspector.m: Change the name of the method called when receiving IBDocumentWillCloseNotification to _releaseObject: instead of handleNotification:. This prevents confusion as some of the subclasses define handleNotification for other purposes. * GormDocument.m: Modified the code in instantiateObject so that NSView itself can be instantiated. 2004-07-27 02:15 Gregory John Casamento * Gorm.m: Cleaned up some commented out code. * GormDocument.m: Added code in [GormDocument instantiateClass] to add the appropriate information to the document when an NSView subclass is instantiated in the classes view. This is for "standalone view" support. Some additional cleanup. * GormGenericEditor.m: The editor wasn't calling [GormDocument editor:didCloseForObject:] as it should when the editor is closed. Added implementation for isOpened to give any subeditors the correct response when the editor is opened. * GormInternalViewEditor.m: Added code to show the appropriate image when we have a standalone view in the document. * GormPrivate.h: Added declaration for isOpened to GormGenericEditor class declaration. * GormViewEditor.h: Added ivar for GormViewWindow. * GormViewEditor.m: Added code in activate, deactivate, and resetObject to properly show the standalone view. This allows the user to see and edit the view. * GormViewWindow.[hm]: completed implementation of this class for use by the GormViewEditor. * GormLib/IBEditors.h: Properly documented resetObject. * GormLib/IBInspector.m: Added code which releases objects held by the inspector after the document has been released. This prevents problems with old objects being retained in memory by the inspectors until another object is selected. * Palettes/0Menu/GormNSMenu.m: corrected a crash caused by a recent change. * Palettes/3Containers/GormNSOutlineView.m: Added allocSubstitute method. * Palettes/3Containers/GormNSTableView.m: Added allocSubstitute method. 2004-07-20 20:04 Gregory John Casamento * GormDocument.m: Leak fixes and general clean up. * GormGenericEditor.m: Same. * GormImageEditor.m: Same. * GormViewEditor.h: Same. * GormWindowEditor.m: Same. * Palettes/0Menus/GormMenuEditor.m: Same. * Palettes/0Menus/GormNSMenu.m: Same. * Palettes/1Windows/GormNSPanel.h: Added new method so that the window setting "is released when closed" is saved, but doesn't effect the window displayed in Gorm. This presents some tricky memory management problems. * Palettes/1Windows/GormNSPanel.m: Same. * Palettes/1Windows/GormNSWindow.h: Same. * Palettes/1Windows/GormNSWindow.m: Same. * Palettes/1Windows/main.m: Added code necessary in the inspector to use the new method. 2004-07-17 17:54 Gregory John Casamento * GormFilePrefsManager.m: Removed reference to math.h and values.h in includes. They were there temporarily for something which I ended up not doing anyway. Causing compilation problem on FreeBSD. 2004-07-15 21:43 Gregory John Casamento * Gorm.m: Added a check in applicationDidFinishLaunching: to make certain the user is using the right version of GNUstep by checking for a recent signature change in GSNibContainer. * ClassInformation.plist: Added redo: and undo: to the list of methods on the first responder. * GormFilePrefsManager.m: Changed a lot of the NSLogs to NSDebugLog. 2004-07-12 23:08 Gregory John Casamento * GormImageEditor.m: [GormImageEditor initWithObject:inDocument:] added call to [GormPalettesManager importedImages] to return the images imported by any custom palettes. * GormSoundEditor.m: [GormSoundEditor initWithObject:inDocument:] added call to [GormPalettesManager importedSounds] to return the sounds imported by any custom palettes. * GormPalettesManager.m: Changed the return of [GormPalettesManager importClasses:withDictionary:], added [GormPalettesManager importImages:withBundle:], [GormPalettesManager importSounds:withBundle:], [GormPalettesManager importedImages], and [GormPalettesManager importedImages]. These methods are used to get the images and sounds from a palette so that they can be used from Gorm by the user. * GormPalettesManager.h: Added banner. 2004-07-11 23:40 Gregory John Casamento * GormDocument.m: saveGormDocument.m: Changes to prevent a new gorm from being saved twice. This was an innocuous problem as it would simply overwrite the same .gorm with itself. Added code to set isOlderArchive in loadDocument: method. Added code to call [GormFilePrefsManager setClassVersions] and [GormFilePrefsManager restoreClassVersions] in beginArchiving and endArchiving respectively to set and reset the versions of classes which need to be used for each .gorm file version to be saved. Updated changeView: method to switch to the filePrefsView when clicking on the button. Added code to the toolbar delegate to add the "File" button to the document toolbar. Added code to loadDocument to load the data.info file if it's present, if not we simply use the defaults. * GormDocument.h: Added new ivars for isOlderArchive, filePrefsView, and filePrefsManager. * GormFilePrefsManager.[hm]: New files. * GormPalettesPref.[hm]: New files. * GormPrefsPalette.gorm: new interface for palette loading. * GormDocument.gorm: Updated with new window to view incompatibilities and controller for new "file" document button. * GormPreferences.gorm: Addition of palettes in pulldown. * GormClassManager.[hm]: Added - (BOOL) addClassNamed: (NSString*)class_name withSuperClassNamed: (NSString*)super_class_name withActions: (NSArray*)_actions withOutlets: (NSArray*)_outlets isCustom: (BOOL) isCustom; So that classes can be added with out adding them to the custom list. Added logic in "init" to get the list of classes imported by the palettes manager and add them into the master list of classes. This allows the user to work with the classes added by the palette. * GormFunctions.[hm]: appVersion function to calculate a useful value which can be used to compare against easily when reading. This will allow gorm to tell if this file was created with an older or newer version of Gorm.app and take appropriate action. * GormObjectEditor.m: Added capability to place non-UI instances in the objects view directly. This will allow the user to place arbitrary non-ui objects in a Gorm file. It will be useful for adding DB objects or other things which a .gorm file might need. * GormPalettesManager.[hm]: Added [GormPalettesManager importedClasses] and [GormPalettesManager importClasses:withDictionary:] adds the classes from the list in the palette.table. * GormLib/IBPalette.h: Changed name of ivar. This ivar wasn't properly named. It should have been originalWindow. This issue was causing the .gorm load to not make a needed connection. * GormLib/IBPalette.m: Change to read palette.table as a property list instead of strings file format. This was needed to facilitate the reading of all of the classes, sounds and images a palette might import. Also modified to correctly load the nib file. * Palettes/0Menus/main.m: Corrected window to originalWindow as detailed above. It was referred to in a few places by the old name. * Palettes/1Windows/main.m: same. * Palettes/2Controls/main.m: same. * Palettes/3Containers/main.m: same. * Palettes/4Data/main.m: same. * Palettes/2Controls/inspectors.m: Change to clarify the autoenable switch on pulldown buttons. * Palettes/2Controls/GormNSPopUpButtonInspector.gorm: Corresponding .gorm file change for the above. Added new outlet and made new connection. 2004-07-09 16:24 Gregory John Casamento * Palettes/3Containers/GormNSTableViewInspector.gorm: Missing connection to ok: from the tag form was causing the table not to save the value. 2004-06-30 20:14 Gregory John Casamento * GormDocument.m: Added "Compatibility Warning" alert panel to [GormDocument saveGormDocument:]. If the user loads a version 0 file and saves it will give a warning telling the user that the new version isn't compatible with older releases of GNUstep. * GormDocument.h: Added ivar to keep track of whether we are going to upgrade the version of the .gorm file or not. 2004-06-30 01:45 Gregory John Casamento * GormDocument.m: [GormDocument loadDocument:] the application was not picking up subclasses of GSNibItem (GormObjectProxy) properly from version 0 files. I needed to add a loop which iterates through the objects, since the GormObjectProxy doesn't call the super class's initWithCoder: method. 2004-06-28 23:14 Gregory John Casamento * Gorm.m: -[Gorm testInterface:] changed awakeWithContext: call to use new signature. * GormDocument.m: [GormDocument rebuildObjToNameMapping] added logic to add all of the objects in the topLevelObjects set to the objects view. Modified [GormDocument attachObject:toParent:] so that any top level object which is attached, such as a window, the main, menu, or a controller is automatically added to the topLevelObjects set. Modified [GormDocument loadDocument:] so that the topLevelObjects set is properly merged into the current document's data structures. [GormDocument setupDefaults:] removed explicit call to [GormDocument setName:forObject:] since the attachObject:toParent: method automatically makes the new menu in a .gorm which doesn't have any menus the main menu and adds it to the topLevelItems array. * GormPalettesManager.m: Removed some of the palette prefs code for now so I could concentrate on the version update. * GormSoundView.m: Commented out currently unused function. * Resources/Gorm.gorm: Updated to a version 1 gorm file. This prevent someone from running the new Gorm with the old gnustep which doesn't contain the recent changes. 2004-06-27 08:45 Gregory John Casamento * Gorm.m: -[Gorm testInterface:] removed NSWindowsMenu and NSServicesMenu from the nameTable of the .gorm being tested. This prevents an exception because of problems re-setting these on the fly. * GormPalettesManager.m: The beginnings of getting the palettes from a default rather than being hardcoded. This allows greater flexibility in adding custom palettes to Gorm later on. 2004-06-26 18:10 Gregory John Casamento * GormPalettesManager.m: Removed line in -init which observes IBDidDeleteConnectionNotification in GormConnectionInspector. It was causing a number of bugs since it could potentially modify the connection prior to adding it to the connections list. Added method _selectAction: which is used to select the action without going through all of the other code in _internalCall:. * GormDocument.m: Added code in NSNibConnector category to let isEqual immediately return true if the object and self are precisely the same object. * GormClassInspector.m: Added code to change the color of the textfield to grey if the class isn't editable and to white if the class name is editable. 2004-06-26 08:25 Gregory John Casamento * GormPalettesManager.m: There was problem which crops up when the user has many connections to the same object both action/outlet in the same list. When disconnecting it the inspector, because of a memory leak, was deleting the outlet & the action following it. This was happening inconsistently and would cause a blank line to appear in the connections inspector when the user would click on the object. This was reported as Bug #9461. 2004-06-25 01:33 Gregory John Casamento * GormDocument.m: [GormDocument(GormOutlineDataSource) outlineView:setObjectValue:forTableColumn:byItem:] added code to ignore the value which comes if it is nil. This corrects a recent problem caused by a "fix" in gui's NSTableView. * GormClassInspector.m: Changes to allow the user to change the class name when it's a custom class that's being edited. * GormClassInspector.gorm: Changes to facilitate the above modification. 2004-06-24 01:33 Gregory John Casamento * Gorm.m: [Gorm close:] the window is already released when the document is released and the code had an "setReleasedWhenClosed" which was call which was causing an extra release and subsequently a core dump when selecting the "Close" item from the document menu. 2004-06-24 01:33 Gregory John Casamento * GormDocument.m: Additions to [GormDocument attachObject: withParent:], [GormDocument loadDocument:], [GormDocument setupDefaults:] to move the main menu appropriately when it is either added to the documnent, loaded, or added when the user selects the "Application" type from the New menu. This helps alleviate confusion when editing the menu. 2004-06-22 23:33 Gregory John Casamento * GormDocument.m: A fix in -[GormDocument pasteType: fromPasteboard: parent:] to retain objects unarchived from the pasteboard to prevent a recently discovered segfault. 2004-06-21 23:33 Gregory John Casamento * GModelDecoder.m: Added code to openGModel: to more automatically detect what actions should be added to FirstResponder. This facilitates importing the .gmodel without even needing the header file. All of the information necessary to convert the interface can be gleaned from the .gmodel information. 2004-06-18 23:40 Gregory John Casamento * Version 0.7.7 2004-06-15 01:28 Gregory John Casamento * GormPalettesManager.m: [GormPalettesManager mouseDown:] a call to convertRect:toView: was added to correctly translate the view being dragged in all cases. This will show no real benefit until Alex M. adds the window decoration patches. 2004-06-10 01:28 Gregory John Casamento * Gorm.m: [Gorm testInterface] added code in the exception handler to show an alert panel when an exception occurs along with a warning (and the actual exception, of course). This allows users to see what the issue was when trying to test the interface. 2004-06-07 23:59 Gregory John Casamento * GormInspectorsManager.m: [GormConnectionInspector setObject:] corrected code to call "isConnecting" before blindly causing the inspector to show the connection on the selected object. This was interfering with the user making connections in some cases. 2004-06-06 21:57 Gregory John Casamento * Palettes/3Containers/GormNSOutlineView.h: added ivar _savedColor. This is used to save the color during selection. * Palettes/3Containers/GormNSTableView.h: same as above. * Palettes/3Containers/GormNSTableView.m: implemented select and unselect methods to allow the color to be saved when the object is selected. * Palettes/3Containers/GormNSOutlineView.m: same as above. 2004-06-06 08:39 Gregory John Casamento * GormImageEditor.m: Corrected comments. 2004-06-04 23:53 Gregory John Casamento * GormImageEditor.m: Added some code to correct a problem found by Riccardo Mattolla and Sungjin Chun. The code is as suggested by Sujin, to return when the superview is not available. * GormSoundEditor.m: same as above. NOTE: This was due to a recent change to load all images for easy access by the user. Apparently, Linux is a little more forgiving that some other OSes. :) 2004-06-03 00:43 Gregory John Casamento * GormDocument.h: Added "lastEditor" ivar to hold the last editor selected by the document. * GormDocument.m: In [GormDocument setDocumentActive:] used lastEditor to reset the selection to the current one for the document selected. This causes the inspector to switch to the appropriate inspector for the object currently being edited in that document. 2004-06-03 00:43 Gregory John Casamento * Gorm.m: Removed code in the testInterface: method to allow NSBrowser, NSTableView, and NSOutlineView display correctly in testing mode. * GormDocument.m: Moved the code in loadDocument: into a NS_DURING block to catch any exceptions thrown during loading of a .gorm file. This will facilitate recovery of the application when a problem is encountered while loading the file and will allow the user to continue using the application despite the issue. 2004-05-30 22:37 Gregory John Casamento * GormDocument.m: [GormFirstResponder connectInspectorClassName] made it return the "not applicable" inspector instead of the connections inspector for this. The FirstResponder shouldn't be able to make outlet connections. 2004-05-29 23:10 Gregory John Casamento * GormInspectorsManager.m: [GormConnectionsInspector _internalCall:] The search for an existing control connection was leaving the con variable set to a outlet connection (occasionally) which caused later logic to not properly set the action list and prevented the user from selecting an action. 2004-05-29 23:10 Gregory John Casamento * Gorm.m: [Gorm testInterface:] removed conditional. The services menu is always set to nil when testing. [Gorm endTesting:] added a NS_DURING block to catch any issues with resetting the services menu. This prevents Gorm from crashing, if there's a problem. Since the menu is set to nil and then reset there shouldn't be an issue. 2004-05-29 16:00 Gregory John Casamento * GormDocument.m: [GormDocument attachObject:] added code to automatically mark a menu being attached as the windows/services menu if it has the appropriate title. Also changed [GormDocument detachObject:] added code to remove the menu as the services/windows menu if it's detached from the document. 2004-05-29 08:56 Gregory John Casamento * Palettes/2Controls/main.m: Had some DOS formatted lines. Simply converted to UNIX format. * Palettes/3Containers/main.m: Changed the default border type for both NSTableView and NSOutlineView to NSBezelBorder in -finishInstantiate. * Palettes/4Data/main.m: Changed the default border type for the NSTextView to NSBezelBorder in -finishInstantiate. 2004-05-29 07:30 Gregory John Casamento * Palettes/4Data/GormNSComboBoxInspector.gorm: Improved the layout a little. 2004-05-28 21:48 Gregory John Casamento * GormClassManager.m: Corrected a problem the the renameClassNamed: newName: method. It was releasing the classInformation and causing a crash. 2004-05-25 07:01 Gregory John Casamento * Gorm.m: [Gorm testInterface:] added code to save the services menu and set the current one to nil, if one is not defined in the .gorm file. This prevents the annoying "Services Menu not in main menu" warning. * GormPrivate.h: Added servicesMenu ivar. 2004-05-24 10:22 Gregory John Casamento * GormDocument.m: [GormDocument awakeFromNib] added call to [NSToolbar setUsesStandardBackgroundColor:] to make the background light-grey instead of clear. 2004-05-22 12:31 Gregory John Casamento * Gorm.m: [Gorm validateMenuItem:] removed code which greys out the add/remove for first responder. This was preventing people from adding in the classes view. 2004-05-21 07:20 Gregory John Casamento * Gorm.m: Removed the infoPanel method. * GormInfo.plist: Added all of the information to this file to produce an identical info panel as before. * Gorm.gorm: Changed info menu so that "orderFrontStandardInfoPanel:" is called. 2004-05-19 07:20 Gregory John Casamento * GormDocument.gorm: Added. This replaces much of the code which was once in [GormDocument init]. * Gorm.m: Missing definition for GormLinkPboardType added. * GormDocument.h: Removed selectionView, added toolbar. * GormDocument.m: Added include for NSNibLoading and NSToolbar and removed some of the old rect declarations for creating the GUI. Portions of this will stay hard-coded, since the editors all need to be initialized with the document. Moved some of the initialization around. Added awakeFromNib method to load the toolbar and the toolbar delegate methods. 2004-05-18 07:20 Gregory John Casamento * GModelDecoder.m: Changed reference to the class loader. * Gorm.m: Added code to inactivate menu items when a class isn't selected. Moved some code to decide what is instantiable to the GormClassManager. * GormDocument.m: Moved the parseHeader: method to GormClassManager where it belongs. All methods dealing with loading classes into Gorm or creating class files from data within the application belong in GormClassManager. Changed references to the call where appropriate in the code. Added document as observer when a class is added. This is to help factilitate the move of the parseHeader method. Moved the init method near the top of the file. * GormClassManager.m: added parseHeader method to process headers into data usable by Gorm. Added an instance variable to cache the document when a class manager is instantiated. The class manager needs to communicate with the document it belongs to frequently. * GormSoundInspector.m: Backed out previous change. * GormSoundInspector.h: Removed _currentSound ivar. 2004-05-16 07:20 Gregory John Casamento * Gorm.m: in testInterface: bring the temporary menu to the front. There has been an issue with it sometimes not displaying. In endTesting bring the normal menu to the front. In unhide, bring the menu to the front. * GormLib/IBPalette.[hm]: Added paletteDocument method as per specs. Currently this method will return nil unless the ivar is set to something conforming to IBDocuments. 2004-05-16 07:20 Gregory John Casamento * GormSoundEditor.m: Added methods to GormSound class to show the "not applicable" inspector on all options but the attributes inspector. * GormImageEditor.m: same as above for GormImage. * GormInspectorsManager.m: Added code to show "Sound Inspector" or "Image Inspector" when appropriate for either GormSound or GormImage respectively. 2004-05-15 23:14 Gregory John Casamento * GormImageInspector.gorm: Repositioned fields. 2004-05-15 16:19 Gregory John Casamento * GormDocument.m: [GormDocument init] changed initialization of scrollviews to allow horizontal scroller to be used. * GormImageInspector.gorm: resized some of the fields which were too short. 2004-05-15 12:42 Gregory John Casamento * GormFunctions.[hm]: added function to get all system sounds. NOTE: Current there aren't any, but why wait? I'm assuming that they'll go into $GNUSTEP_SYSTEM_ROOT/Library/Sounds. * GormSoundEditor.m: Added call to add all system sounds to the editor. 2004-05-15 11:14 Gregory John Casamento * Gorm.m: Add call to [GormDocument closeAllEditors] to avoid a crash when the user attempts to open a document, then cancels. The document wasn't properly released. * GormDocument.h: Removed the images and sounds arrays. This information is kept in the editor and these arrays are redundant. Also exposed the closeAllEditors method. * GormDocument.m: Removed references to the images and sounds array. Changed load/save logic to use the list from the editors themselves. * GormFunctions.[hm]: Added function to retrieve the names of the images from the system directory named systemImagesList(). * GormImageEditor.m: Modified to call the new function and add the images to the editor when it is first instantiated. * GormPrivate.h: Added objects method to GormGenericEditor's interface. * GormSoundInspector.h: Changed _currentSound to id. * GormSoundInspector.m: Uses _currentSound to make certain that the same GormSound object isn't reinspected, thus wasting time loading it over and over. 2004-05-14 22:11 Gregory John Casamento * GormDocument.m: [GormDocument _closeAllEditors] mocified to use secondary array. The close method causes the editor to call editor:didCloseForObject: which modifies the openEditors array while the "close" message is being sent to all of the objects. To avoid any issues with the array potentially being changed while this is happening I add all of the objects to another array execute the method on all objects of that and empty both the original and the copy. * GormSoundInspector.m: Corrected an issue where the sound wasn't immediately being set into the inspector. 2004-05-14 17:46 Gregory John Casamento * GormButtonEditor.[hm]: Moved to the Controls palette, removed from the main directory. In general, inspectors and editors should appear in the palette which provides those things. * GormTabViewEditor.[hm]: Moved to Containers palette. 2004-05-14 11:36 Gregory John Casamento * GormButtonEditor.m: Added a line between some methods to improve readability. * GormDocument.m: [GormDocument instantiateClass:] removed extra release for an object being added to the objectsView which is already autoreleased (in setName:forObject:). * GormInspectorsManager.m: [GormNotApplicableInspector setObject:] method removed. This was a temporary hack until the memory leak was located. 2004-05-14 02:39 Gregory John Casamento * GormClassManager.m: Moved the call to _touch to the bottom of all of the methods. This should be called only after all changes have been made to the class. * GormImageInspector.m: setObject: wasn't calling [super setObject:] * GormInspectorsManager.m: [GormNotApplicableInspector setObject:] added code to prevent crash. * GormObjectEditor.m: Removed some commented-out code. * GormSoundInspector.m: Added code to set the _currentSound to nil if the selection sent is empty. * GormPreferences.gorm: Added line. 2004-05-13 18:47 Gregory John Casamento * Gorm.m: Removed some commented out code. Removed commented out RELEASE statements, now that AUTORELEASE is used. * GormDocument.m: [GormDocument dealloc] added openEditors to the set of things released. [GormDocument editorForObject:create:] when a new editor is created, add it to the master list of editors. This makes it easier to send the close message to all of the editors upon shutdown. [GormDocument editor:dicCloseForObject:] removes the editor from the list of editors. [GormDocument _closeAllEditors] closes all of the editors in the document using the new list. * GormDocument.h: Added member variable openEditors. * Palettes/GormMenuEditor.m: Added category to allow testing when a menu is visible so that we can avoid sending the close message to it. This prevents the harmless message "Invalidparm: ordered invalid window 0" from appearing when the document is being closed. 2004-05-13 01:03 Gregory John Casamento NOTE: These changes might unstabilize things a bit. * Gorm.m: The document is now autoreleased when it is instantiated. This change was made in [Gorm application:openFile:],[Gorm open:], [Gorm newGormDocument:]. * GormDocument.m: Addition of a method called [GormDocument _closeAllEditors] this closes all of the editors from the handleNotification method before the any objects are ultimately released. Removal of old, commented out GormFontManager implementation. Streamlined the dealloc method to make certain everything is released. Also changed the window in the init method so that it doesn't release itself when it's closed by the user. This allows for a more controlled shutdown. * GormDocument.h: Minor code cleanup. * GormGenericEditor.[hm]: Added activate, closed ivars. Also added code in close and activate to make use of them. Added code in dealloc to call [GormGenericEditor close] if there the flag indicates the editor is open. Also moved some common, trivial, operations to the parent class implementation of initWithObject:inDocument:. * GormObjectEditor.m: Added code in close to remove the document from the map. This eliminates a crash which was occurring. * GormSoundEditor.m: Same. * GormImageEditor.m: Same. * GormViewEditor.m: Re-arranged the initWithObject:inDocument:. * GormWindowEditor.m: Same. * GormMenuEditor.m: Same. 2004-05-10 21:45 Gregory John Casamento * GormDocument.m: [GormDocument handleNotification:] was failing to remove the document as an observer in the notification center. This was causing the old document to be retained and was, also causing "Test Interface" to fail randomly because the notifcation cetner was still attempting to reach the old document. 2004-05-10 11:58 Gregory John Casamento * Gorm.m: Update version to 0.7.7 (Alpha) to avoid confusion between users using the release and users using CVS. 2004-05-10 09:55 Gregory John Casamento * Version 0.7.6 2004-05-10 09:08 Gregory John Casamento * GormDocument.m: Corrected an issue when creating an "Inspector" or "Palette" in [GormDocument setupDefaults:]. The method was creating an NSWindow which doesn't respond to one of the methods the inspector needs it to. * GormSetName.gorm: Reduced the line to 2 pixels high to make it look a little better. 2004-05-09 10:16 Gregory John Casamento * GModelDecoder.m: defineClass:inFile: changed signature to take the object and get the classname from it. This allows a call to add the class under an assumed superclass, if the user says no to the query. Also in loadGModel: added code to pull the outlet/action from the connections and add them to the class if they are not present on the imported header. This also allows, in the above case, for Gorm to automatically get all outlets/actions from the gmodel. 2004-05-08 08:53 Gregory John Casamento * GormDocument.m: [GormDocument loadDocument:] added code to prevent users from invoking "open objects.gorm" or opening "objects.gorm" directly when in GWorkspace. This caused Gorm to convert the objects.gorm file as if it were an old-style file before gorm packages. It now issues a warning. Also added code to [GormDocument openDocument:] to check for a duplicate open of a model which is already opened. This can cause confusion. * Gorm.m: Added a new method [Gorm documentNameIsUnique:] which checks all existing open documents for a duplicate name and returns NO, if it's not unique. * GormPrivate.h: Added declaration of the method mentioned above to the Gorm class interface. 2004-05-08 08:53 Gregory John Casamento * GModelDecoder.m: [GModelDecoder openGModel:] Corrected issue which was causing a crash. * GormDocument.m: Cleaned up a memory leak. Commented/Documented the location / justification for all memory operations. * Gorm.m: same as above. Also added code to [Gorm unhide:] to prevent bringing forward the document window when clicking on the app icon in test mode. 2004-05-06 21:21 Gregory John Casamento * GormDocument.m: [GormDocument selectClass:] do not switch if the class is one of GormSound or GormImage. This prevents a harmless, but annoying message. 2004-05-05 22:18 Gregory John Casamento * Gorm.m: [Gorm unhide:] improvement over previous fix to bring all things to front. The code now toggles the active status of the document to cause all of the windows of the document to come to the front when the icon is clicked. 2004-05-02 18:35 Gregory John Casamento * GormImageEditor.m: Added code to allow it to resize the cells in the matrix according to the setting in preferences. * GormSoundEditor.m: Added code to allow it to resize the cells in the matrix according to the setting in preferences. * GormSoundView.m: Commented out some of the sound drawing code. I'm planning on getting this working later. * GormSoundInspector.gorm: Added images in buttons, rw.tiff, rec.tiff, play.tiff, pause.tiff, and ff.tiff. 2004-05-02 23:40 Gregory John Casamento * GormDocument.m: [GormDocument openEditorForObject:] Do not bring the editor to the front if it's for an NSMenu. This prevents the "flash" bug which was apparent after the most recent fix for menu editing in Gorm. * GormNSMenu.m: Added #ifdef in GormNSMenu to conditionally compile [GormNSMenu display] so that it becomes easier to debug issues with NSMenu editing. 2004-05-01 17:40 Gregory John Casamento * Documentation/Gorm.texi: Correction of itemize bullet, error found by Christopher Culver. 2004-05-01 11:46 Gregory John Casamento * GormSoundView.[hm]: New class to visualize the sound being inspected. * GormSoundInspector.m: Modifications so that it can now use a GormSoundView. * GormSoundInspector.gorm: Added soundView to .gorm file and made appropriate connections. 2004-05-01 11:18 Gregory John Casamento * GormClassInspector.m: Corrected a problem with the wrong name being sent to the class manager. This was causing an error to be printed by the class manager. This problem had no effect, but was annoying. 2004-05-01 09:44 Gregory John Casamento * Gorm.m: Added implementation for unhide: to bring forward the document window as well as any other windows. This corrects Report #3269. 2004-05-01 09:03 Gregory John Casamento * GormNSMenu.m: [GormNSMenu _createWindow] added call to setExcludedFromWindowsMenu: to make certain that the menu windows are not displayed in the Windows menu under Gorm's main menu. 2004-05-01 07:10 Gregory John Casamento * GormClassManager.m: Removed some NSLog messages. 2004-04-30 20:04 Gregory John Casamento * Gorm.m: Removed code which calls "awakeFromDocument:" on objects loaded in palettes. * GormDocument.m: [GormDocument loadGormDocument:] added back code which calls awakeFromDocument:. Also in [GormDocument setDocumentActive:] removed code which was causing all menus to display instead of just the main menu when loading a .gorm. * GormMenuEditor.m: [GormMenuEditor activate] removed code which was causing all submenus to be displayed when the editor for a menu was activated. * GormMenuInspectors.m: Removed awakeFromDocument: method. * GormNSMenu.m: Commented out some old code. 2004-04-30 19:15 Gregory John Casamento * GormDocument.m: Modified _repairFile so that it works. :) * Gorm.gorm: Removed some extraneous menu items/submenus. 2004-04-27 22:15 Gregory John Casamento * Palettes/0Menus/GormMenuEditor.m: [GormMenuEditor deleteSelection] added code to re-display and resize after an item is deleted. This corrects the problem where the menu item doesn't immediately disappear from the screen when deleted. 2004-04-27 21:50 Gregory John Casamento * GormClassInspector.m: Added code to properly collapse the item if the class is being edited in the class inspector. * GormClassManager.m: some improvements on the previous fix. 2004-04-27 01:28 Gregory John Casamento * GormClassManager.m: Modified [GormClassManager addAction:forClassNamed:], [GormClassManager addOutlet:forClassNamed:], [GormClassManager removeAction:fromClassNamed:], [GormClassManager removeOutlet:fromClassNamed:], [GormClassManager replaceAction:withAction:forClassNamed:], [GormClassManager replaceOutlet:withOutlet:forClassNamed:], to allow synchronization in the class list. When a outlet/action is added/removed/replaced the subclasses of that action stay in sync. 2004-04-26 01:04 Gregory John Casamento * GormClassInspector.m: Modifications to addAction: removeAction: addOutlet: & removeOutlet to syncronize with the classes outline view. * GormDocument.[hm]: exposed selectClass: method. * GormOutlineView.[hm]: Simplified some code and added a method called "reset" which stops the editing process on a class. 2004-04-25 23:24 Gregory John Casamento * GormClassInspector.m: removeOutlet: and removeAction: check for i >= 0 to allow deletion of last element. This was an issue introduced in the previous commit. Also made the tables deselect the previous selection so that it would allow deselection of all rows. * GormClassInspector.gorm: Made both tables capable of having an empty selection. This corrected an issue with deleting the last element. * GormDocument.m: Added back, in handleNotification:, handling of GormDidModifyClassNotification. Previously this was removed since there were no other places where the classes were being modified. This is no longer the case. 2004-04-25 06:34 Gregory John Casamento * GormClassInspector.m: removeOutlet: and removeAction: check for i > 0 to prevent and out of range exception if nothing is selected. 2004-04-18 08:30 Gregory John Casamento * GormPrefsController.m: Added dealloc to prevent any memory leaks. 2004-04-17 23:55 Gregory John Casamento * Resources/GormPrefColors.gorm: New gorm file for color preferences. * GormColorsPref.[hm]: new class to implement color preferences. * GormViewEditor.m: Added code to allow the color of guidelines to be changed in preferences. * Defaults.plist: Added entry for GuideColor. The default is red. 2004-04-17 13:11 Gregory John Casamento * Palettes/3Containers/inspectors.m: Added code to the GormTableViewInspector update the background color when the user changes it in the inspector. * Palettes/3Containers/GormNSTableViewInspector.gorm: added color well to allow changing of the background color. 2004-04-17 12:52 Gregory John Casamento * GormObjectEditor.m: [GormObjectEditor mouseDown:] check that "name" is not nil before proceeding into the code to do the drag & drop. This was causing an exception. 2004-04-17 10:58 Gregory John Casamento * Palettes/3Containers/GormNSOutlineView.m: Changed some of the default data source's elements to be closer to the actual class hierarchy. * Palettes/3Containers/inspectors.m: Added code to the GormTableViewInspector to add or delete columns based on the new field which specifies the number of columns in the table/outline. * Palettes/3Containers/main.m: removed some old code and added code to expand the outline view so it looks better in the palette. * Palettes/3Containers/GormNSTableViewInspector.gorm: added "#Columns" field to allow the user to modify the columns in the table without cutting/pasting. 2004-04-13 20:57 Gregory John Casamento * Version 0.7.5 2004-04-11 21:26 Gregory John Casamento * GormBoxEditor.m: Cleaned up warnings. * GormImageEditor.m: same.. * GormInternalViewEditor.m: same.. * GormTabViewEditor.m: same.. * GormViewEditor.m: same.. * GormViewWithContentViewEditor.m: same.. * Palettes/0Menus/main.m: same.. * Palettes/3Containers/GormTableViewEditor.m: same.. * Palettes/3Containers/inspectors.m: same.. * Palettes/4Data/inspectors.m: same.. * Palettes/4Data/main.m: same.. * GormViewKnobs.m: Added reference to new header... * GormViewKnobs.h: New header which declares the knob related functions. 2004-04-06 20:16 Gregory John Casamento * GormClassManager.m: Correction to how actions are added to FirstResponder. Previously it was adding *all* actions to this entry, but it shouldn't do this. It now adds only those methods added to subclasses of NSResponder. 2004-04-06 00:16 Gregory John Casamento * Palettes/2Controls/inspectors.m: added defaultItemForm attribute. Added code in [GormPopUpButtonAttributesInspector _setValuesFromControl:] to select the appropriate item, when the value is changed in the inspector. * Palettes/2Controls/GormNSPopUpButtonInspector.gorm: corresponding changes to above code modifications. 2004-04-05 00:06 Gregory John Casamento * GormDocument.m: [GormDocument rebuildObjToNameMapping] some additional debugging information. Also in [GormDocument loadDocument:] unarchiver is now explicitly using RELEASE instead of AUTORELEASE. 2004-04-04 22:09 Gregory John Casamento * GormDocument.m: [GormDocument rebuildObjToNameMapping] use [[********* ******** ***************** ******* ** ************** ********* **** *********** ********** ***** ******* **** ********* ************************** * ************************ ********* **** ******** *** *********** *** *********************** **** ***** **** ** ********************** ************** ** **** *** *** **** ****** **** *** ********** ***** * ***** **** * ******************* ********* **** ********* ********** ***** ******* **** ********* ************************** * ******************* ********* * ******* **** ******** * ***** ** ***************** ****************************** *** ****** ********** ** *** ***** ***** **** ** ***** ******* **** ** ******** ** **** ***** ********** **** *** ** *** *** ***** * ***************** *** *** ****** **** ** *** *** **** **** ** ******* *** **** **** ** *** ******* **** *** ** *** ***** * *************** ********* ** ***** **** ********* ** *** ******* ***** ***** **** **** **** ******* ** ******* **** ******** ********* * ************************* *** ******* ****** ** *** **** ********** ** *** ** *** *** ******** ******** ** **** ***** **** ** **** *** **** **** ***** ***** **** ********* * ****** ***** * **************************** *********************** ************* **** ****** *** **** ** ** ******** ** ******** * ********************** **** ** ****** ****** ***** ******** ***** ** * ******* ***** *** ******* ***** ****** **** *** ******* ** *** ****** *** *** ************** ** *********** ********** ***** ******* **** ********* ************************** * ********************** **************** ********************* *********** ***** **** ** ******* *** ******* **** ***** *** **** ** ***** **** ** * ********* ********* *** *** ***** ** *** *** ******** ********** ***** ******* **** ********* ************************** * ************************** ***** ******* ***** ******** **** **** ***** ******* **** * ***** * ****************** ******* ** ********* ** ***** **************** ****** **** **** **************** ***** ****** ********** ***** ******* **** ********* ************************** * *************** ************* *********************** ******* ** ******* ****** * *** ***** ** *** **** **** *** **** ******** * ********************** **************** ********************* *********** ***** **** ** ***** ******* ** ***** ** * ******* ******* ** ******** ********** ***** ******* **** ********* ************************** * ********************************* ***** **** ** ********** *** *** ** *** ***** *** ******** ** *** ********* * *********************** ***** **** ** ***** **** ** **** * *** **** ** *** ********* * ********************************** ***** *** **** ** **** * ********************* *** ****** ********** ***** ******* **** ********* ************************** * ****************** ***** ************* ************************ ****** ** ****** *** **** ******* **** ********* ********* *** ** ****** ***** ********* ** *** ****** ** *** *** **** ******* ************** ******* *********** *** ********** ** *** *************** ****** ******** ********************** ** ******** ****** **** * **** **** ** ***** ***** ***** ***** *** **** ******** * ****************** ***** ************** ** ************** ** **** * **** ******* ***** ** *** ****** ** * ************* ** **** ********* * ******************* ***** ******** ********** ***** ******* **** ********* ************************** * ****************** ******* **** ******* *** *** ************ ***** **** ** ************* ************** ** ****** *** ********** ********** ********** *** ********** **** *** ***** ******* ********* ***** ******* *** **** ** ********** *** ******** ********** *** ********** * ******************* ******* *** ***** *** ****** ** ** ****** ***** ***** ** ******** ** **** ** ******** ** ****** ** **** ** *** ** ************ * *********************** ******* **** ** *** *********** **** ** **** **** *** **** ******** **** ***** ** *** ********* **** **** ** **** *** *** *** *********** ************** ** ***** ********** ***** ******* **** ********* ************************** * *********************** ******* **** ******* ***** ****** *** **** **** ** *************** * ******* ***** **** ** *** ******* ** *********** * ************** ********** ** **** * **** ******* *** *** **** *** *** * ****** ***** *** *********** ** *** **** ******** ***** *** *** **** ****** **** ****** ***** *** **** ** *********** ** ********* * ***************** ******* ************* *** ********** ********* * **************** ***** *********** *** ********** ********* **** ** **** **** *** ** **** *********** ***** * ******************* ***************** ***************** ***** **** ** ***** *** **** ****** ******** ** *** **** ***** ** **** **** ******* ****** ** ********* ***** **** ** ****** *** ******** ** * ****** **** *** ********* ********** ***** ******* **** ********* ************************** * *************** ************* ************** ***** **** ** ************* ************ ** * ***** ******* ** ***** **** ***** *** **** *** ******* ** ****** ***** ***** ***** ***** **** ******* * ***************** ************************ *********** **** ****** ****** ********** ** *** ****** ****** ** ** * *************** **** *** ******* ** ***** **** ***** **** ****** *********** ******* *** ****** ******* ****** ** ***** * ********************** ***** ******** ********** ***** ******* **** ********* ************************** * ***************************** ******* **** ** *************************** *********** ** *********************** ** ************* **** *** ******* *** ****** ** ** ***** ** ******** ** **** ** **** ** **** ***** ******* ********** ***** ******* **** ********* ************************** * *************************** ***** ** **** ** ********** ** ******* *** ******** ** *** ****** ****** ** ** **** * *************** ***** ******** * ***************** ***** ******** ********** ***** ******* **** ********* ************************** * ***************** **************** ***** ******* *** ********** ** ******** **** **** ** ** **** *** ********* ***** ** ** **** *** ********** *** *** ****** ***** ***** ** ********* **** ** **** ** ** ***** ****** ********** ***** ******* **** ********* ************************** * *************** ************* ******************* ***** **** ** ***** *** **** ** ** ****** ** ** ** ** *** ****** ***** **** ********** ***** ******* **** ********* ************************** * ****************************** ******* ***************** ** ** *** ********* **** *** ******** ***** ********** *** **** *** *********** ** *** ******* *** ** ***** *** **** ****** ** ***** ** *** ****** ***** ** **** ******* ********** ** *** ********* ******* ********** ** ******************* * ********************** ******* *** ***** ****** ****************** *** ******** ** *** **** ** ********** *** *********** ****** **** ********* ** ****** *** **** ** *** ***** *** ***** ********** ** ******** ** **** **** ** * ******* ********* * *************** ******* *** ********** ** ****************** ** *** ************* ******* * ***************** ******* **** ****** ** ********** ** **** *** ********* ** ******* *** *** ****** ***** **** ******* ** *** ******* **** ***** *** ******* * ********************** ***** ********** * *********************** ***** * ************************ ***** * ********************************* ***** ********* ** ************** ** ***************** *** ********************** * *************************** ***** ********** * ************************* ***** ********** ***** ******* **** ********* ************************** * *************************** ************************** *********** ********* ****** ****** ********* *** ******** ******* *** ******** ** *** ****** **** *** ***** ** ********* ******* * ************************ ******* **** ******* ***** ** ********************** ********** ***** ******* **** ********* ************************** * *********************** *********** *** ************* **** ******* ** ******* ***** **** ******* *** ** ********** ********** ***** ******* **** ********* ************************** * *************** *** *** ******* *** ******** ************** ******* ** ************ * ********************* ***** **** *** *** ******* * *************** ****** ******* **** ********** * ************************ **** * ******************* **** * ********************* **** * ********************** **** * ***************************** **** * ******************* **** * ********************************* **** * ************************* **** * ******************************************* **** * ******************************* *** ******* *** ******** *************** **** ********* ******* **** ***** *** ***** ********* ********** ** *** ***** ************ ********** ***** ******* **** ********* ************************** * ***************** ***** ****** ************ * ******************** ***** ***** ******* ** ******** * ******************************************* ******* **** ********* ************ * ********************* ***** ******* *** ******* **** ************ ********** ***** ******* **** ********* ************************** * *************** ************** ******************** ***** **** ** *** ********* **** ** ***** ** *** ******** ** ******* ********** ***** ******* **** ********* ************************** * ********************* ******************** ************* ********* ** ***** **** **** ******* ** ********* ********** ***** ******* **** ********* ************************** * ******************* ***** ********** ***** *** *** *********** ******* * ******************* ***** ********* *** *** *********** ******* ****** ** ****** ******** **** *********** ****** *** **** ** ***** ******* ** **** **** ** ***** *** *********** * ******* *********** *** ************* * ************** ************* *** ************* ********** ***** ******* **** ********* ************************** * ********************* ***** ******** ** ***** ****** ************ ** *** ******* **** **** *** ***** ********** *** *** ****** ** * ****** ************** ********* ************ ******** ******************* ************* ** ****** *** **** **** *** ****** *** **** **** *** **** ******* ** ************* ***** **** ** ******** ** ******* ********* ** * ******** ** *** ******* ****** * *************** ******* ** **** ** *** **** ********** ** ************* ********************* ********** ***** ******* **** ********* ************************** * ********************* ***** *** ************* ** ******* *** *** ***** *** *** ******* ********* ** ****** ****** ********* ** ****** *** **** ** ****** *** ****** ***** ** ** *** ********* ******** ****** **** ** ******* ** ******* ***** ******* * ***** ***** *** *** ******* ******* ** *** **** ****** ****** ** ****** *** ********** ***** *** ********** ***** ******* **** ********* ************************** * ******* ***** ********** ***** ******* **** ********* ************************** * *********************** ***** ****** ** ******** ***** ********* ** ****** ******** *** **************** ****** *** ******* **** *** **** ** ******* *** **** ****** ********** ***** ******* **** ********* ************************** * *************** ************** *********************** ***** **** ** ***** *** ************* ** ** ****** ***** **** ********** *** **** ***** ** *** *********** ***** ***** *** *********** *** ******** **** *** ***** ** ******* **** ******** *** ************* **** ***** ********* **** **** *** ***** ** *** **** ******* * ********************************* ***** ************************** ************** ** ****** *** ********** ** **** ********** ********** ***** ******* **** ********* ************************** * *************** ************** *********************** ***** **** ** ******* **** ******* **** ***** ******** **** ******** ** **** ****** ********** ***** ******* **** ********* ************************** * ********************************* **************** ********* ******* **** ** ******** ********* **** ******** ************ ********** ***** ******* **** ********* ************************** * ******************* ******** *** **** ****** ********* **** **** ***** ********** ***** ******* **** ********* ************************** * ************************* ***** **** ** *********************** ** ****** *** **** **** *** ******** ** ************ * ********************** **** ** ****** * ***************** ***** ******* ** ****** **** **** ****** *** ****** **** ******** ** ******* ** ***** ********* ** *** ******* * *********************** **** ** ****** **** ***** **** ** ****** ******* ** ****** **** **** *** ****** ***** * ******************************** ******* **** ***** **** *** ***** **** ** *************************** ** *** *** **** ****** ** ***** ** **** *** **** ********* ********** ***** ******* **** ********* ************************** * ************************* ****** ** ****** ********** ** ********* ** ********* ************* ** *********** ********** ***** ******* **** ********* ************************** * ******************************** ******* *** ******** ******* ********** ***** ******* **** ********* ************************** * ******************** ******** ** ********* *** ******************** ******* ** ***** ***** ** ***** ****** * ********** ******* * ********** ******* * ******************************** ******* **** ** ************************** ** *** ****** * ****** ** ******* *** ******* ***** ******* ** *** **** ***** ***** ** **** *** **** ********* ***** ***** ******* ************ ********** ***** ******* **** ********* ************************** * *********************** ***** ************** ** *** ****** ****** ********** ***** ******* **** ********* ************************** * *************** ********************** **** *** ********** ********* ** *** ****** ***** ** ******** ** **** *** *** ******* **** ******** * ***** ***** **** ****** *** **** ******** ********** ***** ******* **** ********* ************************** * *************** ******* ***************** **** *** ***** ** ** ****** ** **** ***************** ** ****** ***** *** ************** ** ***** * ******* ***** **** ** ***** ** ***** *** ******* ** *** ********* ***** ******** * *********************************** ***** **** ** ***** *** ** *** ******* ***** **** ******** **** ******** ****** ****** ********** ***** ******* **** ********* ************************** * *************** ************* ************** ***** ***** ** ************* *** ********** *********** ** *** ********** ***** ** **** **** *** ** *********** ** ***** ** * ******* ******* *** *********** ** ** *** ***** ********** *** *** ***** ** ** ****************************** **** **** **** ** ********* ** *** *********** ********** * *********************** **** *** ******** **** ************* ***** ******** *** ******* * ***** ***** ***** ** ******** *** ************* ** ***** ** **** ** ****** ********** ***** ******* **** ********* ************************** * *************** **** ************** ******************** ************** **************** *** ************** *************** **** ************** ******************* ************** *************** *** ************** ************** ** **** **** *** ** **** ** ***** ******* ***** **** ** ****** **************** * *************** ***** ************ *** *** *** ***** ******** * ************************ *** *** *** ******* ** ******* **** **** ******** * *** **** *** ** ****** ** ******* ********** ***** ******* **** ********* ************************** * ************************ ***** **** **** **** ** **** *** ******* ** *** ***** ** *** ********* **** *********** **** ******* * ****** *** ***** *** ****** ****** **** ********** ************* **** **** *** **** ********* *** * ***** ***** ********** ***** ******* **** ********* ************************** * ********************* ***** ********** ** ************** *** ************** ** ******* ** ********* ***** ****** **** ********** ****** **** ***** *** *** *************** ** *** ***** ********** ***** ******* **** ********* ************************** * ******* **** ********* ******* ** **** *** **** ***** ***** *************** ** ******** ********** ***** ******* **** ********* ************************** * ******* ********* ** ***** **** ************* ******* ** *** *** ********* *** ****************** **** ***** ** ***** ** ****** ******* ******* ***** ******************** ******* **** ******* ******* ** ****** *** ***** ****** ** **** ***** **** ***** ********* **** ********* ********** ***** ******* **** ********* ************************** * *************** ******* ******* ****** ***** *** ********** ****************** **** ****** ** ****** **** ************* **** ***** *** ************ ** * ********* *** ** ***** ****** ** **** ****** ********** *** ***** ************** ** ********** * *********************** **** ** *** ****** *********** *** ****** **** *** ********** * ******* ***** **** ** ****************** ** **** *** ******* **** ***** ***** ***** *********** **** ******** ********* *** ******** *** **** **** ********** *** ***** **** ** ***** ********* ****** *** ********** ********** ***** ******* **** ********* ************************** * ******* ****************** ***** **** ** **** *** *** **** ***** **** ***** ** *** ****** ******** ****** ** ******** ********** ***** ******* **** ********* ************************** * ******* ***** * ********* ***** ****** *** **** ******** ** *** ************* ****** *** **** ***** **** ** *** ******* ** *** **** ** ******* ***** **** ** ** ********** **** ***** ********* ************ ********** ***** ******* **** ********* ************************** * ******* ****** *** ***** ******* ******* *** **** ** ****** ***** ****** ** ** ****** ** * **** ***** ******* ****** ******** *** **** ** ****** *** * ********************* ***** *** * *** ***** *** ********** ***** **** ******** **************** **** ***** * **** ** *** ****** ***** ******* *********** **** ** ****** ** ****** ** ******* **** *** ********* * ******************* ***** **** ** ******* ******* ******** **************** *** ******* **** *** ***** ******** ******* **** *** *********** * *************************** *** ******* **** *** ****************** ***** ****** ** ** ******* ************ *** *** ******** ********* *** **** **** * ****** *** *** ********** * *** ****** ****** *************************** ********** *** ***** ** ***** *** **** ** ** ******* ** *********** *** *** ******** ****** * ****************** ***** **** ** ******** ****** *** ***** ********* **** ********* ** ******* **** *** ***** **** ******** ***** ************** *** ***************** * ************************ ******* ******* *** ******** ******* *** ************ ** *** ******** ***** ****** ****** ******* *** ******* ******* ** ** *** **** ***** * ********************** ****** * ******************* ******** ** *** *** ***** ***** ********** **** ***** *************** * ******************* ******************************** *** ****************** ******* * ***************************** **** *** ******* ** ***** *** ******* ********** ***** ******* **** ********* ************************** * *************** ************** ***** ******* *** ******* * ****** ******* **** *** ****** *** ** ****** *** ************ ******* **** *** **************** ******* * ******** **** ******** ** ******* **** *** **** ********** ***** ******* **** ********* ************************** * ********************** ****** ************ ********************** ********** ***** *** * ******* **** ***** ***** ******* *** ********* **** *** **** ***** **** * *************************** **** ****** ** ***** ******* ** *** *** *********** ****** ******** ****** *** ****** ****** *** **** ****** ** ******** *** **** ************ * ********************************************** ******* ******** ******** ** ********* ***** **** ** *** *** ** *** ***** ******* ** *** **** *** **** ** *** **** **** ****** *** **** ** *** **** ********** ***** ******* **** ********* ************************** * ********************************* ***** ****** ** ******* ********* ******** ********** ***** ******* **** ********* ************************** * ******* ***** ********** ***** ******* **** ********* ************************** * ********************** ***** ****** **************** ** *** *** ********** ******* ****** ** **** * *************************** **** *** ****** ** ***** ******* ** *** *** *********** ******** ****** ****** ********** ***** ******* **** ********* ************************** * ******************************** ***** **** ** ***** ******** ** *** ***** ** ***** ******** ****** ****** ********** ***** ******* **** ********* ************************** * *************** ******* *********** **** ******** ** ************ *** **** *** ***** *** *** ****** **** *** ******* * ********* ********** ***** ******* **** ********* ************************** * ******************************** ***** ******* ***************** *** *************************** *** ******** *** ************************* ****** ** ***** ********** *********** ** *** ********** *** **** ****** *** ****** *** ********* ** ** ***** ***** ** *** ******** ******** ** *** ***** ** *** ****** ***** ******* **** *** ********* ********** ****** ********** ***** ******* **** ********* ************************** * ***************** ******* ***** ******* ***** *** ******* * ********* ********** ***** ******* **** ********* ************************** * ****************************** ***** ************** * ****************************** ***** ********** * ******* ******* ********************* ******* ********** ***** ******* **** ********* ************************** * *************** ******************** ********* ***** ***** *** ******* * ************ ****** ********** ***** ******* **** ********* ************************** * ************************ **** ******* ******* ***** ***** *** ********** ********** ** ******** ********** ***** ******* **** ********* ************************** * **************** ******* ********* *** ***** * ******************** **** * ***************** **** * ************************* **** * ******************** **** * ****************** **** * ****************** **** * ************************* **** * ******************* **** * ******************* **** * ********************** **** * ***************** **** * ******************************** **** * ***************************** **** * ************************ ***** ******** * *************** ************* ************** ******* ****** ******* ******* ************* ************** ******* *** ****** **** ***** **** ******** **** *** ********* ************* ******************** ******* ***** ****** ****** ************* ****************************** ******* ***** ******* * ************************ ******* **** ** *** ************* ** ******* ****** ******** **** ******* ************* ********* ** *** ******* ********** ***** ******* **** ********* ************************** * ******* ***** ********** *** *** *** ********* ** ***** **** ** ** ******* *** *** ********* *** *** ********* ************* **** *** **** ** ******* ** ****** ******** ** **** ******* *** ***** ********** ***** ******* **** ********* ************************** * ****************** ********* ***** ** ******************* ***** *** ****** ** *** ***** **** ***** ****** ********** **** *** **** *** ***** ************* ********** ***** ******* **** ********* ************************** * ************************************* ********* *** *** ************ ****** ***** **** ** ******** *** ****** ** *** ******* **** *** ********** **** *** **** *** *** ****** ** *** ****** ******* *** *** **** * ********** ***** ******** *** *** ************* ******* ***** ****** ********** ***** ******* **** ********* ************************** * *********************** ***** *********** *** ****** * ******* ******* ***** ****** * ******************* ***** *********** ****** ** *** ** ****** ********** * *************** ***** **** ** **** * ******* ** *** ************ ****** ** *** ****** ***** ******** ******* **** * ***** ***** * *********** ******* * ***************** ***** ************ *** *************************** ** ******* *** ** *** ***** ***** **** ** ** ******** **** * ****** **** ** ******* **** *** **** **** ** **** *** ** ************** ** *************** ********** ***** ******* **** ********* ************************** * ************************ ********* ****** ** ************** ********** ***** ********** * ***************** ***** ******************* *** ***************** ** *********** ******* *** ******* ***** ****** ** ******* **** *** ********* **** *** **** ******* * **** ***** * ************************************* ********** ******* ******** *** ********* ****** ***** ****** ** ********* ******** ******* ** *************** ***** * ***************************** ********** ** *** ** ******* **** **** ******* *** ***** ** ***** ********** ***** ******* **** ********* ************************** * *************** ***** **** ** **** **** ********** ****** * ************************ ***** **** ** ** ******** ****** ** ****** **** *** **** ****** **** ********* ************ ********** ***** ******* **** ********* ************************** * *************** ***** ******* *** **************** ******* **** ******** *** ******* ** *** ***** ** ***************************** ******* ************ ***** *** ******* **** ******** ********* ***** **** ** *** *** ***** **** ** *** ******** *** *** ******** ***** ******** ** ************** * ************************* ***** ******* ***** **** ******** * ********************************************* ******* ***** ***** ********** ***** ******* **** ********* ************************** * ******* ***** ********** ***** ******* **** ********* ************************** * *************** ******* **** ***** ***** **** *** ***** ***** ***** ************ *** ******* *************** **************** ************* ************ * *************** ***** ************** ** ***** ******** * ************************************* ***** ************** ** ****** ************** ***** **** *** **** ************* ** **** **** *** **** ** ********** *** ****** **** ******* ** ********** * ********************************************** ***** ********** *** ****** *************** * ******************** ********** ******** *** ******* ***** *** ***** ********** ***** ******* **** ********* ************************** * **************************** *** ***** ***** *** *** ********** * ********************************* ******** ********* ** ****** ************ **** ******** *** *** ** **** ********* *** **** *** **** **** ***** *** *** ******* ******** ***** * ***************************** ******* **** *** **** ***** *** *** ********** * ************************************* ******* ********* *** *** ******** ** **** *** ******* ** *** *********** ***** ***** *** **** ********** * ************************************************* *** *** *** **** ********** **** ***** *** ********** ** *** ********* ** ***** *** **************** ***** **** ** ********** * ***************************************************** *** *** *** **** **** ********** ********** ******* **** ********* ************************** * ******************* ************************ ** *** ***** ****** ** ** *** ****** ** **** ****** *** ********* ********** ** **** ****** **** ** ** ***** *** *** ** *** ****** ***** ********* ** ****** ******* ***** *** *** ****** *** *** *** ******* ** *** ******** ***** ******************* ********** ******* **** ********* ************************** * ******************** ******** * ****** *** ********** ***** ** ***** ********** **** ***** ***************** ******** ** ******* ********* * ***************** *** **** **** *** ******* ****** * *************************** ******** *** ******* ** *** ***** * ******* ******** *** ******* ** **** ***** ***** *** ***** ********** ******* **** ********* ************************** * ************************ ******* ** *** ******** ****** ******** ****** **** **** ** * ********** ** *********** *** *** *** ****** ****** ** ********** *** ********** ** ******* *** ** ***** ******* ** ********* ********** **** ****** *** ********** ** ***** ********** ******* **** ********* ************************** * ************************ ***** ***** ** ****** ** ********* ** ******** *********** ** ****** ** ** ** *** ** ***** ***** ** ****** **** **** **** ******* *** ******** ** ******* ************ ********** ****** ***** ***************** ******** ** ******* ********* * ******* ***** *** ** *** **************************** ****** **** ******* ** *** **** ****** * **************** ***** ******** *** **** ** ***** ******** ** ***** ** *** ***** ** ** ****** * **************************** ***** **************************** ************** *** ********** ********** **** ********** *** *********** ******** **** ***** **** ** ************** ******** ** **** **** ******* ***** * ***************************** ***** **************************** *** *********** ** ******** *** *** *** **** ******** * **************************** ***** ****** ** ******* ** **** ** ******* **** ******* ***** ********** ******* **** ********* ************************** * *********************** ***** *********** *** ********* *** ************** ********** ******* **** ********* ************************** * ******* ***** ********** ******* **** ********* ************************** * ***************** ***** **** ** ***** ****** ** ***** ** **** ** *** ***** **** ******** * *** *** ****** ***** *** ****** ********** ******* **** ********* ************************** * *************** ***** ***** ************** ** ***************** ***** **** ****** ** **** **** ** ********* *********** ** * **** ************ **** ****** *** ** **** **** *** **** ** ****** **** **** ******* ********** ******* **** ********* ************************** * ****************** ***** ********** ** ***** *********** **** *** * **** ****** ** ******** ********************* ********** ******* **** ********* ************************** * *************** ***** ********** ** ***** *********** **** *** * **** ********** ******* **** ********* ************************** * *************** ******* **** ** *** ***** ***** * ********************* *** ***** ** ******* ***** *** ** ****** ********** ********** ******* **** ********* ************************** * *************** ********* **** ****** ******* ******* * ************************* ***** ** *** ***** ******* **** ** * *** ****** ******** **** *** **** **** * ******* ******* ** **** ******** *** ******* *** ******* ** *** ************ ********** ******* **** ********* ************************** * *************** ***** **** ***** ***** *** ** ***************************** ******** *** ****** ** *** *** ************** **** ******* ** ********* *** *** ********* * ******************* ***************** *** ***************** **** **** ******* ** ****** *** ****** ***** ************ **** * ****** ***** ** ******* ** ******** ***** *** **** ** ** ***** * *************************** ***** ***** *** *** ****** **** *** ************* **** **** ***** * ******* ** ******* ** **** ******** ********** ******* **** ********* ************************** * *************** ********* ********* ******** ***** **** ** ****** **** ** ******* **** **** ********************* * *********************** ******* *** **** **** ***** ********** ******* **** ********* ************************** * *************************** ***** ****** ****** **** ** ******** ********* ** ******* *** ***** ********** ******* **** ********* ************************** * ****************** **** ********************* ******* * *********************** ***** ***** ** **** ********************* ** **** **** ** ****** ** ********* *** ******* **** ******* ** *** ********** ******* **** ********* ************************** * ******************* ******* ********** ******* ****** ** **** ***** **** **************** *** **** **** ***** ****** ** ****** ************* ***** *** *** ********* ** **** **** ** ******* ********** * *************** ********* ************* ****** ** ****** ****** ****** *** ******** **** *** *** ***** ******* **** *** ****** ***** ***** ** **** *** ****** * ********* ***** ***** ********** ******* **** ********* ************************** * *************** ******* ********* ** *** ******** ******** ***** **** ** *** *** ******** ******* *** ***** ******* ***** * ******* ******* *** ********** *** ********** ******** ******** * ************** ******* ********** *** ********** ******** ******** * ************************** ***** ************** ******* ********** **** ***** *************** * ******************** ********************** *** ********* ********** ****** ****** ********************** * ********************** * *** ****** **** ********** ******* **** ********* ************************** * ************************* ***** ************* *** ******** * ** **** ** ** *** **** ************* ** *** ***** ***** ** *** ************** ********** ******* **** ********* ************************** * **************** ************** ********************************* ***** ***** ** ********* ** ***** ** ********* ** ** *** ****** ***** ******* **** *** ******* ** *********** ********** ******* **** ********* ************************** * ***************** ********* ******** ****** ********** * ************************ ******* ***** ******************* **** ***** *** ******* * ******* **** ******** *********** **** ******** ********** ****** ****** ********************** * *** * **** **** ****** ****** ********** ****** ****** ********************** * ***************** * *** *** ***** * ****** ***************** ***** ****** **** ************ ** ********* ********* ********** ****** ****** ********************** * ************** * *** ****** **** ******* * ****** * ***** ** * *** **** ******* * ************* * ***** ** ********** ******* **** ********* ************************** * *************** ***** ******** ** *** *** ******** *** ******* ******** * **************** ****** ********** ******* **** ********* ************************** * ******* ***** ********** ******* **** ********* ************************** * **************************** ***** ******** ** ****** ******* ****** ** ************ ***** ** ****** ** *** **** ******* * ******************************** **** ** ****** ********** ******* **** ********* ************************** * ********************** ***** ** **** **** ******** ******** * ********************* ***** ****************** ** **** **** *** ** ******** ** *** ***** ******** *** ****** ********** ******* **** ********* ************************** * ************************ ****** ********** ***** ********** * ********************************** ***** ********* ***** ********** ******* **** ********* ************************** * *************** *************** ******************* ***** **** ** ******* ******* ** ************* ** *** ****** **** ** *** **** ** *** ************ **** *** ******* *** **** ** ** ********* ** **** *** ****** **** ** ***** * *************** *************** ******* ***** ************ *********** ********** ******* **** ********* ************************** * ********************** ***** ************** *** *** ******* ** *** ** ***** ** ******* *** ******* ** * ****** * ****************** ***** *** ****** ** *** ** **** ** **** *** **** ******* ** *** ************ ****** ** ******** ****** ** ***** **** *********** * ******************* ******* **** **** *** *** ********* *** ***** ********** ******* **** ********* ************************** * ******************* ***** **** ** **** ************* **** * ***** ** ************ * ************** ***** ************ *** *** ************** * ******* ***** ****** ********* *** *** ************** * ***************** ***** **** ** *** ********* ** ******* *** ************* *** ****** *** ***** **** **** * ***** ** ************** ********** ******* **** ********* ************************** ******* ***** ********* ** **** **** * *************** ***** **** ** ***** ******** ********* ** ****** *** ****** **** ****** **** ** * ***** ***** ******* ****** ********** ******* **** ********* ************************** * ************************************************* ***** *** ********* *** ****** * ******************************** *********** ********************** ** ***** *** ************ ** ***** ***** ** ***** * ************************* ***** ******* ******** ** *** ******* ************ *** ************* ********** ******* **** ********* ************************** * ********************************************************* ***** * ******************************* ***** ****************************** ***** ** ****** ********** ** ******************** * **************************** ***** **** ** **** *** ***** ***** ********** ******* **** ********* ************************** * *************** *********** ***** ***** ** ******* *** ******** ** *************** **** ******* ********** **** ********* **** * ******* **** **** ******** * ******* ***** ******** **** ***** ******** **** *** ***** ** ******** ********** ******* **** ********* ************************** * *************** ***** *********** ** ********* ** ***************** ** *** *** ** *** ****** ** **** ** **** ******* ** *** * **** ******* ***** *** ***** ********* ** ******* ******* ******* ********** ******* **** ********* ************************** * ************ ***** ******* ** *************************** ** *** ********* * ******* ***** ****** *** ******* ******************** ** ******* *** **** **** *** **** ***** ** ************* * *********************** ***** **** ******** * **************************** ****** ********** ******* **** ********* ************************** * *********************** ***** ************************* ****** ** ***** ***** ****** * ************ ** ** ********** * ******************************** ***** ******************** ** **** ** ******* ** **** *** ** **** *** ******* ****** **** ******** ********* *** ****** ********** ******* **** ********* ************************** * ************** ***** *********** *** ****************************** * ******* ***** ********** *** ******************************* **** ********* ** ***** ***** *** ******* **** ** ***** **** ******* ** ********** * ******************* ***** **** ** **** *** ************ **** ** ****** ** ** ****** ** ****** * ********************* ***** **** ** ****************** ****************************** ** **** *** ***** ** *** ********* *** ** ******** ******* **** *** ***** ** ****** ** *** ***** ******* ********** ******* **** ********* ************************** * ********************* ***** **** ** ************ ** *********** ******* *** ***** ************************************** **** *** ***** ** ******* **** *** ********** * *************** ***** ***** ** ****************** ** ******* *** *** ************ **** ****** ********** ******* **** ********* ************************** * ********************************** ***** ******* **** *** ***** * ************************ ***** *** ******* *** ***** *** ******* ** **** *** ***** * *************** ***** **** ** ******* ******** ** ******* ** *************** * ******************* ******* **** ***** ********* ****** ******* ** *************** **** ** **** ** *** ******** *** *** ******* ** *************** **** ******** **** **** **** *********** ** *** ***** ******* ** *** *** ****** ** ************** **** ********* *** ****** ********** ******* **** ********* ************************** * ********************************** *** ********* * ************************ *** ********* ******* * *************** ***** ******** ****** ** ****** ***** ** *************** **** ******** ** *** *************** ***** * ******************* ***** ******* ** *********** ******* ** *** *** ***** ****** ******** ** *** ****** **** ** *** **** ****** **** * ************* ** ****** ********** ******* **** ********* ************************** * ********************************************** ***** *** ********** ******** * ******************************** ***** **** ** ****** *** ********* ********** ******* **** ********* ************************** * ********************* ******** ***** **** ********** ** *** ******************* ********** ******* **** ********* ************************** * ************************** ***** *** ****** ** ******** *** *** ***** ****** ******** * *********************** *** ***** * *********************** *** ***** * ************ ***** ****** ** ********* ********** ******* **** ********* ************************** * ************************************ ***** **** ** **** ******* ** * ****** ***** *** ********* ** *** *********** * *************************************** ***** *********** ** ******* * ********************************** ********* *** ***** ********* *** ****** ****** ********** ******* **** ********* ************************** * ************************************************* *** * ************************************ *** * ************************************ *** * ************************************ *** * *************************************** *** * **************************************** *** * ****************************************** *** * ************************************ *** * ******* ******* **** ********* *** ***** **** ** ******** * *************** ******* **** ********* *** ***** **** ** ******** * ************* ******* ******* ** ********* *** *** ** ******* ***** ** ******** ** ***** *********** ********* **** ********* *** ******** **** **** ** *** ******* *** ************ ** ******* ********* ***** ** ***** ********** ******* **** ********* ************************** * *************** ******* *********** ** *************** ********** ******* **** ********* ************************** * ************************ **** ******* ** ****** ********* ** ******* **** * ******** ** ******* * ******************* ******* **** **** ****** ******* ** *************** ************** *** ************* **** *** ****** ******* ** **** ******* * *************** ********* * ******* ***** *** ******** *** **** ** *********** *************** * ******* ******* ** **** ****** ***** * *** ***** ***** ** *** ****** **** **** ***** ********* ********** ****** ****** ********************** * ****** * *** **** ********** ****** ****** ********************** * ****** * *** ************ * ************** * ***** * **************** * ***** * *********************** * ***** * ********************* * ***** * ********************* * ***** ********** ****** ****** ********************** * ****** * ********** *************** ********* ************ ************* *** ****** * *************** *** ********** ****** ********* ********* * ********* * *** **** *** *************** ********* ************ ************ ********** ******* **** ********* ************************** * *************** **** *** ****************************** ***** **** ** **************** *** ******** ******* ** *** ********* ***** *** ******** **** ******** * **** **** ***** *** ********* **** ******* * **** *** ******** ** ******** **************** ********** ******* **** ********* ************************** * ***** ******** * ************ ***** ********* ** ******* ** * ********** ** **** * **************** ******* ** **** ***** *** ******* ********* ** *********** *** ********** * ********************* ******** *** ******* ********* ** *** ********* *** **** * ******* ******* **** ***** *** ***** ** ******* ******** * ******************* ***** ******** *** ***************** * ****************** ******* ****** ****** ***** ** ** ****** ********** * ******************* ***** ******* ** *********** *** * *************************** ******* ****** ****** ********** * *************** ***** **** ******** * *************** ******* **** ******** ******* ************* ***** **** ** ** ******* ******** *********** *** ** ******************** * *** ****** ******* ** ******* ***** ****** ************ ** ******** **** * ***** ** ****** ** ***** **** ******* ********* ******* ********** * ***************** ***** ************** ****** ***** *** ********** ******** ** ******* **** *** *** **** ******* ****** ***** * ************************ **** ** ****** * ************** ***** *** ****** *** ******* *** ****************** * ********************* ********* *********** *** ****************** ****** * ********* ******* *** ******** ** *** ******** ********* ** ******* *** *** ******** * ******************** *** ***** * ****************************** *** ***** * ***************************** *** ***** * ********************************* *** ***** * ********************************* *** ***** * *********************** *** ***** * *********************** *** ***** * ******************** *** ***** * ********************** *** ***** * ********************** *** ***** * ******************** *** ***** * ******************** *** ***** * ********************** *** ***** * ********************** *** ***** * **************************** *** ***** * **************************** *** ***** * *************************** *** ***** * ******************** *** ***** * ******************** *** ***** * ************************** *** ***** * *************************** *** ***** * *************** *** ***** ********** ******* **** ********* ************************** ******* ***** ********* ** ****** ****** ********************** * ******* ******* ** *************** ***** ***** ******* ** ***** ******** ** ********** ******* **** **** ************ ** ***************** * ****************** ******* ************** ** ****** ***** ******* ************ ** ***************** * ************** ***** **** **** ** ************** ********* ***** ************ ** ******** **** *** ********* ** ***** ********* * ******************************** ***** **** ** ***** ****** ** ***** ******* ** ****** ********** ** *** ***** ** * ******* ***** ** *** ** *** **** ***** * ********** ***** **** **** ** ************** ********** ***** *** **** ***** ******** ****** ******* ********** ******* **** ********* ************************** * *************** ********* ********* ***** *** ** ***** **** ****** ***** *** ******* **** ** **** ** * **** *** ********* ********** ******* **** ********* ************************** ******* ***** ********* ** ****** ********************** * ************ ***** ***** ***** *** *** ** *** ** ****** * ********************* ******* **** ** ************* ****** *** *********** ******* ******* ********** ** **************** *** ***** *** *** ************** ****** * ********************* ******* *** *** ************ * ********************* ****** * ******* **** **** ******** ** ***** * ******* ******* ********* ***** * ********************* ****** * ********************* ****** * ********************* ****** ********** ******* **** ********* ************************** * ******************************** *** ********** ****** *** *** ****** ***** ** *** ********* ***** * ****** ***** **** *** **** *** **** ********* **** *** ******** ********* ********** ******* **** ********* ************************** * ********************* ***** ** ******* *** ******* ********* ** ******* *** **** ******** ** *** ******* * **************** ********* **** ** ********* ********* * ******* ********* **** ** ********* ********* * ******************** ********* **** ** ********* ********* * *************** ***** **** ** *** ******* ***** **** ***** **** **** ******* ** *** ****** *** **** ***** ******** ********* * *************** ********* **** ** ********* ********* * ******************** ********* **** ** ********* ********* * ****************** ********* **** ** ********* ********* * ************************* ********* **** ** ********* ********* * ******************* ********* **** ** ********* ********* * ************** ***** ************ ** ****** ***** ******* ****** ** ******* ********* * ****************** ********* **** ** ********* ********* * ***************** ********* **** ** ********* ********* * ******************************** ********* **** ** ********* ********* ********** ******* **** ********* ************************** * *************** ******* ******** *** *** ** *** ******* ***** ********** *** ****** ***** **** *** ******* * ******* **** ** *** ** *** ******* ** *** ********** **** *** *** ********* ****** *** ****** ** * ******** ****** *** *** ******* **** ****** **** **** **** *********** ********** ******* **** ********* ************************** * *************** ********* * ******* ***** *** ******* *** ********* ***** ** *** ********* ** ****** ********* **** ***** ****** ******** **** ***** * ********** **** ** **** **** ******** ** *** ********** ********** ******* **** ********* ************************** ******* ***** ********* ** *** ***** * ************ ***** ********************* * *************** ***** ******************** ** ******* **** *** ****** ****** ********** **** ***** *************** * *********************** *** ********************* ** *** ******* *** ********* ********** ******* *************** ************* * ******* ***** ******* ** ******* **** ****** *** *** *** **** ****** *** ****** ********** * *************** ***** * *************** ** ****** **** * *** ***** *** **** **** **** ***** ** ** *** ******* *** ** *** ******* *** ***** ****** * ******* **** *** ****** ************ ******** *** *** * ****** ******** ** ***** *** ****** ******** ** ******* *** ******* ** ** *** **** ******************* ****** ********** ******* ********* ************************** * ***************** ********* ***** ******* **** ******** ***** ***** *** *** ****** ***** ********** ** *** *** ******** *** **** **** *********** *** **** ******* ** *** ******* **** *** ***** ********** ********** **** ***** *************** * ******** ***** ********** ****** ********************** * ********************************** ****** ******* ********* * **************************** ****** ******** ********** ********** **** ***** *************** * ****** ****** ******************** ****** *********** ***** * ********************** ************** ********************* *** *************************** *** **** **** ***** ********** ******* *************** ************* * ******* * ******* * **************** * **************** * ******************* * ******************* * ****************** * ******************* * ******************* * ******************** * ******************** * *************************** * ***************** * ***************** * *************** * *************** * ***************** * ******************** * ************************ * ************************* * ************************* * ******************* * ******************* * ****************** * ********************** * ******************** * ***************** * ***************** * ****************** * ****************** * ************** * *********************** * ********************* * ********************** * ********************** * ******************** * ******************** * ***************** * ***************** * ******************************** * ******************************** * ***************************** * ***************************** * ******************* * ***************************** * ***************************** * ******************************** * ******************************** * ********************************* * ********************************* * ******************************************* * ************************************* * ************************************* * ***************************************** * ***************************************** * *************************************** * *************************************** * ******************************************* * ******************************************* * ********************************** * **************************** ********* ** ***** *** ** ******* ****** *** **** ********** *** ****** *** ** ******* ******* ***** ******* ******** ********** ******* *************** ************* * *************** **** *********** ******** ******* ********** ******* *************** ************* * ****************** *** **** ** ****** **** **** ************* ****** *** ******* *** ********** ******* *************** ************* * ************************ ** ******* ******** ********** ********* *** ************ ******* ** ********* ***** *** ***** ** *** **** ******** **** ************ ** ******* ******** ********* ********* *********** *********** ******** ********** *********** ******** ********************** * ************************ ************** **** ****** *** ****** **** ******* **** *** ******* ********* **** *** *** ********* ***** ********** ******* **** ********* ************************** * ******************************************* ******* ****** *** ******* ** ********* ** ** ****** **** ********** ** ****** * ****** ** *********** **** ******* ** ********* ********** ******* **** ********* ************************** * ******* **** ******* ******** ******* *** *********** ******** ******** **** **** ** ******* ** *********** * **************** ***** *********** ** *** *** ** ******* ********** ** **** *** ****** ********** *** ** **** ** ***** * ************************** ******* ** **** ******* ******* ********** ******* **** ********* ************************** * ******* ******* ********* ** ******************* **** ******** *** ******* ** *** *** ******* *** *** ******* *********** ** ***** **** ******* ** ****** ** ******* *** ** **** *** ********* ********** **** ***** *************** * ******** ***** ********** ******* **** ********* ************************** * ******* ************ ***** ** *** *** ******** ** *** *** **** ******* ** *** ***** ***** **** ** ** ******* * *** **** ******* *** ********** * ************** ***** *** ****** ** **** **** ***** * ******************** ***** ****** *** ********* ********** ******* **** ********* ************************** * ******* ***************** ***************** ********* * ******* ***** *** ********** *** ********* **** ***** ****** * ****************** ***** **** ** ******* *** ******** **** *** ******** ********************* *** ***************** **** ****** * **************** ***** ******* *** ******** ***** * ****** ****** *** **** ** *** **** ***** ******************* ***** ** ** ******* ** ***** **** **** ** ** ***** **** ****** ***** ** **** ** ******** ********** ******* **** ********* ************************** * *************** **************************** **** ********* *** ******* ****** *** ******** *** *** ***** ********* ********* **** ** *** ****** ********** ******* **** ********* ************************** * *************** **************************** ***** * **** ** * *** ****** ** *** ***** ******* ***** ******* ****** ******* ***** ** *** **** ******** ** *** ******* * ******************* ***** * ****** ** **** *** ****** ***** *********** ** ***** **** ********* ** ***** **** ****** ******** ********** ******* **** ********* ************************** * **************** *********** ***** **** ** ****** *** ******* ** ****** ******* **** **** *** ******* ***** ********** ******* **** ********* ************************** * *************** ************** ************** ***** * ******* ******* ******* **** ******** ********* ** *** ************ ***** *** ******** **** ***** **** ** ********* ******* ** *** **** ** ***** *********** ******* * ************************ ******** **** ** **** ******* ****** ** ***** ********** ******* **** ********* ************************** * ***************** ********* ******* **** ***** ************** ** ***************** ******** ***** *** ***** ******** ** ***** ******** ********** ******* **** ********* ************************** * *************** ************* ********* ***** **** ** ***** *** ******* ******** **** *** **************** ******** ** *** ****** ** *** **** ******* **** *** ******* ********** ******* **** ********* ************************* * *************** ************* ********* ***** **** ** ***** *********** **** * ****** ****** ** ****** ** ******** ********** ******* **** ********* ************************** * *********************** ***** ******* ******************** ****** ** *************** * ********** ******* ** *** **** ***** ******** * ******* *********** ******************** ********** ******* **** ********* ************************** * ********************************* ********* *** *** ******** * **** ********** * ********* *** *** ****** ***** *** ********* ******* *** *** *** ********* **** *** ******* **** **** ********** ********** ******* **** ********* ************************** * ******************* ****************** *********************** ***** **** ** ******* *** ****** ***** ****** ** ** *** **** ***** ** **** ** *** **** ****** **** ** *** ****** ** *** ****** ***** **** **** ******** * ******* ***** *** ********** ** *** ******** **** * ************************ ** ******* ********* ******* **** ***** *** ******* ** *** **** *********** *** ****** ** **** ***** ****** * *************************** ************************** ******************************** ******* **** ***** ***** ** *** ***** *** **** **** ** ***************** ********** ******* **** ********* ************************** * ******************* ***** **** ********** ********** ** ****** **** ********** * *********************** ********* * ******* ***** *** ********** *********** ***** **** ** ******* ***** ** * ********* ********** ******* **** ********* ************************** * ******* ******* ** **** ***** *********** ****** *************** ***** **** ** ****** *********** ** ******* **** ******** * *************** ************** ************** ***** **** ** ****** *********** ** ******** ************** ************** ***** **** ** ****** ******* ** *********** ** ** *** ** ******* * ****************************** ***** *** ***** ***************** * *********************************** ****** * ************************* ******** ** *** *** *********** ****** * ******************************* ******** ** ******** ******** ** *** ****** ********** ******* **** ********* ************************** * ********* ******** *** *** ************** ***** **** ***** ********* ********** ******* **** ********* ************************** * ******* ********** **** *********** ********* * *************** ********** **** *********** ********* * ***************** **** ** ****** * ************************ **** ** ****** * ********************** **** ** ****** * ***************** ***** ******** ** ******* ************************ ** ******* *********** ******** ** *** ****** ******** * ***************** ******* ***** ************** ** **************** ** ******* ********* * ************************* ***** * ******** ** ******* ** *** *** ****** ********* ** **** ** ******* ********* ********** ******* **** ********* ************************** * *************** ***** **** *** ******** *** ******* **** ******** ***** * ************ ***** *** ****** * ********************* ***** ****** ** ****** *** *********** ***** ****** ***************** ** **** ** * *** ***** * *************** ************** ****** ***** **** ** ******* ******* **** *** ******** ***** ** ********* ********** ** ******* ** * ******* ********** **** *** ******* ** ********* ************** *************** ******* ********** ** ******** ******* ***** ** ********* ************** *************** ******* ********** ** ********* ******* ***** ** ********* * ***** ***** **** **** ****** ********** ******* **** ********* ************************** * ********** ***** ** ******* ***** **** ***** ** **** ** *** ****** ***** * ******* ****** ***************** ******* **** ***** **** ** *** ***** ** *** **** ********** ** *** ********* ***** ****** ***** ***** **** ** **** *** ***** ***** ****** ****************** ******** ** **** ******* **** ***** ****** **** ************ * ****************** ***** ************** ******** ** ***** *** *** ** ********* ***** **** ** ***** ****** ********* ******* ******* ********* ********** ******* **** ********* ************************** * ******************* **** * ***** ********** ** *** *************************** ** ***** ******* ** ** ******* **** ****** ******** ********** ******* **** ********* ************************** * ******* ******* ******* *********** ** ***** *** ** *** ** *** ****** *** ***** *** ************* * *************** **** ** ****** * ***************** ******* ** ******** ***** *** ** ****** ***** *** ******* *** *********** ** ****** ********** ******* **** ********* ************************** * ***** **** **** ** ******** *********** ******* *********** *** **** ***** **** ** ** ****** ********** ******* **** ********* ************************** * ******* ***************** ******************** ******* *************************** ***** ** ********* ** **** ** ******** ****** *** ** *** ********** ** * **************** ********** ******* **** ********* ************************** * *************** ************** ************* ***** **** ** ****** *** ***** **** ** ** ****** ** *** ******* ***** **** ******** *** ************** ************** ****** *** ***** * *** ******* ****** ************** ************************ ***** **** ****** ***** ** ****** ***** ** ****** *** ********** ******* **** ********* ************************** * *************** ************** ************* ********* ******* ******* *** ** ****** ******** ******* ****** ******* ********** ******* **** ********* ************************** * *************** ***** **** ** ************* ** ****** ** ***** ********** *** ****** ******** ********* ******* ** ***************** ***** ********* ******* ***** **** *** ***** ****** ***** ******* ******* ******** ********** ******* **** ********* ************************** * ******************* ******* ***** ** *********** * *************************** ******* ***** ***** ** *********** * *************** ******* ***** ***** ** ********** ***** ************ * ****************** ******* **** ******* ***** ****** ********** ******* **** ********* ************************** * ******* ***** ******** * ********************** ***** ****** ** *** *** ************ ** * ***** ****** ***** *** ****************** ****** ***** **** ***** ** ******** ******* ** ***** ******** ************* * *************************** **** ******* ** **** *** ***** ****** ** ***************** * *************** ***** ******** ******** ** ************ ****** ***** **** ***** *** ******* **** ** **** *** ***** ** *** ******** ********* ******** ** *** ****** ***** ********** *********** ******** ********************** * **************** * ************************ * ******************************* ******** ********* ******* ***** ******** ** ***** **** ********** ** ***** * *********** **** **** *** ******* ****** ** ********* ********** ******* **** ********* ************************** * *************** ***** **** ** ****** ** *** ***** **** **** *** *********** ** ******** *** ***** ***** ********** ******* **** ********* ************************** * ****************** ***** ****** ***** ************** *************************************** ** ****** *** ****** ** *** ****** ****** ** **** *** *********** **** ** **** ** *** *** ***** * ********************* ***** ***************** ************** ********** **** ***** *************** * ******** ***** * ******* ****** **** ***** ******** ** * ********** **** ***** *************** * *************** ************** ****************************** ****** *** ** ****** ** **** ********** ******* **** ********* ************************** * ***** ***** * ***** ********* ** ****** ****** ** *** *** **** ********** ******* * *********************************************** ****** * ********************************** ******** * ********************************* ******** ********** ******* **** ********* ************************** * ***** ***** * ***** ********* ** ****** ****** ** *** ************* ** *** ***** *** ********** ******* * ******************************************** ****** * **************************** ******** ********** ******* **** ********* ************************** * ******* ***************** ************************ ***** **** ** ****** ****************************** ********** ******* **** ********* ************************** * ***************** **************** ************************ *********** ** ****** ****************************** * *************** ******************** ************************ **** ** ****** ********** ******* **** ********* ************************** * ******* **************** ******************** ******* ** ****** ***************************** ** **** **** * **** ******* * *** ******** ** *** ***** ****** ** ********* ** ****** ******* ***** ******** **************** ***** ** ** ******** ****** ********** ******* **** ********* ************************** * ******* **************** ************************* ******* ** ****** ***************************** ** **** **** * **** ******* * *** ******** ** *** ***** ****** ** ********* ** ****** ******* ***** ******** **************** ***** ** ** ******** ****** ********** ******* **** ********* ************************** * *********************** ******* ********** ********** ***** **** *** **** ****** ***** ******* ** *************** **** ***** ** ****** ** ***** *** **** ***** ********** ******* **** ********* ************************** * ************************* ***** **** ** **************** *************** *** ***************** *************** ** ***** *** ************ ** *** ***** **** ****** *********** ** *** ********* ** **** *** ************ ***** ****** *** ********** ******* **** ********* ************************** * *************** ******** ***************************** ** ****** * ******* ** ******** ** ************* *** ******** **** ******** *** **** ** **** *** ***** **** ******* ** * ********** ******** ******* ********** ******* **** ********* ************************** * *************** ************** ****************** ***** ******* ***** *** ******* *** ********* **** *** ********* ******** *** ** *** ************ ** *** ***** ***************** **************** ** *** *** ***** ***** ******* ********** ******* **** ********* ************************** * ****************** ***** ************** *************************** ********* ****** ************** ********* *********** ********* ************* **** ****** ******* *** *********** ******** ** ** ************* **** **** **** ** ******** * **** ******** *** ******** ** **** ** *** ** ******* *** **** ** ** ***** ****** **** ** ********** ** *** **************** ******** ********** **** ***** *************** * *************** ***************** **************************** ****** *** ********** ************** *********************** **** ************** *************** ****** ****** ******** ***** ********** ******* ************* * ****************** ***************** **** * **************** ************************* *********** ***** ******* ********** **** ******* ********** ******* **** ********* ************************** * *********************** ***** ***** *** ************* ********** *********** ******** ********************** * ****************** ****************** ************************** ******** **** **** ******* ***** *** ** ********* **** ********** *** ****** ********** ******* **** ********* ************************** * ******* ***** *** *********** *** ********** ** *** ******* ***** ********** *********** ******** ********************** * ************ ***** ************************ ******************* *** ****************** * ******************** *** ******** ********** ** ***************** *************** *** **************** * ****************** *** ***** ** **** **** ******* * ****************** ********** **** **** ****************** *** ***** **** ***************** * ************************** ******* ***** ** **** ***** ************ *** *** ************* ****** ******** * ******* ******* ************** *************** *************** ******* ** ********** *** ***** * ***** ***** * ************************ *** ***** ******** **** ***** **** ******************* ********** ******* **** ********* ************************** * ****** ****** ****************** **** ********** * **** ****** *** ***** ** ************* **************** *** ************* ************** ** **** ** *** ******* *** ***** ** ***** ******** * ******************* *** ****** **** ** ***************** **************** ** ******************* *** *** ********* ** ***************** ******************** ** ******************** * ******************* ***************** ******************** *** ****** ******* *** ***** *** ******* ** ******* *** * *************************** **** *** **** ** *** ***** **** *** **** ***** ********* ****************** ******* ** ***** *** ***** ******** ***** ***** ***** ****** ******* **** ******* **** ** ****** *** ****** ***** ******* ** ** *** ***** ** ****** **** ** *** ****** ***** ***** * *************** *** *** ******* ** *** ************ ***** ** *** ************* ************ ******* ******* **** ********* *** **** ** *** ************* ************************** ******* ** ************* **************** *** ************* ************** ***** **** ** ***** ******** ************ ** ** *** ** ******* ***** **** ********* * **** **** **** ******* ** * ***** **** **** ****** ******** ***** ***** ***** *** ****** ******* *** *** ** ************* ************** ***** *** ******* * **** ***** ********** **** ***** *************** * ************** ************** **************** ****** *** ***** **** ***** ****** * ***** *********** **** ****** ************************ ********** **** ***** *************** * **** *********** **** ** ******* ******* **** ******* ***** * ************** ************** *************************** **** **************** *** *** * **************** *** **** *** *********** ****** ****** ************** ***** **** ************* ********** **** ***** *************** * ********************** ************* *** ******* ******* * ****************** ************************************************************** *** **** * *** ***** **** *** **** ** ************** * ************** ************** **************** *** ** **** ** ****** ***** ********** ******* **** ********* ************************** * *************** ************** ****************************** ****** ** ****** *** ******** ******* ********** **** ****** *** ***** ********** ******* **** ********* ************************** * ******************* ****************** ************ ********* *** *** *** ***** ** ******* ** ******* * ****** ********** ******* **** ********* ************************** * *************** ************** ******************** ***** ** *** ****** ****** **** ** *** ** ********* **** *** ******* ** ********** ********** ******* **** ********* ************************** * *************** ************** ******** ***** ** *** ****** ****** **** ** *** ** ********* **** *** ******* ** ********** ********** ******* **** ********* ************************** * ****************** ***** ******* ***** ********** ******* **** ********* ************************** * *************** ***** ************** ************ ** ***** *** ******* ** ******* ***** *** ********** **** ***** ****** * ********************* ********* * ******* ** ******** ****** ***** *** ******* * **** ***** ********** ******* **** ********* ************************** * *************** ***** ******* *** ***** ******* ************** ************ ************** ************************** ******** ************** ************** *** ************** ************* ** ****** ******* ** ****** **** *** **** **** ******* **** *** ***** ** ***** *** *********** **** ** **** **** *** ******* ** ************ ******* * ************** ***** ***** *********** *** ********** *** ***** *********** ****** **** ***** ******** *** ******* *********** ****** ** ****** ****** ** ***** * ************************ *** ***** ********** * ********************************** *** ********** ** *** ***** ********* **** * ********** ******** *** **** ***** ** ********* ********** ******* **** ********* ************************** * *************** ************** ************** **** ******* ** ***** ****** ** ***** ***** ** ************ ************** ************** **** ********* ************* ** **** ***** ********* ********* **** **** ******* **** *** **** ***** *** ****** ******** *** ********* **** ****** * ******************* **** ************* ** ***** ***************** ** ********** *** *********** *** ******* ** ********** *** ********* **** **** ******* ** ***** ************** ** ********* ********** **** ***** *************** * ****************** ************************************************* *** ************ ** * **** ********* * ** ********************************************************** ***** * ******************* ****** ********* *** ***** ********** *********** ******** ********************** * *************** ****** ********* ********* ****** **** ********************************** ** ************************ **** ********** ********* **** ******** **** ************** ******** ****** ***** **** ***** *** ** *** **** ********* *** ** **** ***** * *********************** * ********************** * ********************************* * *************************** ******* ******* ** ******************** *** ** ********** ******** ********* ** ******************* ********** ******* **** ********* ************************** * *************** ******* ********** ***** ** ********* ******* ** *** ********* *** **** *** ************ ******* **** *** ********* *** ******* ** **** ******** **** ********* * ********** ***** ***** **** *** ****** ****** ********** **** ***** *************** * ************** *********** ******* ************** ****** **** ****** ** ************ ********** **** ***** *************** * ************** ********************* *** ******* **** **** ** ********** * ******************************* ******************************** ************************* *** ********* ****** ********** **** ***** *************** * ******** ***** ********* * ************************ ******* ********** **** ***** *************** * *********************** ***** ******************** *** ********** ******* ** ************** ************** *********************** ****************** ************** **************** ***************** * *********************** ************************ **** ***** ********* **** **** ***** * ** ** ** ********* **** ** ******** ** ******* **** *************************** * ****************** ************** **** ****** ** ****** *** ** ************* * ******************************** ************** **** ********* ** ********* ** ***** *** *** *** * ********************** ********************* ****** ******* ** *********** ********** ******** * ******************************* *********** ************************** ****** ** ****** **** ********* ** ***** * *************************** ********************************** ************************** **** ***** ***** ** ******* ***** **** ** *** ***** ****** ****** ***** ********** ********** ******* **** ********* ************************** * ******* *********** ******* ********* ** **** *** ********* **** **** *** **** **** *** ********* **** **** **** *** *********** ****** ****** **** **** ************* ** *** ******** ********* *** ***************** *** *** ***** ********* ** **** *** ******* **** ****** ** ******* * ******************* ***** **** ******* ** ****** ****** ******* *** ******* ** **** ** *** ********** ** *********** ***** ****** ** **** ******** * ******************* ***** *************** ** *** ****** ***** ******** ******* *** *** ************** *** *** ******************** **** *** ******* * *************************** ***** ******* ******** *********** ******* ********* ** ***** *** **** ** ****** * ***** **** * **** ** ******* ********* ** *** ********** * *************** ***** ************* ******** ** **** *** ******* ***** *** **** ** ***** ********** **** ****** *** ********* ** ** *********** ****** *** ********* ******* *** *** **** ******* ** ** ***** *** ******** *********** ***** ******** ******* ********* * *************** ***** ******************************* *** ****************************** ***** *** ****** **** ***************** *** *************** ************* ***** ******* ********** *** ********* **** *** ****** ***** **** *** **** ** ********* *** ******* *** ******** ******* ** **** *** **** *** ******** ** ** ****** ***** *** ***** **** **** ********* ************* ** *************** *** *************** ** **** *** ****** ***** ***** ***** ******* ** ***** ******* ** ** ******** ********************** *** ******************** * ************** ******** ************ *** ***** ** ** *** ********** *** *** ******** ******** ******** **** ******** ******** * ****************************** **** **** ***** *********** ** *** **** ** *** ***** ********** ******* **** ********* ************************** * ****** * ***** ******* ******** * **************** * ***** ******* ******** ********** *********** ******** ********************** * ******* ***** **** **** *** ****** ** ****** ****** * ************ ***** ********************** * *********************** *** ***** * ************************* ***** ******* *** ************ ******** ******** * ******************************************* ******* *** ******* *** ************* * ******************************** ***** ******* *** ******** ****** * ******** ** ******** * ******* *** ****** ** ****** ****** * ********************************* ***** **** ****** * **** **** **** ** ************** * ***************************************** * ******************************************* * *********************************************** ******* *** ****** ****** ******* * ******************* ***** ****** ***** ******** * *************** ** *** **** *** **** ********* ** *** ************** ** *** ****** *********** ********** ******* **** ********* ************************** * ************************* ************* **** ******** ** *** ********* ** *** * ** ******* ***** *** ***** ********* ** ****** ******* ********** *********** ******** ********************** * ********************** ******* **** ***** ** ******************** **** **** ***** * ******************************************* ******* *********** ******* ********** *********** ******** ********************** * ******* *** ******** **** ******* **** ***** **** ******* ******** *** ********** *** ****** **** ******** **** **** ** ******* ** ********** * *************** ***** *** ************ ** ******** * **************** ********* ****** *********** ***** * ***************** ***** ****************** ***** ** **** **** ******* ***** **** ******* ******* ** ********** * ************************ *** ** **** **** *** ********* ********** * ******************* ****************** ****************** ********* ******** ***** * ************************* * ***************** ******* *********** ******** * ******************* ********* ****** ***** * ******************* ****** ******* ** ******** ****** * ******************************** ******* ****** **** ************ * ******************************** * ************************************ * **************************** * **************************** * ********************** ******* **** ******* ** ******* ************** ***** *** ******* ****** * ****************************************** * ****************************** * ******************************* * ************************* * ************** * ****** ***** ******* *** ************** * ****************************************** ******* *********** *** ****** ************ * ********************* ******* ********** ************** ** **** ** ******* ********* ********** ******* **** ********* * ****************** ********* ***** *********** ******* *** ** ****** ********** **** ** *** **** ******* ** *** ******** ********* ********** **** ***** *************** * ****************** ************************ ***** ***** ** ***** ******** ************************ ****** *********************** ***** * ******************* ************************************************* **** ******** ** *** ********* ** *** * ** ********** ******* **** ********* ************************** * *************** ************** ************************ ***** *********** ** **** ** * ***** ****** ******** ** *** ****** ****** ***** ** ******* ******************* **** *** ******* * ******* **** ****** *** ******** ********** ******* **** ********* ************************** * **************************** *** ****** **** *** *** ***** **** *** ******* **** **** *** ***** ***** ** *** ****** ***** ** *** *************** ***** **** *** ******* ** ********* ** ****** ** ***** ********** *********** ******** ********************** * ********************** ******* ** ***** * **** *** ******** *** **** * **************** ******* ******* * ***************** ****** ******* ** *********** ********* ****** * ******************** *********** ********* **** ******* **** ******** * **************************** ***** ******* ******* **** ****** ********** * ***************** **************** ****************** ******* ****** **** **** ** ** **** ***** *** *********** **** ******************* ********** *********** ******** ********************** * ***** ******* ** ******* ******** * ***** ******* *** *********** *** ********** * *********** ********* *** ******** ** ******* * ******** ****** **** *** *** ****** ************ * ******** **** **************** *** *********** * ****** ******* ** ********** *** ******* ****** * **** ***** ****** ********** ******* **** ********* ************************** * ************************************************** ****** * ****************************** ****** ****** ***** ******* ** *** ***** *********** * ** ********* ******* ** *** *** * ******* ** ***** ** ****** ** ****** *** **** ****** ****** **** ****** * ******* **** **** ***** ** ******* **** ***** * ******************* ******* **** ********* ***** ***** *** ***** ***** ** ******* *** ******** ** *********** *************** ** * ****** * *************** ******** ** *** ****** ************** ***** **** ** **** ** ***** ***** **** *** **** ***** ** *** * ********* ******* ****** ** *** ****** * ****************** ***** ****** ** ***** ******** ** * ***** *** ******** **** *** ******* ***** * ************************ ******** ** *** ** ****** ** **** ****** ***** ********* ** ** ******* * ******************* ******* ****** ***** ********* **** ************************ ** ******* * ************** ******* **** **** ***** *** ******* **** ***** ********** ******* **** ********* ************************** * ********************** ***** **** ******* ** ******* ****** ******** * ********** ******************* ********* ************* * ********** ********************** ********* ************* *** **** **** **** *********** ** *** ************* ** ******* * ******* **** ******* ** *** ******* ***** ********** ******* **** ********* ************************** * ********************** ******* ***** ******* ** **** ** ***** *** ******* **** ***** * ********************** ******* ********* ************* ********* ***** **** *** ******** *** ********* ** *** *** ** *** ***** **** * ****** *** ******* ****** *********** *********** ********** ******* **** ********* ************************** * ********************** ***** ******* ** ******* ******** ** ******** ******** *** ******** * *************** **** ******* *** ****** ***** ******* ** ******* ********* * ******* ***** **** **** *** *********** ********** ******* **** ********* ************************** * ********************** ***** *** ******** * ********* ** ************************* ********* ******* * ********* ** ************************* ********* ******* * ****** ****************** **************** * ****** ************** ********* ************ * ****** ********* ********* ************ ******** ********* ************ * ****** ********* ********* ** ********** ******** ********* ************ ******* *** ****** ** *** ********** **** ** ***** **** *** ****** ******** **** ** **** ********* ***** *** **** ***** **** ** ******* ****** **** *** **************** ** ************ *** ****** ***** **** ** ****** **** **** ** ****** *** ******* ***** ** *** ******* ***** * *************** ******** ** ******* *** ***** ******** ** *** ****** ***** ***** *** ***** **** *** *** **** ******* * ****************** ***** *** ******* ** *** *** *************** **** ******* ***** ** **** *** **** *** **** *** *************** **** ****** ********** ******* **** ********* ************************** * ******* ********* **** ** ****** ***** ***** ***** ** ******* ******** ** ***** ******* ****** ** ***** ***** * ******************* ******* ** ************* *** ****** ******** ********** ******* **** ********* ************************** * ******* *************************** ***** ****** ** ** **** ** *** **** **** ******* *************** ******* **** ***** *********** * ********************** ***** ******* ** ******* ****** *** ********* ******* *** ******** * *************** ******** **** ****** ******* ** *** *** ******* ***** ** *** ***** ******* ** **** *** ******** ** *** ***** ***** * ********************* ***** ******* ** *** ******* *** ******* ** *** **** ****** **** *** ******* ***** **** ******* *** ******* **** ** **** *** ************* ***** ****** ******* ***** **** ******** ********** ******* **** ********* ************************** * ******************* ***** ***** *** *** *** ****** ** *** ******* *** ******* ***** ** ********** * *************** ***** ***** *** *** **** ** *** **** ****** ******** * ****************** ******** *********************************** ** **** ******** *** *** *************** * ****************** **** ********************** ** ****** ** ** *** ** **** ** *** **** ******* ********** ******* **** ********* ************************** * ******* ***** *** **** **** *** ****** ** *** ************* ****** ********************* * *************** ***** *** ****** ***** **** ****** ** *** *** ** ****** *** ****** ******* ** *** ************ * ***************** ***** ***************** ******************** ** *** ****** ** ****** ** ** ****** ********* ** **** **** ** ********* ***** ********* ** **** **** *** **** *** ******* ****** *** *********** *** **** ******* ***** ********** ******* **** ********* ************************** * ***************** *********** ***** ***** ** **** ******* ***** ** *** ****** ** ****** ****** ** ******** ******** ***** ** ***** ****** ** *** ******* ***** * ****************** ***** ******* ** ******** ******* ******* ** ******* *** ***** ******* * ******************************* ***** * ******************************* ***** * ************ ******** ** **** ****** ** *** ********* ********** ********** ******* **** ********* ************************** * ******************** * ****** **** ** * ************* ******** ******* ******* *** ******* *** *** ***** ***** ** ** **** ********* *** *** **** *** ******* *** ******* ** * ****** *** *** ***** **** ***** * *************** ******** ** *** *** ****** * ************************ ******* **** **** ***** *** ******* *** *********** ** **** **** ** ***** ********** ******* **** ********* ************************** * ****************** ***** ***** ************** ** **************** ***************************** ******* **** ******** * *** ***** *** ******* *** *** *********** *** ******** ** ********* *** ** *** ******* ** **** ******* ** *** ***** ** ******** ********** ********** ******* **** ********* ************************** * **************************** *********** **************** ******* ***** ********* ****** ******* **** *********** ***** *** ******* **** *** ** ***** ** ********* *** * **** ********** *********** ******** ********************** * *********************** *** ****** *** ****************** * ****** * ****************** * ********************* * ****************** ******** *** ****** **************** ** ********** * ************** **** *** ******** **** **** **** *** ********** ****** *** **** ********* **** *** ******* ** *** ***** *** ******** ** *** ******* *** **** ***** * ****************** * ************************************ * *************************************** *** **** ********* ** *** ****** **** * **** ***** * ************** * **************************** * **************************** * ********************** * ******************************** * *************************** ********** ******** ****** **** ******* ********** * ************************ *** ******** **** ** *********** **** ***** ************* ****** **** ****** ******** ********** *********** ***************** * ********************* ********************* ************ ****** *** *** ***** ********** *********** ******** ********************** * ****************** **** ******** ******* *** ******* ****** *** ************ **** ******** ** ****** **** *** ********* *** ******* *********** *** *** ****** * *********** * ****************** * ************************************ * *************************************** ***** ********************* ** ***** * *********************** ************* ************ * ************** ************** ******* **************** * ********************* *********************************** * ******************************** * *************************** * **************************************** * **************************************** * ********************************* ***************** ******** ************* **** ******* ********** ***************** ******** * ***** ********** ****** ******* *** ******** * ************************* * **************************************** * ******************************************* * ***************************************** * ******************************************* * ********************************************** ******** ******** ********** *********** ******** ********************** * ************** ************** **************************** ******* *** ************* ******** * ************** ************** ************************* **** ********* * ************ ****** *** ************ **** * ****************** ****************** ************ ***** ******************* **** ******* * ****************** ******************** **** *** **** * ****** ******** ***** ** * ***** *** *** ****** *** ************* ********* * ********************* *** ****** * *********** * *** ********************* * ************* ********* *** ******************* * ********************** *** ******* ******** ** **** ********** * ******************************** * ******************************* * ***************************************************** * ************************************************** * ********************************************************* * ****************************************************** ******* *** ************* ********* * ************************************** * ************************************** ******* ****** ** **************** ********** *********** ******** ********************** * ************** ************** ******** **** ******** ******* ** *********** *** ************* ******* **** ********* ** ************ * ************** ************** ******* **************** *** ******* *** **************** * ******************************** * *************************** * ************************************** * ************************************** * ********************************* *************** ******** *********** **** ******* ********** *************** ******** * ***** ********** ****** ******* *** ******** ********** ******* **** ********* ************************** * *************** ***** ******* ** ***** *********** ********** ******* **** ********* ************************** * *************** **** ********* ************* ** ****** *** *********** **** ** *********** ** ** ************** * ******************* ***** ****** ** ****** *** ********** *** * ***** *********** * ******************* ***** *********** *** *** ****** ********* ****** ********** ******* *************** ************* * ************** ***** ******* ****** ** ******* *** ****** ** * ******** ******* **** ******* * ************ ***** ********** ******* *************** ************* * ************** ******* *** ***** ** ******** * ************ ***** * ************************************* ***** ******* ********** ***** ** *** ******* ******* * ************************* ***** * ******************************** ***** * ********************************** ***** * **************************** ***** * **************************** ***** ******* ** **** ************** ********** *** ********** **** *** ******* *** ***** ** * ********** ** ***** ******* ****** ** *** ********** ******* ****** ****** ** ***** ***** *** ******* ** ****** ******** ******* ****** ********** *********** ******** ********************** * ****** ***************** ****************** **** ******* ********** *********** ******** ********************** * ****** ***************** ****************** ******* ** ******* **** ********* *** ******** ******* ********** *********** ******** ********************** * **************** **************** ***************** *** ******* **** *** ** **** **** ************** ** ****** ******* ** * ************* * **************** **************** ****************** **************** ******************** *** ******** ****** **** *** *** ************ ********** ******* ** **** *** ********** * *************** ************** ************************************ ****** ************ ** *************** ********** *********** ******** ********************** * ******************************** * *************************** * ************************************ * ************************************ * ****** * ************** ******** ** ********* *** *********** ** ** **** ** *** *** ******** *** ******* **** ****** ** * ***** ******** *** ********* *** *********** ***** ******* *** ******* ** ********************* *** ********************* *** ******* ** ***************************** * ***************************** * ******************************** * ******************************** * ************************ * ************** * ****** ******** ** ******** ** ** **** ** ****** *** ********* *** ** ***** ** **** ** ********************* *** ****** ** *** ****** ********** ** *** ********** **** ***** ** ******* ** ******** *** ******** ** ******* ** ************* * ************** ************************** *********** * ********** ******* ********* ** ************ *** *** ****** *********** ** *** **** ***** ******* *** *** ********** * ******************* *** ****************** ******** ********* ***** **** ****** ******* ************************ ******** ** *** *** **** ****** *** ************ ** *** *********** *********** ********* ****** *** ************** * ********************************* * ********************************************** * ************************************************ *********** *** ********* ********** ******* **** *** ****** ****** **** ****** ******* ************************* ********** **** ***** *************** * ******** ***** * ************************ ******* ********** **** ***** *************** * ****************** ************************ *** ******* *** ***** ********* ** ***** * *********************** ****** ***** ************************ *** ************** ******** * ************************ ****** ********** **** ***** *************** * ************** ************** ******** *********** ************ * ****************** ****************** ************** *** *** *********** *** ********* **** **** **** *** ******* ***** ** **** ****** ******** **** ********** ********** ******* **** ********* ************************** * ******* ********* ****** ***** ** **** *** ****** ** ************ * *************** ********* ****** *** ********** ****** ***** ** ***** *** ******** ** * ***** **** ** ******* ** ***** ** *** ******* ***** * ********************** ***************** ****** ****** ********** ******* ******** ******************** * ********************** **** *** ****** ********** ***** * **************************** **** *** ****** ********** ***** * *************************** **** *** ****** ********** ***** * ******************* **** *** **** ***** *** ********** * ************ **** *** **** ***** *** ********** * ************** *************** *** ***************** ********* * ********************** **** *** **** ***** *** ********** * ************************ *** ********** ***** ****** **** *** ********** * ******* *** **** *** **** **** *** ********** * *********************************************** *** **** ********* ********* * *********************************************** *** ****** ********* ********* ********** ******* ******** ***************************** * ************ **** ******* *** *** ***** ***** * ********************** *********************** ******** ******** ** ************ **** ** ******* *********** * ****************** ************ * **** ********* **** ***** * ***************************************** ********* ****** * ********************************************** * *** ********* ********* * ************************************************* *** *********** ********* * ********************** *** **** ******* * **************************** *** **** ******* * ****************************************** *** ********** ********* ************ * ******************************************* *** *********** ********* * ****************************************** *** ********** ********* * ************************** *** ********* **** * *********************** *** ********* **** * *************************** *** ********* **** * ******************************* *** ********* **** * ******************************** *** ********* **** * *************************** *** ********* **** * ******************************* *** ********* **** * ******************************** *** ********* **** * *************************** *** ********* **** * **************************** *** ********* **** * ***************************** *** ********* **** * ************************ *** ********* **** * ***************************** *** ********* **** * *************************** *** ********* **** ********** ******* *************** ************* * *************** ******* ***** ********* ********* ** ******* ********* *** ********** ******** ***** **** *** ***** *** ***** *** ******* *********** ***** ** ********* ***** ****** ********** **** ***** *************** * ************** ************** ***************** **** **** **** ******* **** * ************************* *** ************* ** *** ** ******* ** ******************* *** ************************ ****** *** ***************** ************** * ******************************** ******** *** *** ******* *********** **** **** **** *** *************** ******** *** **** * ******* ******* ********** ******* *************** ************* * ******************* ***** ******* ******* ******** **** ******** ******* *** ****** ***** ** ************ ** ** ***** ******** *** * *** *********** ** *********** ********** *********** ******** ********************** * ************** ************** ******** *** *** ************* ********** ** **** ** ******** **** ************ *********** ********** ******* *************** ************* * ******************* **** ****** ***** ** ******* **** * ******************* **** **** ** ****** ** *** ** ******* ********** *********** ******** ********************** * ************************* ***************** ********************* ****** ********* ** *** ********* ******* *** *** * *** ******* ***** ********** ******* *************** ************* * ******************* ***** ****** ******* *** ****** ***** ** ** ***** *********** *** ** ******* ** ************ *** ********** ********** **** * *********** ******* ********** * ********************** *** *** * ******* ********** ****** ***** ******** ** ******* ******** ********** ******* ******** ***************************** * *********************** *********** *************** ****** ** ** *** * ******************************************* *** ****** *** *** ****** * ******************************************* *** ****** *** *** ****** * ************************* **** *** *** ****** ********* * ******************************************** *** ****** *** *** ****** * *********************************************** **** ****** *** ******* ** ****** ******* * ******************************************** **** ****** ** ****** ******* * ***************************************** **** ***** *** ******* * ****************************************** ** ****** ******** **** ****** * ************************************************* ** ****** ******* * ****************************************** ** ****** ******* * ***************************************** ** ****** ******** ******* ***** * ******************************** **** *** *********** ********** * **************************** *** ********* **** * ***************************** *** ********* **** * ************************** *** ********* **** * ***************************** *** ********* **** * *************************** *** ********* **** * ************************* *** ********* **** * ************************* *** ********* **** * ************************** *** ********* **** * ************************** *** ********* **** * ************************** *** ********* **** * ************************** *** ********* **** * ********************* *** ********* **** * ********************** *** ********* **** * ************************* *** ********* **** * ********************** *** ********* **** ********** *********** ******** ********************** * ******************* ******* ***************** ************* ** **** ******** ** *** ****** **** *** ******* **** **** ***** *** ****** **** *** ** ******** ***** ** ************************** ********** ******* ******** ***************************** * ****************************************** *** **** ********** * ********************************************* ********* * ************************************************* *** ***** ****** ********* * **************************************************** ******** * ****************************************** *** **** ********* * ********************************************* ******** * ******************************** *** ***** *** *** *** ********** * ******************************* *** ********** ** ********* ********** **** ***** *************** * ********************* ********************* ********************** ***** *** ** ****** ******* ***** ******** ***** ********** **** ***** *************** * *********************** *** *********** ********** **** ***** *************** * ************** ***************** **** *** * ***** ******* ************** ** ****** ******* **** **** ********* ** *********************** ********** **** ***** *************** * ****************** **************** ****** ****** ****** ** **** **** ***** ************* * ****************** ***************************************************** ***** ******* *** ********* ******* **** **** *** *** ** **** ********** **** ***** *************** * *** ******* *** ****** ***** * ****************** ************************ *** ******* *** ************** ************************ ********* *********************** ********* * ************** ***************** ****** ************ ** *************** ***************** ******** *** ********* * ***************** *** ****** * ************************** *** ********** ***** ********** **** ***** *************** * ******************************** *** ******** *** ***** ****** ****** * ******************************************** ****** *** *** ***** ****** ** *** ******** ********** **** ***** *************** * *********************** ************************ ********** ****** ** ********* ******** ****** * ****************** **************************** ********* ***** ****** ******* * ******************************** *** ****** ************* ********* *** *********** *********** ********** **** ***** *************** * ****************** ***************************************************** ***** ****** ** ***** ** ******* *** ****** * ******************************** ********* ****** **** ***** *** ****** ********** ********** **** ***** *************** * ***** ** ****** ******** ******* ******** ****** ****** ******** ******* *** ****** **** *** ******** * ****************** *********************** ******** *** **** **** *** ********* *** ******* *** ******** *** ********* ****** ****** * ******************* *** ***** *** ******* ****** ****** * ****************** ************************** ***** ** ******************* ***************************************************** **** ********* **** **** ****** ****** *** **** *** ****** ****** ** ********* ************** **** ****** ********* ** ************ ** ******* ******************* ****** ******** ** * *** ****** ******** **** * ******************************** *** ****** ********** ********** *********** ******** ********************** ***** *** ******* ** ****** *** **** ** *** ******** ******* * ******* *** ******** * ****** *************** *** ***** ** full control of the font's changes) added a menu item for the font panel added a shortcut for the palettes panel (@"p") * GormWindowEditor.m : [-acceptsFirstResponder] new method, returns YES [-initWithObject] set self as initialFirstResponder of the window [-changeFont:] new method, change the font of the selected controls [-selectObjects:] update the font in the font panel * Palettes/2Controls/GormSliderInspector.gorm: font updates 2001-08-20 Pierre-Yves Rivaille * Palettes/2Controls/main.m: Add stepper control to the controls' palette * Add stepper inspector. * Palettes/2Controls/inspectors.m: added GormSliderAttributsInspector class * Palettes/2Controls/GormSliderInspector.gorm: New file. * Palettes/2Controls/GNUmakefile: Update 2001-08-18 Adam Fedor * GormWindowEditor.m (-_editTextView:withEvent:): Size the NSForm to fit when titles are edited. * Add slider inspector. * Palettes/2Controls/inspectors.m: New file. * Palettes/2Controls/GormSliderInspector.gorm: Likewise. * Palettes/2Controls/GNUmakefile: Update 2001-07-18 Adam Fedor * Version 0.0.3. 2001-07-10 Richard Frith-Macdonald GormDocument.m: ([-detachObject:]) retain object name on entry and release on exit, or if the object is not in the name table the detach process could cause the name to be released before we try to use it to remove the object from the table. 2001-07-09 Richard Frith-Macdonald Gorm.m: Tidied code a little to conform to coding standards and avoid gcc-3.0 compiler warning. Incorporated Pierres fixes to his last patch. 2001-07-08 Mirko Viviani * GormWindowEditor.m ([GormWindowEditor -_editTextView:withEvent:]): return if mouse not on cell. 2001-07-07 Richard Frith-Macdonald Gomr.m: Fixed typo in info panel and updated a little. 2001-07-04 Pierre-Yves Rivaille Added the ability to create the .m and .h files of a class created within Gorm (it's a basic implementation but it works) Added an "application: openFile:" method in the class Gorm and a GormInfo.plist file, it is now possible to open a Gorm document from ProjectCenter (and I suppose GWorkspace but I have not checked yet) a keyEquivalent for the inspector (i was really missing this ...) no more [menu display] in the initialization of Gorm, I found out that it prevented a proper docking within WindowMaker's dock, and it does not seem to have any side effect. 2001-06-24 Mirko Viviani * GormWindowEditor.m ([GormWindowEditor -_validateFrame:forViewPtr: withEvent:update:update]): fixed checks for non-matrix control. Allow the matrix to reduce rows and columns. 2001-06-20 Adam Fedor * GormDocument.m (-beginArchiving): Add filesOwner class name to archive. (-loadDocument:): Retreive and set filesOwner class. * GormClassManager.m (-removeOutlet:forObject:): Remove from allOutlets even if not in extraOutlets. (-ok:): Implement renaming outlets. 2001-06-18 Adam Fedor * GormWindowEditor.m (-_validateFrame:forViewPtr:withEvent:update:update): Allow the frame to increase even if it's already too small. * Palettes/1Windows/main.m: Implement GormWindowSizeInspector. * Palettes/1Windows/GormWindowSizeInspector.gorm: New file. * Palettes/1Windows/GormWindowSizeInspector.class: Likewise. 2001-06-15 Adam Fedor * GormWindowEditor.m (-_editTextView:withEvent:): New method to edit text in place (handles only NSForms now). (-mouseDown:): Double-click on NSForm edits NSFormCell. 2001-06-06 Adam Fedor * Changes to allow an NSBox to be 'edited' and add subviews, move them around inside the box, etc. * GormPalettesManager.m (-mouseDown): Make sure the drag view is the proper one, not a subview of the indented item. * GormViewKnobs.m (GormDrawOpenKnobsForRect): New function. * GormWindowEditor: Add edit_view ivar to show which view accepts DnD, selections, etc. Changes to allow double-click to 'edit' an NSBox. 2001-05-09 Adam Fedor * GormWindowEditor.m (-_validateFrame:forViewPtr:withEvent:update:): New method - validate and update view during resize. 2001-05-08 Richard Frith-Macdonald Applied patch by Raphael Sebbe to add support for custom objects. Went through the code and tried to make it conform to GNUstep coding standards. * GNUmakefile: Custom class modifications * Gorm.h: ditto * Gorm.m: ditto * GormClassManager.h: ditto * GormClassManager.m: ditto * GormDocument.h: ditto * GormDocument.m: ditto * GormInspectorsManager.m: ditto * GormObjectEditor.m: ditto * GormPrivate.h: ditto * GormWindowEditor.m: ditto 2001-04-24 Adam Fedor * Version: 0.0.2 snapshot * GNUmakefile: Add rpm package info * Gorm.spec.in: New file. * Documentation/{readme,news,install}.texi: Update * README, INSTALL, NEWS: Regenerate 2001-02-07 Richard Frith-Macdonald * GormInspectorsManager.m: Resize a few buttons to fit text neatly. 2001-02-06 Richard Frith-Macdonald * Palettes/2Control/main.m: Added patch to tidy up and add more objects to the controls palette ... patch by Jason H Clouse Removed bogus code that selected a window when it was made key. 2001-01-27 Richard Frith-Macdonald * GormPalettesManager.m: Ensure that palette manager window can never become key or main. Accept first mouse events so drag start works. 2000-11-06 Adam Fedor * Documenation: Remove use of tmpl texi files Fri Feb 25 16:31:00 2000 Richard Frith-Macdonald * Gorm.m: Fix a few window deallocation problems. * GormDocument.m: Fix error in renaming objects. 2000-02-21 Adam Fedor * GNUmakefile: Don't make Documentation by default for those who don't have TeX setup. Sun Feb 14 06:56:00 2000 Richard Frith-Macdonald * Palettes/2Control/main.m: Add popup and pulldown menu controls though there is no way to edit them yet. Sun Feb 6 8:44:00 2000 Richard Frith-Macdonald Removed InfoPanel.m and updated Gorm to use standard panel now that NSApplication supports it. Fri Feb 4 11:10:59 2000 Richard Frith-Macdonald * Palettes/0Menu/GormMenuInspectors.m: Added code for setting key-equivalent in menu item inspector. Thu Feb 3 16:16:59 2000 Richard Frith-Macdonald * Gorm.m: tidied start/end testing. * GormDocument.m: ditto Sat Jan 15 04:35:59 2000 Nicola Pero * GormObjectEditor.m ([GormObjectEditor -activate]), ([GormObjectEditor -orderFront]): Trivial fix to make it compile. Fri Jan 14 16:22:00 2000 Richard Frith-Macdonald * GormDocument.m: Fix to deactivate editors while copying to pb and add support for a few more document setup types. * Gorm.m: Add Inspector, Panel and Empty documents. Fri Jan 14 9:34:00 2000 Richard Frith-Macdonald * Palettes/OMenus/GormMenuEditor.m: ([mouseDown:]) support for dragging menu items to rearrange their order. Thu Jan 13 20:34:00 2000 Richard Frith-Macdonald Preliminary menu support (very limited). Fri Jan 7 11:03:00 2000 Richard Frith-Macdonald * GNUmakefile: Set Gorm_PRINCIPAL_CLASS * Gorm.m: Do startup stuff in [-finishLaunching] and use the NSApplicationMain() function to run the app (as well-behaved apps do). Wed Jan 5 17:00:00 2000 Richard Frith-Macdonald * Palettes/0Menu/main.m: First cut at code for providing menus items on the palette. * GormWindowEditor.m: accept first mouse so we act immediately that the mouse is clicked anywhere in the window. * Palettes/1Window/main.m: Tidy attributes editor and add support for setting window title. Tue Jan 4 17:42:00 2000 Richard Frith-Macdonald Added 'miniaturize', 'close', and 'revert to saved' menu items and implemented their actions. Tue Jan 4 12:13:00 2000 Richard Frith-Macdonald Various tidyups Somewhat improved documentation Added registration ddefaults stuff Mon Jan 3 10:50:00 2000 Richard Frith-Macdonald Rewrote testing mechanism so that we test by creating an in-memory nib, and load that nib. This way, the testing process has no effect on the original objects in the document we are working on. Also changed the editor api so that we have a deactivate method. Editors are deactivated on archiving and reactivated afterwords - this means that we no longer need to destroy all editors during archiving in order to stop them being included in the archive. Thu Dec 23 16:32:00 1999 Richard Frith-Macdonald Added generic object inspector. Wed Dec 22 12:16:00 1999 Richard Frith-Macdonald Replaced the two NeXT images for sounds and classes. Improved drag and drop. Tue Dec 21 15:30:00 1999 Richard Frith-Macdonald Added size inspector for autoresizing of views. Tue Dec 21 8:10:00 1999 Richard Frith-Macdonald Added inspector for files owner so we can create connections from objects inside the nib to the files owner. Mon Dec 20 14:16:00 1999 Richard Frith-Macdonald Added connections inspector so connecting objects should work. Use information from 'ClassInformation.plist' to specify outlets and actions for a class. Added GormClassManager stuff to manage this information. Sat Dec 18 21:24:00 1999 Richard Frith-Macdonald Add partial support for draagging into object view. Fix move/resize of window subviews to make sure subviews can't be dragged outside visible area. Fri Dec 17 18:44:00 1999 Richard Frith-Macdonald Add some support for connections - handle link dragging within window editor - raise connection inspector on completion. Thu Dec 16 21:35:00 1999 Richard Frith-Macdonald Change directory structure - add palettes directory, move palettes into it, rename them, change automatic loading of palettes to do it in palette name order. Thu Dec 16 15:45:00 1999 Richard Frith-Macdonald * GormWindowEditor.m: Implemented support for moving and resizing subviews within a window. * Gorm.m: Implemented edit menu (mostly) with cut and paste. Thu Dec 16 6:54:00 1999 Richard Frith-Macdonald * GormWindowEditor.m: Implemented selection mechanism including marking subviews within a window by drawing knobs on them. Wed Dec 15 15:27:00 1999 Richard Frith-Macdonald Archive save/restore fixes. Implementation of framework for interactive testing mode. Tue Dec 14 20:13:00 1999 Richard Frith-Macdonald Enough for today. * View/View.m: Added a single button to the 'View' palette. * GormPaletteManager.m: improve DnD image ffset code. * GormWindowEditor.m: accept dropped views in window. Tue Dec 14 19:53:00 1999 Richard Frith-Macdonald Removed GormResourcesManager - merged functionality into GormDocument Loads of other minor changes too - hopefully all simplified a bit. Tue Dec 14 17:33:00 1999 Richard Frith-Macdonald * GormDocument.m: Major changes - nearly all methods implemented to including all the editor related methods. * GormWindowEditor.m: Loads of stuff fleshed out, mostly just leaving drawing code to do. Mon Dec 13 20:04:00 1999 Richard Frith-Macdonald * GormViewKnobs.m: imported from IM Mon Dec 13 14:57:00 1999 Richard Frith-Macdonald * Gorm.h: Added NSView additions * GormWindowEditor.m: new skeleton file. * GormDocument.m: handle class replacement on archiving/unarchiving. Add filesOwner and firstResponder dummy objects. * GormResourcesManager.m: tidy files owner and first responder stuff. * GormObjectEditor.m: Use neater mechanism for determining image to be displayed in matrix. Wed Dec 8 20:54:00 1999 Richard Frith-Macdonald * Gorm.m: ([-init]) make sure that the palettes manager is loaded. Wed Dec 8 16:33:00 1999 Richard Frith-Macdonald * GormObjecteditor.m: ([-refreshCells]) cell highlighting fixed so that empty cells in the matrix can't be highlighted. gorm-1.2.24/Palettes/0000755000000000000000000000000013410616261013023 5ustar rootrootgorm-1.2.24/Palettes/3Containers/0000755000000000000000000000000013426741712015222 5ustar rootrootgorm-1.2.24/Palettes/3Containers/ContainersPalette.tiff0000644000000000000000000002230213410616261021510 0ustar rootrootII*$ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿIÿUUUÿUUUÿUUUÿÿUUUÿUUUÿUUUÿUUUÿUUUÿUUUÿUUUÿUUUÿUUUÿUUUÿUUUÿUUUÿÿUUUÿUUUÿUUUÿUUUÿUUUÿUUUÿUUUÿUUUÿUUUÿUUUÿUUUÿUUUÿUUUÿÿUUUÿUUUÿUUUÿUUUÿUUUÿUUUÿUUUÿUUUÿUUUÿUUUÿUUUÿ+++ÿÿŠÿUUUÿUUUÿUUUÿÿUUUÿUUUÿUUUÿUUUÿUUUÿUUUÿUUUÿUUUÿUUUÿUUUÿUUUÿUUUÿÿUUUÿUUUÿUUUÿUUUÿUUUÿUUUÿUUUÿUUUÿUUUÿUUUÿUUUÿUUUÿUUUÿÿUUUÿUUUÿUUUÿUUUÿUUUÿUUUÿUUUÿUUUÿUUUÿUUUÿUUUÿ+++ÿÿŠ(ÿUUUÿUUUÿUUUÿÿUUUÿUUUÿUUUÿUUUÿUUUÿUUUÿUUUÿUUUÿUUUÿUUUÿUUUÿUUUÿÿUUUÿUUUÿUUUÿUUUÿUUUÿUUUÿUUUÿUUUÿUUUÿUUUÿUUUÿUUUÿUUUÿÿUUUÿUUUÿUUUÿUUUÿUUUÿUUUÿUUUÿUUUÿUUUÿUUUÿUUUÿ+++ÿÿŠ(ÿUUUÿUUUÿUUUÿÿUUUÿUUUÿUUUÿUUUÿUUUÿUUUÿUUUÿUUUÿUUUÿUUUÿUUUÿUUUÿÿUUUÿUUUÿUUUÿUUUÿUUUÿUUUÿUUUÿUUUÿUUUÿUUUÿUUUÿUUUÿUUUÿÿUUUÿUUUÿUUUÿUUUÿUUUÿUUUÿUUUÿUUUÿUUUÿUUUÿUUUÿ+++ÿÿŠ(ÿ+++ÿ+++ÿ+++ÿÿ+++ÿ+++ÿ+++ÿ+++ÿ+++ÿ+++ÿ+++ÿ+++ÿ+++ÿ+++ÿ+++ÿ+++ÿÿ+++ÿ+++ÿ+++ÿ+++ÿ+++ÿ+++ÿ+++ÿ+++ÿ+++ÿ+++ÿ+++ÿ+++ÿ+++ÿÿ+++ÿ+++ÿ+++ÿ+++ÿ+++ÿ+++ÿ+++ÿ+++ÿ+++ÿ+++ÿ+++ÿ+++ÿÿŠ(ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿŠ(ÿUUUÿUUUÿUUUÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿªªªÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿªªªÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿŠ(ÿUUUÿUUUÿUUUÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿªªªÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿªªªÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿŠ(ÿUUUÿUUUÿUUUÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿªªªÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿªªªÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿŠ(ÿUUUÿUUUÿUUUÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿªªªÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿªªªÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿŠ(ÿUUUÿUUUÿUUUÿÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿÿŠ(ÿUUUÿUUUÿUUUÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿªªªÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿªªªÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿŠ(ÿUUUÿUUUÿUUUÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿªªªÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿªªªÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿŠ(ÿUUUÿUUUÿUUUÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿªªªÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿªªªÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿŠ(ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿªªªÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿªªªÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿŠ(ÿªªªÿªªªÿªªªÿÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿÿŠ(ÿªªªÿªªªÿªªªÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿªªªÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿªªªÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿŠ(ÿªªªÿªªªÿªªªÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿªªªÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿàÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿªªªÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿŠ(ÿªªªÿªªªÿªªªÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿªªªÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿªªªÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿŠ(ÿªªªÿ+++ÿªªªÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿªªªÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿªªªÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿŠ(ÿªªªÿÿÿÿÿªªªÿÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿÿŠ(ÿªªªÿªªªÿªªªÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿªªªÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿªªªÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿŠ(ÿªªªÿªªªÿªªªÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿªªªÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿªªªÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿŠ(ÿªªªÿªªªÿªªªÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿªªªÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿªªªÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿŠ(ÿªªªÿªªªÿªªªÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿªªªÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿªªªÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿŠ(ÿÿÿÿÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿÿŠ(ÿUUUÿUUUÿUUUÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿªªªÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿªªªÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿŠ(ÿUUUÿUUUÿUUUÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿªªªÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿªªªÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿŠ(ÿUUUÿUUUÿUUUÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿªªªÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿªªªÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿŠ(ÿUUUÿUUUÿUUUÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿªªªÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿªªªÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿŠ(ÿUUUÿUUUÿUUUÿÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿÿŠ(ÿUUUÿUUUÿUUUÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿªªªÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿªªªÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿŠ(ÿUUUÿUUUÿUUUÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿªªªÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿªªªÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿŠ(ÿUUUÿUUUÿUUUÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿªªªÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿªªªÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿŠ(ÿUUUÿUUUÿUUUÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿªªªÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿªªªÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿŠ(ÿUUUÿUUUÿUUUÿÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿÿŠ(ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿªªªÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿªªªÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿŠ(ÿªªªÿªªªÿUUUÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿªªªÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿªªªÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿŠ(ÿªªªÿÿUUUÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿªªªÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿªªªÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿŠ(ÿUUUÿUUUÿUUUÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿªªªÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿªªªÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿŠ(ÿÿÿ ÿÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿÿŠ(ÿªªªÿªªªÿUUUÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿªªªÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿªªªÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿŠ(ÿªªªÿÿUUUÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿªªªÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿªªªÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿŠ(ÿUUUÿUUUÿUUUÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿªªªÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿªªªÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿŠ(ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿŠ(IŠŠŠŠŠŠŠŠŠŠŠŠŠŠŠŠŠŠŠŠŠŠŠŠŠŠŠŠŠŠŠŠŠŠŠŠŠŠŠŠŠŠŠŠŠ((((((((((((((((((((((((((((((((((((((((((((((( 00ª$$²$º$(R€ü '€ü 'gorm-1.2.24/Palettes/3Containers/GormNSTableView.m0000644000000000000000000001215713410616261020347 0ustar rootroot/* GormNSTableView.m Copyright (C) 2001 Free Software Foundation, Inc. Author: Pierre-Yves Rivaille Date: 2001 This file is part of GNUstep. This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 3 of the License, or (at your option) any later version. This program 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 General Public License for more details. You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02111 USA. */ #include #include #include #include "GormNSTableView.h" /* --------------------------------------------------------------- * NSTableView dataSource */ @interface NSTableViewDataSource: NSObject - (NSInteger) numberOfRowsInTableView: (NSTableView *)tv; - (id)tableView:(NSTableView *)aTableView objectValueForTableColumn:(NSTableColumn *)aTableColumn row:(NSInteger)rowIndex; @end static NSString* value1[] = {@"zero", @"un", @"deux", @"trois", @"quatre", @"cinq", @"six", @"sept", @"huit", @"neuf"}; static NSString* value2[] = {@"zero", @"one", @"two", @"three", @"four", @"five", @"six", @"seven", @"eight", @"nine"}; @implementation NSTableViewDataSource - (NSInteger) numberOfRowsInTableView: (NSTableView *)tv { return 10; } - (id)tableView:(NSTableView *)aTableView objectValueForTableColumn:(NSTableColumn *)aTableColumn row:(NSInteger)rowIndex { if ([[aTableColumn identifier] isEqual: @"column1"]) { return value1[rowIndex]; } return value2[rowIndex]; } - (void) encodeWithCoder: (NSCoder *)coder { return; } - (id) initWithCoder: (NSCoder *)coder { return self; } @end static id _sharedDataSource = nil; @implementation NSTableView (GormPrivate) + (id) allocSubstitute { return [GormNSTableView alloc]; } @end @implementation GormNSTableView + (id) sharedDataSource { if (_sharedDataSource == nil) { _sharedDataSource = [[NSTableViewDataSource alloc] init]; } return _sharedDataSource; } - (id) initWithFrame: (NSRect) aRect { self = [super initWithFrame: aRect]; [super setDataSource: [GormNSTableView sharedDataSource]]; _gormDataSource = nil; // ASSIGN(_savedColor, [NSColor controlBackgroundColor]); return self; } - (void)setDataSource: (id)anObject { _gormDataSource = anObject; } - (id)dataSource { return _gormDataSource; } - (void)setDelegate: (id)anObject { _gormDelegate = anObject; } - (id)delegate { return _gormDelegate; } - (void)setGormDelegate: (id)anObject { [super setDelegate: anObject]; } - (void)encodeWithCoder: (NSCoder*) aCoder { id oldDelegate; // set actual values... _allowsColumnReordering = _gormAllowsColumnReordering; _allowsColumnResizing = _gormAllowsColumnResizing; _allowsColumnSelection = _gormAllowsColumnSelection; _allowsMultipleSelection = _gormAllowsMultipleSelection; _allowsEmptySelection = _gormAllowsEmptySelection; _dataSource = _gormDataSource; oldDelegate = _delegate; _delegate = _gormDelegate; _numberOfRows = 0; [super encodeWithCoder: aCoder]; // reset fake values... _numberOfRows = 10; _allowsColumnReordering = YES; _allowsColumnResizing = YES; _allowsColumnSelection = YES; _allowsMultipleSelection = NO; _allowsEmptySelection = YES; _delegate = oldDelegate; _dataSource = _sharedDataSource; } - (id) initWithCoder: (NSCoder*) aCoder { self = [super initWithCoder: aCoder]; [super setDataSource: [GormNSTableView sharedDataSource]]; _gormAllowsColumnReordering = _allowsColumnReordering; _gormAllowsColumnResizing = _allowsColumnResizing; _gormAllowsColumnSelection = _allowsColumnSelection; _gormAllowsMultipleSelection = _allowsMultipleSelection; _gormAllowsEmptySelection = _allowsEmptySelection; _gormDelegate = _delegate; _delegate = nil; return self; } - (void) setGormAllowsColumnReordering: (BOOL)flag { _gormAllowsColumnReordering = flag; } - (BOOL) gormAllowsColumnReordering { return _gormAllowsColumnReordering; } - (void) setGormAllowsColumnResizing: (BOOL)flag { _gormAllowsColumnResizing = flag; } - (BOOL) gormAllowsColumnResizing { return _gormAllowsColumnResizing; } - (void) setGormAllowsMultipleSelection: (BOOL)flag { _gormAllowsMultipleSelection = flag; } - (BOOL) gormAllowsMultipleSelection { return _gormAllowsMultipleSelection; } - (void) setGormAllowsEmptySelection: (BOOL)flag { _gormAllowsEmptySelection = flag; } - (BOOL) gormAllowsEmptySelection { return _gormAllowsEmptySelection; } - (void) setGormAllowsColumnSelection: (BOOL)flag { _gormAllowsColumnSelection = flag; } - (BOOL) gormAllowsColumnSelection { return _gormAllowsColumnSelection; } - (NSString *) className { return @"NSTableView"; } @end gorm-1.2.24/Palettes/3Containers/GormNSTableViewInspector.gorm/0000755000000000000000000000000013410616261023015 5ustar rootrootgorm-1.2.24/Palettes/3Containers/GormNSTableViewInspector.gorm/objects.gorm0000644000000000000000000003372013410616261025341 0ustar rootrootGNUstep archive000f4240:00000020:00000131:00000001:01GSNibContainer1NSObject01 NSMutableSet1NSSet&01GSWindowTemplate1GSClassSwapper01NSString&% NSWindow1NSWindow1 NSResponder% ?ð ?ð @q @xÀJI @ƒ @‰01 NSView% ?ð ?ð @q @xÀ  @q @xÀJ01 NSMutableArray1 NSArray&01 NSBox% @D€ @r° @g@ @U@  @g@ @U@J 0± &0 ± % @ @ @e€ @N  @e€ @NJ0 ± &0 1NSButton1 NSControl% @E @dà @0  @dà @0J0 ± &%0 1 NSButtonCell1 NSActionCell1NSCell0±&%Allows multiple selection01NSImage01NSMutableString&%GSSwitch01NSFont%&&&&&&JJ&&&&&&I’0±&0±&0±0±&%GSSwitchSelected&&& &&0±% @ @5 @d@ @0  @d@ @0J0± &%0±0±&%Allows empty selection°°&&&&&&JJ&&&&&&I’0±&0±&°&&& &&0±% @  @d` @0  @d` @0J0± &%0±0±&%Allows column selection°°&&&&&&JJ&&&&&&I’0 ±&0!±&°&&& &&0"1NSTextFieldCell0#±& % Selection0$±% A@&&&&&&JJ &&&&&&I’0%1NSColor0&±&% NSNamedColorSpace0'±&% System0(±&% windowBackgroundColor0)±0*±&% NSCalibratedRGBColorSpace ?€ @ @%%0+± % @D€ @nà @g@ @J  @g@ @JJ0,± &0-± % @ @ @e€ @;  @e€ @;J0.± &0/±%  @R@ @0  @R@ @0J00± &%01±02±&%Vertical°°$&&&&&&JJ&&&&&&I2 ok:v24@0:8@1603±&04±&°&&& &&05±% @T@  @VÀ @0  @VÀ @0J06± &%07±08±& % Horizontal°°$&&&&&&JJ&&&&&&I²09±&0:±&°&&& &&0;±0<±& % Scrollers°$&&&&&&JJ &&&&&&I’°%0=±°* ?€ @ @%%0>± % @$ @]@ @c  @S@  @c  @S@J0?± &0@± % @ @ @aà @J  @aà @JJ0A± &0B1NSForm1NSMatrix% @ @ @`@ @E€  @`@ @E€J0C± &%0D1 NSFormCell0E±&°$&&&&&&JJ&&&&&&I’ ¿€0F±0G±&%Field:°$&&&&&&JJ&&&&&&% @`@ @4 @0H±°&°'0I±&% controlBackgroundColor0J±°* ?*Àƒ ?*Àƒ ?*Àƒ ?*Àƒ ?€0K±& % NSFormCell%%0L± &0M±0N±&%16°$&&&&&&JJ&&&&&&I’ B€0O±0P±& % Row Height:°$&&&&&&JJ&&&&&&0Q±0R±&%2°&&&&&&JJ&&&&&&I’ B€0S±0T±&%#Columns°&&&&&&JJ&&&&&&²’’°Q0U±0V±& % Dimensions°$&&&&&&JJ &&&&&&I’°%0W±°* ?€ @ @%%0X± % @D€ @? @g@ @U€  @g@ @U€J"0Y± &0Z± % @ÊÛ @Eþ @e³RP @O×@.  @e³RP @O×@.J0[± &0\±% @? @E×@  @\ @0  @\ @0J0]± &%0^±0_±& % Draws grid°°&&&&&&JJ&&&&&&I’0`±&0a±&°&&& &&0b±% @? @4®€@ @\ @7  @\ @7J0c± &%0d±0e±&%Allows resizing°°&&&&&&JJ&&&&&&I’0f±&0g±&°&&& &&0h±% @1  @_€ @7  @_€ @7J0i± &%0j±0k±&%Allows reordering°°&&&&&&JJ&&&&&&I’0l±&0m±&°&&& &&0n±0o±&%Options°$&&&&&&JJ &&&&&&I’°%0p±°* ?€ @ÊÛ @‹ý %%0q± % @D€ @h@ @g@ @J€  @g@ @J€J20r± &0s± % @ @ @e€ @<  @e€ @<J0t± &0u±% @@€  @Y @<  @Y @<J0v± &%0w±0x±&°$&&&&&&JJ&&&&&&I’% @9 @< Áà0y±°* ?*Àƒ ?*Àƒ ?*Àƒ ?*Àƒ ?€°y0z±& % NSButtonCell0{±0|±&%Button°$&&&&&&JJ&&&&&&I’0}±&0~±&&&& &&%%0± &0€±0±&0‚±0ƒ±& % noBorder_nib°$&&&&&&JJ&&&&&&I’0„±&°~&&& &&0…±0†±&0‡±0ˆ±&%line_nib°$&&&&&&JJ&&&&&&I’0‰±&°~&&& &&0б0‹±&0Œ±0±& % bezel_nib°$&&&&&&JJ&&&&&&I’0ޱ&°~&&& &&0±0±&0‘±0’±& % ridge_nib°$&&&&&&JJ&&&&&&I’0“±&°~&&& &&²’’°€0”±0•±&%Border°$&&&&&&JJ &&&&&&I’°%0–±°* ?€ @ @%%0—±% @WÀ @ @R @6  @R @6J"0˜± &%0™±0š±&°$&&&&&&JJ&&&&&&I’ ¿€0›±0œ±&%Field:°$&&&&&&JJ&&&&&&% @R @6 @°H0±°* ?*Àƒ ?*Àƒ ?*Àƒ ?*Àƒ ?€0ž±& % NSFormCell%%0Ÿ± &0 ±0¡±&%0°$&&&&&&JJ&&&&&&I’ AÈ0¢±0£±&%Tag:°$&&&&&&JJ&&&&&&’’’° 0¤± % @e€ @]@ @V€ @S@  @V€ @S@J0¥± &0¦± % @ @ @S @J  @S @JJ0§± &0¨1 NSColorWell% @$ @$ @J€ @@  @J€ @@J0©± &%0ª±0«±&°&&&&&&JJ&&&&&&0¬±0­±&% NSCalibratedWhiteColorSpace ?€’0®±0¯±& % Background °&&&&&&JJ&&&&&& @ @%%°%0°±&%Window0±±&%TableView Attributes Inspector°± @ @9 @È @ÈI&   @ž @à0²± &0³± &0´1NSMutableDictionary1 NSDictionary&0µ±&%Box2°>0¶±&%Button1°50·±& % ColorWell°¨0¸±& % Inspector°0¹±&%Box4°q0º±&%Button3°0»±&%Button5°\0¼±&% NSOwner0½±&%GormTableViewInspector0¾±&%Box1°+0¿±&%Button7°h0À±&%Form2°—0Á±&%Form°B0±&%Matrix2°u0ñ&%Box3°X0ı&%Button2° 0ű&%Box5°¤0Ʊ&%Button°/0DZ&%Button4°0ȱ&%Box°0ɱ&%Button6°b0ʱ&%Form10˱% @e€ @T@ @UÀ @B€  @UÀ @B€J0̱ &%0ͱ0α&°$&&&&&&JJ&&&&&&I’ ¿€0ϱ0б&%Field:°$&&&&&&JJ&&&&&&% @UÀ @1 @0ѱ°* ?*Àƒ ?*Àƒ ?*Àƒ ?*Àƒ ?€°Ñ0Ò±& % NSFormCell%%0Ó± &0Ô±°Î°$&&&&&&JJ&&&&&&I’ B0Õ±0Ö±&%Field 1°$&&&&&&JJ&&&&&&0×±°Î°$&&&&&&JJ&&&&&&I’ B0ر0Ù±&%Field 2°$&&&&&&JJ&&&&&&’’’°Ô0Ú± &660Û1NSNibConnector°¸0ܱ&% NSOwner0Ý1NSNibOutletConnector°Ü°¸0Þ±&%window0ß±°È°¸0à±°¾°¸0ᱰư¸0â±°¶°¸0ã±°µ°¸0ä±°Á°¸0屰ð¸0汰ܰÆ0ç±&%verticalScrollerSwitch0豰ܰ¶0é±&%horizontalScrollerSwitch0거ܰÁ0ë±&%rowsHeightForm0ì1 NSNibControlConnector°Æ°Ü0í±&%ok:0î± °¶°Ü°í0ï±°¹°¸0ð±°Â°¸0ñ±°Ü°Â0ò±& % borderMatrix0ó± °Â°Ü0ô±&%ok:0õ±°Ê°¸0ö±°À°¸0÷±°Ü°À0ø±&%tagField0ù±°Å0ú±°·0û± °·°Ü0ü±&%ok:0ý±°Ü°·0þ±&%backgroundColor0ÿ±°Æ°¶P±& % nextKeyViewP±°¶°ÂÐP±°Â°ÁÐP±°Á°·ÐP±°Á°ÜP±&%delegateP±°À°ÜP±&%delegateP±°ÄP ±°ºP ±°ÇP ±°Ü°ÄP ±&%multipleSelectionSwitchP ±°Ü°ºP±&%emptySelectionSwithP±°Ü°ÇP±&%columnSelectionSwitchP± °Ä°ÜP±&%ok:P± °º°ÜÐP± °Ç°ÜÐP±°Ä°ºP±& % nextKeyViewP±°º°ÇÐP±°Ç°ÆÐP±°À°ÄÐP±°»P±°ÉP±°¿P±°Ü°»P±&%drawgridSwitchP±°Ü°ÉP ±&%resizingSwitchP!±°Ü°¿P"±&%reorderingSwitchP#± °»°ÜP$±&%ok:P%± °É°ÜÐ$P&± °¿°ÜÐ$P'±°Ü°ÀP(±&%tagFormP)±&gorm-1.2.24/Palettes/3Containers/GormNSTableViewInspector.gorm/data.classes0000644000000000000000000000072113410616261025305 0ustar rootroot{ "## Comment" = "Do NOT change this file, Gorm maintains it"; GormTableViewInspector = { Actions = ( ); Outlets = ( borderMatrix, horizontalScrollerSwitch, optionMatrix, rowsHeightForm, verticalScrollerSwitch, backgroundColor, tagForm, multipleSelectionSwitch, emptySelectionSwith, columnSelectionSwitch, drawgridSwitch, resizingSwitch, reorderingSwitch ); Super = IBInspector; }; }gorm-1.2.24/Palettes/3Containers/GormNSTableViewInspector.gorm/data.info0000644000000000000000000000027013410616261024602 0ustar rootrootGNUstep archive000f4240:00000003:00000003:00000000:01GormFilePrefsManager1NSObject%01NSString&%Latest Version0±& % Typed Streamgorm-1.2.24/Palettes/3Containers/inspectors.m0000644000000000000000000000362013410616261017563 0ustar rootroot/* inspectors - Various inspectors for control elements Copyright (C) 2001 Free Software Foundation, Inc. Author: Laurent Julliard Author: Gregory John Casamento Date: Aug 2001. 2003, 2004 This file is part of GNUstep. This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 3 of the License, or (at your option) any later version. This program 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 General Public License for more details. You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02111 USA. */ #include #include #include /** * IBObjectAdditions categories. */ @implementation NSBrowser (IBObjectAdditions) - (NSString*) inspectorClassName { return @"GormBrowserAttributesInspector"; } @end @implementation NSTabView (IBObjectAdditions) - (NSString*) inspectorClassName { return @"GormTabViewAttributesInspector"; } - (NSString*) editorClassName { return @"GormTabViewEditor"; } @end @implementation NSTableColumn (IBObjectAdditions) - (NSString *) inspectorClassName { return @"GormTableColumnAttributesInspector"; } @end @implementation NSTableView (IBObjectAdditions) - (NSString*) inspectorClassName { return @"GormTableViewAttributesInspector"; } - (NSString*) sizeInspectorClassName { return @"GormTableViewSizeInspector"; } - (NSString*) editorClassName { return @"GormTableViewEditor"; } @end gorm-1.2.24/Palettes/3Containers/GormNSOutlineView.m0000644000000000000000000001500313410616261020730 0ustar rootroot/* GormNSOutlineView.m Copyright (C) 2002 Free Software Foundation, Inc. Author: Gregory John Casamento Date: 2002 This file is part of GNUstep. This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 3 of the License, or (at your option) any later version. This program 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 General Public License for more details. You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02111 USA. */ #include "GormNSOutlineView.h" #include /* --------------------------------------------------------------- * NSTableView dataSource */ @interface NSOutlineViewDataSource: NSObject { } - (id)outlineView: (NSOutlineView *)outlineView child: (NSInteger)index ofItem: (id)item; - (BOOL)outlineView: (NSOutlineView *)outlineView isItemExpandable: (id)item; - (NSInteger) outlineView: (NSOutlineView *)outlineView numberOfChildrenOfItem: (id)item; - (id) outlineView: (NSOutlineView *)outlineView objectValueForTableColumn: (NSTableColumn *)tableColumn byItem: (id)item; @end @implementation NSOutlineViewDataSource // required methods for data source - (id)outlineView: (NSOutlineView *)outlineView child: (NSInteger)index ofItem: (id)item { if([item isEqual: @"NSObject"]) { switch(index) { case 0: return @"NSApplication"; break; case 1: return @"NSTableColumn"; break; case 2: return @"NSStatusBar"; break; case 3: return @"NSResponder"; break; default: break; } } if([item isEqual: @"NSResponder"]) { switch(index) { case 0: return @"NSWindow"; break; case 1: return @"NSView"; break; default: break; } } else if(item == nil) { if(index == 0) return @"NSObject"; } return nil; } - (BOOL)outlineView: (NSOutlineView *)outlineView isItemExpandable: (id)item { if([item isEqual: @"NSObject"]) return YES; if([item isEqual: @"NSResponder"]) return YES; return NO; } - (NSInteger) outlineView: (NSOutlineView *)outlineView numberOfChildrenOfItem: (id)item { if(item == nil) return 1; else if([item isEqual: @"NSObject"]) return 4; else if([item isEqual: @"NSResponder"]) return 2; return 0; } - (id) outlineView: (NSOutlineView *)outlineView objectValueForTableColumn: (NSTableColumn *)tableColumn byItem: (id)item { NSString *value = nil; if([item isEqual: @"NSObject"]) { if([[tableColumn identifier] isEqual: @"classes"]) { value = @"NSObject"; } else if([[tableColumn identifier] isEqual: @"outlets"]) { value = @"0"; } else if([[tableColumn identifier] isEqual: @"actions"]) { value = @"0"; } } else { if([[tableColumn identifier] isEqual: @"classes"]) { value = @"NSApplication"; } else if([[tableColumn identifier] isEqual: @"outlets"]) { value = @"2"; } else if([[tableColumn identifier] isEqual: @"actions"]) { value = @"3"; } } return value; } @end static id _sharedDataSource = nil; @implementation NSOutlineView (GormPrivate) + (id) allocSubstitute { return [GormNSOutlineView alloc]; } @end @implementation GormNSOutlineView + (id) sharedDataSource { if (_sharedDataSource == nil) { _sharedDataSource = [[NSOutlineViewDataSource alloc] init]; } return _sharedDataSource; } - (id) initWithFrame: (NSRect) aRect { self = [super initWithFrame: aRect]; [super setDataSource: [GormNSOutlineView sharedDataSource]]; _gormDataSource = nil; return self; } - (void)setDataSource: (id)anObject { _gormDataSource = anObject; } - (id)dataSource { return _gormDataSource; } - (void)setDelegate: (id)anObject { _gormDelegate = anObject; } - (id)delegate { return _gormDelegate; } - (void)setGormDelegate: (id)anObject { [super setDelegate: anObject]; } - (void)encodeWithCoder: (NSCoder*) aCoder { id oldDelegate; int oldNumberOfRows; // set real values... _allowsColumnReordering = _gormAllowsColumnReordering; _allowsColumnResizing = _gormAllowsColumnResizing; _allowsColumnSelection = _gormAllowsColumnSelection; _allowsMultipleSelection = _gormAllowsMultipleSelection; _allowsEmptySelection = _gormAllowsEmptySelection; _dataSource = _gormDataSource; oldDelegate = _delegate; _delegate = _gormDelegate; oldNumberOfRows = _numberOfRows; _numberOfRows = 0; [super encodeWithCoder: aCoder]; // set fake values back... _numberOfRows = oldNumberOfRows; _allowsColumnReordering = YES; _allowsColumnResizing = YES; _allowsColumnSelection = YES; _allowsMultipleSelection = NO; _allowsEmptySelection = YES; _delegate = oldDelegate; _dataSource = _sharedDataSource; } - (id) initWithCoder: (NSCoder*) aCoder { self = [super initWithCoder: aCoder]; [super setDataSource: [GormNSOutlineView sharedDataSource]]; _gormAllowsColumnReordering = _allowsColumnReordering; _gormAllowsColumnResizing = _allowsColumnResizing; _gormAllowsColumnSelection = _allowsColumnSelection; _gormAllowsMultipleSelection = _allowsMultipleSelection; _gormAllowsEmptySelection = _allowsEmptySelection; _gormDelegate = _delegate; _delegate = nil; return self; } - (void) setGormAllowsColumnReordering: (BOOL)flag { _gormAllowsColumnReordering = flag; } - (BOOL) gormAllowsColumnReordering { return _gormAllowsColumnReordering; } - (void) setGormAllowsColumnResizing: (BOOL)flag { _gormAllowsColumnResizing = flag; } - (BOOL) gormAllowsColumnResizing { return _gormAllowsColumnResizing; } - (void) setGormAllowsMultipleSelection: (BOOL)flag { _gormAllowsMultipleSelection = flag; } - (BOOL) gormAllowsMultipleSelection { return _gormAllowsMultipleSelection; } - (void) setGormAllowsEmptySelection: (BOOL)flag { _gormAllowsEmptySelection = flag; } - (BOOL) gormAllowsEmptySelection { return _gormAllowsEmptySelection; } - (void) setGormAllowsColumnSelection: (BOOL)flag { _gormAllowsColumnSelection = flag; } - (BOOL) gormAllowsColumnSelection { return _gormAllowsColumnSelection; } - (NSString *) className { return @"NSOutlineView"; } @end gorm-1.2.24/Palettes/3Containers/GormNSBrowser.m0000644000000000000000000000566213410616261020113 0ustar rootroot/* GormNSBrowser.m Copyright (C) 2001 Free Software Foundation, Inc. Author: Pierre-Yves Rivaille Date: 2001 This file is part of GNUstep. This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 3 of the License, or (at your option) any later version. This program 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 General Public License for more details. You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02111 USA. */ #include #include #include #include "GormNSBrowser.h" /* --------------------------------------------------------------- * NSBrowser Delegate */ @interface NSBrowserDelegate: NSObject { } - (NSInteger) browser: (NSBrowser *)sender numberOfRowsInColumn: (NSInteger)column; - (NSString *) browser: (NSBrowser *)sender titleOfColumn: (NSInteger)column; - (void) browser: (NSBrowser *)sender willDisplayCell: (id)cell atRow: (NSInteger)row column: (NSInteger)column; @end @implementation NSBrowserDelegate - (NSInteger) browser: (NSBrowser *)sender numberOfRowsInColumn: (NSInteger)column { return 0; } - (NSString *) browser: (NSBrowser *)sender titleOfColumn: (NSInteger)column { return (column==0) ? @"Browser" : @""; } - (void) browser: (NSBrowser *)sender willDisplayCell: (id)cell atRow: (NSInteger)row column: (NSInteger)column { // NSDebugLog(@"%@: browser %@ will display %@ %@ at %d,%d",self,sender,[cell class],cell,row,column); // This code should never be called because there is no row // in our browser. But just in case... [cell setLeaf:YES]; [cell setStringValue: @""]; } @end static id _sharedDelegate = nil; @implementation GormNSBrowser + (id) sharedDelegate { if (_sharedDelegate == nil) { _sharedDelegate = [[NSBrowserDelegate alloc] init]; } return _sharedDelegate; } - (id) initWithFrame: (NSRect) aRect { self = [super initWithFrame: aRect]; [super setDelegate: [GormNSBrowser sharedDelegate]]; _gormDelegate = nil; return self; } - (void)setDelegate: (id)anObject { _gormDelegate = anObject; } - (id)delegate { return _gormDelegate; } - (void)encodeWithCoder: (NSCoder*) aCoder { _browserDelegate = _gormDelegate; [super encodeWithCoder: aCoder]; _browserDelegate = _sharedDelegate; } - (id) initWithCoder: (NSCoder*) aCoder { [super setDelegate: [GormNSBrowser sharedDelegate]]; self = [super initWithCoder: aCoder]; return self; } - (NSString *) className { return @"NSBrowser"; } @end gorm-1.2.24/Palettes/3Containers/GormTableColumnSizeInspector.h0000644000000000000000000000262013410616261023140 0ustar rootroot/* GormTableColumnSizeInspector.h Copyright (C) 2001-2005 Free Software Foundation, Inc. Author: Adam Fedor Laurent Julliard Date: Aug 2001 This file is part of GNUstep. This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 3 of the License, or (at your option) any later version. This program 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 General Public License for more details. You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02111 USA. */ /* July 2005 : Spilt inspector in separate classes. Always use ok: revert: methods Clean up Author : Fabien Vallon */ #ifndef INCLUDED_GormTableColumnnSizeInspector_h #define INCLUDED_GormTableColumnnSizeInspector_h #include @class NSForm; @interface GormTableColumnSizeInspector : IBInspector { NSForm *widthForm; } @end #endif /* INCLUDED_GormTableColumnnSizeInspector_h */ gorm-1.2.24/Palettes/3Containers/GormTableViewEditor.m0000644000000000000000000003031113410616261021245 0ustar rootroot/* GormTableViewEditor.m - Editor for matrices. * * Copyright (C) 2002 Free Software Foundation, Inc. * * Author: Pierre-Yves Rivaille * Date: 2002 * * This file is part of GNUstep. * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 3 of the License, or * (at your option) any later version. * * This program 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 General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02111 USA. */ #include #include #include "GormTableViewEditor.h" #include "GormNSTableView.h" #include NSString *IBTableColumnPboardType = @"IBTableColumnPboardType"; static NSCell *_editedCell; static NSCell *_currentHeaderCell; static NSText *_textObject; @interface GormTableViewEditor (Private) - (void) editHeader: (NSTableHeaderView*) th withEvent: (NSEvent *) theEvent; @end @implementation GormTableViewEditor - (void) setFrame: (NSRect)frame { if(tableView != nil) { [tableView deselectAll: self]; } [super setFrame: frame]; } /** * Decide whether an editor can accept data from the pasteboard. */ - (BOOL) acceptsTypeFromArray: (NSArray*)types { return NO; } /** * Activate an editor - inserts it into the view hierarchy or whatever is * needed for the editor to be able to provide its functionality. * This method should be called by the document when an editor is created * or opened. It should be safe to call repeatedly. */ - (BOOL) activate { if ([super activate]) { if ([_editedObject isKindOfClass: [NSScrollView class]]) tableView = [(NSScrollView *)_editedObject documentView]; else tableView = (GormNSTableView *)_editedObject; RETAIN(tableView); // FIXME: Temporary fix. [tableView setAllowsColumnResizing: YES]; [tableView setAllowsColumnSelection: YES]; [tableView setAllowsMultipleSelection: NO]; [tableView setAllowsEmptySelection: YES]; [tableView setAllowsColumnReordering: YES]; [tableView setGormDelegate: self]; return YES; } return NO; } - (void) scrollToPoint: (NSPoint)point { if ([_super_view respondsToSelector:@selector(scrollToPoint:)]) { [(NSClipView *)_super_view scrollToPoint: point]; } } - (NSRect) documentVisibleRect { NSRect visRect = _bounds; if ([_super_view respondsToSelector:@selector(documentVisibleRect)]) { visRect = [(NSClipView *)_super_view documentVisibleRect]; } return visRect; } /** * Deactivate an editor - removes it from the view hierarchy so that objects * can be archived without including the editor. * This method should be called automatically by the 'close' method. * It should be safe to call repeatedly. */ - (void) deactivate { if (activated == YES) { // [tableView unselect]; if ([tableView selectedColumn] != -1) { [tableView deselectColumn: [tableView selectedColumn]]; } [tableView setAllowsColumnResizing: [tableView gormAllowsColumnResizing]]; [tableView setAllowsColumnSelection: [tableView gormAllowsColumnSelection]]; [tableView setAllowsMultipleSelection: [tableView gormAllowsMultipleSelection]]; [tableView setAllowsEmptySelection: [tableView gormAllowsEmptySelection]]; [tableView setAllowsColumnReordering: [tableView gormAllowsColumnReordering]]; [tableView setGormDelegate: nil]; [tableView setNeedsDisplay: YES]; [super deactivate]; } } /* * This method deletes all the objects in the current selection in the editor. */ - (void) deleteSelection { NSDebugLog(@"deleteSelection"); if ([selection count] == 0) { NSDebugLog(@"no column to delete"); } else if([[selection objectAtIndex: 0] isKindOfClass: [NSTableColumn class]]) { [tableView removeTableColumn: [selection objectAtIndex: 0]]; [tableView deselectAll: self]; [self selectObjects: [NSArray array]]; } } /* * This method places the current selection from the editor on the pasteboard. */ - (void) copySelection { NSDebugLog(@"copySelection"); if ([[[self selection] objectAtIndex: 0] isKindOfClass: [NSTableColumn class]]) { [document copyObjects: [self selection] type: IBTableColumnPboardType toPasteboard: [NSPasteboard generalPasteboard]]; } else { NSDebugLog(@"no paste"); } } /* * This method is used to add the contents of the pasteboard to the current * selection of objects within the editor. */ - (void) pasteInSelection { NSArray *objects; NSDebugLog(@"pasteInSelection"); objects = [document pasteType: IBTableColumnPboardType fromPasteboard: [NSPasteboard generalPasteboard] parent: _editedObject]; if (objects == nil) return; if ([objects count] == 0) return; if ([objects count] > 1) { NSDebugLog(@"warning strange behaviour : GormTableViewEditor pasteInSelection"); } else if ([[objects objectAtIndex: 0] isKindOfClass: [NSTableColumn class]] == NO) { NSDebugLog(@"invalid data in IBTableColumnPboardType"); return; } [tableView addTableColumn: [objects objectAtIndex: 0]]; } - (void) mouseDown:(NSEvent*)theEvent { BOOL onKnob = NO; id hitView; { if ([parent respondsToSelector: @selector(selection)] && [[parent selection] containsObject: _editedObject]) { IBKnobPosition knob = IBNoneKnobPosition; NSPoint mouseDownPoint = [self convertPoint: [theEvent locationInWindow] fromView: nil]; knob = GormKnobHitInRect([self bounds], mouseDownPoint); if (knob != IBNoneKnobPosition) onKnob = YES; } if (onKnob == YES) { if (parent) return [parent mouseDown: theEvent]; else return [self noResponderFor: @selector(mouseDown:)]; } } if (opened == NO) { NSDebugLog(@"not opened"); [super mouseDown: theEvent]; return; } hitView = [[tableView enclosingScrollView] hitTest: [[[tableView enclosingScrollView] superview] convertPoint: [theEvent locationInWindow] fromView: nil]]; if (hitView == [tableView headerView]) { if ([theEvent clickCount] == 2) { [self editHeader: hitView withEvent: theEvent]; } else { [hitView mouseDown: theEvent]; } } else if ([hitView isKindOfClass: [NSScroller class]]) { [hitView mouseDown: theEvent]; } else if (hitView == tableView) { if ([theEvent modifierFlags] & NSControlKeyMask) { [super mouseDown: theEvent]; } else if ([tableView selectedColumn] != -1) { [tableView deselectColumn: [tableView selectedColumn]]; } } else if (hitView == self && [theEvent modifierFlags] & NSControlKeyMask) { /* * see if we're making a connection from the selected column. * not useful in vanilla gorm as they have no outlets or actions, * but palettes might find it useful. */ int selectedColumn = [tableView selectedColumn]; if (selectedColumn != -1) { NSPoint pt = [theEvent locationInWindow]; NSRect r = [tableView rectOfColumn: selectedColumn]; pt = [tableView convertPoint:pt fromView:nil]; if (NSMouseInRect(pt, r, [tableView isFlipped])) { /* mouse was inside the selected column */ NSPasteboard *pb; NSPoint dragPoint = [theEvent locationInWindow]; NSTableColumn *col = [[tableView tableColumns] objectAtIndex: selectedColumn]; NSString *name = [document nameForObject: col]; pb = [NSPasteboard pasteboardWithName: NSDragPboard]; [pb declareTypes: [NSArray arrayWithObject: GormLinkPboardType] owner: self]; [pb setString: name forType: GormLinkPboardType]; [NSApp displayConnectionBetween: col and: nil]; [NSApp startConnecting]; [self dragImage: [NSApp linkImage] at: dragPoint offset: NSZeroSize event: theEvent pasteboard: pb source: self slideBack: YES]; } } } } - (void) tableViewSelectionDidChange: (id) tv { if ([tableView selectedColumn] != -1) { [self selectObjects: [NSArray arrayWithObject: [[tableView tableColumns] objectAtIndex: [tableView selectedColumn]]]]; } else { [self selectObjects: [NSArray arrayWithObject: tableView]]; } } - (void) outlineViewSelectionDidChange: (id) tv { if ([tableView selectedColumn] != -1) { [self selectObjects: [NSArray arrayWithObject: [[tableView tableColumns] objectAtIndex: [tableView selectedColumn]]]]; } else { [self selectObjects: [NSArray arrayWithObject: tableView]]; } } - (void) editHeader: (NSTableHeaderView*) th withEvent: (NSEvent *) theEvent { NSText *t; NSTableColumn *tc; NSRect drawingRect; NSUInteger columnIndex = [th columnAtPoint: [th convertPoint:[theEvent locationInWindow] fromView: nil]]; if (columnIndex == NSNotFound) return; _textObject = nil; [[th tableView] scrollColumnToVisible: columnIndex]; t = [[th window] fieldEditor: YES forObject: self]; if ([t superview] != nil) { if ([t resignFirstResponder] == NO) { return; } } // Prepare the cell tc = [[tableView tableColumns] objectAtIndex: columnIndex]; // NB: need to be released when no longer used _editedCell = [[tc headerCell] copy]; _currentHeaderCell = [tc headerCell]; [_editedCell setStringValue: [[tc headerCell] stringValue]]; [_editedCell setEditable: YES]; _textObject = [_editedCell setUpFieldEditorAttributes: t]; drawingRect = [th headerRectOfColumn: columnIndex]; [_editedCell editWithFrame: drawingRect inView: th editor: _textObject delegate: self event: theEvent]; return; } - (void) textDidEndEditing: (NSNotification *)aNotification { [_editedCell endEditing: _textObject]; [_currentHeaderCell setStringValue: [[_textObject text] copy]]; RELEASE(_editedCell); } - (NSDragOperation) draggingEntered: (id)sender { return [self draggingUpdated: sender]; } - (NSDragOperation) draggingUpdated: (id)sender { NSPasteboard *dragPb; NSArray *types; dragPb = [sender draggingPasteboard]; types = [dragPb types]; if ([types containsObject: GormLinkPboardType] == YES) { id destination = nil; /* NSView *hitView = [[tableView enclosingScrollView] hitTest: [[[tableView enclosingScrollView] superview] convertPoint: [sender draggingLocation] fromView: nil]]; if (hitView == [tableView headerView]) { NSPoint p = [hitView convertPoint: [sender draggingLocation] fromView: nil]; int columnNumber = [(NSTableHeaderView*) hitView columnAtPoint: p]; if (columnNumber != -1) destination = [[tableView tableColumns] objectAtIndex: columnNumber]; } if (hitView == tableView) destination = tableView; */ if (destination == nil) { int col = 0; destination = _editedObject; if((col = [_editedObject selectedColumn]) != -1) { destination = [[_editedObject tableColumns] objectAtIndex: col]; } } [NSApp displayConnectionBetween: [NSApp connectSource] and: destination]; return NSDragOperationLink; } else { return NSDragOperationNone; } } - (BOOL) performDragOperation: (id)sender { return ([self draggingUpdated: sender] == NSDragOperationLink); } - (NSWindow *)windowAndRect: (NSRect *)prect forObject: (id) object { if (object == tableView) { *prect = [tableView convertRect: [tableView visibleRect] toView :nil]; return _window; } else { return [super windowAndRect: prect forObject: object]; } } @end gorm-1.2.24/Palettes/3Containers/GormTabViewAttributesInspector.m0000644000000000000000000001440713410616261023523 0ustar rootroot/* GormTabViewAttributesInspector.m Copyright (C) 2001-2015 Free Software Foundation, Inc. Author: Laurent Julliard Author: Gregory John Casamento Date: Aug 2001. 2003, 2004 This file is part of GNUstep. This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 3 of the License, or (at your option) any later version. This program 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 General Public License for more details. You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02111 USA. */ /* July 2005 : Split inspector classes into separate files. Always use ok: revert: methods Clean up Author : Fabien Vallon */ #include "GormTabViewAttributesInspector.h" #include #include #include #include #include #include #include #include #include #include #define ORDERED_PREVIOUS 0 #define ORDERED_NEXT 1 @implementation GormTabViewAttributesInspector - (id) init { if ([super init] == nil) { return nil; } if ([NSBundle loadNibNamed: @"GormTabViewInspector" owner: self] == NO) { NSLog(@"Could not gorm GormTabViewInspector"); return nil; } return self; } - (void) ok: (id)sender { if (sender == typeMatrix) { unsigned int type = 0; switch([[sender selectedCell] tag]) { case 0: type = NSTopTabsBezelBorder; break; case 5: type = NSLeftTabsBezelBorder; break; case 1: type = NSBottomTabsBezelBorder; break; case 6: type = NSRightTabsBezelBorder; break; case 2: type = NSNoTabsBezelBorder; break; case 3: type = NSNoTabsLineBorder; break; case 4: type = NSNoTabsNoBorder; break; default: break; } [object setTabViewType: type]; } else if (sender == allowtruncate) { BOOL flag; flag = ([allowtruncate state] == NSOnState) ? YES : NO; [object setAllowsTruncatedLabels:flag]; } else if (sender == itemStepper ) { int number = [itemStepper intValue]; [itemLabel setStringValue:[[object tabViewItemAtIndex:number] label]]; [itemIdentifier setStringValue:[[object tabViewItemAtIndex:number] identifier]]; [object selectTabViewItemAtIndex:number]; } else if (sender == numberOfItemsField) { int newNumber = [[numberOfItemsField stringValue] intValue]; if (newNumber <= 0) { [numberOfItemsField setStringValue:[NSString stringWithFormat:@"%ld",(long int)[object numberOfTabViewItems]]]; return; } if ( newNumber > [object numberOfTabViewItems] ) { int i; NSTabViewItem *newTabItem; id document = [(id)NSApp documentForObject: object]; for (i=([object numberOfTabViewItems]+1);i<=newNumber;i++) { NSString *ident = [NSString stringWithFormat: @"item %i",i]; newTabItem = [(NSTabViewItem *)[NSTabViewItem alloc] initWithIdentifier: (id)ident]; [newTabItem setLabel: [NSString stringWithFormat: @"Item %i",i]]; [newTabItem setView:[[NSView alloc] init]]; [object addTabViewItem:newTabItem]; [document attachObject: newTabItem toParent: object]; } } else { int i; for (i=([object numberOfTabViewItems]-1);i>=newNumber;i--) { id item = [object tabViewItemAtIndex:i]; id document = [(id)NSApp documentForObject: item]; [object selectFirstTabViewItem: self]; [object removeTabViewItem: item]; if(document != nil) { [document detachObject: item]; } } } [itemStepper setMaxValue: (newNumber - 1)]; } else if ( sender == itemLabel ) { if ([[itemLabel stringValue] isEqualToString:@""] == NO) { [[object selectedTabViewItem] setLabel:[itemLabel stringValue]]; } } else if ( sender == itemIdentifier ) { if ([[itemIdentifier stringValue] isEqualToString:@""] == NO) { [[object selectedTabViewItem] setIdentifier:[itemIdentifier stringValue]]; } } else if ( sender == itemPrevious ) { NSTabViewItem *tbItem = [object selectedTabViewItem]; int selectedItem = [object indexOfTabViewItem:tbItem]; /* We Should disabled UI ? with delegate tabView:didSelectTabViewItem: */ if ( selectedItem <= 0 ) { return; } [tbItem retain]; [object removeTabViewItem:tbItem]; [object insertTabViewItem:tbItem atIndex:(selectedItem - 1)]; [object selectTabViewItemAtIndex:(selectedItem - 1)]; [tbItem release]; } else if (sender == itemNext ) { NSTabViewItem *tbItem = [object selectedTabViewItem]; int selectedItem = [object indexOfTabViewItem:tbItem]; /* We Should disabled UI ? with delegate tabView:didSelectTabViewItem: */ if ( selectedItem >= ([object numberOfTabViewItems] -1) ) { return; } [tbItem retain]; [object removeTabViewItem:tbItem]; [object insertTabViewItem:tbItem atIndex:(selectedItem + 1)]; [object selectTabViewItemAtIndex:(selectedItem + 1)]; [tbItem release]; } [object setNeedsDisplay: YES]; [super ok: sender]; } - (void) revert :(id) sender { unsigned int numberOfTabViewItems; if ( object == nil ) return; numberOfTabViewItems=[object numberOfTabViewItems]; [numberOfItemsField setStringValue:[NSString stringWithFormat:@"%i",numberOfTabViewItems]]; [itemStepper setMaxValue:(numberOfTabViewItems -1)]; [itemLabel setStringValue:[[object selectedTabViewItem] label]]; [itemIdentifier setStringValue:[[object selectedTabViewItem] identifier]]; } -(void) controlTextDidChange:(NSNotification *)aNotification { [self ok:[aNotification object]]; } @end gorm-1.2.24/Palettes/3Containers/GormNSTableView.h0000644000000000000000000000344013410616261020335 0ustar rootroot/* GormNSTableView.h Copyright (C) 2001 Free Software Foundation, Inc. Author: Pierre-Yves Rivaille Date: 2001 This file is part of GNUstep. This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 3 of the License, or (at your option) any later version. This program 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 General Public License for more details. You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02111 USA. */ #ifndef INCLUDED_GormNSTableView_h #define INCLUDED_GormNSTableView_h #include #include #include @interface GormNSTableView : NSTableView { id _gormDataSource; id _gormDelegate; BOOL _gormAllowsColumnReordering; BOOL _gormAllowsColumnResizing; BOOL _gormAllowsColumnSelection; BOOL _gormAllowsMultipleSelection; BOOL _gormAllowsEmptySelection; } - (void) setGormDelegate: (id)anObject; - (void) setGormAllowsColumnReordering: (BOOL)flag; - (BOOL) gormAllowsColumnReordering; - (void) setGormAllowsColumnResizing: (BOOL)flag; - (BOOL) gormAllowsColumnResizing; - (void) setGormAllowsMultipleSelection: (BOOL)flag; - (BOOL) gormAllowsMultipleSelection; - (void) setGormAllowsEmptySelection: (BOOL)flag; - (BOOL) gormAllowsEmptySelection; - (void) setGormAllowsColumnSelection: (BOOL)flag; - (BOOL) gormAllowsColumnSelection; @end #endif gorm-1.2.24/Palettes/3Containers/GormNSBrowserInspector.gorm/0000755000000000000000000000000013410616261022556 5ustar rootrootgorm-1.2.24/Palettes/3Containers/GormNSBrowserInspector.gorm/objects.gorm0000644000000000000000000001774513410616261025113 0ustar rootrootGNUstep archive000f4240:00000020:000000bb:00000000:01GSNibContainer1NSObject01 NSMutableSet1NSSet&01GSWindowTemplate1GSClassSwapper01NSString&% NSWindow1NSWindow1 NSResponder% ?ð ?ð @q @x@JI @xÐ @‡`01 NSView% ?ð ?ð @q @x@  @q @x@J01 NSMutableArray1 NSArray&01 NSBox% @$ @k@ @o€ @d  @o€ @dJ0± &0 ± % @ @ @mÀ @`à  @mÀ @`àJ0 ± &0 1NSButton1 NSControl% @7 @[À @f` @0  @f` @0J0 ± &%0 1 NSButtonCell1 NSActionCell1NSCell0±&%Allow multiple selection01NSImage01NSMutableString&%GSSwitch01NSFont%&&&&&&JJ&&&&&&I’0±&0±&0±0±&%GSSwitchSelected&&& &&0±% @7 @V€ @f` @0  @f` @0J0± &%0±0±&%Allow empty selection°°&&&&&&JJ&&&&&&I’0±&0±&°&&& &&0±% @7 @Q@ @f` @0  @f` @0J0± &%0±0±&%Allow branch selection°°&&&&&&JJ&&&&&&I’0 ±&0!±&°&&& &&0"±% @L @H @b@ @0  @b@ @0J0#± &%0$±0%±&%Separates columns°°&&&&&&JJ&&&&&&I’0&±&0'±&°&&& &&0(±% @L @; @b@ @0  @b@ @0J0)± &%0*±0+±&%Display titles°°&&&&&&JJ&&&&&&I’0,±&0-±&°&&& &&0.±% @7 @ @f` @2  @f` @2J0/± &%00±01±&%Allows horizontal scroller°°&&&&&&JJ&&&&&&I’02±&03±&°&&& &&041NSTextFieldCell05±&%Options06±% A@&&&&&&JJ &&&&&&I’071NSColor08±&% NSNamedColorSpace09±&% System0:±&% windowBackgroundColor0;±0<±&% NSCalibratedRGBColorSpace ?€ @ @%%0=1NSForm1NSMatrix% @T€ @$ @U@ @5  @U@ @5J%0>± &%0?1 NSFormCell0@±&°6&&&&&&JJ&&&&&&I’ ¿€0A±0B±&%Field:°6&&&&&&JJ&&&&&&% @U@ @5 @0C±°8°90D±&% controlBackgroundColor0E±°< ?*Àƒ ?*Àƒ ?*Àƒ ?*Àƒ ?€0F±& % NSFormCell%%0G± &0H±0I±&%0°6&&&&&&JJ&&&&&&I’ AÈ0J±0K±&%Tag:°6&&&&&&JJ&&&&&&’’’°H0L± % @$ @a€ @o€ @R@  @o€ @R@J"0M± &0N± % @ @ @mÀ @H  @mÀ @HJ0O± &0P1 NSTextField% @d  @L @5  @L @5J0Q± &%0R±0S±&°&&&&&&JJ &&&&&&I’0T±°80U±&%System0V±&%textBackgroundColor0W±°8°U0X±& % textColor’0Y±% @ @d @2  @d @2J0Z± &%0[±0\±&%Maximum Visible Columns:0]±% A@&&&&&&JJ &&&&&&I’°T°W’0^±% @" @: @bà @4  @bà @4J0_± &%0`±0a±&%Minimum Column Width:°]&&&&&&JJ &&&&&&I’°T°W’0b±% @d @: @L @4  @L @4J0c± &%0d±0e±&°&&&&&&JJ &&&&&&I’°T°W’0f±0g±& % Attributes°&&&&&&JJ&&&&&& @ @%%°70h±&%Window0i±&%Browser Attributes Inspector°i @ @9 @È @ÈI&   @ž @à0j± &0k± &0l1NSMutableDictionary1 NSDictionary&0m±&%Form1°=0n±&%Button4°(0o±&%Box°0p±& % TextField1°^0q±&%Box1°L0r±& % TextField°b0s±& % TextField3°Y0t±&%Button1°0u±&%Button3°"0v±&% NSOwner0w±&%GormBrowserAttributesInspector0x±&%Button5°.0y±& % TextField2°P0z±&%Button° 0{±&%Button2°0|±& % Inspector°0}± &**0~1NSNibConnector°|0±&% NSOwner0€±°o°|01NSNibOutletConnector°°|0‚±&%window0ƒ±°m°|0„±°m°0…±&%delegate0†±°p0‡±°°m0ˆ±&%tagForm0‰±°z0б°t0‹±°{0Œ±°u0±°n0ޱ°x0±°°z0±&%multipleSelectionSwitch0‘±°°t0’±&%emptySelectionSwitch0“±°°{0”±&%branchSelectionSwitch0•±°°u0–±&%separateColumnsSwitch0—±°°n0˜±&%displayTitlesSwitch0™±°°x0š±&%horizontalScrollerSwitch0›1 NSNibControlConnector°z°0œ±&%ok:0± °t°°œ0ž± °{°°œ0Ÿ± °u°°œ0 ± °n°°œ0¡± °x°°œ0¢±°z°t0£±& % nextKeyView0¤±°t°{°£0¥±°{°u°£0¦±°u°n°£0§±°n°x°£0¨±°m°z°£0©±°y0ª±°s0«±°q0¬±°r0­±°°r0®±&%minColumnWidthField0¯± °r°0°±&%ok:0±± °y°°°0²±°°y0³±&%maxVisibleColumnsField0´±°r°0µ±&%delegate0¶±°y°°µ0·± °m°0¸±&%ok:0¹±&gorm-1.2.24/Palettes/3Containers/GormNSBrowserInspector.gorm/data.classes0000644000000000000000000000063013410616261025045 0ustar rootroot{ "## Comment" = "Do NOT change this file, Gorm maintains it"; GormBrowserAttributesInspector = { Actions = ( ); Outlets = ( minColumnWidthField, tagForm, branchSelectionSwitch, displayTitlesSwitch, emptySelectionSwitch, multipleSelectionSwitch, horizontalScrollerSwitch, separateColumnsSwitch, maxVisibleColumnsField ); Super = IBInspector; }; }gorm-1.2.24/Palettes/3Containers/GormNSBrowserInspector.gorm/data.info0000644000000000000000000000027013410616261024343 0ustar rootrootGNUstep archive000f4240:00000003:00000003:00000000:01GormFilePrefsManager1NSObject%01NSString&%Latest Version0±& % Typed Streamgorm-1.2.24/Palettes/3Containers/palette.table0000644000000000000000000000041113410616261017656 0ustar rootroot{ NOTE = "Automatically generated, do not edit!"; NibFile = ""; Class = "ContainersPalette"; Icon = "ContainersPalette"; SubstituteClasses = { GormNSBrowser = NSBrowser; GormNSTableView = NSTableView; GormNSOutlineView = NSOutlineView; }; } gorm-1.2.24/Palettes/3Containers/GNUmakefile.preamble0000644000000000000000000000131213410616261021050 0ustar rootroot# Additional include directories the compiler should search ADDITIONAL_INCLUDE_DIRS += -I../.. ifeq ($(GNUSTEP_TARGET_OS),mingw32) ADDITIONAL_LIB_DIRS += \ -L../../GormLib/$(GNUSTEP_OBJ_DIR) \ -L../../GormObjCHeaderParser/$(GNUSTEP_OBJ_DIR) \ -L../../GormPrefs/$(GNUSTEP_OBJ_DIR) \ -L../../GormCore/$(GNUSTEP_OBJ_DIR) ADDITIONAL_GUI_LIBS += -lGorm -lGormCore endif ifeq ($(GNUSTEP_TARGET_OS),cygwin) ADDITIONAL_LIB_DIRS += \ -L../../GormLib/$(GNUSTEP_OBJ_DIR) \ -L../../GormObjCHeaderParser/$(GNUSTEP_OBJ_DIR) \ -L../../GormPrefs/$(GNUSTEP_OBJ_DIR) \ -L../../GormCore/$(GNUSTEP_OBJ_DIR) 3Containers_LIBRARIES_DEPEND_UPON += -lGorm -lGormCore endifgorm-1.2.24/Palettes/3Containers/GormBrowserAttributesInspector.h0000644000000000000000000000335013410616261023573 0ustar rootroot/* GormBrowserAttributesInspector.h Copyright (C) 2001-2005 Free Software Foundation, Inc. Author: Adam Fedor Laurent Julliard Date: Aug 2001 This file is part of GNUstep. This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 3 of the License, or (at your option) any later version. This program 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 General Public License for more details. You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02111 USA. */ /* July 2005 : Spilt inspector in separate classes. Always use ok: revert: methods Clean up Author : Fabien Vallon */ #ifndef INCLUDED_GormBrowserAttributesInspector_h #define INCLUDED_GormBrowserAttributesInspector_h #include @class NSButton; @class NSForm; @class NSTextField; @interface GormBrowserAttributesInspector : IBInspector { /* options */ NSButton *branchSelectionSwitch; NSButton *displayTitlesSwitch; NSButton *emptySelectionSwitch; NSButton *multipleSelectionSwitch; NSButton *horizontalScrollerSwitch; NSButton *separateColumnsSwitch; NSForm *tagForm; NSTextField *minColumnWidthField; NSTextField *maxVisibleColumnsField; } @end #endif /* INCLUDED_GormBrowserAttributesInspector_h */ gorm-1.2.24/Palettes/3Containers/GormTabViewInspector.gorm/0000755000000000000000000000000013410616261022233 5ustar rootrootgorm-1.2.24/Palettes/3Containers/GormTabViewInspector.gorm/objects.gorm0000644000000000000000000004442113410616261024557 0ustar rootrootGNUstep archive000f4240:00000025:000000dc:00000001:01GSNibContainer1NSObject01 NSMutableSet1NSSet&01GSWindowTemplate1GSClassSwapper01NSString&% NSWindow1NSWindow1 NSResponder% ?ð ?ð @q @x@JI @q° @‰01 NSView% ?ð ?ð @q @x@  @q @x@J01 NSMutableArray1 NSArray&01 NSMatrix1 NSControl% @9 @tp @k @@€  @k @@€J 0± &%0 1 NSActionCell1NSCell0 ±&0 1NSFont% A@&&&&&&JJ&&&&&&I’% @B @@€ 0 1NSColor0 ±&% NSNamedColorSpace0±&% System0±&% controlBackgroundColor° 0±& % NSButtonCell01 NSButtonCell0±&%0° &&&&&&JJ&&&&&&I’0±&0±&&&& &&%%0± &0±0±&01NSImage0±& % tabtop_nib° &&&&&&JJ&&&&&&I’0±&°&&& &&0±0±&0±0±& % tabbot_nib° &&&&&&JJ&&&&&&I’0±&°&&& &&0 ±0!±&0"±0#±& % button_nib° &&&&&&JJ&&&&&&I’0$±&°&&& &&0%±0&±&0'±0(±&%line_nib° &&&&&&JJ&&&&&&I’0)±&°&&& &&0*±0+±&0,±0-±& % noBorder_nib° &&&&&&JJ&&&&&&I’0.±&°&&& &&0/±00±&01±02±&%shortbutton_nib° &&&&&&JJ&&&&&&I’03±&°&&& &&2 ok:v24@0:8@16’’°041 NSTextField% @0 @p @\@ @4  @\@ @4J,05± &%061NSTextFieldCell07±&%Number of items:° &&&&&&JJ &&&&&&I’08±° 09±&%System0:±&%textBackgroundColor0;±° °90<±& % textColor’0=±% @a @p @L @4  @L @4J)0>± &%0?±0@±&%2° &&&&&&JJ &&&&&&I²°8°;’0A1NSButton% @9 @rp @c` @0  @c` @0J 0B± &%0C±0D±&%Allow truncate labels0E±0F1NSMutableString&%GSSwitch° &&&&&&JJ&&&&&&I²0G±&0H±&0I±0J±&%GSSwitchSelected&&& &&0K1NSBox% @$ @V@ @o€ @aà  @o€ @aàJ20L± &0M± % @ @ @mÀ @]€  @mÀ @]€J0N± &0O±% @V€ @V€ @V@ @4  @V@ @4J0P± &%0Q±0R±&° &&&&&&JJ &&&&&&I²°8°;’0S±% @: @V€ @J @4  @J @4J0T± &%0U±0V±&%Label:° &&&&&&JJ &&&&&&I’°8°;’0W±% @7 @P@ @O @4  @O @4J0X± &%0Y±0Z±& % Identifier:° &&&&&&JJ &&&&&&I’°8°;’0[±% @V€ @P@ @V@ @4  @V@ @4J0\± &%0]±0^±&° &&&&&&JJ &&&&&&I²°8°;’0_1 NSStepper% @gÀ @R€ @0 @7  @0 @7J0`± &%0a1 NSStepperCell0b±&%00c1NSNumber1NSValuei%&&&&&&JJ&&&&&&I² @M€ ?ð%%0d±% @A€ @6 @I @2  @I @2J0e± &%0f±0g±&%Ordered:0h±% A@°g&&&&&&JJ &&&&&&I’°8°;’0i±% @V€ @6 @@€ @8  @@€ @8J0j± &%0k±0l±&%Button0m±0n±&% common_ArrowLeft0o±%&&&&&&JJ&&&&&&I’0p±&0q±&&&& &&0r±% @` @6 @@€ @8  @@€ @8J0s± &%0t±0u±&%Button0v±0w±&% common_ArrowRight°o°u&&&&&&JJ&&&&&&I’0x±&0y±&&&& &&0z±0{±& % Current Item° °{&&&&&&JJ &&&&&&I’0|±° °0}±&% windowBackgroundColor°; @ @%%°|0~±&%Window0±&%TabView Attributes Inspector° ?ð @7 @È @ÈI0€± 0±0‚±&% NSCalibratedWhiteColorSpace 0ƒ± &0„1NSBitmapImageRep1 NSImageRep0…±&% NSDeviceRGBColorSpace @H @HII0I00†1 NSData&$š$šII*$§[=¿T8þŠJ2þR-!k§[=¿žU:þ‹K3þxB-ÿH'ÿR-!k§[=¿šS7þˆJ2ÿxB-ÿH'ÿ/ÿ ?§[=¿šS7ÿ†I2ÿxB-ÿH'ÿ/ÿ ?§[=¿™S7ÿ…H0þxB-ÿH'ÿ/ÿ ?§[=¿™R7þ†I2ÿxB-ÿH'ÿ/ÿ ?§[=¿™S7þ‡I0þxB-ÿH'ÿ/ÿ ?§[=¿˜R7þ‡I2þxB-ÿH'ÿ/ÿ ?§[=¿˜R7ÿ…H0þxB-ÿH'ÿ/ÿ ?¨[>ÿX/!ÿj:)ÿH'ÿ/ÿ ?D49ÿ  ?hft¿{y‰ÿ<;Dÿ ?hft¿€}ÿ<;Dÿ ?™¯ÿ<;Dÿ ?™¯ÿ43:ÿ""""™¯ÿ43:ÿzzzz°°°¶ÅÅÅÍÅÅÅÍáááûäääÿðððÿíííÿÙÙÙæÆÆÆÍ±±±¶""""EEEEEEEEEEEE™¯ÿ43:ÿŸŸŸŸŸŸŸŸŸŸŸŸÖÖÖæçççÿÜÜÜÿÚÚÚÿÚÚÚÿÛÛÛÿÛÛÛÿÚÚÚÿÚÚÚÿØØØÿËËËÿËËËÿ–––ÿ555»222t™¯ÿ43:ÿ0?55hhhiiiÝÝÝÿÚÚÚÿÕÕÕÿÓÓÓÿÒÒÒÿÒÒÒÿÑÑÑÿÑÑÑÿÑÑÑÿÑÑÑÿÎÎÎÿÏÏÏÿ³³³ÿ›››ÿ‡‡‡ÿyyyÿVVVÝ777?™¯ÿ43:ÿ~=0¿¸rdÿ¼¤ŸÿÔÓÓÿØØØÿÐÏÏÿÑÑÑÿÑÑÑÿÒÒÒÿÔÔÔÿÒÒÒÿÏÏÏÿÌÌÌÿÏÏÏÿÔÔÔÿ×××ÿ¿¿¿ÿ¥¥¥ÿŸŸŸÿ“““ÿ‰‰‰ÿ‚‚‚ÿxxxÿUUUÝ444?/17?Œ‰¿µ²Êÿ43:ÿ5„?0þ¥\MþÁ·µÿ·°¯ÿÃÃÃÿÎÊÈÿÑÑÑÿÒÒÒÿÔÔÔÿÒÒÒÿÐÐÐÿÐÐÐÿÕÕÕÿÐÐÐÿÆÆÆÿ©©©ÿ£££ÿŸŸŸÿœœœÿ———ÿŽŽŽÿ……†ÿzz{ÿ]]]ÿQQQmmm_bnÀÄÝÿ¯²Èÿ¡¡·ÿœ™¯ÿ:9@ÿ5‚?0þ‡I>þ¥’ÿ’e]ÿ·‚xÿÐÎÎÿ×××ÿÑÑÑÿÑÑÑÿÕÕÕÿÐÐÐÿÏÏÏÿÐÐÐÿÀÀÀÿ¥¥¥ÿ¥¥¥ÿ£££ÿ   ÿžžžÿÿ™š›ÿ™™ÿ˜™žÿ   ÿ±³ÀÿÀÄÝÿŸ µþxw‡þvt„ÿsqÿpo}þ66<ÿ5ƒ?2þ…A3þˆQFÿ…A4þ‹H:þ²Ÿœÿ°‰ÿ»¸¸ÿÐÐÐÿÛÛÛÿÑÑÑÿÖÖÖÿÎÎÎÿ®®®ÿŸŸŸÿŸŸŸÿ¡¡¡ÿ   ÿ£££ÿžžžÿ   ÿ¦¨¯ÿ¸»ÎÿÀÄÝÿ¡¢¸ÿ|z‹þzy‰ÿwu…þtr‚þqpþbaoþ++0¿5„?2ÿ†@2ÿ‡@2þ‡A3þ‰B3ÿŠC4þE6þ¤ƒ}þÇÆÆÿÔÔÔÿÐÐÐÿÒÒÒÿ²²²ÿ¤¤¤ÿŸŸŸÿŸŸŸÿ¢¢¢ÿŸŸŸÿžžžÿ×××ÿééìÿÞàçÿ²²¿ÿ‘ÿ}|ÿzxŠþxw‡ÿutƒþrq€þpn}þVT_ÿ=,,ê ˆ5…@2þ†@3þ‡A3þˆA3þŠJ<þ‰NBÿŽD6þH:þ¹Ÿ›þÇÅÅÿ Žþ•‰†ÿ™’‘ÿŸ›šÿœ™˜ÿ žÿ£ ŸÿØÓÒÿòòòÿóóóÿéééÿäääÿàààÿÄÄÄÿ‰‰‘ÿƒ‚Žþ}|ˆÿtrþqo~þnm{ÿ::Bÿf4)þa2'þ\/&þW*!¿55†@2þ‡A3þˆA3þ‰C4þ¤€yþ‰c\þE6þE6þ­ˆ‚þ‘ÿÀ¤ŸÿÛÌÉþõõõÿóóóÿòòòÿóóóÿïïïÿìììÿãããÿàààÿ···ÿ¼¼¼ÿ±±±ÿ¼¼¼ÿ¿¿¿ÿ«««ÿ¥¤¨ÿyx€þsr|þ`_mþF;?þf4)þd3)þo4)þz:-þ…@2þw:-þV* ¿55‡@3þ‡A3þˆA3þŠC4þ¦‚zþf^þE6þ’F7þ”K<þÛÐÏþóóóÿîîîÿèèèÿßßßÿÖÖÖÿÍÍÍÿÈÈÈÿËËËÿÇÇÇÿÆÆÆÿ»»»ÿÂÂÂÿ¸¸¸ÿºººÿ»»»ÿªªªÿ¸¸¸ÿ¨¨¨ÿÇÇÇÿ›››þtihþb/$þi3'þv8,þ~ÿdbqþihvþFEOÿQ-)þY)!þW)þ`/$ÿk3'ÿq6*þn4)þl3'þi2'þf0&þc/$þ`-$þY*!þ)5ŠC4þŒC4þD4þE6þ’F7þ•H7þƦ¡þëëëÿØØØÿ¼¼¼ÿÔÔÔÿÂÂÂÿ···ÿ©©©ÿ±±±ÿÅÅÅÿÎÎÎÿÂÂÂÿºººÿ¸¸¸ÿÿ’’’ÿkkkÿ)))þLJRþkjxþihvÿhguþ::Bÿ\/&þ[-$þY-$þc/&ÿl3'þo4)ÿl3'ÿj2'þg2&þd0$þa/$þ^-#þX*!þ)5„@2þD4þE6þ‘F7þ”H7þ—I8þÚÅÂþëëëÿÒÒÒÿ¸¸¸ÿ¬¬¬ÿ°°°ÿÄÄÄÿ­­­ÿ¸¸¸ÿºººÿ¸¸¸ÿÆÆÆÿ²²²ÿƒƒƒÿ{{{ÿ[[[ÿ322þQPZþ^]jþjhwþhguþQP[þK33ÿ\-&þW)þ_/$þj3'þm3'þm4)þj3'ÿh2&þd0&þb/$þ_-#þ],#þX*!ÿ)P'¿~>>þdddÿ´´´ÿ>>?ÿ87?þ4$$þE)&þ_-#þ`0'þ_0&ÿ]/&ÿ^/&þ`/&ÿ`/&þc0&þj2'þn3'þk3'þh2&ÿd0$ÿa/$ÿ^-#þ\,!þZ,!þX*!þU)þT)ÿ)ttt³³³ÿ©©©ÿ‰‰‰ÿtttÿzzzÿ¯¯¯ÿ¯¯¯ÿ¹¹¹ÿ‡‡‡ÿ;;;ÿrqyþjhwþPPZÿ43:ÿªªªÿC@?ÿw9,ÿc2)þb2)þ^,#þ_0&þd2'þg2'þh2'ÿk3)þl3)þl3)þl3'ÿl3'þi2'þf0&ÿc/$ÿ_-#þ],#þZ,!þX*!þW)þT)þS)þ)rrrŸŸŸÿ€€€ÿ```ÿFFFû000úŠŠŠÿÇÇÇÿ¯¯¯ÿmmmÿ\[aÿ<;CÿA)'þ^3,þ‘I:þ°°°ÿ:76þv8,þ_-$þb2'þg2'þl4)þr7*þs7*þs7*þw8,þt7,þq6*þn4)þk3'ÿg2&ÿd0$ÿ`-$þ],#þ[,!ÿX*!þW)þU)þS'þS'ÿ)ÁÁÁúYYYøò777ïXWcûKJSþ|||ÿÊÊÊÿ¦¦¦ÿSSSÿ\2,þ‚KDþD4þ‘I:þ“I;þ¯¯¯ÿA?>þ~>0þb2)þf2'þp6*þx:-þy:-þ{;-þx:-þv9,ÿs7*þo4)þl3'þi2&þf0&þc/$ÿ_-#ÿ\,#þY*!þW)þT)þS'þR'þS'ÿ)TR^|z‡ô@?Gↄ–þŒŠþ\Zgþ<;CþŽŽŽÿÐÐÐÿ¯¯¯ÿJJJÿm4)þD4þE6þ˜J;þ˜UIþ†PEþvI@ÿq:/ÿl4)þm4)þx:,þ};/þ{:-þy:-þw9,ÿt7*þq6*ÿm4)þj3'þh2&þc0&þa/$ÿ]-#þ[,!ÿX*!þV)ÿT)þR'þR'þR'þ)0/5?ª§¾þˆ‡™þ_^kÿCBJÿ43:ÿ?ˆˆˆÿ¸¸¸ÿ‚‚‚ÿQQQÿ ˆ^-#þ’I:þ¡O>þ¬SBÿ£P?þ‘H7ÿ€?2þp6*þs7*þ0þ|;/þy:-þp6*þf0&þd0&ÿc/&ÿ`/$þ_-$þ]-#þ\,#þT)!ÿT)!ÿT)!ÿT)!ÿT)!ÿT)!ÿT)!ÿ)))) ?h3'¿z;/ÿT)!ÿT)!ÿT)!ÿ`/$ÿ`/$ÿ))))) ? þÿ00’$$R&   @ž @à0‡± &0ˆ± &0‰1!NSMutableDictionary1" NSDictionary&0б&%Box°K0‹±& % TextField1°=0Œ±& % TextField°40±& % TextField(0)°d0ޱ& % TextField3°S0±& % TextField5°[0±&%Stepper°_0‘±&% NSOwner0’±&%GormTabViewInspector0“±& % Button(0)°i0”±& % TextField2°O0•±& % TextField4°W0–±&%Matrix°0—±&%Button°A0˜±& % Button(1)°r0™±& % Inspector°0š± &))0›1#NSNibConnector°™0œ±&% NSOwner0±#°–0ž±#°Œ0Ÿ±#°‹0 1$NSNibOutletConnector°œ°–0¡±& % typeMatrix0¢1%NSNibControlConnector°‹°œ0£±&%ok:0¤±%°–°œ°£0¥±$°œ°™0¦±&%window0§±$°œ°‹0¨±&%numberOfItemsField0©±#°—0ª±$°œ°—0«±& % allowtruncate0¬±%°—°œ0­±&%ok:0®±#°Š0¯±#°”0°±#°Ž0±±#°•0²±#°0³±#°0´±$°œ°”0µ±& % itemLabel0¶±$°œ°0·±&%itemIdentifier0¸±$°œ°0¹±& % itemStepper0º±%°°œ0»±&%ok:0¼±%°”°œ0½±&%ok:0¾±%°°œ°½0¿±$°–°—0À±& % nextKeyView0Á±$°—°‹°À0±$°‹°”°À0ñ$°™°–0ı&%initialFirstResponder0ű$°°0Ʊ& % nextKeyView0DZ$°°–°Æ0ȱ$°‹°”0ɱ&%delegate0ʱ$°°œ°É0˱$°”°œ°É0̱#°0ͱ#°“0α#°˜0ϱ$°œ°˜0б&%itemNext0ѱ$°œ°“0Ò±& % itemPrevious0Ó±%°“°œ0Ô±&%ok:0Õ±%°˜°œ°Ô0Ö±$°”°0×±& % nextKeyView0ر!&gorm-1.2.24/Palettes/3Containers/GormTabViewInspector.gorm/data.classes0000644000000000000000000000046613410616261024531 0ustar rootroot{ "## Comment" = "Do NOT change this file, Gorm maintains it"; GormTabViewInspector = { Actions = ( ); Outlets = ( typeMatrix, numberOfItemsField, allowtruncate, itemLabel, itemStepper, itemIdentifier, itemPrevious, itemNext ); Super = IBInspector; }; }gorm-1.2.24/Palettes/3Containers/GormTabViewInspector.gorm/data.info0000644000000000000000000000027013410616261024020 0ustar rootrootGNUstep archive000f4240:00000003:00000003:00000000:01GormFilePrefsManager1NSObject%01NSString&%Latest Version0±& % Typed Streamgorm-1.2.24/Palettes/3Containers/GormTableColumnAttributesInspector.m0000644000000000000000000002323613410616261024367 0ustar rootroot/* GormTableColumnAttributesInspector.m Copyright (C) 2001-2005 Free Software Foundation, Inc. Author: Adam Fedor Laurent Julliard Date: Aug 2001 Author: Gregory Casamento Added custom class handling for table column. Date: 2004 This file is part of GNUstep. This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 3 of the License, or (at your option) any later version. This program 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 General Public License for more details. You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02111 USA. */ /* July 2005 : Split inspector classes into separate files. Always use ok: revert: methods Clean up Author : Fabien Vallon */ #import "GormTableColumnAttributesInspector.h" #import #import #import #import #import #import #import #import #import /* IBObjectAdditions category */ @implementation GormTableColumnAttributesInspector - (id) init { if ([super init] == nil) { return nil; } if ([NSBundle loadNibNamed: @"GormNSTableColumnInspector" owner: self] == NO) { NSLog(@"Could not gorm GormTableColumnInspector"); return nil; } return self; } - (void) awakeFromNib { [cellTable setDoubleAction: @selector(ok:)]; } - (NSString *)_getCellClassName { id cell = [[self object] dataCell]; NSString *customClassName = [[(id)NSApp classManager] customClassForObject: cell]; NSString *result = nil; if(customClassName == nil) { result = NSStringFromClass([cell class]); } else { result = customClassName; } return result; } /* Commit changes that the user makes in the Attributes Inspector */ - (void) ok: (id) sender { /* title Alignment */ if (sender == titleAlignmentMatrix) { if ([[sender cellAtRow: 0 column: 0] state] == NSOnState) { [[object headerCell] setAlignment: NSLeftTextAlignment]; } else if ([[sender cellAtRow: 0 column: 1] state] == NSOnState) { [[object headerCell] setAlignment: NSCenterTextAlignment]; } else if ([[sender cellAtRow: 0 column: 2] state] == NSOnState) { [[object headerCell] setAlignment: NSRightTextAlignment]; } // [[object headerCell] setAlignment: [[titleAlignmentMatrix selectedRow] tag]]; if ([[object tableView] headerView] != nil) { [[[object tableView] headerView] setNeedsDisplay: YES]; } } /* contents Alignment */ else if (sender == contentsAlignmentMatrix) { if ([[sender cellAtRow: 0 column: 0] state] == NSOnState) { [[object dataCell] setAlignment: NSLeftTextAlignment]; } else if ([[sender cellAtRow: 0 column: 1] state] == NSOnState) { [[object dataCell] setAlignment: NSCenterTextAlignment]; } else if ([[sender cellAtRow: 0 column: 2] state] == NSOnState) { [[object dataCell] setAlignment: NSRightTextAlignment]; } [[object tableView] setNeedsDisplay: YES]; } /* Identifier */ else if (sender == identifierTextField) { [object setIdentifier: [identifierTextField stringValue]]; } /* Options */ else if (sender == editableSwitch) { [object setEditable: ([editableSwitch state] == NSOnState)]; } else if (sender == resizableSwitch) { [object setResizable: ([resizableSwitch state] == NSOnState)]; } /* set Button */ else if (sender == setButton || sender == cellTable) { id classManager = [(id)NSApp classManager]; id doc = [(id)NSApp activeDocument]; id cell = nil; int i = [cellTable selectedRow]; NSArray *list = [classManager allSubclassesOf: @"NSCell"]; NSString *className = [list objectAtIndex: i]; BOOL isCustom = [classManager isCustomClass: className]; Class cls = nil; if(isCustom) { NSString *superClass = [classManager nonCustomSuperClassOf: className]; cls = NSClassFromString(superClass); NSLog(@"Setting custom cell.."); } else { cls = NSClassFromString(className); } // initialize cell = [[cls alloc] init]; [cell setEditable: [object isEditable]]; [object setDataCell: cell]; [[object tableView] setNeedsDisplay: YES]; // add it to the document, since it needs a custom class... if(isCustom) { NSString *name = nil; // An object needs to be a "named object" to have a custom class // assigned to it. Add it to the document and get the name. [doc attachObject: cell toParent: object]; if((name = [doc nameForObject: cell]) != nil) { [classManager setCustomClass: className forName: name]; } } RELEASE(cell); } /* default button */ else if (sender == defaultButton) { [object setDataCell: [[NSTextFieldCell alloc] init]]; [[object tableView] setNeedsDisplay: YES]; [self setObject: [self object]]; // reset... } else if (sender == columnTitle) { [[object headerCell] setStringValue: [columnTitle stringValue]]; [[[object tableView] headerView] setNeedsDisplay: YES]; } // sort descriptor... else if( sender == sortKey || sender == sortSelector || sender == sortOrder ) { NSString *selectorString = [sortSelector stringValue]; NSString *key = [sortKey stringValue]; SEL selector = (([selectorString isEqual: @""]) ? NULL:NSSelectorFromString(selectorString)); BOOL isAscending = ([sortOrder indexOfSelectedItem] == 0); NSSortDescriptor *sortDescriptor = [[NSSortDescriptor alloc] initWithKey:key ascending:isAscending selector:selector]; [object setSortDescriptorPrototype: sortDescriptor]; [sortDescriptor release]; } [super ok:sender]; } /* Sync from object ( NSTableColumn ) changes to the inspector */ - (void) revert:(id) sender { NSArray *list; NSString *cellClassName; NSUInteger index; if ( object == nil ) return; list = [[(id)NSApp classManager] allSubclassesOf: @"NSCell"]; cellClassName = [self _getCellClassName]; index = [list indexOfObject: cellClassName]; if(index != NSNotFound) { [cellTable selectRow: index byExtendingSelection: NO]; [cellTable scrollRowToVisible: index]; } /* title Alignment */ switch ([[object headerCell] alignment]) { case NSLeftTextAlignment: [titleAlignmentMatrix selectCellAtRow: 0 column: 0]; break; case NSCenterTextAlignment: [titleAlignmentMatrix selectCellAtRow: 0 column: 1]; break; case NSRightTextAlignment: [titleAlignmentMatrix selectCellAtRow: 0 column: 2]; break; default: NSLog(@"Unhandled alignment value..."); break; } /* contents Alignment */ switch ([[object dataCell] alignment]) { case NSLeftTextAlignment: [contentsAlignmentMatrix selectCellAtRow: 0 column: 0]; break; case NSCenterTextAlignment: [contentsAlignmentMatrix selectCellAtRow: 0 column: 1]; break; case NSRightTextAlignment: [contentsAlignmentMatrix selectCellAtRow: 0 column: 2]; break; default: NSLog(@"Unhandled alignment value..."); break; } [identifierTextField setStringValue: [(NSTableColumn *)object identifier]]; [columnTitle setStringValue: [[(NSTableColumn *)object headerCell] stringValue]]; /* options */ if ([object isResizable]) [resizableSwitch setState: NSOnState]; else [resizableSwitch setState: NSOffState]; if ([object isEditable]) [editableSwitch setState: NSOnState]; else [editableSwitch setState: NSOffState]; /* sort */ NSSortDescriptor *sortDescriptor = [(NSTableColumn *)object sortDescriptorPrototype]; if(sortDescriptor != nil) { SEL sel = [sortDescriptor selector]; NSString *selectorString = ((sel == NULL) ? @"" : NSStringFromSelector(sel)); [sortKey setStringValue: [sortDescriptor key]]; [sortSelector setStringValue: selectorString]; [sortOrder selectItemAtIndex: ([sortDescriptor ascending]?0:1)]; } else { [sortKey setStringValue: @""]; [sortSelector setStringValue: @""]; [sortOrder selectItemAtIndex: 0]; } [super revert:sender]; } // Data Source // replace by an NSBrowser ? - (NSInteger) numberOfRowsInTableView: (NSTableView *)tv { NSArray *list = [[(id)NSApp classManager] allSubclassesOf: @"NSCell"]; return [list count]; } - (id) tableView: (NSTableView *)tv objectValueForTableColumn: (NSTableColumn *)tc row: (NSInteger)rowIndex { NSArray *list = [[(id)NSApp classManager] allSubclassesOf: @"NSCell"]; id value = nil; if([list count] > 0) { value = [list objectAtIndex: rowIndex]; } return value; } // delegate - (BOOL) tableView: (NSTableView *)tableView shouldEditTableColumn: (NSTableColumn *)aTableColumn row: (NSInteger)rowIndex { return NO; } - (BOOL) tableView: (NSTableView *)tv shouldSelectRow: (NSInteger)rowIndex { return YES; } /* delegate method for identifier */ -(void) controlTextDidChange:(NSNotification *)aNotification { [self ok:[aNotification object]]; } @end gorm-1.2.24/Palettes/3Containers/GormTabViewEditor.m0000644000000000000000000000777013410616261020741 0ustar rootroot/* GormTabViewEditor.m * * Copyright (C) 2002 Free Software Foundation, Inc. * * Author: Pierre-Yves Rivaille * Date: 2002 * * This file is part of GNUstep. * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 3 of the License, or * (at your option) any later version. * * This program 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 General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02111 USA. */ #include #include #include #include #include "GormTabViewEditor.h" #define _EO ((NSTabView *)_editedObject) @implementation GormTabViewEditor - (void) setOpened: (BOOL) flag { [super setOpened: flag]; if (flag == YES && currentView) { [document setSelectionFromEditor: currentView]; } } - (NSArray *) selection { return [NSArray arrayWithObject: _EO]; } - (BOOL) activate { if ([super activate]) { currentView = nil; [_EO setDelegate: self]; [self tabView: _EO didSelectTabViewItem: [_EO selectedTabViewItem]]; return YES; } return NO; } - (void) deactivate { if (activated == YES) { [self deactivateSubeditors]; [_EO setDelegate: nil]; [super deactivate]; } } - (void) mouseDown: (NSEvent *) theEvent { BOOL onKnob = NO; { if ([parent respondsToSelector: @selector(selection)] && [[parent selection] containsObject: _EO]) { IBKnobPosition knob = IBNoneKnobPosition; NSPoint mouseDownPoint = [self convertPoint: [theEvent locationInWindow] fromView: nil]; knob = GormKnobHitInRect([self bounds], mouseDownPoint); if (knob != IBNoneKnobPosition) onKnob = YES; } if (onKnob == YES) { if (parent) return [parent mouseDown: theEvent]; else return [self noResponderFor: @selector(mouseDown:)]; } } if (opened == NO) { [super mouseDown: theEvent]; return; } if ([[_EO hitTest: [theEvent locationInWindow]] isDescendantOf: currentView]) { NSDebugLog(@"md %@ descendant of", self); if ([currentView isOpened] == NO) [currentView setOpened: YES]; [currentView mouseDown: theEvent]; } else { NSDebugLog(@"md %@ not descendant of", self); if ([currentView isOpened] == YES) [currentView setOpened: NO]; [_EO mouseDown: theEvent]; } } @end @implementation GormTabViewEditor (TabViewDelegate) - (void) tabView: (NSTabView *)tabView didSelectTabViewItem: (NSTabViewItem *)tabViewItem { if ([tabViewItem view]) { if ([[tabViewItem view] isKindOfClass: [GormViewEditor class]] == NO) { currentView = (GormInternalViewEditor *)[document editorForObject: [tabViewItem view] inEditor: self create: YES]; NSDebugLog(@"dSTVI %@ %@ %@", self, currentView, [tabViewItem view]); NSDebugLog(@"dsTVI %@ %@", self, [document parentEditorForEditor: currentView]); } else { NSDebugLog(@"dsTVI %@ already there", self); } } } - (BOOL) tabView: (NSTabView *)tabView shouldSelectTabViewItem: (NSTabViewItem *)tabViewItem { id view = [[tabView selectedTabViewItem] view]; NSDebugLog(@"shouldSelectTabViewItem called"); if ([view isKindOfClass: [GormInternalViewEditor class]]) { NSDebugLog(@"closing tabviewitem"); [view deactivate]; currentView = nil; openedSubeditor = nil; } return YES; } - (void)tabViewDidChangeNumberOfTabViewItems:(NSTabView *)tabView { // [tabView selectFirstTabViewItem: self]; } @end gorm-1.2.24/Palettes/3Containers/GormNSTableColumnInspector.gorm/0000755000000000000000000000000013410616261023340 5ustar rootrootgorm-1.2.24/Palettes/3Containers/GormNSTableColumnInspector.gorm/objects.gorm0000644000000000000000000003722613410616261025671 0ustar rootrootGNUstep archive00003071:0000002b:0000018c:00000002:01GSNibContainer1NSObject01 NSMutableSet1NSSet&01GSWindowTemplate1GSClassSwapper01NSString&% NSWindow1NSWindow1 NSResponder% @ @ Cˆ CÂ&% D: D!À01 NSView% @ @ Cˆ C  Cˆ CÂ&01 NSMutableArray1 NSArray&01 NSBox% B C¤ Bº Bp  Bº Bp&0± &0 ± % @à @à Bž B   Bž B &0 ± &0 1NSMatrix1 NSControl% @ @ B– AÈ  B– AÈ&0 ± &%0 1 NSActionCell1NSCell0±&01NSFont% A@&&&&&&&&&&&&&&%’% AÈ AÈ Ï01NSColor0±&% NSCalibratedRGBColorSpace ?*Àƒ ?*Àƒ ?*Àƒ ?*Àƒ ?€°0±& % NSButtonCell01 NSButtonCell0±&%Button°&&&&&&&&&&&&&&%’0±&0±&&&& &&%%0± &0±0±&01NSImage0±& % leftalign_nib°&&&&&&&&&&&&&&%’°°&&& &&0±0±&0±0±&%centeralign_nib°&&&&&&&&&&&&&&%’°0 ±&&&& &&0!±0"±&0#±0$±&%rightalign_nib°&&&&&&&&&&&&&&%’°°&&& &&2 ok:v12@0:4@8’’°0%1NSTextFieldCell0&±&%Title°&&&&&&&&&&&&&&%’0'±0(±&% NSNamedColorSpace0)±&% System0*±&% windowBackgroundColor0+±° ?€ @  @ %%0,± % C C¤ Bº Bp  Bº Bp& 0-± &0.± % @à @à Bž B   Bž B &0/± &00±% @ @ B– AÈ  B– AÈ&01± &%02±03±&°&&&&&&&&&&&&&&%’% AÈ AÈ Ï04±° ?*Àƒ ?*Àƒ ?*Àƒ ?*Àƒ ?€°405±& % NSButtonCell06±07±&°&&&&&&&&&&&&&&%’08±&09±&&&& &&%%0:± &0;±0<±&°°&&&&&&&&&&&&&&%’°8°9&&& &&0=±0>±&°°&&&&&&&&&&&&&&%’°8°9&&& &&0?±0@±&°°&&&&&&&&&&&&&&%’°8°9&&& &&²’’°=0A±0B±&%Contents°&&&&&&&&&&&&&&%’°'0C±° ?€ @  @ %%0D± % A C€ C| B4  C| B4& 0E± &0F± % @à @à Cn A   Cn A &0G± &0H1NSButton% A0 @€ BÞ A€  BÞ A€&0I± &%0J±0K±& % Resizable0L±0M1NSMutableString&%common_SwitchOff°&&&&&&&&&&&&&&%²0N±&0O±&0P±0Q±&%common_SwitchOn&&& &&0R±% BÞ @€ B¦ A€  B¦ A€&0S± &%0T±0U±&%Editable°L°&&&&&&&&&&&&&&%²0V±&0W±&°P&&& &&0X±0Y±&%Options°&&&&&&&&&&&&&&%’°'0Z±° ?€ @  @ %%0[± % B BÐ CB BÌ  CB BÌ&0\± &0]± % @à @à C4 Bš  C4 Bš&0^± &0_1 NSPopUpButton% Bh @@ Bä A°  Bä A°&0`± &%0a1NSPopUpButtonCell1NSMenuItemCell0b±&0c±%&&&&&&&&0d1NSMenu0e±&0f± &0g1 NSMenuItem0h±& % Ascending°b&&ÿ%0i±0j±& % common_Nibble’%0k±0l±& % Descending°b&&ÿ%’%&&&&&&%’0m±&°m&&& >ÌÌÍ =™™š&&°g°d°g%%%%%0n1 NSTextField% AP @@ B A°  B A°&0o± &%0p±0q±&%Order:0r±% A@°q&&&&&&&& &&&&&&%’0s±°(0t±&%System0u±&%textBackgroundColor0v±°(°t0w±& % textColor’0x±% Bh B\ Bà A¨  Bà A¨&0y± &%0z±0{±&°c°{&&&&&&&& &&&&&&%’°s°v’0|±% Bh Að Bà A¨  Bà A¨&0}± &%0~±0±&°c°&&&&&&&& &&&&&&%’°s°v’0€±% B BT A  BT A&0± &%0‚±0ƒ±& % Selector:°r°ƒ&&&&&&&& &&&&&&%’°s°v’0„±% A  B\ B A  B A&0…± &%0†±0‡±&%Key:°r°‡&&&&&&&& &&&&&&%’°s°v’0ˆ±0‰±&%Sorting°°‰&&&&&&&&&&&&&&%’°'0б° ?€ @  @ %%0‹1 NSScrollView% B AÀ CB B–  CB B–&20Œ± &01 NSClipView% A¨ AÀ C+ BD  C+ BD&0ޱ &01! NSTableView%  C+ C!  C+ C!&0± &%0‘±0’±&°c&&&&&&&&&&&&&&0“± &0”1" NSTableColumn0•±&%column1 C+ A  GÃP0–1#NSTableHeaderCell0—±& % Data Cell0˜±% &&&&&&&&&&&&&&%’0™±°(°)0š±&% controlShadowColor0›±°(°)0œ±&% windowFrameTextColor0±0ž±&%quatre°c°ž&&&&&&&&&&&&&&%’°s°v0Ÿ±°(°)0 ±& %  gridColor0¡±°(°)0¢±&% controlBackgroundColor0£1$NSTableHeaderView%  C+ A°  C+ A°&0¤± &0¥1%GSTableCornerView% @ @ A˜ A°  A˜ A°&0¦± &%% A€’ @ @@0§± &°¡0¨1& NSScroller% @ AÀ A BD  A BD&0©± &%0ª±°’°c&&&&&&&&&&&&&&&°‹2 _doScroll:v12@0:4@80«± % A¨ @ C+ A°  C+ A°&0¬± &°£0­±°(°)0®±& %  controlColor°¥°% A A A A °¨°«0¯±% Bš  B` AÀ  B` AÀ&$0°± &%0±±0²±&%Set°c&&&&&&&&&&&&&&%’0³±&0´±&&&& &&0µ±% C  B` AÀ  B` AÀ&!0¶± &%0·±0¸±&%Default°c&&&&&&&&&&&&&&%’0¹±&0º±&&&& &&0»± % B CS CB B  CB B&0¼± &0½± % @à @à C4 B<  C4 B<&0¾± &0¿±% B˜ AÈ BÈ A°  BÈ A°&0À± &%0Á±0±&°&&&&&&&&&&&&&&%’0ñ° ?€ ?€ ?€ ?€ ?€0ı° ?€’0ű% B˜  BÈ A°  BÈ A°&0Ʊ &%0DZ0ȱ&°°È&&&&&&&&&&&&&&%’0ɱ° ?€ ?€ ?€ ?€ ?€0ʱ° ?€’0˱% B AÈ B, A  B, A&0̱ &%0ͱ0α&%Title:°r°Î&&&&&&&& &&&&&&%’°s°v’0ϱ% A @€ B„ A  B„ A&0б &%0ѱ0Ò±& % Identifier:°r°Ò&&&&&&&& &&&&&&%’°s°v’0Ó±0Ô±& % Attributes°°Ô&&&&&&&&&&&&&&%’°'0Õ±° ?€ @  @ %%°'0Ö±&%Window0×±& % TableColumn Attributes Inspector°× ?€ A¸ F@ F@%&   DÎ@ DRÀ0ر &0Ù± &0Ú1'NSMutableDictionary1( NSDictionary&"0Û±&%Button5°R0ܱ&%Button6°¯0ݱ& % TableColumn°”0Þ±&%Button7°µ0ß±& % Inspector°0à±&%View(0)°½0á±&%Button0â±% A B´ B` AÀ  B` AÀ&0ã± &%0ä±0å±&%Button°&&&&&&&&&&&&&&%’0æ±&0ç±&&&& &&0è±&%Box1°,0é±&%Box2°D0ê±&%Box3°[0ë±& % TextField(8)°„0ì±&%PopUpButton(0)°_0í±&%Box(0)°»0î±& % TextField(7)°€0ï±& % TextField(6)°|0ð±& % TextField(5)°x0ñ±& % ScrollView°‹0ò±& % TextField(4)°n0ó±& % TextField(3)°Ï0ô±&%Box°0õ±&%Matrix1°00ö±& % MenuItem(1)°k0÷±&%GormNSTableView°0ø±& % TextField(2)°Ë0ù±& % MenuItem(0)°g0ú±& % TextField(1)°Å0û±&% NSOwner0ü±& % GormTableViewAttributesInspector0ý±& % TextField(0)°¿0þ±& % TableColumn10ÿ±"P±&%column2 Bî A  GÃPP±#P±&% °˜&&&&&&&&&&&&&&%’°™°›P±P±&%four°cÐ&&&&&&&&&&&&&&%’°s°vP±&%Matrix° P±&%Button1P±% A B´ B` AÀ  B` AÀ&P± &%P ±P ±&%Button°&&&&&&&&&&&&&&%’P ±&P ±&&&& &&P ±&%Button2P±% A B´ B` AÀ  B` AÀ&P± &%P±P±&%Button°&&&&&&&&&&&&&&%’P±&P±&&&& &&P±&%Button3°HP±&%Button4P±% A Bp B` A€  B` A€&P± &%P±P±&%Switch°L°&&&&&&&&&&&&&&%’P±&P±&°P&&& &&P± &MMP1)NSNibConnector°ßP±&% NSOwnerP±)°ô°ßP ±)°á°ßP!±)аßP"±)°è°ßP#±)аßP$±)Ð °ßP%±)°õ°ßP&1*NSNibOutletConnectorаßP'±&%windowP(±*ÐÐP)±&%titleAlignmentMatrixP*±*аõP+±&%contentsAlignmentMatrixP,1+NSNibControlConnectorÐÐP-±&%ok:P.±+°õÐÐ-P/±)°é°ßP0±)аßP1±)аßP2±)°Û°ßP3±*ÐÐP4±&%resizableSwitchP5±*аÛP6±&%editableSwitchP7±+ÐÐÐ-P8±+°ÛÐÐ-P9±)°ê°ßP:±)°ñP;±)°÷P<±)°ÝP=±)°þP>±)°ÜP?±)°ÞP@±*а÷PA±& % cellTablePB±*аÜPC±& % setButtonPD±*аÞPE±& % defaultButtonPF±*°÷ÐPG±&%delegatePH±*°÷ÐPI±& % dataSourcePJ±+°ÜÐPK±&%ok:PL±+°ÞÐÐKPM±+°÷ÐÐKPN±*аÛPO±& % nextKeyViewPP±*°ßÐPQ±&%initialFirstResponderPR±)°íPS±)°à°íPT±)°ý°àPU±+°ýPV±&% NSFirstPW±&%ok:PX±*аýPY±& % columnTitlePZ±*°ýÐP[±&%delegateP\±*°Û°ýP]±& % nextKeyViewP^±)°ú°àP_±+°úÐVP`±&%ok:Pa±)°ø°àPb±)°ó°àPc±*аúPd±&%identifierTextFieldPe±)°ìPf±)°ùPg±)°öPh±)°òPi±*аìPj±& % sortOrderPk±)°ðPl±)°ïPm±)°îPn±)°ëPo±*аðPp±&%sortKeyPq±*аïPr±& % sortSelectorPs±*°ð°ïPt±& % nextKeyViewPu±*°ï°ìÐtPv±*аõÐtPw±*°õÐÐtPx±*°ý°úÐtPy±*°ú°ðÐtPz±*°ì°ñÐtP{±*°÷°ÜÐtP|±*°Ü°ÞÐtP}±*°ÞÐÐtP~±+°ðÐVP±&%ok:P€±+°ïÐVÐP±*°ðÐP‚±&%delegatePƒ±*°ïÐЂP„±+°ìÐP…±&%ok:P†±*°úÐP‡±&%delegatePˆ±'&gorm-1.2.24/Palettes/3Containers/GormNSTableColumnInspector.gorm/data.classes0000644000000000000000000000064013410616261025630 0ustar rootroot{ "## Comment" = "Do NOT change this file, Gorm maintains it"; GormTableViewAttributesInspector = { Actions = ( ); Outlets = ( contentsAlignmentMatrix, editableSwitch, identifierTextField, resizableSwitch, titleAlignmentMatrix, cellTable, defaultButton, setButton, columnTitle, sortOrder, sortKey, sortSelector ); Super = IBInspector; }; }gorm-1.2.24/Palettes/3Containers/GormNSTableColumnInspector.gorm/data.info0000644000000000000000000000027013410616261025125 0ustar rootrootGNUstep archive00003071:00000003:00000003:00000000:01GormFilePrefsManager1NSObject%01NSString&%Latest Version0±& % Typed Streamgorm-1.2.24/Palettes/3Containers/GormTableViewAttributesInspector.m0000644000000000000000000001602613410616261024043 0ustar rootroot/* GormTableViewAttributesInspector.m Copyright (C) 2001 Free Software Foundation, Inc. Author: Laurent Julliard Author: Gregory John Casamento Date: Aug 2001. 2003, 2004 This file is part of GNUstep. This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 3 of the License, or (at your option) any later version. This program 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 General Public License for more details. You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02111 USA. */ /* July 2005 : Split inspector classes into separate files. Always use ok: revert: methods Clean up Author : Fabien Vallon */ #import "GormTableViewAttributesInspector.h" #import "GormNSTableView.h" #import #import #import #import #import #import #import #import #import @implementation GormTableViewAttributesInspector - (id) init { if ([super init] == nil) { return nil; } if ([NSBundle loadNibNamed: @"GormNSTableViewInspector" owner: self] == NO) { NSLog(@"Could not gorm GormTableViewInspector"); return nil; } return self; } /* Commit changes that the user makes in the Attributes Inspector */ - (void) ok: (id)sender { BOOL flag; BOOL isScrollView; id scrollView; scrollView = [object enclosingScrollView]; isScrollView = [scrollView isKindOfClass: [NSScrollView class]]; /* Selection */ if ( sender == multipleSelectionSwitch ) { [object setGormAllowsMultipleSelection:[multipleSelectionSwitch state]]; } else if ( sender == emptySelectionSwith ) { [object setGormAllowsEmptySelection: [emptySelectionSwith state]]; } else if ( sender == columnSelectionSwitch ) { [object setGormAllowsColumnSelection: [columnSelectionSwitch state]]; } /* scrollers */ else if ( (sender == verticalScrollerSwitch) && isScrollView) { flag = ([sender state] == NSOnState) ? YES : NO; [scrollView setHasVerticalScroller: flag]; } else if ( (sender == horizontalScrollerSwitch) && isScrollView) { flag = ([sender state] == NSOnState) ? YES : NO; [scrollView setHasHorizontalScroller: flag]; } /* border */ else if ( (sender == borderMatrix) && isScrollView) { [scrollView setBorderType: [[sender selectedCell] tag]]; } /* dimension */ else if (sender == rowsHeightForm) { int numCols = [(NSTableView*)object numberOfColumns]; int newNumCols = [[sender cellAtIndex: 1] intValue]; float rowHeight = [[sender cellAtIndex: 0] floatValue]; // make sure the minimum height doesn't go below 1. if(rowHeight < 1.0) { rowHeight = 1.0; [[sender cellAtIndex: 0] setFloatValue: 1.0]; } // add/delete columns based on number in #columns field... [object setRowHeight: rowHeight]; if(newNumCols > 0) { if(numCols < newNumCols) { int colsToAdd = newNumCols - numCols; int i = 0; // Add columns from the last to the target number... for(i = 0; i < colsToAdd; i++) { NSString *identifier = [NSString stringWithFormat: @"column%d",(numCols + i + 1)]; NSTableColumn *tc = AUTORELEASE([(NSTableColumn *)[NSTableColumn alloc] initWithIdentifier: (id)identifier]); [tc setWidth: 50]; [tc setMinWidth: 20]; [tc setResizable: YES]; [tc setEditable: YES]; [object addTableColumn: tc]; } } else if(numCols > newNumCols) { int colsToDelete = numCols - newNumCols; int i = 0; NSArray *columns = [object tableColumns]; // remove columns... for(i = 0; i < colsToDelete; i++) { NSTableColumn *tc = [columns objectAtIndex: (i + newNumCols)]; [object removeTableColumn: tc]; } } } // recompute column sizes.. [object sizeToFit]; [object tile]; } /* Options */ else if ( sender == drawgridSwitch ) { [object setDrawsGrid:[drawgridSwitch state]]; } else if ( sender == resizingSwitch ) { [object setGormAllowsColumnResizing: [resizingSwitch state]]; } else if ( sender == reorderingSwitch ) { [object setGormAllowsColumnReordering:[reorderingSwitch state]]; } /* tag */ else if( sender == tagForm ) { [object setTag:[[tagForm cellAtIndex:0] intValue]]; } /* background color */ else if( sender == backgroundColor ) { [object setBackgroundColor: [backgroundColor color]]; } // #warning always needed ? [scrollView setNeedsDisplay: YES]; [super ok:sender]; } /* Sync from object ( NSTableView and its scollView ) changes to the inspector */ - (void) revert: (id) sender { BOOL isScrollView; id scrollView; if ( object == nil ) return; scrollView = [object enclosingScrollView]; isScrollView = [ scrollView isKindOfClass: [NSScrollView class]]; /* selection */ [multipleSelectionSwitch setState: [object gormAllowsMultipleSelection]]; [emptySelectionSwith setState:[object gormAllowsEmptySelection]]; [columnSelectionSwitch setState:[object gormAllowsColumnSelection]]; if (isScrollView) { /* scrollers */ [verticalScrollerSwitch setEnabled: YES]; [verticalScrollerSwitch setState: ([scrollView hasVerticalScroller]) ? NSOnState : NSOffState]; [horizontalScrollerSwitch setEnabled: YES]; [horizontalScrollerSwitch setState: ([scrollView hasHorizontalScroller]) ? NSOnState : NSOffState]; /* border */ [borderMatrix setEnabled: YES]; [borderMatrix selectCellWithTag: [scrollView borderType]]; } else { [verticalScrollerSwitch setEnabled: NO]; [horizontalScrollerSwitch setEnabled: NO]; [borderMatrix setEnabled: NO]; } /* dimension */ [[rowsHeightForm cellAtIndex: 0] setIntValue: [object rowHeight] ]; [[rowsHeightForm cellAtIndex: 1] setIntValue: [(NSTableView*)object numberOfColumns]]; /* options */ [drawgridSwitch setState:[object drawsGrid]]; [resizingSwitch setState:[object gormAllowsColumnResizing]]; [reorderingSwitch setState:[object gormAllowsColumnReordering]]; /* tag */ [[tagForm cellAtIndex:0] setIntValue:[object tag]]; /* background color */ [backgroundColor setColorWithoutAction: [object backgroundColor]]; [super revert:sender]; } /* delegate for tag and Forms */ -(void) controlTextDidChange:(NSNotification *)aNotification { [self ok:[aNotification object]]; } @end gorm-1.2.24/Palettes/3Containers/GormBrowserAttributesInspector.m0000644000000000000000000000774313410616261023612 0ustar rootroot/* GormBrowserAttributesInspector.m Copyright (C) 2001-2015 Free Software Foundation, Inc. Author: Adam Fedor Laurent Julliard Gregory John Casamento Date: Aug 2001 This file is part of GNUstep. This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 3 of the License, or (at your option) any later version. This program 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 General Public License for more details. You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02111 USA. */ /* July 2005 : Split inspector classes into separate files. Always use ok: revert: methods Clean up Author : Fabien Vallon */ #include "GormBrowserAttributesInspector.h" #include #include #include #include #include #include @implementation GormBrowserAttributesInspector - (id) init { if ([super init] == nil) { return nil; } if ([NSBundle loadNibNamed: @"GormNSBrowserInspector" owner: self] == NO) { NSLog(@"Could not gorm GormBrowserInspector"); return nil; } return self; } /* Commit changes that the user makes in the Attributes Inspector */ - (void) ok: (id)sender { /* options */ if ( sender == multipleSelectionSwitch ) { [object setAllowsMultipleSelection: [multipleSelectionSwitch state]]; } else if ( sender == emptySelectionSwitch ) { [object setAllowsEmptySelection: [emptySelectionSwitch state]]; } else if ( sender == branchSelectionSwitch ) { [object setAllowsBranchSelection: [branchSelectionSwitch state]]; } else if ( sender == separateColumnsSwitch ) { [object setSeparatesColumns: [separateColumnsSwitch state]]; } else if ( sender == horizontalScrollerSwitch ) { [object setHasHorizontalScroller: [horizontalScrollerSwitch state]]; } else if ( sender == displayTitlesSwitch ) { [object setTitled: [displayTitlesSwitch state]]; } else if ( sender == minColumnWidthField ) /* minimum column width */ { // TODO: Use stepper.. [object setMinColumnWidth: [minColumnWidthField intValue]]; } else if ( sender == maxVisibleColumnsField ) { [object setMaxVisibleColumns: [maxVisibleColumnsField intValue]]; } else if(sender == tagForm) /* tag */ { [object setTag:[[tagForm cellAtIndex:0] intValue]]; } [super ok:sender]; } /* Sync from object ( NSBrowser ) changes to the inspector */ - (void) revert: (id) sender { if (object == nil) return; [multipleSelectionSwitch setState: [object allowsMultipleSelection]]; [emptySelectionSwitch setState: [object allowsEmptySelection]]; [branchSelectionSwitch setState:[object allowsBranchSelection]]; [separateColumnsSwitch setState:[object separatesColumns]]; [displayTitlesSwitch setState:[object isTitled]]; [horizontalScrollerSwitch setState:[object hasHorizontalScroller]]; [[tagForm cellAtIndex:0] setIntValue: [object tag]]; [minColumnWidthField setStringValue: [NSString stringWithFormat:@"%f", [object minColumnWidth]]]; [maxVisibleColumnsField setStringValue: [NSString stringWithFormat:@"%ld", (long int)[object maxVisibleColumns]]]; [super revert:sender]; } /* delegate method for tagForm and minColumnWidthField */ -(void) controlTextDidChange:(NSNotification *)aNotification { [self ok:[aNotification object]]; } @end gorm-1.2.24/Palettes/3Containers/GormTableViewSizeInspector.m0000644000000000000000000000231213410616261022620 0ustar rootroot/* GormTableViewSizeInspector -- size inspector for table and table subclasses. Copyright (C) 2001 Free Software Foundation, Inc. Author: Gregory John Casamento Date: 2005 This file is part of GNUstep. This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 3 of the License, or (at your option) any later version. This program 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 General Public License for more details. You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02111 USA. */ #include #include "GormTableViewSizeInspector.h" @implementation GormTableViewSizeInspector - (void) setObject: (id)anObject { id scrollView; scrollView = [anObject enclosingScrollView]; [super setObject: scrollView]; } @end gorm-1.2.24/Palettes/3Containers/GormNSTableColumnSizeInspector.gorm/0000755000000000000000000000000013410616261024173 5ustar rootrootgorm-1.2.24/Palettes/3Containers/GormNSTableColumnSizeInspector.gorm/objects.gorm0000644000000000000000000000714613410616261026522 0ustar rootrootGNUstep archive000f4240:0000001b:00000044:00000001:01GSNibContainer1NSObject01 NSMutableSet1NSSet&01GSWindowTemplate1GSClassSwapper01NSString&% NSWindow1NSWindow1 NSResponder% ?ð ?ð @q @x@JI @p€ @ƒh01 NSView% ?ð ?ð @q @x@  @q @x@J01 NSMutableArray1 NSArray&01 NSBox% @F€ @a` @g` @]€  @g` @]€J0± &0 ± % @ @ @e  @W@  @e  @W@J0 ± &0 1NSForm1NSMatrix1 NSControl% @ @& @c` @S  @c` @SJ0 ± &%0 1 NSFormCell1 NSActionCell1NSCell0±&01NSFont% A@&&&&&&JJ&&&&&&I’ ¿€0±0±&%Field:°&&&&&&JJ&&&&&&% @c` @7UUUUUU @01NSColor0±&% NSNamedColorSpace0±&% System0±&% controlBackgroundColor0±0±&% NSCalibratedRGBColorSpace ?*Àƒ ?*Àƒ ?*Àƒ ?*Àƒ ?€0±& % NSFormCell%%0± &0±0±&°&&&&&&JJ&&&&&&I’ B\0±0±&%Minimum:°&&&&&&JJ&&&&&&0±0±&°&&&&&&JJ&&&&&&I’ B\0 ±0!±&%Current:°&&&&&&JJ&&&&&&0"±0#±&°&&&&&&JJ&&&&&&I’ B\0$±0%±&%Maximum:°&&&&&&JJ&&&&&&2 ok:v24@0:8@16’’°0&1NSTextFieldCell0'±& % Column Width°&&&&&&JJ &&&&&&I’0(±°°0)±&% windowBackgroundColor0*±° ?€ @ @%%°(0+±&%Window0,±&%TableColumne Size Inspector°, ?ð @7 @È @ÈI&   @ž @à0-± &0.± &0/1NSMutableDictionary1 NSDictionary&00±&%Box°01±&% NSOwner02±&%GormTableViewSizeInspector03±& % Inspector°04±&%Form° 05± &061NSNibConnector°307±&% NSOwner08±°0°309±°4°30:1NSNibOutletConnector°7°30;±&%window0<±°7°40=±& % widthForm0>±°3°40?1NSMutableString&%initialFirstResponder0@±°4°70A±&%delegate0B±&gorm-1.2.24/Palettes/3Containers/GormNSTableColumnSizeInspector.gorm/data.classes0000644000000000000000000000026513410616261026466 0ustar rootroot{ "## Comment" = "Do NOT change this file, Gorm maintains it"; GormTableViewSizeInspector = { Actions = ( ); Outlets = ( widthForm ); Super = IBInspector; }; }gorm-1.2.24/Palettes/3Containers/GormNSTableColumnSizeInspector.gorm/data.info0000644000000000000000000000027013410616261025760 0ustar rootrootGNUstep archive000f4240:00000003:00000003:00000000:01GormFilePrefsManager1NSObject%01NSString&%Latest Version0±& % Typed Streamgorm-1.2.24/Palettes/3Containers/GormNSBrowser.h0000644000000000000000000000206113410616261020074 0ustar rootroot/* GormNSBrowser.h Copyright (C) 2001 Free Software Foundation, Inc. Author: Pierre-Yves Rivaille Date: 2001 This file is part of GNUstep. This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 3 of the License, or (at your option) any later version. This program 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 General Public License for more details. You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02111 USA. */ #ifndef INCLUDED_GormNSBrowser_h #define INCLUDED_GormNSBrowser_h #include @interface GormNSBrowser : NSBrowser { id _gormDelegate; } @end #endif gorm-1.2.24/Palettes/3Containers/ContainersPalette.m0000644000000000000000000001237413410616261021024 0ustar rootroot/* main.m Copyright (C) 1999 Free Software Foundation, Inc. Author: Richard frith-Macdonald (richard@brainstorm.co.uk> Date: 1999 This file is part of GNUstep. This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 3 of the License, or (at your option) any later version. This program 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 General Public License for more details. You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02111 USA. */ #include #include #include #include #include #include #include #include "GormNSBrowser.h" #include "GormNSTableView.h" #include "GormNSOutlineView.h" #include /* --------------------------------------------------------------- * Containers Palette Display */ @interface ContainersPalette: IBPalette { } @end @implementation ContainersPalette - (void) finishInstantiate { NSView *contents; NSTableView *tv; NSOutlineView *ov; NSTableColumn *tc; NSSize contentSize; id v; originalWindow = [[NSWindow alloc] initWithContentRect: NSMakeRect(0, 0, 272, 192) styleMask: NSBorderlessWindowMask backing: NSBackingStoreRetained defer: NO]; contents = [originalWindow contentView]; /*******************/ /* First Column... */ /*******************/ // NSBrowser // 124 is the minimum width. Below that the browser doesn't display !! v = [[GormNSBrowser alloc] initWithFrame: NSMakeRect(10, 98, 124, 78)]; [v setHasHorizontalScroller: YES]; [v setTitled: YES]; [v loadColumnZero]; [contents addSubview: v]; RELEASE(v); // NSTabView v = [[NSTabView alloc] initWithFrame: NSMakeRect(10, 10, 124, 78)]; [contents addSubview: v]; { NSView *vv; NSTabViewItem *tvi; tvi = [[NSTabViewItem alloc] initWithIdentifier: @"item 1"]; [tvi setLabel: @"Item 1"]; vv = [[NSView alloc] init]; [vv setAutoresizingMask: NSViewWidthSizable | NSViewHeightSizable]; [tvi setView: vv]; [v addTabViewItem: tvi]; RELEASE(tvi); tvi = [[NSTabViewItem alloc] initWithIdentifier: @"item 2"]; [tvi setLabel: @"Item 2"]; vv = [[NSView alloc] init]; [vv setAutoresizingMask: NSViewWidthSizable | NSViewHeightSizable]; [tvi setView: vv]; [v addTabViewItem: tvi]; RELEASE(tvi); } RELEASE(v); /********************/ /* Second Column... */ /********************/ // NSTableView v = [[NSScrollView alloc] initWithFrame: NSMakeRect(136, 10, 124, 78)]; [contents addSubview: v]; [v setHasVerticalScroller: YES]; [v setHasHorizontalScroller: NO]; contentSize = [v contentSize]; [v setBorderType: NSBezelBorder]; tv = [[GormNSTableView alloc] initWithFrame: NSZeroRect]; tc = [[NSTableColumn alloc] initWithIdentifier: @"column1"]; [[tc headerCell] setStringValue: @" "]; [tc setWidth: floor(contentSize.width/2)]; [tc setMinWidth: 20]; [tc setResizable: YES]; [tc setEditable: YES]; [tv addTableColumn: tc]; RELEASE(tc); tc = [[NSTableColumn alloc] initWithIdentifier: @"column2"]; [[tc headerCell] setStringValue: @" "]; [tc setWidth: ceil(contentSize.width/2)]; [tc setMinWidth: 20]; [tc setResizable: YES]; [tc setEditable: YES]; [tv addTableColumn: tc]; RELEASE(tc); [v setDocumentView: tv]; [contents addSubview: v]; RELEASE(tv); RELEASE(v); // NSOutlineView v = [[NSScrollView alloc] initWithFrame: NSMakeRect(136, 98, 124, 78)]; [contents addSubview: v]; [v setHasVerticalScroller: YES]; [v setHasHorizontalScroller: NO]; contentSize = [v contentSize]; [v setBorderType: NSBezelBorder]; ov = [[GormNSOutlineView alloc] initWithFrame: NSZeroRect]; tc = [[NSTableColumn alloc] initWithIdentifier: @"classes"]; [[tc headerCell] setStringValue: @" "]; [tc setWidth: floor(contentSize.width/2)]; [tc setMinWidth: 20]; [tc setResizable: YES]; [tc setEditable: YES]; [ov addTableColumn: tc]; [ov setOutlineTableColumn: tc]; RELEASE(tc); tc = [[NSTableColumn alloc] initWithIdentifier: @"outlets"]; [[tc headerCell] setStringValue: @" "]; [tc setWidth: ceil(contentSize.width/2)]; [tc setMinWidth: 20]; [tc setResizable: YES]; [tc setEditable: YES]; [ov addTableColumn: tc]; RELEASE(tc); tc = [[NSTableColumn alloc] initWithIdentifier: @"actions"]; [[tc headerCell] setStringValue: @" "]; [tc setWidth: ceil(contentSize.width/2)]; [tc setMinWidth: 20]; [tc setResizable: YES]; [tc setEditable: YES]; [ov addTableColumn: tc]; RELEASE(tc); [ov setDrawsGrid: NO]; [ov setIndentationPerLevel: 10.]; [ov setIndentationMarkerFollowsCell: YES]; [ov expandItem: @"NSObject" expandChildren: YES]; [v setDocumentView: ov]; RELEASE(ov); RELEASE(v); } @end gorm-1.2.24/Palettes/3Containers/GormTableViewEditor.h0000644000000000000000000000223313410616261021242 0ustar rootroot/* GormTableViewEditor.h - Editor for tableviews. * * Copyright (C) 2002 Free Software Foundation, Inc. * * Author: Pierre-Yves Rivaille * Date: Aug 2002 * * This file is part of GNUstep. * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 3 of the License, or * (at your option) any later version. * * This program 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 General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02111 USA. */ #ifndef INCLUDED_GormTableViewEditor_h #define INCLUDED_GormTableViewEditor_h #include @class GormNSTableView; @interface GormTableViewEditor : GormViewWithSubviewsEditor { GormNSTableView *tableView; } @end #endif gorm-1.2.24/Palettes/3Containers/GormTableColumnAttributesInspector.h0000644000000000000000000000354213410616261024360 0ustar rootroot/* GormTableColumnAttributesInspector.h Copyright (C) 2001-2005 Free Software Foundation, Inc. Author: Adam Fedor Laurent Julliard Date: Aug 2001 This file is part of GNUstep. This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 3 of the License, or (at your option) any later version. This program 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 General Public License for more details. You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02111 USA. */ /* July 2005 : Spilt inspector in separate classes. Always use ok: revert: methods Clean up Author : Fabien Vallon */ #ifndef INCLUDED_GormTableColumnAttributesInspector_h #define INCLUDED_GormTableColumnAttributesInspector_h #include @class NSButton; @class NSMatrix; @class NSTextField; @class NSTableView; @class NSForm; @class NSPopUpButton; @interface GormTableColumnAttributesInspector : IBInspector { NSMatrix *titleAlignmentMatrix; NSMatrix *contentsAlignmentMatrix; NSTextField *identifierTextField; NSButton *resizableSwitch; NSButton *editableSwitch; NSButton *setButton; NSButton *defaultButton; NSTableView *cellTable; NSTextField *columnTitle; /* sorting */ NSTextField *sortKey; NSTextField *sortSelector; NSPopUpButton *sortOrder; } @end #endif /* INCLUDED_GormTableColumnAttributesInspector_h */ gorm-1.2.24/Palettes/3Containers/GormTableColumnSizeInspector.m0000644000000000000000000000514013410616261023145 0ustar rootroot/* GormTableColumnSizeInspector.m Copyright (C) 2001-2005 Free Software Foundation, Inc. Author: Adam Fedor Laurent Julliard Date: Aug 2001 This file is part of GNUstep. This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 3 of the License, or (at your option) any later version. This program 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 General Public License for more details. You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02111 USA. */ /* July 2005 : Split inspector classes into separate files. Always use ok: revert: methods Clean up Author : Fabien Vallon */ #include "GormTableColumnSizeInspector.h" #include #include #include #include #define MINIMUMINDEX 0 #define CURRENTINDEX 1 #define MAXIMUMINDEX 2 @implementation GormTableColumnSizeInspector - (id) init { if ([super init] == nil) { return nil; } if ([NSBundle loadNibNamed: @"GormNSTableColumnSizeInspector" owner: self] == NO) { NSLog(@"Could not gorm GormTableColumnSizeInspector"); return nil; } return self; } /* Commit changes that the user makes in the Attributes Inspector */ - (void) ok: (id)sender { [object setMinWidth: [[widthForm cellAtRow:MINIMUMINDEX column: 0] floatValue]]; [object setWidth: [[widthForm cellAtRow:CURRENTINDEX column: 0] floatValue]]; [object setMaxWidth: [[widthForm cellAtRow:MAXIMUMINDEX column: 0] floatValue]]; [super ok:sender]; } /* Sync from object ( NSTableColumn size ) changes to the inspector */ - (void) revert: (id) sender { if (object == nil) return; [[widthForm cellAtRow:MINIMUMINDEX column: 0] setFloatValue: [object minWidth]]; [[widthForm cellAtRow:CURRENTINDEX column: 0] setFloatValue: [object width]]; [[widthForm cellAtRow:MAXIMUMINDEX column: 0] setFloatValue: [object maxWidth]]; [super revert:sender]; } /* delegate method for the form */ -(void) controlTextDidChange:(NSNotification *)aNotification { [self ok:[aNotification object]]; } @end gorm-1.2.24/Palettes/3Containers/GNUmakefile0000644000000000000000000000355013410616261017270 0ustar rootroot# GNUmakefile # # Copyright (C) 1999 Free Software Foundation, Inc. # # Author: Richard Frith-Macdonald # Date: 1999 # # This file is part of GNUstep. # # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 2 of the License, or # (at your option) any later version. # # This program 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 General Public License for more details. # # You should have received a copy of the GNU General Public License # along with this program; if not, write to the Free Software # Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. PACKAGE_NAME = gorm include $(GNUSTEP_MAKEFILES)/common.make PALETTE_NAME = 3Containers 3Containers_PALETTE_ICON = ContainersPalette 3Containers_PRINCIPAL_CLASS = ContainersPalette 3Containers_OBJC_FILES = \ ContainersPalette.m \ inspectors.m \ GormNSBrowser.m \ GormNSTableView.m \ GormTableViewEditor.m \ GormTabViewEditor.m \ GormNSOutlineView.m \ GormBrowserAttributesInspector.m \ GormTabViewAttributesInspector.m \ GormTableColumnAttributesInspector.m \ GormTableColumnSizeInspector.m \ GormTableViewAttributesInspector.m \ GormTableViewSizeInspector.m 3Containers_RESOURCE_FILES = \ ContainersPalette.tiff \ GormNSBrowserInspector.gorm \ GormNSTableViewInspector.gorm \ GormNSTableColumnInspector.gorm \ GormNSTableColumnSizeInspector.gorm \ GormTabViewInspector.gorm \ palette.table 3Containers_STANDARD_INSTALL = no -include GNUmakefile.preamble -include GNUmakefile.local include $(GNUSTEP_MAKEFILES)/palette.make -include GNUmakefile.postamble gorm-1.2.24/Palettes/3Containers/GormNSOutlineView.h0000644000000000000000000000346213410616261020731 0ustar rootroot/* GormNSOutlineView.h Copyright (C) 2002 Free Software Foundation, Inc. Author: Gregory John Casamento Date: 2002 This file is part of GNUstep. This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 3 of the License, or (at your option) any later version. This program 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 General Public License for more details. You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02111 USA. */ #ifndef INCLUDED_GormNSOutlineView_h #define INCLUDED_GormNSOutlineView_h #include #include #include @interface GormNSOutlineView : NSOutlineView { id _gormDataSource; id _gormDelegate; BOOL _gormAllowsColumnReordering; BOOL _gormAllowsColumnResizing; BOOL _gormAllowsColumnSelection; BOOL _gormAllowsMultipleSelection; BOOL _gormAllowsEmptySelection; } - (void) setGormDelegate: (id)anObject; - (void) setGormAllowsColumnReordering: (BOOL)flag; - (BOOL) gormAllowsColumnReordering; - (void) setGormAllowsColumnResizing: (BOOL)flag; - (BOOL) gormAllowsColumnResizing; - (void) setGormAllowsMultipleSelection: (BOOL)flag; - (BOOL) gormAllowsMultipleSelection; - (void) setGormAllowsEmptySelection: (BOOL)flag; - (BOOL) gormAllowsEmptySelection; - (void) setGormAllowsColumnSelection: (BOOL)flag; - (BOOL) gormAllowsColumnSelection; @end #endif gorm-1.2.24/Palettes/3Containers/GormTabViewEditor.h0000644000000000000000000000230513410616261020721 0ustar rootroot/* GormTabViewEditor.h - Editor for tabviews. * * Copyright (C) 2002 Free Software Foundation, Inc. * * Author: Pierre-Yves Rivaille * Date: Aug 2002 * * This file is part of GNUstep. * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 3 of the License, or * (at your option) any later version. * * This program 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 General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02111 USA. */ #ifndef INCLUDED_GormTabViewEditor_h #define INCLUDED_GormTabViewEditor_h #include #include @interface GormTabViewEditor : GormViewWithSubviewsEditor { int selectedSubview; GormInternalViewEditor *currentView; } @end #endif gorm-1.2.24/Palettes/3Containers/GormTableViewSizeInspector.h0000644000000000000000000000223713410616261022621 0ustar rootroot/* GormTableViewSizeInspector -- size inspector for table and table subclasses. Copyright (C) 2001 Free Software Foundation, Inc. Author: Gregory John Casamento Date: 2005 This file is part of GNUstep. This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 3 of the License, or (at your option) any later version. This program 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 General Public License for more details. You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02111 USA. */ #ifndef INCLUDED_GormTableViewSizeInspector_h #define INCLUDED_GormTableViewSizeInspector_h #include @interface GormTableViewSizeInspector : GormViewSizeInspector @end #endif gorm-1.2.24/Palettes/3Containers/.cvsignore0000644000000000000000000000006013410616261017207 0ustar rootroot*.app *.debug *.profile *.palette *obj .gdbinit gorm-1.2.24/Palettes/3Containers/GormTableViewAttributesInspector.h0000644000000000000000000000366713410616261024045 0ustar rootroot/* GormTableViewAttributesInspector.h Copyright (C) 2001 Free Software Foundation, Inc. Author: Laurent Julliard Author: Gregory John Casamento Date: Aug 2001. 2003, 2004 This file is part of GNUstep. This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 3 of the License, or (at your option) any later version. This program 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 General Public License for more details. You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02111 USA. */ /* July 2005 : Spilt inspector in separate classes. Always use ok: revert: methods Clean up Author : Fabien Vallon */ #ifndef INCLUDED_GormTableViewAttributesInspector_h #define INCLUDED_GormTableViewAttributesInspector_h #include @class NSButton; @class NSColorWell; @class NSForm; @class NSMatrix; @class NSPopUpButton; @interface GormTableViewAttributesInspector: IBInspector { /* selection */ NSButton *multipleSelectionSwitch; NSButton *emptySelectionSwith; NSButton *columnSelectionSwitch; /* scrollers */ NSButton *verticalScrollerSwitch; NSButton *horizontalScrollerSwitch; /* border and rows */ NSMatrix *borderMatrix; NSForm *rowsHeightForm; /* options */ NSButton *drawgridSwitch; NSButton *resizingSwitch; NSButton *reorderingSwitch; /* tag */ NSForm *tagForm; NSColorWell *backgroundColor; } @end #endif /* INCLUDED_GormTableViewAttributesInspector_h */ gorm-1.2.24/Palettes/3Containers/GormTabViewAttributesInspector.h0000644000000000000000000000332113410616261023507 0ustar rootroot/* GormTabViewAttributesInspector.h Copyright (C) 2001 Free Software Foundation, Inc. Author: Laurent Julliard Author: Gregory John Casamento Date: Aug 2001. 2003, 2004 This file is part of GNUstep. This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 3 of the License, or (at your option) any later version. This program 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 General Public License for more details. You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02111 USA. */ /* July 2005 : Spilt inspector in separate classes. Always use ok: revert: methods Clean up Author : Fabien Vallon */ #ifndef INCLUDED_GormTabViewAttributesInspector_h #define INCLUDED_GormTabViewAttributesInspector_h #include @class NSButton; @class NSForm; @class NSMatrix; @class NSStepper; @class NSTextField; @interface GormTabViewAttributesInspector : IBInspector { NSMatrix *typeMatrix; int numberOfDisplayItem; NSButton *allowtruncate; NSTextField *numberOfItemsField; NSStepper *itemStepper; NSTextField *itemLabel; NSForm *itemIdentifier; NSButton *itemPrevious; NSButton *itemNext; } @end #endif /* INCLUDED_GormTabViewAttributesInspector_h */ gorm-1.2.24/Palettes/2Controls/0000755000000000000000000000000013426741712014717 5ustar rootrootgorm-1.2.24/Palettes/2Controls/GormButtonAttributesInspector.m0000644000000000000000000002651013410616261023130 0ustar rootroot/* inspectors - Various inspectors for control elements Copyright (C) 2001 Free Software Foundation, Inc. Author: Adam Fedor Laurent Julliard Date: Aug 2001 Author: Gregory John Casamento Date: 2003, 2005 This file is part of GNUstep. This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 3 of the License, or (at your option) any later version. This program 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 General Public License for more details. You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02111 USA. */ #include #include #include #include "GormButtonAttributesInspector.h" /* This macro makes sure that the string contains a value, even if @"" */ #define VSTR(str) ({NSString *_str = (NSString *)str; ((NSString *)_str) ? (NSString *)_str : (NSString *)@"";}) const unichar up[]={NSUpArrowFunctionKey}; const unichar dn[]={NSDownArrowFunctionKey}; const unichar lt[]={NSLeftArrowFunctionKey}; const unichar rt[]={NSRightArrowFunctionKey}; NSString *upString = nil; NSString *dnString = nil; NSString *ltString = nil; NSString *rtString = nil; // trivial cell subclass. @interface GormButtonCellAttributesInspector : GormButtonAttributesInspector @end @implementation GormButtonCellAttributesInspector @end @implementation GormButtonAttributesInspector - (id) init { if ([super init] == nil) return nil; if ([NSBundle loadNibNamed: @"GormNSButtonInspector" owner: self] == NO) { NSLog(@"Could not load GormButtonInspector"); return nil; } // initialize the strings. upString = RETAIN([NSString stringWithCharacters: up length: 1]); dnString = RETAIN([NSString stringWithCharacters: dn length: 1]); ltString = RETAIN([NSString stringWithCharacters: lt length: 1]); rtString = RETAIN([NSString stringWithCharacters: rt length: 1]); return self; } - (void) dealloc { RELEASE(upString); RELEASE(dnString); RELEASE(ltString); RELEASE(rtString); [super dealloc]; } /* The button type isn't stored in the button, so reverse-engineer it */ - (NSButtonType) buttonTypeForObject: (id)button { NSButtonCell *cell; NSButtonType type; int highlight, stateby; /* We could be passed the button or the cell */ cell = ([button isKindOfClass: [NSButton class]]) ? [button cell] : button; highlight = [cell highlightsBy]; stateby = [cell showsStateBy]; NSDebugLog(@"highlight = %d, stateby = %d", (int)[cell highlightsBy],(int)[cell showsStateBy]); type = NSMomentaryPushButton; if (highlight == NSChangeBackgroundCellMask) { if (stateby == NSNoCellMask) type = NSMomentaryLight; else type = NSOnOffButton; } else if (highlight == (NSPushInCellMask | NSChangeGrayCellMask)) { if (stateby == NSNoCellMask) type = NSMomentaryPushButton; else type = NSPushOnPushOffButton; } else if (highlight == (NSPushInCellMask | NSContentsCellMask)) { type = NSToggleButton; } else if (highlight == NSContentsCellMask) { if (stateby == NSNoCellMask) type = NSMomentaryChangeButton; else type = NSToggleButton; /* Really switch or radio. What should it be? */ } else { NSDebugLog(@"Ack! no button type"); } return type; } - (void) ok: (id) sender { if (sender == alignMatrix) { [(NSButton *)object setAlignment: (NSTextAlignment)[[sender selectedCell] tag]]; } else if (sender == iconMatrix) { [(NSButton *)object setImagePosition: (NSCellImagePosition)[[sender selectedCell] tag]]; } else if (sender == keyForm) { [keyEquiv selectItem: nil]; // if the user does his own thing, select the default... [object setKeyEquivalent: [[sender cellAtIndex: 0] stringValue]]; } else if (sender == keyEquiv) { unsigned int tag = [[keyEquiv selectedItem] tag]; switch(tag) { case 0: // none { [object setKeyEquivalent: nil]; } break; case 1: // return { [object setKeyEquivalent: @"\r"]; } break; case 2: // delete { [object setKeyEquivalent: @"\b"]; } break; case 3: // escape { [object setKeyEquivalent: @"\E"]; } break; case 4: // tab { [object setKeyEquivalent: @"\t"]; } break; case 5: // up { [object setKeyEquivalent: upString]; } break; case 6: // down { [object setKeyEquivalent: dnString]; } break; case 7: // left { [object setKeyEquivalent: ltString]; } break; case 8: // right { [object setKeyEquivalent: rtString]; } break; default: // should never happen.. { [object setKeyEquivalent: nil]; NSLog(@"This shouldn't happen."); } break; } } else if (sender == optionMatrix) { BOOL flag; flag = ([[sender cellAtRow: 0 column: 0] state] == NSOnState) ? YES : NO; [object setBordered: flag]; flag = ([[sender cellAtRow: 1 column: 0] state] == NSOnState) ? YES : NO; [object setContinuous: flag]; flag = ([[sender cellAtRow: 2 column: 0] state] == NSOnState) ? YES : NO; [object setEnabled: flag]; [object setState: [[sender cellAtRow: 3 column: 0] state]]; flag = ([[sender cellAtRow: 4 column: 0] state] == NSOnState) ? YES : NO; [object setTransparent: flag]; } else if (sender == tagForm) { [(NSButton *)object setTag: [[sender cellAtIndex: 0] intValue]]; } else if (sender == titleForm) { NSString *string; NSImage *image; [object setTitle: [[sender cellAtIndex: 0] stringValue]]; [object setAlternateTitle: [[sender cellAtIndex: 1] stringValue]]; string = [[sender cellAtIndex: 2] stringValue]; if ([string length] > 0) { image = [NSImage imageNamed: string]; [object setImage: image]; } string = [[sender cellAtIndex: 3] stringValue]; if ([string length] > 0) { image = [NSImage imageNamed: string]; [object setAlternateImage: image]; } } else if (sender == typeButton) { [object setButtonType: [[sender selectedItem] tag]]; } else if (sender == bezelButton) { [object setBezelStyle: [[sender selectedItem] tag]]; } else if ([sender isKindOfClass: [NSMenuItem class]] ) { /* * In old NSPopUpButton implementation we do receive * the selected menu item here. Not the PopUpbutton 'typeButton' * FIXME: Ideally we should also test if the menu item belongs * to the 'type button' control. How to do that? */ [(NSButton *)object setButtonType: [sender tag]]; } else if (sender == altMod) { if([altMod state] == NSOnState) { [object setKeyEquivalentModifierMask: [object keyEquivalentModifierMask] | NSAlternateKeyMask]; } else { [object setKeyEquivalentModifierMask: [object keyEquivalentModifierMask] & ~NSAlternateKeyMask]; } } else if (sender == ctrlMod) { if([ctrlMod state] == NSOnState) { [object setKeyEquivalentModifierMask: [object keyEquivalentModifierMask] | NSControlKeyMask]; } else { [object setKeyEquivalentModifierMask: [object keyEquivalentModifierMask] & ~NSControlKeyMask]; } } else if (sender == shiftMod) { if([shiftMod state] == NSOnState) { [object setKeyEquivalentModifierMask: [object keyEquivalentModifierMask] | NSShiftKeyMask]; } else { [object setKeyEquivalentModifierMask: [object keyEquivalentModifierMask] & ~NSShiftKeyMask]; } } else if (sender == cmdMod) { if([cmdMod state] == NSOnState) { [object setKeyEquivalentModifierMask: [object keyEquivalentModifierMask] | NSCommandKeyMask]; } else { [object setKeyEquivalentModifierMask: [object keyEquivalentModifierMask] & ~NSCommandKeyMask]; } } [super ok: sender]; } -(void) revert: (id)sender { NSImage *image; if(sender != nil) { NSString *key = VSTR([object keyEquivalent]); unsigned int flags = [object keyEquivalentModifierMask]; [alignMatrix selectCellWithTag: [object alignment]]; [iconMatrix selectCellWithTag: [object imagePosition]]; [[keyForm cellAtIndex: 0] setStringValue: key]; if([key isEqualToString: @"\r"]) { [keyEquiv selectItemAtIndex: 1]; } else if([key isEqualToString: @"\b"]) { [keyEquiv selectItemAtIndex: 2]; } else if([key isEqualToString: @"\E"]) { [keyEquiv selectItemAtIndex: 3]; } else if([key isEqualToString: @"\t"]) { [keyEquiv selectItemAtIndex: 4]; } else if([key isEqualToString: upString]) { [keyEquiv selectItemAtIndex: 5]; } else if([key isEqualToString: dnString]) { [keyEquiv selectItemAtIndex: 6]; } else if([key isEqualToString: ltString]) { [keyEquiv selectItemAtIndex: 7]; } else if([key isEqualToString: rtString]) { [keyEquiv selectItemAtIndex: 8]; } else { [keyEquiv selectItem: nil]; } [optionMatrix deselectAllCells]; if ([object isBordered]) [optionMatrix selectCellAtRow: 0 column: 0]; if ([object isContinuous]) [optionMatrix selectCellAtRow: 1 column: 0]; if ([object isEnabled]) [optionMatrix selectCellAtRow: 2 column: 0]; if ([object state] == NSOnState) [optionMatrix selectCellAtRow: 3 column: 0]; if ([object isTransparent]) [optionMatrix selectCellAtRow: 4 column: 0]; [[tagForm cellAtIndex: 0] setIntValue: [(NSButton *)object tag]]; [[titleForm cellAtIndex: 0] setStringValue: VSTR([object title])]; [[titleForm cellAtIndex: 1] setStringValue: VSTR([object alternateTitle])]; image = [object image]; if (image != nil) { [[titleForm cellAtIndex: 2] setStringValue: VSTR([image name])]; } else { [[titleForm cellAtIndex: 2] setStringValue: @""]; } image = [object alternateImage]; if (image != nil) { [[titleForm cellAtIndex: 3] setStringValue: VSTR([image name])]; } else { [[titleForm cellAtIndex: 3] setStringValue: @""]; } // key modifier mask... [altMod setState: NSOffState]; [ctrlMod setState: NSOffState]; [shiftMod setState: NSOffState]; [cmdMod setState: NSOffState]; if(flags & NSAlternateKeyMask) { [altMod setState: NSOnState]; } if(flags & NSControlKeyMask) { [ctrlMod setState: NSOnState]; } if(flags & NSShiftKeyMask) { [shiftMod setState: NSOnState]; } if(flags & NSCommandKeyMask) { [cmdMod setState: NSOnState]; } [typeButton selectItemAtIndex: [typeButton indexOfItemWithTag: [self buttonTypeForObject: object]]]; [bezelButton selectItemAtIndex: [bezelButton indexOfItemWithTag: [object bezelStyle]]]; } } - (void)controlTextDidChange:(NSNotification *)aNotification { [self ok: [aNotification object]]; } - (void) selectKeyEquivalent: (id)sender { NSLog(@"Select key equivalent: %d",(int)[[sender selectedItem] tag]); } @end gorm-1.2.24/Palettes/2Controls/GormStepperAttributesInspector.m0000644000000000000000000000660113410616261023276 0ustar rootroot/* GormStepperAttributesInspector.m Copyright (C) 2001-2005 Free Software Foundation, Inc. Author: Adam Fedor Laurent Julliard Date: Aug 2001 This file is part of GNUstep. This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 3 of the License, or (at your option) any later version. This program 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 General Public License for more details. You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02111 USA. */ /* July 2005 : Split inspector classes into separate files. Always use ok: revert: methods Clean up Author : Fabien Vallon */ #include "GormStepperAttributesInspector.h" #include #include #include #include #include // Some simple inspectors. @interface GormStepperCellAttributesInspector : GormStepperAttributesInspector @end @implementation GormStepperCellAttributesInspector @end @implementation GormStepperAttributesInspector - (id) init { if ([super init] == nil) { return nil; } if ([NSBundle loadNibNamed: @"GormNSStepperInspector" owner: self] == NO) { NSLog(@"Could not gorm GormStepperAttributesInspector"); return nil; } return self; } /* Commit changes that the user makes in the Attributes Inspector */ - (void) ok: (id) sender { if (sender == valueField) { [object setDoubleValue:[sender doubleValue]]; } else if (sender == minimumValueField) { [object setMinValue:[sender doubleValue]]; } else if (sender == maximumValueField) { [object setMaxValue:[sender doubleValue]]; } else if (sender == incrementValueField) { [object setIncrement:[sender doubleValue]]; } else if (sender == autorepeatButton) { switch ([sender state]) { case 0: [object setAutorepeat: NO]; break; case 1: [object setAutorepeat: YES]; break; } } else if (sender == valueWrapsButton) { switch ([sender state]) { case 0: [object setValueWraps: NO]; break; case 1: [object setValueWraps: YES]; break; } } [super ok:(id) sender]; } /* Sync from object ( NSStepper ) changes to the inspector */ - (void) revert:(id) sender { if (object == nil) return; [valueField setDoubleValue: [object doubleValue]]; [minimumValueField setDoubleValue: [object minValue]]; [maximumValueField setDoubleValue: [object maxValue]]; [incrementValueField setDoubleValue: [object increment]]; if ([object autorepeat]) [autorepeatButton setState: 1]; else [autorepeatButton setState: 0]; if ([object valueWraps]) [valueWrapsButton setState: 1]; else [valueWrapsButton setState: 0]; [super revert:sender]; } /* delegate methods for NSForms */ -(void) controlTextDidChange:(NSNotification *)aNotification { [self ok:[aNotification object]]; } @end gorm-1.2.24/Palettes/2Controls/GormSliderAttributesInspector.h0000644000000000000000000000310513410616261023065 0ustar rootroot/* GormSliderAttributesInspector.h Copyright (C) 2001-2005 Free Software Foundation, Inc. Author: Adam Fedor Laurent Julliard Date: Aug 2001 This file is part of GNUstep. This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 3 of the License, or (at your option) any later version. This program 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 General Public License for more details. You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02111 USA. */ /* July 2005 : Spilt inspector in separate classes. Always use ok: revert: methods Clean up Author : Fabien Vallon */ #ifndef INCLUDED_GormSliderAttributesInspector_h #define INCLUDED_GormSliderAttributesInspector_h #include @class NSButton; @class NSForm; @interface GormSliderAttributesInspector: IBInspector { NSForm *valuesForm; NSForm *altIncrementForm; NSButton *continuousSwitch; NSButton *enabledSwitch; NSButton *stopOnTicksSwitch; NSForm *knobThicknessForm; NSForm *tagForm; } @end #endif /* INCLUDED_GormSliderAttributesInspector_h */ gorm-1.2.24/Palettes/2Controls/ControlsPalette.gorm/0000755000000000000000000000000013410616261020775 5ustar rootrootgorm-1.2.24/Palettes/2Controls/ControlsPalette.gorm/objects.gorm0000644000000000000000000002530513410616261023321 0ustar rootrootGNUstep archive000f4240:00000029:000000d0:00000000:01GSNibContainer1NSObject01 NSMutableSet1NSSet&01GSWindowTemplate1GSClassSwapper01NSString&% NSWindow1NSWindow1 NSResponder%  @pà @eJI @~` @‡à01 NSView%  @pà @e  @pà @eJ01 NSMutableArray1 NSArray&01 NSTextField1 NSControl% @P€ @aÀ @I @5  @I @5J0± &%0 1NSTextFieldCell1 NSActionCell1NSCell0 ±&%Text0 1NSFont%&&&&&&JJ &&&&&&I’0 1NSColor0 ±&% NSNamedColorSpace0±&%System0±&%textBackgroundColor0±° °0±& % textColor’01NSButton% @ @a` @L @8  @L @8J0± &%01 NSButtonCell0±&%Button° &&&&&&JJ&&&&&&I’0±&°&&& &&0±% @eà @L @Q @0  @Q @0J0± &%0±0±&%Switch01NSImage01NSMutableString&%GSSwitch° &&&&&&JJ&&&&&&I’°°0±0±&%GSSwitchSelected&&& &&01 NSColorWell% @j` @`  @J€ @>  @J€ @>J0 ± &%0!±°° &&&&&&JJ&&&&&&0"±0#±&% NSCalibratedWhiteColorSpace ?€’0$1NSSlider% @c@ @G€ @0 @S  @0 @SJ0%± &%0&1 NSSliderCell0'±&%0° 0(1NSNumber1NSValued &&&&&&JJ&&&&&&I’ ?€ ¿€%0)±°° &&&&&&JJ &&&&&&I’° 0*±° 0+±&% System0,±&% controlTextColor0-±°0.±0/±&%common_SliderVert° &&&&&&JJ&&&&&&I%00±% @X @; @TÀ @0  @TÀ @0J01± &%02±03±&%0° 04±d &&&&&&JJ&&&&&&I’ ?€ ¿€%05±°° &&&&&&JJ &&&&&&I’° °*06±°07±08±&%common_SliderHoriz° &&&&&&JJ&&&&&&I%091NSProgressIndicator% @X @ @TÀ @2  @TÀ @2J0:± & ?µUUUUUU @I @Y0;1 GSCustomView1 GSNibItem0<±&%GormCustomView @g @ @T @D&0=1 NSStepper% @o @J€ @0 @7  @0 @7J0>± &%0?1! NSStepperCell0@±&%00A±i%&&&&&&JJ&&&&&&I’ @M€ ?ð%%0B± % @SÀ @]À @UÀ @2  @UÀ @2J0C± &%0D±0E±& % System Bold0F±% A@&&&&&&JJ &&&&&&I’° °’0G± % @S€ @XÀ @TÀ @2  @TÀ @2J0H± &%0I±0J±&%System0K±% A@&&&&&&JJ &&&&&&I’° °’0L± % @SÀ @T@ @TÀ @2  @TÀ @2J0M± &%0N±0O±&%Title0P±% A@&&&&&&JJ &&&&&&I’° °’0Q± % @U @O€ @S€ @2  @S€ @2J0R± &%0S±0T±&%Label0U±% A@&&&&&&JJ &&&&&&I’° °’0V± % @SÀ @G€ @TÀ @2  @TÀ @2J0W± &%0X±0Y±&%Fixed0Z±% A@&&&&&&JJ &&&&&&I’° °’0[1"NSForm1#NSMatrix% @fà @T @T@ @F€  @T@ @F€J0\± &%0]1$ NSFormCell°° &&&&&&JJ&&&&&&I’ ¿€0^±0_±&%Field:° &&&&&&JJ&&&&&&% @T@ @5 @0`±° °+0a±&% controlBackgroundColor°`0b±& % NSFormCell%%0c± &0d±$°° &&&&&&JJ&&&&&&I’ B0e±0f±&%Field:° &&&&&&JJ&&&&&&0g±$°° &&&&&&JJ&&&&&&I’ B0h±0i±&%Field:° &&&&&&JJ&&&&&&’’’°g0j±#% @ @V @L @B€  @L @B€J0k± &%0l±°° &&&&&&JJ&&&&&&I’% @L @2 ?ð ?ð0m±& % NSButtonCell0n±0o±&%Radio0p±0q±&%GSRadio&&&&&&JJ&&&&&&I’°0r±0s±&%GSRadioSelected&&& &&%%0t± &0u±0v±&%Radio°p&&&&&&JJ&&&&&&I’°°r&&& &&0w±0x±&%Radio°p&&&&&&JJ&&&&&&I’°°r&&& &&’’’°u0y1%NSBox% @ @RÀ @R ?ð  @R ?ðJ0z± % @ @ @M   @M J°y0{± &0|± &°z0}±0~±&° °~&&&&&&JJ&&&&&& @ @%%0±%% @TÀ @$ ?ð @N€  ?ð @N€J0€± % @ @ @G€  @G€J°0± &0‚± &°€0ƒ±0„±&° °„&&&&&&JJ&&&&&& @ @%%0…±%% @ @& @P€ @N€  @P€ @N€J0†± % @ @ @J @B  @J @BJ°…0‡± &0ˆ± &°†0‰±0б&%Box° &&&&&&JJ&&&&&& @ @%%0‹±° °+0Œ±&% windowBackgroundColor0±&%Window0ޱ&%Palette Window°Ž @ @& @È @Ã}I0±0±&% NSApplicationIcon&   @­ @’0‘± &0’± &0“1&NSMutableDictionary1' NSDictionary&0”±&%GormCustomView°;0•±&%Slider1°00–±&%Button1°0—±&%Slider°$0˜±& % ColorWell°0™±&%View(0)°†0š±&%Box(1)°0›±& % Matrix(0)°j0œ±& % TextField1°B0±&% NSOwner0ž±&%ControlsPalette0Ÿ±& % TextField3°L0 ±& % PaletteWin°0¡±&%View(1)°z0¢±&%Box(2)°…0£±&%Form°[0¤±&%Stepper°=0¥±& % TextField5°V0¦±& % TextField°0§±& % ButtonCell(0)°u0¨±&%View(2)°€0©±& % TextField2°G0ª±&%Button°0«±&%Box(0)°y0¬±&%ProgressIndicator°90­±& % TextField4°Q0®±& % ButtonCell(1)°w0¯± &0°1(NSNibConnector° 0±±&% NSOwner0²±(°¦0³±(°ª0´±(°–0µ±(°˜0¶±(°—0·±(°•0¸±(°¬0¹±(°”0º±(°¤0»1)NSNibOutletConnector°±° 0¼±&%originalWindow0½±(°œ°±0¾±(°©°±0¿±(°Ÿ°±0À±(°­°±0Á±(°¥°±0±(°£0ñ(°›0ı(°§°›0ű(°®°›0Ʊ(°«0DZ(°¡°«0ȱ(°š0ɱ(°¨°š0ʱ(°¢0˱(°™°¢0̱&&gorm-1.2.24/Palettes/2Controls/ControlsPalette.gorm/data.classes0000644000000000000000000000036413410616261023270 0ustar rootroot{ "## Comment" = "Do NOT change this file, Gorm maintains it"; ControlsPalette = { Actions = ( ); Outlets = ( ); Super = IBPalette; }; GormNSPopUpButton = { Actions = ( ); Outlets = ( ); Super = NSPopUpButton; }; }gorm-1.2.24/Palettes/2Controls/ControlsPalette.gorm/data.info0000644000000000000000000000027013410616261022562 0ustar rootrootGNUstep archive000f4240:00000003:00000003:00000000:01GormFilePrefsManager1NSObject%01NSString&%Latest Version0±& % Typed Streamgorm-1.2.24/Palettes/2Controls/inspectors.m0000644000000000000000000000334213410616261017261 0ustar rootroot/* inspectors - Various inspectors for control elements Copyright (C) 2001 Free Software Foundation, Inc. Author: Adam Fedor Laurent Julliard Date: Aug 2001 This file is part of GNUstep. This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 3 of the License, or (at your option) any later version. This program 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 General Public License for more details. You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02111 USA. */ #include #include #include "GormButtonAttributesInspector.h" #include "GormStepperAttributesInspector.h" @implementation NSButton (IBObjectAdditions) - (NSString*) editorClassName { return @"GormButtonEditor"; } - (NSString*) inspectorClassName { return @"GormButtonAttributesInspector"; } @end @implementation NSButtonCell (IBObjectAdditions) - (NSString*) inspectorClassName { return @"GormButtonCellAttributesInspector"; } @end @implementation NSStepper (IBObjectAdditions) - (NSString*) inspectorClassName { return @"GormStepperAttributesInspector"; } @end @implementation NSStepperCell (IBObjectAdditions) - (NSString*) inspectorClassName { return @"GormStepperCellAttributesInspector"; } @end gorm-1.2.24/Palettes/2Controls/ControlsPalette.tiff0000644000000000000000000002250013410616261020703 0ustar rootrootII*$ªªªªªªªªªªªªªªªªªªªªª”””î”””ªªªªªªªªªªªªªªªªªªªªªªªªªSSSÿSSSÿSSSÿSSSÿSSSÿSSSÿSSSÿSSSÿSSSÿSSSÿSSSÿSSSÿSSSÿSSSÿSSSÿSSSÿSSSÿSSSÿSSSÿSSSÿSSSÿSSSÿSSSÿSSSÿSSSÿSSSÿSSSÿSSSÿSSSÿSSSÿªªªªªªªªªªªªÿAAAÿÿ ÿÿ ÿ000ÿÿªªªªªªªªªªªªªªªªªªSSSÿSSSÿSSSÿSSSÿSSSÿSSSÿSSSÿSSSÿSSSÿSSSÿSSSÿSSSÿSSSÿSSSÿSSSÿSSSÿSSSÿSSSÿSSSÿSSSÿSSSÿSSSÿSSSÿSSSÿSSSÿSSSÿSSSÿSSSÿSSSÿÿÿÿÿªªªªªªªªªjjjÿ ÿÿXXXÿÿªªªƒƒƒÿ\\\ÿÿ???ÿªªªªªªªªªªªªªªªSSSÿSSSÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ¥¥¥ÿÿÿÿÿªªªªªªjjjÿ ÿ555ÿªªªªªªªªªªªªªªªªªªªªª‰‰‰ÿOOOÿªªªªªªªªªªªªSSSÿSSSÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ¥¥¥ÿÿÿÿÿªªªÿ ÿ555ÿªªªªªªÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿªªªªªª‘‘‘ÿiiiÿªªªªªªªªªSSSÿSSSÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ¥¥¥ÿÿÿÿÿªªªUUUÿÿªªªªªªÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿªªªªªªzzzÿªªªªªªSSSÿSSSÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ¥¥¥ÿÿÿÿÿªªªÿ$$$ÿªªªÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿªªª˜˜˜f˜˜˜fªªªªªªSSSÿSSSÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ¥¥¥ÿÿÿÿÿ”””î ÿ€€€ÿªªªÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿªªª©©©ÍÍÍÿªªªªªªSSSÿSSSÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ¥¥¥ÿÿÿÿÿÿÿªªªªªªÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿªªªªªªøøøÿªªªªªªSSSÿSSSÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ¥¥¥ÿÿÿÿÿÿ ÿÿªªªÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿªªª¿¿¿ÌéééÿªªªªªªSSSÿSSSÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ¥¥¥ÿÿÿÿÿªªª555ÿ^^^ÿªªªÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿªªªÔÔÔÿÔÔÔÿªªªªªªSSSÿSSSÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ¥¥¥ÿÿÿÿÿªªª‡‡‡ÿÿªªªªªªÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿªªªªªªéééÿ¿¿¿ÌªªªªªªSSSÿSSSÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ¥¥¥ÿÿÿÿÿªªªªªª\\\ÿ˜˜˜fªªªªªªÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿªªªªªª¿¿¿ÌéééÿªªªªªªªªªSSSÿSSSÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ¥¥¥ÿÿÿÿÿªªªªªªªªª„„„ÿªªªªªªªªªªªªªªªªªªªªªªªª¿¿¿ÌéééÿªªªªªªªªªªªªSSSÿSSSÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ¥¥¥ÿÿÿÿÿªªªªªªªªª¨¨¨ÆÆÆÿéééÿÔÔÔÿ¿¿¿Ìªªª¿¿¿ÌÔÔÔÿéééÿéééÿªªªªªªªªªªªªªªªSSSÿSSSÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ¥¥¥ÿÿÿÿÿªªªªªªªªªªªªªªª¿¿¿ÌÔÔÔÿéééÿÿÿÿÿéééÿÔÔÔÿ¿¿¿ÌªªªªªªªªªªªªªªªªªªSSSÿSSSÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ¥¥¥ÿÿÿÿÿªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªSSSÿSSSÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ¥¥¥ÿÿÿÿÿªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªSSSÿSSSÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ¥¥¥ÿÿÿÿÿªªªªªªªªªªªªªªªªªªªªª”””î”””ªªªªªªªªªªªªªªªªªªªªªªªªªSSSÿSSSÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ¥¥¥ÿÿÿÿÿªªªªªªªªªªªªÿAAAÿÿ ÿÿ ÿ000ÿÿªªªªªªªªªªªªªªªªªªSSSÿ¥¥¥ÿ¥¥¥ÿ¥¥¥ÿ¥¥¥ÿ¥¥¥ÿ¥¥¥ÿ¥¥¥ÿ¥¥¥ÿ¥¥¥ÿ¥¥¥ÿ¥¥¥ÿ¥¥¥ÿ¥¥¥ÿ¥¥¥ÿ¥¥¥ÿ¥¥¥ÿ¥¥¥ÿ¥¥¥ÿ¥¥¥ÿ¥¥¥ÿ¥¥¥ÿ¥¥¥ÿ¥¥¥ÿ¥¥¥ÿ¥¥¥ÿ¥¥¥ÿ¥¥¥ÿ¥¥¥ÿÿÿÿÿªªªªªªªªªjjjÿ ÿÿXXXÿÿªªªƒƒƒÿ\\\ÿÿ 說ªªªªªªªªªªªªªÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿªªªªªªjjjÿ ÿ555ÿªªªªªªªªªªªªªªªªªªªªª‰‰‰ÿOOOÿªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªÿ ÿ555ÿªªªªªªªªªªªªªªªªªªªªªªªªªªª‘‘‘ÿiiiÿªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªUUUÿÿªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªzzzÿªªªªªªÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿªªªÿ$$$ÿªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªª˜˜˜f˜˜˜fªªªªªªÿÿÿÿ¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥SSSÿÿ”””î ÿ€€€ÿªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªª©©©ÍÍÍÿªªªªªªÿÿÿÿ¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥SSSÿÿÿÿªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªøøøÿªªªªªªÿÿÿÿ¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥SSSÿÿÿ ÿÿªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªª¿¿¿Ìéééÿªªªªªªÿÿÿÿ¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥SSSÿÿªªª555ÿ^^^ÿªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªÔÔÔÿÔÔÔÿªªªªªªÿÿÿÿ¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥SSSÿÿªªª‡‡‡ÿÿªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªéééÿ¿¿¿Ìªªªªªªÿÿÿÿ¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥SSSÿSSSÿSSSÿSSSÿSSSÿSSSÿSSSÿSSSÿSSSÿSSSÿSSSÿSSSÿSSSÿSSSÿSSSÿSSSÿSSSÿÿÿÿÿ¥¥¥¥¥¥¥¥¥¥¥¥SSSÿÿªªªªªª\\\ÿ˜˜˜fªªªªªªªªªªªªªªªªªªªªªªªªªªª¿¿¿Ìéééÿªªªªªªªªªÿÿÿÿ¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥SSSÿ ÿÿÿÿÿ ÿÿÿÿÿÿÿÿÿÿSSSÿÿÿÿÿ¥¥¥¥¥¥¥¥¥¥¥¥SSSÿÿªªªªªªªªª„„„ÿªªªªªªªªªªªªªªªªªªªªªªªª¿¿¿Ìéééÿªªªªªªªªªªªªÿÿÿÿ¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥SSSÿÿöÿÿÿúÿÿÿúÿÿÿúÿÿÿúÿÿÿúÿÿÿúÿÿÿúÿÿÿúÿÿÿúÿÿÿúÿÿÿúÿÿÿúÿÿÿúÿÿÿ¥¥¥ÿÿÿÿÿ¥¥¥¥¥¥¥¥¥¥¥¥SSSÿÿªªªªªªªªª¨¨¨ÆÆÆÿéééÿÔÔÔÿ¿¿¿Ìªªª¿¿¿ÌÔÔÔÿéééÿéééÿªªªªªªªªªªªªªªªÿÿÿÿ¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥SSSÿÿúÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿúÿÿÿ¥¥¥ÿÿÿÿÿ¥¥¥¥¥¥¥¥¥¥¥¥SSSÿÿªªªªªªªªªªªªªªª¿¿¿ÌÔÔÔÿéééÿÿÿÿÿéééÿÔÔÔÿ¿¿¿Ìªªªªªªªªªªªªªªªªªªÿÿÿÿ¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥SSSÿÿúÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿúÿÿÿ¥¥¥ÿÿÿÿÿ¥¥¥¥¥¥¥¥¥¥¥¥SSSÿÿªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªÿÿÿÿ¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥SSSÿÿúÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿúÿÿÿ¥¥¥ÿÿÿÿÿ¥¥¥¥¥¥¥¥¥¥¥¥SSSÿÿªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªÿÿÿÿ¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥SSSÿÿúÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿàÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿúÿÿÿ¥¥¥ÿÿÿÿÿ¥¥¥¥¥¥¥¥¥¥¥¥SSSÿÿªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªÿÿÿÿ¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥SSSÿÿúÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿúÿÿÿ¥¥¥ÿÿÿÿÿ¥¥¥¥¥¥¥¥¥¥¥¥SSSÿÿªªªªªªªªªªªªªªªªªªªªªªªªªªªÿÿªªªªªªªªªªªªªªªªªªªªªÿÿÿÿ¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥SSSÿÿúÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿúÿÿÿ¥¥¥ÿÿÿÿÿ¥¥¥¥¥¥¥¥¥¥¥¥SSSÿÿªªªªªªªªªªªªªªªªªªªªªªªªÿªªªÿªªªªªªªªªªªªªªªªªªªªªÿÿÿÿ¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥SSSÿÿúÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿúÿÿÿ¥¥¥ÿÿÿÿÿ¥¥¥¥¥¥¥¥¥¥¥¥SSSÿÿªªªªªªªªªªªªªªªªªªªªªÿªªªªªªÿªªªªªªªªªªªªªªªªªªªªªÿÿÿÿ¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥SSSÿÿöÿÿÿúÿÿÿúÿÿÿúÿÿÿúÿÿÿúÿÿÿúÿÿÿúÿÿÿúÿÿÿúÿÿÿúÿÿÿúÿÿÿúÿÿÿúÿÿÿ¥¥¥ÿÿÿÿÿ¥¥¥¥¥¥¥¥¥¥¥¥SSSÿÿªªªªªªªªªªªªªªªªªªªªªÿªªªªªªÿªªªªªªªªªªªªªªªªªªªªªÿÿÿÿ¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥SSSÿSSSÿ¥¥¥ÿ¥¥¥ÿ¥¥¥ÿ¥¥¥ÿ¥¥¥ÿ¥¥¥ÿ¥¥¥ÿ¥¥¥ÿ¥¥¥ÿ¥¥¥ÿ¥¥¥ÿ¥¥¥ÿ¥¥¥ÿ¥¥¥ÿ¥¥¥ÿÿÿÿÿ¥¥¥¥¥¥¥¥¥¥¥¥SSSÿÿªªªªªªªªªªªªªªªªªªÿªªªªªªªªªÿªªªªªªªªªªªªªªªªªªªªªÿÿÿÿ¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ¥¥¥¥¥¥¥¥¥¥¥¥SSSÿÿªªªªªªªªªªªªªªªªªªÿÿÿÿÿªªªªªªªªªªªªªªªªªªªªªÿÿÿÿ¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥SSSÿÿªªªªªªªªªªªªªªªÿªªªªªªªªªªªªÿªªªªªªªªªªªªªªªªªªªªªÿÿÿÿ¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥SSSÿÿªªªªªªªªªªªªÿªªªªªªªªªªªªªªªÿªªªªªªªªªªªªªªªªªªªªªÿÿÿÿ¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥SSSÿÿªªªªªªªªªªªªÿªªªªªªªªªªªªªªªÿªªªªªªªªªªªªªªªªªªªªªÿÿÿÿ¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥SSSÿÿªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªÿÿÿÿSSSÿSSSÿSSSÿSSSÿSSSÿSSSÿSSSÿSSSÿSSSÿSSSÿSSSÿSSSÿSSSÿSSSÿSSSÿSSSÿSSSÿSSSÿSSSÿSSSÿSSSÿSSSÿSSSÿSSSÿSSSÿSSSÿSSSÿSSSÿÿªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ ÿþ00Ú$ Mâ$@$0%8%(RC:\Development\gnustep\dev-apps\gorm\Palettes\2Controls\ControlsPalette.tiffHHgorm-1.2.24/Palettes/2Controls/GormNSMatrixInspector.gorm/0000755000000000000000000000000013410616261022074 5ustar rootrootgorm-1.2.24/Palettes/2Controls/GormNSMatrixInspector.gorm/objects.gorm0000644000000000000000000002773213410616261024426 0ustar rootrootGNUstep archive0000300d:00000024:0000011a:00000001:01GSNibContainer1NSObject01 NSMutableSet1NSSet&01GSWindowTemplate1GSClassSwapper01NSString&% NSWindow1NSWindow1 NSResponder% ?€ A C… Cî&% D À D=@01 NSView% ?€ A C… Cî  C… Cî&01 NSMutableArray1 NSArray&01 NSBox% BT Cz C! B€  C! B€&0± &0 ± % @à @à C B  C B&0 ± &0 1NSMatrix1 NSControl% ¿€ C B  C B&0 ± &%0 1 NSActionCell1NSCell0±&01NSFont% A@&&&&&&&&&&&&&&%’% B’ A˜ ?€ 01NSColor0±&% NSNamedColorSpace0±&% System0±&% controlBackgroundColor0±0±&% NSCalibratedRGBColorSpace ?*Àƒ ?*Àƒ ?*Àƒ ?*Àƒ ?€0±& % NSButtonCell01 NSButtonCell0±&%Radio01NSImage01NSMutableString&%common_RadioOff°&&&&&&&&&&&&&&%’0±0±&%common_RadioOn&&& &&%%0± &0±0±&%Radio°°&&&&&&&&&&&&&&%’0 ±&° °&&& &&0!±0"±& % Highlight°°&&&&&&&&&&&&&&%’°&&& &&0#±0$±&%List°°&&&&&&&&&&&&&&%’0%±&°%°&&& &&0&±0'±&%Track°°&&&&&&&&&&&&&&%’0(±&°(°&&& &&2 ok:v12@0:4@8’’°0)1NSTextFieldCell0*±&%Mode°&&&&&&&& &&&&&&%’0+±°°0,±&% windowBackgroundColor0-±° ?€ @  @ %%0.1NSForm% B| A  C A   C A &0/± &%001 NSFormCell01±&°&&&&&&&&&&&&&&%’ ¿€02±03±&%Field:°&&&&&&&&&&&&&&% C A  @@°04±° ?*Àƒ ?*Àƒ ?*Àƒ ?*Àƒ ?€05±& % NSFormCell%%06± &07±08±&°&&&&&&&&&&&&&&%’ Aà09±0:±&%Tag:°&&&&&&&&&&&&&&²’’°70;± % BT Cž€ C! Bœ  C! Bœ&0<± &0=± % @à @à C BL  C BL&0>± &0?1 NSColorWell% B< A¨ BT Að  BT Að&0@± &%0A±0B±&°&&&&&&&&&&&&&&0C±0D±&% NSCalibratedWhiteColorSpace ?€²0E1NSButton%  C A€  C A€&0F± &%0G±0H±&%Draws Background0I±0J±&%common_SwitchOff°&&&&&&&&&&&&&&%²0K±&0L±0M±&%common_SwitchOn&&& &&0N±0O±&%Background Color°&&&&&&&& &&&&&&%’°+0P±° ?€ @  @ %%0Q± % BT B C" Bô  C" Bô&0R± &0S± % @à @à C B¾  C B¾&0T± &0U±% B BŽ B¶ A€  B¶ A€&0V± &%0W±0X±&%Autosize°I°&&&&&&&&&&&&&&%²°K°L&&& &&0Y±% @Ð BH Bô A€  Bô A€&0Z± &%0[±0\±&%Selection by rect°I°&&&&&&&&&&&&&&%²0]±&°L&&& &&0^±% @Ð AÈ C A   C A &0_± &%0`±0a±&%Match Prototype°&&&&&&&&&&&&&&%²°]&&& &&0b±% @Ð  C A   C A &0c± &%0d±0e±&%Tags = Positions°&&&&&&&&&&&&&&%²0f±&&&& &&0g±0h±&%Options°&&&&&&&& &&&&&&%’°+0i±° ?€ @  @ %%0j± % BT C% C! Bª  C! Bª&0k± &0l± % @à @à C Bh  C Bh&0m± &0n± % A  C B8  C B8&0o± &0p± % @à @à C B  C B&0q± &0r±% B  Bh AÀ  Bh AÀ&0s± &%0t±0u±&°&&&&&&&&&&&&&&%’% Bh AÀ ?€ ?€°+0v±° ?*Àƒ ?*Àƒ ?*Àƒ ?*Àƒ ?€0w±& % NSButtonCell0x±0y±&%Button°&&&&&&&&&&&&&&%’&&& &&%%0z± &0{±°y°&&&&&&&&&&&&&&%’&&& &&’’’°{0|±0}±&%Box°&&&&&&&& &&&&&&%’°+0~±° ?€ @  @ %%0±0€±& % Prototype°&&&&&&&& &&&&&&%’°+0±° ?€ @  @ %%0‚± % BL CÇ€ C" B  C" B&%0ƒ± &0„± % @à @à C B4  C B4&0…± &0†±% A  B¬ B4  B¬ B4&0‡± &%0ˆ±0‰±&0б%&&&&&&&&&&&&&&%’ ¿€0‹±0Œ±&%Field:°Š&&&&&&&&&&&&&&% B¬ A¨ @@°°0±& % NSFormCell%%0ޱ &0±0±&°Š°&&&&&&&&&&&&&&%’ B0‘±0’±&%Rows:°Š°’&&&&&&&&&&&&&&0“±0”±&°Š°”&&&&&&&&&&&&&&%’ B0•±0–±&%Cols:°Š°–&&&&&&&&&&&&&&’’’°“0—1 NSStepper% BÀ A° A€ A¸  A€ A¸&0˜± &%0™1 NSStepperCell0š±&%300›1NSNumber1NSValued @>&&&&&&&&&&&&&&%’ @M€ ?ð%%0œ±% BÀ ¿€ A€ A¸  A€ A¸&0± &%0ž±0Ÿ±&%300 ±d @>&&&&&&&&&&&&&&%’ @M€ ?ð%%0¡±0¢±& % Dimensions°Š°¢&&&&&&&&&&&&&& @  @ %%°+0£±&%Window0¤±&%Matrix Attributes Inspector°¤ @@ AÈ F@ F@%&   D  DH0¥± &0¦± &0§1 NSMutableDictionary1! NSDictionary&0¨±&%Box3°j0©±&%Button5°b0ª±&% NSOwner0«±&%GormMatrixInspector0¬±&%Box4°n0­±&%Button°U0®±& % Stepper(1)°œ0¯±& % FormCell(0)°0°±&%Box(0)°‚0±±& % ColorWell1°?0²±&%Form°.0³±&%View(0)°„0´±&%Form(0)°†0µ±& % Stepper(0)°—0¶±&%Box°0·±&%Matrix1°r0¸±&%Matrix° 0¹±&%Button1°E0º±& % Inspector°0»±&%Button2°Y0¼±& % FormCell(1)°“0½±&%Box1°;0¾±&%Button3°^0¿±&%Box2°Q0À±&%Button40Á±% A B´ B` AÀ  B` AÀ&0± &%0ñ0ı&%Button°&&&&&&&&&&&&&&%’&&& &&0ű &880Æ1"NSNibConnector°º0DZ&% NSOwner0ȱ"°¶°º0ɱ"°¸°º0ʱ"°²°º0Ë1#NSNibOutletConnector°Ç°²0̱&%tagForm0ͱ#°Ç°¸0α& % modeMatrix0ϱ#°Ç°º0б&%window0ѱ"°½°º0Ò±"°±°º0Ó±"°¹°º0Ô±"°¿°º0Õ±"°­°º0Ö±"°»°º0×±"°¾°º0ر"°À°º0Ù±"°©°º0Ú±"°¨°º0Û±"°¬°º0ܱ"°·°º0ݱ#°Ç°±0Þ±&%backgroundColorWell0ß±#°Ç°¹0à±&%drawsBackgroundSwitch0á±#°Ç°·0â±&%prototypeMatrix0ã±#°Ç°­0ä±&%autosizeSwitch0å±#°Ç°»0æ±& % selRectSwitch0ç±#°Ç°¾0è±&%propagateSwitch0é±#°Ç°©0ê±& % autotagSwitch0ë1$NSNibControlConnector°±°Ç0ì±&%ok:0í±$°¹°Ç°ì0î±$°¸°Ç°ì0ï±$°­°Ç°ì0ð±$°»°Ç°ì0ñ±$°¾°Ç°ì0ò±$°©°Ç°ì0ó±#°±°¹0ô±& % nextKeyView0õ±#°¹°¸°ô0ö±#°¸°·°ô0÷±#°·°­°ô0ø±#°­°»°ô0ù±#°»°¾°ô0ú±#°¾°©°ô0û±#°©°²°ô0ü±#°º°±0ý±&%initialFirstResponder0þ±#°²°Ç0ÿ±&%delegateP±"°´°°P±"°¯°´P±"°¼°´P±"°°P±"°³°°P±#°´°ÇP±&%delegateP±#°Ç°´P±&%dimensionsFormP ±"°µ°³P ±"°®°³P ±#°Ç°µP ±& % rowsStepperP ±#°Ç°®P±& % colsStepperP±$°µ°ÇP±&%ok:P±$°®°ÇÐP± &gorm-1.2.24/Palettes/2Controls/GormNSMatrixInspector.gorm/data.classes0000644000000000000000000000062513410616261024367 0ustar rootroot{ "## Comment" = "Do NOT change this file, Gorm maintains it"; GormMatrixInspector = { Actions = ( ); Outlets = ( autosizeSwitch, autotagSwitch, backgroundColorWell, drawsBackgroundSwitch, modeMatrix, propagateSwitch, prototypeMatrix, selRectSwitch, tagForm, dimensionsForm, colsStepper, rowsStepper ); Super = IBInspector; }; }gorm-1.2.24/Palettes/2Controls/GormNSMatrixInspector.gorm/data.info0000644000000000000000000000027013410616261023661 0ustar rootrootGNUstep archive0000300d:00000003:00000003:00000000:01GormFilePrefsManager1NSObject% 01NSString&%Latest Version0±& % Typed Streamgorm-1.2.24/Palettes/2Controls/palette.table0000644000000000000000000000037113410616261017360 0ustar rootroot{ NibFile = "ControlsPalette"; Class = "ControlsPalette"; Icon = "ControlsPalette"; ExportClasses = (); ExportImages = (); SubstituteClasses = { GormNSPopUpButton = NSPopUpButton; GormNSPopUpButtonCell = NSPopUpButtonCell; }; }gorm-1.2.24/Palettes/2Controls/GNUmakefile.preamble0000644000000000000000000000131013410616261020543 0ustar rootroot# Additional include directories the compiler should search ADDITIONAL_INCLUDE_DIRS += -I../.. ifeq ($(GNUSTEP_TARGET_OS),mingw32) ADDITIONAL_LIB_DIRS += \ -L../../GormLib/$(GNUSTEP_OBJ_DIR) \ -L../../GormObjCHeaderParser/$(GNUSTEP_OBJ_DIR) \ -L../../GormPrefs/$(GNUSTEP_OBJ_DIR) \ -L../../GormCore/$(GNUSTEP_OBJ_DIR) ADDITIONAL_GUI_LIBS += -lGorm -lGormCore endif ifeq ($(GNUSTEP_TARGET_OS),cygwin) ADDITIONAL_LIB_DIRS += \ -L../../GormLib/$(GNUSTEP_OBJ_DIR) \ -L../../GormObjCHeaderParser/$(GNUSTEP_OBJ_DIR) \ -L../../GormPrefs/$(GNUSTEP_OBJ_DIR) \ -L../../GormCore/$(GNUSTEP_OBJ_DIR) 2Controls_LIBRARIES_DEPEND_UPON += -lGorm -lGormCore endifgorm-1.2.24/Palettes/2Controls/GormBoxAttributesInspector.h0000644000000000000000000000330113410616261022371 0ustar rootroot/* GormBoxAttributesInspector.h Copyright (C) 2001-2005 Free Software Foundation, Inc. Author: Adam Fedor Laurent Julliard Date: Aug 2001 Author: Gregory John Casamento Date: 2003, 2004, 2005 This file is part of GNUstep. This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 3 of the License, or (at your option) any later version. This program 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 General Public License for more details. You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02111 USA. */ /* July 2005 : Spilt inspector in separate classes. Always use ok: revert: methods Clean up Author : Fabien Vallon */ #ifndef INCLUDED_GormBoxAttributesInspector_h #define INCLUDED_GormBoxAttributesInspector_h #include @class NSButton; @class NSColorWell; @class NSForm; @class NSMatrix; @class NSSlider; @interface GormBoxAttributesInspector:IBInspector { NSMatrix *positionMatrix; NSMatrix *borderMatrix; NSForm *titleForm; NSSlider *horizontalSlider; NSSlider *verticalSlider; NSColorWell *colorWell; NSButton *backgroundSwitch; } @end #endif /* INCLUDED_GormBoxAttributesInspector_h */ gorm-1.2.24/Palettes/2Controls/GormFormAttributesInspector.h0000644000000000000000000000347313410616261022556 0ustar rootroot/* GormFormAttributesInspector.h Copyright (C) 2001-2005 Free Software Foundation, Inc. Author: Adam Fedor Laurent Julliard Date: Aug 2001 Author: Gregory John Casamento Date: 2003,2004,2005 This file is part of GNUstep. This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 3 of the License, or (at your option) any later version. This program 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 General Public License for more details. You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02111 USA. */ /* July 2005 : Spilt inspector in separate classes. Always use ok: revert: methods Clean up Author : Fabien Vallon */ #ifndef INCLUDED_GormFormAttributesInspector_h #define INCLUDED_GormFormAttributesInspector_h #include @class NSButton; @class NSColorWell; @class NSForm; @class NSMatrix; @class NSStepper; @interface GormFormAttributesInspector: IBInspector { NSButton *cellPositionSwitch; NSButton *editableSwitch; NSButton *selectableSwitch; NSButton *scrollableSwitch; NSButton *autosizeSwitch; id backgroundColorWell; id drawsBackgroundSwitch; id tagForm; id textMatrix; id titleMatrix; NSForm *dimensionsForm; NSStepper *numberStepper; } @end #endif /* INCLUDED_GormFormAttributesInspector_h */ gorm-1.2.24/Palettes/2Controls/GormFormAttributesInspector.m0000644000000000000000000002127513410616261022563 0ustar rootroot/* GormFormAttributesInspector.m Copyright (C) 2001-2005 Free Software Foundation, Inc. Author: Adam Fedor Laurent Julliard Date: Aug 2001 Author: Gregory John Casamento Date: 2003,2004,2005 This file is part of GNUstep. This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 3 of the License, or (at your option) any later version. This program 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 General Public License for more details. You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02111 USA. */ /* July 2005 : Split inspector classes into separate files. Always use ok: revert: methods Clean up Author : Fabien Vallon */ #include "GormFormAttributesInspector.h" #include #include #include #include #include #include #include #include /* IBObjectAdditions category */ @implementation NSForm (IBObjectAdditions) - (NSString*) inspectorClassName { return @"GormFormAttributesInspector"; } @end @implementation GormFormAttributesInspector NSUInteger numberStepperValue; - (id) init { if ([super init] == nil) { return nil; } if ([NSBundle loadNibNamed: @"GormNSFormInspector" owner: self] == NO) { NSLog(@"Could not gorm GormFormInspector"); return nil; } /* It shouldn't break functionality of field number changing if someone will decide in the future to change the value of the stepper in the gorm file. So we stores those value from the gorm file in the auxillary variable to use it later in -[ok:]. (It allows us to avoid the value being hardcoded). */ numberStepperValue = [numberStepper intValue]; return self; } /* Commit changes that the user makes in the Attributes Inspector */ - (void) ok:(id) sender { NSInteger rows; NSInteger cols; int i; [object getNumberOfRows: &rows columns: &cols]; /* background color */ if (sender == backgroundColorWell) { [object setBackgroundColor: [sender color]]; } else if (sender == drawsBackgroundSwitch) { [object setDrawsBackground: ([sender state] == NSOnState)]; } /* options */ else if (sender == cellPositionSwitch) { BOOL flag; flag = ([cellPositionSwitch state] == NSOnState) ? YES : NO; if (flag == YES) { for (i = 0; i < rows; i++) { [[object cellAtIndex: i] setTag: i]; } } } else if ( sender == editableSwitch ) { BOOL flag = ([editableSwitch state] == NSOnState) ? YES : NO; for (i = 0; i < rows; i++) { [[object cellAtIndex: i] setEditable: flag]; } } else if ( sender == selectableSwitch ) { BOOL flag = ([selectableSwitch state] == NSOnState) ? YES : NO; for (i = 0; i < rows; i++) { [[object cellAtIndex: i] setSelectable: flag]; } } else if ( sender == scrollableSwitch ) { BOOL flag = ([scrollableSwitch state] == NSOnState) ? YES : NO; for (i = 0; i < rows; i++) { [[object cellAtIndex: i] setScrollable: flag]; } } /* text alignment */ else if (sender == textMatrix) { [object setTextAlignment: (NSTextAlignment)[[sender selectedCell] tag]]; } /* title alignment */ else if (sender == titleMatrix) { [object setTitleAlignment: (NSTextAlignment)[[sender selectedCell] tag]]; } /* tag */ else if (sender == tagForm) { [object setTag: [[sender cellAtIndex: 0] intValue]]; } /* autosize */ else if (sender == autosizeSwitch) { BOOL flag = ([autosizeSwitch state] == NSOnState) ? YES : NO; [object setAutosizesCells: flag]; } /* number of fields */ else if(sender == dimensionsForm) { int fields = [[sender cellAtIndex: 0] intValue]; if(fields) // make changes only if the user actions do something meaningful { NSRect rect = [object frame]; NSSize cell = [object cellSize]; NSSize inter = [object intercellSpacing]; while(((rows = [object numberOfRows]) != fields)) { if(rows > fields) { [object removeEntryAtIndex: rows - 1]; // remove last field } else { [object addEntry: [NSString stringWithFormat: @"Field (%ld)", (long)rows]]; } } cell.height = (rect.size.height + inter.height) / fields - inter.height; [object setCellSize: cell]; } [object setNeedsDisplay: YES]; [[object superview] setNeedsDisplay: YES]; } else if(sender == numberStepper) { int delta = [sender intValue] - numberStepperValue; NSRect rect = [object frame]; NSSize cell = [object cellSize]; NSSize inter = [object intercellSpacing]; while(delta > 0) { [object addEntry: [NSString stringWithFormat: @"Field (%ld)", (long)rows]]; delta--; rows++; } while((delta < 0) && (rows > 1)) { [object removeEntryAtIndex: rows - 1]; rows--; delta++; } cell.height = (rect.size.height + inter.height) / rows - inter.height; [object setCellSize: cell]; [[dimensionsForm cellAtIndex: 0] setIntValue: rows]; [sender setIntValue: numberStepperValue]; [dimensionsForm setNeedsDisplay: YES]; [object setNeedsDisplay: YES]; } [super ok:sender]; } /* Sync from object ( NSForm ) changes to the inspector */ - (void) revert: (id) sender { if ( object == nil ) { return; } /* background color */ [backgroundColorWell setColorWithoutAction: [object backgroundColor]]; [drawsBackgroundSwitch setState: ([object drawsBackground]) ? NSOnState : NSOffState]; /* alignments */ [textMatrix selectCellWithTag: [[object cellAtIndex: 0] alignment]]; [titleMatrix selectCellWithTag: [[object cellAtIndex: 0] titleAlignment]]; /* options */ [editableSwitch setState:[[object cellAtIndex: 0] isEditable]]; [selectableSwitch setState:[[object cellAtIndex: 0] isSelectable]]; [scrollableSwitch setState:[[object cellAtIndex: 0] isScrollable]]; [autosizeSwitch setState: [object autosizesCells]]; // Cells tags = position is not directly stored in the Form so guess it. { NSInteger rows; NSInteger cols; int i; BOOL flag; [object getNumberOfRows: &rows columns: &cols]; i = 0; do { flag = ([[object cellAtIndex: i] tag] == i); } while (flag && (++i < rows)); if (flag) { [cellPositionSwitch setState:NSOnState]; } } /* number of fields */ [[dimensionsForm cellAtIndex: 0] setIntValue: [object numberOfRows]]; /* tag */ [[tagForm cellAtRow: 0 column: 0] setIntValue: [object tag]]; [super revert:sender]; } /* delegate method for tagForm */ -(void) controlTextDidChange:(NSNotification*) aNotification { [self ok:[aNotification object]]; } /* The button type isn't stored in the button, so reverse-engineer it */ - (NSButtonType) buttonTypeForObject: button { NSButtonCell *cell; NSButtonType type; int highlight, stateby; /* We could be passed the button or the cell */ cell = ([button isKindOfClass: [NSButton class]]) ? [button cell] : button; highlight = [cell highlightsBy]; stateby = [cell showsStateBy]; NSDebugLog(@"highlight = %d, stateby = %d", (int)[cell highlightsBy],(int)[cell showsStateBy]); type = NSMomentaryPushButton; if (highlight == NSChangeBackgroundCellMask) { if (stateby == NSNoCellMask) type = NSMomentaryLight; else type = NSOnOffButton; } else if (highlight == (NSPushInCellMask | NSChangeGrayCellMask)) { if (stateby == NSNoCellMask) type = NSMomentaryPushButton; else type = NSPushOnPushOffButton; } else if (highlight == (NSPushInCellMask | NSContentsCellMask)) { type = NSToggleButton; } else if (highlight == NSContentsCellMask) { if (stateby == NSNoCellMask) type = NSMomentaryChangeButton; else type = NSToggleButton; /* Really switch or radio. What should it be? */ } else { NSDebugLog(@"Ack! no button type"); } return type; } /* We may need to reset some parameters based on the previous type */ - (void) setButtonType: (NSButtonType)type forObject: (id)button { [object setButtonType: type]; } @end gorm-1.2.24/Palettes/2Controls/GormNSPopUpButton.h0000644000000000000000000000047613410616261020415 0ustar rootroot#include #ifndef INCLUDED_GormNSPopUpButton_h #define INCLUDED_GormNSPopUpButton_h @interface GormNSPopUpButton : NSPopUpButton @end @interface GormNSPopUpButtonCell : NSPopUpButtonCell { } @end @interface NSPopUpButtonCell (DirtyHack) - (id) _gormInitTextCell: (NSString *) string; @end #endif gorm-1.2.24/Palettes/2Controls/GormButtonEditor.m0000644000000000000000000003314113410616261020337 0ustar rootroot/* GormButtonEditor.m * * Copyright (C) 2002 Free Software Foundation, Inc. * * Author: Pierre-Yves Rivaille * Date: 2002 * * This file is part of GNUstep. * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 3 of the License, or * (at your option) any later version. * * This program 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 General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02111 USA. */ #include #include #include #include #include "GormButtonEditor.h" #define _EO ((NSButton *)_editedObject) @interface NSButtonCell (GormObjectAdditions) - (NSRect) gormTitleRectForFrame: (NSRect) cellFrame inView: (NSView *)controlView; @end @implementation NSButtonCell (GormObjectAdditions) - (NSRect) gormTitleRectForFrame: (NSRect) cellFrame inView: (NSView *)controlView { unsigned mask; NSImage *imageToDisplay; NSRect imageRect; NSString *titleToDisplay; NSRect titleRect; NSSize imageSize = {0, 0}; NSSize titleSize = {0, 0}; NSColor *backgroundColor = nil; BOOL flippedView = [controlView isFlipped]; NSCellImagePosition ipos = _cell.image_position; cellFrame = [self drawingRectForBounds: cellFrame]; if (_cell.is_highlighted) { mask = _highlightsByMask; if (_cell.state) mask &= ~_showAltStateMask; } else if (_cell.state) mask = _showAltStateMask; else mask = NSNoCellMask; /* Pushed in buttons contents are displaced to the bottom right 1px. */ if (_cell.is_bordered && (mask & NSPushInCellMask)) { cellFrame = NSOffsetRect(cellFrame, 1., flippedView ? 1. : -1.); } /* Determine the background color. */ if (mask & (NSChangeGrayCellMask | NSChangeBackgroundCellMask)) { backgroundColor = [NSColor selectedControlColor]; } if (backgroundColor == nil) backgroundColor = [NSColor controlBackgroundColor]; /* * Determine the image and the title that will be * displayed. If the NSContentsCellMask is set the * image and title are swapped only if state is 1 or * if highlighting is set (when a button is pushed it's * content is changed to the face of reversed state). */ if (mask & NSContentsCellMask) { imageToDisplay = _altImage; if (!imageToDisplay) imageToDisplay = _cell_image; titleToDisplay = _altContents; if (titleToDisplay == nil || [titleToDisplay isEqual: @""]) titleToDisplay = _contents; } else { imageToDisplay = _cell_image; titleToDisplay = _contents; } if (imageToDisplay) { imageSize = [imageToDisplay size]; } titleSize = [self _sizeText: titleToDisplay]; if (flippedView == YES) { if (ipos == NSImageAbove) { ipos = NSImageBelow; } else if (ipos == NSImageBelow) { ipos = NSImageAbove; } } switch (ipos) { case NSNoImage: imageToDisplay = nil; titleRect = cellFrame; { int heightDiff = titleRect.size.height - titleSize.height; titleRect.origin.y += heightDiff - heightDiff / 2; titleRect.size.height -= heightDiff; } break; case NSImageOnly: titleToDisplay = nil; imageRect = cellFrame; break; case NSImageLeft: imageRect.origin = cellFrame.origin; imageRect.size.width = imageSize.width; imageRect.size.height = cellFrame.size.height; if (_cell.is_bordered || _cell.is_bezeled) { imageRect.origin.x += 3; imageRect.size.height -= 2; imageRect.origin.y += 1; } titleRect = imageRect; titleRect.origin.x += imageSize.width + GSCellTextImageXDist; titleRect.size.width = cellFrame.size.width - imageSize.width - GSCellTextImageXDist; if (_cell.is_bordered || _cell.is_bezeled) { titleRect.size.width -= 3; } { int heightDiff = titleRect.size.height - titleSize.height; titleRect.origin.y += heightDiff - heightDiff / 2; titleRect.size.height -= heightDiff; } break; case NSImageRight: imageRect.origin.x = NSMaxX(cellFrame) - imageSize.width; imageRect.origin.y = cellFrame.origin.y; imageRect.size.width = imageSize.width; imageRect.size.height = cellFrame.size.height; if (_cell.is_bordered || _cell.is_bezeled) { imageRect.origin.x -= 3; imageRect.size.height -= 2; imageRect.origin.y += 1; } titleRect.origin = cellFrame.origin; titleRect.size.width = cellFrame.size.width - imageSize.width - GSCellTextImageXDist; titleRect.size.height = cellFrame.size.height; if (_cell.is_bordered || _cell.is_bezeled) { titleRect.origin.x += 3; titleRect.size.width -= 3; } { int heightDiff = titleRect.size.height - titleSize.height; titleRect.origin.y += heightDiff - heightDiff / 2; titleRect.size.height -= heightDiff; } break; case NSImageAbove: /* * In this case, imageRect is all the space we can allocate * above the text. * The drawing code below will then center the image in imageRect. */ titleRect.origin.x = cellFrame.origin.x; titleRect.origin.y = cellFrame.origin.y; titleRect.size.width = cellFrame.size.width; titleRect.size.height = titleSize.height; imageRect.origin.x = cellFrame.origin.x; imageRect.origin.y = cellFrame.origin.y; imageRect.origin.y += titleRect.size.height + GSCellTextImageYDist; imageRect.size.width = cellFrame.size.width; imageRect.size.height = cellFrame.size.height; imageRect.size.height -= titleSize.height + GSCellTextImageYDist; if (_cell.is_bordered || _cell.is_bezeled) { imageRect.size.width -= 6; imageRect.origin.x += 3; titleRect.size.width -= 6; titleRect.origin.x += 3; imageRect.size.height -= 1; titleRect.size.height -= 1; } break; case NSImageBelow: /* * In this case, imageRect is all the space we can allocate * below the text. * The drawing code below will then center the image in imageRect. */ titleRect.origin.x = cellFrame.origin.x; titleRect.origin.y = cellFrame.origin.y + cellFrame.size.height; titleRect.origin.y -= titleSize.height; titleRect.size.width = cellFrame.size.width; titleRect.size.height = titleSize.height; imageRect.origin.x = cellFrame.origin.x; imageRect.origin.y = cellFrame.origin.y; imageRect.size.width = cellFrame.size.width; imageRect.size.height = cellFrame.size.height; imageRect.size.height -= titleSize.height + GSCellTextImageYDist; if (_cell.is_bordered || _cell.is_bezeled) { imageRect.size.width -= 6; imageRect.origin.x += 3; titleRect.size.width -= 6; titleRect.origin.x += 3; imageRect.size.height -= 1; imageRect.origin.y += 1; } break; case NSImageOverlaps: titleRect = cellFrame; imageRect = cellFrame; { int heightDiff = titleRect.size.height - titleSize.height; titleRect.origin.y += heightDiff - heightDiff / 2; titleRect.size.height -= heightDiff; } break; } return titleRect; } @end static BOOL done_editing; static NSRect oldFrame; @implementation GormButtonEditor - (void) handleNotification: (NSNotification*)aNotification { NSString *name = [aNotification name]; if ([name isEqual: NSControlTextDidEndEditingNotification] == YES) { done_editing = YES; } else if([name isEqual: IBWillSaveDocumentNotification] == YES) { done_editing = YES; [[NSNotificationCenter defaultCenter] removeObserver: self name: IBWillSaveDocumentNotification object: nil]; [tempTextView resignFirstResponder]; [tempTextView removeFromSuperview]; [tempTextView setDelegate: nil]; tempTextView = nil; } } - (void) textDidChange: (NSNotification *)aNotification { [_EO setTitle: [[aNotification object] string]]; [_EO setNeedsDisplay: NO]; [[(id)NSApp inspectorsManager] updateSelection]; } - (void) textDidEndEditing: (NSNotification *)aNotification { [[aNotification object] setDelegate: nil]; [_EO setTitle: [[aNotification object] string]]; [[aNotification object] removeFromSuperview]; { NSSize suggestedSize; NSRect newFrame = [_EO frame]; suggestedSize = [[_EO cell] cellSize]; if (suggestedSize.width > newFrame.size.width) { newFrame.origin.x = newFrame.origin.x - (int)((suggestedSize.width - newFrame.size.width) / 2); newFrame.size.width = suggestedSize.width; [_EO setFrame: newFrame]; [[self window] disableFlushWindow]; [[self window] display]; [[self window] enableFlushWindow]; [[self window] flushWindow]; } } } /* Edit a textfield. If it's not already editable, make it so, then edit it */ - (NSEvent *) editTextField: view withEvent: (NSEvent *)theEvent { unsigned eventMask; BOOL wasEditable; BOOL didDrawBackground; NSTextField *editField; NSRect frame; NSNotificationCenter *nc = [NSNotificationCenter defaultCenter]; NSDate *future = [NSDate distantFuture]; NSEvent *e; editField = view; frame = [editField frame]; wasEditable = [editField isEditable]; [editField setEditable: YES]; didDrawBackground = [editField drawsBackground]; [editField setDrawsBackground: YES]; [nc addObserver: self selector: @selector(handleNotification:) name: NSControlTextDidEndEditingNotification object: nil]; /* Do some modal editing */ [editField selectText: self]; eventMask = NSLeftMouseDownMask | NSLeftMouseUpMask | NSKeyDownMask | NSKeyUpMask | NSFlagsChangedMask; done_editing = NO; while (!done_editing) { NSEventType eType; e = [NSApp nextEventMatchingMask: eventMask untilDate: future inMode: NSEventTrackingRunLoopMode dequeue: YES]; eType = [e type]; switch (eType) { case NSLeftMouseDown: { NSPoint dp = [self convertPoint: [e locationInWindow] fromView: nil]; if (NSMouseInRect(dp, frame, NO) == NO) { done_editing = YES; break; } } [[editField currentEditor] mouseDown: e]; break; case NSLeftMouseUp: [[editField currentEditor] mouseUp: e]; break; case NSLeftMouseDragged: [[editField currentEditor] mouseDragged: e]; break; case NSKeyDown: [[editField currentEditor] keyDown: e]; break; case NSKeyUp: [[editField currentEditor] keyUp: e]; break; case NSFlagsChanged: [[editField currentEditor] flagsChanged: e]; break; default: NSLog(@"Internal Error: Unhandled event during editing: %@", e); break; } } [editField setEditable: wasEditable]; [editField setDrawsBackground: didDrawBackground]; [nc removeObserver: self name: NSControlTextDidEndEditingNotification object: nil]; [[editField currentEditor] resignFirstResponder]; [self setNeedsDisplay: YES]; tempTextView = nil; return e; } - (NSTextView *) startEditingInFrame: (NSRect) frame { NSTextView *textView = [[NSTextView alloc] initWithFrame: frame]; NSTextContainer *textContainer = [textView textContainer]; tempTextView = textView; [textContainer setContainerSize: NSMakeSize(3000, NSHeight([textView frame]))]; [textContainer setWidthTracksTextView: NO]; [textContainer setHeightTracksTextView: NO]; [textView setHorizontallyResizable: NO]; [textView setVerticallyResizable: NO]; [textView setMinSize: frame.size]; [textView setMaxSize: frame.size]; [textView setAutoresizingMask: NSViewMinXMargin | NSViewMaxXMargin]; [textView setSelectable: YES]; [textView setEditable: YES]; [textView setRichText: NO]; [textView setImportsGraphics: NO]; [textView setFieldEditor: YES]; [textView setHorizontallyResizable: YES]; [textView setDelegate: self]; [textView setPostsFrameChangedNotifications:YES]; [[NSNotificationCenter defaultCenter] addObserver: self selector: @selector(textViewFrameChanged:) name: NSViewFrameDidChangeNotification object: textView]; [[NSNotificationCenter defaultCenter] addObserver: self selector: @selector(handleNotification:) name: IBWillSaveDocumentNotification object: nil]; oldFrame = frame; return textView; } - (void) textViewFrameChanged: (NSNotification *)aNot { static BOOL inside = NO; NSRect newFrame; if (inside) return; inside = YES; [[[self window] contentView] setNeedsDisplayInRect: oldFrame]; newFrame = [[aNot object] frame]; if ([[aNot object] alignment] == NSCenterTextAlignment) { NSRect frame = [[_EO cell] gormTitleRectForFrame: [_EO frame] inView: _EO]; int difference = newFrame.size.width - frame.size.width; newFrame.origin.x = frame.origin.x - (int) (difference / 2); [[aNot object] setFrame: newFrame]; oldFrame = newFrame; } [[self superview] setNeedsDisplayInRect: oldFrame]; inside = NO; } - (void) mouseDown: (NSEvent*)theEvent { // double-clicked -> let's edit if (([theEvent clickCount] == 2) && [parent isOpened]) { NSRect frame = [[_EO cell] gormTitleRectForFrame: [_EO frame] inView: _EO]; NSTextView *tv = [self startEditingInFrame: frame]; [[self superview] addSubview: tv]; [tv setText: [_EO title]]; [tv setAlignment: [_EO alignment]]; [tv setFont: [_EO font]]; [[self window] display]; [[self window] makeFirstResponder: tv]; [tv mouseDown: theEvent]; } else { [super mouseDown: theEvent]; } } @end gorm-1.2.24/Palettes/2Controls/GormTextFieldAttributesInspector.h0000644000000000000000000000324113410616261023534 0ustar rootroot/* GormTextFieldAttributesInspector.h Copyright (C) 2001-2005 Free Software Foundation, Inc. Author: Adam Fedor Laurent Julliard Date: Aug 2001 This file is part of GNUstep. This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 3 of the License, or (at your option) any later version. This program 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 General Public License for more details. You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02111 USA. */ /* July 2005 : Spilt inspector in separate classes. Always use ok: revert: methods Clean up Author : Fabien Vallon */ #ifndef INCLUDED_GormTextFieldAttributesInspector_h #define INCLUDED_GormTextFieldAttributesInspector_h #include @class NSButton; @class NSColorWell; @class NSForm; @class NSMatrix; @interface GormTextFieldAttributesInspector: IBInspector { NSMatrix *alignMatrix; NSColorWell *backgroundColor; NSButton *drawsBackground; NSColorWell *textColor; NSMatrix *borderMatrix; NSButton *editableSwitch; NSButton *selectableSwitch; NSButton *scrollableSwitch; NSForm *tagForm; NSMatrix *sendActionMatrix; } @end #endif gorm-1.2.24/Palettes/2Controls/GormNSStepperInspector.gorm/0000755000000000000000000000000013410616261022252 5ustar rootrootgorm-1.2.24/Palettes/2Controls/GormNSStepperInspector.gorm/objects.gorm0000644000000000000000000001331413410616261024573 0ustar rootrootGNUstep archive00002af9:00000020:00000095:00000000:01GSNibContainer1NSObject01NSMutableDictionary1 NSDictionary&01NSString& % Inspector01GSWindowTemplate1GSClassSwapper0±&%NSWindow1NSWindow1 NSResponder% ?€ A Cˆ CÂ&% D@ DhÀ01 NSView% ?€ A Cˆ C  Cˆ CÂ&01 NSMutableArray1 NSArray&01 NSBox% B Bö C? CB  C? CB&0 ± &0 ± % @à @à C1 C(  C1 C(&0 ± &  0 1NSButton1 NSControl% B C BÄ A€  BÄ A€&0 ± &%01 NSButtonCell1 NSActionCell1NSCell0±& % Autorepeat01NSImage01NSMutableString&% common_SwitchOff01NSFont% A@&&&&&&&&%’0±&0±0±&% common_SwitchOn&&&0±% Að Bò BÐ A€  BÐ A€&0± &%0±0±& % Value wraps°°&&&&&&&&%’°°&&&01 NSTextField% Bê B¸ B` A   B` A &0± &%01NSTextFieldCell0±&% 0°01NSNumber1NSValued &&&&&&&&0%’01NSColor0 ±&%NSCalibratedRGBColorSpace ?€ ?€ ?€ ?€ ?€0!±° ?€’0"±% Bê B| B` A   B` A &0#± &%0$±0%±&% 0°0&±d &&&&&&&&0%’0'±° ?€ ?€ ?€ ?€ ?€0(±° ?€’0)±% Bê B B` A   B` A &0*± &%0+±0,±&% 59°0-±d @M€&&&&&&&&0%’0.±° ?€ ?€ ?€ ?€ ?€0/±° ?€’00±% A€ B´ BÆ A   BÆ A &01± &%02±03±&%Value:°&&&&&&&&0%’04±° ?€ ?€ ?€ ?€ ?€05±° ?€’06±% A Bx BÌ A   BÌ A &07± &%08±09±&%Minimum Value:°&&&&&&&&0%’0:±° ?€ ?€ ?€ ?€ ?€0;±° ?€’0<±% A B BÒ A   BÒ A &0=± &%0>±0?±&%Maximum Value:°&&&&&&&&0%’0@±° ?€ ?€ ?€ ?€ ?€0A±° ?€’0B±% Bê A B` A   B` A &0C± &%0D±0E±&% 1°0F±d ?ð&&&&&&&&0%’0G±° ?€ ?€ ?€ ?€ ?€0H±° ?€’0I±% A` A B¾ A   B¾ A &0J± &%0K±0L±& % Increment:°&&&&&&&&0%’0M±° ?€ ?€ ?€ ?€ ?€0N±° ?€’0O±0P±&%Options0Q±%&&&&&&&& @  @ %%0R±0S±&%NSNamedColorSpace0T±&% System0U±&%windowBackgroundColor0V±&%Window0W±&%Steppers Attributes Inspector°W @@ AÈ F@ F@%&   D  D€0X±&%NSOwner0Y±&% GormStepperAttributesInspector0Z±& %  TextField1°"0[±& %  TextField2°)0\±& % TextField°0]±& %  TextField3°00^±& %  TextField4°60_±& %  TextField5°<0`±&%GSCustomClassMap0a±&0b±&%Button° 0c±& %  TextField6°B0d±& % NSVisible0e± &0f±& %  TextField7°I0g±&%Box°0h±&% Button1°0i± &0j1NSNibConnector°b°0k±°h°0l±°\°0m±°Z°0n±°[°0o±°]°0p±°^°0q±°_°0r1NSNibOutletConnector0s±&%NSOwner°b0t±&%autorepeatButton0u±°s°\0v±& % valueField0w±°s°[0x±&%maximumValueField0y±°c°0z±°f°0{±°g0|1NSNibControlConnector°b°s0}±&% ok:0~±°h°s°}0±°s°0€±&% window0±°s°h0‚±&% valueWrapsButton0ƒ±°s°Z0„±&% minimumValueField0…±°s°c0†±&% incrementValueField0‡±°b°h0ˆ±& %  nextKeyView0‰±°h°\°ˆ0б°\°Z°ˆ0‹±°Z°[°ˆ0Œ±°[°c°ˆ0±°c°b°ˆ0ޱ°°b0±&% initialFirstResponder0±°\°s0‘±&% delegate0’±°Z°s°‘0“±°[°s°‘0”±°c°s°‘0•1 GSMutableSet1 NSMutableSet1 NSSet&°gorm-1.2.24/Palettes/2Controls/GormNSStepperInspector.gorm/data.classes0000644000000000000000000000053213410616261024542 0ustar rootroot{ "## Comment" = "Do NOT change this file, Gorm maintains it"; GormStepperAttributesInspector = { Actions = ( "ok:", "revert:" ); Outlets = ( autorepeatButton, incrementValueField, maximumValueField, minimumValueField, valueField, valueWrapsButton, window ); Super = IBInspector; }; }gorm-1.2.24/Palettes/2Controls/GormNSStepperInspector.gorm/data.info0000644000000000000000000000027013410616261024037 0ustar rootrootGNUstep archive00002af9:00000003:00000003:00000000:01GormFilePrefsManager1NSObject% 01NSString&%Latest Version0±& % Typed Streamgorm-1.2.24/Palettes/2Controls/GormNSBoxInspector.gorm/0000755000000000000000000000000013410616261021360 5ustar rootrootgorm-1.2.24/Palettes/2Controls/GormNSBoxInspector.gorm/objects.gorm0000644000000000000000000003634013410616261023705 0ustar rootrootGNUstep archive000f4240:00000025:00000131:00000001:01GSNibContainer1NSObject01 NSMutableSet1NSSet&01GSWindowTemplate1GSClassSwapper01NSString&% NSWindow1NSWindow1 NSResponder% ?ð ?ð @q @x@JI @„( @‰À01 NSView% ?ð ?ð @q @x@  @q @x@J01 NSMutableArray1 NSArray&01 NSBox% @R @l @`À @]€  @`À @]€J*0± &0 ± % @ @ @^ @Z  @^ @ZJ0 ± &0 1NSTextFieldCell1 NSActionCell1NSCell0 ±&%Box0 1NSFont% A@&&&&&&JJ &&&&&&I’01NSColor0±&% NSCalibratedRGBColorSpace ?*Àƒ ?*Àƒ ?*Àƒ ?*Àƒ ?€0±° ?€ @ @%%01NSMatrix1 NSControl% @X @l @U€ @]€  @U€ @]€J-01NSForm% @" @uà @o€ @4  @o€ @4J°0± &%01 NSFormCell0±&° &&&&&&JJ&&&&&&I’ ¿€0±0±&%Field:° &&&&&&JJ&&&&&&% @o€ @4 @0±0±&% NSNamedColorSpace0±&% System0±&% controlBackgroundColor0±° ?*Àƒ ?*Àƒ ?*Àƒ ?*Àƒ ?€0±& % NSFormCell%%0± &0±0 ±&° &&&&&&JJ&&&&&&I’ A¸0!±0"±&%Title° &&&&&&JJ&&&&&&2 ok:v24@0:8@16’’°0#± &%0$±0%±&° &&&&&&JJ&&&&&&I’% @U€ @0 ?ð ?ð°0&±° ?*Àƒ ?*Àƒ ?*Àƒ ?*Àƒ ?€0'±& % NSButtonCell0(1 NSButtonCell0)±&%Button° &&&&&&JJ&&&&&&I’0*±&0+±&&&& &&%%0,± &0-±0.±& % Above Top° &&&&&&JJ&&&&&&I’0/±&°+&&& &&00±01±&%Top° &&&&&&JJ&&&&&&I’02±&°+&&& &&03±04±& % Below Top° &&&&&&JJ&&&&&&I’05±&°+&&& &&06±07±&%No Title° &&&&&&JJ&&&&&&I’08±&°+&&& &&09±0:±& % Above Bottom° &&&&&&JJ&&&&&&I’0;±&°+&&& &&0<±0=±&%Bottom° &&&&&&JJ&&&&&&I’0>±&°+&&& &&0?±0@±& % Below Bottom° &&&&&&JJ&&&&&&I’0A±&°+&&& &&²’’°0°0B± % @R @d` @`À @L  @`À @LJ*0C± &0D± % @ @ @^ @?  @^ @?J0E± &0F±% @$  @Y @:  @Y @:J0G± &%0H±0I±&° &&&&&&JJ&&&&&&I’% @9 @: Áà0J±° ?*Àƒ ?*Àƒ ?*Àƒ ?*Àƒ ?€°J0K±& % NSButtonCell0L±0M±&%Button° &&&&&&JJ&&&&&&I’&&& &&%%0N± &0O±°M0P1NSImage0Q±& % noBorder_nib° &&&&&&JJ&&&&&&I’0R±&&&& &&0S±0T±&0U±0V±&%line_nib° &&&&&&JJ&&&&&&I’°R&&& &&0W±0X±&0Y±0Z±& % bezel_nib° &&&&&&JJ&&&&&&I’°R&&& &&0[±0\±&0]±0^±& % ridge_nib° &&&&&&JJ&&&&&&I’0_±&°R&&& &&’’’°[0`±0a±&%Border0b±%&&&&&&JJ&&&&&& @ @%%0c± % @" @YÀ @` @L  @` @LJ.0d± &0e± % @ @ @\À @?  @\À @?J0f± &0g1NSSlider% @$  @Y @0  @Y @0J0h± &%0i1 NSSliderCell0j±&%0° 0k1NSNumber1NSValued &&&&&&JJ&&&&&&I’ Aff ¿€%0l±0m±&° &&&&&&JJ &&&&&&I’0n±° ?€ ?€ ?€ ?€ ?€0o±° ?€0p±0q±&0r±0s±&%common_SliderHoriz° &&&&&&JJ&&&&&&I%0t1 NSTextField% @$ @0 @Y @*  @Y @*J0u± &%0v±0w±&%0 1 2 3 4 5 6 7 8 9° &&&&&&JJ &&&&&&I’°0x±° ?€’0y±0z±&%Horizontal Offset°b&&&&&&JJ&&&&&& @ @%%0{± % @b@ @YÀ @^À @L  @^À @LJ+0|± &0}± % @ @ @[@ @?  @[@ @?J0~± &0±%  @Y @0  @Y @0J0€± &%0±0‚±&%0° 0ƒ±d &&&&&&JJ&&&&&&I’ Aff ¿€%0„±0…±&° &&&&&&JJ &&&&&&I’0†±° ?€ ?€ ?€ ?€ ?€0‡±° ?€0ˆ±0‰±&°r° &&&&&&JJ&&&&&&I%0б% @. @Y @,  @Y @,J0‹± &%0Œ±0±&%0 1 2 3 4 5 6 7 8 9° &&&&&&JJ &&&&&&I’0ޱ° ?€ ?€ ?€ ?€ ?€0±° ?€’0±0‘±&%Vertical Offset°b&&&&&&JJ&&&&&& @ @%%0’± % @J @0 @e€ @UÀ  @e€ @UÀJ'0“± &0”± % @ @ @cÀ @O  @cÀ @OJ0•± &0–1 NSColorWell% @K€ @? @J€ @>  @J€ @>J0—± &%0˜±0™±&°b&&&&&&JJ&&&&&&0š±0›±&% NSCalibratedWhiteColorSpace ?€’0œ1NSButton% @ @ @a` @0  @a` @0J%0± &%0ž±0Ÿ±&%Draws Background0 ±0¡1 NSMutableString&%GSSwitch°b&&&&&&JJ&&&&&&I’0¢±&0£±&0¤±0¥± &%GSSwitchSelected&&& &&0¦±0§±& % Title Cell°b&&&&&&JJ&&&&&& @ @%%0¨±°°0©±&% windowBackgroundColor0ª±&%Window0«±&%Inspector Window°« @ @9 @È @ÈI&   @ž @à0¬± &0­± &0®1!NSMutableDictionary1" NSDictionary&0¯±&%Matrix10°±% @'  @P @T  @P @TJ0±± &%0²±0³±&° &&&&&&JJ&&&&&&I’% @P @3@ ?ð ?ð0´±° ?*Àƒ ?*Àƒ ?*Àƒ ?*Àƒ ?€°´0µ±& % NSButtonCell0¶±0·±&%Radio0¸±0¹± &%GSRadio° &&&&&&JJ&&&&&&I’0º±0»± &%GSRadioSelected&&& &&%%0¼± &0½±0¾±&%None°¸° &&&&&&JJ&&&&&&I’°º&&& &&0¿±0À±&%Line°¸° &&&&&&JJ&&&&&&I’0Á±&0±&°º&&& &&0ñ0ı&%Bezel°¸° &&&&&&JJ&&&&&&I’0ű&°Â°º&&& &&0Ʊ0DZ&%Groove°¸° &&&&&&JJ&&&&&&I’0ȱ&°Â°º&&& &&²’’°Æ0ɱ&%Box2°{0ʱ&%Slider1°g0˱&%Slider0̱% @S€ @3 @TÀ @0  @TÀ @0J0ͱ &%0α° &&&&&&JJ&&&&&&I’ ?€ ¿€%0ϱ0б&° &&&&&&JJ &&&&&&I’0ѱ° ?€ ?€ ?€ ?€ ?€0Ò±° ?€0Ó±0Ô±&°r° &&&&&&JJ&&&&&&I%0Õ±& % ColorWell°–0Ö±&%Box4°B0×±&%Slider3°0ر& % TextField1°Š0Ù±&% NSOwner0Ú±&%GormBoxAttributesInspector0Û±&%Box1°c0ܱ& % TextField°t0ݱ&%Matrix°0Þ±&%Slider20ß±% @S€ @3 @TÀ @0  @TÀ @0J0à± &%0á±° &&&&&&JJ&&&&&&I’ ?€ ¿€%0â±0ã±&° &&&&&&JJ &&&&&&I’0ä±° ?€ ?€ ?€ ?€ ?€0å±° ?€0æ±0ç±&°r° &&&&&&JJ&&&&&&I%0è±&%Matrix2°F0é±&%Box3°’0ê±&%Button°œ0ë±& % InspectorWin°0ì±&%Box°0í±&%Form1°0î± &**0ï1#NSNibConnector°ë0ð±&% NSOwner0ñ±#°ì°ë0ò±#°¯°ë0ó1$NSNibOutletConnector°ð°ë0ô±&%window0õ±#°Ý°ë0ö±$°ð°Ý0÷±&%positionMatrix0ø±#°í°ë0ù±#°Ë°ë0ú±#°Þ°ë0û1%NSNibControlConnector°Ý°ð0ü±&%ok:0ý±%°¯°ð°ü0þ±$°ë°í0ÿ±&%initialFirstResponderP±$°í°ÝP±& % nextKeyViewP±#°ÖP±#°è°ðP±$°ð°èP± & % borderMatrixP±#°ÛP±#°Ê°ðP±#°Ü°ðP ±$°ð°ÊP ± &%horizontalSliderP ±#°ÉP ±#°×°ðP ±#°Ø°ðP±$°ð°×P± &%verticalSliderP±%°è°ðP± &%ok:P±%°Ê°ðÐP±%°×°ðÐP±#°éP±#°ÕP±#°êP±$°ð°ÕP± & % colorWellP±$°ð°êP±&%backgroundSwitchP±%°ê°ðP± &%ok:P±%°Õ°ðÐP±$°Ý°èP± & % nextKeyViewP ±$°è°ÊÐP!±$°Ê°×ÐP"±$°×°ÕÐP#±$°Õ°êÐP$±$°ê°íÐP%±$°í°ðP&± &%delegateP'±$°ð°íP(± & % titleFormP)±!&gorm-1.2.24/Palettes/2Controls/GormNSBoxInspector.gorm/data.classes0000644000000000000000000000046013410616261023650 0ustar rootroot{ "## Comment" = "Do NOT change this file, Gorm maintains it"; GormBoxAttributesInspector = { Actions = ( ); Outlets = ( borderMatrix, horizontalSlider, positionMatrix, titleForm, verticalSlider, colorWell, backgroundSwitch ); Super = IBInspector; }; }gorm-1.2.24/Palettes/2Controls/GormNSBoxInspector.gorm/data.info0000644000000000000000000000027013410616261023145 0ustar rootrootGNUstep archive000f4240:00000003:00000003:00000000:01GormFilePrefsManager1NSObject%01NSString&%Latest Version0±& % Typed Streamgorm-1.2.24/Palettes/2Controls/GormPopUpButtonEditor.m0000644000000000000000000000131613410616261021322 0ustar rootroot#include #include #include #include #include "GormNSPopUpButton.h" #define _EO ((NSPopUpButton *)_editedObject) @interface GormPopUpButtonEditor : GormControlEditor { } @end @implementation GormPopUpButtonEditor - (void) mouseDown: (NSEvent *)theEvent { // double-clicked -> let's edit if (([theEvent clickCount] == 2) && [parent isOpened]) { [[_EO cell] attachPopUpWithFrame: [_EO bounds] inView: _editedObject]; NSDebugLog(@"attach down"); [[document openEditorForObject: [[_EO cell] menu]] activate]; } else { [super mouseDown: theEvent]; } } @end gorm-1.2.24/Palettes/2Controls/GormNSProgressIndicatorInspector.gorm/0000755000000000000000000000000013410616261024271 5ustar rootrootgorm-1.2.24/Palettes/2Controls/GormNSProgressIndicatorInspector.gorm/objects.gorm0000644000000000000000000001124613410616261026614 0ustar rootrootGNUstep archive00002af9:0000001e:00000087:00000001:01GSNibContainer1NSObject01NSMutableDictionary1 NSDictionary& 01NSString& % Inspector01GSWindowTemplate1GSClassSwapper0±&%NSWindow1NSWindow1 NSResponder% ?€ A Cˆ CÂ&% Ap DB01 NSView% ?€ A Cˆ C  Cˆ CÂ&01 NSMutableArray1 NSArray&01 NSBox% AÐ Cu CR B¾  CR B¾&0 ± &0 ± % @à @à CD BŠ  CD BŠ&0 ± &0 1NSButton1 NSControl% B8 B BÖ A€  BÖ A€&0 ± &%01 NSButtonCell1 NSActionCell1NSCell0±& % Indeterminate01NSImage01NSMutableString&% common_SwitchOff01NSFont%&&&&&&&&%’0±&0±&0±0±&% common_SwitchOn&&&0±% B¢ AP B Aˆ  B Aˆ&0± &%0±0±&%Vertical°°&&&&&&&&%2 verticalSelected:v12@0:4@80±&0±&°&&&01NSTextFieldCell0±&%Options°&&&&&&&&0%’01NSColor0 ±&%NSNamedColorSpace0!±&%System0"±&%windowBackgroundColor0#±° 0$±&%System0%±& % textColor @  @ %%0&± % AÐ Bø CR Bâ  CR Bâ&0'± &0(± % @à @à CD B®  CD B®&0)± &0*1 NSTextField% BÔ B8 B” A   B” A &0+± &%0,±0-±&°&&&&&&&&0%’0.±° 0/±&%System00±&%textBackgroundColor01±° °/02±& % textColor’03±% ?€ B4 BÄ A   BÄ A &04± &%05±06±&%Minimum Value:07±% A@&&&&&&&&0%’08±° 09±&%System0:±&%textBackgroundColor0;±° °90<±& % textColor’0=±% BÔ A€ B” A   B” A &0>± &%0?±0@±&°&&&&&&&&0%’0A±° 0B±&%System0C±&%textBackgroundColor0D±° °B0E±& % textColor’0F±% Ap BÆ A   BÆ A &0G± &%0H±0I±&%Maximum Value:°7&&&&&&&&0%’0J±° 0K±&%System0L±&%textBackgroundColor0M±° °K0N±& % textColor’0O±0P±&%Range°&&&&&&&&0%’°0Q±° 0R±&%System0S±& % textColor @  @ %%°0T±&%Window0U±&%ProgressIndicator Attributes°U ?€ A  F@ F@%0V±0W±&%NSApplicationIcon&   D  D€0X±&%NSOwner0Y±&%GormProgressIndicatorInspector0Z±&% Box1°&0[±& %  TextField1°30\±& %  TextField2°=0]±& % TextField°*0^±& %  TextField3°F0_±&%GSCustomClassMap0`±&0a±&%Button° 0b±& % NSVisible0c± &0d±&%Box°0e±&% Button1°0f± &0g1NSNibConnector°d0h±°Z0i±°]0j±°[0k±°^0l±&%NSOwner0m±°a0n±°e0o1NSNibOutletConnector°l°]0p±&%minValue0q±°l°\0r±&%maxValue0s±°l°a0t±& % indeterminate0u±°l°e0v±&%vertical0w±°l°0x±&%window0y±°a°e0z±& %  nextKeyView0{±°e°]°z0|±°]°\°z0}±°\°a°z0~±°°a0±&% initialFirstResponder0€±°\°l0±&% delegate0‚1NSNibControlConnector°a°l0ƒ±&% ok:0„±°e°l°ƒ0…±°]°l0†±&% delegate0‡1 GSMutableSet1 NSMutableSet1NSSet&°gorm-1.2.24/Palettes/2Controls/GormNSProgressIndicatorInspector.gorm/data.classes0000644000000000000000000000071113410616261026560 0ustar rootroot{ "## Comment" = "Do NOT change this file, Gorm maintains it"; FirstResponder = { Actions = ( "indeterminateSelected:", "revert:", "orderFrontFontPanel:" ); Super = NSObject; }; GormProgressIndicatorInspector = { Actions = ( ); Outlets = ( vertical, maxValue, minValue, indeterminate ); Super = IBInspector; }; NSBox = { Actions = ( "revert:", "ok:" ); Super = NSView; }; }gorm-1.2.24/Palettes/2Controls/GormNSProgressIndicatorInspector.gorm/data.info0000644000000000000000000000027013410616261026056 0ustar rootrootGNUstep archive00002af9:00000003:00000003:00000000:01GormFilePrefsManager1NSObject% 01NSString&%Latest Version0±& % Typed Streamgorm-1.2.24/Palettes/2Controls/GormColorWellAttributesInspector.m0000644000000000000000000000610513410616261023555 0ustar rootroot/* GormColorWellAttributesInspector.m Copyright (C) 2001-2005 Free Software Foundation, Inc. Author: Adam Fedor Laurent Julliard Date: Aug 2001 Author: Gregory John Casamento Date: 2003,2004,2005 This file is part of GNUstep. This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 3 of the License, or (at your option) any later version. This program 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 General Public License for more details. You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02111 USA. */ /* July 2005 : Split inspector classes into separate files. Always use ok: revert: methods Clean up Author : Fabien Vallon */ #include "GormColorWellAttributesInspector.h" #include #include #include #include #include /* IBObjectAdditions category */ @implementation NSColorWell (IBObjectAdditions) - (NSString *) inspectorClassName { return @"GormColorWellAttributesInspector"; } @end @implementation GormColorWellAttributesInspector -(id) init { if ( ( self = [super init] ) == nil ) { return nil; } if ([NSBundle loadNibNamed: @"GormNSColorWellInspector" owner: self] == NO) { NSLog(@"Could not open gorm GormNSColorWellInspector"); return nil; } return self; } /* Commit changes that the user makes in the Attributes Inspector */ - (void) ok: (id) sender { if ( sender == initialColorWell ) { [object setColor: [initialColorWell color]]; } else if ( sender == disabledSwitch ) { [object setEnabled: ([disabledSwitch state] == NSOnState)?NO:YES]; // it's being enabled to show it's disabled! } else if ( sender == borderedSwitch ) { [object setBordered: [borderedSwitch state]]; } else if ( sender == tagField ) { [object setTag: [tagField intValue]]; } [super ok:sender]; } /* Sync from object ( NSColorWell ) changes to the inspector */ - (void) revert:(id) sender { if ( object == nil ) return; [disabledSwitch setState: ([object isEnabled])?NSOffState:NSOnState]; // On = NO and Off = YES, since we're tracking the Disabled state. [borderedSwitch setState: [object isBordered]]; [initialColorWell setColorWithoutAction: [object color]]; [tagField setIntValue: [object tag]]; [super revert:sender]; } /* delegate method for tag Field */ - (void)controlTextDidChange:(NSNotification *)aNotification { [self ok: [aNotification object]]; } @end gorm-1.2.24/Palettes/2Controls/GormMatrixAttributesInspector.h0000644000000000000000000000341413410616261023112 0ustar rootroot/* GormMatrixdAttributesInspector.h Copyright (C) 2001-2005 Free Software Foundation, Inc. Author: Adam Fedor Laurent Julliard Date: Aug 2001 This file is part of GNUstep. This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 3 of the License, or (at your option) any later version. This program 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 General Public License for more details. You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02111 USA. */ /* July 2005 : Spilt inspector in separate classes. Always use ok: revert: methods Clean up Author : Fabien Vallon */ #ifndef INCLUDED_GormMatrixAttributesInspector_h #define INCLUDED_GormMatrixAttributesInspector_h #include @class NSButton; @class NSColorWell; @class NSForm; @class NSMatrix; @class NSStepper; @interface GormMatrixAttributesInspector:IBInspector { NSButton *autosizeSwitch; NSButton *autotagSwitch; NSColorWell *backgroundColorWell; NSButton *drawsBackgroundSwitch; NSMatrix *modeMatrix; NSButton *propagateSwitch; NSMatrix *prototypeMatrix; NSButton *selRectSwitch; NSForm *tagForm; NSForm *dimensionsForm; NSStepper *rowsStepper; NSStepper *colsStepper; } @end #endif /* INCLUDED_GormMatrixAttributesInspector_h */ gorm-1.2.24/Palettes/2Controls/GormStepperAttributesInspector.h0000644000000000000000000000304413410616261023267 0ustar rootroot/* GormStepperAttributesInspector.h Copyright (C) 2001-2005 Free Software Foundation, Inc. Author: Adam Fedor Laurent Julliard Date: Aug 2001 This file is part of GNUstep. This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 3 of the License, or (at your option) any later version. This program 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 General Public License for more details. You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02111 USA. */ /* July 2005 : Spilt inspector in separate classes. Always use ok: revert: methods Clean up Author : Fabien Vallon */ #ifndef INCLUDED_GormStepperAttributesInspector_h #define INCLUDED_GormStepperAttributesInspector_h #include @class NSButton; @class NSTextField; @interface GormStepperAttributesInspector : IBInspector { NSTextField *valueField; NSTextField *minimumValueField; NSTextField *maximumValueField; NSTextField *incrementValueField; NSButton *autorepeatButton; NSButton *valueWrapsButton; } @end #endif gorm-1.2.24/Palettes/2Controls/GormMatrixAttributesInspector.m0000644000000000000000000001630413410616261023121 0ustar rootroot/* GormMatrixdAttributesInspector.m Copyright (C) 2001-2005 Free Software Foundation, Inc. Author: Adam Fedor Laurent Julliard Date: Aug 2001 This file is part of GNUstep. This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 3 of the License, or (at your option) any later version. This program 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 General Public License for more details. You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02111 USA. */ /* July 2005 : Split inspector classes into separate files. Always use ok: revert: methods Clean up Author : Fabien Vallon */ #include "GormMatrixAttributesInspector.h" #include #include #include #include #include #include @implementation NSMatrix (IBObjectAdditions) - (NSString*) inspectorClassName { return @"GormMatrixAttributesInspector"; } @end @implementation GormMatrixAttributesInspector NSUInteger rowsStepperValue; NSUInteger colsStepperValue; - (id) init { if ([super init] == nil) { return nil; } if ([NSBundle loadNibNamed: @"GormNSMatrixInspector" owner: self] == NO) { NSLog(@"Could not gorm GormMatrixInspector"); return nil; } /* It shouldn't break functionality of rows/columns number changing if someone will decide in the future to change the values of the corresponding steppers in the gorm file. So we stores those values from the gorm file in the auxillary variables to use its later in -[ok:]. (It allows us to avoid the values being hardcoded). */ rowsStepperValue = [rowsStepper intValue]; colsStepperValue = [colsStepper intValue]; return self; } /* Commit changes that the user makes in the Attributes Inspector */ - (void) ok: (id) sender { if (sender == autosizeSwitch) { [object setAutosizesCells: ([sender state] == NSOnState)]; } else if (sender == autotagSwitch) { NSInteger rows; NSInteger cols; int i; [object getNumberOfRows: &rows columns: &cols]; if ((rows == 1) && (cols > 1)) { for (i = 0; i < cols; i++) { [[object cellAtRow:0 column:i] setTag: i]; } } else if ((rows > 1) && (cols ==1)) { for (i = 0; i < rows; i++) { [[object cellAtRow:i column:0] setTag: i]; } } } else if (sender == backgroundColorWell) { [object setBackgroundColor: [sender color]]; } else if (sender == drawsBackgroundSwitch) { [object setDrawsBackground: ([sender state] == NSOnState)]; } else if (sender == modeMatrix) { [(NSMatrix *)object setMode: [[sender selectedCell] tag]]; } else if (sender == propagateSwitch) { //Nothing for the moment - must implement Prototype // item in the pull down menu } else if (sender == selRectSwitch) { [object setSelectionByRect: ([sender state] == NSOnState)]; } else if (sender == tagForm) { [object setTag: [[sender cellAtIndex: 0] intValue]]; } else if (sender == dimensionsForm) { int rows = [[sender cellAtIndex: 0] intValue]; int cols = [[sender cellAtIndex: 1] intValue]; int num; while((num = [object numberOfRows]) != rows) { if(num > rows) { [object removeRow: num - 1]; // remove last row } else { [object addRow]; } } while((num = [object numberOfColumns]) != cols) { if(num > cols) { [object removeColumn: num - 1]; // remove last column } else { [object addColumn]; } } // [object sizeToCells]; [object setNeedsDisplay: YES]; [[object superview] setNeedsDisplay: YES]; } else if(sender == rowsStepper) { int delta = [sender intValue] - rowsStepperValue; int num = [object numberOfRows]; NSRect rect = [object frame]; NSSize cell = [object cellSize]; NSSize inter = [object intercellSpacing]; while(delta > 0) { [object addRow]; delta--; num++; } while((delta < 0) && (num > 1)) { [object removeRow: num - 1]; num--; delta++; } cell.height = (rect.size.height + inter.height) / num - inter.height; [object setCellSize: cell]; [[dimensionsForm cellAtIndex: 0] setIntValue: num]; [sender setIntValue: rowsStepperValue]; [dimensionsForm setNeedsDisplay: YES]; [object setNeedsDisplay: YES]; } else if(sender == colsStepper) { int delta = [sender intValue] - colsStepperValue; int num = [object numberOfColumns]; NSRect rect = [object frame]; NSSize cell = [object cellSize]; NSSize inter = [object intercellSpacing]; while(delta > 0) { [object addColumn]; delta--; num++; } while((delta < 0) && (num > 1)) { [object removeColumn: num - 1]; num--; delta++; } cell.width = (rect.size.width + inter.width) / num - inter.width; [object setCellSize: cell]; [[dimensionsForm cellAtIndex: 1] setIntValue: num]; [sender setIntValue: colsStepperValue]; [dimensionsForm setNeedsDisplay: YES]; [object setNeedsDisplay: YES]; } /* * prototypeMatrix * If prototype cell is set show it else show a matrix cell */ if ([object prototype] == nil) { [prototypeMatrix putCell: [object cellAtRow:0 column:0] atRow:0 column:0]; } else { [prototypeMatrix putCell: [object prototype] atRow:0 column:0]; } [super ok:sender]; } /* Sync from object ( NSMatrix ) changes to the inspector */ - (void) revert:(id)sender { if (object == nil) return; [autosizeSwitch setState: ([object autosizesCells]) ? NSOnState : NSOffState]; { NSInteger rows; NSInteger cols; [object getNumberOfRows: &rows columns: &cols]; if ((rows == 1 && cols > 1) || (cols == 1 && rows > 1)) [autotagSwitch setEnabled: YES]; else [autotagSwitch setEnabled: NO]; } [backgroundColorWell setColorWithoutAction: [object backgroundColor]]; [drawsBackgroundSwitch setState: ([object drawsBackground]) ? NSOnState : NSOffState]; [modeMatrix selectCellWithTag: [(NSMatrix *)object mode]]; [selRectSwitch setState: ([object isSelectionByRect]) ? NSOnState : NSOffState]; [[tagForm cellAtIndex: 0] setIntValue: [object tag]]; [[dimensionsForm cellAtIndex: 0] setIntValue: [object numberOfRows]]; [[dimensionsForm cellAtIndex: 1] setIntValue: [object numberOfColumns]]; [super revert:sender]; } /* delegate method for tag Form */ -(void) controlTextDidChange:(NSNotification*) aNotification { [self ok:[aNotification object]]; } @end gorm-1.2.24/Palettes/2Controls/GormNSFormInspector.gorm/0000755000000000000000000000000013410616261021533 5ustar rootrootgorm-1.2.24/Palettes/2Controls/GormNSFormInspector.gorm/objects.gorm0000644000000000000000000003225513410616261024061 0ustar rootrootGNUstep archive000f4240:00000024:00000120:00000001:01GSNibContainer1NSObject01 NSMutableSet1NSSet&01GSWindowTemplate1GSClassSwapper01NSString&% NSWindow1NSWindow1 NSResponder% ?ð @" @q0 @yJI @‚ @ˆØ01 NSView% ?ð @" @q0 @y  @q0 @yJ01 NSMutableArray1 NSArray&01 NSForm1NSMatrix1 NSControl% @S @ @Z€ @4  @Z€ @4J 0± &%0 1 NSFormCell1 NSActionCell1NSCell0 ±&0 1NSFont% A@&&&&&&JJ&&&&&&I’ ¿€0 ±0 ±&%Field:° &&&&&&JJ&&&&&&% @Z€ @4 @01NSColor0±&% NSNamedColorSpace0±&% System0±&% controlBackgroundColor0±0±&% NSCalibratedRGBColorSpace ?*Àƒ ?*Àƒ ?*Àƒ ?*Àƒ ?€0±& % NSFormCell%%0± &0±0±&%0° &&&&&&JJ&&&&&&I’ AÈ0±0±&%Tag:° &&&&&&JJ&&&&&&2 ok:v24@0:8@16’’°01NSBox% @E€ @^À @W€ @M  @W€ @MJ0± &0± % @ @ @T @@€  @T @@€J0± &0±%  @T @9  @T @9J0± &%0 ±0!±&° &&&&&&JJ&&&&&&I’% @: @9 ?ð ?ð0"±° ?*Àƒ ?*Àƒ ?*Àƒ ?*Àƒ ?€°"0#±& % NSButtonCell0$1 NSButtonCell0%±&%|<-° &&&&&&JJ&&&&&&I’0&±&0'±&&&& &&%%0(± &0)±0*±&0+1NSImage0,±& % leftalign_nib° &&&&&&JJ&&&&&&I’0-±&°'&&& &&0.±0/±&00±01±&%centeralign_nib° &&&&&&JJ&&&&&&I’02±&°'&&& &&03±04±&05±06±&%rightalign_nib° &&&&&&JJ&&&&&&I’07±&°'&&& &&²’’°)081NSTextFieldCell09±&%Title° &&&&&&JJ &&&&&&I’0:±°°0;±&% windowBackgroundColor0<±° ?€ @ @%%0=±% @E€ @f  @gà @bÀ  @gà @bÀJ0>± &0?± % @ @ @f @_@  @f @_@J0@± &0A1NSButton% @$ @X @bÀ @0  @bÀ @0J0B± &%0C±0D±&%Cell tags = Positions0E±0F1NSMutableString&%GSSwitch0G±%°D&&&&&&JJ&&&&&&I’0H±&0I±&0J±0K±&%GSSwitchSelected&&& &&0L±% @< @RÀ @`€ @0  @`€ @0J0M± &%0N±0O±&%Editable°E°G&&&&&&JJ&&&&&&I’0P±&0Q±&°J&&& &&0R±% @< @K @`€ @0  @`€ @0J0S± &%0T±0U±& % Selectable°E°G&&&&&&JJ&&&&&&I’0V±&0W±&°J&&& &&0X±% @< @@€ @`€ @0  @`€ @0J0Y± &%0Z±0[±& % Scrollable°E°G&&&&&&JJ&&&&&&I’0\±&0]±&°J&&& &&0^±% @< @( @`€ @0  @`€ @0J0_± &%0`±0a±&%Autosize°E°G&&&&&&JJ&&&&&&I’0b±&0c±&°J&&& &&0d±0e±&%Options° &&&&&&JJ &&&&&&I’°:0f±° ?€ @ @%%0g±% @E€ @= @gà @V@  @gà @V@J0h± &0i± % @ @ @f @P  @f @PJ0j± &0k±% @7€ @ @a0 @0  @a0 @0J0l± &%0m±0n±&%Draws Background°E° &&&&&&JJ&&&&&&I²0o±&°'°J&&& &&0p1 NSColorWell% @I€ @7 @R€ @D€  @R€ @D€J0q± &%0r±0s±&° &&&&&&JJ&&&&&&0t±0u±&% NSCalibratedWhiteColorSpace ?€²0v±0w±&%Background Color° &&&&&&JJ &&&&&&I’°:0x±° ?€ @ @%%0y±% @a€ @^À @W€ @M  @W€ @MJ0z± &0{± % @ @ @T @@€  @T @@€J0|± &0}±%  @T @9  @T @9J0~± &%0±0€±&° &&&&&&JJ&&&&&&I’% @: @9 ?ð ?ð0±° ?*Àƒ ?*Àƒ ?*Àƒ ?*Àƒ ?€°0‚±& % NSButtonCell0ƒ±0„±&%Button° &&&&&&JJ&&&&&&I’&&& &&%%0…± &0†±0‡±&°+° &&&&&&JJ&&&&&&I’0ˆ±&0‰±&&&& &&0б0‹±&°0° &&&&&&JJ&&&&&&I’0Œ±&°‰&&& &&0±0ޱ&°5° &&&&&&JJ&&&&&&I’0±&°‰&&& &&²’’°†0±0‘±&%Text° &&&&&&JJ &&&&&&I’°:0’±° ?€ @ @%%0“±% @E @tà @gà @P@  @gà @P@J0”± &0•± % @ @ @f @D  @f @DJ0–± &0—± % @. @ @X @7  @X @7J0˜± &%0™±0š±&°G&&&&&&JJ&&&&&&I’ ¿€0›±0œ±&%Field:°G&&&&&&JJ&&&&&&% @X @7 @°°0±& % NSFormCell%%0ž± &0Ÿ±0 ±&°G° &&&&&&JJ&&&&&&I’ B(0¡±0¢±&%Number°G°¢&&&&&&JJ&&&&&&’’’°Ÿ0£1 NSStepper% @[À @ @0 @7  @0 @7J0¤± &%0¥1 NSStepperCell0¦±&%300§1NSNumber1NSValued @>&&&&&&JJ&&&&&&I’ @M€ ?ð%%0¨±0©±&%Number of fields°G°©&&&&&&JJ&&&&&& @ @%%°:0ª±&%Window0«±&%Form Attributes Inspector°« ?ð @1 @Ç @Ã|I&   @ž @’À0¬± &0­± &0®1 NSMutableDictionary1! NSDictionary&0¯±&%Box2°=0°±&%Button10±±% @$ @V€ @L @8  @L @8J0²± &%0³±0´±&%Button° &&&&&&JJ&&&&&&I’&&& &&0µ±& % ColorWell°p0¶±& % Inspector°0·±&%View(0)°•0¸±&%Button3°L0¹±& % FormCell(1)0º±0»±&°G°»&&&&&&JJ&&&&&&I’ BD0¼±0½±&%Cols°G°½&&&&&&JJ&&&&&&0¾±&%Form(0)°—0¿±&%Button5°X0À±&% NSOwner0Á±&%GormFormInspector0±&%Box1°y0ñ& % Stepper(0)°£0ı&%Form°0ű&%Matrix°0Ʊ&%Matrix2°}0DZ&%Box3°g0ȱ&%Button2°A0ɱ&%Button4°R0ʱ&%Button°k0˱&%Box°0̱&%Box(0)°“0ͱ& % FormCell(0)°Ÿ0α&%Button6°^0ϱ &330Ð1"NSNibConnector°¶0ѱ&% NSOwner0Ò±"°Ä°¶0Ó±"°Ë°¶0Ô±"°¯°¶0Õ±"°Ç°¶0Ö±"°Ê°¶0×±"°µ°¶0ر"°°°¶0Ù±"°Å°¶0Ú±"°Â°¶0Û1#NSNibOutletConnector°Ñ°µ0ܱ&%backgroundColorWell0ݱ#°Ñ°Ê0Þ±&%drawsBackgroundSwitch0ß±#°Ñ°Å0à±& % titleMatrix0á±#°Ñ°¶0â±&%window0ã±"°Æ°¶0ä±#°Ñ°Æ0å±& % textMatrix0æ1$NSNibControlConnector°µ°Ñ0ç±&%ok:0è±$°Ê°Ñ°ç0é±$°Å°Ñ°ç0ê±$°Æ°Ñ°ç0ë±#°Ñ°Ä0ì±&%tagForm0í±#°Å°Æ0î±& % nextKeyView0ï±#°Æ°µ°î0ð±#°µ°Ê°î0ñ±#°Ê°Ä°î0ò±#°Ä°Ñ0ó±&%delegate0ô±"°È0õ±"°¸0ö±"°É0÷±"°¿0ø±"°Î0ù±$°Î°Ñ0ú±&%ok:0û±#°Ñ°Î0ü±&%autosizeSwitch0ý±$°¸°Ñ0þ±&%ok:0ÿ±$°¿°Ñ°þP±$°É°Ñ°þP±$°È°Ñ°þP±#°Ñ°ÈP±&%cellPositionSwitchP±#°Ñ°¸P±&%editableSwitchP±#°Ñ°ÉP±&%selectableSwitchP±#°Ñ°¿P ±&%scrollableSwitchP ±"°ÌP ±"°·°ÌP ±"°¾°·P ±"°Í°¾P±"°¹°¾P±"°Ã°·P±$°Ã°ÑP±&%ok:P±#°¾°ÑP±&%delegateP±#°Ñ°ÃP±& % numberStepperP±#°Ñ°¾P±&%dimensionsFormP± &gorm-1.2.24/Palettes/2Controls/GormNSFormInspector.gorm/data.classes0000644000000000000000000000063513410616261024027 0ustar rootroot{ "## Comment" = "Do NOT change this file, Gorm maintains it"; GormFormInspector = { Actions = ( ); Outlets = ( backgroundColorWell, drawsBackgroundSwitch, tagForm, textMatrix, titleMatrix, cellPositionSwitch, editableSwitch, scrollableSwitch, selectableSwitch, autosizeSwitch, dimensionsForm, numberStepper ); Super = IBInspector; }; }gorm-1.2.24/Palettes/2Controls/GormNSFormInspector.gorm/data.info0000644000000000000000000000027013410616261023320 0ustar rootrootGNUstep archive000f4240:00000003:00000003:00000000:01GormFilePrefsManager1NSObject%01NSString&%Latest Version0±& % Typed Streamgorm-1.2.24/Palettes/2Controls/GormCellAttributesInspector.h0000644000000000000000000000277613410616261022537 0ustar rootroot/* GormCellAttributesInspector.h Copyright (C) 2001-2005 Free Software Foundation, Inc. Author: Adam Fedor Laurent Julliard Date: Aug 2001 Author: Gregory John Casamento Date: 2003,2004,2005 This file is part of GNUstep. This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 3 of the License, or (at your option) any later version. This program 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 General Public License for more details. You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02111 USA. */ /* July 2005 : Spilt inspector in separate classes. Always use ok: revert: methods Clean up Author : Fabien Vallon */ #ifndef INCLUDED_GormCellAttributesInspector_h #define INCLUDED_GormCellAttributesInspector_h #include @class NSButton; @class NSForm; @interface GormCellAttributesInspector: IBInspector { NSButton *disabledSwitch; NSForm *tagForm; } @end #endif /* INCLUDED_GormCellAttributesInspector_h */ gorm-1.2.24/Palettes/2Controls/GormPopUpButtonAttributesInspector.m0000644000000000000000000001021113410616261024103 0ustar rootroot/* GormPopUpButtonAttributesInspector.m Copyright (C) 2001-2005 Free Software Foundation, Inc. Author: Adam Fedor Laurent Julliard Date: Aug 2001 This file is part of GNUstep. This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 3 of the License, or (at your option) any later version. This program 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 General Public License for more details. You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02111 USA. */ /* July 2005 : Split inspector classes into separate files. Always use ok: revert: methods Clean up Author : Fabien Vallon */ #include "GormPopUpButtonAttributesInspector.h" #include #include #include #include #include #include /* IBObjectAdditions category */ @implementation NSPopUpButton (IBObjectAdditions) - (NSString*) inspectorClassName { return @"GormPopUpButtonAttributesInspector"; } @end @implementation GormPopUpButtonAttributesInspector - (id) init { if ([super init] == nil) return nil; if ([NSBundle loadNibNamed: @"GormNSPopUpButtonInspector" owner: self] == NO) { NSLog(@"Could not gorm GormPopUpButtonInspector"); return nil; } return self; } /* Commit changes that the user makes in the Attributes Inspector */ - (void) ok: (id) sender { if (sender == typeMatrix) { BOOL pullsDown = [[sender selectedCell] tag]; id selectedItem; [object setPullsDown: pullsDown]; selectedItem = [object selectedItem]; [object selectItem: nil]; [object selectItem: selectedItem]; [pullDownTitleForm setEnabled: pullsDown]; [[pullDownTitleForm cellAtIndex: 0] setStringValue: pullsDown ? [object title] : @""]; [pullDownArrowPopUp setEnabled: pullsDown]; } else if (sender == autoenableSwitch) { [object setAutoenablesItems: ([sender state] == NSOnState)]; } else if (sender == enableSwitch) { [object setEnabled: ([sender state] == NSOnState)]; } else if (sender == tagForm) { [object setTag: [[sender cellAtIndex: 0] intValue]]; } else if (sender == defaultItemForm) { int index = [[sender cellAtIndex: 0] intValue]; int num = [object numberOfItems]; // if the user enters more than the number, select the last item. index = (index < num && index >= 0) ? index : num; [object selectItemAtIndex: index]; } else if (sender == pullDownTitleForm) { [object setTitle: [[sender cellAtIndex: 0] stringValue]]; } else if (sender == pullDownArrowPopUp) { [object setPreferredEdge: [[sender selectedItem] tag]]; } [super ok: sender]; } /* Sync from object ( NSPopUpButton ) changes to the inspector */ - (void) revert: (id)sender { BOOL pullsDown; if ( object == nil) return; pullsDown = [object pullsDown]; [typeMatrix selectCellWithTag: pullsDown]; [autoenableSwitch setState: [object autoenablesItems]]; [enableSwitch setState: [object isEnabled]]; [[tagForm cellAtRow: 0 column: 0] setIntValue: [object tag]]; [[defaultItemForm cellAtRow: 0 column: 0] setIntValue: [object indexOfSelectedItem]]; [pullDownTitleForm setEnabled: pullsDown]; [[pullDownTitleForm cellAtIndex: 0] setStringValue: pullsDown ? [object title] : @""]; [pullDownArrowPopUp setEnabled: pullsDown]; [pullDownArrowPopUp selectItemWithTag: [object preferredEdge]]; [super revert:sender]; } /* delegate method for tagForm and defaultItemForm */ -(void) controlTextDidChange:(NSNotification*) aNotification { [self ok:[aNotification object]]; } @end gorm-1.2.24/Palettes/2Controls/GormBoxAttributesInspector.m0000644000000000000000000001120013410616261022373 0ustar rootroot/* GormBoxAttributesInspector.m Copyright (C) 2001-2005 Free Software Foundation, Inc. Author: Adam Fedor Laurent Julliard Date: Aug 2001 Author: Gregory John Casamento Date: 2003, 2004, 2005 This file is part of GNUstep. This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 3 of the License, or (at your option) any later version. This program 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 General Public License for more details. You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02111 USA. */ /* July 2005 : Split inspector classes into separate files. Always use ok: revert: methods Clean up Author : Fabien Vallon */ #include "GormBoxAttributesInspector.h" #include #include #include #include #include #include #include #include #include /* This macro makes sure that the string contains a value, even if @"" */ #define VSTR(str) ({id _str = (id)str; (_str) ? (id)_str : (id)(@"");}) /* IBObjectAdditions category */ @implementation NSBox (IBObjectAdditions) - (NSString*) inspectorClassName { return @"GormBoxAttributesInspector"; } @end @implementation GormBoxAttributesInspector - (id) init { if ([super init] == nil) return nil; if ([NSBundle loadNibNamed: @"GormNSBoxInspector" owner: self] == NO) { NSLog(@"Could not load GormBoxInspector"); return nil; } return self; } /* Commit changes that the user makes in the Attributes Inspector */ - (void) ok: (id) sender { /* Position */ if (sender == positionMatrix) { [object setTitlePosition: [[sender selectedCell] tag]]; } /* border type */ else if (sender == borderMatrix) { [object setBorderType: [[sender selectedCell] tag]]; } /* title */ else if (sender == titleForm) { [object setTitle: [[sender cellAtIndex: 0] stringValue]]; } /* content view margins */ else if (sender == horizontalSlider) { [object setContentViewMargins: NSMakeSize((float)[sender intValue], (float)[verticalSlider intValue])]; } else if (sender == verticalSlider) { [object setContentViewMargins: NSMakeSize((float)[horizontalSlider intValue], (float)[sender intValue])]; } /* title cell : background color, only useful for older NSBox instances */ else if(sender == colorWell) { NSTextFieldCell *titleCell = (NSTextFieldCell *)[object titleCell]; if([titleCell isKindOfClass: [NSTextFieldCell class]]) { [titleCell setBackgroundColor: [colorWell color]]; [object display]; } } /* only useful for older NSBox instances */ else if(sender == backgroundSwitch) { NSTextFieldCell *titleCell = (NSTextFieldCell *)[object titleCell]; if([titleCell isKindOfClass: [NSTextFieldCell class]]) { BOOL state = ([backgroundSwitch state] == NSOnState)?YES:NO; [titleCell setDrawsBackground: state]; } } [super ok:sender]; } /* Sync from object ( NSBox ) changes to the inspector */ - (void) revert: (id) sender { NSTextFieldCell *titleCell; if ( object == nil ) return; /* Position */ [positionMatrix selectCellWithTag: [object titlePosition]]; /* Border Type */ [borderMatrix selectCellWithTag: [object borderType]]; /* title */ [[titleForm cellAtIndex: 0] setStringValue: VSTR([object title])]; /* content view margins */ [horizontalSlider setIntValue: (int)[object contentViewMargins].width]; [verticalSlider setIntValue: (int)[object contentViewMargins].height]; /* title cell: background color */ titleCell = (NSTextFieldCell *)[object titleCell]; if([titleCell isKindOfClass: [NSTextFieldCell class]]) { [colorWell setColorWithoutAction: [titleCell backgroundColor]]; [backgroundSwitch setState: ([titleCell drawsBackground]? NSOnState:NSOffState)]; } [super revert:sender]; } /* delegate method for titleForm */ - (void)controlTextDidChange:(NSNotification *)aNotification { [self ok:[aNotification object]]; } @end gorm-1.2.24/Palettes/2Controls/GormCellAttributesInspector.m0000644000000000000000000000504313410616261022532 0ustar rootroot/* GormCellAttributesInspector.m Copyright (C) 2001-2005 Free Software Foundation, Inc. Author: Adam Fedor Laurent Julliard Date: Aug 2001 Author: Gregory John Casamento Date: 2003,2004,2005 This file is part of GNUstep. This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 3 of the License, or (at your option) any later version. This program 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 General Public License for more details. You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02111 USA. */ /* July 2005 : Split inspector classes into separate files. Always use ok: revert: methods Clean up Author : Fabien Vallon */ #include "GormCellAttributesInspector.h" #include #include #include #include #include /* IBObjectAdditions category */ @implementation NSCell (IBObjectAdditions) - (NSString*) inspectorClassName { return @"GormCellAttributesInspector"; } @end @implementation GormCellAttributesInspector - (id) init { if ([super init] == nil) { return nil; } if ([NSBundle loadNibNamed: @"GormNSCellInspector" owner: self] == NO) { NSLog(@"Could not gorm GormCellInspector"); return nil; } return self; } /* Commit changes that the user makes in the Attributes Inspector */ - (void) ok:(id) sender { if (sender == disabledSwitch) { [object setEnabled: [disabledSwitch state]]; } else if (sender == tagForm) { [object setTag: [[sender cellAtIndex: 0] intValue]]; } [super ok: sender]; } /* Sync from object ( NSCell ) changes to the inspector */ - (void) revert:(id) sender { if ( object == nil) return; [disabledSwitch setState: [object isEnabled]]; [[tagForm cellAtRow: 0 column: 0] setIntValue: [object tag]]; [super revert:sender]; } /* delegate method for tagForm */ - (void)controlTextDidChange:(NSNotification *)aNotification { [self ok:[aNotification object]]; } @end gorm-1.2.24/Palettes/2Controls/ControlsPalette.m0000644000000000000000000000716413410616261020220 0ustar rootroot/** main.m Copyright (C) 2004 Free Software Foundation, Inc. Author: Gregory John Casamento Date: 2004 This file is part of GNUstep. This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 3 of the License, or (at your option) any later version. This program 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 General Public License for more details. You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02111 USA. */ #include #include #include #include #include #include #include #include "GormNSPopUpButton.h" @interface ControlsPalette: IBPalette @end @implementation ControlsPalette - (id) init { if((self = [super init]) != nil) { // Make ourselves a delegate, so that when the sound/image is dragged in, // this code is called... [NSView registerViewResourceDraggingDelegate: self]; } return self; } - (void) dealloc { [NSView unregisterViewResourceDraggingDelegate: self]; [super dealloc]; } - (void) finishInstantiate { NSView *contents; id v; contents = [originalWindow contentView]; [contents setFrame: NSMakeRect(0, 0, 272, 192)]; v = [[GormNSPopUpButton alloc] initWithFrame: NSMakeRect(118, 139, 87, 22)]; [v addItemWithTitle: @"Item 1"]; [v addItemWithTitle: @"Item 2"]; [v addItemWithTitle: @"Item 3"]; [contents addSubview: v]; RELEASE(v); } /** * Ask if the view accepts the object. */ - (BOOL) acceptsViewResourceFromPasteboard: (NSPasteboard *)pb forObject: (id)obj atPoint: (NSPoint)p { NSArray *types = [pb types]; return (([obj respondsToSelector: @selector(setSound:)] || [obj respondsToSelector: @selector(setImage:)]) && ([types containsObject: GormImagePboardType] || [types containsObject: GormSoundPboardType])); } /** * Perform the action of depositing the object. */ - (void) depositViewResourceFromPasteboard: (NSPasteboard *)pb onObject: (id)obj atPoint: (NSPoint)p { NSArray *types = [pb types]; if ([types containsObject: GormImagePboardType] == YES) { NSString *name = [pb stringForType: GormImagePboardType]; if([(id)obj respondsToSelector: @selector(setImage:)]) { NSImage *image = [NSImage imageNamed: name]; [(id)obj setImage: AUTORELEASE([image copy])]; } } else if ([types containsObject: GormSoundPboardType] == YES) { NSString *name; name = [pb stringForType: GormSoundPboardType]; if([(id)obj respondsToSelector: @selector(setSound:)]) { NSSound *sound = [NSSound soundNamed: name]; [(id)obj setSound: AUTORELEASE([sound copy])]; } } } /** * Should we draw the connection frame when the resource is * dragged in? */ - (BOOL) shouldDrawConnectionFrame { return NO; } /** * Types of resources accepted by this view. */ - (NSArray *)viewResourcePasteboardTypes { return [NSArray arrayWithObjects: GormImagePboardType, GormSoundPboardType, nil]; } @end gorm-1.2.24/Palettes/2Controls/GormNSPopUpButton.m0000644000000000000000000000554313410616261020422 0ustar rootroot#include #include "GormNSPopUpButton.h" Class _gormnspopupbuttonCellClass = 0; @implementation GormNSPopUpButton /* * Class methods */ + (void) initialize { if (self == [GormNSPopUpButton class]) { // Initial version [self setVersion: 1]; [self setCellClass: [GormNSPopUpButtonCell class]]; } } + (Class) cellClass { return _gormnspopupbuttonCellClass; } + (void) setCellClass: (Class)classId { _gormnspopupbuttonCellClass = classId; } - (NSString*) editorClassName { return @"GormPopUpButtonEditor"; } - (NSString *) className { return @"NSPopUpButton"; } @end @implementation NSPopUpButtonCell (DirtyHack) - (id) _gormInitTextCell: (NSString *) string { return [super initTextCell: string]; } @end @implementation GormNSPopUpButtonCell /* Overriden helper method */ - (void) _initMenu { NSMenu *menu = [[NSMenu allocSubstitute] initWithTitle: @""]; [self setMenu: menu]; RELEASE(menu); } - (NSString *) className { return @"NSPopUpButtonCell"; } /** * Override this here, since themes may override it. * Always want to show the menu view since it's editable. */ - (void) attachPopUpWithFrame: (NSRect)cellFrame inView: (NSView *)controlView { NSRectEdge preferredEdge = _pbcFlags.preferredEdge; NSNotificationCenter *nc = [NSNotificationCenter defaultCenter]; NSWindow *cvWin = [controlView window]; NSMenuView *mr = [[self menu] menuRepresentation]; int selectedItem; [nc postNotificationName: NSPopUpButtonCellWillPopUpNotification object: self]; [nc postNotificationName: NSPopUpButtonWillPopUpNotification object: controlView]; // Convert to Screen Coordinates cellFrame = [controlView convertRect: cellFrame toView: nil]; cellFrame.origin = [cvWin convertBaseToScreen: cellFrame.origin]; if (_pbcFlags.pullsDown) selectedItem = -1; else { selectedItem = [self indexOfSelectedItem]; if (selectedItem == -1) // Test selectedItem = 0; } if (selectedItem > 0) { [mr setHighlightedItemIndex: selectedItem]; } if ([controlView isFlipped]) { if (preferredEdge == NSMinYEdge) { preferredEdge = NSMaxYEdge; } else if (preferredEdge == NSMaxYEdge) { preferredEdge = NSMinYEdge; } } // Ask the MenuView to attach the menu to this rect [mr setWindowFrameForAttachingToRect: cellFrame onScreen: [cvWin screen] preferredEdge: preferredEdge popUpSelectedItem: selectedItem]; // Set to be above the main window [cvWin addChildWindow: [mr window] ordered: NSWindowAbove]; // Last, display the window [[mr window] orderFrontRegardless]; [nc addObserver: self selector: @selector(_handleNotification:) name: NSMenuDidSendActionNotification object: _menu]; } @end gorm-1.2.24/Palettes/2Controls/GormNSTextFieldInspector.gorm/0000755000000000000000000000000013410616261022520 5ustar rootrootgorm-1.2.24/Palettes/2Controls/GormNSTextFieldInspector.gorm/objects.gorm0000644000000000000000000003532713410616261025051 0ustar rootrootGNUstep archive000f4240:00000020:0000014b:00000001:01GSNibContainer1NSObject01 NSMutableSet1NSSet&01GSWindowTemplate1GSClassSwapper01NSString&% NSWindow1NSWindow1 NSResponder% ?ð ?ð @q @x@J I @† @ˆø01 NSView% ?ð ?ð @q @x@  @q @x@J01 NSMutableArray1 NSArray&01 NSBox% @0 @X @nÀ @V  @nÀ @VJ"0± &0 ± % @ @ @m @O€  @m @O€J0 ± &0 1NSButton1 NSControl% @S@ @E€ @Q @0  @Q @0J0 ± &%0 1 NSButtonCell1 NSActionCell1NSCell0±&%Editable01NSImage01NSMutableString&%GSSwitch01NSFont%&&&&&&JJ&&&&&&I’0±&0±&0±0±&%GSSwitchSelected&&& &&0±% @M€ @6 @U€ @0  @U€ @0J0± &%0±0±& % Selectable°°&&&&&&JJ&&&&&&I’0±&0±&°&&& &&0±% @M€ ?ð @U€ @0  @U€ @0J0± &%0±0±& % Scrollable°°&&&&&&JJ&&&&&&I’0 ±&0!±&°&&& &&0"1NSTextFieldCell0#±&%Options0$±% A@&&&&&&JJ &&&&&&I’0%1NSColor0&±&% NSNamedColorSpace0'±&% System0(±&% windowBackgroundColor0)±0*±&% NSCalibratedRGBColorSpace ?€ @ @%%0+± % @0 @g @nÀ @M  @nÀ @MJ"0,± &0-± % @ @ @m @@€  @m @@€J0.± &0/1NSMatrix% @K€ @ @_@ @9  @_@ @9J00± &%01±02±&°$&&&&&&JJ&&&&&&I’% @9 @9 Áà03±°* ?*Àƒ ?*Àƒ ?*Àƒ ?*Àƒ ?€°304±& % NSButtonCell05±06±&%L°$&&&&&&JJ&&&&&&I’07±&&&& &&%%08± &09±0:±&0;±0<±& % leftalign_nib°$&&&&&&JJ&&&&&&I’0=±&°7&&& &&0>±0?±&0@±0A±&%centeralign_nib°$&&&&&&JJ&&&&&&I’0B±&°7&&& &&0C±0D±&0E±0F±&%rightalign_nib°$&&&&&&JJ&&&&&&I’0G±&°7&&& &&0H±0I±&0J±0K±&%justifyalign_nib°$&&&&&&JJ&&&&&&I’0L±&°7&&& &&0M±0N±&%N0O±0P±&%naturalalign_nib°$&&&&&&JJ&&&&&&I’0Q±&°7&&& &&2 ok:v24@0:8@16’’°H0R±0S±& % Alignment°$&&&&&&JJ &&&&&&I’°%0T±°* ?€ @ @%%0U1NSForm% @QÀ @ @] @4  @] @4J 0V± &%0W1 NSFormCell0X±&°$&&&&&&JJ&&&&&&I’ ¿€0Y±0Z±&%Field:°$&&&&&&JJ&&&&&&% @] @4 @0[±°&°'0\±&% controlBackgroundColor0]±°* ?*Àƒ ?*Àƒ ?*Àƒ ?*Àƒ ?€0^±& % NSFormCell%%0_± &0`±0a±&°$&&&&&&JJ&&&&&&I’ AÈ0b±0c±&%Tag:°$&&&&&&JJ&&&&&&²’’°`0d± % @\À @s @b` @R€  @b` @R€J 0e± &0f± % @ @ @`  @H€  @`  @H€J0g± &0h1 NSColorWell% @E @1 @J€ @?  @J€ @?J0i± &%0j±0k±&°$&&&&&&JJ&&&&&&0l±0m±&% NSCalibratedWhiteColorSpace ?€²0n±% À* À @b@ @0  @b@ @0J0o± &%0p±0q±&%Draws Background°°$&&&&&&JJ&&&&&&I²0r±&0s±&°&&& &&0t±0u±&%Background color°$&&&&&&JJ &&&&&&I’°%0v±°* ?€ @ @%%0w± % @0 @s @U€ @R€  @U€ @R€J 0x± &0y± % @ @ @R @H€  @R @H€J0z± &0{±% @$ @* @J€ @?  @J€ @?J0|± &%0}±0~±&°$&&&&&&JJ&&&&&&0±°m ?€²0€±0±& % Text Color°$&&&&&&JJ &&&&&&I’°%0‚±°* ?€ @ @%%0ƒ± % @0 @nà @nÀ @L€  @nÀ @L€J*0„± &0…± % @ @ @m @@  @m @@J0†± &0‡±% @S€ @ @RÀ @9  @RÀ @9J0ˆ± &%0‰±0б&°$&&&&&&JJ&&&&&&I’% @9 @9 Áà0‹±°* ?*Àƒ ?*Àƒ ?*Àƒ ?*Àƒ ?€°‹0Œ±& % NSButtonCell0±0ޱ&%Button°$&&&&&&JJ&&&&&&I’&&& &&%%0± &0±0‘±&0’±0“±& % noBorder_nib°$&&&&&&JJ&&&&&&I’0”±&0•±&&&& &&0–±0—±&0˜±0™±&%line_nib°$&&&&&&JJ&&&&&&I’0š±&°•&&& &&0›±0œ±&0±0ž±& % bezel_nib°$&&&&&&JJ&&&&&&I’0Ÿ±&°•&&& &&²’’°›0 ±0¡±&%Border°$&&&&&&JJ &&&&&&I’°%0¢±°* ?€ @ @%%0£± % @0 @< @nÀ @Q  @nÀ @QJ0¤± &0¥± % @ @ @m @E€  @m @E€J0¦± &0§±% @Q @ @[ @B€  @[ @B€J0¨± &%0©±0ª±&°&&&&&&JJ&&&&&&I’% @[ @2 ?ð ?ð0«±& % NSButtonCell0¬±0­±&%Radio0®±0¯±&%GSRadio&&&&&&JJ&&&&&&I’0°±&0±±0²±&%GSRadioSelected&&& &&%%0³± &0´±0µ±& % Enter Only°®&&&&&&JJ&&&&&&I’0¶±&°±&&& &&0·±0¸±& % End Editing°®&&&&&&JJ&&&&&&I’0¹±&°±&&& &&’’’°´0º±0»±&%Send Action On°°»&&&&&&JJ&&&&&& @ @%%°%0¼±&%Window0½±&%TextField Attributes Inspector°½ @ @9 @È @ÈI&   @ž @à0¾± &0¿± &0À1NSMutableDictionary1 NSDictionary&0Á±& % ColorWell5°{0±&%Matrix1°/0ñ&%Box2°d0ı&%Button10ű% @$ @V€ @L @8  @L @8J0Ʊ &%0DZ0ȱ&%Button°$&&&&&&JJ&&&&&&I’&&& &&0ɱ& % ColorWell°h0ʱ& % Inspector°0˱&%Box4°ƒ0̱&%View(0)°¥0ͱ& % Matrix(0)°§0α&%Button3° 0ϱ& % ColorWell20б% @S€ @E @J€ @>  @J€ @>J0ѱ &%0Ò±0Ó±&°$&&&&&&JJ&&&&&&0Ô±°m ?€’0Õ±&% NSOwner0Ö±&%GormTextFieldInspector0×±&%Button5°0ر& % ColorWell40Ù±% @S€ @E @J€ @>  @J€ @>J0Ú± &%0Û±0ܱ&°$&&&&&&JJ&&&&&&0ݱ°m ?€’0Þ±&%Box1°+0ß±&%Form°U0à±&%Matrix2°‡0á±&%Box3°w0â±&%Button2°n0ã±& % ButtonCell(0)°´0ä±&%Button4°0å±&%Button0æ±% @$ @V€ @L @8  @L @8J0ç± &%0è±0é±&%Button°$&&&&&&JJ&&&&&&I’&&& &&0ê±&%Box°0ë±& % ColorWell30ì±% @S€ @E @J€ @>  @J€ @>J0í± &%0î±0ï±&°$&&&&&&JJ&&&&&&0ð±°m ?€’0ñ±&%Box(0)°£0ò±& % ButtonCell(1)°·0ó± &::0ô1NSNibConnector°Ê0õ±&% NSOwner0ö1NSNibOutletConnector°õ°Ê0÷±&%window0ø±°ê°Ê0ù±°Þ°Ê0ú±°å°Ê0û±°Ä°Ê0ü±°Â°Ê0ý±°õ°Â0þ±& % alignMatrix0ÿ±°ß°ÊP±°õ°ßP±&%tagFormP±°Ã°ÊP±°É°ÊP±°â°ÊP±°á°ÊP±°Ï°ÊP±°ë°ÊP±°Ø°ÊP ±°Á°ÊP ±°Ë°ÊP ±°à°ÊP ±°õ°ÉP ±&%backgroundColorP±°õ°ÁP±& % textColorP±°õ°âP±&%drawsBackgroundP±°õ°àP±& % borderMatrixP1 NSNibControlConnector°É°õP±&%ok:P± °â°õÐP± °Á°õÐP± °Â°õÐP± °à°õÐP± °ß°õP±&%ok:P±°É°âP±& % nextKeyViewP±°â°ÁÐP±°Á°ÂÐP ±°Â°àÐP!±°ß°ÉÐP"±°Ê°ÉP#±&%initialFirstResponderP$±°ß°õP%±&%delegateP&±°ÎP'±°äP(±°×P)±°õ°ÎP*±&%editableSwitchP+±°õ°×P,±&%scrollableSwitchP-± °Î°õP.±&%ok:P/± °ä°õÐ.P0± °×°õÐ.P1±°à°ÎP2±& % nextKeyViewP3±°Î°äÐ2P4±°ä°×Ð2P5±°õ°äP6±&%selectableSwitchP7±°ñP8±°Ì°ñP9±°Í°ÌP:±°ã°ÍP;±°ò°ÍP<±°õ°ÍP=±&%sendActionMatrixP>± °Í°õP?±&%ok:P@±°×°ÍPA±& % nextKeyViewPB±°Í°ßÐAPC±&gorm-1.2.24/Palettes/2Controls/GormNSTextFieldInspector.gorm/data.classes0000644000000000000000000000055213410616261025012 0ustar rootroot{ "## Comment" = "Do NOT change this file, Gorm maintains it"; GormTextFieldInspector = { Actions = ( ); Outlets = ( alignMatrix, backgroundColor, borderMatrix, drawsBackground, tagForm, textColor, editableSwitch, scrollableSwitch, selectableSwitch, sendActionMatrix ); Super = IBInspector; }; }gorm-1.2.24/Palettes/2Controls/GormNSTextFieldInspector.gorm/data.info0000644000000000000000000000027013410616261024305 0ustar rootrootGNUstep archive000f4240:00000003:00000003:00000000:01GormFilePrefsManager1NSObject%01NSString&%Latest Version0±& % Typed Streamgorm-1.2.24/Palettes/2Controls/GormProgressIndicatorAttributesInspector.m0000644000000000000000000000566313410616261025324 0ustar rootroot/* GormProgressIndicatorAttributesInspector.m Copyright (C) 2001-2005 Free Software Foundation, Inc. Author: Adam Fedor Laurent Julliard Date: Aug 2001 This file is part of GNUstep. This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 3 of the License, or (at your option) any later version. This program 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 General Public License for more details. You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02111 USA. */ /* July 2005 : Split inspector classes into separate files. Always use ok: revert: methods Clean up Author : Fabien Vallon */ #include "GormProgressIndicatorAttributesInspector.h" #include #include #include #include #include /* IBObjectAdditions category */ @implementation NSProgressIndicator (IBObjectAdditions) - (NSString *) inspectorClassName { return @"GormProgressIndicatorAttributesInspector"; } @end @implementation GormProgressIndicatorAttributesInspector -(id) init { if ( ( self = [super init] ) == nil) return nil; if ( [NSBundle loadNibNamed: @"GormNSProgressIndicatorInspector" owner: self] == NO ) { NSLog(@"Could not open gorm GormNSProgressIndicatorInspector"); return nil; } return self; } /* Commit changes that the user makes in the Attributes Inspector */ -(void) ok: (id) sender { if ( sender == indeterminate ) { [object setIndeterminate: ([indeterminate state] == NSOnState)]; } else if (sender == vertical ) { [object setVertical: ([vertical state] == NSOnState)]; } else if ( sender == minValue ) { [object setMinValue: [minValue doubleValue]]; } else if ( sender == maxValue ) { [object setMaxValue: [maxValue doubleValue]]; } [super ok: sender]; } /* Sync from object (ProgressIndicator ) changes to the inspector */ - (void) revert:(id) sender { if ( object == nil ) return; [indeterminate setState: [object isIndeterminate]?NSOnState:NSOffState]; [vertical setState: [object isVertical] ? NSOnState:NSOffState]; [minValue setIntValue: [object minValue]]; [maxValue setIntValue: [object maxValue]]; [super revert:sender]; } /* delegate method for titleForm */ - (void)controlTextDidChange:(NSNotification *)aNotification { [self ok: [aNotification object]]; } @end gorm-1.2.24/Palettes/2Controls/GormPopUpButtonAttributesInspector.h0000644000000000000000000000321413410616261024103 0ustar rootroot/* GormPopUpButtonAttributesInspector.h Copyright (C) 2001-2005 Free Software Foundation, Inc. Author: Adam Fedor Laurent Julliard Date: Aug 2001 This file is part of GNUstep. This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 3 of the License, or (at your option) any later version. This program 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 General Public License for more details. You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02111 USA. */ /* July 2005 : Spilt inspector in separate classes. Always use ok: revert: methods Clean up Author : Fabien Vallon */ #ifndef INCLUDED_GormPopUpButtonAttributesInspector_h #define INCLUDED_GormPopUpButtonAttributesInspector_h #include @class NSButton; @class NSForm; @class NSMatrix; @class NSPopUpButton; @interface GormPopUpButtonAttributesInspector:IBInspector { NSMatrix *typeMatrix; NSButton *autoenableSwitch; NSButton *enableSwitch; NSForm *tagForm; NSForm *defaultItemForm; NSForm *pullDownTitleForm; NSPopUpButton *pullDownArrowPopUp; } @end #endif /* INCLUDED_GormPopUpButtonAttributesInspector_h */ gorm-1.2.24/Palettes/2Controls/GormNSSliderInspector.gorm/0000755000000000000000000000000013410616261022052 5ustar rootrootgorm-1.2.24/Palettes/2Controls/GormNSSliderInspector.gorm/objects.gorm0000644000000000000000000002153313410616261024375 0ustar rootrootGNUstep archive000f4240:0000001f:000000bd:00000001:01GSNibContainer1NSObject01 NSMutableSet1NSSet&01GSWindowTemplate1GSClassSwapper01NSString&% NSWindow1NSWindow1 NSResponder% ?ð ?ð @q @x@J I @k@ @„01 NSView% ?ð ?ð @q @x@  @q @x@J01 NSMutableArray1 NSArray&01 NSBox% @D @m  @h @b   @h @b J0± &0 ± % @ @ @f` @^  @f` @^J0 ± &0 1NSForm1NSMatrix1 NSControl% @: @e @W@  @e @W@J0 ± &%0 1 NSFormCell1 NSActionCell1NSCell0±&01NSFont% A@&&&&&&JJ&&&&&&I’ ¿€0±0±&%Field:°&&&&&&JJ&&&&&&% @e @5 @01NSColor0±&% NSNamedColorSpace0±&% System0±&% controlBackgroundColor0±0±&% NSCalibratedRGBColorSpace ?*Àƒ ?*Àƒ ?*Àƒ ?*Àƒ ?€0±& % NSFormCell%%0± &0±0±&°&&&&&&JJ&&&&&&I’ B²0±0±&%Minimum:°&&&&&&JJ&&&&&&0±0±&°&&&&&&JJ&&&&&&I’ B²0 ±0!±&%Current:°&&&&&&JJ&&&&&&0"±0#±&°&&&&&&JJ&&&&&&I’ B²0$±0%±&%Maximum:°&&&&&&JJ&&&&&&0&±0'±&0(±%°'&&&&&&JJ&&&&&&I’ B²0)±0*±&%Number of Ticks:°(°*&&&&&&JJ&&&&&&2 ok:v24@0:8@16’’°&0+1NSButton% @7 @ @`` @0  @`` @0J%0,± &%0-1 NSButtonCell0.±&%Stop on ticks only0/1NSImage001NSMutableString&%GSSwitch°(°.&&&&&&JJ&&&&&&I’01±&02±&03±04±&%GSSwitchSelected&&& &&051NSTextFieldCell06±&%Values°&&&&&&JJ &&&&&&I’07±°°08±&% windowBackgroundColor09±° ?€ @ @%%0:±% @P @P @c` @4  @c` @4J0;± &%0<±0=±&°&&&&&&JJ&&&&&&I’ ¿€0>±0?±&%Field:°&&&&&&JJ&&&&&&% @c` @4 @°0@±° ?*Àƒ ?*Àƒ ?*Àƒ ?*Àƒ ?€0A±& % NSFormCell%%0B± &0C±0D±&°&&&&&&JJ&&&&&&I’ BŒ0E±0F±&%Alt Increment:°&&&&&&JJ&&&&&&²’’°C0G± % @D @[@ @h @]À  @h @]ÀJ0H± &0I± % @ @ @f` @W€  @f` @W€J0J± &0K±% @< @J @X@ @0  @X@ @0J0L± &%0M±0N±& % Continuous°/°(°N&&&&&&JJ&&&&&&I’0O±&0P±&°3&&& &&0Q±% @F @> @T@ @0  @T@ @0J 0R± &%0S±0T±&%Enabled°/°(&&&&&&JJ&&&&&&I’0U±&0V±&°3&&& &&0W±0X±&%Options°&&&&&&JJ &&&&&&I’°70Y±° ?€ @ @%%0Z±% @I€ @C€ @e @4  @e @4J0[± &%0\±0]±&°&&&&&&JJ&&&&&&I’ ¿€0^±0_±&%Field:°&&&&&&JJ&&&&&&% @e @4 @°0`±° ?*Àƒ ?*Àƒ ?*Àƒ ?*Àƒ ?€0a±& % NSFormCell%%0b± &0c±0d±&°&&&&&&JJ&&&&&&I’ B¬0e±0f±&%Knob Thickness:°&&&&&&JJ&&&&&&²’’°c0g±% @U@ @$ @Z @4  @Z @4J0h± &%0i±0j±&°&&&&&&JJ&&&&&&I’ ¿€0k±0l±&%Field:°&&&&&&JJ&&&&&&% @Z @4 @°0m±° ?*Àƒ ?*Àƒ ?*Àƒ ?*Àƒ ?€0n±& % NSFormCell%%0o± &0p±0q±&°&&&&&&JJ&&&&&&I’ AÈ0r±0s±&%Tag:°&&&&&&JJ&&&&&&²’’°p°70t±&%Window0u±&%Slider Attributes Inspector°u @ @9 @È @ÈI&   @ž @à0v± &0w± &0x1NSMutableDictionary1 NSDictionary& 0y±&%Box°0z±& % Button(0)°+0{±&%Form3°g0|±&%Button1°Q0}±&%Form2°Z0~±&%Button°K0±&% NSOwner0€±&%GormSliderInspector0±& % Inspector°0‚±&%Box1°G0ƒ±&%Form1° 0„±&%Form°:0…± &  0†1NSNibConnector°0‡±&% NSOwner0ˆ±°y°0‰±°„°0б°ƒ°0‹1NSNibOutletConnector°‡°„0Œ±&%altIncrementForm0±°‚°0ޱ°}°0±°{°0±°‡°0‘±&%window0’±°‡°}0“±&%knobThicknessForm0”±°‡°{0•±&%tagForm0–±°„°}0—±& % nextKeyView0˜±°}°{°—0™±°{°ƒ°—0š±°°ƒ0›±&%initialFirstResponder0œ±°„°‡0±&%delegate0ž±°}°‡°0Ÿ±°{°‡°0 ±°ƒ°‡°0¡±°‡°ƒ0¢±& % valuesForm0£±°~0¤±°|0¥±°‡°~0¦±&%continuousSwitch0§±°‡°|0¨±& % enabledSwitch0©1NSNibControlConnector°~°‡0ª±&%ok:0«±°|°‡°ª0¬±°ƒ°~0­±& % nextKeyView0®±°~°|°­0¯±°|°„°­0°±°z0±±°z°‡0²±&%ok:0³±°‡°z0´±&%stopOnTicksSwitch0µ±&gorm-1.2.24/Palettes/2Controls/GormNSSliderInspector.gorm/data.classes0000644000000000000000000000045713410616261024350 0ustar rootroot{ "## Comment" = "Do NOT change this file, Gorm maintains it"; GormSliderInspector = { Actions = ( ); Outlets = ( altIncrementForm, knobThicknessForm, tagForm, valuesForm, continuousSwitch, enabledSwitch, stopOnTicksSwitch ); Super = IBInspector; }; }gorm-1.2.24/Palettes/2Controls/GormNSSliderInspector.gorm/data.info0000644000000000000000000000027013410616261023637 0ustar rootrootGNUstep archive000f4240:00000003:00000003:00000000:01GormFilePrefsManager1NSObject%01NSString&%Latest Version0±& % Typed Streamgorm-1.2.24/Palettes/2Controls/GormNSCellInspector.gorm/0000755000000000000000000000000013410616261021507 5ustar rootrootgorm-1.2.24/Palettes/2Controls/GormNSCellInspector.gorm/objects.gorm0000644000000000000000000001043213410616261024026 0ustar rootrootGNUstep archive000f4240:0000001e:0000005a:00000001:01GSNibContainer1NSObject01 NSMutableSet1NSSet&01GSWindowTemplate1GSClassSwapper01NSString&% NSWindow1NSWindow1 NSResponder% ?ð ?ð @q @x@JI @{Ð @ˆˆ01 NSView% ?ð ?ð @q @x@  @q @x@J01 NSMutableArray1 NSArray&01 NSForm1NSMatrix1 NSControl% @T@ @fà @[€ @6  @[€ @6J0± &%0 1 NSFormCell1 NSActionCell1NSCell0 ±&0 1NSFont% A@&&&&&&JJ&&&&&&I’ ¿€0 ±0 ±&%Field:° &&&&&&JJ&&&&&&% @[€ @6 @01NSColor0±&% NSNamedColorSpace0±&% System0±&% controlBackgroundColor0±0±&% NSCalibratedRGBColorSpace ?*Àƒ ?*Àƒ ?*Àƒ ?*Àƒ ?€0±& % NSFormCell%%0± &0±0±&° &&&&&&JJ&&&&&&I’ AÈ0±0±&%Tag:° &&&&&&JJ&&&&&&2 ok:v24@0:8@16’’°01NSBox% @Q@ @l @`à @N€  @`à @N€J0± &0± % @ @ @^@ @B  @^@ @BJ0± &01NSButton% @2 @$ @S@ @0  @S@ @0J0± &%0 1 NSButtonCell0!±&%Disabled0"1NSImage0#1NSMutableString&%GSSwitch° &&&&&&JJ&&&&&&I’0$±&0%±0&±&%GSSwitchSelected&&& &&0'±0(±&%Options0)±%&&&&&&JJ&&&&&& @ @%%0*±°°0+±&% windowBackgroundColor0,±&%Window0-±&%Cell Attributes Inspector°- @ @9 @È @ÈI&   @ž @à0.± &0/± &001NSMutableDictionary1 NSDictionary&01±&%Button2°02±&%Button03±% @$ @N @L @0  @L @0J04± &%05±06±&%Switch°"° &&&&&&JJ&&&&&&I’°%&&& &&07±&%Button108±% @$ @N @L @0  @L @0J09± &%0:±0;±&%Switch°"° &&&&&&JJ&&&&&&I’°%&&& &&0<±&% NSOwner0=±&%GormCellInspector0>±& % Inspector°0?±&%Box1°0@±&%Form°0A± &0B1NSNibConnector°>0C±&% NSOwner0D±°2°>0E±°7°>0F±°@°>0G1NSNibOutletConnector°C°@0H±&%tagForm0I±°C°>0J±&%window0K±°?0L±°1°C0M1NSNibControlConnector°1°C0N±&%ok:0O±°C°10P±&%disabledSwitch0Q±°1°@0R±& % nextKeyView0S±°@°1°R0T±°@°C0U±&%delegate0V±°>°10W±&%initialFirstResponder0X±&gorm-1.2.24/Palettes/2Controls/GormNSCellInspector.gorm/data.classes0000644000000000000000000000027713410616261024005 0ustar rootroot{ "## Comment" = "Do NOT change this file, Gorm maintains it"; GormCellInspector = { Actions = ( ); Outlets = ( disabledSwitch, tagForm ); Super = IBInspector; }; }gorm-1.2.24/Palettes/2Controls/GormNSCellInspector.gorm/data.info0000644000000000000000000000027013410616261023274 0ustar rootrootGNUstep archive000f4240:00000003:00000003:00000000:01GormFilePrefsManager1NSObject%01NSString&%Latest Version0±& % Typed Streamgorm-1.2.24/Palettes/2Controls/GormButtonEditor.h0000644000000000000000000000216313410616261020332 0ustar rootroot/* GormButtonEditor.h - Editor for buttons. * * Copyright (C) 2002 Free Software Foundation, Inc. * * Author: Pierre-Yves Rivaille * Date: Aug 2002 * * This file is part of GNUstep. * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 3 of the License, or * (at your option) any later version. * * This program 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 General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02111 USA. */ #ifndef INCLUDED_GormButtonEditor_h #define INCLUDED_GormButtonEditor_h #include @class NSTextView; @interface GormButtonEditor : GormControlEditor { NSTextView *tempTextView; } @end #endif gorm-1.2.24/Palettes/2Controls/GNUmakefile0000644000000000000000000000425713410616261016772 0ustar rootroot# GNUmakefile # # Copyright (C) 1999 Free Software Foundation, Inc. # # Author: Richard Frith-Macdonald # Date: 1999 # # This file is part of GNUstep. # # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 2 of the License, or # (at your option) any later version. # # This program 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 General Public License for more details. # # You should have received a copy of the GNU General Public License # along with this program; if not, write to the Free Software # Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. PACKAGE_NAME = gorm include $(GNUSTEP_MAKEFILES)/common.make PALETTE_NAME = 2Controls 2Controls_PALETTE_ICON = ControlsPalette 2Controls_OBJC_FILES = \ GormButtonAttributesInspector.m \ GormBoxAttributesInspector.m \ GormCellAttributesInspector.m \ GormColorWellAttributesInspector.m \ GormFormAttributesInspector.m \ GormPopUpButtonAttributesInspector.m \ GormSliderAttributesInspector.m \ GormStepperAttributesInspector.m \ GormProgressIndicatorAttributesInspector.m \ GormTextFieldAttributesInspector.m \ GormMatrixAttributesInspector.m \ ControlsPalette.m \ GormPopUpButtonEditor.m \ GormNSPopUpButton.m \ GormButtonEditor.m \ inspectors.m 2Controls_PRINCIPAL_CLASS = ControlsPalette 2Controls_RESOURCE_FILES = ControlsPalette.tiff \ GormNSBoxInspector.gorm \ GormNSButtonInspector.gorm \ GormNSCellInspector.gorm \ GormNSFormInspector.gorm \ GormNSMatrixInspector.gorm \ GormNSPopUpButtonInspector.gorm \ GormNSSliderInspector.gorm \ GormNSStepperInspector.gorm \ GormNSTextFieldInspector.gorm \ GormNSColorWellInspector.gorm \ GormNSProgressIndicatorInspector.gorm \ ControlsPalette.gorm \ palette.table 2Controls_STANDARD_INSTALL = no -include GNUmakefile.preamble -include GNUmakefile.local include $(GNUSTEP_MAKEFILES)/palette.make -include GNUmakefile.postamble gorm-1.2.24/Palettes/2Controls/GormButtonAttributesInspector.h0000644000000000000000000000334213410616261023121 0ustar rootroot/* GormButtonAttributesInspector.h Copyright (C) 2001-2005 Free Software Foundation, Inc. Author: Adam Fedor Laurent Julliard Date: Aug 2001 This file is part of GNUstep. This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 3 of the License, or (at your option) any later version. This program 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 General Public License for more details. You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02111 USA. */ /* July 2005 : Spilt inspector in separate classes. Always use ok: revert: methods Clean up Author : Fabien Vallon */ #ifndef INCLUDED_GormButtonAttributesInspector_h #define INCLUDED_GormButtonAttributesInspector_h #include @class NSForm; @class NSMatrix; @class NSPopUpButton; @class NSButton; @interface GormButtonAttributesInspector: IBInspector { NSMatrix *alignMatrix; NSMatrix *iconMatrix; NSForm *keyForm; NSMatrix *optionMatrix; NSForm *tagForm; NSForm *titleForm; NSPopUpButton *typeButton; NSPopUpButton *bezelButton; NSPopUpButton *keyEquiv; NSButton *altMod; NSButton *shiftMod; NSButton *ctrlMod; NSButton *cmdMod; } @end #endif /* INCLUDED_GormButtonAttributesInspector_h */ gorm-1.2.24/Palettes/2Controls/GormNSButtonInspector.gorm/0000755000000000000000000000000013410616261022103 5ustar rootrootgorm-1.2.24/Palettes/2Controls/GormNSButtonInspector.gorm/objects.gorm0000644000000000000000000005376113410616261024436 0ustar rootrootGNUstep archive000f4240:00000024:00000214:00000001:01GSNibContainer1NSObject01 NSMutableSet1NSSet&01GSWindowTemplate1GSClassSwapper01NSString&% NSWindow1NSWindow1 NSResponder% ?ð ?ð @q @x@JI @zÀ @‹01 NSView% ?ð ?ð @q @x@  @q @x@J01 NSMutableArray1 NSArray&  01 NSForm1NSMatrix1 NSControl% @ @r @pP @V@  @pP @V@J0± &%0 1 NSFormCell1 NSActionCell1NSCell0 ±&0 1NSFont% A@&&&&&&JJ&&&&&&I’ ¿€0 ±0 ±&%Field:° &&&&&&JJ&&&&&&% @pP @4 @01NSColor0±&% NSNamedColorSpace0±&% System0±&% controlBackgroundColor0±0±&% NSCalibratedRGBColorSpace ?*Àƒ ?*Àƒ ?*Àƒ ?*Àƒ ?€0±& % NSFormCell%%0± &0±0±&° &&&&&&JJ&&&&&&I’ B,0±0±&%Title:° &&&&&&JJ&&&&&&0±0±&° &&&&&&JJ&&&&&&I’ B,0±0±& % Alt Title:° &&&&&&JJ&&&&&&0±0±&° &&&&&&JJ&&&&&&I’ B,0 ±0!±&%Icon:° &&&&&&JJ&&&&&&0"±0#±&° &&&&&&JJ&&&&&&I’ B,0$±0%±& % Alt Icon:° &&&&&&JJ&&&&&&2 ok:v24@0:8@16’’°"0&± % @$ @$ @[@ @6  @[@ @6J0'± &%0(±0)±&° &&&&&&JJ&&&&&&I’ ¿€0*±0+±&%Field:° &&&&&&JJ&&&&&&% @[@ @6 @°0,±° ?*Àƒ ?*Àƒ ?*Àƒ ?*Àƒ ?€0-±& % NSFormCell%%0.± &0/±00±&° °0&&&&&&JJ&&&&&&I’ AÈ01±02±&%Tag:° °2&&&&&&JJ&&&&&&²’’°/03± % @@€ @p` @Z€ @6  @Z€ @6J04± &%05±06±&° &&&&&&JJ&&&&&&I’ ¿€07±08±&%Field:° &&&&&&JJ&&&&&&% @Z€ @6 @°09±° ?*Àƒ ?*Àƒ ?*Àƒ ?*Àƒ ?€0:±& % NSFormCell%%0;± &0<±0=±&° &&&&&&JJ&&&&&&I’ A¸0>±0?±&%Key:° &&&&&&JJ&&&&&&²’’°<0@1NSBox% @ @j` @e€ @I€  @e€ @I€J0A± &0B± % @ @ @cÀ @:  @cÀ @:J0C± &0D1 NSPopUpButton1NSButton%  @cÀ @9  @cÀ @9J0E± &%0F1NSPopUpButtonCell1NSMenuItemCell1 NSButtonCell0G±&%Button° &&&&&&JJ0H1NSMenu0I±&0J± &0K1 NSMenuItem0L±&%Momentary Push0M±&JJÿI0N1NSImage0O±& %  common_Nibble’I0P±0Q±& % Push On/Off°MJJÿI’I0R±0S±&%Toggle°MJJÿI’I0T±0U±&%Momentary Change0V±&JJÿI’I0W±0X±&%On/Off0Y±&JJÿI’I0Z±0[±&%Momentary Light0\±&JJÿI’I&&&&&&I²&&& &&°H°K%%%%%0]1NSTextFieldCell0^±&%Type° &&&&&&JJ&&&&&&I’0_±°°0`±&% windowBackgroundColor0a±° ?€ @ @%%0b±% @ @B€ @`à @_  @`à @_J0c± &0d± % @ @ @^@ @XÀ  @^@ @XÀJ0e± &0f±% @$ ¿ð @WÀ @XÀ  @WÀ @XÀJ0g± &%0h±0i±&° &&&&&&JJ&&&&&&I’% @WÀ @3 ?ð ?ð°0j±° ?*Àƒ ?*Àƒ ?*Àƒ ?*Àƒ ?€0k±& % NSButtonCell0l±0m±&%Switch0n±0o1NSMutableString&%GSSwitch° &&&&&&JJ&&&&&&I’0p±0q±&%GSSwitchSelected&&& &&%%0r± &0s±0t±&%Bordered°n° &&&&&&JJ&&&&&&I’°p&&& &&0u±0v±& % Continuous°n° &&&&&&JJ&&&&&&I’°p&&& &&0w±0x±&%Enabled°n° &&&&&&JJ&&&&&&I’°p&&& &&0y±0z±&%Selected°n° &&&&&&JJ&&&&&&I’°p&&& &&0{±0|±& % Transparent°n° &&&&&&JJ&&&&&&I’°p&&& &&²’’°s0}±0~±&%Options° &&&&&&JJ&&&&&&I’°_0±° ?€ @ @%%0€±% @b` @Z€ @]À @K€  @]À @K€J0± &0‚± % @ @ @Z@ @>  @Z@ @>J0ƒ± &0„±% @, @ @RÀ @9  @RÀ @9J0…± &%0†±0‡±&° &&&&&&JJ&&&&&&I’% @9 @9 Áà0ˆ±° ?*Àƒ ?*Àƒ ?*Àƒ ?*Àƒ ?€°ˆ0‰±& % NSButtonCell0б0‹±&%L° &&&&&&JJ&&&&&&I’&&& &&%%0Œ± &0±0ޱ&0±0±& % leftalign_nib° &&&&&&JJ&&&&&&I’0‘±&0’±&&&& &&0“±0”±&0•±0–±&%centeralign_nib° &&&&&&JJ&&&&&&I’0—±&°’&&& &&0˜±0™±&0š±0›±&%rightalign_nib° &&&&&&JJ&&&&&&I’0œ±&°’&&& &&²’’°0±0ž±& % Alignment° &&&&&&JJ&&&&&&I’°_0Ÿ±° ?€ @ @%%0 ±% @b` @$ @]À @VÀ  @]À @VÀJ0¡± &0¢± % @ @ @Z@ @P€  @Z@ @P€J0£± &0¤±% @0 @ @S@ @K€  @S@ @K€J0¥± &%0¦±°‡° &&&&&&JJ&&&&&&I’% @9ªªªªª« @;€ °ˆ°ˆ0§±& % NSButtonCell0¨±0©±&%B° &&&&&&JJ&&&&&&I’&&& &&%%0ª± &0«±0¬±&0­±0®±& % iconAbove_nib° &&&&&&JJ&&&&&&I’0¯±&°’&&& &&0°±0±±&0²±0³±& % iconBelow_nib° &&&&&&JJ&&&&&&I’0´±&°’&&& &&0µ±0¶±&0·±0¸±& % iconOnly_nib° &&&&&&JJ&&&&&&I’0¹±&°’&&& &&0º±0»±&0¼±0½±& % iconLeft_nib° &&&&&&JJ&&&&&&I’0¾±&0¿±&&&& &&0À±0Á±&%R0±0ñ& % iconRight_nib° &&&&&&JJ&&&&&&I’0ı&°’&&& &&0ű0Ʊ&0DZ0ȱ& % titleOnly_nib° &&&&&&JJ&&&&&&I’0ɱ&°’&&& &&²’’°«0ʱ0˱&%Icon° °Ë&&&&&&JJ&&&&&&I’°_0̱° ?€ @ @%%0ͱ% @b @p` @]€ @6  @]€ @6J0α &%0ϱ0б&%Button° &&&&&&JJ0ѱ0Ò±&0Ó± &  0Ô±0Õ±&%0Ö±&JJÿI°N’I0×±0ر&%Return°ÖJJÿI’I0Ù±0Ú±&%Delete°ÖJJÿI’I0Û±0ܱ&%Escape0ݱ&JJÿI’I0Þ±0ß±&%Tab0à±&JJÿI’I0á±0â±&%Up Arrow0ã±&JJÿI’I0ä±0å±& % Down Arrow0æ±&JJÿI’I0ç±0è±& % Left Arrow0é±&JJÿI’I0ê±0ë±& % Right Arrow0ì±&JJÿI’I&&&&&&I’0í±&0î±&&&& &&°Ñ°Ô%%%%%0ï±% @g @d  @T€ @Y@  @T€ @Y@J0ð± &0ñ± % @ @ @Q @S  @Q @SJ0ò± &0ó±% @& @L @L€ @0  @L€ @0J0ô± &%0õ±0ö±&%Alt°n0÷±%°ö&&&&&&JJ&&&&&&I’0ø±&0ù±&°p&&& &&0ú±% @D @Q @0  @Q @0J0û± &%0ü±0ý±&%Control°n°÷°ý&&&&&&JJ&&&&&&I’0þ±&0ÿ±&°p&&& &&P±% @ @8 @O€ @0  @O€ @0JP± &%P±P±&%Shift°n°÷Ð&&&&&&JJ&&&&&&I’P±&P±&°p&&& &&P±% @  @Q @0  @Q @0JP± &%P±P ±&%Cmd°n°÷Ð &&&&&&JJ&&&&&&I’P ±&P ±&°p&&& &&P ±P ±&%Modifier°÷Ð &&&&&&JJ&&&&&& @ @%%P±% @ @d  @e€ @I  @e€ @IJP± &P± % @ @ @cÀ @9  @cÀ @9JP± &P±%  @cÀ @8  @cÀ @8JP± &%P±P±&°÷&&&&&&JJP±P±&P± &P±P±&%DefaultP±&JJÿI’IP±P±&%RoundedÐJJÿI°N’IP±P±&%Regular SquareÐJJÿI’IP ±P!±& % Thick SquareÐJJÿI’IP"±P#±&%Thicker SquareP$±&JJÿI’IP%±P&±& % DisclosureP'±&JJÿI’IP(±P)±&%Shadowless SquareP*±&JJÿI’IP+±P,±&%CircularP-±&JJÿI’IP.±P/±&%TexturedP0±&JJÿI’IP1±P2±& % Help ButtonP3±&JJÿI’I P4±P5±& % Small SquareP6±&JJÿI’I P7±P8±&%Textured RoundP9±&JJÿI’I P:±P;±& % Round RectP<±&JJÿI’I P=±P>±&%RecessedP?±&JJÿI’I P@±PA±&%NeXTPB±&JJÿI’IPC±PD±& % Push ButtonPE±&JJÿI’IPF±PG±& % Small IconPH±&JJÿI’IPI±PJ±& % Medium IconPK±&JJÿI’IPL±PM±& % Large IconPN±&JJÿI’I&&&&&&I’PO±&PP±&&&& >ÌÌÍ =™™š&&ÐÐÐ%%%%%PQ±PR±&%Bezel°÷ÐR&&&&&&JJ&&&&&& @ @%%°_PS±&%WindowPT±&%NSButton Attributes InspectorÐT @ @9 @È @ÈI&   @ž @àPU± &PV± &PW1 NSMutableDictionary1! NSDictionary&9PX±& % Button(0)°óPY±& % MenuItem(10)Ð+PZ±& % MenuItem(15)Ð:P[±& % MenuItem5°KP\±& % MenuItem(21)ÐLP]±&%Box(0)°ïP^±&%Box°@P_±&%Form1°&P`±& % MenuItem(6)Ð Pa±&%Form°Pb±&%Matrix2°¤Pc±& % MenuItem(1)°çPd±&%Box2°€Pe±& % Button(3)ÐPf±& % MenuItem(18)ÐCPg±& % MenuItem2°ÙPh±& % MenuItem7°RPi±& % MenuItem(13)Ð4Pj±&%View(1)ÐPk±& % MenuItem(4)ÐPl±& % MenuItem(9)Ð(Pm±& % Inspector°Pn±& % Button(1)°úPo±& % MenuItem4°ÞPp±& % MenuItem(11)Ð.Pq±& % MenuItem9°ZPr±& % MenuItem(22)ÐPs±& % MenuItem(16)Ð=Pt±&%GormNSPopUpButton°ÍPu±&%Box(1)ÐPv±& % MenuItem(2)°áPw±& % MenuItem(7)Ð"Px±&%Matrix1°„Py±&%Box1°bPz±& % PopUpButton°DP{±& % MenuItem(20)ÐIP|±& % MenuItem(14)Ð7P}±& % MenuItem1°×P~±& % MenuItem(19)ÐFP±& % MenuItem6°PP€±&%MenuItem°ÔP±&%Form2°3P‚±&%Matrix°fPƒ±& % MenuItem(0)°äP„±& % MenuItem(5)ÐP…±&%Box3° P†±& % Button(2)ÐP‡±&% NSOwnerPˆ±&%GormButtonInspectorP‰±& % MenuItem10°WPб& % MenuItem8°TP‹±& % MenuItem3°ÛPŒ±& % MenuItem(17)Ð@P±& % MenuItem(12)Ð1Pޱ&%PopUpButton(0)ÐP±&%View(0)°ñP±& % MenuItem(3)°êP‘±& % MenuItem(8)Ð%P’± &]]P“1"NSNibConnectorÐmP”±&% NSOwnerP•±"ÐaÐmP–±"Ð_ÐmP—±"ÐÐmP˜±"Ð^ÐmP™±"ÐyÐmPš±"ЂÐmP›±"ÐdÐmPœ±"Ð…ÐmP±"ÐxÐmPž±"ÐbÐmPŸ1#NSNibOutletConnectorДÐaP ±& % titleFormP¡±#ДЂP¢±& % optionMatrixP£±#ДÐbP¤±& % iconMatrixP¥±#ДÐxP¦±& % alignMatrixP§±#ДÐmP¨±&%windowP©±"ÐzÐmPª±#ДÐzP«±& % typeButtonP¬1$NSNibControlConnectorÐzДP­±&%ok:P®±$ÐxДЭP¯±$ÐbДЭP°±$ЂДЭP±±$ÐaДP²±&%ok:P³±"ÐtP´±"ЀPµ±"Ð}P¶±"ÐgP·±"ЋP¸±"ÐoP¹±#ДÐtPº±&%keyEquivP»±#ÐaÐP¼±& % nextKeyViewP½±#ÐtÐzмP¾±#ÐzÐxмP¿±#ÐxЂмPÀ±#ЂÐbмPÁ±#ÐbÐ_мP±#ÐÐtмPñ#Ð_ÐaмPı#ÐaДPű&%delegatePƱ#ÐmÐaPDZ&%initialFirstResponderPȱ#ДÐPɱ&%keyFormPʱ#ДÐ_P˱&%tagFormP̱#Ð_ДPͱ&%delegatePα#ÐДÐÍPϱ"Ð[Pб"ÐPѱ"ÐhPÒ±"ЊPÓ±"ЉPÔ±"ÐqPÕ±"ЃPÖ±"ÐcP×±"ÐvPر"ÐPÙ±$ÐtДPÚ±&%ok:PÛ±"ÐXÐ]Pܱ"ÐnÐ]Pݱ"ІÐ]PÞ±"ÐeÐ]Pß±"Ð]Pà±"ÐÐ]Pá±#ДÐXPâ±&%altModPã±#ДÐnPä±&%ctrlModPå±#ДІPæ±&%shiftModPç±$ÐXДPè±&%ok:Pé±$ÐnДÐèPê±$ІДÐèPë±$ÐeДÐèPì±#ДÐePí±&%cmdModPî±"ÐuPï±"ÐjÐuPð±"ÐŽÐjPñ±"ÐkPò±"ЄPó±"Ð`Pô±"ÐwPõ±"БPö±"ÐlP÷±"ÐYPø±"ÐpPù±"ÐPú±"ÐiPû±"Ð|Pü±"ÐZPý±"ÐsPþ±"ÐŒPÿ±"ÐfP±"Ð~P±"Ð{P±"Ð\P±#ДЎP±& % bezelButtonP±"ÐrP±$ЎДP±&%ok:P± &gorm-1.2.24/Palettes/2Controls/GormNSButtonInspector.gorm/data.classes0000644000000000000000000000055113410616261024374 0ustar rootroot{ "## Comment" = "Do NOT change this file, Gorm maintains it"; GormButtonInspector = { Actions = ( ); Outlets = ( alignMatrix, iconMatrix, keyForm, optionMatrix, tagForm, titleForm, typeButton, keyEquiv, altMod, ctrlMod, shiftMod, cmdMod, bezelButton ); Super = IBInspector; }; }gorm-1.2.24/Palettes/2Controls/GormNSButtonInspector.gorm/data.info0000644000000000000000000000027013410616261023670 0ustar rootrootGNUstep archive000f4240:00000003:00000003:00000000:01GormFilePrefsManager1NSObject%01NSString&%Latest Version0±& % Typed Streamgorm-1.2.24/Palettes/2Controls/GormNSPopUpButtonInspector.gorm/0000755000000000000000000000000013410616261023067 5ustar rootrootgorm-1.2.24/Palettes/2Controls/GormNSPopUpButtonInspector.gorm/objects.gorm0000644000000000000000000002522213410616261025411 0ustar rootrootGNUstep archive000f4240:00000027:000000ef:00000001:01GSNibContainer1NSObject01 NSMutableSet1NSSet&01GSWindowTemplate1GSClassSwapper01NSString&% NSWindow1NSWindow1 NSResponder% ?ð ?ð @q @x@JI @tp @‡P01 NSView% ?ð ?ð @q @x@  @q @x@J01 NSMutableArray1 NSArray&01 NSBox% @P€ @rð @b @RÀ  @b @RÀJ0± &0 ± % @ @ @`@ @I  @`@ @IJ0 ± &0 1NSMatrix1 NSControl% @  @UÀ @DÀ  @UÀ @DÀJ0 ± &%0 1 NSActionCell1NSCell0±&01NSFont% A@&&&&&&JJ&&&&&&I’% @UÀ @4@ ?ð ?ð01NSColor0±&% NSNamedColorSpace0±&% System0±&% controlBackgroundColor0±0±&% NSCalibratedRGBColorSpace ?*Àƒ ?*Àƒ ?*Àƒ ?*Àƒ ?€0±& % NSButtonCell01 NSButtonCell0±&%Radio01NSImage01NSMutableString&%GSRadio°&&&&&&JJ&&&&&&I’0±0±&%GSRadioSelected&&& &&%%0± &0±0±&%PopUp°°&&&&&&JJ&&&&&&I’0 ±&0!±&°&&& &&0"±0#±&%PullDown°°&&&&&&JJ&&&&&&I’0$±&°!°&&& &&2 ok:v24@0:8@16’’°0%1 NSImageView% @Và @3€ @9 @6  @9 @6J0&± &%0'1 NSImageCell0(±0)±& %  common_Nibble0*±% A@&&&&&&JJ&&&&&&%%% @& @ ’0+±% @Và ¿à @9 @4  @9 @4J0,± &%0-±0.±0/±&% common_3DArrowDown00±%&&&&&&JJ&&&&&&%%% @ @’011NSTextFieldCell02±&%Type°&&&&&&JJ &&&&&&I’03±°°04±&% windowBackgroundColor05±° ?€ @ @%%06± % @J€ @l€ @f @Q€  @f @Q€J07± &08± % @ @ @d` @F€  @d` @F€J09± &0:1NSButton% @& @6 @a @0  @a @0J0;± &%0<±0=±&%Autoenable Items0>±0?±&%GSSwitch°&&&&&&JJ&&&&&&I²0@±&°!0A±0B±&%GSSwitchSelected&&& &&0C±% @8  @^À @0  @^À @0J0D± &%0E±0F±&%Enabled°>°0&&&&&&JJ&&&&&&I’0G±&0H±&°A&&& &&0I±0J±&%Option°&&&&&&JJ &&&&&&I’°30K±° ?€ @ @%%0L1NSForm% @S@ @aÀ @[ @4  @[ @4J0M± &%0N1 NSFormCell0O±&°&&&&&&JJ&&&&&&I’ ¿€0P±0Q±&%Field:°&&&&&&JJ&&&&&&% @[ @4 @°0R±° ?*Àƒ ?*Àƒ ?*Àƒ ?*Àƒ ?€0S±& % NSFormCell%%0T± &0U±0V±&°&&&&&&JJ&&&&&&I’ Aà0W±0X±&%Tag :°&&&&&&JJ&&&&&&²’’°U0Y±% @P€ @g  @]À @4  @]À @4J0Z± &%0[±0\±&°0&&&&&&JJ&&&&&&I’ ¿€0]±0^±&%Field:°0&&&&&&JJ&&&&&&% @]À @4 @°°0_±& % NSFormCell%%0`± &0a±0b±&°0&&&&&&JJ&&&&&&I’ B€0c±0d±& % Default Item:°0&&&&&&JJ&&&&&&’’’°a0e± % @J€ @$ @f @ZÀ  @f @ZÀJ0f± % @ @ @d` @T€  @d` @T€J°e0g± &0h±% @ @I @c` @5  @c` @5J0i± &%0j±0k±&°0&&&&&&JJ&&&&&&I’ ¿€0l±0m±&%Field:°0&&&&&&JJ&&&&&&% @c` @5 @°°0n±& % NSFormCell%%0o± &0p±0q±&°0°q&&&&&&JJ&&&&&&I’ AÐ0r±0s±&%Title:°0°s&&&&&&JJ&&&&&&’’’°p0t1 NSTextField% @ @& @E @2  @E @2J0u± &%0v±0w±&%Arrow:°*°w&&&&&&JJ &&&&&&I’0x±°0y±&%System0z±&%textBackgroundColor0{±°°y0|±& % textColor’0}1 NSPopUpButton% @I€ @$ @QÀ @6  @QÀ @6J0~± &%01NSPopUpButtonCell1 NSMenuItemCell0€±&°0&&&&&&JJ01!NSMenu0‚±&0ƒ± &0„1" NSMenuItem0…±&%Right°€JJÿI’I0†±"0‡±&%Down°€JJÿI°(’I&&&&&&I’0ˆ±&0‰±&&&& >ÌÌÍ =™™š&&°†°°†%%%%%0б &°f0‹±0Œ±&%PullDown Options°0°Œ&&&&&&JJ&&&&&& @ @%%°30±&%Window0ޱ& % PopUpButton Attributes Inspector°Ž @ @9 @È @ÈI&   @ž @à0± &0± &0‘1#NSMutableDictionary1$ NSDictionary&0’±&%Button1°C0“±& % TextField(0)°t0”±& % Inspector°0•±&%PopUpButton(0)°}0–±&%View(0)°f0—±& % FormCell(1)0˜±0™±&°0&&&&&&JJ&&&&&&I’ Að0š±0›±&%Field:°0&&&&&&JJ&&&&&&0œ±&%Form(0)°h0±&% NSOwner0ž±&%GormPopUpButtonInspector0Ÿ±&%Box1°60 ±&%Form°L0¡±&%Matrix° 0¢±& % ImageView°%0£±& % MenuItem(0)°„0¤±&%Button°:0¥±& % ImageView1°+0¦±& % MenuItem(1)°†0§±&%Box(0)°e0¨±&%Box°0©±& % FormCell(0)°p0ª±&%Form1°Y0«± &**0¬1%NSNibConnector°”0­±&% NSOwner0®±%°¨°”0¯±%°¡°”0°±%°Ÿ°”0±±%°¤°”0²±%° °”0³1&NSNibOutletConnector°­°¡0´±& % typeMatrix0µ±&°­° 0¶±&%tagForm0·±&°­°”0¸±&%window0¹1'NSNibControlConnector°¡°­0º±&%ok:0»±'°¤°­°º0¼±'° °­0½±&%ok:0¾±%°¢0¿±%°¥°­0À±%°ª0Á±'°ª°­0±&%ok:0ñ&°­°ª0ı&%defaultItemForm0ű%°’0Ʊ'°’°­0DZ&%ok:0ȱ&°­°¤0ɱ&%autoenableSwitch0ʱ&°­°’0˱& % enableSwitch0̱&°¡°¤0ͱ& % nextKeyView0α&°¤°’°Í0ϱ&°’°ª°Í0б&°ª° °Í0ѱ&° °¡°Í0Ò±&°”°¡0Ó±&%initialFirstResponder0Ô±&°ª°­0Õ±&%delegate0Ö±&° °­°Õ0×±%°§0ر%°–°§0Ù±%°œ°–0Ú±%°©°œ0Û±%°—°œ0ܱ%°“°–0ݱ%°•°–0Þ±%°£0ß±%°¦0à±&°­°œ0á±&%pullDownTitleForm0â±&°­°•0ã±&%pullDownArrowPopUp0ä±'°œ°­0å±&%ok:0æ±'°•°­°å0ç±#&gorm-1.2.24/Palettes/2Controls/GormNSPopUpButtonInspector.gorm/data.classes0000644000000000000000000000046313410616261025362 0ustar rootroot{ "## Comment" = "Do NOT change this file, Gorm maintains it"; GormPopUpButtonInspector = { Actions = ( ); Outlets = ( autoenableSwitch, tagForm, typeMatrix, defaultItemForm, enableSwitch, pullDownArrowPopUp, pullDownTitleForm ); Super = IBInspector; }; }gorm-1.2.24/Palettes/2Controls/GormNSPopUpButtonInspector.gorm/data.info0000644000000000000000000000027013410616261024654 0ustar rootrootGNUstep archive000f4240:00000003:00000003:00000000:01GormFilePrefsManager1NSObject%01NSString&%Latest Version0±& % Typed Streamgorm-1.2.24/Palettes/2Controls/GormNSColorWellInspector.gorm/0000755000000000000000000000000013410616261022532 5ustar rootrootgorm-1.2.24/Palettes/2Controls/GormNSColorWellInspector.gorm/objects.gorm0000644000000000000000000003333313410616261025056 0ustar rootrootGNUstep archive00002af9:00000024:00000080:00000003:01GSNibContainer1NSObject01NSMutableDictionary1 NSDictionary& 01NSString&%NSOwner0±&%GormColorWellInspector0±&%GSCustomClassMap0±&0±&% Button101NSButton1 NSControl1NSView1 NSResponder% A€ B  B¢ A€  B¢ A€&0 1 NSMutableArray1 NSArray&%0 1 NSButtonCell1 NSActionCell1NSCell0 ±&%Disabled0 1NSImage0 1NSMutableString&% common_SwitchOff01NSFont%&&&&&&&&%2 disabledSelected:v12@0:4@80±&0±&0±0±&% common_SwitchOn&&&0±& % NSVisible0± &0±&%Box01NSBox% B CJ CF C  CF C&0± &0±% @à @à C8 Bî  C8 Bî&0± &01 NSColorWell% B B Bä B`  Bä B`&0± &%0±0±&°&&&&&&&&01NSColor0±&%NSCalibratedWhiteColorSpace ?€2 initialColorSelected:v12@0:4@80 1NSTextFieldCell0!±& % Initial Color°&&&&&&&&0%’0"±0#±&%NSNamedColorSpace0$±&%System0%±&%windowBackgroundColor0&±°#0'±&%System0(±& % textColor @  @ %%0)±&% Button20*±% A€ A€ B¢ A€  B¢ A€&0+± &%0,± 0-±&%Bordered° °&&&&&&&&%2 borderedSelected:v12@0:4@80.±&0/±&°&&&00±& % ColorWell°01±& % TextField021 NSTextField% Bò Aà B` A   B` A &03± &%04±05±&°&&&&&&&&0%’06±°#07±&%System08±&%textBackgroundColor09±°#°70:±& % textColor’0;±&% Box10<±% BŽ BÆ C B¾  C B¾&0=± &0>±% @à @à Bø BŠ  Bø BŠ&0?± &°°*0@±0A±&%Options°&&&&&&&&0%’°"0B±°#0C±&%System0D±& % textColor @  @ %%0E±& %  TextField10F±% BŽ Aà B( A   B( A &0G± &%0H±0I±&%Tag:0J±% A`&&&&&&&&0%’0K±°#0L±&%System0M±&%textBackgroundColor0N±°#°L0O±& % textColor’0P±& % Inspector0Q1GSWindowTemplate1GSClassSwapper0R±&%NSWindow1NSWindow% ?€ A Cˆ CÂ&% D€ D`€0S±% ?€ A Cˆ C  Cˆ CÂ&0T± &°°<°2°F°"0U±&%Window0V±&%ColorWell Attributes Inspector°V ?€ A  F@ F@%0W± 0X±° 0Y± &0Z1NSBitmapImageRep1 NSImageRep0[±&%NSDeviceRGBColorSpace B@ B@%%0%00\1 NSDataMalloc1 NSDataStatic1NSData&$š$šII*$§[=¿T8þŠJ2þR-!k§[=¿žU:þ‹K3þxB-ÿH'ÿR-!k§[=¿šS7þˆJ2ÿxB-ÿH'ÿ/ÿ ?§[=¿šS7ÿ†I2ÿxB-ÿH'ÿ/ÿ ?§[=¿™S7ÿ…H0þxB-ÿH'ÿ/ÿ ?§[=¿™R7þ†I2ÿxB-ÿH'ÿ/ÿ ?§[=¿™S7þ‡I0þxB-ÿH'ÿ/ÿ ?§[=¿˜R7þ‡I2þxB-ÿH'ÿ/ÿ ?§[=¿˜R7ÿ…H0þxB-ÿH'ÿ/ÿ ?¨[>ÿX/!ÿj:)ÿH'ÿ/ÿ ?D49ÿ  ?hft¿{y‰ÿ<;Dÿ ?hft¿€}ÿ<;Dÿ ?™¯ÿ<;Dÿ ?™¯ÿ43:ÿ""""™¯ÿ43:ÿzzzz°°°¶ÅÅÅÍÅÅÅÍáááûäääÿðððÿíííÿÙÙÙæÆÆÆÍ±±±¶""""EEEEEEEEEEEE™¯ÿ43:ÿŸŸŸŸŸŸŸŸŸŸŸŸÖÖÖæçççÿÜÜÜÿÚÚÚÿÚÚÚÿÛÛÛÿÛÛÛÿÚÚÚÿÚÚÚÿØØØÿËËËÿËËËÿ–––ÿ555»222t™¯ÿ43:ÿ0?55hhhiiiÝÝÝÿÚÚÚÿÕÕÕÿÓÓÓÿÒÒÒÿÒÒÒÿÑÑÑÿÑÑÑÿÑÑÑÿÑÑÑÿÎÎÎÿÏÏÏÿ³³³ÿ›››ÿ‡‡‡ÿyyyÿVVVÝ777?™¯ÿ43:ÿ~=0¿¸rdÿ¼¤ŸÿÔÓÓÿØØØÿÐÏÏÿÑÑÑÿÑÑÑÿÒÒÒÿÔÔÔÿÒÒÒÿÏÏÏÿÌÌÌÿÏÏÏÿÔÔÔÿ×××ÿ¿¿¿ÿ¥¥¥ÿŸŸŸÿ“““ÿ‰‰‰ÿ‚‚‚ÿxxxÿUUUÝ444?/17?Œ‰¿µ²Êÿ43:ÿ5„?0þ¥\MþÁ·µÿ·°¯ÿÃÃÃÿÎÊÈÿÑÑÑÿÒÒÒÿÔÔÔÿÒÒÒÿÐÐÐÿÐÐÐÿÕÕÕÿÐÐÐÿÆÆÆÿ©©©ÿ£££ÿŸŸŸÿœœœÿ———ÿŽŽŽÿ……†ÿzz{ÿ]]]ÿQQQmmm_bnÀÄÝÿ¯²Èÿ¡¡·ÿœ™¯ÿ:9@ÿ5‚?0þ‡I>þ¥’ÿ’e]ÿ·‚xÿÐÎÎÿ×××ÿÑÑÑÿÑÑÑÿÕÕÕÿÐÐÐÿÏÏÏÿÐÐÐÿÀÀÀÿ¥¥¥ÿ¥¥¥ÿ£££ÿ   ÿžžžÿÿ™š›ÿ™™ÿ˜™žÿ   ÿ±³ÀÿÀÄÝÿŸ µþxw‡þvt„ÿsqÿpo}þ66<ÿ5ƒ?2þ…A3þˆQFÿ…A4þ‹H:þ²Ÿœÿ°‰ÿ»¸¸ÿÐÐÐÿÛÛÛÿÑÑÑÿÖÖÖÿÎÎÎÿ®®®ÿŸŸŸÿŸŸŸÿ¡¡¡ÿ   ÿ£££ÿžžžÿ   ÿ¦¨¯ÿ¸»ÎÿÀÄÝÿ¡¢¸ÿ|z‹þzy‰ÿwu…þtr‚þqpþbaoþ++0¿5„?2ÿ†@2ÿ‡@2þ‡A3þ‰B3ÿŠC4þE6þ¤ƒ}þÇÆÆÿÔÔÔÿÐÐÐÿÒÒÒÿ²²²ÿ¤¤¤ÿŸŸŸÿŸŸŸÿ¢¢¢ÿŸŸŸÿžžžÿ×××ÿééìÿÞàçÿ²²¿ÿ‘ÿ}|ÿzxŠþxw‡ÿutƒþrq€þpn}þVT_ÿ=,,ê ˆ5…@2þ†@3þ‡A3þˆA3þŠJ<þ‰NBÿŽD6þH:þ¹Ÿ›þÇÅÅÿ Žþ•‰†ÿ™’‘ÿŸ›šÿœ™˜ÿ žÿ£ ŸÿØÓÒÿòòòÿóóóÿéééÿäääÿàààÿÄÄÄÿ‰‰‘ÿƒ‚Žþ}|ˆÿtrþqo~þnm{ÿ::Bÿf4)þa2'þ\/&þW*!¿55†@2þ‡A3þˆA3þ‰C4þ¤€yþ‰c\þE6þE6þ­ˆ‚þ‘ÿÀ¤ŸÿÛÌÉþõõõÿóóóÿòòòÿóóóÿïïïÿìììÿãããÿàààÿ···ÿ¼¼¼ÿ±±±ÿ¼¼¼ÿ¿¿¿ÿ«««ÿ¥¤¨ÿyx€þsr|þ`_mþF;?þf4)þd3)þo4)þz:-þ…@2þw:-þV* ¿55‡@3þ‡A3þˆA3þŠC4þ¦‚zþf^þE6þ’F7þ”K<þÛÐÏþóóóÿîîîÿèèèÿßßßÿÖÖÖÿÍÍÍÿÈÈÈÿËËËÿÇÇÇÿÆÆÆÿ»»»ÿÂÂÂÿ¸¸¸ÿºººÿ»»»ÿªªªÿ¸¸¸ÿ¨¨¨ÿÇÇÇÿ›››þtihþb/$þi3'þv8,þ~ÿdbqþihvþFEOÿQ-)þY)!þW)þ`/$ÿk3'ÿq6*þn4)þl3'þi2'þf0&þc/$þ`-$þY*!þ)5ŠC4þŒC4þD4þE6þ’F7þ•H7þƦ¡þëëëÿØØØÿ¼¼¼ÿÔÔÔÿÂÂÂÿ···ÿ©©©ÿ±±±ÿÅÅÅÿÎÎÎÿÂÂÂÿºººÿ¸¸¸ÿÿ’’’ÿkkkÿ)))þLJRþkjxþihvÿhguþ::Bÿ\/&þ[-$þY-$þc/&ÿl3'þo4)ÿl3'ÿj2'þg2&þd0$þa/$þ^-#þX*!þ)5„@2þD4þE6þ‘F7þ”H7þ—I8þÚÅÂþëëëÿÒÒÒÿ¸¸¸ÿ¬¬¬ÿ°°°ÿÄÄÄÿ­­­ÿ¸¸¸ÿºººÿ¸¸¸ÿÆÆÆÿ²²²ÿƒƒƒÿ{{{ÿ[[[ÿ322þQPZþ^]jþjhwþhguþQP[þK33ÿ\-&þW)þ_/$þj3'þm3'þm4)þj3'ÿh2&þd0&þb/$þ_-#þ],#þX*!ÿ)P'¿~>>þdddÿ´´´ÿ>>?ÿ87?þ4$$þE)&þ_-#þ`0'þ_0&ÿ]/&ÿ^/&þ`/&ÿ`/&þc0&þj2'þn3'þk3'þh2&ÿd0$ÿa/$ÿ^-#þ\,!þZ,!þX*!þU)þT)ÿ)ttt³³³ÿ©©©ÿ‰‰‰ÿtttÿzzzÿ¯¯¯ÿ¯¯¯ÿ¹¹¹ÿ‡‡‡ÿ;;;ÿrqyþjhwþPPZÿ43:ÿªªªÿC@?ÿw9,ÿc2)þb2)þ^,#þ_0&þd2'þg2'þh2'ÿk3)þl3)þl3)þl3'ÿl3'þi2'þf0&ÿc/$ÿ_-#þ],#þZ,!þX*!þW)þT)þS)þ)rrrŸŸŸÿ€€€ÿ```ÿFFFû000úŠŠŠÿÇÇÇÿ¯¯¯ÿmmmÿ\[aÿ<;CÿA)'þ^3,þ‘I:þ°°°ÿ:76þv8,þ_-$þb2'þg2'þl4)þr7*þs7*þs7*þw8,þt7,þq6*þn4)þk3'ÿg2&ÿd0$ÿ`-$þ],#þ[,!ÿX*!þW)þU)þS'þS'ÿ)ÁÁÁúYYYøò777ïXWcûKJSþ|||ÿÊÊÊÿ¦¦¦ÿSSSÿ\2,þ‚KDþD4þ‘I:þ“I;þ¯¯¯ÿA?>þ~>0þb2)þf2'þp6*þx:-þy:-þ{;-þx:-þv9,ÿs7*þo4)þl3'þi2&þf0&þc/$ÿ_-#ÿ\,#þY*!þW)þT)þS'þR'þS'ÿ)TR^|z‡ô@?Gↄ–þŒŠþ\Zgþ<;CþŽŽŽÿÐÐÐÿ¯¯¯ÿJJJÿm4)þD4þE6þ˜J;þ˜UIþ†PEþvI@ÿq:/ÿl4)þm4)þx:,þ};/þ{:-þy:-þw9,ÿt7*þq6*ÿm4)þj3'þh2&þc0&þa/$ÿ]-#þ[,!ÿX*!þV)ÿT)þR'þR'þR'þ)0/5?ª§¾þˆ‡™þ_^kÿCBJÿ43:ÿ?ˆˆˆÿ¸¸¸ÿ‚‚‚ÿQQQÿ ˆ^-#þ’I:þ¡O>þ¬SBÿ£P?þ‘H7ÿ€?2þp6*þs7*þ0þ|;/þy:-þp6*þf0&þd0&ÿc/&ÿ`/$þ_-$þ]-#þ\,#þT)!ÿT)!ÿT)!ÿT)!ÿT)!ÿT)!ÿT)!ÿ)))) ?h3'¿z;/ÿT)!ÿT)!ÿT)!ÿ`/$ÿ`/$ÿ))))) ? þÿ00’$$R&   D  D€0]± &0^1NSNibConnector°P0_±&%NSOwner0`±°0a±°;0b±°00c±°0d±°)0e±°10f±°E0g1 NSNibOutletConnector°_°P0h±&%window0i± °0°0j±& %  nextKeyView0k± °°)°j0l± °)°1°j0m± °1°0°j0n± °P°00o±&% initialFirstResponder0p± °1°_0q±&% delegate0r± °_°00s±&% initialColorWell0t± °_°0u±&% disabledSwitch0v± °_°)0w±&% borderedSwitch0x± °_°10y±&% tagField0z1!NSNibControlConnector°0°_0{±&% ok:0|±!°°_°{0}±!°)°_°{0~1" GSMutableSet1# NSMutableSet1$NSSet&°Qgorm-1.2.24/Palettes/2Controls/GormNSColorWellInspector.gorm/data.classes0000644000000000000000000000051713410616261025025 0ustar rootroot{ "## Comment" = "Do NOT change this file, Gorm maintains it"; FirstResponder = { Actions = ( "orderFrontFontPanel:" ); Super = NSObject; }; GormColorWellInspector = { Actions = ( ); Outlets = ( borderedSwitch, disabledSwitch, initialColorWell, tagField ); Super = IBInspector; }; }gorm-1.2.24/Palettes/2Controls/GormNSColorWellInspector.gorm/data.info0000644000000000000000000000027013410616261024317 0ustar rootrootGNUstep archive00002af9:00000003:00000003:00000000:01GormFilePrefsManager1NSObject% 01NSString&%Latest Version0±& % Typed Streamgorm-1.2.24/Palettes/2Controls/GormTextFieldAttributesInspector.m0000644000000000000000000001134513410616261023545 0ustar rootroot/* GormTextFieldAttributesInspector.m Copyright (C) 2001-2005 Free Software Foundation, Inc. Author: Adam Fedor Laurent Julliard Date: Aug 2001 This file is part of GNUstep. This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 3 of the License, or (at your option) any later version. This program 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 General Public License for more details. You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02111 USA. */ /* July 2005 : Split inspector classes into separate files. Always use ok: revert: methods Clean up Author : Fabien Vallon */ #include "GormTextFieldAttributesInspector.h" #include #include #include #include #include #include #include /* IBObjectAdditions category */ @implementation NSTextField (IBObjectAdditions) - (NSString*) inspectorClassName { return @"GormTextFieldAttributesInspector"; } @end @implementation GormTextFieldAttributesInspector - (id) init { if ([super init] == nil) return nil; if ([NSBundle loadNibNamed: @"GormNSTextFieldInspector" owner: self] == NO) { NSLog(@"Could not gorm GormTextFieldInspector"); return nil; } return self; } /* Commit changes that the user makes in the Attributes Inspector */ - (void) ok: (id) sender { if (sender == alignMatrix) { [object setAlignment: (NSTextAlignment)[[sender selectedCell] tag]]; } else if (sender == backgroundColor) { [object setBackgroundColor: [sender color]]; } else if (sender == drawsBackground) { [object setDrawsBackground: [drawsBackground state]]; } else if (sender == textColor) { [object setTextColor: [sender color]]; } else if ( sender == editableSwitch ) { [object setEditable: [editableSwitch state]]; } else if ( sender == selectableSwitch ) { [object setSelectable: [selectableSwitch state]]; } else if ( sender == scrollableSwitch ) { [[object cell] setScrollable: [scrollableSwitch state]]; } else if (sender == borderMatrix) { BOOL bordered=NO, bezeled=NO; if ([[sender cellAtRow: 0 column: 0] state] == NSOnState) { bordered = bezeled = NO; } else if ([[sender cellAtRow: 0 column: 1] state] == NSOnState) { bordered = YES; bezeled = NO; } else if ([[sender cellAtRow: 0 column: 2] state] == NSOnState) { bordered = NO; bezeled = YES; } [object setBordered: bordered]; [object setBezeled: bezeled]; } else if (sender == tagForm) { [object setTag: [[sender cellAtIndex: 0] intValue]]; } else if (sender == sendActionMatrix) { BOOL sendActionOnEndEditing = ([[sender cellAtRow: 1 column: 0] state] == NSOnState); [[object cell] setSendsActionOnEndEditing: sendActionOnEndEditing]; } [super ok:sender]; } /* Sync from object ( NSTextField ) changes to the inspector */ - (void) revert:(id) sender { if (object == nil) return; [alignMatrix selectCellWithTag: [object alignment]]; [backgroundColor setColorWithoutAction: [object backgroundColor]]; [textColor setColorWithoutAction: [object textColor]]; [drawsBackground setState: ([object drawsBackground]) ? NSOnState : NSOffState]; [editableSwitch setState:[object isEditable]]; [selectableSwitch setState:[object isSelectable]]; [scrollableSwitch setState:[[object cell] isScrollable]]; if ([object isBordered] == YES) { [borderMatrix selectCellAtRow: 0 column: 1]; } else { if ([object isBezeled] == YES) [borderMatrix selectCellAtRow: 0 column: 2]; else [borderMatrix selectCellAtRow: 0 column: 0]; } [[tagForm cellAtIndex: 0] setIntValue: [object tag]]; if([[object cell] sendsActionOnEndEditing]) { [sendActionMatrix selectCellAtRow: 1 column: 0]; } else { [sendActionMatrix selectCellAtRow: 0 column: 0]; } [super revert:sender]; } /* delegate method for tagForm */ -(void) controlTextDidChange:(NSNotification *)aNotification { [self ok:[aNotification object]]; } @end gorm-1.2.24/Palettes/2Controls/GormSliderAttributesInspector.m0000644000000000000000000001002613410616261023072 0ustar rootroot/* GormSliderAttributesInspector.m Copyright (C) 2001-2005 Free Software Foundation, Inc. Author: Adam Fedor Laurent Julliard Date: Aug 2001 This file is part of GNUstep. This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 3 of the License, or (at your option) any later version. This program 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 General Public License for more details. You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02111 USA. */ /* July 2005 : Split inspector classes into separate files. Always use ok: revert: methods Clean up Author : Fabien Vallon */ #include "GormSliderAttributesInspector.h" #include #include #include #include #include /* IBObjectAdditions category */ @implementation NSSlider (IBObjectAdditions) - (NSString*) inspectorClassName { return @"GormSliderAttributesInspector"; } @end @implementation GormSliderAttributesInspector - (id) init { if ([super init] == nil) { return nil; } if ([NSBundle loadNibNamed: @"GormNSSliderInspector" owner: self] == NO) { NSLog(@"Could not gorm GormSliderInspector"); return nil; } return self; } /* Commit changes that the user makes in the Attributes Inspector */ - (void) ok:(id) sender { if (sender == valuesForm) { [object setMinValue: [[sender cellAtIndex: 0] doubleValue]]; [object setDoubleValue: [[sender cellAtIndex: 1] doubleValue]]; [object setMaxValue: [[sender cellAtIndex: 2] doubleValue]]; [object setNumberOfTickMarks: [[sender cellAtIndex: 3] intValue]]; } else if ( sender == stopOnTicksSwitch ) { [object setAllowsTickMarkValuesOnly: (([stopOnTicksSwitch state] == NSOnState) ? YES:NO)]; } else if ( sender == continuousSwitch ) { [object setContinuous: (([continuousSwitch state] == NSOnState) ? YES : NO)]; } else if ( sender == enabledSwitch ) { [object setEnabled: (([enabledSwitch state] == NSOnState) ? YES : NO)]; } else if (sender == altIncrementForm) { [[object cell] setAltIncrementValue: [[sender cellAtIndex: 0] doubleValue]]; } else if (sender == knobThicknessForm) { [[object cell] setKnobThickness: [[sender cellAtIndex: 0] floatValue]]; } else if (sender == tagForm) { [[object cell] setTag: [[sender cellAtIndex: 0] intValue]]; } } /* Sync from object ( NSSlider ) changes to the inspector */ - (void) revert:(id) sender { if ( object == nil) return; [[valuesForm cellAtIndex: 0] setDoubleValue: [object minValue]]; [[valuesForm cellAtIndex: 1] setDoubleValue: [object doubleValue]]; [[valuesForm cellAtIndex: 2] setDoubleValue: [object maxValue]]; [[valuesForm cellAtIndex: 3] setIntValue: [object numberOfTickMarks]]; [continuousSwitch setState: ([object isContinuous] ? NSOnState : NSOffState)]; [enabledSwitch setState: ([object isEnabled] ? NSOnState : NSOffState)]; [stopOnTicksSwitch setState: ([object allowsTickMarkValuesOnly] ? NSOnState : NSOffState)]; [[altIncrementForm cellAtIndex: 0] setDoubleValue: [[object cell] altIncrementValue]]; [[knobThicknessForm cellAtIndex: 0] setFloatValue: [[object cell] knobThickness]]; [[tagForm cellAtIndex: 0] setIntValue: [[object cell] tag]]; [super revert:sender]; } /* delegate methods for all Forms */ -(void) controlTextDidChange:(NSNotification *)aNotification { [self ok:[aNotification object]]; } @end gorm-1.2.24/Palettes/2Controls/.cvsignore0000644000000000000000000000006013410616261016704 0ustar rootroot*.app *.debug *.profile *.palette *obj .gdbinit gorm-1.2.24/Palettes/2Controls/GormColorWellAttributesInspector.h0000644000000000000000000000316313410616261023551 0ustar rootroot/* GormColorWellAttributesInspector.h Copyright (C) 2001-2005 Free Software Foundation, Inc. Author: Adam Fedor Laurent Julliard Date: Aug 2001 Author: Gregory John Casamento Date: 2003,2004,2005 This file is part of GNUstep. This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 3 of the License, or (at your option) any later version. This program 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 General Public License for more details. You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02111 USA. */ /* July 2005 : Spilt inspector in separate classes. Always use ok: revert: methods Clean up Author : Fabien Vallon */ #ifndef INCLUDED_GormColorWellAttributesInspector_h #define INCLUDED_GormColorWellAttributesInspector_h #include @class NSButton; @class NSColorWell; @class NSTextField; @interface GormColorWellAttributesInspector:IBInspector { NSColorWell *initialColorWell; NSButton *disabledSwitch; NSButton *borderedSwitch; NSTextField *tagField; } @end #endif /* INCLUDED_GormColorWellAttributesInspector_h */ gorm-1.2.24/Palettes/2Controls/GormProgressIndicatorAttributesInspector.h0000644000000000000000000000305213410616261025305 0ustar rootroot/* GormProgressIndicatorAttributesInspector.h Copyright (C) 2001-2005 Free Software Foundation, Inc. Author: Adam Fedor Laurent Julliard Date: Aug 2001 This file is part of GNUstep. This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 3 of the License, or (at your option) any later version. This program 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 General Public License for more details. You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02111 USA. */ /* July 2005 : Spilt inspector in separate classes. Always use ok: revert: methods Clean up Author : Fabien Vallon */ #ifndef INCLUDED_GormProgressIndicatorAttributesInspector_h #define INCLUDED_GormProgressIndicatorAttributesInspector_h #include @class NSButton; @class NSTextField; @interface GormProgressIndicatorAttributesInspector: IBInspector { NSButton *indeterminate; NSButton *vertical; NSTextField *minValue; NSTextField *maxValue; } @end #endif /* INCLUDED_GormProgressIndicatorAttributesInspector_h */ gorm-1.2.24/Palettes/1Windows/0000755000000000000000000000000013426741712014545 5ustar rootrootgorm-1.2.24/Palettes/1Windows/GormNSWindowInspector.gorm/0000755000000000000000000000000013410616261021725 5ustar rootrootgorm-1.2.24/Palettes/1Windows/GormNSWindowInspector.gorm/objects.gorm0000644000000000000000000005554213410616261024257 0ustar rootrootGNUstep archive000f4240:00000022:00000142:00000001:01GSNibContainer1NSObject01 NSMutableSet1NSSet&01GSWindowTemplate1GSClassSwapper01NSString&% NSWindow1NSWindow1 NSResponder% ?ð ?ð @q @x@J@C6I @pP @‹001 NSView% ?ð ?ð @q @x@  @q @x@J01 NSMutableArray1 NSArray&01 NSForm1NSMatrix1 NSControl% @$ @v @o€ @6  @o€ @6J 0± &%0 1 NSFormCell1 NSActionCell1NSCell0 ±&0 1NSFont% A@&&&&&&JJ&&&&&&I’ ¿€0 ±0 ±&%Field:° &&&&&&JJ&&&&&&% @o€ @6 @01NSColor0±&% NSNamedColorSpace0±&% System0±&% controlBackgroundColor0±0±&% NSCalibratedRGBColorSpace ?*Àƒ ?*Àƒ ?*Àƒ ?*Àƒ ?€0±& % NSFormCell%%0± &0±0±&° &&&&&&JJ&&&&&&I’ AÐ0±0±&%Title:° &&&&&&JJ&&&&&&2 ok:v24@0:8@16’’°01NSBox% @$ @ @o€ @K  @o€ @KJ"0± &0± % @ @ @mÀ @=  @mÀ @=J0± &0± % @$ ?ð @dà @6  @dà @6J0± &%0 ±0!±&0"±%&&&&&&JJ&&&&&&I’ ¿€0#±0$±&%Field:°"&&&&&&JJ&&&&&&% @dà @6 @°°0%±& % NSFormCell%%0&± &0'±0(±&°"&&&&&&JJ&&&&&&I’ B`0)±0*±& % Icon Name°"&&&&&&JJ&&&&&&’’’°'0+1NSButton% @fÀ ?ð @L @8  @L @8J0,± &%0-1 NSButtonCell0.±&%Clear°"&&&&&&JJ&&&&&&I’0/±&00±&&&& &&01±02±&%Miniaturized Window Icon°"&&&&&&JJ&&&&&& @ @%%03±% @$ @L€ @o€ @M€  @o€ @M€J04± &05± % @ @ @mÀ @A  @mÀ @AJ06± &071 NSColorWell% @W@  @J€ @>  @J€ @>J08± &%09±0:±&°"&&&&&&JJ&&&&&&0;±0<±&% NSCalibratedWhiteColorSpace ?€’0=±0>±&%Background Color°"&&&&&&JJ&&&&&& @ @%%0?±% @$ @] @o€ @b  @o€ @bJ0@± &0A± % @ @ @mÀ @]À  @mÀ @]ÀJ0B± &0C±% @C€ @Y @c` @0  @c` @0J0D± &%0E±0F±&%Release when closed0G1NSImage0H1NSMutableString&%GSSwitch°"&&&&&&JJ&&&&&&I’0I±&0J±&0K±0L±&%GSSwitchSelected&&& &&0M±% @I€ @T @aà @0  @aà @0J0N± &%0O±0P±&%Hide on deactivate°G°"°P&&&&&&JJ&&&&&&I’0Q±&0R±&°K&&& &&0S±% @C€ @N @c` @0  @c` @0J0T± &%0U±0V±&%Visible at launch time°G°"&&&&&&JJ&&&&&&I’0W±&0X±&°K&&& &&0Y±% @]@ @D @S@ @0  @S@ @0J0Z± &%0[±0\±&%Deferred°G°"&&&&&&JJ&&&&&&I’0]±&0^±&°K&&& &&0_±% @]@ @4 @S@ @0  @S@ @0J0`± &%0a±0b±&%One shot°G°"&&&&&&JJ&&&&&&I’0c±&0d±&°K&&& &&0e±% @K  @a€ @0  @a€ @0J0f± &%0g±0h±&%Dynamic depth limit°G°"&&&&&&JJ&&&&&&I’0i±&0j±&°K&&& &&0k±0l±&%Options°"&&&&&&JJ&&&&&& @ @%%0m±% @b€ @p0 @\€ @T€  @\€ @T€J0n± &0o± % @ @ @Y @L€  @Y @L€J0p± &0q±% @ @D€ @U @0  @U @0J0r± &%0s±0t±& % Miniaturize°G°"&&&&&&JJ&&&&&&I’0u±&0v±&°K&&& &&0w±% @ @5 @U @0  @U @0J0x± &%0y±0z±&%Close°G°"&&&&&&JJ&&&&&&I’0{±&0|±&°K&&& &&0}±% @  @U @1  @U @1J0~± &%0±0€±& % Resize bar°G°"&&&&&&JJ&&&&&&I’0±&0‚±&°K&&& &&0ƒ±0„±&%Controls°"&&&&&&JJ&&&&&& @ @%%0…±% @$ @p0 @`@ @TÀ  @`@ @TÀJ0†± &0‡± % @ @ @] @M  @] @MJ0ˆ± &0‰±% ?ð ?ð @Z@ @L€  @Z@ @L€J0б &%0‹±0Œ±&° &&&&&&JJ&&&&&&I’% @Z@ @2UUUUUU ?ð ?ð°0±° ?*Àƒ ?*Àƒ ?*Àƒ ?*Àƒ ?€0ޱ& % NSButtonCell0±0±&%Radio0‘±0’±&%GSRadio° &&&&&&JJ&&&&&&I’0“±0”±&%GSRadioSelected&&& &&%%0•± &0–±0—±& % NonRetained°‘° &&&&&&JJ&&&&&&I’0˜±&0™±&°“&&& &&0š±0›±&%Retained°‘° &&&&&&JJ&&&&&&I’0œ±&°™°“&&& &&0±0ž±&%Buffered°‘° &&&&&&JJ&&&&&&I’0Ÿ±&°™°“&&& &&’’’°–0 ±0¡±&%Backing°"&&&&&&JJ&&&&&& @ @%%0¢± % @$ @u0 @o` @6  @o` @6J 0£± &%0¤±0¥±&° &&&&&&JJ&&&&&&I’ ¿€0¦±0§±&%Field:° &&&&&&JJ&&&&&&% @o` @6 @°0¨±° ?*Àƒ ?*Àƒ ?*Àƒ ?*Àƒ ?€0©±& % NSFormCell%%0ª± &0«±0¬±&° °¬&&&&&&JJ&&&&&&I’ B¦0­±0®±& % Autosave Name° °®&&&&&&JJ&&&&&&’’’°«0¯±°°0°±&% windowBackgroundColor0±±&%Window0²±&%Window Attributes Inspector°² @ @9 @È @ÈI0³± 0´±°< 0µ± &0¶1NSBitmapImageRep1 NSImageRep0·±&% NSDeviceRGBColorSpace @H @HII0I00¸1NSData&$š$šII*$§[=¿T8þŠJ2þR-!k§[=¿žU:þ‹K3þxB-ÿH'ÿR-!k§[=¿šS7þˆJ2ÿxB-ÿH'ÿ/ÿ ?§[=¿šS7ÿ†I2ÿxB-ÿH'ÿ/ÿ ?§[=¿™S7ÿ…H0þxB-ÿH'ÿ/ÿ ?§[=¿™R7þ†I2ÿxB-ÿH'ÿ/ÿ ?§[=¿™S7þ‡I0þxB-ÿH'ÿ/ÿ ?§[=¿˜R7þ‡I2þxB-ÿH'ÿ/ÿ ?§[=¿˜R7ÿ…H0þxB-ÿH'ÿ/ÿ ?¨[>ÿX/!ÿj:)ÿH'ÿ/ÿ ?D49ÿ  ?hft¿{y‰ÿ<;Dÿ ?hft¿€}ÿ<;Dÿ ?™¯ÿ<;Dÿ ?™¯ÿ43:ÿ""""™¯ÿ43:ÿzzzz°°°¶ÅÅÅÍÅÅÅÍáááûäääÿðððÿíííÿÙÙÙæÆÆÆÍ±±±¶""""EEEEEEEEEEEE™¯ÿ43:ÿŸŸŸŸŸŸŸŸŸŸŸŸÖÖÖæçççÿÜÜÜÿÚÚÚÿÚÚÚÿÛÛÛÿÛÛÛÿÚÚÚÿÚÚÚÿØØØÿËËËÿËËËÿ–––ÿ555»222t™¯ÿ43:ÿ0?55hhhiiiÝÝÝÿÚÚÚÿÕÕÕÿÓÓÓÿÒÒÒÿÒÒÒÿÑÑÑÿÑÑÑÿÑÑÑÿÑÑÑÿÎÎÎÿÏÏÏÿ³³³ÿ›››ÿ‡‡‡ÿyyyÿVVVÝ777?™¯ÿ43:ÿ~=0¿¸rdÿ¼¤ŸÿÔÓÓÿØØØÿÐÏÏÿÑÑÑÿÑÑÑÿÒÒÒÿÔÔÔÿÒÒÒÿÏÏÏÿÌÌÌÿÏÏÏÿÔÔÔÿ×××ÿ¿¿¿ÿ¥¥¥ÿŸŸŸÿ“““ÿ‰‰‰ÿ‚‚‚ÿxxxÿUUUÝ444?/17?Œ‰¿µ²Êÿ43:ÿ5„?0þ¥\MþÁ·µÿ·°¯ÿÃÃÃÿÎÊÈÿÑÑÑÿÒÒÒÿÔÔÔÿÒÒÒÿÐÐÐÿÐÐÐÿÕÕÕÿÐÐÐÿÆÆÆÿ©©©ÿ£££ÿŸŸŸÿœœœÿ———ÿŽŽŽÿ……†ÿzz{ÿ]]]ÿQQQmmm_bnÀÄÝÿ¯²Èÿ¡¡·ÿœ™¯ÿ:9@ÿ5‚?0þ‡I>þ¥’ÿ’e]ÿ·‚xÿÐÎÎÿ×××ÿÑÑÑÿÑÑÑÿÕÕÕÿÐÐÐÿÏÏÏÿÐÐÐÿÀÀÀÿ¥¥¥ÿ¥¥¥ÿ£££ÿ   ÿžžžÿÿ™š›ÿ™™ÿ˜™žÿ   ÿ±³ÀÿÀÄÝÿŸ µþxw‡þvt„ÿsqÿpo}þ66<ÿ5ƒ?2þ…A3þˆQFÿ…A4þ‹H:þ²Ÿœÿ°‰ÿ»¸¸ÿÐÐÐÿÛÛÛÿÑÑÑÿÖÖÖÿÎÎÎÿ®®®ÿŸŸŸÿŸŸŸÿ¡¡¡ÿ   ÿ£££ÿžžžÿ   ÿ¦¨¯ÿ¸»ÎÿÀÄÝÿ¡¢¸ÿ|z‹þzy‰ÿwu…þtr‚þqpþbaoþ++0¿5„?2ÿ†@2ÿ‡@2þ‡A3þ‰B3ÿŠC4þE6þ¤ƒ}þÇÆÆÿÔÔÔÿÐÐÐÿÒÒÒÿ²²²ÿ¤¤¤ÿŸŸŸÿŸŸŸÿ¢¢¢ÿŸŸŸÿžžžÿ×××ÿééìÿÞàçÿ²²¿ÿ‘ÿ}|ÿzxŠþxw‡ÿutƒþrq€þpn}þVT_ÿ=,,ê ˆ5…@2þ†@3þ‡A3þˆA3þŠJ<þ‰NBÿŽD6þH:þ¹Ÿ›þÇÅÅÿ Žþ•‰†ÿ™’‘ÿŸ›šÿœ™˜ÿ žÿ£ ŸÿØÓÒÿòòòÿóóóÿéééÿäääÿàààÿÄÄÄÿ‰‰‘ÿƒ‚Žþ}|ˆÿtrþqo~þnm{ÿ::Bÿf4)þa2'þ\/&þW*!¿55†@2þ‡A3þˆA3þ‰C4þ¤€yþ‰c\þE6þE6þ­ˆ‚þ‘ÿÀ¤ŸÿÛÌÉþõõõÿóóóÿòòòÿóóóÿïïïÿìììÿãããÿàààÿ···ÿ¼¼¼ÿ±±±ÿ¼¼¼ÿ¿¿¿ÿ«««ÿ¥¤¨ÿyx€þsr|þ`_mþF;?þf4)þd3)þo4)þz:-þ…@2þw:-þV* ¿55‡@3þ‡A3þˆA3þŠC4þ¦‚zþf^þE6þ’F7þ”K<þÛÐÏþóóóÿîîîÿèèèÿßßßÿÖÖÖÿÍÍÍÿÈÈÈÿËËËÿÇÇÇÿÆÆÆÿ»»»ÿÂÂÂÿ¸¸¸ÿºººÿ»»»ÿªªªÿ¸¸¸ÿ¨¨¨ÿÇÇÇÿ›››þtihþb/$þi3'þv8,þ~ÿdbqþihvþFEOÿQ-)þY)!þW)þ`/$ÿk3'ÿq6*þn4)þl3'þi2'þf0&þc/$þ`-$þY*!þ)5ŠC4þŒC4þD4þE6þ’F7þ•H7þƦ¡þëëëÿØØØÿ¼¼¼ÿÔÔÔÿÂÂÂÿ···ÿ©©©ÿ±±±ÿÅÅÅÿÎÎÎÿÂÂÂÿºººÿ¸¸¸ÿÿ’’’ÿkkkÿ)))þLJRþkjxþihvÿhguþ::Bÿ\/&þ[-$þY-$þc/&ÿl3'þo4)ÿl3'ÿj2'þg2&þd0$þa/$þ^-#þX*!þ)5„@2þD4þE6þ‘F7þ”H7þ—I8þÚÅÂþëëëÿÒÒÒÿ¸¸¸ÿ¬¬¬ÿ°°°ÿÄÄÄÿ­­­ÿ¸¸¸ÿºººÿ¸¸¸ÿÆÆÆÿ²²²ÿƒƒƒÿ{{{ÿ[[[ÿ322þQPZþ^]jþjhwþhguþQP[þK33ÿ\-&þW)þ_/$þj3'þm3'þm4)þj3'ÿh2&þd0&þb/$þ_-#þ],#þX*!ÿ)P'¿~>>þdddÿ´´´ÿ>>?ÿ87?þ4$$þE)&þ_-#þ`0'þ_0&ÿ]/&ÿ^/&þ`/&ÿ`/&þc0&þj2'þn3'þk3'þh2&ÿd0$ÿa/$ÿ^-#þ\,!þZ,!þX*!þU)þT)ÿ)ttt³³³ÿ©©©ÿ‰‰‰ÿtttÿzzzÿ¯¯¯ÿ¯¯¯ÿ¹¹¹ÿ‡‡‡ÿ;;;ÿrqyþjhwþPPZÿ43:ÿªªªÿC@?ÿw9,ÿc2)þb2)þ^,#þ_0&þd2'þg2'þh2'ÿk3)þl3)þl3)þl3'ÿl3'þi2'þf0&ÿc/$ÿ_-#þ],#þZ,!þX*!þW)þT)þS)þ)rrrŸŸŸÿ€€€ÿ```ÿFFFû000úŠŠŠÿÇÇÇÿ¯¯¯ÿmmmÿ\[aÿ<;CÿA)'þ^3,þ‘I:þ°°°ÿ:76þv8,þ_-$þb2'þg2'þl4)þr7*þs7*þs7*þw8,þt7,þq6*þn4)þk3'ÿg2&ÿd0$ÿ`-$þ],#þ[,!ÿX*!þW)þU)þS'þS'ÿ)ÁÁÁúYYYøò777ïXWcûKJSþ|||ÿÊÊÊÿ¦¦¦ÿSSSÿ\2,þ‚KDþD4þ‘I:þ“I;þ¯¯¯ÿA?>þ~>0þb2)þf2'þp6*þx:-þy:-þ{;-þx:-þv9,ÿs7*þo4)þl3'þi2&þf0&þc/$ÿ_-#ÿ\,#þY*!þW)þT)þS'þR'þS'ÿ)TR^|z‡ô@?Gↄ–þŒŠþ\Zgþ<;CþŽŽŽÿÐÐÐÿ¯¯¯ÿJJJÿm4)þD4þE6þ˜J;þ˜UIþ†PEþvI@ÿq:/ÿl4)þm4)þx:,þ};/þ{:-þy:-þw9,ÿt7*þq6*ÿm4)þj3'þh2&þc0&þa/$ÿ]-#þ[,!ÿX*!þV)ÿT)þR'þR'þR'þ)0/5?ª§¾þˆ‡™þ_^kÿCBJÿ43:ÿ?ˆˆˆÿ¸¸¸ÿ‚‚‚ÿQQQÿ ˆ^-#þ’I:þ¡O>þ¬SBÿ£P?þ‘H7ÿ€?2þp6*þs7*þ0þ|;/þy:-þp6*þf0&þd0&ÿc/&ÿ`/$þ_-$þ]-#þ\,#þT)!ÿT)!ÿT)!ÿT)!ÿT)!ÿT)!ÿT)!ÿ)))) ?h3'¿z;/ÿT)!ÿT)!ÿT)!ÿ`/$ÿ`/$ÿ))))) ? þÿ00’$$R&   @ž @à0¹± &0º± &0»1NSMutableDictionary1 NSDictionary&0¼±&%View(3)°o0½±&%Box2°m0¾±&%Button1°C0¿±& % ColorWell°70À±&%Button8°w0Á±& % Inspector°0±&%Box4°30ñ&%View(0)°0ı&%Button3°S0ű&%View(4)°‡0Ʊ&%Form(0)°¢0DZ&% NSOwner0ȱ&%GormWindowAttributesInspector0ɱ&%Button5°_0ʱ&%Box1°…0˱&%View(1)°50̱&%Button7°q0ͱ&%Form°0α&%Matrix°‰0ϱ&%Box3°0б&%Button2°M0ѱ&%Button9°}0Ò±&%View(2)°A0Ó±&%Box5°?0Ô±&%Button4°Y0Õ±&%Button°+0Ö±&%Button6°e0×±&%Form1°0ر &GG0Ù1 NSNibConnector°Í°Á0Ú1!NSNibOutletConnector°Á°Í0Û±&%initialFirstResponder0ܱ °Ï0ݱ °×°Ã0Þ± °Õ°Ã0ß± °Â0à± °¿°Ë0á± °Ó0â± °½0ã± °Ê0ä±!°¿°×0å±& % nextKeyView0æ±!°×°Õ°å0ç±!°Õ°Í0è±& % nextKeyView0é± °¾°Ò0ê± °Ð°Ò0ë± °Ä°Ò0ì± °Ô°Ò0í± °É°Ò0î± °Ö°Ò0ï± °Ì°¼0ð± °À°¼0ñ± °Ñ°¼0ò±!°Î°Ì0ó±& % nextKeyView0ô±!°Ì°À°ó0õ±!°À°Ñ°ó0ö±!°Ñ°¾°ó0÷±!°¾°Ð°ó0ø±!°Ð°Ä°ó0ù±!°Ä°Ô°ó0ú±!°Ô°É°ó0û±!°É°Ö°ó0ü±!°Ö°¿°ó0ý±!0þ±&% NSOwner°Í0ÿ±& % titleFormP±!°þ°ÎP±& % backingMatrixP±!°þ°ÌP±&%miniaturizeButtonP±!°þ°ÀP±& % closeButtonP±!°þ°ÑP±&%resizeBarButtonP±!°þ°¿P ±& % colorWellP ±!°þ°ÔP ±&%deferredButtonP ±!°þ°ÖP ±&%dynamicDepthButtonP±!°þ°ÐP±& % hideButtonP±!°þ°ÄP±& % visibleButtonP±!°þ°ÉP±& % oneShotButtonP±!°þ°×P±& % iconNameFormP±!°þ°ÕP±& % clearButtonP±!°þ°ÁP±&%windowP±!°Í°þP±&%delegateP1"NSNibControlConnector°Î°þP±&%ok:P±"°Ì°þÐP±"°À°þÐP ±"°Ñ°þÐP!±"°¾°þÐP"±"°Ð°þÐP#±"°Ä°þÐP$±"°Ô°þÐP%±"°É°þÐP&±"°Ö°þÐP'±"°¿°þÐP(±!°×°þÐP)±"°Õ°þÐP*±!°þ°¾P+±& % releaseButtonP,± °Ã°ÏP-± °Ë°ÂP.± °Ò°ÓP/± °¼°½P0± °Å°ÊP1± °Î°ÅP2± °ÆP3±!°Í°ÆP4±& % nextKeyViewP5±!°Æ°ÎÐ4P6±!°Æ°þP7±&%delegateP8±&gorm-1.2.24/Palettes/1Windows/GormNSWindowInspector.gorm/data.classes0000644000000000000000000000067413410616261024224 0ustar rootroot{ "## Comment" = "Do NOT change this file, Gorm maintains it"; GormWindowAttributesInspector = { Actions = ( ); Outlets = ( backingMatrix, titleForm, iconNameForm, clearButton, colorWell, releaseButton, hideButton, visibleButton, deferredButton, oneShotButton, dynamicDepthButton, miniaturizeButton, closeButton, resizeBarButton ); Super = IBInspector; }; }gorm-1.2.24/Palettes/1Windows/GormNSWindowInspector.gorm/data.info0000644000000000000000000000027013410616261023512 0ustar rootrootGNUstep archive000f4240:00000003:00000003:00000000:01GormFilePrefsManager1NSObject%01NSString&%Latest Version0±& % Typed Streamgorm-1.2.24/Palettes/1Windows/inspectors.m0000644000000000000000000000453413410616261017113 0ustar rootroot/* inspectors.m * * This file defines the mapping between objects and thier editors/inspectors. * * Copyright (C) 2000 Free Software Foundation, Inc. * * Author: Gregory John Casamento * Date: 2005 * * This file is part of GNUstep. * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 3 of the License, or * (at your option) any later version. * * This program 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 General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02111 USA. */ #include #include #include "WindowsPalette.h" /* IBObjectAdditions category for NSPanel */ @implementation NSPanel (IBObjectAdditions) - (NSString*) inspectorClassName { return @"GormWindowAttributesInspector"; } @end /* IBObjectAdditions category for NSWindow */ @implementation NSWindow (IBObjectAdditions) - (NSString*) inspectorClassName { return @"GormWindowAttributesInspector"; } - (NSString*) editorClassName { return @"GormWindowEditor"; } /* * Method to return the image that should be used to display windows within * the matrix containing the objects in a document. */ - (NSImage*) imageForViewer { static NSImage *image = nil; if (image == nil) { NSBundle *bundle = [NSBundle mainBundle]; NSString *path = [bundle pathForImageResource: @"GormWindow"]; image = [[NSImage alloc] initWithContentsOfFile: path]; } return image; } @end @implementation NSDrawer (IBObjectAdditions) - (NSString*) inspectorClassName { return @"GormDrawerAttributesInspector"; } - (NSImage*) imageForViewer { static NSImage *image = nil; if (image == nil) { NSBundle *bundle = [NSBundle bundleForClass: [WindowsPalette class]]; NSString *path = [bundle pathForImageResource: @"DrawerSmall"]; image = [[NSImage alloc] initWithContentsOfFile: path]; } return image; } @end gorm-1.2.24/Palettes/1Windows/WindowsPalette.h0000644000000000000000000000174713410616261017671 0ustar rootroot/* WindowsPalette.h Copyright (C) 1999-2006 Free Software Foundation, Inc. Author: Gregory Casamento Date: 2006 This file is part of GNUstep. This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 3 of the License, or (at your option) any later version. This program 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 General Public License for more details. You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02111 USA. */ #include @interface WindowsPalette: IBPalette @end gorm-1.2.24/Palettes/1Windows/GormWindowAttributesInspector.h0000644000000000000000000000365413410616261022751 0ustar rootroot/* GormWindowAttributesInspector.h Copyright (C) 1999-2005 Free Software Foundation, Inc. Author: Richard frith-Macdonald (richard@brainstorm.co.uk> Date: 1999 Author: Gregory John Casamento Date: 2002,2003,2004,2005 This file is part of GNUstep. This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 3 of the License, or (at your option) any later version. This program 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 General Public License for more details. You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02111 USA. */ /* July 2005 : Spilt inspector in separate classes. Always use ok: revert: methods Clean up Author : Fabien Vallon */ #ifndef INCLUDED_GormWindowAttributesInspector_h #define INCLUDED_GormWindowAttributesInspector_h #include @class NSButton; @class NSColorWell; @class NSForm; @class NSMatrix; @interface GormWindowAttributesInspector : IBInspector { NSForm *titleForm; NSMatrix *backingMatrix; /* Controls: Masks */ NSButton *miniaturizeButton; NSButton *closeButton; NSButton *resizeBarButton; /* Options */ NSButton *releaseButton; NSButton *hideButton; NSButton *visibleButton; NSButton *deferredButton; NSButton *oneShotButton; NSButton *dynamicDepthButton; /*Background Color */ NSColorWell *colorWell; /* Miniaturized Window Icon */ NSForm *iconNameForm; NSButton *clearButton; NSForm *autosaveName; } @end #endif gorm-1.2.24/Palettes/1Windows/palette.table0000644000000000000000000000032213410616261017202 0ustar rootroot{ NOTE = "Automatically generated, do not edit!"; NibFile = ""; Class = "WindowsPalette"; Icon = "WindowsPalette"; SubstituteClasses = { GormNSWindow = NSWindow; GormNSPanel = NSPanel; }; } gorm-1.2.24/Palettes/1Windows/GNUmakefile.preamble0000644000000000000000000000130713410616261020377 0ustar rootroot# Additional include directories the compiler should search ADDITIONAL_INCLUDE_DIRS += -I../.. ifeq ($(GNUSTEP_TARGET_OS),mingw32) ADDITIONAL_LIB_DIRS += \ -L../../GormLib/$(GNUSTEP_OBJ_DIR) \ -L../../GormObjCHeaderParser/$(GNUSTEP_OBJ_DIR) \ -L../../GormPrefs/$(GNUSTEP_OBJ_DIR) \ -L../../GormCore/$(GNUSTEP_OBJ_DIR) ADDITIONAL_GUI_LIBS += -lGorm -lGormCore endif ifeq ($(GNUSTEP_TARGET_OS),cygwin) ADDITIONAL_LIB_DIRS += \ -L../../GormLib/$(GNUSTEP_OBJ_DIR) \ -L../../GormObjCHeaderParser/$(GNUSTEP_OBJ_DIR) \ -L../../GormPrefs/$(GNUSTEP_OBJ_DIR) \ -L../../GormCore/$(GNUSTEP_OBJ_DIR) 1Windows_LIBRARIES_DEPEND_UPON += -lGorm -lGormCore endifgorm-1.2.24/Palettes/1Windows/Drawer.tiff0000644000000000000000000005047613410616261016650 0ustar rootrootII*PÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿPPPÿPPPÿPPPÿPPPÿPPPÿPPPÿPPPÿPPPÿPPPÿPPPÿPPPÿPPPÿPPPÿPPPÿPPPÿPPPÿPPPÿPPPÿPPPÿPPPÿPPPÿPPPÿPPPÿPPPÿPPPÿPPPÿPPPÿPPPÿPPPÿPPPÿPPPÿPPPÿPPPÿPPPÿPPPÿPPPÿPPPÿPPPÿPPPÿPPPÿPPPÿPPPÿPPPÿPPPÿPPPÿPPPÿÿPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿPPPÿÿPPPÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿPPPÿÿPPPÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿPPPPPPÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿPPPÿÿPPPÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿPPPÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿªªªÿÿªªªÿªªªÿÿªªªÿPPPÿÿPPPÿÿPPPÿPPPÿPPPÿPPPÿPPPÿPPPÿPPPÿPPPÿPPPÿPPPÿPPPÿPPPÿPPPÿPPPÿPPPÿPPPÿPPPÿPPPÿPPPÿPPPÿPPPÿPPPÿPPPÿPPPÿPPPÿPPPÿPPPÿPPPÿPPPÿÿPPPÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿªªªÿªªªÿÿÿªªªÿªªªÿPPPÿÿPPPÿÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿPPPÿÿPPPÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿªªªÿªªªÿÿÿªªªÿªªªÿPPPÿÿPPPÿÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿPPPÿÿPPPÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿªªªÿÿªªªÿªªªÿÿªªªÿPPPÿÿPPPÿÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿPPPÿÿPPPÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿPPPÿÿPPPÿÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿPPPÿÿPPPÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿPPPÿPPPÿPPPÿPPPÿPPPÿPPPÿPPPÿPPPÿÿPPPÿÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿPPPÿÿPPPÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿNNNÿÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿPPPÿÿPPPPPPÿPPPÿPPPÿPPPÿPPPÿPPPÿPPPÿPPPÿPPPÿPPPÿPPPÿPPPÿPPPÿPPPÿPPPÿPPPÿPPPÿPPPÿPPPÿPPPÿPPPÿPPPÿPPPÿPPPÿPPPÿPPPÿPPPÿPPPÿPPPÿPPPÿPPPÿPPPÿPPPÿPPPÿPPPÿPPPÿPPPÿPPPÿPPPÿNNNÿOOOÿPPPÿPPPÿPPPÿOOOÿNNNÿÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿPPPÿÿPPPPPPÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿPPPÿÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿPPPÿÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿPPPÿÿªªªPPPªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿPPPÿÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿPPPÿÿªªªPPPªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿPPPÿÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿPPPÿÿªªªPPPªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿPPPÿÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿPPPÿÿªªªPPPªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿPPPÿÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿPPPÿÿªªªPPPªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿPPPÿÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿPPPÿÿªªªPPPªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿPPPÿÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿPPPÿÿªªªPPPªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿPPPÿÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿPPPÿÿªªªPPPªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿPPPÿÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿPPPÿÿªªªPPPªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿPPPÿÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿPPPÿÿªªªPPPªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿPPPÿÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿPPPÿÿªªªPPPªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿPPPÿÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿPPPÿÿªªªPPPªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿPPPÿÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿPPPÿÿªªªPPPªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿPPPÿÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿPPPÿÿªªªPPPªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿPPPÿÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿPPPÿÿªªªPPPªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿPPPÿÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿPPPÿÿªªªPPPªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿPPPÿÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿPPPÿÿªªªPPPªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿPPPÿÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿPPPÿÿªªªPPPªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿPPPÿÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿPPPÿÿªªªPPPªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿPPPÿÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿPPPÿÿªªªPPPªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿPPPÿÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿPPPÿÿªªªPPPªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿPPPÿÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿPPPÿÿªªªPPPªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿPPPÿÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿPPPÿÿªªªPPPªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿPPPÿÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿPPPÿÿªªªPPPªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿPPPÿÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿPPPÿÿªªªPPPªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿPPPÿÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿPPPÿÿªªªPPPªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿPPPÿÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿPPPÿÿªªªPPPªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿPPPÿÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿPPPÿÿªªªPPPªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿPPPÿÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿPPPÿÿªªªPPPªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿPPPÿÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿPPPÿÿªªªPPPªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿPPPÿÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿPPPÿÿªªªPPPªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿPPPÿÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿPPPÿÿªªªPPPªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿPPPÿÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿPPPÿÿªªªPPPªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿPPPÿÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿPPPÿÿªªªPPPªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿPPPÿÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿPPPÿÿªªªPPPªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿPPPÿÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿPPPÿÿªªªPPPªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿPPPÿÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿPPPÿÿªªªPPPªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿPPPÿÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿPPPÿÿªªªPPPªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿPPPÿÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿPPPÿÿªªªPPPªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿPPPÿÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿPPPÿÿªªªPPPªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿPPPÿÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿPPPÿÿªªªPPPªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿPPPÿÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿPPPÿÿªªªPPPªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿPPPÿÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿPPPÿÿªªªPPPªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿPPPÿÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿPPPÿÿªªªPPPªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿPPPÿÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿPPPÿÿªªªPPPªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿPPPÿÿPPPÿPPPÿPPPÿPPPÿPPPÿPPPÿPPPÿPPPÿPPPÿPPPÿPPPÿPPPÿPPPÿPPPÿPPPÿPPPÿPPPÿPPPÿPPPÿPPPÿPPPÿPPPÿPPPÿPPPÿPPPÿPPPÿPPPÿPPPÿPPPÿÿªªªPPPªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿPPPÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿªªªPPPªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿPPPÿÿªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªPPPPPPÿPPPÿPPPÿPPPÿPPPÿPPPÿPPPÿPPPÿPPPÿPPPÿPPPÿPPPÿPPPÿPPPÿPPPÿPPPÿPPPÿPPPÿPPPÿPPPÿPPPÿPPPÿPPPÿPPPÿPPPÿPPPÿPPPÿPPPÿPPPÿPPPÿPPPÿPPPÿPPPÿPPPÿPPPÿPPPÿPPPÿPPPÿPPPÿPPPÿPPPÿPPPÿPPPÿPPPÿPPPÿPPPÿÿPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþP@ÚP LâP@P.Q6Q(R/home/heron/Development/gnustep/dev-apps/gorm/Palettes/1Windows/Drawer.tiffHHgorm-1.2.24/Palettes/1Windows/GormDrawerAttributesInspector.h0000644000000000000000000000213113410616261022713 0ustar rootroot/* GormDrawerAttributesInspector.m Copyright (C) 2006 Free Software Foundation, Inc. Author: Gregory John Casamento Date: 2006 This file is part of GNUstep. This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 3 of the License, or (at your option) any later version. This program 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 General Public License for more details. You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02111 USA. */ /* All Rights reserved */ #include #include @interface GormDrawerAttributesInspector : IBInspector { id preferredEdge; } @end gorm-1.2.24/Palettes/1Windows/GormWindowSizeInspector.h0000644000000000000000000000301113410616261021520 0ustar rootroot/* GormWindowSizeInspector.h Copyright (C) 1999-2005 Free Software Foundation, Inc. Author: Richard frith-Macdonald (richard@brainstorm.co.uk> Date: 1999 Author: Gregory John Casamento Date: 2005 This file is part of GNUstep. This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 3 of the License, or (at your option) any later version. This program 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 General Public License for more details. You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02111 USA. */ /* July 2005 : Spilt inspector in separate classes. Always use ok: revert: methods Clean up Author : Fabien Vallon */ #ifndef INCLUDED_GormWindowSizeInspector_h #define INCLUDED_GormWindowSizeInspector_h #include @class NSButton; @class NSForm; @interface GormWindowSizeInspector : IBInspector { NSForm *sizeForm; NSForm *minForm; NSForm *maxForm; /* AutoPosition */ NSButton *top; NSButton *bottom; NSButton *left; NSButton *right; } @end #endif gorm-1.2.24/Palettes/1Windows/GormNSWindowSizeInspector.gorm/0000755000000000000000000000000013410616261022560 5ustar rootrootgorm-1.2.24/Palettes/1Windows/GormNSWindowSizeInspector.gorm/objects.gorm0000644000000000000000000004744113410616261025111 0ustar rootrootGNUstep archive000f4240:00000023:000000e6:00000000:01GSNibContainer1NSObject01 NSMutableSet1NSSet&01GSWindowTemplate1GSClassSwapper01NSString&% NSWindow1NSWindow1 NSResponder% ?ð ?ð @q @x@JI @rà @Œ001 NSView% ?ð ?ð @q @x@  @q @x@J01 NSMutableArray1 NSArray&01 NSBox% @$ @fÀ @^€ @T  @^€ @TJ0± &0 ± % @ @ @[ @K€  @[ @K€J0 ± &0 1NSForm1NSMatrix1 NSControl% @  @Y€ @F€  @Y€ @F€J0 ± &%0 1 NSFormCell1 NSActionCell1NSCell0±&01NSFont%&&&&&&JJ&&&&&&I’ ¿€0±0±&%Field:°&&&&&&JJ&&&&&&% @Y€ @5 @01NSColor0±&% NSNamedColorSpace0±&% System0±&% controlBackgroundColor°0±& % NSFormCell%%0± &0±0±&°&&&&&&JJ&&&&&&I’ B0±0±&%Width:°&&&&&&JJ&&&&&&0±0±&°&&&&&&JJ&&&&&&I’ B0±0±&%Height:°&&&&&&JJ&&&&&&’’’°0 ±0!±& % Minimum Size°&&&&&&JJ&&&&&& @ @%%0"± % @& @p` @o€ @_€  @o€ @_€J 0#± &0$± % @ @ @mÀ @Y@  @mÀ @Y@J0%± &0&±% @I @ @`` @W@  @`` @W@J0'± &%0(±0)±&°&&&&&&JJ&&&&&&I’ ¿€0*±0+±&%Field:°&&&&&&JJ&&&&&&% @`` @5 @°°0,±& % NSFormCell%%0-± &0.±0/±&°&&&&&&JJ&&&&&&I’ B00±01±&%X:°&&&&&&JJ&&&&&&02±03±&°&&&&&&JJ&&&&&&I’ B04±05±&%Y:°&&&&&&JJ&&&&&&06±07±&°&&&&&&JJ&&&&&&I’ B08±09±&%Width:°&&&&&&JJ&&&&&&0:±0;±&°&&&&&&JJ&&&&&&I’ B0<±0=±&%Height:°&&&&&&JJ&&&&&&’’’°:0>±0?±&%Size°&&&&&&JJ&&&&&& @ @%%0@± % @a @fÀ @_€ @T  @_€ @TJ 0A± &0B± % @ @ @\ @K€  @\ @K€J0C± &0D±% @" @  @XÀ @F€  @XÀ @F€J0E± &%0F±0G±&°&&&&&&JJ&&&&&&I’ ¿€0H±0I±&%Field:°&&&&&&JJ&&&&&&% @XÀ @5 @°°0J±& % NSFormCell%%0K± &0L±0M±&°&&&&&&JJ&&&&&&I’ B0N±0O±&%Width:°&&&&&&JJ&&&&&&0P±0Q±&°&&&&&&JJ&&&&&&I’ B0R±0S±&%Height:°&&&&&&JJ&&&&&&’’’°P0T±0U±& % Maximum Size°&&&&&&JJ&&&&&& @ @%%0V± % @G€ @  @e@ @e@  @e@ @e@J20W± &0X± % @ @ @cÀ @b`  @cÀ @b`J0Y± &0Z1NSButton% @K€ @F @I @J€  @I @J€J0[± &%0\1 NSButtonCell0]±&0^1NSImage @H @H0_±0`±&% NSCalibratedWhiteColorSpace 0a± &0b1NSBitmapImageRep1 NSImageRep0c±&% NSDeviceRGBColorSpace @H @HII0I00d1NSData&$š$šII*$ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿOÿ???ÿ???ÿ???ÿ???ÿ???ÿ???ÿ???ÿ???ÿ???ÿ???ÿ???ÿ???ÿ???ÿ???ÿ???ÿ???ÿ???ÿ???ÿ???ÿ???ÿ???ÿ???ÿ???ÿ???ÿ???ÿ???ÿ???ÿ???ÿ???ÿ???ÿ???ÿ???ÿ???ÿ???ÿ???ÿ???ÿ???ÿ???ÿ???ÿ???ÿ???ÿ???ÿ???ÿ+++ÿÿ…ÿ???ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ+++ÿÿ…Oÿ???ÿÿUUUÿ€€€ÿªªªÿUUUÿÿÿÿÿÿÿÿÿÿÿÿ888ÿÿÿ888ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ+++ÿªªªÿ+++ÿUUUÿÿ+++ÿÿ…Oÿ???ÿÿUUUÿ+++ÿªªªÿUUUÿÿÿÿÿÿÿÿÿÿÿUUUÿUUUÿUUUÿUUUÿªªªÿÿqqqÿUUUÿqqqÿUUUÿUUUÿUUUÿÿÿÿÿÿÿÿÿÿÿªªªÿªªªÿªªªÿUUUÿÿ+++ÿÿ…Oÿ???ÿÿªªªÿªªªÿªªªÿUUUÿÿÿÿÿÿÿÿÿÿÿUUUÿqqqÿUUUÿ888ÿÿUUUÿUUUÿÿqqqÿªªªÿÿqqqÿÿÿÿÿÿÿÿÿÿÿ+++ÿªªªÿ+++ÿUUUÿÿ+++ÿÿ…Oÿ???ÿÿUUUÿUUUÿUUUÿUUUÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ888ÿÿÿÿÿÿÿÿÿÿÿÿUUUÿUUUÿUUUÿUUUÿÿ+++ÿÿ…Oÿ???ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ+++ÿÿ…Oÿ+++ÿ+++ÿ+++ÿ+++ÿ+++ÿ+++ÿ+++ÿ+++ÿ+++ÿ+++ÿ+++ÿ+++ÿ+++ÿ+++ÿ+++ÿ+++ÿ+++ÿ+++ÿ+++ÿ+++ÿ+++ÿ+++ÿ+++ÿ+++ÿ+++ÿ+++ÿ+++ÿ+++ÿ+++ÿ+++ÿ+++ÿ+++ÿ+++ÿ+++ÿ+++ÿ+++ÿ+++ÿ+++ÿ+++ÿ+++ÿ+++ÿ+++ÿ+++ÿ+++ÿÿ…Oÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ…Oÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ…Oÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ…Oÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ…Oÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ…Oÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ…Oÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ…Oÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ…Oÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ…Oÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ…Oÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ…Oÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ…Oÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ…Oÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ…Oÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ…Oÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ…Oÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ…Oÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ…Oÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ…Oÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ…Oÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ…Oÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ…Oÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ…Oÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ…Oÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ…Oÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ…Oÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ…Oÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ…Oÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ…Oÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ…Oÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ…Oÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ…Oÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ…Oÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ…Oÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ…Oÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ…Oÿ ÿÿÿÿÿÿ ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ…OO…………………………………………………………………………………………………………………………OOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO þÿ00’$$R0e±% A@&&&&&&JJ&&&&&&I’0f±&0g±&&&& &&0h±% @Q@ À @4 @I  @4 @IJ%0i± &%0j±0k±&0l±0m±& % GormEVLine°e&&&&&&JJ&&&&&&I’0n±&0o±&0p±0q±& % GormEVCoil&&& &&0r±% @Q@ @X@ @4 @I  @4 @IJ 0s± &%0t±0u±&°l°e&&&&&&JJ&&&&&&I’0v±&0w±&°p&&& &&0x±% @Z@ @P€ @I @4  @I @4J)0y± &%0z±0{±&%Button0|±0}±& % GormEHLine°e&&&&&&JJ&&&&&&I’0~±&0±&0€±0±& % GormEHCoil&&& &&0‚±% @ @P€ @I @4  @I @4J,0ƒ± &%0„±0…±&°|°e&&&&&&JJ&&&&&&I’0†±&0‡±&°€&&& &&0ˆ1NSTextFieldCell0‰±& % Autoposition°e&&&&&&JJ &&&&&&I’0б°°0‹±&% windowBackgroundColor0Œ±0±&% NSCalibratedRGBColorSpace ?€ @ @%%°Š0ޱ&%Window0±&%Window Size Inspector° @ @9 @È @ÈI&   @ž @à0± &0‘± &0’1NSMutableDictionary1 NSDictionary&0“±&%Form1° 0”±&%Button4°‚0•±&%View°B0–±&%Form3°&0—±&%Box°@0˜±&%View1°X0™±&%Box1°"0š±& % TextField0›1 NSTextField% @S€ @`€ @TÀ @,  @TÀ @,J0œ± &%0±0ž±&%Title°e&&&&&&JJ &&&&&&I’0Ÿ±° ?€ ?€ ?€ ?€ ?€0 ±° ?€’0¡±&%Box3°V0¢±&%Button1°h0£±&%Button3°x0¤±&%Form°D0¥±&% NSOwner0¦±&%GormWindowSizeInspector0§±&%Box2°0¨±& % Inspector°0©±&%Button2°r0ª±&%Button°Z0«± &##0¬1 NSNibConnector°¨0­±&% NSOwner0®± °š°¨0¯1!NSNibOutletConnector°­°¨0°±&%window0±± °§0²± °™0³± °—0´± °•°—0µ± °¡0¶± °˜°¡0·± °ª°˜0¸± °¢°˜0¹± °©°˜0º± °£°˜0»± °”°˜0¼±!°­°©0½±&%top0¾±!°­°¢0¿±&%bottom0À±!°­°”0Á±&%left0±!°­°£0ñ&%right0ı °–0ű!°­°–0Æ1"NSMutableString&%sizeForm0DZ °¤°•0ȱ!°­°¤0ɱ"&%maxForm0ʱ °“0˱!°­°“0̱"&%minForm0ͱ!°–°“0α"& % nextKeyView0ϱ!°“°¤°Î0б!°¤°–°Î0ѱ!°“°­0Ò±"&%delegate0Ó±!°¤°­°Ò0Ô±!°¨°–0Õ±"&%initialFirstResponder0Ö1#NSNibControlConnector°£°­0×±"&%ok:0ر#°”°­°×0Ù±#°©°­°×0Ú±#°¢°­0Û±"&%ok:0ܱ#°–°­0ݱ"&%ok:0Þ±&gorm-1.2.24/Palettes/1Windows/GormNSWindowSizeInspector.gorm/data.classes0000644000000000000000000000041013410616261025043 0ustar rootroot{ "## Comment" = "Do NOT change this file, Gorm maintains it"; GormWindowSizeInspector = { Actions = ( ); Outlets = ( minForm, sizeForm, window, bottom, left, maxForm, right, top ); Super = IBInspector; }; }gorm-1.2.24/Palettes/1Windows/GormNSWindowSizeInspector.gorm/data.info0000644000000000000000000000027013410616261024345 0ustar rootrootGNUstep archive000f4240:00000003:00000003:00000000:01GormFilePrefsManager1NSObject%01NSString&%Latest Version0±& % Typed Streamgorm-1.2.24/Palettes/1Windows/WindowDrag.tiff0000644000000000000000000005030213410616261017455 0ustar rootrootII*PÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿPPPÿPPPÿPPPÿPPPÿPPPÿPPPÿPPPÿPPPÿPPPÿPPPÿPPPÿPPPÿPPPÿPPPÿPPPÿPPPÿPPPÿPPPÿPPPÿPPPÿPPPÿPPPÿPPPÿPPPÿPPPÿPPPÿPPPÿPPPÿPPPÿPPPÿPPPÿPPPÿPPPÿPPPÿPPPÿPPPÿPPPÿPPPÿPPPÿPPPÿPPPÿPPPÿPPPÿPPPÿPPPÿPPPÿPPPÿPPPÿPPPÿPPPÿPPPÿPPPÿPPPÿPPPÿPPPÿPPPÿPPPÿPPPÿPPPÿPPPÿPPPÿPPPÿPPPÿPPPÿPPPÿPPPÿPPPÿPPPÿPPPÿPPPÿPPPÿPPPÿPPPÿPPPÿPPPÿPPPÿPPPÿPPPÿÿÿPPPÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿPPPÿÿÿPPPÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿPPPÿÿPPPÿÿÿPPPÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿPPPÿÿPPPÿÿÿPPPÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿªªªÿÿªªªÿªªªÿÿªªªÿPPPÿÿPPPÿÿÿPPPÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿªªªÿªªªÿÿÿªªªÿªªªÿPPPÿÿPPPÿÿÿPPPÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿªªªÿªªªÿÿÿªªªÿªªªÿPPPÿÿPPPÿÿÿPPPÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿªªªÿÿªªªÿªªªÿÿªªªÿPPPÿÿPPPÿÿÿPPPÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿPPPÿÿPPPÿÿÿPPPÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿPPPÿPPPÿPPPÿPPPÿPPPÿPPPÿPPPÿPPPÿÿPPPÿÿÿPPPÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿPPPÿÿÿPPPÿPPPÿPPPÿPPPÿPPPÿPPPÿPPPÿPPPÿPPPÿPPPÿPPPÿPPPÿPPPÿPPPÿPPPÿPPPÿPPPÿPPPÿPPPÿPPPÿPPPÿPPPÿPPPÿPPPÿPPPÿPPPÿPPPÿPPPÿPPPÿPPPÿPPPÿPPPÿPPPÿPPPÿPPPÿPPPÿPPPÿPPPÿPPPÿPPPÿPPPÿPPPÿPPPÿPPPÿPPPÿPPPÿPPPÿPPPÿPPPÿPPPÿPPPÿPPPÿPPPÿPPPÿPPPÿPPPÿPPPÿPPPÿPPPÿPPPÿPPPÿPPPÿPPPÿPPPÿPPPÿPPPÿPPPÿPPPÿPPPÿPPPÿPPPÿPPPÿPPPÿPPPÿPPPÿPPPÿPPPÿPPPÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿPPPÿÿÿÿÿÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿPPPÿÿÿÿÿÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿPPPÿÿÿÿÿÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿPPPÿÿÿÿÿÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿPPPÿÿÿÿÿÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿPPPÿÿÿÿÿÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿPPPÿÿÿÿÿÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿPPPÿÿÿÿÿÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿPPPÿÿÿÿÿÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿPPPÿÿÿÿÿÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿPPPÿÿÿÿÿÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿPPPÿÿÿÿÿÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿPPPÿÿÿÿÿÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿPPPÿÿÿÿÿÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿPPPÿÿÿÿÿÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿPPPÿÿÿÿÿÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿPPPÿÿÿÿÿÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿPPPÿÿÿÿÿÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿPPPÿÿÿÿÿÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿPPPÿÿÿÿÿÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿPPPÿÿÿÿÿÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿPPPÿÿÿÿÿÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿPPPÿÿÿÿÿÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿPPPÿÿÿÿÿÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿPPPÿÿÿÿÿÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿPPPÿÿÿÿÿÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿPPPÿÿÿÿÿÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿPPPÿÿÿÿÿÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿPPPÿÿÿÿÿÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿPPPÿÿÿÿÿÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿPPPÿÿÿÿÿÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿPPPÿÿÿÿÿÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿPPPÿÿÿÿÿÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿPPPÿÿÿÿÿÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿPPPÿÿÿÿÿÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿPPPÿÿÿÿÿÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿPPPÿÿÿÿÿÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿPPPÿÿÿÿÿÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿPPPÿÿÿÿÿÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿPPPÿÿÿÿÿÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿPPPÿÿÿÿÿÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿPPPÿÿÿÿÿÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿPPPÿÿÿÿÿÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿPPPÿÿÿÿÿÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿPPPÿÿÿÿÿÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿPPPÿÿÿÿÿÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿPPPÿÿÿÿÿÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿPPPÿÿÿÿÿÿPPPÿPPPÿPPPÿPPPÿPPPÿPPPÿPPPÿPPPÿPPPÿPPPÿPPPÿPPPÿPPPÿPPPÿPPPÿPPPÿPPPÿPPPÿPPPÿPPPÿPPPÿPPPÿPPPÿPPPÿPPPÿPPPÿPPPÿPPPÿPPPÿPPPÿPPPÿPPPÿPPPÿPPPÿPPPÿPPPÿPPPÿPPPÿPPPÿPPPÿPPPÿPPPÿPPPÿPPPÿPPPÿPPPÿPPPÿPPPÿPPPÿPPPÿPPPÿPPPÿPPPÿPPPÿPPPÿPPPÿPPPÿPPPÿPPPÿPPPÿPPPÿPPPÿPPPÿPPPÿPPPÿPPPÿPPPÿPPPÿPPPÿPPPÿPPPÿPPPÿPPPÿPPPÿPPPÿPPPÿPPPÿPPPÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ P@ªPP²PºP(R€ü '€ü 'gorm-1.2.24/Palettes/1Windows/GormDrawerAttributesInspector.m0000644000000000000000000000320313410616261022721 0ustar rootroot/* GormDrawerAttributesInspector.m Copyright (C) 2006 Free Software Foundation, Inc. Author: Gregory John Casamento Date: 2006 This file is part of GNUstep. This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 3 of the License, or (at your option) any later version. This program 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 General Public License for more details. You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02111 USA. */ /* All Rights reserved */ #include #include "GormDrawerAttributesInspector.h" @implementation GormDrawerAttributesInspector - (id) init { if ([super init] == nil) return nil; if ([NSBundle loadNibNamed: @"GormDrawerAttributesInspector" owner: self] == NO) { NSLog(@"Could not gorm GormDrawerAttributesInspector"); return nil; } return self; } - (void) ok: (id) sender { id drawer = [self object]; [drawer setPreferredEdge: [[sender selectedItem] tag]]; } - (void) revert: (id) sender { id drawer = [self object]; NSUInteger i = [preferredEdge indexOfItemWithTag: [drawer preferredEdge]]; if(i != NSNotFound) { [preferredEdge selectItemAtIndex: i]; } } @end gorm-1.2.24/Palettes/1Windows/GormWindowSizeInspector.m0000644000000000000000000001272513410616261021541 0ustar rootroot/* GormWindowSizeInspector.m Copyright (C) 1999-2005 Free Software Foundation, Inc. Author: Richard frith-Macdonald (richard@brainstorm.co.uk> Date: 1999 Author: Gregory John Casamento Date: 2005 This file is part of GNUstep. This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 3 of the License, or (at your option) any later version. This program 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 General Public License for more details. You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02111 USA. */ /* July 2005 : Split inspector classes into separate files. Always use ok: revert: methods Clean up Author : Fabien Vallon */ #include "GormWindowSizeInspector.h" #include #include #include #include #include #include #include /* IBObjectAdditions category for NSPanel */ @implementation NSPanel (IBObjectAdditionsSize) - (NSString*) sizeInspectorClassName { return @"GormWindowSizeInspector"; } @end /* IBObjectAdditions category for NSWindow */ @implementation NSWindow (IBObjectAdditionsSize) - (NSString*) sizeInspectorClassName { return @"GormWindowSizeInspector"; } @end @implementation GormWindowSizeInspector - (id) init { if ([super init] == nil) return nil; if ([NSBundle loadNibNamed: @"GormNSWindowSizeInspector" owner: self] == NO) { NSLog(@"Could not gorm GormNSWindowSizeInspector"); return nil; } [[NSNotificationCenter defaultCenter] addObserver: self selector: @selector(windowChangeNotification:) name: NSWindowDidMoveNotification object: object]; [[NSNotificationCenter defaultCenter] addObserver: self selector: @selector(windowChangeNotification:) name: NSWindowDidResizeNotification object: object]; return self; } - (void) setObject: (id)obj { [super setObject: obj]; // set up tags... [top setTag: GSWindowMaxYMargin]; [bottom setTag: GSWindowMinYMargin]; [left setTag: GSWindowMinXMargin]; [right setTag: GSWindowMaxXMargin]; // reset information in forms... } /* Commit changes that the user makes in the Window Size Inspector */ - (void) ok: (id)sender { /* Size */ if (sender == sizeForm) { NSRect rect; rect = NSMakeRect([[sender cellAtIndex: 0] floatValue], [[sender cellAtIndex: 1] floatValue], [[sender cellAtIndex: 2] floatValue], [[sender cellAtIndex: 3] floatValue]); [object setFrame: rect display: YES]; } /* Min Size */ else if (sender == minForm) { NSSize size; size = NSMakeSize([[minForm cellAtIndex: 0] floatValue], [[minForm cellAtIndex: 1] floatValue]); [object setMinSize: size]; } /* Max Size */ else if (sender == maxForm) { NSSize size; size = NSMakeSize([[maxForm cellAtIndex: 0] floatValue], [[maxForm cellAtIndex: 1] floatValue]); [object setMaxSize: size]; } /* AutoPosition */ else if ( sender == top || sender == bottom || sender == left || sender == right ) { unsigned mask = [sender tag]; if ([sender state] == NSOnState) { mask = [object autoPositionMask] | mask; } else { mask = [object autoPositionMask] & ~mask; } [object setAutoPositionMask: mask]; } [super ok: sender]; } /* Sync from object ( NSWindow ) changes to the inspector */ - (void) revert: (id)sender { NSRect frame; NSSize size; unsigned int mask; if ( object == nil ) return; // Abort editing of the fields, so that the new values can be // populated. [sizeForm abortEditing]; [minForm abortEditing]; [maxForm abortEditing]; mask = [object autoPositionMask]; frame = [object frame]; [[sizeForm cellAtIndex: 0] setFloatValue: NSMinX(frame)]; [[sizeForm cellAtIndex: 1] setFloatValue: NSMinY(frame)]; [[sizeForm cellAtIndex: 2] setFloatValue: NSWidth(frame)]; [[sizeForm cellAtIndex: 3] setFloatValue: NSHeight(frame)]; size = [object minSize]; [[minForm cellAtIndex: 0] setFloatValue: size.width]; [[minForm cellAtIndex: 1] setFloatValue: size.height]; size = [object maxSize]; [[maxForm cellAtIndex: 0] setFloatValue: size.width]; [[maxForm cellAtIndex: 1] setFloatValue: size.height]; if (mask & GSWindowMaxYMargin) [top setState: NSOnState]; else [top setState: NSOffState]; if (mask & GSWindowMinYMargin) [bottom setState: NSOnState]; else [bottom setState: NSOffState]; if (mask & GSWindowMaxXMargin) [right setState: NSOnState]; else [right setState: NSOffState]; if (mask & GSWindowMinXMargin) [left setState: NSOnState]; else [left setState: NSOffState]; [super revert:object]; } - (void) windowChangeNotification: (NSNotification*)aNotification { [self revert: nil]; } /* Delegate for textFields / Forms */ - (void)controlTextDidChange:(NSNotification *)aNotification { [self ok: [aNotification object]]; } @end gorm-1.2.24/Palettes/1Windows/GNUmakefile0000644000000000000000000000336413410616261016616 0ustar rootroot# GNUmakefile # # Copyright (C) 1999-2005 Free Software Foundation, Inc. # # Author: Richard Frith-Macdonald # Date: 1999 # # This file is part of GNUstep. # # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 2 of the License, or # (at your option) any later version. # # This program 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 General Public License for more details. # # You should have received a copy of the GNU General Public License # along with this program; if not, write to the Free Software # Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. PACKAGE_NAME = gorm include $(GNUSTEP_MAKEFILES)/common.make PALETTE_NAME = 1Windows 1Windows_PALETTE_ICON = WindowsPalette 1Windows_OBJC_FILES = \ WindowsPalette.m \ GormDrawerAttributesInspector.m \ GormWindowAttributesInspector.m\ GormWindowSizeInspector.m \ inspectors.m 1Windows_HEADER_FILES = \ GormNSWindow.h \ GormWindowAttributesInspector.h\ GormWindowSizeInspector.h\ GormNSPanel.h \ WindowsPalette.h 1Windows_PRINCIPAL_CLASS = WindowsPalette 1Windows_RESOURCE_FILES = \ WindowsPalette.tiff \ WindowDrag.tiff \ Drawer.tiff \ DrawerSmall.tiff \ GormDrawerAttributesInspector.gorm \ GormNSWindowSizeInspector.gorm \ GormNSWindowInspector.gorm \ palette.table 1Windows_STANDARD_INSTALL = no -include GNUmakefile.preamble -include GNUmakefile.local include $(GNUSTEP_MAKEFILES)/palette.make -include GNUmakefile.postamble gorm-1.2.24/Palettes/1Windows/WindowsPalette.m0000644000000000000000000001160013410616261017663 0ustar rootroot/* main.m Copyright (C) 1999-2005 Free Software Foundation, Inc. Author: Richard frith-Macdonald (richard@brainstorm.co.uk> Date: 1999 This file is part of GNUstep. This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 3 of the License, or (at your option) any later version. This program 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 General Public License for more details. You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02111 USA. */ #include #include #include #include #include #include #include #include "GormWindowSizeInspector.h" #include "WindowsPalette.h" @interface GormWindowMaker : NSObject { } @end @implementation GormWindowMaker - (void) encodeWithCoder: (NSCoder*)aCoder { } - (id) initWithCoder: (NSCoder*)aCoder { id w; unsigned style = ( NSTitledWindowMask | NSClosableWindowMask | NSResizableWindowMask | NSMiniaturizableWindowMask); NSRect screenRect = [[NSScreen mainScreen] frame]; float x = (screenRect.size.width - 500)/2; float y = (screenRect.size.height - 300)/2; NSRect windowRect = NSMakeRect(x,y,500,300); w = [[GormNSWindow alloc] initWithContentRect: windowRect styleMask: style backing: NSBackingStoreRetained defer: NO]; [w setFrame: windowRect display: YES]; [w setTitle: @"Window"]; [w orderFront: self]; RELEASE(self); return w; } @end @interface GormPanelMaker : NSObject { } @end @implementation GormPanelMaker - (void) encodeWithCoder: (NSCoder*)aCoder { } - (id) initWithCoder: (NSCoder*)aCoder { id w; unsigned style = NSTitledWindowMask | NSClosableWindowMask | NSResizableWindowMask; NSRect screenRect = [[NSScreen mainScreen] frame]; float x = (screenRect.size.width - 500)/2, y = (screenRect.size.height - 300)/2; NSRect windowRect = NSMakeRect(x,y,500,300); w = [[GormNSPanel alloc] initWithContentRect: windowRect styleMask: style backing: NSBackingStoreRetained defer: NO]; [w setFrame: windowRect display: YES]; [w setTitle: @"Panel"]; [w orderFront: self]; RELEASE(self); return w; } @end @implementation WindowsPalette - (void) finishInstantiate { NSView *contents; id w; id v; NSBundle *bundle = [NSBundle bundleForClass: [self class]]; NSString *path = [bundle pathForImageResource: @"WindowDrag"]; NSImage *dragImage = [[NSImage alloc] initWithContentsOfFile: path]; NSString *drawerPath = [bundle pathForImageResource: @"Drawer"]; NSImage *drawerImage = [[NSImage alloc] initWithContentsOfFile: drawerPath]; NSFont *systemFont = [NSFont boldSystemFontOfSize: [NSFont systemFontSize]]; RELEASE(originalWindow); originalWindow = [[NSWindow alloc] initWithContentRect: NSMakeRect(0, 0, 272, 192) styleMask: NSBorderlessWindowMask backing: NSBackingStoreRetained defer: NO]; contents = [originalWindow contentView]; w = [[GormWindowMaker alloc] init]; v = [[NSButton alloc] initWithFrame: NSMakeRect(35, 100, 80, 64)]; [v setFont: systemFont]; [v setBordered: NO]; [v setImage: dragImage]; [v setImagePosition: NSImageOverlaps]; [v setTitle: @"Window"]; [contents addSubview: v]; [self associateObject: w type: IBWindowPboardType with: v]; RELEASE(v); RELEASE(w); w = [[GormPanelMaker alloc] init]; v = [[NSButton alloc] initWithFrame: NSMakeRect(155, 100, 80, 64)]; [v setFont: systemFont]; [v setBordered: NO]; [v setImage: dragImage]; [v setImagePosition: NSImageOverlaps]; [v setTitle: @"Panel"]; [contents addSubview: v]; [self associateObject: w type: IBWindowPboardType with: v]; RELEASE(v); RELEASE(w); w = [[NSDrawer alloc] init]; v = [[NSButton alloc] initWithFrame: NSMakeRect(95, 30, 80, 64)]; [v setFont: systemFont]; [v setBordered: NO]; [v setImage: drawerImage]; [v setImagePosition: NSImageOverlaps]; [v setTitle: @"Drawer"]; [contents addSubview: v]; [self associateObject: w type: IBObjectPboardType with: v]; RELEASE(v); RELEASE(w); RELEASE(dragImage); RELEASE(drawerImage); } @end @implementation NSWindow (GormPrivate) + (id) allocSubstitute { return [GormNSWindow alloc]; } @end @implementation NSPanel (GormPrivate) + (id) allocSubstitute { return [GormNSPanel alloc]; } @end gorm-1.2.24/Palettes/1Windows/GormWindowAttributesInspector.m0000644000000000000000000001520613410616261022752 0ustar rootroot/* GormWindowAttributesInspector.m Copyright (C) 1999-2005 Free Software Foundation, Inc. Author: Richard frith-Macdonald (richard@brainstorm.co.uk> Date: 1999 Author: Gregory John Casamento Date: 2002,2003,2004,2005 This file is part of GNUstep. This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 3 of the License, or (at your option) any later version. This program 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 General Public License for more details. You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02111 USA. */ /* July 2005 : Split inspector classes into separate files. Always use ok: revert: methods Clean up Author : Fabien Vallon */ #include "GormWindowAttributesInspector.h" #include #include #include #include @implementation GormWindowAttributesInspector - (id) init { if ([super init] == nil) return nil; if ([NSBundle loadNibNamed: @"GormNSWindowInspector" owner: self] == NO) { NSLog(@"Could not gorm GormNSWindowInspector"); return nil; } return self; } /* Commit changes that the user makes in the Attributes Inspector */ - (void) ok: (id)sender { /* title */ if (sender == titleForm) { [object setTitle: [[sender cellAtIndex: 0] stringValue] ]; } /* title */ else if (sender == autosaveName) { [object setFrameAutosaveName: [[sender cellAtIndex: 0] stringValue] ]; } /* backing Type */ else if (sender == backingMatrix) { [object setBackingType: [[sender selectedCell] tag] ]; } /* Masks */ else if ( ( sender == miniaturizeButton ) || ( sender == closeButton ) || ( sender == resizeBarButton ) ) { unsigned int newStyleMask = [object _styleMask]; if ( [miniaturizeButton state] == NSOnState ) newStyleMask |= NSMiniaturizableWindowMask; else newStyleMask &= ~NSMiniaturizableWindowMask; if ( [closeButton state] == NSOnState ) newStyleMask |= NSClosableWindowMask; else newStyleMask &= ~NSClosableWindowMask; if ( [resizeBarButton state] == NSOnState ) newStyleMask |= NSResizableWindowMask; else newStyleMask &= ~NSResizableWindowMask; [object _setStyleMask: newStyleMask]; // The window proxy hides the current button config since // we need to be able to use them in Gorm. The state is shown // on the inspector window. Redisplay the window anyway. [object display]; } /* backgroundColor */ else if (sender == colorWell) { [object setBackgroundColor: [colorWell color]]; } /* release When Closed */ else if ( sender == releaseButton ) { [object _setReleasedWhenClosed:[releaseButton state]]; } /* hide On Desactivate */ else if ( sender == hideButton ) { [object setHidesOnDeactivate:[hideButton state]]; } /* visible at launch time */ else if ( sender == visibleButton ) { GormDocument *doc = (GormDocument*)[(id)NSApp activeDocument]; [doc setObject: object isVisibleAtLaunch: [visibleButton state]]; } /* deferred */ else if ( sender == deferredButton ) { GormDocument *doc = (GormDocument*)[(id)NSApp activeDocument]; [doc setObject: object isDeferred: [deferredButton state]]; } /* One shot */ else if ( sender == oneShotButton ) { [object setOneShot:[oneShotButton state]]; } /* Dynamic depth */ else if ( sender == dynamicDepthButton ) { [object setDynamicDepthLimit: [dynamicDepthButton state]]; } /* icon name */ else if (sender == iconNameForm) { NSString *string = [[sender cellAtIndex: 0] stringValue]; NSImage *image; /* the clearButton is disabled if the form is empty, enabled otherwise */ // This allows the user to set the icon, if they wish, for the mini window. // if it's clear it will default to the application icon. if ([string length] > 0) { image = [NSImage imageNamed: string]; [object setMiniwindowImage: image]; [clearButton setEnabled:YES]; } else { // use the default, if the string is empty. [object setMiniwindowImage: nil]; [clearButton setEnabled:NO]; } } /* clear the iconNameForm from clearButton */ else if (sender == clearButton) { [[iconNameForm cellAtIndex: 0] setStringValue: nil]; [object setMiniwindowImage: nil]; [clearButton setEnabled:NO]; } [super ok: sender]; } /* Sync from object ( NSWindow ) changes to the inspector */ - (void) revert:(id) sender { GormDocument *doc; if ( object == nil ) return; doc = (GormDocument*)[(id)NSApp activeDocument]; /* Title */ [[titleForm cellAtIndex: 0] setStringValue: [object title] ]; // Autosave name [[autosaveName cellAtIndex: 0] setStringValue: [object frameAutosaveName] ]; /* Backing */ [backingMatrix selectCellWithTag: [object backingType] ]; /* Controls / Masks */ [miniaturizeButton setState: ([object _styleMask] & NSMiniaturizableWindowMask)]; [closeButton setState:([object _styleMask] & NSClosableWindowMask)]; [resizeBarButton setState:([object _styleMask] & NSResizableWindowMask)]; /* Options */ [releaseButton setState:[object _isReleasedWhenClosed]]; [hideButton setState:[object hidesOnDeactivate]]; [visibleButton setState:[doc objectIsVisibleAtLaunch: object]]; [deferredButton setState:[doc objectIsDeferred: object]]; [oneShotButton setState:[object isOneShot]]; [dynamicDepthButton setState:[object hasDynamicDepthLimit]]; /* Icon Name */ [[iconNameForm cellAtIndex: 0] setStringValue: [[object miniwindowImage] name]]; /* the clearButton is disabled if the form is empty, enabled otherwise */ if ( [[object miniwindowImage] name] == nil ) [clearButton setEnabled:NO]; else [clearButton setEnabled:YES]; /* background color*/ [colorWell setColorWithoutAction: [object backgroundColor]]; [super revert:sender]; } /* delegate method for changing the Window title */ - (void)controlTextDidChange:(NSNotification *)aNotification { [self ok:[aNotification object]]; } @end gorm-1.2.24/Palettes/1Windows/DrawerSmall.tiff0000644000000000000000000001670413410616261017635 0ustar rootrootII*ˆ ÿ ÿ ÿ ÿ ÿ ÿ ÿ ÿ ÿ ÿ ÿ ÿ ÿ ÿ ÿ ÿ ÿ ÿ ÿ ÿ ÿ ÿ ÿ ÿ ÿ ÿ ÿÿ3ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ%%%ÿGGGÿGGGÿGGGÿ???ÿÿ000ÿ3ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿfffÿÓÓÓÿÈÈÈÿÈÈÈÿ°°°ÿ ÿ000ÿ²ŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸ ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿfffÿ¨¨¨ÿWWWÿWWWÿ………ÿ ÿ000ÿ___ÿwwwÿwwwÿwwwÿwwwÿwwwÿwwwÿwwwÿwwwÿwwwÿwwwÿwwwÿwwwÿwwwÿwwwÿwwwÿwwwÿ000ÿ3ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿfffÿ³³³ÿLLLÿLLLÿÿ ÿ000ÿˆˆˆÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿ000ÿ3ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿbbbÿ©©©ÿÿÿˆˆˆÿ ÿ000ÿˆˆˆÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿ000ÿ3ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ+++ÿ+++ÿ+++ÿ+++ÿÿ///ÿˆˆˆÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿ000ÿ3000ÿ///ÿ///ÿ000ÿ///ÿ///ÿ000ÿ///ÿ///ÿ000ÿ///ÿ///ÿ000ÿ///ÿ///ÿ000ÿ///ÿ///ÿ000ÿ///ÿ///ÿ000ÿ///ÿ///ÿ///ÿ///ÿ///ÿ"""ÿˆˆˆÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿ000ÿ3uuuÿuuuÿuuuÿuuuÿuuuÿuuuÿuuuÿuuuÿuuuÿuuuÿuuuÿuuuÿuuuÿuuuÿuuuÿuuuÿuuuÿuuuÿuuuÿuuuÿuuuÿuuuÿuuuÿuuuÿuuuÿuuuÿuuuÿ!!!ÿˆˆˆÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿ000ÿ3ªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿ000ÿˆˆˆÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿ000ÿ3ªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿ000ÿˆˆˆÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿ000ÿ3ªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿ000ÿˆˆˆÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿ000ÿ3ªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿ000ÿˆˆˆÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿ000ÿ3ªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿ000ÿˆˆˆÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿ000ÿ3ªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿ000ÿˆˆˆÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿ000ÿ3ªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿ000ÿˆˆˆÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿ000ÿ3ªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿ000ÿˆˆˆÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿ000ÿ3ªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿ000ÿˆˆˆÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿ000ÿ3ªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿ000ÿˆˆˆÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿ000ÿ3ªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿ000ÿˆˆˆÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿ000ÿ3ªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿ000ÿˆˆˆÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿ000ÿ3ªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿ000ÿˆˆˆÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿ000ÿ3ªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿ000ÿˆˆˆÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿ000ÿ3ªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿ000ÿˆˆˆÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿ000ÿ3ªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿ000ÿˆˆˆÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿ000ÿ3ªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿ000ÿˆˆˆÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿ000ÿ3ªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿ000ÿˆˆˆÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿ000ÿ3ªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿ000ÿˆˆˆÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿ000ÿ3ªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿ000ÿˆˆˆÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿ000ÿ3ªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿ000ÿˆˆˆÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿ000ÿ3ªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿ000ÿˆˆˆÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿ000ÿ3ªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿ000ÿˆˆˆÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿ000ÿ3ªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿ000ÿˆˆˆÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿ000ÿ3ªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿ000ÿˆˆˆÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿ000ÿ3ªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿ000ÿˆˆˆÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿ000ÿ3ªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿ000ÿ***ÿ555ÿ555ÿ555ÿ555ÿ555ÿ555ÿ555ÿ555ÿ555ÿ555ÿ555ÿ555ÿ555ÿ555ÿ555ÿ555ÿÿ3™™™ÿ™™™ÿ™™™ÿ™™™ÿ™™™ÿ™™™ÿ™™™ÿ™™™ÿ™™™ÿ™™™ÿ™™™ÿ™™™ÿ™™™ÿ™™™ÿ™™™ÿ™™™ÿ™™™ÿ™™™ÿ™™™ÿ™™™ÿ™™™ÿ™™™ÿ™™™ÿ™™™ÿ™™™ÿ™™™ÿ™™™ÿ000ÿ`88888888888888888 !!!ÿ!!!ÿ!!!ÿ!!!ÿ!!!ÿ!!!ÿ!!!ÿ!!!ÿ!!!ÿ!!!ÿ!!!ÿ!!!ÿ!!!ÿ!!!ÿ!!!ÿ!!!ÿ!!!ÿ!!!ÿ!!!ÿ!!!ÿ!!!ÿ!!!ÿ!!!ÿ!!!ÿ!!!ÿ!!!ÿ!!!ÿÿ3þ0&Z Qb@€´¼(R/home/heron/Development/gnustep/dev-apps/gorm/Palettes/1Windows/DrawerSmall.tiffHHgorm-1.2.24/Palettes/1Windows/WindowsPalette.tiff0000644000000000000000000002230213410616261020360 0ustar rootrootII*$ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿOÿ???ÿ???ÿ???ÿ???ÿ???ÿ???ÿ???ÿ???ÿ???ÿ???ÿ???ÿ???ÿ???ÿ???ÿ???ÿ???ÿ???ÿ???ÿ???ÿ???ÿ???ÿ???ÿ???ÿ???ÿ???ÿ???ÿ???ÿ???ÿ???ÿ???ÿ???ÿ???ÿ???ÿ???ÿ???ÿ???ÿ???ÿ???ÿ???ÿ???ÿ???ÿ???ÿ???ÿ+++ÿÿ…ÿ???ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ+++ÿÿ…Oÿ???ÿÿUUUÿ€€€ÿªªªÿUUUÿÿÿÿÿÿÿÿÿÿÿÿ888ÿÿÿ888ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ+++ÿªªªÿ+++ÿUUUÿÿ+++ÿÿ…Oÿ???ÿÿUUUÿ+++ÿªªªÿUUUÿÿÿÿÿÿÿÿÿÿÿUUUÿUUUÿUUUÿUUUÿªªªÿÿqqqÿUUUÿqqqÿUUUÿUUUÿUUUÿÿÿÿÿÿÿÿÿÿÿªªªÿªªªÿªªªÿUUUÿÿ+++ÿÿ…Oÿ???ÿÿªªªÿªªªÿªªªÿUUUÿÿÿÿÿÿÿÿÿÿÿUUUÿqqqÿUUUÿ888ÿÿUUUÿUUUÿÿqqqÿªªªÿÿqqqÿÿÿÿÿÿÿÿÿÿÿ+++ÿªªªÿ+++ÿUUUÿÿ+++ÿÿ…Oÿ???ÿÿUUUÿUUUÿUUUÿUUUÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ888ÿÿÿÿÿÿÿÿÿÿÿÿUUUÿUUUÿUUUÿUUUÿÿ+++ÿÿ…Oÿ???ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ+++ÿÿ…Oÿ+++ÿ+++ÿ+++ÿ+++ÿ+++ÿ+++ÿ+++ÿ+++ÿ+++ÿ+++ÿ+++ÿ+++ÿ+++ÿ+++ÿ+++ÿ+++ÿ+++ÿ+++ÿ+++ÿ+++ÿ+++ÿ+++ÿ+++ÿ+++ÿ+++ÿ+++ÿ+++ÿ+++ÿ+++ÿ+++ÿ+++ÿ+++ÿ+++ÿ+++ÿ+++ÿ+++ÿ+++ÿ+++ÿ+++ÿ+++ÿ+++ÿ+++ÿ+++ÿ+++ÿÿ…Oÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ…Oÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ…Oÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ…Oÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ…Oÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ…Oÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ…Oÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ…Oÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ…Oÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ…Oÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ…Oÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ…Oÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ…Oÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ…Oÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ…Oÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ…Oÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ…Oÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ…Oÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ…Oÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ…Oÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ…Oÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ…Oÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ…Oÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ…Oÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ…Oÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ…Oÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ…Oÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ…Oÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ…Oÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ…Oÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ…Oÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ…Oÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ…Oÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ…Oÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ…Oÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ…Oÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ…Oÿ ÿÿÿÿÿÿ ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ…OO…………………………………………………………………………………………………………………………OOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO 00ª$$²$º$(R€ü '€ü 'gorm-1.2.24/Palettes/1Windows/GormDrawerAttributesInspector.gorm/0000755000000000000000000000000013410616261023510 5ustar rootrootgorm-1.2.24/Palettes/1Windows/GormDrawerAttributesInspector.gorm/objects.gorm0000644000000000000000000000525113410616261026032 0ustar rootrootGNUstep archive00002cee:00000022:00000046:00000000:01GSNibContainer1NSObject01 GSMutableSet1 NSMutableSet1NSSet&01GSWindowTemplate1GSClassSwapper01NSString&%NSPanel1 NSPanel1 NSWindow1 NSResponder% ?€ A Cˆ CÂ&% DQÀ DQ@01 NSView% ?€ A Cˆ C  Cˆ CÂ&01 NSMutableArray1NSArray&01NSBox% Aø C5 CR B‚  CR B‚&0± &0 ± % @à @à CD B  CD B&0 ± &0 1 NSPopUpButton1NSButton1 NSControl% Aø A  C A°  C A°&-0 ± &%0 1NSPopUpButtonCell1NSMenuItemCell1 NSButtonCell1 NSActionCell1NSCell0±&01NSFont%&&&&&&&&01NSMenu0±&0± &01 NSMenuItem0±&%Left°&&ÿ%01NSImage0±& % common_Nibble’%0±0±&%Bottom°&&ÿ%’%0±0±&%Right°&&ÿ%’%0±0±&%Top0±&&&ÿ%’%&&&&&&%’0±&°&&& &&°°°%%%%%0±0 ±&%Preferred Edge°° &&&&&&&&&&&&&& @  @ %%0!1NSColor0"±&%NSNamedColorSpace0#±&%System0$±&%windowBackgroundColor0%±&%Window0&±&%Inspector Window°& @@ B F@ F@%&   DÈ D–0'± &0(± &0)1NSMutableDictionary1 NSDictionary& 0*±&%NSOwner0+±&%GormDrawerAttributesInspector0,±& % MenuItem(1)°0-±& % MenuItem(0)°0.±&%PopUpButton(0)° 0/±&%View(1)° 00±& % MenuItem(3)°01±& % InspectorWin°02±&%Box(0)°03±& % MenuItem(2)°04±&%View(0)°05± &  061NSNibConnector°107±&%NSOwner08±°4°109±°2°40:±°/°20;±°.°/0<±°-0=±°,0>±°30?±°00@1 NSNibOutletConnector°7°10A1!NSMutableString&%window0B1"NSNibControlConnector°.°70C±!&%ok:0D± °7°.0E±& % preferredEdge0F±&gorm-1.2.24/Palettes/1Windows/GormDrawerAttributesInspector.gorm/data.classes0000644000000000000000000000027413410616261026003 0ustar rootroot{ "## Comment" = "Do NOT change this file, Gorm maintains it"; GormDrawerAttributesInspector = { Actions = ( ); Outlets = ( preferredEdge ); Super = IBInspector; }; }gorm-1.2.24/Palettes/1Windows/GormDrawerAttributesInspector.gorm/data.info0000644000000000000000000000027013410616261025275 0ustar rootrootGNUstep archive00002cee:00000003:00000003:00000000:01GormFilePrefsManager1NSObject%01NSString&%Latest Version0±& % Typed Streamgorm-1.2.24/Palettes/1Windows/.cvsignore0000644000000000000000000000006013410616261016532 0ustar rootroot*.app *.debug *.profile *.palette *obj .gdbinit gorm-1.2.24/Palettes/0Menus/0000755000000000000000000000000013426741712014201 5ustar rootrootgorm-1.2.24/Palettes/0Menus/GormNSMenu.m0000644000000000000000000001217613410616261016351 0ustar rootroot/* GormNSMenu.m Copyright (C) 2002 Free Software Foundation, Inc. Author: Pierre-Yves Rivaille Date: 2002 This file is part of GNUstep. This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 3 of the License, or (at your option) any later version. This program 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 General Public License for more details. You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02111 USA. */ #include "GormNSMenuView.h" #include "GormNSMenu.h" #include #include #include #include @interface GormNSMenuWindow : NSPanel @end @implementation GormNSMenuWindow - (BOOL)canBecomeMainWindow { return NO; } - (BOOL)canBecomeKeyWindow { return YES; } - (void)resignMainWindow { [super resignMainWindow]; if ([[self menu] _ownedByPopUp]) { [[NSRunLoop currentRunLoop] performSelector: @selector(close) target: [self menu] argument: nil order: 500000 modes: [NSArray arrayWithObjects: NSDefaultRunLoopMode, NSModalPanelRunLoopMode, NSEventTrackingRunLoopMode, nil]]; } } - (void) sendEvent: (NSEvent*)theEvent { NSEventType type; type = [theEvent type]; if (type == NSLeftMouseDown) { [self makeMainWindow]; [self makeKeyWindow]; } [super sendEvent: theEvent]; } - (void) dealloc { [self setMenu: nil]; [super dealloc]; } @end @interface NSMenu (GormNSMenuPrivate) - (NSString*) _locationKey; @end @implementation GormNSMenu + (GormNSMenu *) menuWithMenu: (NSMenu *)menu { GormNSMenu *newMenu = [[GormNSMenu alloc] init]; NSEnumerator *en = [[menu itemArray] objectEnumerator]; NSMenuItem *item = nil; while((item = [en nextObject]) != nil) { [newMenu addItem: [item copy]]; } [newMenu setTitle: [menu title]]; return newMenu; } - (id) initWithTitle: (NSString *)aTitle { if((self = [super initWithTitle: aTitle]) != nil) { [self setMenuRepresentation: [[GormNSMenuView alloc] initWithFrame: NSZeroRect]]; } return self; } - (id) initWithCoder: (NSCoder *)coder { if((self = [super initWithCoder: coder]) != nil) { NSNotificationCenter *nc = [NSNotificationCenter defaultCenter]; [nc addObserver: self selector: @selector(handleNotification:) name: IBSelectionChangedNotification object: nil]; } return self; } - (void) handleNotification: (NSNotification *)notification { id object = [notification object]; if(object != nil) { // don't call, unless it does respond... if([(id)object respondsToSelector: @selector(editedObject)]) { id edited = [object editedObject]; if(self != edited && [self _ownedByPopUp]) { if([[self window] isVisible]) { [self close]; } } } else { // Close anyway if the editor doesn't respond. if([[self window] isVisible]) { [self close]; } } } } - (BOOL) performKeyEquivalent: (NSEvent*)theEvent { return NO; } - (NSPanel*) _createWindow { NSPanel *win = [[GormNSMenuWindow alloc] initWithContentRect: NSZeroRect styleMask: NSBorderlessWindowMask backing: NSBackingStoreBuffered defer: YES]; [win setLevel: NSSubmenuWindowLevel]; [win setExcludedFromWindowsMenu: YES]; return win; } - (NSString *)className { return @"NSMenu"; } #ifdef DEBUG // These methods are purely for debugging purposes... /* - (void) display { NSDebugLog(@"In GormNSMenu display..."); [super display]; } - (id) retain { NSLog(@"Being retained... %d: %@", [self retainCount], self); return [super retain]; } - (oneway void) release { NSLog(@"Being released... %d: %@", [self retainCount], self); [super release]; } */ #endif - (void) dealloc { [[NSNotificationCenter defaultCenter] removeObserver: self name: IBSelectionChangedNotification object: nil]; [super dealloc]; } // Override -autoenablesItems to disable menu validation for design menus in // Gorm. This avoids disabling menu items by default in Gorm documents. - (BOOL) realAutoenablesItems { return [super autoenablesItems]; } - (BOOL) autoenablesItems { return NO; } - (NSString*) _locationKey { if ([self supermenu] == nil) { if ([NSApp mainMenu] == self) { return @"\033"; /* Root menu. */ } else { return nil; /* Unused menu. */ } } else if ([[self supermenu] supermenu] == nil) { return [NSString stringWithFormat: @"\033%@", [self title]]; } else { return [[[self supermenu] _locationKey] stringByAppendingFormat: @"\033%@", [self title]]; } } @end @implementation NSMenu (GormNSMenu) + (id) allocSubstitute { return [GormNSMenu alloc]; } @end gorm-1.2.24/Palettes/0Menus/inspectors.m0000644000000000000000000000343313410616261016544 0ustar rootroot/* inspectors.m * * This file defines the mapping between objects and thier editors/inspectors. * * Copyright (C) 2000 Free Software Foundation, Inc. * * Author: Gregory John Casamento * Date: 2005 * * This file is part of GNUstep. * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 3 of the License, or * (at your option) any later version. * * This program 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 General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02111 USA. */ #include #include @implementation NSMenu (IBObjectAdditions) - (NSString*) inspectorClassName { return @"GormMenuAttributesInspector"; } - (NSString*) editorClassName { return @"GormMenuEditor"; } /* * Method to return the image that should be used to display menus within * the matrix containing the objects in a document. */ - (NSImage*) imageForViewer { static NSImage *image = nil; if (image == nil) { NSBundle *bundle = [NSBundle mainBundle]; NSString *path = [bundle pathForImageResource: @"GormMenu"]; image = [[NSImage alloc] initWithContentsOfFile: path]; } return image; } @end @implementation NSMenuItem (IBObjectAdditions) - (NSString*) inspectorClassName { return @"GormMenuItemAttributesInspector"; } @end gorm-1.2.24/Palettes/0Menus/GormNSMenuView.m0000644000000000000000000000366513410616261017207 0ustar rootroot/** GormNSMenuView Copyright (C) 2007 Free Software Foundation, Inc. Author: Gregory Casamento Date: 2007 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 3 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, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ #include #include #include "GormNSMenuView.h" @implementation GormNSMenuView - (BOOL) _executeItemAtIndex: (int)indexOfActionToExecute removeSubmenu: (BOOL)subMenusNeedRemoving { if (indexOfActionToExecute == -1) { return YES; } if (indexOfActionToExecute >= 0 && [[self menu] attachedMenu] != nil && [[self menu] attachedMenu] == [[[[self menu] itemArray] objectAtIndex: indexOfActionToExecute] submenu]) { if (subMenusNeedRemoving) { [self detachSubmenu]; } return NO; } return YES; } - (NSPoint) locationForSubmenu: (NSMenu *)aSubmenu { NSRect frame = [_window frame]; NSRect submenuFrame; if (_needsSizing) [self sizeToFit]; if (aSubmenu) submenuFrame = [[[aSubmenu menuRepresentation] window] frame]; else submenuFrame = NSZeroRect; return NSMakePoint(NSMaxX(frame), NSMaxY(frame) - NSHeight(submenuFrame)); } @end gorm-1.2.24/Palettes/0Menus/palette.table0000644000000000000000000000023613410616261016642 0ustar rootroot{ NibFile = ""; Class = "MenusPalette"; Icon = "MenusPalette"; SubstituteClasses = { GormNSMenu = NSMenu; GormNSMenuView = NSMenuView; }; } gorm-1.2.24/Palettes/0Menus/GNUmakefile.preamble0000644000000000000000000000130513410616261020031 0ustar rootroot# Additional include directories the compiler should search ADDITIONAL_INCLUDE_DIRS += -I../.. ifeq ($(GNUSTEP_TARGET_OS),mingw32) ADDITIONAL_LIB_DIRS += \ -L../../GormLib/$(GNUSTEP_OBJ_DIR) \ -L../../GormObjCHeaderParser/$(GNUSTEP_OBJ_DIR) \ -L../../GormPrefs/$(GNUSTEP_OBJ_DIR) \ -L../../GormCore/$(GNUSTEP_OBJ_DIR) ADDITIONAL_GUI_LIBS += -lGorm -lGormCore endif ifeq ($(GNUSTEP_TARGET_OS),cygwin) ADDITIONAL_LIB_DIRS += \ -L../../GormLib/$(GNUSTEP_OBJ_DIR) \ -L../../GormObjCHeaderParser/$(GNUSTEP_OBJ_DIR) \ -L../../GormPrefs/$(GNUSTEP_OBJ_DIR) \ -L../../GormCore/$(GNUSTEP_OBJ_DIR) 0Menus_LIBRARIES_DEPEND_UPON += -lGorm -lGormCore endifgorm-1.2.24/Palettes/0Menus/GormMenuDrag.tiff0000644000000000000000000002253413410616261017401 0ustar rootrootII*$)))8…†…æVWVßLLLßLLLßLLLßLLLßLLLßLLLßLLLßLLLßLLLßLLLßLLLßLLLßLLLßLLLßLLLßLLLßEGEßcdcßLLLßLLLßLLLßLLLßLLLßLLLßLLLßLLLßLLLßLLLßLLLßLLLßLLLßLLLßLLLßLLLßLLLßLLLßLLLßLLLßLLLßLLLßLLLßLLLßLLLßLLLßMNMßdedÿÿ ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ>>>ÿÿ ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿŽŽÿÿqqqÿBBBÿ???ÿ777ÿ:9:ÿQPQÿ777ÿÿÿÿÿÿÿÿÿÿÿ>>>ÿoooÿ???ÿwwwÿIIIÿ555ÿ---ÿGFGÿ%%%ÿ222ÿGGGÿ ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ…‡…ÿÿsssÿ†††ÿ|||ÿ Ÿ ÿUUUÿ¥¥¥ÿlllÿÿÿÿÿÿÿÿÿÿÿ>>>ÿihiÿMLMÿˆˆˆÿµµµÿˆˆˆÿ€€€ÿ®­®ÿrsrÿnonÿ¬¬¬ÿ"""ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿŠ‹Šÿ###ÿ ÿ ÿ ÿ ÿ ÿ ÿ ÿ ÿ ÿ ÿ ÿ ÿ ÿ ÿ ÿ ÿ#$#ÿFFFÿ ÿ ÿ ÿ ÿ ÿ ÿ ÿ ÿ ÿ ÿ ÿ ÿ ÿ ÿ ÿ ÿ ÿ ÿ ÿ ÿ ÿ ÿ ÿ ÿ ÿ ÿÿŒŒÿ•••ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ^_^ÿ˜—˜ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿyyyÿ“”“ÿ´²´ÿŸŸÿ¬ª¬ÿš˜šÿ¬ª¬ÿ¬ª¬ÿ¬ª¬ÿ¬ª¬ÿ¬ª¬ÿ¬ª¬ÿ¬ª¬ÿ¬ª¬ÿ¬ª¬ÿ¬ª¬ÿ¬ª¬ÿ–•–ÿ¬ª¬ÿeeeÿ¸·¸ÿ¥¤¥ÿ›š›ÿ¬ª¬ÿ¬ª¬ÿ¬ª¬ÿ¬ª¬ÿª¨ªÿ¬ª¬ÿ¬ª¬ÿ›ÿ¦¥¦ÿ¬ª¬ÿ¥¤¥ÿ¬ª¬ÿ¬ª¬ÿ¥¤¥ÿ¬ª¬ÿ¬ª¬ÿ¬ª¬ÿ¬ª¬ÿ¬ª¬ÿ¬ª¬ÿ¬ª¬ÿ¬ª¬ÿžžÿ¢¡¢ÿˆ‡ˆÿ“”“ÿ´²´ÿutuÿusuÿjijÿ{y{ÿ£¡£ÿ¬ª¬ÿ¬ª¬ÿ¬ª¬ÿ¬ª¬ÿ¬ª¬ÿ¬ª¬ÿ¬ª¬ÿ¬ª¬ÿ¬ª¬ÿ‰ˆ‰ÿ°®°ÿeeeÿ¸·¸ÿ—–—ÿ£¡£ÿ–•–ÿ‰‰‰ÿš™šÿŽÿ‹Œ‹ÿƒƒƒÿ©§©ÿ’’’ÿ—–—ÿ˜—˜ÿ‘‘ÿ“““ÿ—–—ÿ—–—ÿŽŽÿ–––ÿ›š›ÿ™™™ÿ¬ª¬ÿ¬ª¬ÿ¬ª¬ÿ¬ª¬ÿ—–—ÿ¢¡¢ÿˆ‡ˆÿ“”“ÿ´²´ÿ€€ÿŠˆŠÿ…„…ÿ{y{ÿ£¡£ÿ¬ª¬ÿ¬ª¬ÿ¬ª¬ÿ¬ª¬ÿ¬ª¬ÿ¬ª¬ÿ¬ª¬ÿ¬ª¬ÿ¬ª¬ÿ¨¦¨ÿ¬ª¬ÿeeeÿ¸·¸ÿœ›œÿ“’“ÿœœœÿ”“”ÿš™šÿŒŒŒÿ•”•ÿ‘‘‘ÿª¨ªÿ•”•ÿ˜—˜ÿ‹‹‹ÿ™—™ÿ’’’ÿ–•–ÿœ›œÿ‰‰‰ÿ–•–ÿ—–—ÿ•”•ÿ£¢£ÿ¨¦¨ÿ¬ª¬ÿ¬ª¬ÿ•••ÿ™˜™ÿˆ‡ˆÿŒŒÿ‡‡‡ÿ€€€ÿ€€€ÿ€€€ÿ€€€ÿ€€€ÿ€€€ÿ€€€ÿ€€€ÿ€€€ÿ€€€ÿ€€€ÿ€€€ÿ€€€ÿ€€€ÿ€€€ÿ€€€ÿVWVÿŒŒŒÿ€€€ÿ€€€ÿ€€€ÿ€€€ÿ€€€ÿ€€€ÿ€€€ÿ€€€ÿ€€€ÿ€€€ÿ€€€ÿ€€€ÿ€€€ÿ€€€ÿ€€€ÿ€€€ÿ€€€ÿ€€€ÿ€€€ÿ€€€ÿ€€€ÿ€€€ÿ€€€ÿ€€€ÿ€€€ÿ€€€ÿmmmÿ“”“ÿ·µ·ÿ°®°ÿ°®°ÿ°®°ÿ°®°ÿ°®°ÿ°®°ÿ°®°ÿ°®°ÿ°®°ÿ°®°ÿ°®°ÿ°®°ÿ°®°ÿ°®°ÿ°®°ÿ°®°ÿhhhÿ»¹»ÿ°®°ÿ°®°ÿ°®°ÿ°®°ÿ°®°ÿ°®°ÿ°®°ÿ°®°ÿ°®°ÿ°®°ÿ°®°ÿ°®°ÿ°®°ÿ°®°ÿ°®°ÿ°®°ÿ°®°ÿ°®°ÿ°®°ÿ°®°ÿ°®°ÿ°®°ÿ°®°ÿ°®°ÿ°®°ÿ°®°ÿŒ‹Œÿ“”“ÿ´²´ÿvtvÿƒ‚ƒÿ™˜™ÿ¤¢¤ÿ¡Ÿ¡ÿ£¡£ÿ ž ÿ—–—ÿ¤¢¤ÿœšœÿ›ÿŽŽÿ¤¢¤ÿ¬ª¬ÿ}|}ÿ¨§¨ÿeeeÿ¸·¸ÿœ›œÿ«©«ÿ¢¡¢ÿ§¦§ÿ¦¤¦ÿ˜˜˜ÿ¦¤¦ÿ–•–ÿ˜—˜ÿ›š›ÿ¢¡¢ÿ¥£¥ÿ¨¦¨ÿ§¥§ÿ¬ª¬ÿ¬ª¬ÿ¬ª¬ÿ¬ª¬ÿ¬ª¬ÿ¬ª¬ÿ¬ª¬ÿ¬ª¬ÿ¬ª¬ÿ¬ª¬ÿœ›œÿ¬ª¬ÿˆ‡ˆÿ“”“ÿ´²´ÿƒ‚ƒÿyxyÿtqtÿbabÿŒŠŒÿjijÿonoÿxvxÿZXZÿgegÿ|z|ÿa`aÿ£¡£ÿ¬ª¬ÿžžÿ³±³ÿeeeÿ¸·¸ÿ—–—ÿ˜˜˜ÿŒŒÿ—–—ÿ€€€ÿŒŒŒÿ¥£¥ÿ•”•ÿœ›œÿÿ„„„ÿÿÿ–––ÿ«©«ÿ«©«ÿ¬ª¬ÿ¬ª¬ÿ¬ª¬ÿ¬ª¬ÿ¬ª¬ÿ¬ª¬ÿ¬ª¬ÿ¬ª¬ÿ–––ÿ«©«ÿˆ‡ˆÿ“”“ÿª¨ªÿ…„…ÿ•”•ÿˆ‡ˆÿ—•—ÿ’‘’ÿ‰ˆ‰ÿ—–—ÿ™˜™ÿ•”•ÿŒÿ™˜™ÿ”“”ÿ˜—˜ÿ¡Ÿ¡ÿ¡Ÿ¡ÿ¡Ÿ¡ÿ`a`ÿ°¯°ÿ–•–ÿ–•–ÿ”””ÿ™˜™ÿ–––ÿ“““ÿ ž ÿ™™™ÿ™˜™ÿ›š›ÿ’’’ÿ•••ÿ›š›ÿ™˜™ÿ™˜™ÿœÿ¡Ÿ¡ÿ¡Ÿ¡ÿ¡Ÿ¡ÿ¡Ÿ¡ÿ¡Ÿ¡ÿ¡Ÿ¡ÿ¡Ÿ¡ÿ¡Ÿ¡ÿÿœÿ€€€ÿŒŒÿ”””ÿŽÿŽÿŽÿŽÿŽÿŽÿŽÿŽÿŽÿŽÿŽÿŽÿŽÿŽÿŽÿŽÿ^^^ÿ———ÿŽÿŽÿŽÿŽÿŽÿŽÿŽÿŽÿŽÿŽÿŽÿŽÿŽÿŽÿŽÿŽÿŽÿŽÿŽÿŽÿŽÿŽÿŽÿŽÿŽÿŽÿxxxÿ“”“ÿ´²´ÿ‰‡‰ÿ™—™ÿ¢ ¢ÿ¡Ÿ¡ÿ©§©ÿ¬ª¬ÿ¬ª¬ÿ¬ª¬ÿ¬ª¬ÿ¬ª¬ÿ¬ª¬ÿ¬ª¬ÿ¬ª¬ÿ¬ª¬ÿ—–—ÿ¬ª¬ÿeeeÿ¸·¸ÿ¦¤¦ÿœ›œÿ¬ª¬ÿ¬ª¬ÿ¬ª¬ÿ¬ª¬ÿ«©«ÿ¬ª¬ÿ¬ª¬ÿ¡ ¡ÿ Ÿ ÿ¦¤¦ÿ¬ª¬ÿ¬ª¬ÿ¬ª¬ÿ¬ª¬ÿ¢¡¢ÿ›™›ÿ¢ ¢ÿ¬ª¬ÿ¬ª¬ÿ¬ª¬ÿ¬ª¬ÿ¬ª¬ÿ—–—ÿ¦¥¦ÿˆ‡ˆÿ“”“ÿ´²´ÿonoÿŠˆŠÿhghÿ„‚„ÿzyzÿ¬ª¬ÿ¬ª¬ÿ¬ª¬ÿ¬ª¬ÿ¬ª¬ÿ¬ª¬ÿ¬ª¬ÿ¬ª¬ÿ¬ª¬ÿˆ‡ˆÿ°®°ÿeeeÿ¸·¸ÿ—–—ÿ¢¡¢ÿ–•–ÿŠŠŠÿ›™›ÿÿŒŒŒÿ„„„ÿ©§©ÿ—–—ÿ¢¡¢ÿ•”•ÿŽÿ”””ÿš™šÿŸžŸÿ•”•ÿœÿ‰‰‰ÿ’‘’ÿ•”•ÿ‘‘‘ÿ¬ª¬ÿ¬ª¬ÿˆˆˆÿ—–—ÿˆ‡ˆÿ“”“ÿ´²´ÿ{y{ÿ…ƒ…ÿtstÿ‹ÿŠˆŠÿ¬ª¬ÿ¬ª¬ÿ¬ª¬ÿ¬ª¬ÿ¬ª¬ÿ¬ª¬ÿ¬ª¬ÿ¬ª¬ÿ¬ª¬ÿ¨¦¨ÿ¬ª¬ÿeeeÿ¸·¸ÿœ›œÿ“’“ÿœ›œÿ“’“ÿ™™™ÿ‹‹‹ÿ”””ÿÿ«©«ÿ—–—ÿ—–—ÿ•”•ÿ‹‹‹ÿ”“”ÿ˜—˜ÿ™˜™ÿžžÿ¬ª¬ÿ‘‘‘ÿ˜–˜ÿœÿŽŽŽÿ¬ª¬ÿ¬ª¬ÿÿŸŸÿˆ‡ˆÿŒŒÿ†††ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿUVUÿ‹Œ‹ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿklkÿ“”“ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ‰Š‰ÿ»º»ÿ±¯±ÿ±¯±ÿ±¯±ÿ±¯±ÿ±¯±ÿ±¯±ÿ±¯±ÿ±¯±ÿ±¯±ÿ±¯±ÿ±¯±ÿ±¯±ÿ±¯±ÿ±¯±ÿ±¯±ÿ±¯±ÿ±¯±ÿ±¯±ÿ±¯±ÿ±¯±ÿ±¯±ÿ±¯±ÿ±¯±ÿ±¯±ÿ±¯±ÿ±¯±ÿŒÿ“”“ÿÿÿÿÿÁÂÁÿÅÅÅÿÐÐÐÿåååÿíííÿõõõÿòòòÿåæåÿòòòÿ÷÷÷ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ³³³ÿóóóÿ‡ˆ‡ÿ¸·¸ÿœ›œÿ¢¡¢ÿ§¦§ÿ¡ ¡ÿ¡ ¡ÿ¦¤¦ÿ£¡£ÿœ›œÿ¡Ÿ¡ÿ£¡£ÿœ›œÿ£¢£ÿ¬©¬ÿ¬ª¬ÿ¬ª¬ÿ¬ª¬ÿ¬ª¬ÿ¬ª¬ÿ¬ª¬ÿ¬ª¬ÿ¬ª¬ÿ¬ª¬ÿ¬ª¬ÿ¬ª¬ÿœ›œÿ¬ª¬ÿˆ‡ˆÿ“”“ÿÿÿÿÿ¾¾¾ÿÕÕÕÿ¯¯¯ÿÿ´³´ÿ±±±ÿ¯®¯ÿ|{|ÿ´´´ÿÏÏÏÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÔÔÔÿÿÿÿÿ‡ˆ‡ÿ¸·¸ÿ˜—˜ÿЉŠÿŒŒÿŽŽŽÿŽŽÿŽŽÿÿ†††ÿ•”•ÿÿÿ‚‚‚ÿžžÿ¬ª¬ÿ¬ª¬ÿ¬ª¬ÿ¬ª¬ÿ¬ª¬ÿ¬ª¬ÿ¬ª¬ÿ¬ª¬ÿ¬ª¬ÿ¬ª¬ÿ¬ª¬ÿ˜—˜ÿ¬ª¬ÿˆ‡ˆÿ“”“ÿíîíÿר×ÿÓÔÓÿÛÛÛÿÃÃÃÿÊÊÊÿÚÚÚÿÖÖÖÿÈÈÈÿ×××ÿÞÞÞÿìììÿìììÿìììÿìììÿìììÿìììÿ€ÿ±°±ÿžœžÿœ›œÿ™˜™ÿš™šÿ–•–ÿ–•–ÿœÿ˜—˜ÿœ›œÿ“““ÿ—–—ÿ•••ÿ¡ ¡ÿ¢ ¢ÿ¢ ¢ÿ¢ ¢ÿ¢ ¢ÿ¢ ¢ÿ¢ ¢ÿ¢ ¢ÿ¢ ¢ÿ¢ ¢ÿ¢ ¢ÿ¢ ¢ÿžœžÿ¢ ¢ÿÿŒŒÿ“““ÿŽŽÿŽŽÿŽŽÿŽŽÿŽŽÿŽŽÿŽŽÿŽŽÿŽŽÿŽŽÿŽŽÿŽŽÿŽŽÿŽŽÿŽŽÿŽŽÿ]^]ÿ–––ÿŽŽÿŽŽÿŽŽÿŽŽÿŽŽÿŽŽÿŽŽÿŽŽÿŽŽÿŽŽÿŽŽÿŽŽÿŽŽÿŽŽÿŽŽÿŽŽÿŽŽÿŽŽÿŽŽÿŽŽÿŽŽÿŽŽÿŽŽÿŽŽÿŽŽÿŽŽÿxxxÿ“”“ÿ³±³ÿƒƒÿ™˜™ÿ¬ª¬ÿ¬ª¬ÿ¡Ÿ¡ÿ«©«ÿ¬ª¬ÿ¬ª¬ÿ¬ª¬ÿ¬ª¬ÿ¬ª¬ÿ¬ª¬ÿ¬ª¬ÿ¬ª¬ÿ™—™ÿ¬ª¬ÿeeeÿ¸·¸ÿ§¦§ÿ¥£¥ÿ¬ª¬ÿ¦¤¦ÿ¦¤¦ÿ¬ª¬ÿœ›œÿ¦¥¦ÿ¬ª¬ÿ«©«ÿ¦¤¦ÿ¬ª¬ÿ«©«ÿ§¥§ÿ¡ ¡ÿ¬ª¬ÿ«©«ÿ¨¦¨ÿ¬ª¬ÿ¬ª¬ÿ¬ª¬ÿ¬ª¬ÿ¬ª¬ÿ¬ª¬ÿ Ÿ ÿ¬ª¬ÿˆ‡ˆÿ“”“ÿ´²´ÿ†…†ÿ‘‘ÿ„‚„ÿ}|}ÿtstÿ…ƒ…ÿžœžÿ¬ª¬ÿ¬ª¬ÿ¬ª¬ÿ¬ª¬ÿ¬ª¬ÿ¬ª¬ÿ¬ª¬ÿ‡†‡ÿ°®°ÿeeeÿ¸·¸ÿ“““ÿŒŒŒÿ“““ÿ‰ˆ‰ÿŒŒŒÿ£¡£ÿŸŸÿŒÿœ›œÿ‘‘ÿ‰‰‰ÿŽŽÿŒÿÿˆˆˆÿ”“”ÿŒŒŒÿ’’’ÿ’’’ÿ™˜™ÿš™šÿ¬ª¬ÿ¬ª¬ÿ¬ª¬ÿƒ„ƒÿžœžÿˆ‡ˆÿ“”“ÿ´²´ÿ‘‘ÿŽŒŽÿÿzxzÿ{z{ÿˆ‡ˆÿ’‘’ÿ¬ª¬ÿ¬ª¬ÿ¬ª¬ÿ¬ª¬ÿ¬ª¬ÿ¬ª¬ÿ¬ª¬ÿ¨¦¨ÿ¬ª¬ÿeeeÿ¸·¸ÿ›š›ÿ–––ÿ‘’‘ÿŽŽŽÿ“““ÿ©§©ÿ“““ÿ”“”ÿŽŽŽÿš™šÿÿ—–—ÿ’‘’ÿš™šÿš™šÿ‘‘ÿ•”•ÿ’’’ÿÿœÿžžÿ¬ª¬ÿ¬ª¬ÿ©§©ÿœ›œÿ›š›ÿˆ‡ˆÿŒŒÿ………ÿ~~~ÿ~~~ÿ~~~ÿ~~~ÿ~~~ÿ~~~ÿ~~~ÿ~~~ÿ~~~ÿ~~~ÿ~~~ÿ~~~ÿ~~~ÿ~~~ÿ~~~ÿ~~~ÿTUTÿ‹‹‹ÿ~~~ÿ~~~ÿ~~~ÿ~~~ÿ~~~ÿ~~~ÿ~~~ÿ~~~ÿ~~~ÿ~~~ÿ~~~ÿ~~~ÿ~~~ÿ~~~ÿ~~~ÿ~~~ÿ~~~ÿ~~~ÿ~~~ÿ~~~ÿ~~~ÿ~~~ÿ~~~ÿ~~~ÿ~~~ÿ~~~ÿjjjÿ“”“ÿ¹¸¹ÿ²°²ÿ²°²ÿ²°²ÿ²°²ÿ²°²ÿ²°²ÿ²°²ÿ²°²ÿ²°²ÿ²°²ÿ²°²ÿ²°²ÿ²°²ÿ²°²ÿ²°²ÿ²°²ÿjjjÿ¼»¼ÿ²°²ÿ²°²ÿ²°²ÿ²°²ÿ²°²ÿ²°²ÿ²°²ÿ²°²ÿ²°²ÿ²°²ÿ²°²ÿ²°²ÿ²°²ÿ²°²ÿ²°²ÿ²°²ÿ²°²ÿ²°²ÿ²°²ÿ²°²ÿ²°²ÿ²°²ÿ²°²ÿ²°²ÿ²°²ÿ²°²ÿŽŽŽÿ“”“ÿ³±³ÿ€~€ÿwuwÿxvxÿŸžŸÿ¤¢¤ÿ‚‚ÿŸŸÿ¤¢¤ÿ¤¢¤ÿ¥£¥ÿ¡Ÿ¡ÿ¬ª¬ÿ¬ª¬ÿ¬ª¬ÿ~}~ÿ¨¦¨ÿeeeÿ¸·¸ÿ”“”ÿÿ¦¥¦ÿ¨¦¨ÿ¤£¤ÿ¦¤¦ÿ¤¢¤ÿ©§©ÿ©§©ÿ¤¢¤ÿ¬ª¬ÿ¬ª¬ÿ¬ª¬ÿ¬ª¬ÿ¬ª¬ÿ¬ª¬ÿ¬ª¬ÿ¬ª¬ÿ¬ª¬ÿ¬ª¬ÿ¬ª¬ÿ¬ª¬ÿ¬ª¬ÿ«©«ÿ‘‘‘ÿžžÿˆ‡ˆÿ“”“ÿ´²´ÿcacÿigiÿqpqÿzxzÿZYZÿmlmÿwuwÿjhjÿUSUÿusuÿvuvÿ¬ª¬ÿ¬ª¬ÿ¬ª¬ÿœÿ´²´ÿeeeÿ¸·¸ÿÿŒŒŒÿ‰ˆ‰ÿ‹Š‹ÿ‡‡‡ÿ‹‹‹ÿÿŒŒŒÿ‹‹‹ÿ~~~ÿª¨ªÿ¬ª¬ÿ¬ª¬ÿ¬ª¬ÿ¬ª¬ÿ¬ª¬ÿ¬ª¬ÿ¬ª¬ÿ¬ª¬ÿ¬ª¬ÿ¬ª¬ÿ¬ª¬ÿ¬ª¬ÿ¬ª¬ÿˆˆˆÿ¡ ¡ÿˆ‡ˆÿ“”“ÿ¬«¬ÿ–•–ÿ—–—ÿš™šÿ›™›ÿ•“•ÿ‰ˆ‰ÿ‹Š‹ÿœšœÿ’’ÿš™šÿŽŽÿ£¢£ÿ£¢£ÿ£¢£ÿ£¢£ÿ£¢£ÿabaÿ²±²ÿŸŸÿžžÿ™˜™ÿœ›œÿœ›œÿžžÿ”””ÿ Ÿ ÿŸžŸÿ•••ÿ£¢£ÿ£¢£ÿ£¢£ÿ£¢£ÿ£¢£ÿ£¢£ÿ£¢£ÿ£¢£ÿ£¢£ÿ£¢£ÿ£¢£ÿ£¢£ÿ£¢£ÿ¢ ¢ÿŸŸÿœÿ‚‚ÿŒŒÿ’’’ÿŒÿŒÿŒÿŒÿŒÿŒÿŒÿŒÿŒÿŒÿŒÿŒÿŒÿŒÿŒÿŒÿTTTæZ Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z “”“ÿ´²´ÿ“‘“ÿ¡Ÿ¡ÿ¬ª¬ÿ¬ª¬ÿ¬ª¬ÿ¤¢¤ÿ¬ª¬ÿ¬ª¬ÿ¬ª¬ÿ¬ª¬ÿ¬ª¬ÿ¬ª¬ÿ¬ª¬ÿ¬ª¬ÿš˜šÿ¬ª¬ÿXXXÙ“”“ÿ´²´ÿ{y{ÿ„„ÿdcdÿ…„…ÿŒŠŒÿvuvÿ€ÿ€~€ÿwuwÿ}{}ÿª¨ªÿ¬ª¬ÿ¬ª¬ÿ¬ª¬ÿ†…†ÿ°®°ÿXXXÙ“”“ÿ´²´ÿ€ÿÿrprÿ‹Š‹ÿ~ÿ‰ˆ‰ÿ|{|ÿ}ÿ„‚„ÿtstÿ§¥§ÿ¬ª¬ÿ¬ª¬ÿ¬ª¬ÿ¨¦¨ÿ¬ª¬ÿXXXÙŒŒÿ„„„ÿ}}}ÿ}}}ÿ}}}ÿ}}}ÿ}}}ÿ}}}ÿ}}}ÿ}}}ÿ}}}ÿ}}}ÿ}}}ÿ}}}ÿ}}}ÿ}}}ÿ}}}ÿ}}}ÿFFFÙ“”“ÿº¹ºÿ³±³ÿ³±³ÿ³±³ÿ³±³ÿ³±³ÿ³±³ÿ³±³ÿ³±³ÿ³±³ÿ³±³ÿ³±³ÿ³±³ÿ³±³ÿ³±³ÿ³±³ÿ³±³ÿ_^_Ù“”“ÿ´²´ÿŽŽÿŽŽÿ—•—ÿƒ‚ƒÿ¢ ¢ÿ§¥§ÿ¬ª¬ÿ¬ª¬ÿ¬ª¬ÿ¬ª¬ÿ¬ª¬ÿ¬ª¬ÿ¬ª¬ÿ¬ª¬ÿ†…†ÿ¨¦¨ÿXXXÙ“”“ÿ´²´ÿonoÿsqsÿ^]^ÿkikÿhfhÿ}ÿ¬ª¬ÿ¬ª¬ÿ¬ª¬ÿ¬ª¬ÿ¬ª¬ÿ¬ª¬ÿ¬ª¬ÿ¬ª¬ÿwvwÿ†„†ÿXXXÙ“”“ÿ­¬­ÿ›š›ÿ›š›ÿ–”–ÿˆ‡ˆÿ‘‘ÿœšœÿ¤£¤ÿ¤£¤ÿ¤£¤ÿ¤£¤ÿ¤£¤ÿ¤£¤ÿ¤£¤ÿ¤£¤ÿ›š›ÿ›š›ÿUUUÙŒŒÿ‘‘ÿ‹‹‹ÿ‹‹‹ÿ‹‹‹ÿ‹‹‹ÿ‹‹‹ÿ‹‹‹ÿ‹‹‹ÿ‹‹‹ÿ‹‹‹ÿ‹‹‹ÿ‹‹‹ÿ‹‹‹ÿ‹‹‹ÿ‹‹‹ÿ‹‹‹ÿ‹‹‹ÿOOOÙ“”“ÿ´²´ÿ›š›ÿ–”–ÿ¬ª¬ÿ¤¢¤ÿª¨ªÿ¬ª¬ÿ¬ª¬ÿ¬ª¬ÿ¬ª¬ÿ¬ª¬ÿ¬ª¬ÿ¬ª¬ÿ¬ª¬ÿ¬ª¬ÿ¬ª¬ÿ¬ª¬ÿXXXÙ“”“ÿ´²´ÿÿ€€ÿ•“•ÿxwxÿxvxÿ¬ª¬ÿ¬ª¬ÿ¬ª¬ÿ¬ª¬ÿ¬ª¬ÿ¬ª¬ÿ¬ª¬ÿ¬ª¬ÿ¬ª¬ÿ}|}ÿ“‘“ÿXXXÙ“”“ÿ´²´ÿ…ƒ…ÿjijÿzyzÿutuÿˆ†ˆÿ¬ª¬ÿ¬ª¬ÿ¬ª¬ÿ¬ª¬ÿ¬ª¬ÿ¬ª¬ÿ¬ª¬ÿ¬ª¬ÿ¬ª¬ÿvuvÿ‚€‚ÿXXXÙ‰Š‰ûbabßZZZßZZZßZZZßZZZßZZZßZZZßZZZßZZZßZZZßZZZßZZZßZZZßZZZßZZZßZZZßKKKß010½ded­þ00æ$ Gî$6%@$L%T%(R/home/heron/Development/gnustep/dev-apps/Gorm/Images/GormMenuDrag.tiffCreated with The GIMPHHgorm-1.2.24/Palettes/0Menus/GormMenuAttributesInspector.m0000644000000000000000000001030013410616261022031 0ustar rootroot/* GormMenuAttributesInspector.m Copyright (C) 1999-2005 Free Software Foundation, Inc. Author: Richard frith-Macdonald (richard@brainstorm.co.uk> Date: 1999 Author: Gregory John Casamento Date: 2003 This file is part of GNUstep. This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 3 of the License, or (at your option) any later version. This program 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 General Public License for more details. You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02111 USA. */ /* July 2005 : Spilt inspector in separate classes. Always use ok: revert: methods Clean up Author : Fabien Vallon */ #include "GormMenuAttributesInspector.h" #include "GormNSMenu.h" #include #include #include #include #include #include #define WINDOWSMENUTAG 0 #define SERVICESMENUTAG 1 #define RECENTDOCUMENTSMENUTAG 2 #define NORMALMENUTAG 3 @implementation GormMenuAttributesInspector - (id) init { if ([super init] == nil) return nil; if ([NSBundle loadNibNamed: @"GormMenuAttributesInspector" owner: self] == NO) { NSLog(@"Could not gorm GormMenuAttributesInspector"); return nil; } return self; } -(void) ok:(id) sender { if ( sender == titleText ) { [object setTitle:[titleText stringValue]]; } if ( sender == autoenable ) { BOOL flag; // look at the values passed back in the matrix. flag = ([autoenable state] == NSOnState) ? YES : NO; [object setAutoenablesItems: flag]; } else if ( sender == menuType ) { GormDocument *doc = (GormDocument *)[(id)NSApp activeDocument]; int tag = [[menuType selectedCell] tag]; switch ( tag ) { case WINDOWSMENUTAG: [doc setWindowsMenu:object]; if ( [doc servicesMenu] == object ) [doc setServicesMenu: nil]; else if ( [doc recentDocumentsMenu] == object ) [doc setRecentDocumentsMenu: nil]; break; case SERVICESMENUTAG: [doc setServicesMenu: object]; if ( [doc windowsMenu] == object ) [doc setWindowsMenu: nil]; else if ( [doc recentDocumentsMenu] == object ) [doc setRecentDocumentsMenu: nil]; break; case NORMALMENUTAG: if ( [doc windowsMenu] == object ) [doc setWindowsMenu: nil]; if ( [doc servicesMenu] == object ) [doc setServicesMenu: nil]; break; case RECENTDOCUMENTSMENUTAG: [doc setRecentDocumentsMenu:object]; if ( [doc servicesMenu] == object ) [doc setServicesMenu: nil]; else if ( [doc windowsMenu] == object ) [doc setWindowsMenu: nil]; break; } } [super ok:sender]; } - (void) revert: (id)sender { GormDocument *doc; if ( object == nil ) return; doc = (GormDocument *)[(id)NSApp activeDocument]; [titleText setStringValue: [object title]]; [autoenable setState: ([object realAutoenablesItems]?NSOnState:NSOffState)]; // set up the menu type matrix... if([doc windowsMenu] == object) { [menuType selectCellAtRow:WINDOWSMENUTAG column: 0]; } else if([doc servicesMenu] == object) { [menuType selectCellAtRow:SERVICESMENUTAG column: 0]; } else if([doc recentDocumentsMenu] == object) { [menuType selectCellAtRow:RECENTDOCUMENTSMENUTAG column: 0]; } else { [menuType selectCellAtRow:NORMALMENUTAG column: 0]; } } /* delegate method used for menu title */ - (void)controlTextDidChange:(NSNotification *)aNotification { GormDocument *doc = (GormDocument *)[(id)NSApp activeDocument]; [object setTitle: [titleText stringValue]]; [doc touch]; } @end gorm-1.2.24/Palettes/0Menus/GormMenuItemAttributesInspector.h0000644000000000000000000000317213410616261022654 0ustar rootroot/* GormMenuItemAttributesInspector.h Copyright (C) 1999-2005 Free Software Foundation, Inc. Author: Richard frith-Macdonald (richard@brainstorm.co.uk> Date: 1999 This file is part of GNUstep. This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 3 of the License, or (at your option) any later version. This program 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 General Public License for more details. You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02111 USA. */ /* July 2005 : Spilt inspector in separate classes. Always use ok: revert: methods Clean up Author : Fabien Vallon */ #ifndef INCLUDED_GormMenuItemAttributesInspector_h_ #define INCLUDED_GormMenuItemAttributesInspector_h_ #include @class NSTextField, NSPopUpButton; @interface GormMenuItemAttributesInspector : IBInspector { NSTextField *titleText; NSTextField *shortCut; NSTextField *tagText; NSPopUpButton *keyPopup; id altBtn; id ctrlBtn; id shiftBtn; id cmdBtn; NSString *upString; NSString *dnString; NSString *ltString; NSString *rtString; } @end #endif gorm-1.2.24/Palettes/0Menus/GormNSMenuView.h0000644000000000000000000000227313410616261017174 0ustar rootroot/** GormNSMenuView Copyright (C) 1999 Free Software Foundation, Inc. Author: Fred Kiefer Date: Sep 2001 Author: David Lazaro Saz Date: Oct 1999 Author: Michael Hanni Date: 1999 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 3 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, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ #include #include @interface GormNSMenuView : NSMenuView @end gorm-1.2.24/Palettes/0Menus/GormMenuItemAttributesInspector.m0000644000000000000000000001474413410616261022670 0ustar rootroot/* GormMenuItemAttributesInspector.m Copyright (C) 1999-2005 Free Software Foundation, Inc. Author: Richard frith-Macdonald (richard@brainstorm.co.uk> Date: 1999 This file is part of GNUstep. This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 3 of the License, or (at your option) any later version. This program 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 General Public License for more details. You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02111 USA. */ /* July 2005 : Spilt inspector in separate classes. Always use ok: revert: methods Clean up Author : Fabien Vallon */ #include "GormMenuItemAttributesInspector.h" #include #include const unichar up[]={NSUpArrowFunctionKey}; const unichar dn[]={NSDownArrowFunctionKey}; const unichar lt[]={NSLeftArrowFunctionKey}; const unichar rt[]={NSRightArrowFunctionKey}; #define VSTR(str) ({NSString *_str = (NSString *)str; ((NSString *)_str) ? (NSString *)_str : (NSString *)@"";}) @implementation GormMenuItemAttributesInspector - (id) init { if ([super init] == nil) return nil; if ([NSBundle loadNibNamed: @"GormMenuItemAttributesInspector" owner: self] == NO) { NSLog(@"Could not gorm GormMenuItemAttributesInspector"); return nil; } // initialize the strings. upString = RETAIN([NSString stringWithCharacters: up length: 1]); dnString = RETAIN([NSString stringWithCharacters: dn length: 1]); ltString = RETAIN([NSString stringWithCharacters: lt length: 1]); rtString = RETAIN([NSString stringWithCharacters: rt length: 1]); return self; } - (void) dealloc { RELEASE(upString); RELEASE(dnString); RELEASE(ltString); RELEASE(rtString); [super dealloc]; } - (void) revert : (id)sender { unsigned int flags = [object keyEquivalentModifierMask]; NSString *key = VSTR([object keyEquivalent]); if ( object == nil ) return; [titleText setStringValue: VSTR([object title])]; [shortCut setStringValue: key]; [tagText setIntValue: [object tag]]; if([key isEqualToString: @"\n"]) { [keyPopup selectItemAtIndex: 1]; } else if([key isEqualToString: @"\b"]) { [keyPopup selectItemAtIndex: 2]; } else if([key isEqualToString: @"\E"]) { [keyPopup selectItemAtIndex: 3]; } else if([key isEqualToString: @"\t"]) { [keyPopup selectItemAtIndex: 4]; } else if([key isEqualToString: upString]) { [keyPopup selectItemAtIndex: 5]; } else if([key isEqualToString: dnString]) { [keyPopup selectItemAtIndex: 6]; } else if([key isEqualToString: ltString]) { [keyPopup selectItemAtIndex: 7]; } else if([key isEqualToString: rtString]) { [keyPopup selectItemAtIndex: 8]; } else { [keyPopup selectItem: nil]; } // key modifier mask... [altBtn setState: NSOffState]; [ctrlBtn setState: NSOffState]; [shiftBtn setState: NSOffState]; [cmdBtn setState: NSOffState]; if(flags & NSAlternateKeyMask) { [altBtn setState: NSOnState]; } if(flags & NSControlKeyMask) { [ctrlBtn setState: NSOnState]; } if(flags & NSShiftKeyMask) { [shiftBtn setState: NSOnState]; } if(flags & NSCommandKeyMask) { [cmdBtn setState: NSOnState]; } } -(void) ok: (id) sender { if (sender == titleText) { [object setTitle: [titleText stringValue]]; } if (sender == shortCut) { [object setKeyEquivalent:[[shortCut stringValue] stringByTrimmingSpaces]]; } if (sender == tagText) { [object setTag: [tagText intValue]]; } else if (sender == keyPopup) { unsigned int tag = [[keyPopup selectedItem] tag]; switch(tag) { case 0: // none { [object setKeyEquivalent: nil]; } break; case 1: // return { [object setKeyEquivalent: @"\n"]; } break; case 2: // delete { [object setKeyEquivalent: @"\b"]; } break; case 3: // escape { [object setKeyEquivalent: @"\E"]; } break; case 4: // tab { [object setKeyEquivalent: @"\t"]; } break; case 5: // up { [object setKeyEquivalent: upString]; } break; case 6: // down { [object setKeyEquivalent: dnString]; } break; case 7: // left { [object setKeyEquivalent: ltString]; } break; case 8: // right { [object setKeyEquivalent: rtString]; } break; default: // should never happen.. { [object setKeyEquivalent: nil]; NSLog(@"This shouldn't happen."); } break; } } else if (sender == altBtn) { if([altBtn state] == NSOnState) { [object setKeyEquivalentModifierMask: [object keyEquivalentModifierMask] | NSAlternateKeyMask]; } else { [object setKeyEquivalentModifierMask: [object keyEquivalentModifierMask] & ~NSAlternateKeyMask]; } [[object menu] itemChanged: object]; } else if (sender == ctrlBtn) { if([ctrlBtn state] == NSOnState) { [object setKeyEquivalentModifierMask: [object keyEquivalentModifierMask] | NSControlKeyMask]; } else { [object setKeyEquivalentModifierMask: [object keyEquivalentModifierMask] & ~NSControlKeyMask]; } [[object menu] itemChanged: object]; } else if (sender == shiftBtn) { if([shiftBtn state] == NSOnState) { [object setKeyEquivalentModifierMask: [object keyEquivalentModifierMask] | NSShiftKeyMask]; } else { [object setKeyEquivalentModifierMask: [object keyEquivalentModifierMask] & ~NSShiftKeyMask]; } [[object menu] itemChanged: object]; } else if (sender == cmdBtn) { if([cmdBtn state] == NSOnState) { [object setKeyEquivalentModifierMask: [object keyEquivalentModifierMask] | NSCommandKeyMask]; } else { [object setKeyEquivalentModifierMask: [object keyEquivalentModifierMask] & ~NSCommandKeyMask]; } [[object menu] itemChanged: object]; } [super ok:sender]; } - (void)controlTextDidChange:(NSNotification *)aNotification { [self ok: [aNotification object]]; } @end gorm-1.2.24/Palettes/0Menus/GormMenuItemAttributesInspector.gorm/0000755000000000000000000000000013410616261023443 5ustar rootrootgorm-1.2.24/Palettes/0Menus/GormMenuItemAttributesInspector.gorm/objects.gorm0000644000000000000000000002245013410616261025765 0ustar rootrootGNUstep archive00002cec:00000023:00000126:00000000:01GSNibContainer1NSObject01 GSMutableSet1 NSMutableSet1NSSet&01GSWindowTemplate1GSClassSwapper01NSString&%NSWindow1 NSWindow1 NSResponder% ?€ A Cˆ CÂ&% Cš D5À01 NSView% ?€ A Cˆ C  Cˆ CÂ&01 NSMutableArray1 NSArray&01NSBox% A C™ C| B¤  C| B¤&0± &0 ± % @à @à Cn B`  Cn B`&0 ± &0 1 NSTextField1 NSControl% @à B BL A   BL A &0 ± &%0 1NSTextFieldCell1 NSActionCell1NSCell0±&%Title:01NSFont%&&&&&&&&&&&&&&%’01NSColor0±&%NSNamedColorSpace0±&%System0±&%textBackgroundColor0±°°0±& % textColor’0±% B„ B C" A   C" A &0± &%0±0±&°&&&&&&&&&&&&&&%’0±°0±&%System0±&%textBackgroundColor0±°°0±& % textColor’0±% B„ A B( A   B( A &0 ± &%0!±0"±&°&&&&&&&&&&&&&&%’0#±°0$±&%System0%±&%textBackgroundColor0&±°°$0'±& % textColor’0(±% @à A BL A   BL A &0)± &%0*±0+±&%Tag:°&&&&&&&&&&&&&&%’0,±°0-±&%System0.±&%textBackgroundColor0/±°°-00±& % textColor’01±02±&%Menu Item Attributes°&&&&&&&&&&&&&&%’03±°04±&%System05±&%windowBackgroundColor06±°°407±& % textColor @  @ %%08±% A Cc C| B”  C| B”&09± &0:± % @à @à Cn B@  Cn B@&0;± &0<1 NSPopUpButton1NSButton% Bä A€ BØ A¨  BØ A¨&0=± &%0>1NSPopUpButtonCell1NSMenuItemCell1 NSButtonCell0?±&°&&&&&&&&0@1NSMenu0A±&0B± &  0C1 NSMenuItem0D±&%°?&&ÿ%0E1NSImage0F±& % common_Nibble’%0G±0H±&%Return°?&&ÿ%’%0I±0J±&%Delete°?&&ÿ%’%0K±0L±&%Escape0M±&&&ÿ%’%0N±0O±&%Tab0P±&&&ÿ%’%0Q±0R±&%Up Arrow0S±&&&ÿ%’%0T±0U±& % Down Arrow0V±&&&ÿ%’%0W±0X±& % Left Arrow0Y±&&&ÿ%’%0Z±0[±& % Right Arrow0\±&&&ÿ%’%&&&&&&%’0]±&°]&&& >ÌÌÍ =™™š&&°C°@°C%%%%%0^±% Ap A€ B A  B A&0_± &%0`±0a±&%Key:0b±% A@°a&&&&&&&&&&&&&&%’0c±°0d±&%System0e±&%textBackgroundColor0f±°°d0g±& % textColor’0h±% BT Aˆ B` A¨  B` A¨&0i± &%0j±0k±&°°k&&&&&&&&&&&&&&%’0l±°0m±&%System0n±&%textBackgroundColor0o±°°m0p±& % textColor’0q±0r±&%Key Equivalent°°r&&&&&&&&&&&&&& @  @ %%0s±% A C C| Bº  C| Bº&0t± &0u± % @à @à Cn B†  Cn B†&0v± &0w±% B’ BL Bˆ A€  Bˆ A€&0x± &%0y±0z±&%Alt0{±0|1NSMutableString&%common_SwitchOff°°z&&&&&&&&&&&&&&%’0}±&0~±&0±0€±&%common_SwitchOn&&& &&0±% B’ B  Bˆ A€  Bˆ A€&0‚± &%0ƒ±0„±&%Control°{°°„&&&&&&&&&&&&&&%’0…±&0†±&°&&& &&0‡±% B’ A˜ Bˆ A€  Bˆ A€&0ˆ± &%0‰±0б&%Shift°{°°Š&&&&&&&&&&&&&&%’0‹±&0Œ±&°&&& &&0±% B’ @@ Bˆ A€  Bˆ A€&0ޱ &%0±0±&%Cmd°{°°&&&&&&&&&&&&&&%’0‘±&0’±&°&&& &&0“±0”±&%Modifier°°”&&&&&&&&&&&&&& @  @ %%°30•±&%Window0–±&%MenuItems attributes Inspector°– ?€ A¨ F@ F@%&   DÈ D–0—± &0˜± &0™1NSMutableDictionary1 NSDictionary&$0š±&%View(1)°u0›±& % Inspector°0œ±&%View(0)°:0±& % MenuItem(9)°C0ž±& % TextField° 0Ÿ±& % Button(3)°0 ±& % MenuItem(8)0¡±0¢±& % Right Arrow0£±&&&ÿ%’%0¤±& % Button(2)°‡0¥±& % MenuItem(7)0¦±0§±& % Left Arrow0¨±&&&ÿ%’%0©±&%Box(1)°s0ª±&%PopUpButton(0)°<0«±& % MenuItem(6)0¬±0­±& % Down Arrow0®±&&&ÿ%’%0¯±& % Button(1)°0°±&%Box(0)°80±±& % Button(0)°w0²±& % MenuItem(5)0³±0´±&%Up Arrow0µ±&&&ÿ%’%0¶±& % MenuItem(4)0·±0¸±&%Tab0¹±&&&ÿ%’%0º±& % MenuItem(3)0»±0¼±&%Escape0½±&&&ÿ%’%0¾±& % MenuItem(17)°Z0¿±& % MenuItem(2)0À±0Á±&%Delete0±&&&ÿ%’%0ñ&%Box°0ı& % TextField1°0ű& % MenuItem(16)°W0Ʊ& % MenuItem(1)0DZ0ȱ&%Return°Â&&ÿ%’%0ɱ& % MenuItem(15)°T0ʱ& % TextField4°0˱& % MenuItem(0)0̱0ͱ&%°Â&&ÿ%°E’%0α& % TextField(1)°h0ϱ& % TextField5°(0б& % MenuItem(14)°Q0ѱ& % TextField(0)°^0Ò±& % MenuItem(13)°N0Ó±&%NSOwner0Ô±&%GormMenuItemAttributesInspector0Õ±& % MenuItem(12)°K0Ö±& % MenuItem(11)°I0×±& % MenuItem(10)°G0ر &==0Ù1!NSNibConnector°›0Ú±&%NSOwner0Û±!°ž0ܱ!°Ä0ݱ!°Ê°Ú0Þ±!°Ï°Ú0ß±!°Ã0à1"NSNibOutletConnector°Ä°Ú0á±&%delegate0â±"°Ê°Ú°á0ã±"°Ú°Ä0ä±& % titleText0å±"°Ú°Ê0æ±&%tagText0ç±"°Ú°›0è±&%window0é±"°›°Ä0ê±&%initialFirstResponder0ë±!°Ë0ì±!°Æ0í±!°¿0î±!°º0ï±!°¶0ð±!°²0ñ±!°«0ò±!°¥0ó±!° 0ô±!°ª°°0õ±!°0ö±!°×0÷±!°Ö0ø±!°Õ0ù±!°Ò0ú±!°Ð0û±!°É0ü±!°Å0ý±!°¾0þ±!°°0ÿ±!°œ°°P±!°Ñ°œP±!°Î°œP±!°©P±!°š°©P±!°±°šP±!°¯°šP±!°¤°šP±!°Ÿ°šP±"°Ê°ÎP ±& % nextKeyViewP ±"°Î°ªÐ P ±"°ª°±Ð P ±"°±°¯Ð P ±"°¯°¤Ð P±"°¤°ŸÐ P±"°Ÿ°ÄÐ P1#NSNibControlConnector°Î°ÚP±&%ok:P±"°Ú°ÎP±&%shortCutP±"°Ú°ªP±&%keyPopupP±"°Î°ÚP±&%delegateP±"°Ú°±P±&%altBtnP±"°Ú°¯P±&%ctrlBtnP±"°Ú°¤P±&%shiftBtnP±"°Ú°ŸP±&%cmdBtnP ±#°±°ÚÐP!±#°¯°ÚÐP"±#°¤°ÚÐP#±#°Ÿ°ÚÐP$±#°ª°ÚP%±&%ok:P&±&gorm-1.2.24/Palettes/0Menus/GormMenuItemAttributesInspector.gorm/data.classes0000644000000000000000000000057313410616261025740 0ustar rootroot{ "## Comment" = "Do NOT change this file, Gorm maintains it"; FirstResponder = { Actions = ( "orderFrontFontPanel:" ); Super = NSObject; }; GormMenuItemAttributesInspector = { Actions = ( ); Outlets = ( tagText, shortCut, titleText, altBtn, ctrlBtn, shiftBtn, cmdBtn, keyPopup ); Super = IBInspector; }; }gorm-1.2.24/Palettes/0Menus/GormMenuItemAttributesInspector.gorm/data.info0000644000000000000000000000027013410616261025230 0ustar rootrootGNUstep archive00002cec:00000003:00000003:00000000:01GormFilePrefsManager1NSObject%01NSString&%Latest Version0±& % Typed Streamgorm-1.2.24/Palettes/0Menus/GormMenuAttributesInspector.gorm/0000755000000000000000000000000013410616261022624 5ustar rootrootgorm-1.2.24/Palettes/0Menus/GormMenuAttributesInspector.gorm/objects.gorm0000644000000000000000000003577613410616261025165 0ustar rootrootGNUstep archive000f4240:00000021:00000085:00000001:01GSNibContainer1NSObject01 NSMutableSet1NSSet&01GSWindowTemplate1GSClassSwapper01NSString&% NSWindow1NSWindow1 NSResponder% ?ð ?ð @q @x@JI @p€ @‡P01 NSView% ?ð ?ð @q @x@  @q @x@J01 NSMutableArray1 NSArray&01 NSBox% @0 @n@ @n@ @`   @n@ @` J0± &0 ± % @ @ @l€ @Z  @l€ @ZJ0 ± &0 1 NSTextField1 NSControl% @O @PÀ @bÀ @4  @bÀ @4J 0 ± &%0 1NSTextFieldCell1 NSActionCell1NSCell0±&01NSFont%&&&&&&JJ &&&&&&I2 setObject:v24@0:8@1601NSColor0±&% NSNamedColorSpace0±&%System0±&%textBackgroundColor0±°°0±& % textColor’0±% @* @PÀ @F @4  @F @4J0± &%0±0±&%Title:°&&&&&&JJ &&&&&&I’°°’01NSButton% @R @@ @W€ @0  @W€ @0J%0± &%01 NSButtonCell0±& % Autoenable01NSImage01NSMutableString&%GSSwitch°&&&&&&JJ&&&&&&I’0 ±&0!±&0"±0#±&%GSSwitchSelected&&& &&0$±0%±&%Menu Attributes°&&&&&&JJ &&&&&&I’0&±°0'±&% System0(±&% windowBackgroundColor° @ @%%0)± % @G @X€ @f @a  @f @aJ"0*± &0+± % @ @ @d@ @[À  @d@ @[ÀJ0,± &0-1NSMatrix% @3 @ @_À @X  @_À @XJ0.± &%0/±00±&°&&&&&&JJ&&&&&&I’% @_À @8 01±°°'02±&% controlBackgroundColor°103±& % NSButtonCell04±05±& % Windows Menu06±07±&%GSRadio°&&&&&&JJ&&&&&&I’08±&09±&0:±0;±&%GSRadioSelected&&& &&%%0<± &0=±0>±& % Windows Menu°6°&&&&&&JJ&&&&&&I’0?±&0@±&°:&&& &&0A±0B±& % Services Menu°6°&&&&&&JJ&&&&&&I’0C±&0D±&°:&&& &&0E±0F±&%Open Recent Menu°6°&&&&&&JJ&&&&&&I’0G±&0H±&°:&&& &&0I±0J±& % Normal Menu°6°&&&&&&JJ&&&&&&I’0K±&0L±&°:&&& &&’’’°=0M±0N±& % Menu Type°&&&&&&JJ &&&&&&I’°&° @ @%%°&0O±&%Window0P±&%Menu Inspector°P ?ð @5 @È @ÈI0Q± 0R±0S±&% NSCalibratedWhiteColorSpace 0T± &0U1NSBitmapImageRep1 NSImageRep0V±&% NSDeviceRGBColorSpace @H @HII0I00W1NSData&$š$šII*$§[=¿T8þŠJ2þR-!k§[=¿žU:þ‹K3þxB-ÿH'ÿR-!k§[=¿šS7þˆJ2ÿxB-ÿH'ÿ/ÿ ?§[=¿šS7ÿ†I2ÿxB-ÿH'ÿ/ÿ ?§[=¿™S7ÿ…H0þxB-ÿH'ÿ/ÿ ?§[=¿™R7þ†I2ÿxB-ÿH'ÿ/ÿ ?§[=¿™S7þ‡I0þxB-ÿH'ÿ/ÿ ?§[=¿˜R7þ‡I2þxB-ÿH'ÿ/ÿ ?§[=¿˜R7ÿ…H0þxB-ÿH'ÿ/ÿ ?¨[>ÿX/!ÿj:)ÿH'ÿ/ÿ ?D49ÿ  ?hft¿{y‰ÿ<;Dÿ ?hft¿€}ÿ<;Dÿ ?™¯ÿ<;Dÿ ?™¯ÿ43:ÿ""""™¯ÿ43:ÿzzzz°°°¶ÅÅÅÍÅÅÅÍáááûäääÿðððÿíííÿÙÙÙæÆÆÆÍ±±±¶""""EEEEEEEEEEEE™¯ÿ43:ÿŸŸŸŸŸŸŸŸŸŸŸŸÖÖÖæçççÿÜÜÜÿÚÚÚÿÚÚÚÿÛÛÛÿÛÛÛÿÚÚÚÿÚÚÚÿØØØÿËËËÿËËËÿ–––ÿ555»222t™¯ÿ43:ÿ0?55hhhiiiÝÝÝÿÚÚÚÿÕÕÕÿÓÓÓÿÒÒÒÿÒÒÒÿÑÑÑÿÑÑÑÿÑÑÑÿÑÑÑÿÎÎÎÿÏÏÏÿ³³³ÿ›››ÿ‡‡‡ÿyyyÿVVVÝ777?™¯ÿ43:ÿ~=0¿¸rdÿ¼¤ŸÿÔÓÓÿØØØÿÐÏÏÿÑÑÑÿÑÑÑÿÒÒÒÿÔÔÔÿÒÒÒÿÏÏÏÿÌÌÌÿÏÏÏÿÔÔÔÿ×××ÿ¿¿¿ÿ¥¥¥ÿŸŸŸÿ“““ÿ‰‰‰ÿ‚‚‚ÿxxxÿUUUÝ444?/17?Œ‰¿µ²Êÿ43:ÿ5„?0þ¥\MþÁ·µÿ·°¯ÿÃÃÃÿÎÊÈÿÑÑÑÿÒÒÒÿÔÔÔÿÒÒÒÿÐÐÐÿÐÐÐÿÕÕÕÿÐÐÐÿÆÆÆÿ©©©ÿ£££ÿŸŸŸÿœœœÿ———ÿŽŽŽÿ……†ÿzz{ÿ]]]ÿQQQmmm_bnÀÄÝÿ¯²Èÿ¡¡·ÿœ™¯ÿ:9@ÿ5‚?0þ‡I>þ¥’ÿ’e]ÿ·‚xÿÐÎÎÿ×××ÿÑÑÑÿÑÑÑÿÕÕÕÿÐÐÐÿÏÏÏÿÐÐÐÿÀÀÀÿ¥¥¥ÿ¥¥¥ÿ£££ÿ   ÿžžžÿÿ™š›ÿ™™ÿ˜™žÿ   ÿ±³ÀÿÀÄÝÿŸ µþxw‡þvt„ÿsqÿpo}þ66<ÿ5ƒ?2þ…A3þˆQFÿ…A4þ‹H:þ²Ÿœÿ°‰ÿ»¸¸ÿÐÐÐÿÛÛÛÿÑÑÑÿÖÖÖÿÎÎÎÿ®®®ÿŸŸŸÿŸŸŸÿ¡¡¡ÿ   ÿ£££ÿžžžÿ   ÿ¦¨¯ÿ¸»ÎÿÀÄÝÿ¡¢¸ÿ|z‹þzy‰ÿwu…þtr‚þqpþbaoþ++0¿5„?2ÿ†@2ÿ‡@2þ‡A3þ‰B3ÿŠC4þE6þ¤ƒ}þÇÆÆÿÔÔÔÿÐÐÐÿÒÒÒÿ²²²ÿ¤¤¤ÿŸŸŸÿŸŸŸÿ¢¢¢ÿŸŸŸÿžžžÿ×××ÿééìÿÞàçÿ²²¿ÿ‘ÿ}|ÿzxŠþxw‡ÿutƒþrq€þpn}þVT_ÿ=,,ê ˆ5…@2þ†@3þ‡A3þˆA3þŠJ<þ‰NBÿŽD6þH:þ¹Ÿ›þÇÅÅÿ Žþ•‰†ÿ™’‘ÿŸ›šÿœ™˜ÿ žÿ£ ŸÿØÓÒÿòòòÿóóóÿéééÿäääÿàààÿÄÄÄÿ‰‰‘ÿƒ‚Žþ}|ˆÿtrþqo~þnm{ÿ::Bÿf4)þa2'þ\/&þW*!¿55†@2þ‡A3þˆA3þ‰C4þ¤€yþ‰c\þE6þE6þ­ˆ‚þ‘ÿÀ¤ŸÿÛÌÉþõõõÿóóóÿòòòÿóóóÿïïïÿìììÿãããÿàààÿ···ÿ¼¼¼ÿ±±±ÿ¼¼¼ÿ¿¿¿ÿ«««ÿ¥¤¨ÿyx€þsr|þ`_mþF;?þf4)þd3)þo4)þz:-þ…@2þw:-þV* ¿55‡@3þ‡A3þˆA3þŠC4þ¦‚zþf^þE6þ’F7þ”K<þÛÐÏþóóóÿîîîÿèèèÿßßßÿÖÖÖÿÍÍÍÿÈÈÈÿËËËÿÇÇÇÿÆÆÆÿ»»»ÿÂÂÂÿ¸¸¸ÿºººÿ»»»ÿªªªÿ¸¸¸ÿ¨¨¨ÿÇÇÇÿ›››þtihþb/$þi3'þv8,þ~ÿdbqþihvþFEOÿQ-)þY)!þW)þ`/$ÿk3'ÿq6*þn4)þl3'þi2'þf0&þc/$þ`-$þY*!þ)5ŠC4þŒC4þD4þE6þ’F7þ•H7þƦ¡þëëëÿØØØÿ¼¼¼ÿÔÔÔÿÂÂÂÿ···ÿ©©©ÿ±±±ÿÅÅÅÿÎÎÎÿÂÂÂÿºººÿ¸¸¸ÿÿ’’’ÿkkkÿ)))þLJRþkjxþihvÿhguþ::Bÿ\/&þ[-$þY-$þc/&ÿl3'þo4)ÿl3'ÿj2'þg2&þd0$þa/$þ^-#þX*!þ)5„@2þD4þE6þ‘F7þ”H7þ—I8þÚÅÂþëëëÿÒÒÒÿ¸¸¸ÿ¬¬¬ÿ°°°ÿÄÄÄÿ­­­ÿ¸¸¸ÿºººÿ¸¸¸ÿÆÆÆÿ²²²ÿƒƒƒÿ{{{ÿ[[[ÿ322þQPZþ^]jþjhwþhguþQP[þK33ÿ\-&þW)þ_/$þj3'þm3'þm4)þj3'ÿh2&þd0&þb/$þ_-#þ],#þX*!ÿ)P'¿~>>þdddÿ´´´ÿ>>?ÿ87?þ4$$þE)&þ_-#þ`0'þ_0&ÿ]/&ÿ^/&þ`/&ÿ`/&þc0&þj2'þn3'þk3'þh2&ÿd0$ÿa/$ÿ^-#þ\,!þZ,!þX*!þU)þT)ÿ)ttt³³³ÿ©©©ÿ‰‰‰ÿtttÿzzzÿ¯¯¯ÿ¯¯¯ÿ¹¹¹ÿ‡‡‡ÿ;;;ÿrqyþjhwþPPZÿ43:ÿªªªÿC@?ÿw9,ÿc2)þb2)þ^,#þ_0&þd2'þg2'þh2'ÿk3)þl3)þl3)þl3'ÿl3'þi2'þf0&ÿc/$ÿ_-#þ],#þZ,!þX*!þW)þT)þS)þ)rrrŸŸŸÿ€€€ÿ```ÿFFFû000úŠŠŠÿÇÇÇÿ¯¯¯ÿmmmÿ\[aÿ<;CÿA)'þ^3,þ‘I:þ°°°ÿ:76þv8,þ_-$þb2'þg2'þl4)þr7*þs7*þs7*þw8,þt7,þq6*þn4)þk3'ÿg2&ÿd0$ÿ`-$þ],#þ[,!ÿX*!þW)þU)þS'þS'ÿ)ÁÁÁúYYYøò777ïXWcûKJSþ|||ÿÊÊÊÿ¦¦¦ÿSSSÿ\2,þ‚KDþD4þ‘I:þ“I;þ¯¯¯ÿA?>þ~>0þb2)þf2'þp6*þx:-þy:-þ{;-þx:-þv9,ÿs7*þo4)þl3'þi2&þf0&þc/$ÿ_-#ÿ\,#þY*!þW)þT)þS'þR'þS'ÿ)TR^|z‡ô@?Gↄ–þŒŠþ\Zgþ<;CþŽŽŽÿÐÐÐÿ¯¯¯ÿJJJÿm4)þD4þE6þ˜J;þ˜UIþ†PEþvI@ÿq:/ÿl4)þm4)þx:,þ};/þ{:-þy:-þw9,ÿt7*þq6*ÿm4)þj3'þh2&þc0&þa/$ÿ]-#þ[,!ÿX*!þV)ÿT)þR'þR'þR'þ)0/5?ª§¾þˆ‡™þ_^kÿCBJÿ43:ÿ?ˆˆˆÿ¸¸¸ÿ‚‚‚ÿQQQÿ ˆ^-#þ’I:þ¡O>þ¬SBÿ£P?þ‘H7ÿ€?2þp6*þs7*þ0þ|;/þy:-þp6*þf0&þd0&ÿc/&ÿ`/$þ_-$þ]-#þ\,#þT)!ÿT)!ÿT)!ÿT)!ÿT)!ÿT)!ÿT)!ÿ)))) ?h3'¿z;/ÿT)!ÿT)!ÿT)!ÿ`/$ÿ`/$ÿ))))) ? þÿ00’$$R&   @ž @à0X± &0Y± &0Z1NSMutableDictionary1 NSDictionary&0[±&%Box°0\±& % TextField° 0]±&%Button°0^±&% NSOwner0_±&%GormMenuAttributesInspector0`±&%Matrix°-0a±&%Box1°)0b±& % TextField1°0c±& % InspectorWin°0d± &0e1NSNibConnector°c0f±&% NSOwner0g±°\0h±°b0i±°[0j±°a0k1 NSNibOutletConnector°f°\0l±& % titleText0m± °\°f0n±&%delegate0o± °f°c0p±&%window0q±°]0r± °f°]0s±& % autoenable0t± °\°]0u±& % nextKeyView0v± °c°\0w±&%initialFirstResponder0x±°`0y± °f°`0z±&%menuType0{1!NSNibControlConnector°`°f0|±&%ok:0}±!°]°f°|0~± °]°`0±& % nextKeyView0€± °`°\°0±&gorm-1.2.24/Palettes/0Menus/GormMenuAttributesInspector.gorm/data.classes0000644000000000000000000000053113410616261025113 0ustar rootroot{ "## Comment" = "Do NOT change this file, Gorm maintains it"; FirstResponder = { Actions = ( "orderFrontFontPanel:", "setObject:" ); Super = NSObject; }; GormMenuAttributesInspector = { Actions = ( "setObject:" ); Outlets = ( titleText, menuType, autoenable ); Super = IBInspector; }; }gorm-1.2.24/Palettes/0Menus/GormMenuAttributesInspector.gorm/data.info0000644000000000000000000000027013410616261024411 0ustar rootrootGNUstep archive000f4240:00000003:00000003:00000000:01GormFilePrefsManager1NSObject%01NSString&%Latest Version0±& % Typed Streamgorm-1.2.24/Palettes/0Menus/GormMenuAttributesInspector.h0000644000000000000000000000270013410616261022031 0ustar rootroot/* GormMenuAttributesInspector.m Copyright (C) 1999-2005 Free Software Foundation, Inc. Author: Richard frith-Macdonald (richard@brainstorm.co.uk> Date: 1999 This file is part of GNUstep. This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 3 of the License, or (at your option) any later version. This program 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 General Public License for more details. You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02111 USA. */ /* July 2005 : Spilt inspector in separate classes. Always use ok: revert: methods Clean up Author : Fabien Vallon */ #ifndef INCLUDED_GormMenuAttributesInspector_h_ #define INCLUDED_GormMenuAttributesInspector_h_ #include @class NSButton; @class NSMatrix; @class NSTextField; @interface GormMenuAttributesInspector : IBInspector { NSTextField *titleText; NSMatrix *menuType; NSButton *autoenable; } @end #endif /* INCLUDED_GormMenuAttributesInspector_h_ */ gorm-1.2.24/Palettes/0Menus/GormMenuInspectors.m0000644000000000000000000001133013410616261020151 0ustar rootroot/* GormMenuInspectors.m * * Copyright (C) 2000 Free Software Foundation, Inc. * * Author: Richard Frith-Macdonald * Date: 2000 * Author: Gregory John Casamento * Date: 2003 * * This file is part of GNUstep. * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 3 of the License, or * (at your option) any later version. * * This program 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 General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02111 USA. */ #include #include #include #include @interface GormMenuAttributesInspector : IBInspector { NSTextField *titleText; NSMatrix *menuType; id autoenable; } - (void) updateMenuType: (id)sender; - (void) updateAutoenable: (id)sender; @end @implementation GormMenuAttributesInspector - (void)controlTextDidChange:(NSNotification *)aNotification { id doc = [(id)NSApp activeDocument]; [object setTitle: [titleText stringValue]]; [doc touch]; } - (id) init { if ([super init] == nil) return nil; if ([NSBundle loadNibNamed: @"GormMenuAttributesInspector" owner: self] == NO) { NSLog(@"Could not gorm GormMenuAttributesInspector"); return nil; } return self; } - (void) setObject: (id)anObject { GormDocument *doc = (GormDocument *)[(id)NSApp activeDocument]; ASSIGN(object, nil); // remove reference to old object... [super setObject: anObject]; [titleText setStringValue: [object title]]; [autoenable setState: ([object autoenablesItems]?NSOnState:NSOffState)]; // set up the menu type matrix... if([doc windowsMenu] == anObject) { [menuType selectCellAtRow: 0 column: 0]; } else if([doc servicesMenu] == anObject) { [menuType selectCellAtRow: 1 column: 0]; } else // normal menu without any special function { [menuType selectCellAtRow: 2 column: 0]; } } - (void) updateMenuType: (id)sender { BOOL flag; GormDocument *doc = (GormDocument *)[(id)NSApp activeDocument]; // look at the values passed back in the matrix. flag = ([[menuType cellAtRow: 0 column: 0] state] == NSOnState) ? YES : NO; // windows menu... if(flag) { [doc setWindowsMenu: [self object]]; if([doc servicesMenu] == [self object]) { [doc setServicesMenu: nil]; } } flag = ([[menuType cellAtRow: 1 column: 0] state] == NSOnState) ? YES : NO; // services menu... if(flag) { [doc setServicesMenu: [self object]]; if([doc windowsMenu] == [self object]) { [doc setWindowsMenu: nil]; } } flag = ([[menuType cellAtRow: 2 column: 0] state] == NSOnState) ? YES : NO; // normal menu... if(flag) { if([doc windowsMenu] == [self object]) { [doc setWindowsMenu: nil]; } if([doc servicesMenu] == [self object]) { [doc setServicesMenu: nil]; } } } - (void) updateAutoenable: (id)sender { BOOL flag; // look at the values passed back in the matrix. flag = ([autoenable state] == NSOnState) ? YES : NO; [object setAutoenablesItems: flag]; } @end @interface GormMenuItemAttributesInspector : IBInspector { NSTextField *titleText; NSTextField *shortCut; NSTextField *tagText; } @end @implementation GormMenuItemAttributesInspector - (void)controlTextDidChange:(NSNotification *)aNotification { id o = [aNotification object]; id doc = [(id)NSApp activeDocument]; if (o == titleText) { [object setTitle: [titleText stringValue]]; } if (o == shortCut) { NSString *s = [[shortCut stringValue] stringByTrimmingSpaces]; [object setKeyEquivalent: s]; } if (o == tagText) { [object setTag: [tagText intValue]]; } [doc touch]; [[object menu] display]; } - (id) init { if ([super init] == nil) return nil; if ([NSBundle loadNibNamed: @"GormMenuItemAttributesInspector" owner: self] == NO) { NSLog(@"Could not gorm GormMenuItemAttributesInspector"); return nil; } return self; } - (void) setObject: (id)anObject { [super setObject: anObject]; [titleText setStringValue: [object title]]; [shortCut setStringValue: [object keyEquivalent]]; [tagText setIntValue: [object tag]]; } @end gorm-1.2.24/Palettes/0Menus/MenusPalette.m0000644000000000000000000003674613410616261016776 0ustar rootroot/* main.m Copyright (C) 1999,2000 Free Software Foundation, Inc. Author: Richard frith-Macdonald Date: 1999 Author: Gregory John Casamento Date: 2003, 2004, 2005 This file is part of GNUstep. This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 3 of the License, or (at your option) any later version. This program 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 General Public License for more details. You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02111 USA. */ #include #include #include #include "GormNSMenu.h" @interface GormMenuMaker : NSObject { } @end @implementation GormMenuMaker - (void) encodeWithCoder: (NSCoder *)coder { } - (id) initWithCoder: (NSCoder *)coder { NSMenu *m = [[GormNSMenu alloc] init]; // build the menu.. [m setTitle: _(@"Main Menu")]; [m addItemWithTitle: _(@"Hide") action: @selector(hide:) keyEquivalent: @"h"]; [m addItemWithTitle: _(@"Quit") action: @selector(terminate:) keyEquivalent: @"q"]; RELEASE(self); return ((id)m); } @end @interface MenusPalette: IBPalette { } @end @implementation MenusPalette - (void) finishInstantiate { NSView *contents; NSMenuItem *i; NSMenu *m; NSMenu *s; NSButton *b; id menu; id v; NSBundle *bundle = [NSBundle bundleForClass: [self class]]; NSString *path = [bundle pathForImageResource: @"GormMenuDrag"]; NSImage *dragImage = [[NSImage alloc] initWithContentsOfFile: path]; originalWindow = [[NSWindow alloc] initWithContentRect: NSMakeRect(0, 0, 272, 192) styleMask: NSBorderlessWindowMask backing: NSBackingStoreRetained defer: NO]; contents = [originalWindow contentView]; /* * The Info menu */ m = [[GormNSMenu alloc] init]; [m addItemWithTitle: @"Info Panel..." action: @selector(orderFrontStandardInfoPanel:) keyEquivalent: @""]; [m addItemWithTitle: @"Preferences..." action: NULL keyEquivalent: @""]; [m addItemWithTitle: @"Help..." action: @selector(orderFrontHelpPanel:) keyEquivalent: @"?"]; [m setTitle: @"Info"]; i = [[NSMenuItem alloc] initWithTitle: @"Info" action: @selector(submenuAction:) keyEquivalent: @""]; [i setSubmenu: m]; b = [[NSButton alloc] initWithFrame: NSMakeRect(30, 160, 100, 20)]; [b setImage: [NSImage imageNamed: @"common_3DArrowRight"]]; [b setAlignment: NSLeftTextAlignment]; [b setImagePosition: NSImageRight]; [b setTitle: @" Info"]; [contents addSubview: b]; [self associateObject: i type: IBMenuPboardType with: b]; RELEASE(b); RELEASE(i); RELEASE(m); /* * The Font menu */ m = [GormNSMenu menuWithMenu: [[NSFontManager sharedFontManager] fontMenu: YES]]; // Other font menu items [m addItemWithTitle: @"Underline" action: @selector(underline:) keyEquivalent: @""]; [m addItemWithTitle: @"Superscript" action: @selector(superscript:) keyEquivalent: @""]; [m addItemWithTitle: @"Subscript" action: @selector(subscript:) keyEquivalent: @""]; [m addItemWithTitle: @"Unscript" action: @selector(unscript:) keyEquivalent: @""]; [m addItemWithTitle: @"Copy Font" action: @selector(copyFont:) keyEquivalent: @"3"]; [m addItemWithTitle: @"Paste Font" action: @selector(pasteFont:) keyEquivalent: @"4"]; i = [[NSMenuItem alloc] initWithTitle: @"Font" action: @selector(submenuAction:) keyEquivalent: @""]; [i setSubmenu: m]; b = [[NSButton alloc] initWithFrame: NSMakeRect(145, 160, 100, 20)]; [b setImage: [NSImage imageNamed: @"common_3DArrowRight"]]; [b setAlignment: NSLeftTextAlignment]; [b setImagePosition: NSImageRight]; [b setTitle: @" Font"]; [contents addSubview: b]; [self associateObject: i type: IBMenuPboardType with: b]; RELEASE(b); RELEASE(i); RELEASE(m); /* * The Document menu */ m = [[GormNSMenu alloc] init]; [m addItemWithTitle: @"Open..." action: @selector(openDocument:) keyEquivalent: @"o"]; i = (NSMenuItem *)[m addItemWithTitle: @"Open Recent" action: NULL keyEquivalent: @""]; s = [[GormNSMenu alloc] init]; [s addItemWithTitle: @"Clear List" action: @selector(clearRecentDocuments:) keyEquivalent: @""]; [s setTitle: @"Open Recent"]; [i setSubmenu: s]; [m addItemWithTitle: @"New" action: @selector(newDocument:) keyEquivalent: @"n"]; [m addItemWithTitle: @"Save..." action: @selector(saveDocument:) keyEquivalent: @"s"]; [m addItemWithTitle: @"Save As..." action: @selector(saveDocumentAs:) keyEquivalent: @"S"]; [m addItemWithTitle: @"Save To..." action: @selector(saveDocumentTo:) keyEquivalent: @""]; [m addItemWithTitle: @"Save All" action: @selector(saveAllDocuments:) keyEquivalent: @""]; [m addItemWithTitle: @"Revert To Saved" action: @selector(revertDocumentToSaved:) keyEquivalent: @""]; [m addItemWithTitle: @"Close" action: @selector(close:) keyEquivalent: @""]; [m setTitle: @"Document"]; i = [[NSMenuItem alloc] initWithTitle: @"Document" action: @selector(submenuAction:) keyEquivalent: @""]; [i setSubmenu: m]; b = [[NSButton alloc] initWithFrame: NSMakeRect(30, 140, 100, 20)]; [b setImage: [NSImage imageNamed: @"common_3DArrowRight"]]; [b setAlignment: NSLeftTextAlignment]; [b setImagePosition: NSImageRight]; [b setTitle: @" Document"]; [contents addSubview: b]; [self associateObject: i type: IBMenuPboardType with: b]; RELEASE(b); RELEASE(i); RELEASE(m); /* * The Text menu */ m = [[GormNSMenu alloc] init]; [m addItemWithTitle: @"Align Left" action: @selector(alignLeft:) keyEquivalent: @""]; [m addItemWithTitle: @"Center" action: @selector(alignCenter:) keyEquivalent: @""]; [m addItemWithTitle: @"Align Right" action: @selector(alignRight:) keyEquivalent: @""]; [m addItemWithTitle: @"Show Ruler" action: @selector(toggleRuler:) keyEquivalent: @""]; [m addItemWithTitle: @"Copy Ruler" action: @selector(copyRuler:) keyEquivalent: @"1"]; [m addItemWithTitle: @"Paste Ruler" action: @selector(pasteRuler:) keyEquivalent: @"2"]; [m setTitle: @"Text"]; i = [[NSMenuItem alloc] initWithTitle: @"Text" action: @selector(submenuAction:) keyEquivalent: @""]; [i setSubmenu: m]; b = [[NSButton alloc] initWithFrame: NSMakeRect(145, 140, 100, 20)]; [b setImage: [NSImage imageNamed: @"common_3DArrowRight"]]; [b setAlignment: NSLeftTextAlignment]; [b setImagePosition: NSImageRight]; [b setTitle: @" Text"]; [contents addSubview: b]; [self associateObject: i type: IBMenuPboardType with: b]; RELEASE(b); RELEASE(i); RELEASE(m); /* * The Edit menu */ m = [[GormNSMenu alloc] init]; [m addItemWithTitle: @"Undo" action: @selector(undo:) keyEquivalent: @"z"]; [m addItemWithTitle: @"Redo" action: @selector(redo:) keyEquivalent: @"Z"]; [m addItemWithTitle: @"Cut" action: @selector(cut:) keyEquivalent: @"x"]; [m addItemWithTitle: @"Copy" action: @selector(copy:) keyEquivalent: @"c"]; [m addItemWithTitle: @"Paste" action: @selector(paste:) keyEquivalent: @"v"]; [m addItemWithTitle: @"Select All" action: @selector(selectAll:) keyEquivalent: @"a"]; [m setTitle: @"Edit"]; i = [[NSMenuItem alloc] initWithTitle: @"Edit" action: @selector(submenuAction:) keyEquivalent: @""]; [i setSubmenu: m]; b = [[NSButton alloc] initWithFrame: NSMakeRect(30, 120, 100, 20)]; [b setImage: [NSImage imageNamed: @"common_3DArrowRight"]]; [b setAlignment: NSLeftTextAlignment]; [b setImagePosition: NSImageRight]; [b setTitle: @" Edit"]; [contents addSubview: b]; [self associateObject: i type: IBMenuPboardType with: b]; RELEASE(b); RELEASE(i); RELEASE(m); /* * The Find menu */ m = [[GormNSMenu alloc] init]; i = (NSMenuItem *)[m addItemWithTitle: @"Find Panel..." action: @selector(performFindPanelAction:) keyEquivalent: @"f"]; [i setTag: NSFindPanelActionShowFindPanel]; i = (NSMenuItem *)[m addItemWithTitle: @"Find Next" action: @selector(performFindPanelAction:) keyEquivalent: @"g"]; [i setTag: NSFindPanelActionNext]; i = (NSMenuItem *)[m addItemWithTitle: @"Find Previous" action: @selector(performFindPanelAction:) keyEquivalent: @"d"]; [i setTag: NSFindPanelActionPrevious]; i = (NSMenuItem *)[m addItemWithTitle: @"Enter Selection" action: @selector(performFindPanelAction:) keyEquivalent: @"e"]; [i setTag: NSFindPanelActionSetFindString]; [m addItemWithTitle: @"Jump To Selection" action: @selector(centerSelectionInVisibleArea:) keyEquivalent: @"j"]; [m setTitle: @"Find"]; i = [[NSMenuItem alloc] initWithTitle: @"Find" action: @selector(submenuAction:) keyEquivalent: @""]; [i setSubmenu: m]; b = [[NSButton alloc] initWithFrame: NSMakeRect(145, 120, 100, 20)]; [b setImage: [NSImage imageNamed: @"common_3DArrowRight"]]; [b setAlignment: NSLeftTextAlignment]; [b setImagePosition: NSImageRight]; [b setTitle: @" Find"]; [contents addSubview: b]; [self associateObject: i type: IBMenuPboardType with: b]; RELEASE(b); RELEASE(i); RELEASE(m); /* * The Format menu */ m = [[GormNSMenu alloc] init]; /* * Font submenu */ i = (NSMenuItem *)[m addItemWithTitle: @"Font" action: NULL keyEquivalent: @""]; s = [GormNSMenu menuWithMenu: [[NSFontManager sharedFontManager] fontMenu: YES]]; // Other font menu items [s addItemWithTitle: @"Underline" action: @selector(underline:) keyEquivalent: @""]; [s addItemWithTitle: @"Superscript" action: @selector(superscript:) keyEquivalent: @""]; [s addItemWithTitle: @"Subscript" action: @selector(subscript:) keyEquivalent: @""]; [s addItemWithTitle: @"Unscript" action: @selector(unscript:) keyEquivalent: @""]; [s addItemWithTitle: @"Copy Font" action: @selector(copyFont:) keyEquivalent: @"3"]; [s addItemWithTitle: @"Paste Font" action: @selector(pasteFont:) keyEquivalent: @"4"]; [m setSubmenu: s forItem: i]; /* * Text submenu */ i = (NSMenuItem *)[m addItemWithTitle: @"Text" action: NULL keyEquivalent: @""]; s = [[GormNSMenu alloc] init]; [s addItemWithTitle: @"Align Left" action: @selector(alignLeft:) keyEquivalent: @""]; [s addItemWithTitle: @"Center" action: @selector(alignCenter:) keyEquivalent: @""]; [s addItemWithTitle: @"Align Right" action: @selector(alignRight:) keyEquivalent: @""]; [s addItemWithTitle: @"Show Ruler" action: @selector(toggleRuler:) keyEquivalent: @""]; [s addItemWithTitle: @"Copy Ruler" action: @selector(copyRuler:) keyEquivalent: @"1"]; [s addItemWithTitle: @"Paste Ruler" action: @selector(pasteRuler:) keyEquivalent: @"2"]; [s setTitle: @"Text"]; [m setSubmenu: s forItem: i]; [m addItemWithTitle: @"Page Layout..." action: @selector(runPageLayout:) keyEquivalent: @"P"]; [m setTitle: @"Format"]; i = [[NSMenuItem alloc] initWithTitle: @"Format" action: @selector(submenuAction:) keyEquivalent: @""]; [i setSubmenu: m]; b = [[NSButton alloc] initWithFrame: NSMakeRect(30, 100, 100, 20)]; [b setImage: [NSImage imageNamed: @"common_3DArrowRight"]]; [b setAlignment: NSLeftTextAlignment]; [b setImagePosition: NSImageRight]; [b setTitle: @" Format"]; [contents addSubview: b]; [self associateObject: i type: IBMenuPboardType with: b]; RELEASE(b); RELEASE(i); RELEASE(m); /* * The Colors item */ i = [[NSMenuItem alloc] initWithTitle: @"Colors..." action: @selector(orderFrontColorPanel:) keyEquivalent: @""]; b = [[NSButton alloc] initWithFrame: NSMakeRect(145, 100, 100, 20)]; [b setAlignment: NSLeftTextAlignment]; [b setTitle: @" Colors..."]; [contents addSubview: b]; [self associateObject: i type: IBMenuPboardType with: b]; RELEASE(b); RELEASE(i); /* * The Windows menu */ m = [[GormNSMenu alloc] init]; [m addItemWithTitle: @"Arrange In Front" action: @selector(arrangeInFront:) keyEquivalent: @""]; [m addItemWithTitle: @"Miniaturize Window" action: @selector(performMiniaturize:) keyEquivalent: @"m"]; [m addItemWithTitle: @"Close Window" action: @selector(performClose:) keyEquivalent: @"w"]; [m setTitle: @"Windows"]; i = [[NSMenuItem alloc] initWithTitle: @"Windows" action: @selector(submenuAction:) keyEquivalent: @""]; [i setSubmenu: m]; b = [[NSButton alloc] initWithFrame: NSMakeRect(30, 80, 100, 20)]; [b setImage: [NSImage imageNamed: @"common_3DArrowRight"]]; [b setAlignment: NSLeftTextAlignment]; [b setImagePosition: NSImageRight]; [b setTitle: @" Windows"]; [contents addSubview: b]; [self associateObject: i type: IBMenuPboardType with: b]; RELEASE(b); RELEASE(i); RELEASE(m); /* * The general item */ i = [[NSMenuItem alloc] initWithTitle: @"Item" action: NULL keyEquivalent: @""]; b = [[NSButton alloc] initWithFrame: NSMakeRect(145, 80, 100, 20)]; [b setAlignment: NSLeftTextAlignment]; [b setTitle: @" Item"]; [contents addSubview: b]; [self associateObject: i type: IBMenuPboardType with: b]; RELEASE(b); RELEASE(i); /* * The Services menu */ m = [[GormNSMenu alloc] init]; [m setTitle: @"Services"]; i = [[NSMenuItem alloc] initWithTitle: @"Services" action: @selector(submenuAction:) keyEquivalent: @""]; [i setSubmenu: m]; b = [[NSButton alloc] initWithFrame: NSMakeRect(30, 60, 100, 20)]; [b setImage: [NSImage imageNamed: @"common_3DArrowRight"]]; [b setAlignment: NSLeftTextAlignment]; [b setImagePosition: NSImageRight]; [b setTitle: @" Services"]; [contents addSubview: b]; [self associateObject: i type: IBMenuPboardType with: b]; RELEASE(b); RELEASE(i); RELEASE(m); /* * The general submenu */ m = [[GormNSMenu alloc] init]; [m addItemWithTitle: @"Item" action: NULL keyEquivalent: @""]; [m setTitle: @"Submenu"]; i = [[NSMenuItem alloc] initWithTitle: @"Submenu" action: @selector(submenuAction:) keyEquivalent: @""]; [i setSubmenu: m]; b = [[NSButton alloc] initWithFrame: NSMakeRect(145, 60, 100, 20)]; [b setImage: [NSImage imageNamed: @"common_3DArrowRight"]]; [b setAlignment: NSLeftTextAlignment]; [b setImagePosition: NSImageRight]; [b setTitle: @" Submenu"]; [contents addSubview: b]; [self associateObject: i type: IBMenuPboardType with: b]; RELEASE(b); RELEASE(i); RELEASE(m); /* * A whole new menu... */ menu = [[GormMenuMaker alloc] init]; v = [[NSButton alloc] initWithFrame: NSMakeRect(148,6,48,48)]; [v setBordered: NO]; [v setImage: dragImage]; [v setImagePosition: NSImageOverlaps]; [v setTitle: nil]; [contents addSubview: v]; [self associateObject: menu type: IBMenuPboardType with: v]; RELEASE(v); RELEASE(menu); } @end gorm-1.2.24/Palettes/0Menus/GNUmakefile0000644000000000000000000000304113410616261016242 0ustar rootroot# GNUmakefile # # Copyright (C) 1999 Free Software Foundation, Inc. # # Author: Richard Frith-Macdonald # Date: 1999 # # This file is part of GNUstep. # # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 2 of the License, or # (at your option) any later version. # # This program 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 General Public License for more details. # # You should have received a copy of the GNU General Public License # along with this program; if not, write to the Free Software # Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. PACKAGE_NAME = gorm include $(GNUSTEP_MAKEFILES)/common.make PALETTE_NAME = 0Menus 0Menus_PALETTE_ICON = MenusPalette 0Menus_PRINCIPAL_CLASS = MenusPalette 0Menus_OBJC_FILES = \ GormMenuEditor.m \ GormNSMenu.m \ GormNSMenuView.m \ GormMenuItemAttributesInspector.m\ GormMenuAttributesInspector.m\ MenusPalette.m \ inspectors.m 0Menus_RESOURCE_FILES = MenusPalette.tiff \ GormMenuDrag.tiff \ GormMenuAttributesInspector.gorm \ GormMenuItemAttributesInspector.gorm \ palette.table 0Menus_STANDARD_INSTALL = no -include GNUmakefile.preamble -include GNUmakefile.local include $(GNUSTEP_MAKEFILES)/palette.make -include GNUmakefile.postamble gorm-1.2.24/Palettes/0Menus/MenusPalette.tiff0000644000000000000000000002230213410616261017451 0ustar rootrootII*$?ÿ$$$ÿ)))ÿ)))ÿ ÿÿÿ ÿÿ)))ÿ)))ÿ)))ÿ)))ÿ***ÿÿÿÿÿÿ@@@ÿÿÿÿ@@@ÿÿÿÿÿÿÿSSSrÎÎÎÿÐÐÐÿ###ÿÿ¥¥¥ÿ¥¥¥ÿ{{{ÿ{{{ÿ¥¥¥ÿ)))ÿ{{{ÿ{{{ÿ{{{ÿ¥¥¥ÿ¥¥¥ÿ¨¨¨ÿ>>>ÿÿÿÿÿÿ???ÿÿÿÿÿ???ÿÿ¿¿¿ÿ???ÿÿÿÿSSSrÎÎÎÿ¥¥¥ÿ»»»ÿÐÐÐÿ###ÿÿ¥¥¥ÿ¥¥¥ÿ¥¥¥ÿ)))ÿ{{{ÿ{{{ÿ{{{ÿ{{{ÿ¥¥¥ÿ¥¥¥ÿ¥¥¥ÿ¨¨¨ÿ>>>ÿÿÿÿÿÿÿÿÿ???ÿÿÿ¿¿¿ÿÿÿÿÿ???ÿÿÿSSSrÎÎÎÿ¥¥¥ÿ¥¥¥ÿ¥¥¥ÿ»»»ÿÐÐÐÿ"$ÿÿ]_Vÿ{{{ÿ{{{ÿ{{{ÿ{{{ÿ{{{ÿ{{{ÿ¥¥¥ÿ¥¥¥ÿ¥¥¥ÿ¥¥¥ÿ¨¨¨ÿ>>>ÿÿÿÿÿÿÿ¿¿¿ÿ¿¿¿ÿÿÿ???ÿÿSSSrÎÎÎÿ¥¥¥ÿ¥¥¥ÿ¥¥¥ÿ{{{ÿ¥¥¥ÿ»»»ÿÐÐÐÿ###ÿÿ¥¥¥ÿ¥¥¥ÿ{{{ÿ{{{ÿ{{{ÿ¥¥¥ÿ{{{ÿ¥¥¥ÿ¥¥¥ÿ¥¥¥ÿ¥¥¥ÿ¨¨¨ÿ>>>ÿÿÿÿÿ¿¿¿ÿ¿¿¿ÿÿÿ¿¿¿ÿ¿¿¿ÿÿSSSrÎÎÎÿ¥¥¥ÿ¥¥¥ÿ¥¥¥ÿ)))ÿ)))ÿ{{{ÿ¥¥¥ÿ»»»ÿÐÐÐÿ###ÿÿ¥¥¥ÿ¥¥¥ÿRRRÿ¥¥¥ÿ{{{ÿ{{{ÿ¥¥¥ÿ¥¥¥ÿ¥¥¥ÿ¥¥¥ÿ¥¥¥ÿ¨¨¨ÿ>>>ÿÿÿÿ???ÿÿÿ¿¿¿ÿ¿¿¿ÿÿÿSSSrÎÎÎÿ¥¥¥ÿ¥¥¥ÿ¥¥¥ÿ)))ÿRRRÿ¥¥¥ÿ)))ÿ{{{ÿ¥¥¥ÿ»»»ÿÐÐÐÿ###ÿÿ¥¥¥ÿ{{{ÿRRRÿ{{{ÿ¥¥¥ÿ¥¥¥ÿ¥¥¥ÿ¥¥¥ÿ¥¥¥ÿ¥¥¥ÿ¥¥¥ÿ¨¨¨ÿ>>>ÿÿÿÿÿ¿¿¿ÿ¿¿¿ÿÿÿÿ?iiiÿ¥¥¥ÿ¥¥¥ÿ¥¥¥ÿ)))ÿ{{{ÿ{{{ÿ{{{ÿ¥¥¥ÿ¥¥¥ÿ¥¥¥ÿ¥¥¥ÿ»»»ÿÐÐÐÿ###ÿÿ¥¥¥ÿ¥¥¥ÿ¥¥¥ÿ¥¥¥ÿ¥¥¥ÿ¥¥¥ÿ¥¥¥ÿ¥¥¥ÿ¥¥¥ÿ¥¥¥ÿ¥¥¥ÿ¨¨¨ÿ>>>ÿÿÿÿ???ÿ???ÿÿÿ///ÿÿRRRÿ¥¥¥ÿ¥¥¥ÿ{{{ÿ{{{ÿ¥¥¥ÿ{{{ÿ¥¥¥ÿ{{{ÿ¥¥¥ÿ¥¥¥ÿ¥¥¥ÿ»»»ÿÐÐÐÿ###ÿÿ¥¥¥ÿ¥¥¥ÿ¥¥¥ÿ¥¥¥ÿ¥¥¥ÿ¥¥¥ÿ¥¥¥ÿ¥¥¥ÿ¥¥¥ÿ¥¥¥ÿ¥¥¥ÿ¨¨¨ÿ>>>ÿÿÿÿ???ÿ???ÿ¿¿¿ÿ///ÿÿRRRÿ¥¥¥ÿ¥¥¥ÿ{{{ÿ{{{ÿ¥¥¥ÿRRRÿ{{{ÿRRRÿ)))ÿ¥¥¥ÿ¥¥¥ÿ»»»ÿÐÐÐÿ###ÿÿ¥¥¥ÿ¥¥¥ÿ¥¥¥ÿ¥¥¥ÿ¥¥¥ÿ¥¥¥ÿ¥¥¥ÿ¥¥¥ÿ¥¥¥ÿ¥¥¥ÿ¥¥¥ÿ¨¨¨ÿ>>>ÿÿÿÿ???ÿ¿¿¿ÿÿÿRRRÿ¥¥¥ÿ¥¥¥ÿ¥¥¥ÿ{{{ÿ¥¥¥ÿ{{{ÿ)))ÿ¥¥¥ÿ{{{ÿ¥¥¥ÿ¥¥¥ÿ»»»ÿÐÐÐÿ###ÿÿ¥¥¥ÿ¥¥¥ÿ¥¥¥ÿ¥¥¥ÿ¥¥¥ÿ¥¥¥ÿ¥¥¥ÿ¥¥¥ÿ¥¥¥ÿ¥¥¥ÿ¥¥¥ÿ¨¨¨ÿ>>>ÿÿÿÿ???ÿÿÿRRRÿ¥¥¥ÿ¥¥¥ÿ{{{ÿRRRÿ$&ÿ¥¥¥ÿRRRÿ{{{ÿRRRÿ¥¥¥ÿ¥¥¥ÿ»»»ÿÐÐÐÿ###ÿÿ¥¥¥ÿ¥¥¥ÿ¥¥¥ÿ¥¥¥ÿ¥¥¥ÿ¥¥¥ÿ¥¥¥ÿ¥¥¥ÿ¥¥¥ÿ¥¥¥ÿ¥¥¥ÿ¨¨¨ÿ>>>ÿÿÿÿÿÿRRRÿ¥¥¥ÿ¥¥¥ÿ{{{ÿ¥¥¥ÿRRRÿ¥¥¥ÿRRRÿRRRÿ¥¥¥ÿ¥¥¥ÿ¥¥¥ÿ»»»ÿÐÐÐÿ###ÿÿ¥¥¥ÿ¥¥¥ÿ¥¥¥ÿ¥¥¥ÿ¥¥¥ÿ¥¥¥ÿ¥¥¥ÿ¥¥¥ÿ¥¥¥ÿ¥¥¥ÿ¥¥¥ÿ¨¨¨ÿ>>>ÿÿÿÿÿRRRÿ¥¥¥ÿ¥¥¥ÿ{{{ÿ¥¥¥ÿRRRÿ¥¥¥ÿ¥¥¥ÿ¥¥¥ÿ¥¥¥ÿ¥¥¥ÿ¥¥¥ÿ»»»ÿÐÐÐÿ###ÿÿ¥¥¥ÿ¥¥¥ÿ¥¥¥ÿ¥¥¥ÿ¥¥¥ÿ¥¥¥ÿ¥¥¥ÿ¥¥¥ÿ¥¥¥ÿ¥¥¥ÿ¥¥¥ÿ¨¨¨ÿ>>>ÿÿÿÿRRRÿ¥¥¥ÿ¥¥¥ÿ{{{ÿ{{{ÿ¥¥¥ÿ¥¥¥ÿ¥¥¥ÿ¥¥¥ÿ¥¥¥ÿ¥¥¥ÿ¥¥¥ÿ»»»ÿÐÐÐÿ###ÿÿ¥¥¥ÿ¥¥¥ÿ¥¥¥ÿ¥¥¥ÿ¥¥¥ÿ¥¥¥ÿ¥¥¥ÿ¥¥¥ÿ¥¥¥ÿ¥¥¥ÿ¥¥¥ÿ¨¨¨ÿ>>>ÿÿSSSr©©©ÿ?ÿRRRÿ¥¥¥ÿ¥¥¥ÿ¥¥¥ÿ¥¥¥ÿ¥¥¥ÿ¥¥¥ÿ¥¥¥ÿ¥¥¥ÿ¥¥¥ÿ¥¥¥ÿ¥¥¥ÿ»»»ÿÐÐÐÿ###ÿÿ¥¥¥ÿ¥¥¥ÿ¥¥¥ÿ¥¥¥ÿ¥¥¥ÿ¥¥¥ÿ¥¥¥ÿ¥¥¥ÿ¥¥¥ÿ¥¥¥ÿ¥¥¥ÿ¨¨¨ÿÿ?ÎÎÎÿ¥¥¥ÿ½½½ÿ?ÿRRRÿ¥¥¥ÿ¥¥¥ÿ¥¥¥ÿ¥¥¥ÿ¥¥¥ÿ¥¥¥ÿ¥¥¥ÿ¥¥¥ÿ¥¥¥ÿ¥¥¥ÿ¥¥¥ÿ»»»ÿÐÐÐÿ###ÿÿ¥¥¥ÿ¥¥¥ÿ¥¥¥ÿ¥¥¥ÿ¥¥¥ÿ¥¥¥ÿ¥¥¥ÿ¥¥¥ÿ¥¥¥ÿ¥¥¥ÿ¥¥¥ÿ***ÿ?ÎÎÎÿ¥¥¥ÿ¥¥¥ÿ¥¥¥ÿ½½½ÿ?ÿRRRÿ¥¥¥ÿ¥¥¥ÿ¥¥¥ÿ¥¥¥ÿ¥¥¥ÿ¥¥¥ÿ¥¥¥ÿ¥¥¥ÿ¥¥¥ÿ¥¥¥ÿ¥¥¥ÿ»»»ÿÐÐÐÿ###ÿÿ¥¥¥ÿ¥¥¥ÿ¥¥¥ÿ¥¥¥ÿ¥¥¥ÿ¥¥¥ÿ¥¥¥ÿ¥¥¥ÿ¥¥¥ÿ¥¥¥ÿ)))ÿ///ÿ®®®ÿ|||ÿ|||ÿ|||ÿ|||ÿ~~~ÿ)))))))))))))))))))))))))))))))))))))))))))))ÿgggÿ|||ÿ|||ÿ|||ÿ|||ÿ|||ÿ|||ÿ|||ÿ|||ÿ|||ÿ|||ÿ|||ÿ’’’ÿiiiÿSSSÿ|||ÿ|||ÿ|||ÿ|||ÿ|||ÿ|||ÿ|||ÿ|||ÿgggÿ¥¥¥ÿ)))ÿ)))ÿ|||ÿºººÿãããÿãããÿãããÿãããÿãããÿÙÙÙÿÙÙÙÿÙÙÙÿÙÙÙÿÙÙÙÿÙÙÙÿÙÙÙÿÙÙÙÿÙÙÙÿÙÙÙÿÙÙÙÿÙÙÙÿÙÙÙÿÙÙÙÿÙÙÙÿÙÙÙÿÙÙÙÿÙÙÙÿÙÙÙÿÙÙÙÿÙÙÙÿÙÙÙÿÙÙÙÿÙÙÙÿÙÙÙÿÙÙÙÿÙÙÙÿÙÙÙÿÙÙÙÿÙÙÙÿÙÙÙÿÙÙÙÿÙÙÙÿÙÙÙÿÙÙÙÿÙÙÙÿÙÙÙÿÿ~~~ÿ&&&ÿ)))ÿ|||ÿÞÞÞÿ¥¥¥ÿ¥¥¥ÿ¥¥¥ÿ¥¥¥ÿ¥¥¥ÿ¥¥¥ÿ¥¥¥ÿ¥¥¥ÿ¥¥¥ÿ¥¥¥ÿ¥¥¥ÿ¥¥¥ÿ¥¥¥ÿ¥¥¥ÿ¥¥¥ÿ¥¥¥ÿ¥¥¥ÿ¥¥¥ÿ¥¥¥ÿ¥¥¥ÿ¥¥¥ÿ¥¥¥ÿ¥¥¥ÿ¥¥¥ÿ¥¥¥ÿ¥¥¥ÿ¥¥¥ÿ¥¥¥ÿ¥¥¥ÿ¥¥¥ÿ¥¥¥ÿ¥¥¥ÿ¥¥¥ÿ¥¥¥ÿ¥¥¥ÿ¥¥¥ÿ¥¥¥ÿ¥¥¥ÿ¥¥¥ÿ¥¥¥ÿ¥¥¥ÿ¥¥¥ÿÿ\\\ÿ$$$ÿ)))ÿ|||ÿÞÞÞÿ¥¥¥ÿ¥¥¥ÿ¥¥¥ÿ¥¥¥ÿ¥¥¥ÿ¥¥¥ÿ¥¥¥ÿ¥¥¥ÿ¥¥¥ÿ¥¥¥ÿ¥¥¥ÿ¥¥¥ÿ¥¥¥ÿ¥¥¥ÿ¥¥¥ÿ¥¥¥ÿ¥¥¥ÿ¥¥¥ÿ¥¥¥ÿ¥¥¥ÿ¥¥¥ÿ¥¥¥ÿ¥¥¥ÿ¥¥¥ÿ¥¥¥ÿ¥¥¥ÿ¥¥¥ÿ¥¥¥ÿ¥¥¥ÿ¥¥¥ÿ¥¥¥ÿ¥¥¥ÿ¥¥¥ÿ¥¥¥ÿ¥¥¥ÿ¥¥¥ÿ¥¥¥ÿ¥¥¥ÿ¥¥¥ÿ¥¥¥ÿ¥¥¥ÿ¥¥¥ÿÿXXXÿ###ÿ)))ÿ|||ÿÞÞÞÿ¥¥¥ÿ¥¥¥ÿ{{{ÿRRRÿRRRÿ{{{ÿ¥¥¥ÿ¥¥¥ÿ¥¥¥ÿ¥¥¥ÿ{{{ÿ¥¥¥ÿRRRÿ¥¥¥ÿ¥¥¥ÿ¥¥¥ÿ¥¥¥ÿ¥¥¥ÿ¥¥¥ÿ¥¥¥ÿ¥¥¥ÿ¥¥¥ÿ¥¥¥ÿ¥¥¥ÿ¥¥¥ÿ¥¥¥ÿ¥¥¥ÿ¥¥¥ÿ¥¥¥ÿ¥¥¥ÿ¥¥¥ÿ¥¥¥ÿ¥¥¥ÿ¥¥¥ÿ¥¥¥ÿ¥¥¥ÿ¥¥¥ÿ¥¥¥ÿ¥¥¥ÿ¥¥¥ÿ¥¥¥ÿ¥¥¥ÿÿXXXÿ###ÿ)))ÿ|||ÿÞÞÞÿ¥¥¥ÿ¥¥¥ÿRRRÿ¥¥¥ÿ¥¥¥ÿRRRÿ¥¥¥ÿRRRÿ¥¥¥ÿRRRÿRRRÿ{{{ÿ)))ÿ¥¥¥ÿ¥¥¥ÿ¥¥¥ÿ¥¥¥ÿ¥¥¥ÿ¥¥¥ÿ¥¥¥ÿ¥¥¥ÿ¥¥¥ÿ¥¥¥ÿ¥¥¥ÿ¥¥¥ÿ¥¥¥ÿ¥¥¥ÿ¥¥¥ÿ¥¥¥ÿ¥¥¥ÿ¥¥¥ÿ¥¥¥ÿ¥¥¥ÿ¥¥¥ÿ¥¥¥ÿ¥¥¥ÿRRRÿRRRÿRRRÿ¥¥¥ÿ¥¥¥ÿ¥¥¥ÿÿXXXÿ###ÿ$$$ÿ|||ÿÞÞÞÿ¥¥¥ÿ¥¥¥ÿRRRÿ¥¥¥ÿ{{{ÿRRRÿ¥¥¥ÿRRRÿ¥¥¥ÿRRRÿRRRÿ¥¥¥ÿRRRÿ¥¥¥ÿ¥¥¥ÿ¥¥¥ÿ¥¥¥ÿ¥¥¥ÿ¥¥¥ÿ¥¥¥ÿ¥¥¥ÿ¥¥¥ÿ¥¥¥ÿ¥¥¥ÿ¥¥¥ÿ¥¥¥ÿ¥¥¥ÿ¥¥¥ÿ¥¥¥ÿ¥¥¥ÿ¥¥¥ÿ¥¥¥ÿ¥¥¥ÿ¥¥¥ÿ¥¥¥ÿ¥¥¥ÿRRRÿ¥¥¥ÿRRRÿ¥¥¥ÿ¥¥¥ÿ¥¥¥ÿÿXXXÿÿÿgggÿÞÞÞÿ¥¥¥ÿ¥¥¥ÿRRRÿ¥¥¥ÿ{{{ÿRRRÿ¥¥¥ÿRRRÿ{{{ÿRRRÿRRRÿ¥¥¥ÿRRRÿ¥¥¥ÿ¥¥¥ÿ¥¥¥ÿ¥¥¥ÿ¥¥¥ÿ¥¥¥ÿ¥¥¥ÿ¥¥¥ÿ¥¥¥ÿ¥¥¥ÿ¥¥¥ÿ¥¥¥ÿ¥¥¥ÿ¥¥¥ÿ¥¥¥ÿ¥¥¥ÿ¥¥¥ÿ¥¥¥ÿ¥¥¥ÿ¥¥¥ÿ¥¥¥ÿ¥¥¥ÿ¥¥¥ÿRRRÿ{{{ÿRRRÿ¥¥¥ÿ¥¥¥ÿ¥¥¥ÿÿXXXÿ)))ÿ///ÿ>>>ÿÞÞÞÿ¥¥¥ÿ¥¥¥ÿ¥¥¥ÿRRRÿRRRÿ{{{ÿ¥¥¥ÿ{{{ÿ{{{ÿ{{{ÿ{{{ÿ¥¥¥ÿRRRÿ¥¥¥ÿ¥¥¥ÿ¥¥¥ÿ¥¥¥ÿ¥¥¥ÿ¥¥¥ÿ¥¥¥ÿ¥¥¥ÿ¥¥¥ÿ¥¥¥ÿ¥¥¥ÿ¥¥¥ÿ¥¥¥ÿ¥¥¥ÿ¥¥¥ÿ¥¥¥ÿ¥¥¥ÿ¥¥¥ÿ¥¥¥ÿ¥¥¥ÿ¥¥¥ÿ¥¥¥ÿ¥¥¥ÿ{{{ÿ{{{ÿRRRÿ¥¥¥ÿ¥¥¥ÿ¥¥¥ÿÿXXXÿ###ÿ...ÿ©©©ÿÞÞÞÿ¥¥¥ÿ¥¥¥ÿ¥¥¥ÿ¥¥¥ÿ¥¥¥ÿ¥¥¥ÿ¥¥¥ÿ¥¥¥ÿ¥¥¥ÿ¥¥¥ÿ¥¥¥ÿ¥¥¥ÿ¥¥¥ÿ¥¥¥ÿ¥¥¥ÿ¥¥¥ÿ¥¥¥ÿ¥¥¥ÿ¥¥¥ÿ¥¥¥ÿ¥¥¥ÿ¥¥¥ÿ¥¥¥ÿ¥¥¥ÿ¥¥¥ÿ¥¥¥ÿ¥¥¥ÿ¥¥¥ÿ¥¥¥ÿ¥¥¥ÿ¥¥¥ÿ¥¥¥ÿ¥¥¥ÿ¥¥¥ÿ¥¥¥ÿ¥¥¥ÿ¥¥¥ÿ¥¥¥ÿRRRÿ¥¥¥ÿ¥¥¥ÿ¥¥¥ÿÿNNNÿ###ÿ)))ÿ|||ÿÎÎÎÿ|||ÿ|||ÿ|||ÿ|||ÿ|||ÿ|||ÿ|||ÿ|||ÿ|||ÿ|||ÿ|||ÿ|||ÿ|||ÿ|||ÿ|||ÿ|||ÿ|||ÿ|||ÿ|||ÿ|||ÿ|||ÿ|||ÿ|||ÿ|||ÿ|||ÿ|||ÿ|||ÿ|||ÿ|||ÿ|||ÿ|||ÿ|||ÿ|||ÿ|||ÿ|||ÿ|||ÿ|||ÿ|||ÿ|||ÿ|||ÿ|||ÿ|||ÿÿ"""ÿÿ)))ÿŽŽŽÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿhhhÿ ÿ)))ÿ¢¢¢ÿŒŒŒÿƒƒƒÿÿÿcccÿsssÿZZZÿBBBÿ999ÿsssÿ999ÿ999ÿsssÿsssÿsssÿsssÿ‡‡‡ÿ“iiiiiiiiiiiiiÿ555ÿsssÿsssÿsssÿsssÿsssÿsssÿ999ÿVVVÿsssÿsssÿsssÿÿ,,,ÿ)))ÿ¤¤¤ÿ¢¢¢ÿ   ÿµµµÿÍÍÍÿ"""ÿ‹‹‹ÿ   ÿyyyÿ   ÿPPPÿ   ÿ   ÿPPPÿ   ÿ   ÿ   ÿ   ÿ¸¸¸ÿb*************ÿOOOÿ   ÿ   ÿ   ÿ   ÿPPPÿ   ÿŒŒŒÿŒŒŒÿ   ÿ   ÿ   ÿ...ÿ)))ÿ{{{ÿ¥¥¥ÿ¥¥¥ÿ¥¥¥ÿ»»»ÿÐÐÐÿ###ÿÿ¥¥¥ÿ¥¥¥ÿ)))ÿ¥¥¥ÿRRRÿ{{{ÿ{{{ÿ¥¥¥ÿ¥¥¥ÿ¥¥¥ÿ¥¥¥ÿ½½½ÿGÿRRRÿ¥¥¥ÿ¥¥¥ÿ¥¥¥ÿÒÒÒÿÒÒÒÿÒÒÒÿÿ¥¥¥ÿ¥¥¥ÿ¥¥¥ÿÿÿ{{{ÿRRRÿ¥¥¥ÿ¥¥¥ÿ¥¥¥ÿ»»»ÿÐÐÐÿ###ÿÿ¥¥¥ÿ{{{ÿRRRÿ¥¥¥ÿRRRÿ¥¥¥ÿRRRÿ¥¥¥ÿ¥¥¥ÿ¥¥¥ÿ¥¥¥ÿ½½½ÿ?ÿRRRÿ¥¥¥ÿ¥¥¥ÿ¥¥¥ÿ¥¥¥ÿ»»»ÿ¥¥¥ÿ¥¥¥ÿ¥¥¥ÿÿ?)))ÿ¥¥¥ÿ)))ÿ¥¥¥ÿ¥¥¥ÿ¥¥¥ÿ¥¥¥ÿ»»»ÿÐÐÐÿ###ÿÿ¥¥¥ÿ¥¥¥ÿ{{{ÿRRRÿ)))ÿ{{{ÿ¥¥¥ÿ¥¥¥ÿ¥¥¥ÿ¥¥¥ÿ¥¥¥ÿ½½½ÿ?ÿRRRÿ¥¥¥ÿ¥¥¥ÿ¥¥¥ÿ¥¥¥ÿ¥¥¥ÿ¥¥¥ÿÿ?)))ÿ{{{ÿ{{{ÿ{{{ÿ{{{ÿ{{{ÿ{{{ÿ¥¥¥ÿ»»»ÿÐÐÐÿ###ÿÿ¥¥¥ÿ{{{ÿ¥¥¥ÿ¥¥¥ÿ)))ÿ{{{ÿ¥¥¥ÿ¥¥¥ÿ¥¥¥ÿ¥¥¥ÿ¥¥¥ÿ½½½ÿ?ÿRRRÿ¥¥¥ÿ¥¥¥ÿ¥¥¥ÿ¥¥¥ÿÿ?)))ÿ)))ÿ{{{ÿ¥¥¥ÿ{{{ÿRRRÿ¥¥¥ÿ¥¥¥ÿ¥¥¥ÿ»»»ÿÐÐÐÿ###ÿÿ¥¥¥ÿ¥¥¥ÿ{{{ÿ{{{ÿ¥¥¥ÿ{{{ÿ{{{ÿ¥¥¥ÿ¥¥¥ÿ¥¥¥ÿ¥¥¥ÿ½½½ÿ?ÿRRRÿ¥¥¥ÿ¥¥¥ÿÿ?)))ÿ¥¥¥ÿ¥¥¥ÿ{{{ÿ)))ÿ{{{ÿ{{{ÿ¥¥¥ÿ¥¥¥ÿ¥¥¥ÿ»»»ÿÐÐÐÿ###ÿÿ¥¥¥ÿ¥¥¥ÿ¥¥¥ÿ{{{ÿRRRÿ{{{ÿ¥¥¥ÿ¥¥¥ÿ¥¥¥ÿ¥¥¥ÿ¥¥¥ÿ½½½ÿ?ÿRRRÿÿ?)))ÿ¥¥¥ÿ¥¥¥ÿ)))ÿ{{{ÿ)))ÿ{{{ÿRRRÿ¥¥¥ÿ¥¥¥ÿ¥¥¥ÿ»»»ÿÐÐÐÿ###ÿÿ¥¥¥ÿ{{{ÿRRRÿ{{{ÿ¥¥¥ÿ¥¥¥ÿ¥¥¥ÿ¥¥¥ÿ¥¥¥ÿ¥¥¥ÿ¥¥¥ÿ½½½ÿ?ÿ?ÿ¥¥¥ÿ¥¥¥ÿ¥¥¥ÿRRRÿ¥¥¥ÿ¥¥¥ÿ{{{ÿ¥¥¥ÿ¥¥¥ÿ¥¥¥ÿ¥¥¥ÿ»»»ÿÐÐÐÿ###ÿÿ¥¥¥ÿ¥¥¥ÿ¥¥¥ÿ¥¥¥ÿ¥¥¥ÿ¥¥¥ÿ¥¥¥ÿ¥¥¥ÿ¥¥¥ÿ¥¥¥ÿ¥¥¥ÿ½½½ÿ? ÿRRRÿ¥¥¥ÿ¥¥¥ÿ{{{ÿRRRÿ{{{ÿ{{{ÿRRRÿ)))ÿ¥¥¥ÿ¥¥¥ÿ¥¥¥ÿ»»»ÿÐÐÐÿ###ÿÿ¥¥¥ÿ¥¥¥ÿ¥¥¥ÿ¥¥¥ÿ¥¥¥ÿ¥¥¥ÿ¥¥¥ÿ¥¥¥ÿ¥¥¥ÿ¥¥¥ÿ¥¥¥ÿ½½½ÿ?...ÿ$$$ÿRRRÿ¥¥¥ÿ¥¥¥ÿ¥¥¥ÿ{{{ÿ)))ÿ)))ÿRRRÿ¥¥¥ÿ¥¥¥ÿ¥¥¥ÿ¥¥¥ÿ»»»ÿÐÐÐÿ###ÿÿ¥¥¥ÿ¥¥¥ÿ¥¥¥ÿ¥¥¥ÿ¥¥¥ÿ¥¥¥ÿ¥¥¥ÿ¥¥¥ÿ¥¥¥ÿ¥¥¥ÿ¥¥¥ÿ½½½ÿ?)))ÿÍÍÍÿ$$$ÿRRRÿ¥¥¥ÿ¥¥¥ÿ¥¥¥ÿ{{{ÿ{{{ÿ{{{ÿ{{{ÿ{{{ÿ¥¥¥ÿ¥¥¥ÿ¥¥¥ÿ»»»ÿÐÐÐÿ###ÿÿ¥¥¥ÿ¥¥¥ÿ¥¥¥ÿ¥¥¥ÿ¥¥¥ÿ¥¥¥ÿ¥¥¥ÿ¥¥¥ÿ¥¥¥ÿ¥¥¥ÿ¥¥¥ÿ½½½ÿ?)))ÿ½½½ÿÍÍÍÿ$$$ÿRRRÿ¥¥¥ÿ¥¥¥ÿ{{{ÿ{{{ÿ¥¥¥ÿRRRÿ{{{ÿ{{{ÿ¥¥¥ÿ¥¥¥ÿ¥¥¥ÿ»»»ÿÐÐÐÿ###ÿÿ¥¥¥ÿ¥¥¥ÿ¥¥¥ÿ¥¥¥ÿ¥¥¥ÿ¥¥¥ÿ¥¥¥ÿ¥¥¥ÿ¥¥¥ÿ¥¥¥ÿ¥¥¥ÿ½½½ÿ?)))ÿ¥¥¥ÿ½½½ÿÍÍÍÿ$$$ÿRRRÿ¥¥¥ÿ¥¥¥ÿ¥¥¥ÿRRRÿ{{{ÿ{{{ÿ¥¥¥ÿ¥¥¥ÿ¥¥¥ÿ¥¥¥ÿ¥¥¥ÿ»»»ÿÐÐÐÿ###ÿÿ¥¥¥ÿ¥¥¥ÿ¥¥¥ÿ¥¥¥ÿ¥¥¥ÿ¥¥¥ÿRRRÿÿ¥¥¥ÿ¥¥¥ÿ¥¥¥ÿ½½½ÿ?)))ÿ¥¥¥ÿ¥¥¥ÿ½½½ÿÍÍÍÿ$$$ÿRRRÿ¥¥¥ÿ¥¥¥ÿ{{{ÿ{{{ÿ¥¥¥ÿ¥¥¥ÿ¥¥¥ÿ¥¥¥ÿ¥¥¥ÿ¥¥¥ÿ¥¥¥ÿ»»»ÿÐÐÐÿ###ÿÿ¥¥¥ÿ¥¥¥ÿ¥¥¥ÿ¥¥¥ÿRRRÿ¥¥¥ÿ|||ÿ¥¥¥ÿ¥¥¥ÿ¥¥¥ÿ¥¥¥ÿ½½½ÿ?)))ÿ¥¥¥ÿ¥¥¥ÿ¥¥¥ÿ½½½ÿ»»»ÿ$$$ÿRRRÿ¥¥¥ÿ¥¥¥ÿ¥¥¥ÿ¥¥¥ÿ¥¥¥ÿ¥¥¥ÿ¥¥¥ÿ¥¥¥ÿ¥¥¥ÿ¥¥¥ÿ¥¥¥ÿ»»»ÿÐÐÐÿ###ÿÿ¥¥¥ÿ¥¥¥ÿ{{{ÿÒÒÒÿ¥¥¥ÿ|||ÿÿ¥¥¥ÿ¥¥¥ÿ¥¥¥ÿÿ? ÿ)))ÿ)))ÿ)))ÿ)))ÿ)))ÿ...ÿ ÿÿ)))ÿ)))ÿ)))ÿ)))ÿ)))ÿ)))ÿ)))ÿ)))ÿ)))ÿ)))ÿ)))ÿ...ÿ///ÿÿ$$$ÿ)))ÿ)))ÿ)))ÿ444ÿ444ÿ)))ÿ)))ÿ)))ÿÿ? 00ª$$²$º$(R€ü '€ü 'gorm-1.2.24/Palettes/0Menus/GormNSMenu.h0000644000000000000000000000212513410616261016335 0ustar rootroot/* GormNSMenu.h Copyright (C) 2002 Free Software Foundation, Inc. Author: Pierre-Yves Rivaille Date: 2002 This file is part of GNUstep. This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 3 of the License, or (at your option) any later version. This program 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 General Public License for more details. You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02111 USA. */ #ifndef INCLUDED_GormNSMenu_h #define INCLUDED_GormNSMenu_h #include @interface GormNSMenu : NSMenu + (GormNSMenu *) menuWithMenu: (NSMenu *)menu; - (BOOL) realAutoenablesItems; @end #endif gorm-1.2.24/Palettes/0Menus/.cvsignore0000644000000000000000000000006013410616261016166 0ustar rootroot*.app *.debug *.profile *.palette *obj .gdbinit gorm-1.2.24/Palettes/0Menus/GormMenuEditor.m0000644000000000000000000006370613412644602017266 0ustar rootroot/* GormMenuEditor.m * * Copyright (C) 2000 Free Software Foundation, Inc. * * Author: Richard Frith-Macdonald * Date: 2000 * * This file is part of GNUstep. * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 3 of the License, or * (at your option) any later version. * * This program 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 General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02111 USA. */ #include #include #include /* * This method will allow us to check if the menu is * open, so that it can be conditionally closed. */ @interface NSMenu (GormMenuEditorAdditions) - (BOOL) isVisible; @end @implementation NSMenu (GormMenuEditorAdditions) - (BOOL) isVisible { return [[self window] isVisible]; } @end @interface GormMenuEditor : NSMenuView { id document; NSMenu *edited; id original; NSMenuView *rep; NSMutableArray *selection; id subeditor; BOOL isLinkSource; BOOL isClosed; NSPasteboard *dragPb; NSString *dragType; } - (BOOL) acceptsTypeFromArray: (NSArray*)types; - (BOOL) activate; - (id) initWithObject: (id)anObject inDocument: (id)aDocument; - (void) close; - (void) closeSubeditors; - (void) copySelection; - (void) deactivate; - (void) deleteSelection; - (id) document; - (void) draggedImage: (NSImage*)i endedAt: (NSPoint)p deposited: (BOOL)f; - (NSDragOperation) draggingSourceOperationMaskForLocal: (BOOL)flag; - (id) editedObject; - (void) makeSelectionVisible: (BOOL)flag; - (id) openSubeditorForObject: (id)anObject; - (void) orderFront; - (void) pasteInSelection; - (void) resetObject: (id)anObject; - (void) selectObjects: (NSArray*)objects; - (void) validateEditing; - (BOOL) wantsSelection; - (NSWindow*) window; @end @interface GormMenuEditor (Private) - (NSEvent *) editTextField: view withEvent: (NSEvent *)theEvent; @end @implementation GormMenuEditor - (BOOL) acceptsFirstMouse: (NSEvent*)theEvent { return YES; } - (void) encodeWithCoder: (NSCoder*)aCoder { [NSException raise: NSInternalInconsistencyException format: @"Argh - encoding menu editor"]; } /* * Intercepting events in the view and handling them */ - (NSView*) hitTest: (NSPoint)loc { /* * We grab all events in the window. */ if ([super hitTest: loc] != nil) { return self; } return nil; } - (BOOL) resignFirstResponder { return NO; } - (void) rightMouseDown: (NSEvent*)theEvent { // Do nothing. We want to ignore when the right mouse button is pressed. } - (void) mouseDown: (NSEvent*)theEvent { NSPoint loc = [theEvent locationInWindow]; NSView *hit = [super hitTest: loc]; [[self window] makeMainWindow]; [[self window] makeFirstResponder: self]; if (hit == rep) { int pos = [rep indexOfItemAtPoint: loc]; if (pos >= 0) { NSMenuItem *item = (NSMenuItem *)[edited itemAtIndex: pos]; if ([theEvent clickCount] == 2) { id cell; NSTextField *tf; NSRect frame; [self makeSelectionVisible: NO]; [self selectObjects: [NSArray array]]; cell = [rep menuItemCellForItemAtIndex: pos]; tf = [[NSTextField alloc] initWithFrame: [self bounds]]; frame = (NSRect)[cell titleRectForBounds: [rep rectOfItemAtIndex: pos]]; NSDebugLog(@"cell %@ (%@)", cell, [cell stringValue]); frame.origin.y += 3; frame.size.height -= 5; frame.origin.x += 1; frame.size.width += 3; [tf setFrame: frame]; [tf setEditable: YES]; [tf setBezeled: NO]; [tf setBordered: NO]; [self addSubview: tf]; [tf setStringValue: [[cell menuItem] title]]; [self editTextField: tf withEvent: theEvent]; [[cell menuItem] setTitle: [tf stringValue]]; [tf removeFromSuperview]; RELEASE(tf); return; } [self makeSelectionVisible: NO]; if ([theEvent modifierFlags] & NSShiftKeyMask) { NSMutableArray *array; array = [NSMutableArray arrayWithArray: selection]; if ([array containsObject: item] == YES) { [array removeObject: item]; } else { [array addObject: item]; } [self selectObjects: array]; [self makeSelectionVisible: YES]; return; } [self selectObjects: [NSArray arrayWithObject: item]]; if ([theEvent modifierFlags] & NSControlKeyMask) { NSPoint dragPoint = [theEvent locationInWindow]; NSPasteboard *pb; NSString *name = [document nameForObject: item]; pb = [NSPasteboard pasteboardWithName: NSDragPboard]; [pb declareTypes: [NSArray arrayWithObject: GormLinkPboardType] owner: self]; [pb setString: name forType: GormLinkPboardType]; [NSApp displayConnectionBetween: item and: nil]; [NSApp startConnecting]; isLinkSource = YES; [self dragImage: [NSApp linkImage] at: dragPoint offset: NSZeroSize event: theEvent pasteboard: pb source: self slideBack: YES]; isLinkSource = NO; } else { NSDate *future = [NSDate distantFuture]; unsigned eventMask; NSEvent *e; NSEventType eType; BOOL acceptsMouseMoved; NSRect frame = [rep innerRect]; float maxMouse = NSMaxY(frame); float minMouse = NSMinY(frame); NSPoint lastPoint = loc; NSPoint point = loc; NSRect lastRect = [rep rectOfItemAtIndex: pos]; id cell = [rep menuItemCellForItemAtIndex: pos]; int newPos; eventMask = NSLeftMouseUpMask | NSLeftMouseDraggedMask | NSMouseMovedMask | NSPeriodicMask; [[self window] setAcceptsMouseMovedEvents: YES]; /* * Save window state info. */ acceptsMouseMoved = [[self window] acceptsMouseMovedEvents]; [rep lockFocus]; /* * Track mouse movements until left mouse up. * While we keep track of all mouse movements, * we only act on a movement when a periodic * event arives (every 20th of a second) * in order to avoid excessive amounts of drawing. */ [NSEvent startPeriodicEventsAfterDelay: 0.1 withPeriod: 0.05]; e = [NSApp nextEventMatchingMask: eventMask untilDate: future inMode: NSEventTrackingRunLoopMode dequeue: YES]; eType = [e type]; while (eType != NSLeftMouseUp) { if (eType != NSPeriodic) { point = [e locationInWindow]; } else if (NSEqualPoints(point, lastPoint) == NO) { /* * Limit mouse movement. */ point.x = NSMinX(frame); if (point.y < minMouse) point.y = minMouse; if (point.y > maxMouse) point.y = maxMouse; if (NSEqualPoints(point, lastPoint) == NO) { [[self window] disableFlushWindow]; /* * Redraw cells under area being changed. */ [rep drawRect: lastRect]; /* * Update location. */ lastRect.origin.y += point.y - lastPoint.y; lastPoint = point; /* * Draw highlighted item being moved. */ [cell highlight: YES withFrame: lastRect inView: rep]; [cell setHighlighted: NO]; /* * Flush any drawing performed for this event. */ [[self window] enableFlushWindow]; [[self window] flushWindow]; } } e = [NSApp nextEventMatchingMask: eventMask untilDate: future inMode: NSEventTrackingRunLoopMode dequeue: YES]; eType = [e type]; } [NSEvent stopPeriodicEvents]; [rep drawRect: lastRect]; [rep unlockFocus]; newPos = [rep indexOfItemAtPoint: point]; if (newPos < pos) { NSMenuItem *item = (NSMenuItem *)[edited itemAtIndex: pos]; RETAIN(item); if (newPos < 0) newPos = 0; [edited removeItemAtIndex: pos]; [edited insertItem: item atIndex: newPos]; RELEASE(item); } else if (newPos > pos) { NSMenuItem *item = (NSMenuItem *)[edited itemAtIndex: pos]; RETAIN(item); [edited removeItemAtIndex: pos]; [edited insertItem: item atIndex: newPos]; RELEASE(item); } [edited sizeToFit]; [edited display]; /* * Restore state to what it was on entry. */ [[self window] setAcceptsMouseMovedEvents: acceptsMouseMoved]; } [self makeSelectionVisible: YES]; } } else { /* * The mouse down wasn't over the menu items, so we just let the menu * handle it - but make sure the menu is selected in the editor first. */ [[document parentEditorForEditor: self] selectObjects: [NSArray arrayWithObject: edited]]; [hit mouseDown: theEvent]; } } - (BOOL) acceptsTypeFromArray: (NSArray*)types { /* * A menu editor can accept menu items pasted in to it. */ return [types containsObject: IBMenuPboardType]; } - (BOOL) activate { if (original == nil) { NSWindow *w; NSEnumerator *enumerator; NSView *sub; NSMenuItem *item; // // Swap ourselves in as a replacement for the original window // content view. // w = [rep window]; original = RETAIN([w contentView]); [self setFrame: [original frame]]; enumerator = [[original subviews] objectEnumerator]; while ((sub = [enumerator nextObject]) != nil) { [self addSubview: sub]; } [w setContentView: self]; // // Line up submenu with parent menu. // item = [document parentOfObject: edited]; if (item != nil && [item isKindOfClass: [NSMenuItem class]]) { NSMenu *parent = [document parentOfObject: item]; NSRect frame = [[[parent menuRepresentation] window] frame]; NSPoint tl; tl = frame.origin; tl.x += frame.size.width; tl.y += frame.size.height; // if it's the main menu, display it when activated, otherwise don't. if([[document nameForObject: edited] isEqual: @"NSMenu"]) { [edited sizeToFit]; [[[edited menuRepresentation] window] setFrameTopLeftPoint: tl]; } } return NO; } return YES; } - (void) close { isClosed = YES; [[NSNotificationCenter defaultCenter] removeObserver: self]; if ([(id)NSApp selectionOwner] == self) { [document resignSelectionForEditor: self]; } [self closeSubeditors]; [self deactivate]; // if it's visible, close it. if([edited isVisible]) { [edited close]; } [document editor: self didCloseForObject: edited]; } - (void) closeSubeditors { if (subeditor != nil) { [subeditor close]; DESTROY(subeditor); } } - (void) copySelection { if ([selection count] > 0) { [document copyObjects: selection type: IBMenuPboardType toPasteboard: [NSPasteboard generalPasteboard]]; } } - (void) deactivate { if (original != nil) { NSEnumerator *enumerator; NSView *sub; RETAIN(self); /* * Swap ourselves out and the original window content view in. */ [self makeSelectionVisible: NO]; [original setFrame: [self frame]]; [[rep window] setContentView: original]; enumerator = [[self subviews] objectEnumerator]; while ((sub = [enumerator nextObject]) != nil) { [original addSubview: sub]; } DESTROY(original); RELEASE(self); } } - (void) dealloc { if (isClosed == NO) { [self close]; } RELEASE(edited); RELEASE(selection); RELEASE(subeditor); [super dealloc]; } - (void) deleteSelection { if ([selection count] > 0) { NSArray *s = [NSArray arrayWithArray: selection]; NSEnumerator *e = [s objectEnumerator]; NSMenuItem *i; NSArray *d = nil; [self makeSelectionVisible: NO]; [self selectObjects: [NSArray array]]; // find all relavent objects. Remove them from the nameTable. d = findAllSubmenus( s ); [document detachObjects: d]; // remove the items from the menu... while ((i = [e nextObject]) != nil && [edited numberOfItems] > 0) { [edited removeItem: i]; } [edited sizeToFit]; [edited display]; } } /* * Dragging source protocol implementation */ - (void) draggedImage: (NSImage*)i endedAt: (NSPoint)p deposited: (BOOL)f { /* * FIXME - handle this. * Notification that a drag failed/succeeded. */ } - (NSDragOperation) draggingSourceOperationMaskForLocal: (BOOL)flag { if (isLinkSource == YES) return NSDragOperationLink; else return NSDragOperationCopy; } - (NSDragOperation) draggingEntered: (id)sender { NSArray *types; dragPb = [sender draggingPasteboard]; types = [dragPb types]; if ([types containsObject: IBMenuPboardType] == YES) { dragType = IBMenuPboardType; } else if ([types containsObject: GormLinkPboardType] == YES) { dragType = GormLinkPboardType; } else { dragType = nil; } return [self draggingUpdated: sender]; } - (NSDragOperation) draggingUpdated: (id)sender { if (dragType == IBMenuPboardType) { return NSDragOperationCopy; } else if (dragType == GormLinkPboardType) { NSPoint loc = [sender draggingLocation]; int pos = [rep indexOfItemAtPoint: loc]; id item = nil; if (pos >= 0) { item = [edited itemAtIndex: pos]; } if (item == [NSApp connectSource]) { item = nil; } [NSApp displayConnectionBetween: [NSApp connectSource] and: item]; return NSDragOperationLink; } else { return 0; } } - (void) draggingExited: (id)sender { if (dragType == GormLinkPboardType) { [NSApp displayConnectionBetween: [NSApp connectSource] and: nil]; } } - (void) drawSelection { } - (id) document { return document; } - (id) editedObject { return edited; } // find all subitems for the given items... void _attachAllSubmenus(id menu, NSArray *items, id document) { NSEnumerator *e = [items objectEnumerator]; NSString *name = [document nameForObject: menu]; id i = nil; // if it's the main menu, display it... otherwise.. if([name isEqual: @"NSMenu"]) { [menu display]; } while((i = [e nextObject]) != nil) { [document attachObject: i toParent: menu]; if([i hasSubmenu]) { id submenu = [i submenu]; NSArray *submenuItems = [submenu itemArray]; [submenu setSupermenu: menu]; [document attachObject: submenu toParent: i]; _attachAllSubmenus(submenu, submenuItems, document); } } } void _attachAll(NSMenu *menu, id document) { NSArray *items = [menu itemArray]; _attachAllSubmenus(menu, items, document); } - (id) initWithObject: (id)anObject inDocument: (id)aDocument { self = [super init]; if(self != nil) { document = aDocument; ASSIGN(edited, anObject); selection = [[NSMutableArray alloc] init]; rep = [edited menuRepresentation]; /* * Permit views and connections to be dragged in to the window. */ [self registerForDraggedTypes: [NSArray arrayWithObjects: IBMenuPboardType, GormLinkPboardType, nil]]; /* * Make sure that all our menu items are attached in the document. */ _attachAll(edited, document); } return self; } - (void) makeSelectionVisible: (BOOL)flag { if (flag == NO) { if ([selection count] > 0) { NSEnumerator *enumerator = [selection objectEnumerator]; NSMenuItem *item; [[self window] disableFlushWindow]; [rep lockFocus]; while ((item = [enumerator nextObject]) != nil) { int pos = [edited indexOfItem: item]; id cell = [rep menuItemCellForItemAtIndex: pos]; NSRect rect = [rep rectOfItemAtIndex: pos]; [cell highlight: NO withFrame: rect inView: rep]; } [rep unlockFocus]; [[self window] enableFlushWindow]; [[self window] flushWindowIfNeeded]; } } else { if ([selection count] > 0) { NSEnumerator *enumerator = [selection objectEnumerator]; NSMenuItem *item; [[self window] disableFlushWindow]; [rep lockFocus]; while ((item = [enumerator nextObject]) != nil) { int pos = [edited indexOfItem: item]; id cell = [rep menuItemCellForItemAtIndex: pos]; NSRect rect = [rep rectOfItemAtIndex: pos]; [cell highlight: YES withFrame: rect inView: rep]; } [rep unlockFocus]; [[self window] enableFlushWindow]; [[self window] flushWindowIfNeeded]; } } } - (id) openSubeditorForObject: (id)anObject { return nil; } - (void) orderFront { [[edited window] orderFront: self]; } - (void) pasteInSelection { NSPasteboard *pb = [NSPasteboard generalPasteboard]; NSArray *items; NSEnumerator *enumerator; NSMenuItem *item; /* * Ask the document to get the copied items from the pasteboard and add * them to it's collection of known objects. */ items = [document pasteType: IBMenuPboardType fromPasteboard: pb parent: edited]; enumerator = [items objectEnumerator]; while ((item = [enumerator nextObject]) != nil) { if ([edited _ownedByPopUp]) { [item setOnStateImage: nil]; [item setMixedStateImage: nil]; } [edited addItem: item]; } [edited sizeToFit]; [edited display]; } - (BOOL) performDragOperation: (id)sender { NSRect f = [rep frame]; if (dragType == IBMenuPboardType) { NSPoint loc = [sender draggedImageLocation]; NSArray *items; NSEnumerator *enumerator; NSMenuItem *item; int pos; /* * Adjust location so that it lies within horizontal bounds, and so that * it appears about half an item higher than it is. That way, we treat * a drop in the lower half of an item as an insertion below it, and a * drop in the upper half as an insertion above it. */ if (loc.x < NSMinX(f)) loc.x = NSMinX(f); if (loc.x > NSMaxX(f)) loc.x = NSMaxX(f); loc.y += 10; pos = [rep indexOfItemAtPoint: loc] + 1; [self makeSelectionVisible: NO]; /* * Ask the document to get the dragged views from the pasteboard and add * them to it's collection of known objects. */ items = [document pasteType: IBMenuPboardType fromPasteboard: dragPb parent: edited]; // Test to see if the first item is a menu, if so reject the drag. If the // first item is a menu item, accept it. if([items count] > 0) { id itemZero = [items objectAtIndex: 0]; if([itemZero isKindOfClass: [NSMenu class]]) { return NO; } } // enumerate through the items and add them. enumerator = [items objectEnumerator]; while ((item = [enumerator nextObject]) != nil) { if ([edited _ownedByPopUp]) { NSDebugLog(@"owned by popup"); [item setOnStateImage: nil]; [item setMixedStateImage: nil]; // if the item has a submenu, reject the drag. if([item hasSubmenu]) { return NO; } } else NSDebugLog(@"not owned by popup"); [edited insertItem: item atIndex: pos++]; } [edited sizeToFit]; [edited display]; [self selectObjects: items]; [self makeSelectionVisible: YES]; } else if (dragType == GormLinkPboardType) { NSPoint loc = [sender draggingLocation]; int pos = [rep indexOfItemAtPoint: loc]; NSDebugLog(@"Link at index: %d (%@)", pos, NSStringFromPoint(loc)); if (pos >= 0) { id item = [edited itemAtIndex: pos]; [NSApp displayConnectionBetween: [NSApp connectSource] and: item]; [NSApp startConnecting]; } } else { NSDebugLog(@"Drop with unrecognized type (%@)!", dragType); dragType = nil; return NO; } dragType = nil; return YES; } - (BOOL) prepareForDragOperation: (id)sender { /* * Tell the source that we will accept the drop if we can. */ if (dragType == IBMenuPboardType) { /* * We can accept menus dropped anywhere. */ return YES; } else if (dragType == GormLinkPboardType) { /* * We can accept a link dropped on any of our items. */ return YES; } return NO; } /* * Return the rectangle in which an objects link status will be displayed. */ - (NSRect) rectForObject: (id)anObject { int pos = [edited indexOfItem: anObject]; NSRect rect; if (pos >= 0) { rect = [rep rectOfItemAtIndex: pos]; rect = [rep convertRect: rect toView: nil]; } else { rect = [self frame]; } return rect; } - (void) resetObject: (id)anObject { [[self window] makeKeyAndOrderFront: self]; } - (void) selectObjects: (NSArray*)anArray { if ([anArray isEqual: selection] == NO) { NSUInteger count; NSMenuItem *item; [selection removeAllObjects]; NSDebugLog(@"selectObjects %@ %@", selection, anArray); [selection addObjectsFromArray: anArray]; count = [selection count]; /* * We can only select items in our menu - discard others. */ while (count-- > 0) { id o = [selection objectAtIndex: count]; if ([edited indexOfItem: o] == NSNotFound) { [selection removeObjectAtIndex: count]; } } item = [selection lastObject]; if ([selection count] != 1 || [item hasSubmenu] == NO) { [self closeSubeditors]; } else { NSMenu *menu; id editor; /* * A single item with a submenu is selected - * Make sure the submenu is registered in the document and * open an editor for it Close any existing subeditor. */ menu = [item submenu]; if ([document containsObject: menu] == NO) { [document attachObject: menu toParent: item]; } editor = [document editorForObject: menu create: YES]; if (subeditor != nil && subeditor != editor) { [self closeSubeditors]; } [menu display]; [[item submenu] display]; [editor orderFront]; [editor activate]; ASSIGN(subeditor, editor); } } /* * Now we must let the document (and hence the rest of the app) know * about our new selection. If there is nothing in it, make sure * that our edited window is selected instead. */ if ([selection count] > 0) { [document setSelectionFromEditor: self]; } /* else { id ed = nil; //GormObjectEditor *ed; ed = [GormObjectEditor editorForDocument: document]; [ed selectObjects: [NSArray arrayWithObject: edited]]; } */ } - (NSArray*) selection { return [NSArray arrayWithArray: selection]; } - (NSUInteger) selectionCount { return [selection count]; } - (void) validateEditing { } - (BOOL) wantsSelection { /* * We only want to be the selection owner if we are active (have been * swapped for the windows original content view) and if we have some * object selected. */ if (original == nil) return NO; if ([selection count] == 0) return NO; return YES; } - (NSWindow*) window { return [super window]; } @end static BOOL done_editing; @implementation GormMenuEditor (EditingAdditions) - (void) handleNotification: (NSNotification*)aNotification { NSString *name = [aNotification name]; if ([name isEqual: NSControlTextDidEndEditingNotification] == YES) { done_editing = YES; [document setSelectionFromEditor: self]; // Correction for Bug#11410 // [self selectObjects: [NSArray arrayWithObject: edited]]; } } /* Edit a textfield. If it's not already editable, make it so, then edit it */ - (NSEvent *) editTextField: view withEvent: (NSEvent *)theEvent { unsigned eventMask; BOOL wasEditable; BOOL didDrawBackground; NSTextField *editField; NSRect frame; NSNotificationCenter *nc = [NSNotificationCenter defaultCenter]; NSDate *future = [NSDate distantFuture]; NSEvent *e; editField = view; frame = [editField frame]; wasEditable = [editField isEditable]; [editField setEditable: YES]; didDrawBackground = [editField drawsBackground]; [editField setDrawsBackground: YES]; [nc addObserver: self selector: @selector(handleNotification:) name: NSControlTextDidEndEditingNotification object: nil]; /* Do some modal editing */ [editField selectText: self]; eventMask = NSLeftMouseDownMask | NSLeftMouseUpMask | NSKeyDownMask | NSKeyUpMask | NSFlagsChangedMask; done_editing = NO; while (!done_editing) { NSEventType eType; e = [NSApp nextEventMatchingMask: eventMask untilDate: future inMode: NSEventTrackingRunLoopMode dequeue: YES]; eType = [e type]; switch (eType) { case NSLeftMouseDown: { NSPoint dp = [self convertPoint: [e locationInWindow] fromView: nil]; if (NSMouseInRect(dp, frame, NO) == NO) { done_editing = YES; break; } } [[editField currentEditor] mouseDown: e]; break; case NSLeftMouseUp: [[editField currentEditor] mouseUp: e]; break; case NSLeftMouseDragged: [[editField currentEditor] mouseDragged: e]; break; case NSKeyDown: [[editField currentEditor] keyDown: e]; break; case NSKeyUp: [[editField currentEditor] keyUp: e]; break; case NSFlagsChanged: [[editField currentEditor] flagsChanged: e]; break; default: NSLog(@"Internal Error: Unhandled event during editing: %@", e); break; } } [editField setEditable: wasEditable]; [editField setDrawsBackground: didDrawBackground]; [nc removeObserver: self name: NSControlTextDidEndEditingNotification object: nil]; [[editField currentEditor] resignFirstResponder]; [self setNeedsDisplay: YES]; return e; } @end gorm-1.2.24/Palettes/4Data/0000755000000000000000000000000013426741712013767 5ustar rootrootgorm-1.2.24/Palettes/4Data/GormNumberFormatterAttributesInspector.h0000644000000000000000000000270113410616261024030 0ustar rootroot/* inspectors - Various inspectors for data elements Copyright (C) 2001 Free Software Foundation, Inc. Author: Laurent Julliard Date: Nov 2001 Author: Gregory Casamento Date: Nov 2003,2004,2005 This file is part of GNUstep. This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 3 of the License, or (at your option) any later version. This program 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 General Public License for more details. You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02111 USA. */ #ifndef INCLUDED_GormNumberFormatterAttributesInspector_h #define INCLUDED_GormNumberFormatterAttributesInspector_h #include @interface GormNumberFormatterAttributesInspector : IBInspector { id addThousandSeparatorSwitch; id commaPointSwitch; id formatForm; id formatTable; id localizeSwitch; id negativeField; id negativeRedSwitch; id positiveField; id detachButton; } @end #endif gorm-1.2.24/Palettes/4Data/GormTextViewSizeInspector.h0000644000000000000000000000241113410616261021255 0ustar rootroot/* inspectors - Various inspectors for data elements Copyright (C) 2001 Free Software Foundation, Inc. Author: Laurent Julliard Date: Nov 2001 Author: Gregory Casamento Date: Nov 2003,2004,2005 This file is part of GNUstep. This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 3 of the License, or (at your option) any later version. This program 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 General Public License for more details. You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02111 USA. */ #ifndef INCLUDED_GormTextViewSizeInspector_h #define INCLUDED_GormTextViewSizeInspector_h #include #include @interface GormTextViewSizeInspector : GormViewSizeInspector @end #endif gorm-1.2.24/Palettes/4Data/DataPalette.tiff0000644000000000000000000002253213410616261017026 0ustar rootrootII*$ªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªSSSÿSSSÿSSSÿSSSÿSSSÿSSSÿSSSÿSSSÿSSSÿSSSÿSSSÿSSSÿSSSÿSSSÿSSSÿSSSÿªªªSSSÿSSSÿSSSÿSSSÿSSSÿSSSÿSSSÿSSSÿSSSÿSSSÿSSSÿSSSÿSSSÿSSSÿSSSÿSSSÿSSSÿSSSÿSSSÿSSSÿSSSÿSSSÿSSSÿSSSÿSSSÿSSSÿSSSÿSSSÿSSSÿSSSÿªªªÿªªªÿªªªÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿªªªSSSÿSSSÿSSSÿSSSÿSSSÿSSSÿSSSÿSSSÿSSSÿSSSÿSSSÿSSSÿSSSÿSSSÿSSSÿSSSÿSSSÿSSSÿSSSÿSSSÿSSSÿSSSÿSSSÿSSSÿSSSÿSSSÿSSSÿSSSÿSSSÿÿÿÿÿªªªÿªªªÿªªªÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿªªªSSSÿSSSÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿªªªÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ¥¥¥ÿÿÿÿÿªªªÿªªªÿªªªÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿªªªSSSÿSSSÿªªªÿªªªÿªªªÿªªªÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ¥¥¥ÿÿÿÿÿªªªÿªªªÿªªªÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿªªªSSSÿSSSÿªªªÿÿÿÿÿÿÿÿÿªªªÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿªªªÿªªªÿªªªÿªªªÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ¥¥¥ÿÿÿÿÿªªªÿªªªÿªªªÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿªªªSSSÿSSSÿªªªÿÿÿÿÿªªªÿªªªÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿªªªÿªªªÿªªªÿÿÿÿÿÿÿÿÿªªªÿªªªÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ¥¥¥ÿÿÿÿÿªªªÿªªªÿªªªÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿªªªSSSÿSSSÿªªªÿªªªÿªªªÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿªªªÿªªªÿÿÿÿÿÿÿÿÿÿÿÿÿªªªÿÿÿÿÿÿÿÿÿªªªÿªªªÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ¥¥¥ÿÿÿÿÿªªªÿªªªÿªªªÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿªªªSSSÿSSSÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿªªªÿªªªÿÿÿÿÿªªªÿÿÿÿÿÿÿÿÿªªªÿªªªÿÿÿÿÿÿÿÿÿªªªÿªªªÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ¥¥¥ÿÿÿÿÿªªªÿªªªÿªªªÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿªªªSSSÿSSSÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿªªªÿªªªÿÿÿÿÿÿÿÿÿÿÿÿÿªªªÿÿÿÿÿÿÿÿÿÿÿÿÿªªªÿªªªÿÿÿÿÿÿÿÿÿÿÿÿÿªªªÿªªªÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ¥¥¥ÿÿÿÿÿªªªÿªªªÿªªªÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿªªªSSSÿSSSÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿªªªÿªªªÿÿÿÿÿÿÿÿÿÿÿÿÿªªªÿªªªÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿªªªÿªªªÿÿÿÿÿÿÿÿÿÿÿÿÿªªªÿªªªÿÿÿÿÿÿÿÿÿÿÿÿÿ¥¥¥ÿÿÿÿÿªªªÿªªªÿªªªÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿªªªSSSÿSSSÿÿÿÿÿÿÿÿÿÿÿÿÿªªªÿªªªÿÿÿÿÿÿÿÿÿªªªÿªªªÿªªªÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿªªªÿªªªÿªªªÿÿÿÿÿªªªÿªªªÿÿÿÿÿ¥¥¥ÿÿÿÿÿªªªÿªªªÿªªªÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿªªªSSSÿSSSÿÿÿÿÿªªªÿªªªÿªªªÿªªªÿªªªÿªªªÿÿÿÿÿªªªÿªªªÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿªªªÿÿÿÿÿªªªÿÿÿÿÿÿÿÿÿªªªÿÿÿÿÿÿÿÿÿÿÿÿÿªªªÿªªªÿªªªÿ¥¥¥ÿÿÿÿÿªªªÿªªªÿªªªÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿªªªSSSÿSSSÿªªªÿÿÿÿÿªªªÿÿÿÿÿÿÿÿÿÿÿÿÿªªªÿÿÿÿÿÿÿÿÿÿÿÿÿªªªÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿªªªÿªªªÿÿÿÿÿÿÿÿÿªªªÿÿÿÿÿ¥¥¥ÿÿÿÿÿªªªÿªªªÿªªªÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿªªªSSSÿSSSÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ¥¥¥ÿÿÿÿÿªªªÿªªªÿªªªÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿªªªSSSÿSSSÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ¥¥¥ÿÿÿÿÿªªªÿªªªÿªªªÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿªªªSSSÿSSSÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ¥¥¥ÿÿÿÿÿªªªÿªªªÿªªªÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿªªªSSSÿSSSÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ¥¥¥ÿÿÿÿÿªªªÿªªªÿªªªÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿªªªSSSÿSSSÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ¥¥¥ÿÿÿÿÿªªªÿªªªÿªªªÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿªªªSSSÿSSSÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ¥¥¥ÿÿÿÿÿªªªÿªªªÿªªªÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿªªªSSSÿ¥¥¥ÿ¥¥¥ÿ¥¥¥ÿ¥¥¥ÿ¥¥¥ÿ¥¥¥ÿ¥¥¥ÿ¥¥¥ÿ¥¥¥ÿ¥¥¥ÿ¥¥¥ÿ¥¥¥ÿ¥¥¥ÿ¥¥¥ÿ¥¥¥ÿ¥¥¥ÿ¥¥¥ÿ¥¥¥ÿ¥¥¥ÿ¥¥¥ÿ¥¥¥ÿ¥¥¥ÿ¥¥¥ÿ¥¥¥ÿ¥¥¥ÿ¥¥¥ÿ¥¥¥ÿ¥¥¥ÿÿÿÿÿªªªÿªªªÿªªªÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿªªªÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿªªªÿªªªÿªªªÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªÿªªªÿªªªÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿªªªSSSÿSSSÿSSSÿSSSÿSSSÿSSSÿSSSÿSSSÿSSSÿSSSÿSSSÿSSSÿSSSÿSSSÿSSSÿSSSÿSSSÿSSSÿSSSÿSSSÿSSSÿSSSÿSSSÿÿÿÿÿÿÿªªªªªªÿªªªÿªªªÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿªªªSSSÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿªªªÿªªªÿªªªÿªªªÿªªªÿÿªªªªªªÿªªªÿªªªÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿªªªSSSÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿªªªÿÿÿÿªªªÿÿªªªªªªÿªªªÿªªªÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿªªªSSSÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿªªªÿÿÿÿªªªÿÿªªªªªªÿªªªÿªªªÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿªªªSSSÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿªªªÿªªªÿÿªªªÿªªªÿÿªªªªªªÿªªªÿªªªÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿªªªSSSÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿªªªÿªªªÿªªªÿªªªÿªªªÿÿªªªªªªÿªªªÿªªªÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªÿÿÿÿÿÿªªªªªªÿªªªÿªªªÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿªªªªªªªªªªªª¼¼¼¼¼¼ªªªªªªªªª¼¼¼³³³ªªªªªªªªª³³³ÆÆÆ³³³ªªª³³³ÆÆÆ³³³ªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªÿªªªÿªªªÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿªªªªªªªªªÏÏÏõõõìììÙÙÙªªª¼¼¼õõõÆÆÆªªªªªªªªªÆÆÆÿÿÿÙÙÙªªªâââÿÿÿÆÆÆªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªÿªªªÿªªªÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿªªªªªªªªª¼¼¼¼¼¼âââÙÙÙªªªììììììÆÆÆªªªªªªªªªÆÆÆâââõõõªªªõõõâââÆÆÆ¼¼¼ììììììââ⪪ªÿÿÿõõõÆÆÆªªªªªªªªªÿªªªÿªªªÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿªªªªªªªªªªªª¼¼¼ìììÏÏϪªªªªªâââÆÆÆªªªªªªªªªÆÆÆââââââÏÏÏìììâââÆÆÆ¼¼¼³³³ÆÆÆÿÿÿªªªÿÿÿ³³³ªªªªªªªªªªªªÿªªªÿªªªÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿªªªªªªªªªÏÏϼ¼¼ªªªÿÿÿªªªªªªâââÆÆÆªªªªªªªªªÆÆÆâââÏÏÏìììÏÏÏâââÆÆÆÆÆÆìììÏÏÏÿÿÿªªªÿÿÿªªªªªªªªªªªªªªªÿªªªÿªªªÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿªªªªªªªªªÆÆÆõõõìììââ⪪ªªªªâââÆÆÆªªªªªªªªªÆÆÆâââ¼¼¼ÿÿÿ¼¼¼âââÆÆÆÙÙÙâââÏÏÏÿÿÿªªªÿÿÿªªªªªªªªªªªªªªªÿªªªÿªªªÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿªªªªªªªªªªªª¼¼¼ÆÆÆªªªªªªªªª¼¼¼³³³ªªªªªªªªª³³³¼¼¼ªªªÆÆÆªªª¼¼¼³³³ªªªÆÆÆ¼¼¼¼¼¼³³³ÆÆÆªªªªªªªªªªªªªªªÿªªªÿªªªÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªÿªªªÿªªªÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªª¼¼¼ÆÆÆªªªªªªªªªªªªªªªÆÆÆ¼¼¼ªªªªªªªªªªªªªªªªªªªªªªªªÿªªªÿªªªÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªª¼¼¼õõõìììÙÙÙªªªªªªªªªÙÙÙìììõõõ¼¼¼ªªªªªªªªªªªªªªªªªªªªªÿªªªÿªªªÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªâââÆÆÆªªªÿÿÿªªªªªªªªªÿÿÿªªªÆÆÆââ⪪ªªªªªªªªªªªªªªªªªªªÿªªªÿªªªÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªâââÆÆÆªªªÿÿÿªªªªªªªªªÿÿÿªªªÆÆÆââ⪪ªªªªªªªªªªªªªªªªªªªÿªªªÿªªªÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªâââÆÆÆªªªÿÿÿªªªªªªªªªÿÿÿªªªÆÆÆââ⪪ªªªªªªªªªªªªªªªªªªªSSSÿSSSÿSSSÿSSSÿSSSÿSSSÿSSSÿSSSÿSSSÿSSSÿSSSÿSSSÿSSSÿSSSÿSSSÿSSSÿªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªª¼¼¼õõõìììÙÙÙ¼¼¼ÏÏϪªªÙÙÙìììõõõ¼¼¼ªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªª¼¼¼ÆÆÆªªª³³³¼¼¼ªªªªªªÆÆÆ¼¼¼ªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªþ00æ$ Eî$4%@$J%R%(RC:\Development\gnustep\dev-apps\gorm\Palettes\4Data\DataPalette.tiffCreated with The GIMPHHgorm-1.2.24/Palettes/4Data/GormTextViewAttributesInspector.m0000644000000000000000000000752413410616261022510 0ustar rootroot/* GormTextViewAttributesInspector.m Copyright (C) 2001-2005 Free Software Foundation, Inc. Author: Laurent Julliard Date: Nov 2001 This file is part of GNUstep. This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 3 of the License, or (at your option) any later version. This program 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 General Public License for more details. You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02111 USA. */ /* July 2005 : Split inspector classes into separate files. Always use ok: revert: methods Clean up Author : Fabien Vallon */ #include "GormTextViewAttributesInspector.h" // #warning GNUstep bug ? #include #include #include #include #include #include @implementation GormTextViewAttributesInspector - (id) init { if ([super init] == nil) return nil; if ([NSBundle loadNibNamed: @"GormNSTextViewInspector" owner: self] == NO) { NSLog(@"Could not gorm GormTextViewInspector"); return nil; } return self; } - (void) setObject: (id)anObject { [super setObject: anObject]; [self revert:anObject]; } /* Commit changes that the user makes in the Attributes Inspector */ - (void) ok: (id) sender { BOOL isScrollView; id scrollView; scrollView = [[object superview] superview]; isScrollView = [ scrollView isKindOfClass: [NSScrollView class]]; if (sender == backgroundColorWell) { [object setBackgroundColor: [sender color]]; } else if (sender == textColorWell) { [object setTextColor: [sender color]]; } else if ( (sender == borderMatrix) && isScrollView) { [scrollView setBorderType: [[sender selectedCell] tag]]; [scrollView setNeedsDisplay: YES]; } /* options */ else if ( sender == selectableButton ) { [object setSelectable: [selectableButton state]]; } else if ( sender == editableButton ) { [object setEditable: [editableButton state]]; } else if ( sender == multipleFontsButton ) { [object setRichText:[multipleFontsButton state]]; } else if ( sender == graphicsButton ) { [object setImportsGraphics:[graphicsButton state]]; } else if ( sender == undoButton ) { [object setAllowsUndo:[undoButton state]]; } else if ( sender == findPanelButton ) { [object setUsesFindPanel:[findPanelButton state]]; } [super ok:sender]; } /* Sync from object ( NSTextView ) changes to the inspector */ -(void) revert:(id) sender { BOOL isScrollView; id scrollView; if ( object == nil) return; scrollView = [[object superview] superview]; isScrollView = [ scrollView isKindOfClass: [NSScrollView class]]; [backgroundColorWell setColorWithoutAction: [object backgroundColor]]; [textColorWell setColorWithoutAction: [object textColor]]; if (isScrollView) [borderMatrix selectCellWithTag: [scrollView borderType]]; /* options*/ [selectableButton setState:[object isSelectable]]; [editableButton setState:[object isEditable]]; [multipleFontsButton setState:[object isRichText]]; [graphicsButton setState:[object importsGraphics]]; [undoButton setState:[object allowsUndo]]; [findPanelButton setState:[object usesFindPanel]]; [super revert:sender]; } @end gorm-1.2.24/Palettes/4Data/GormImageViewAttributesInspector.h0000644000000000000000000000301713410616261022572 0ustar rootroot/* GormImageViewAttributesInspector.h Copyright (C) 2001-2005 Free Software Foundation, Inc. Author: Laurent Julliard Date: Nov 2001 This file is part of GNUstep. This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 3 of the License, or (at your option) any later version. This program 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 General Public License for more details. You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02111 USA. */ /* July 2005 : Spilt inspector in separate classes. Always use ok: revert: methods Clean up Author : Fabien Vallon */ #ifndef INCLUDED_GormImageViewAttributesInspector_h #define INCLUDED_GormImageViewAttributesInspector_h #include @class NSButton; @class NSMatrix; @class NSTextField; @interface GormImageViewAttributesInspector : IBInspector { NSTextField *iconField; NSMatrix *borderMatrix; NSMatrix *alignmentMatrix; NSMatrix *scalingMatrix; NSButton *editableSwitch; } @end #endif /* INCLUDED_GormImageViewAttributesInspector_h */ gorm-1.2.24/Palettes/4Data/inspectors.m0000644000000000000000000000355213410616261016334 0ustar rootroot/* inspectors - Various inspectors for data elements Copyright (C) 2001 Free Software Foundation, Inc. Author: Laurent Julliard Date: Nov 2001 Author: Gregory Casamento Date: Nov 2003,2004,2005 This file is part of GNUstep. This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 3 of the License, or (at your option) any later version. This program 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 General Public License for more details. You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02111 USA. */ #include #include #include @implementation NSTextView (IBObjectAdditions) - (NSString*) sizeInspectorClassName { return @"GormTextViewSizeInspector"; } - (NSString*) inspectorClassName { return @"GormTextViewAttributesInspector"; } - (NSString*) editorClassName { return @"GormTextViewEditor"; } @end @implementation NSDateFormatter (IBObjectAdditions) - (NSString*) inspectorClassName { return @"GormDateFormatterAttributesInspector"; } @end @implementation NSNumberFormatter (IBObjectAdditions) - (NSString*) inspectorClassName { return @"GormNumberFormatterAttributesInspector"; } @end /* IBObjectAdditions category */ @implementation NSImageView (IBObjectAdditions) - (NSString*) inspectorClassName { return @"GormImageViewAttributesInspector"; } @end gorm-1.2.24/Palettes/4Data/GormNSComboBoxAttributesInspector.m0000644000000000000000000001160413410616261022674 0ustar rootroot/* GormComboBoxAttributesInspector.m Copyright (C) 2001-2005 Free Software Foundation, Inc. Author: Laurent Julliard Date: Nov 2001 This file is part of GNUstep. This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 3 of the License, or (at your option) any later version. This program 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 General Public License for more details. You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02111 USA. */ /* July 2005 : Split inspector classes into separate files. Always use ok: revert: methods Clean up Author : Fabien Vallon */ #include "GormNSComboBoxAttributesInspector.h" #include #include #include #include #include #include #include #include /* IBObjectAdditions category */ @implementation NSComboBox (IBObjectAdditions) - (NSString*) inspectorClassName { return @"GormNSComboBoxAttributesInspector"; } @end @implementation GormNSComboBoxAttributesInspector - (id) init { if ([super init] == nil) return nil; if ([NSBundle loadNibNamed: @"GormNSComboBoxInspector" owner: self] == NO) { NSLog(@"Could not gorm GormNSComboBoxInspector"); return nil; } return self; } /* Commit changes that the user makes in the Attributes Inspector */ - (void) ok:(id) sender { if (sender == backgroundColorWell) { [object setBackgroundColor: [sender color]]; } else if (sender == textColorWell) { [object setTextColor: [sender color]]; } else if (sender == alignmentMatrix) { [object setAlignment: (NSTextAlignment)[[sender selectedCell] tag]]; } if (sender == editable) { BOOL flag = ([sender state] == NSOnState) ? YES :NO; [[object cell] setEditable: flag]; } if (sender == selectable) { BOOL flag = ([sender state] == NSOnState) ? YES :NO; [[object cell] setSelectable: flag]; } if (sender == usesDataSource) { BOOL flag = ([sender state] == NSOnState) ? YES :NO; [[object cell] setUsesDataSource: flag]; } else if (sender == visibleItemsForm) { [object setNumberOfVisibleItems: [[sender cellAtIndex: 0] intValue]]; } else if (sender == itemField ) { // #warning To be done } else if (sender == addButton) { if ( ! [[itemTxt stringValue] isEqualToString:@""] ) { [object addItemWithObjectValue:[itemTxt stringValue]]; [itemTableView reloadData]; } } else if (sender == removeButton) { int selected = [itemTableView selectedRow]; if ( selected != -1 ) { [itemTxt setStringValue:@""]; [object removeItemAtIndex:selected]; [itemTableView reloadData]; } } // some changes might affect other settings... [self revert: sender]; // call the superclass. [super ok: sender]; } /* Sync from object ( NSComboBox ) changes to the inspector */ -(void) revert:(id) sender { if ( object == nil ) return; [backgroundColorWell setColorWithoutAction: [object backgroundColor]]; [textColorWell setColorWithoutAction: [object textColor]]; [alignmentMatrix selectCellWithTag: [object alignment]]; // clear buttons. [editable setState: NSOffState]; [selectable setState: NSOffState]; [usesDataSource setState: NSOffState]; // set buttons. if ([[object cell] isEditable]) [editable setState: NSOnState]; if ([[object cell] isSelectable]) [selectable setState: NSOnState]; if ([[object cell] usesDataSource]) [usesDataSource setState: NSOnState]; [itemTableView reloadData]; [itemTxt setStringValue:@""]; [super revert:sender]; } /* TableView dataSource methods */ - (NSInteger)numberOfRowsInTableView:(NSTableView *)aTableView { if (aTableView == itemTableView ) return [[object objectValues] count]; return 0; } - (id)tableView:(NSTableView *)aTableView objectValueForTableColumn:(NSTableColumn *)aTableColumn row:(NSInteger)rowIndex { if (aTableView == itemTableView ) return [object itemObjectValueAtIndex:rowIndex]; return nil; } /* TableView delegate methods */ - (BOOL)tableView:(NSTableView *)aTableView shouldSelectRow:(NSInteger)rowIndex { if ( aTableView == itemTableView ) { [itemTxt setStringValue:[object itemObjectValueAtIndex:rowIndex]]; return YES; } return NO; } @end gorm-1.2.24/Palettes/4Data/GormNSNumberFormatterInspector.gorm/0000755000000000000000000000000013410616261023014 5ustar rootrootgorm-1.2.24/Palettes/4Data/GormNSNumberFormatterInspector.gorm/objects.gorm0000644000000000000000000002502313410616261025335 0ustar rootrootGNUstep archive00002bc0:00000029:00000103:00000002:01GSNibContainer1NSObject01NSMutableDictionary1 NSDictionary&01NSString&%NSOwner0±&% GormNumberFormatterInspector0±& %  TextField01 NSTextField1 NSControl1NSView1 NSResponder% @  AÀ B¦ A`  B¦ A`&01 NSMutableArray1 NSArray&%01 NSTextFieldCell1 NSActionCell1NSCell0 ±&% Positive0 1NSFont% A0&&&&&&&&0%’0 1NSColor0 ±&%NSCalibratedRGBColorSpace ?€ ?€ ?€ ?€ ?€0 ±° ?€’0±&% Button01NSButton% A¨ Bþ A€  Bþ A€&0± &%01 NSButtonCell0±&% Show Neg. in Red01NSImage01NSMutableString&% common_SwitchOff0±% A@°&&&&&&&&%2 ok:v12@0:4@80±&0±&0±0±&% common_SwitchOn&&&0±& %  NSVisible0± &0±& %  InspectorWin01GSWindowTemplate1GSClassSwapper0±&%NSWindow1NSWindow% ?€ A Cˆ CÂ&% Cö€ D*0±% ?€ A Cˆ C  Cˆ CÂ&0 ± &0!1NSBox% AP Aè Cu B€  Cu B€&"0"± &0#±% @à @à Cg B  Cg B&0$± &°0%±%  C A€  C A€&0&± &%0'±0(±&% 1000 separators°°°(&&&&&&&&%²0)±&0*±&°&&&0+±% C€ A¨ B’ A€  B’ A€&0,± &%0-±0.±&% Localize°°&&&&&&&&%²0/±&00±&°&&&01±% C€  Bˆ A€  Bˆ A€&02± &%03±04±&%  , <-> .°°&&&&&&&&%²05±&06±&°&&&07± 08±&% Options°&&&&&&&&0%’09±0:±&%NSNamedColorSpace0;±&% System0<±&% windowBackgroundColor0=±° ?€ @  @ %%0>1NSForm1NSMatrix% AÄ Bº Cl B¸  Cl B¸&20?± &%0@1 NSFormCell0A±&°&&&&&&&&%’ ¿€0B±0C±&% Field:°&&&&&&&&% Cl A€ @@°90D±° ?*Àƒ ?*Àƒ ?*Àƒ ?*Àƒ ?€0E±& %  NSFormCell%%0F± &0G±0H±&°&&&&&&&&%’ Bt0I±0J±& %  Positive:°&&&&&&&&0K±0L±&°&&&&&&&&%’ Bt0M±0N±&% Zero:°&&&&&&&&0O±0P±&°&&&&&&&&%’ Bt0Q±0R±& %  Negative:°&&&&&&&&0S±0T±&°&&&&&&&&%’ Bt0U±0V±&% Minimum:°&&&&&&&&0W±0X±&°&&&&&&&&%’ Bt0Y±0Z±&% Maximum:°&&&&&&&&²’’°G0[±% AP C> Cy B‚  Cy B‚&*0\± &0]±% @à @à Ck B  Ck B&0^± &°0_±% Bõ AÀ B¦ A`  B¦ A`&0`± &%0a± 0b±&% Negative° &&&&&&&&0%’0c±° ?€ ?€ ?€ ?€ ?€0d±° ?€’0e±% @  @@ BÒ A¨  BÒ A¨&0f± &%0g± 0h±&% Text°&&&&&&&&0%²0i±°:0j±&% System0k±&% controlBackgroundColor0l±° ?€’0m±% Bõ @@ BÒ A¨  BÒ A¨&0n± &%0o± 0p±&% Text°&&&&&&&&0%²°i0q±° ?€’0r± 0s±&% Appearance Samples°&&&&&&&&0%’°90t±° ?€ @  @ %%0u±% Bª @  Bä AÀ  Bä AÀ&%0v± &%0w±0x±&% Detach Formatter°&&&&&&&&%²0y±&0z±&&&&0{1 NSScrollView% A C C| Bö  C| Bö&0|± &0}1 NSClipView% A¨ AÀ Ce B  Ce BÂ&0~± &01 NSTableView%  Ce C!  Ce C!&0€± &%0±0‚±&0ƒ±%&&&&&&&&0„± &0…1 NSTableColumn0†±&% positive Bà A  GÃP0‡1 NSTableHeaderCell0ˆ±&% Positive0‰±% &&&&&&&&0%’0б°:0‹±&%System0Œ±&%controlShadowColor0±°:°‹0ޱ&%windowFrameTextColor0± 0±&%six°ƒ°&&&&&&&&0%’0‘±°:0’±&% System0“±&% textBackgroundColor0”±°:°’0•±& %  textColor0–±0—±&% negative Bê A  GÃP0˜± 0™±&% Negative°‰&&&&&&&&0%’°Š°0š± °°ƒ°&&&&&&&&0%’0›±°:0œ±&% System0±&% textBackgroundColor0ž±°:°œ0Ÿ±& %  textColor0 ±°:°’0¡±& %  gridColor°i0¢1!NSTableHeaderView%  Ce A°  Ce A°&0£± &0¤1"GSTableCornerView% @ @ A˜ A°  A˜ A°&0¥± &%% A€’ @ @@0¦±°:°’0§±&% controlBackgroundColor0¨1# NSScroller% @ AÀ A B  A BÂ&0©± &%0ª±°‚°ƒ&&&&&&&&&°{2 _doScroll:v12@0:4@80«±% A¨ @ Ce A°  Ce A°&0¬± &°¢0­±°:°’0®±& %  controlColor°¤°}% A A A A °¨°«°90¯±&% Window0°±&% Inspector Window°° @@ AÈ F@ F@%&   DÈ D–0±±&% Form°>0²±&% GSCustomClassMap0³±&0´±& %  ScrollView°{0µ±& %  TableColumn10¶±0·±&% column2 C,€ A  GÃP0¸± 0¹±&%  °‰&&&&&&&&0%’0º±°:°œ0»±&% controlShadowColor0¼±°:°’0½±&% windowFrameTextColor0¾± 0¿±&% five°ƒ°¿&&&&&&&&0%’°‘°”0À±&% Box°!0Á±& %  TextField1°_0±& %  TableColumn°…0ñ& %  TextField2°e0ı&% Button1°%0ű&% GormNSTableView°0Ʊ& %  TextField3°m0DZ&% Button2°+0ȱ&% Box1°[0ɱ&% Button3°10ʱ&% Button4°u0˱ &&&0Ì1$NSNibConnector°°0Í1%NSNibOutletConnector°°0α&% window0ϱ$°À°0б$°°0ѱ$°Ä°0Ò±$°Ç°0Ó±$°É°0Ô±$°±°0Õ±$°È°0Ö±$°°0×±$°Á°0ر$°Ã°0Ù±$°Æ°0Ú±%°°Ã0Û±& %  positiveField0ܱ%°°Æ0ݱ& %  negativeField0Þ±%°°±0ß±& %  formatForm0à±%°°0á±&% negativeRedSwitch0â±%°°Ä0ã±&% addThousandSeparatorSwitch0ä±%°°Ç0å±&% localizeSwitch0æ±%°°É0ç±&% commaPointSwitch0è1&NSNibControlConnector°Ã°0é±&% ok:0ê±&°Æ°°é0ë±&°±°°é0ì±&°°°é0í±&°Ä°°é0î±&°Ç°°é0ï±&°É°°é0ð±$°Ê°0ñ±%°°Ê0ò±& %  detachButton0ó±&°Ê°0ô±&% ok:0õ±$°´0ö±$°Å0÷±$°Â0ø±$°µ0ù±%°°Å0ú±& %  formatTable0û±%°Å°0ü±& %  dataSource0ý±%°Å°0þ±&% delegate0ÿ±%°°ÅP±&% initialFirstResponderP1' GSMutableSet1( NSMutableSet1)NSSet&°gorm-1.2.24/Palettes/4Data/GormNSNumberFormatterInspector.gorm/data.classes0000644000000000000000000000055213410616261025306 0ustar rootroot{ "## Comment" = "Do NOT change this file, Gorm maintains it"; GormNumberFormatterInspector = { Actions = ( ); Outlets = ( addThousandSeparatorSwitch, commaPointSwitch, formatForm, formatTable, localizeSwitch, negativeField, negativeRedSwitch, positiveField, detachButton ); Super = IBInspector; }; }gorm-1.2.24/Palettes/4Data/GormNSNumberFormatterInspector.gorm/data.info0000644000000000000000000000032213410616261024577 0ustar rootrootGNUstep archive00002bc0:00000003:00000003:00000000:01GormFilePrefsManager1NSObject%01NSString&% Latest Version0±& %  Typed Streamgorm-1.2.24/Palettes/4Data/GormNumberFormatterAttributesInspector.m0000644000000000000000000002073613410616261024045 0ustar rootroot/* inspectors - Various inspectors for data elements Copyright (C) 2001 Free Software Foundation, Inc. Author: Laurent Julliard Date: Nov 2001 Author: Gregory Casamento Date: Nov 2003,2004,2005 This file is part of GNUstep. This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 3 of the License, or (at your option) any later version. This program 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 General Public License for more details. You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02111 USA. */ #include #include #include #include #include #include #include "GormNumberFormatterAttributesInspector.h" /* this macro makes sure that the string contains a value, even if @"" */ #define VSTR(str) ({id _str = (id)str; (_str) ? (id)_str : (id)(@"");}) extern NSArray *predefinedNumberFormats; @implementation GormNumberFormatterAttributesInspector - (id) init { if ([super init] != nil) { if ([NSBundle loadNibNamed: @"GormNSNumberFormatterInspector" owner: self] == NO) { NSLog(@"Could not gorm GormNumberFormatterInspector"); return nil; } else { NSNumberFormatter *fmtr = [[NSNumberFormatter alloc] init]; [fmtr setFormat: [NSNumberFormatter defaultFormat]]; [[positiveField cell] setFormatter: fmtr]; [[negativeField cell] setFormatter: fmtr]; } } return self; } - (void) updateAppearanceFieldsWithFormat: (NSString *)format; { [[[positiveField cell] formatter] setFormat: format]; [[positiveField cell] setObjectValue: [NSDecimalNumber decimalNumberWithString: @"123456.789"]]; [[[negativeField cell] formatter] setFormat: format]; [[negativeField cell] setObjectValue: [NSDecimalNumber decimalNumberWithString: @"-123456.789"]]; } - (void) ok: (id)sender { NSString *positiveFmt, *negativeFmt, *zeroFmt, *fullFmt; NSString *minValue, *maxValue; NSCell *cell = [object cell]; NSNumberFormatter *fmtr = [cell formatter]; // Mark as changed... [[(id)NSApp activeDocument] touch]; if (sender == detachButton) { [cell setFormatter: nil]; [[(id)NSApp activeDocument] setSelectionFromEditor: nil]; } else { if (sender == formatTable) { int row; if ((row = [sender selectedRow]) != -1) { positiveFmt = [NSNumberFormatter positiveFormatAtIndex:row]; zeroFmt = [NSNumberFormatter zeroFormatAtIndex:row]; negativeFmt = [NSNumberFormatter negativeFormatAtIndex:row]; fullFmt = [NSNumberFormatter formatAtIndex:row]; // Update Appearance samples [self updateAppearanceFieldsWithFormat: fullFmt]; // Update editable format fields [[formatForm cellAtIndex:0] setStringValue: VSTR(positiveFmt)]; [[formatForm cellAtIndex:1] setStringValue: VSTR(zeroFmt)]; [[formatForm cellAtIndex:2] setStringValue: VSTR(negativeFmt)]; [fmtr setFormat:fullFmt]; } } else if (sender == formatForm) { NSUInteger idx; positiveFmt = [[sender cellAtIndex:0] stringValue]; zeroFmt = [[sender cellAtIndex:1] stringValue]; negativeFmt = [[sender cellAtIndex:2] stringValue]; minValue = [[sender cellAtIndex:3] stringValue]; maxValue = [[sender cellAtIndex:4] stringValue]; NSDebugLog(@"min,max: %@, %@", minValue, maxValue); fullFmt = [NSString stringWithFormat:@"%@;%@;%@", positiveFmt, zeroFmt, negativeFmt]; // If the 3 formats correspond to a predefined set then highlight it in // number Format table view above if ( (idx = [NSNumberFormatter indexOfFormat: fullFmt]) == NSNotFound) { [formatTable deselectAll:self]; } else { [formatTable selectRow:idx byExtendingSelection:NO]; NSDebugLog(@"format found at index: %d", (int)idx); } // Update Appearance samples [self updateAppearanceFieldsWithFormat: fullFmt]; [fmtr setFormat: fullFmt]; if (minValue != nil) { [fmtr setMinimum: [NSDecimalNumber decimalNumberWithString: minValue]]; } if (maxValue != nil) { [fmtr setMaximum: [NSDecimalNumber decimalNumberWithString: maxValue]]; } } else if (sender == localizeSwitch) { [fmtr setLocalizesFormat:([sender state] == NSOnState)]; } else if (sender == negativeRedSwitch) { NSMutableDictionary *newAttrs = [NSMutableDictionary dictionary]; [newAttrs setObject:[NSColor redColor] forKey:@"NSColor"]; [fmtr setTextAttributesForNegativeValues:newAttrs]; } else if (sender == addThousandSeparatorSwitch) { [fmtr setHasThousandSeparators:([sender state] == NSOnState)]; } else if (sender == commaPointSwitch) { [fmtr setDecimalSeparator: ([sender state] == NSOnState) ? @"," : @"."]; } } } - (void) revert: (id)sender { NSUInteger idx; NSNumberFormatter *fmtr = [[object cell] formatter]; // Format form NSDebugLog(@"format from object: %@", [fmtr format]); [[formatForm cellAtIndex:0] setStringValue: [fmtr positiveFormat]]; [[formatForm cellAtIndex:1] setStringValue: [fmtr zeroFormat]]; [[formatForm cellAtIndex:2] setStringValue: [fmtr negativeFormat]]; [[formatForm cellAtIndex:3] setObjectValue: [fmtr minimum]]; [[formatForm cellAtIndex:4] setObjectValue: [fmtr maximum]]; // If the string typed is a predefined one then highligh it in // Number Format table view above if ( (idx = [NSNumberFormatter indexOfFormat: [fmtr format]]) == NSNotFound) { [formatTable deselectAll:self]; } else { [formatTable selectRow:idx byExtendingSelection:NO]; } // Option switches [localizeSwitch setState: ([fmtr localizesFormat] == YES) ? NSOnState : NSOffState]; [addThousandSeparatorSwitch setState: ([fmtr hasThousandSeparators] == YES) ? NSOnState : NSOffState]; if ([[fmtr decimalSeparator] isEqualToString: @","] ) [commaPointSwitch setState: NSOnState]; else [commaPointSwitch setState: NSOffState]; if ( [[[fmtr textAttributesForNegativeValues] objectForKey: @"NSColor"] isEqual: [NSColor redColor] ] ) [negativeRedSwitch setState: NSOnState]; else [negativeRedSwitch setState: NSOffState]; } /* Positive/Negative Format table data source */ - (NSInteger)numberOfRowsInTableView:(NSTableView *)aTableView { return [NSNumberFormatter formatCount]; } - (id)tableView:(NSTableView *)aTableView objectValueForTableColumn:(NSTableColumn *)aTableColumn row:(NSInteger)rowIndex { if ( [[aTableColumn identifier] isEqualToString: @"positive"] ) { return [NSNumberFormatter positiveValueAtIndex:rowIndex]; } else if ( [[aTableColumn identifier] isEqualToString: @"negative"] ) { return [NSNumberFormatter negativeValueAtIndex:rowIndex]; } else { // Huuh?? Only 2 columns NSLog(@"Number table view doesn't known column identifier: %@", [aTableColumn identifier]); } return nil; } /* Positive/Negative Format table Delegate */ - (void)tableViewSelectionDidChange:(NSNotification *)aNotification { // When a row is selected update the rest of the inspector accordingly [self ok: formatTable]; } - (void)tableView:(NSTableView *)aTableView willDisplayCell:(id)aCell forTableColumn:(NSTableColumn*)aTableColumn row:(NSInteger)rowIndex { NSNumberFormatter *fmtr; // Adjust the cell formatter before it is displayed fmtr = [[NSNumberFormatter alloc] init]; [fmtr setFormat: [NSNumberFormatter formatAtIndex:rowIndex]]; [aCell setFormatter: fmtr]; } @end gorm-1.2.24/Palettes/4Data/GormTextViewEditor.m0000644000000000000000000001026513410616261017715 0ustar rootroot/* inspectors - Various inspectors for data elements Copyright (C) 2001 Free Software Foundation, Inc. Author: Laurent Julliard Date: Nov 2001 Author: Gregory Casamento Date: Nov 2003,2004,2005 This file is part of GNUstep. This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 3 of the License, or (at your option) any later version. This program 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 General Public License for more details. You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02111 USA. */ #include #include #include #include #include #include #include #include "GormTextViewEditor.h" @implementation GormTextViewEditor - (id) initWithObject: (id)anObject inDocument: (id)aDocument { if((self = [super initWithObject: anObject inDocument: aDocument]) != nil) { id sv = [anObject enclosingScrollView]; [self registerForDraggedTypes: [NSArray arrayWithObjects: IBViewPboardType, GormLinkPboardType, IBFormatterPboardType, nil]]; // subscribe to frame changes of the superview... [[NSNotificationCenter defaultCenter] addObserver: self selector: @selector(handleNotification:) name: NSViewFrameDidChangeNotification object: sv]; // make the view post frame changes... [[textView enclosingScrollView] setPostsFrameChangedNotifications: YES]; } return self; } - (void) dealloc { [[textView enclosingScrollView] setPostsFrameChangedNotifications: NO]; [[NSNotificationCenter defaultCenter] removeObserver: self]; [super dealloc]; } - (BOOL) activate { if ([super activate]) { if ([_editedObject isKindOfClass: [NSScrollView class]]) { textView = [(NSScrollView *)_editedObject documentView]; } else { textView = (NSTextView *)_editedObject; } return YES; } return NO; } - (void) deactivate { [super deactivate]; [[textView enclosingScrollView] setPostsFrameChangedNotifications: NO]; } - (NSDragOperation) draggingEntered: (id)sender { return [self draggingUpdated: sender]; } - (NSDragOperation) draggingUpdated: (id)sender { NSPasteboard *dragPb; NSArray *types; dragPb = [sender draggingPasteboard]; types = [dragPb types]; if ([types containsObject: GormLinkPboardType] == YES) { id destination = nil; NSView *hitView = [[textView enclosingScrollView] hitTest: [[[textView enclosingScrollView] superview] convertPoint: [sender draggingLocation] fromView: nil]]; if ((hitView == textView) || (hitView == [textView superview])) destination = textView; if (destination == nil) destination = _editedObject; [NSApp displayConnectionBetween: [NSApp connectSource] and: destination]; return NSDragOperationLink; } else { return NSDragOperationNone; } } - (BOOL) performDragOperation: (id)sender { return ([self draggingUpdated: sender] == NSDragOperationLink); } - (void) handleNotification: (id) notification { id view = [notification object]; NSRect frame = [view frame]; NSSize size; if([view hasVerticalScroller]) { NSSize s = [[view verticalScroller] frame].size; frame.size.width -= (s.width + 5); } if([view hasHorizontalScroller]) { NSSize s = [[view horizontalScroller] frame].size; frame.size.height -= (s.height + 5); } size = frame.size; [textView setMinSize: size]; [textView setFrame: frame]; } @end gorm-1.2.24/Palettes/4Data/palette.table0000644000000000000000000000016713410616261016433 0ustar rootroot{ NOTE = "Automatically generated, do not edit!"; NibFile = ""; Class = "DataPalette"; Icon = "DataPalette"; } gorm-1.2.24/Palettes/4Data/GNUmakefile.preamble0000644000000000000000000000130413410616261017616 0ustar rootroot# Additional include directories the compiler should search ADDITIONAL_INCLUDE_DIRS += -I../.. ifeq ($(GNUSTEP_TARGET_OS),mingw32) ADDITIONAL_LIB_DIRS += \ -L../../GormLib/$(GNUSTEP_OBJ_DIR) \ -L../../GormObjCHeaderParser/$(GNUSTEP_OBJ_DIR) \ -L../../GormPrefs/$(GNUSTEP_OBJ_DIR) \ -L../../GormCore/$(GNUSTEP_OBJ_DIR) ADDITIONAL_GUI_LIBS += -lGorm -lGormCore endif ifeq ($(GNUSTEP_TARGET_OS),cygwin) ADDITIONAL_LIB_DIRS += \ -L../../GormLib/$(GNUSTEP_OBJ_DIR) \ -L../../GormObjCHeaderParser/$(GNUSTEP_OBJ_DIR) \ -L../../GormPrefs/$(GNUSTEP_OBJ_DIR) \ -L../../GormCore/$(GNUSTEP_OBJ_DIR) 4Data_LIBRARIES_DEPEND_UPON += -lGorm -lGormCore endifgorm-1.2.24/Palettes/4Data/GormNSComboBoxInspector.gorm/0000755000000000000000000000000013410616261021410 5ustar rootrootgorm-1.2.24/Palettes/4Data/GormNSComboBoxInspector.gorm/objects.gorm0000644000000000000000000003727413410616261023744 0ustar rootrootGNUstep archive000f4240:00000027:0000015d:00000002:01GSNibContainer1NSObject01 NSMutableSet1NSSet&01GSWindowTemplate1GSClassSwapper01NSString&% NSWindow1NSWindow1 NSResponder% ?ð ?ð @q @x@JI @u@ @‡P01 NSView% ?ð ?ð @q @x@  @q @x@J01 NSMutableArray1 NSArray&01 NSBox% @K @s0 @d  @T@  @d  @T@J 0± &0 ± % @ @ @bà @L  @bà @LJ0 ± &0 1 NSColorWell1 NSControl% @, @2 @J€ @>  @J€ @>J0 ± &%0 1NSCell0±&01NSFont% A@&&&&&&JJ&&&&&&01NSColor0±&% NSCalibratedWhiteColorSpace ?€2 ok:v24@0:8@160±% @VÀ @2 @J€ @>  @J€ @>J0± &%0±0±&°&&&&&&JJ&&&&&&0±° ?€²01 NSTextField%  @TÀ @,  @TÀ @,J0± &%01NSTextFieldCell1 NSActionCell0±& % Background°&&&&&&JJ &&&&&&I’0±0±&% NSCalibratedRGBColorSpace ?€ ?€ ?€ ?€ ?€0±° ?€’0±% @RÀ  @TÀ @,  @TÀ @,J0± &%0 ±0!±&%Text°&&&&&&JJ &&&&&&I’0"±° ?€ ?€ ?€ ?€ ?€0#±° ?€’0$±0%±&%Colors°&&&&&&JJ &&&&&&I’0&±0'±&% NSNamedColorSpace0(±&% System0)±&% windowBackgroundColor0*±° ?€ @ @%%0+± % @K @o  @d  @J€  @d  @J€J 0,± &0-± % @ @ @bà @<  @bà @<J0.± &0/1NSMatrix% @$ @ @` @9  @` @9J00± &%01±02±&°&&&&&&JJ&&&&&&I’% @9 @9 ?ð ?ð03±° ?*Àƒ ?*Àƒ ?*Àƒ ?*Àƒ ?€°304±& % NSButtonCell051 NSButtonCell06±&%Button°&&&&&&JJ&&&&&&I’07±&08±&&&& &&%%09± &0:±0;±&0<1NSImage0=±& % leftalign_nib°&&&&&&JJ&&&&&&I’0>±&°8&&& &&0?±0@±&0A±0B±&%centeralign_nib°&&&&&&JJ&&&&&&I’0C±&°8&&& &&0D±0E±&0F±0G±&%rightalign_nib°&&&&&&JJ&&&&&&I’0H±&°8&&& &&0I±0J±&0K±0L±&%justifyalign_nib°&&&&&&JJ&&&&&&I’0M±&°8&&& &&0N±0O±&0P±0Q±&%naturalalign_nib°&&&&&&JJ&&&&&&I’0R±&°8&&& &&²’’°:0S±0T±& % Alignment°&&&&&&JJ &&&&&&I’°&0U±° ?€ @ @%%0V± % @8 @b  @l @Z@  @l @Z@J0W± &0X± % @ @ @j` @T  @j` @TJ0Y± &0Z±% @0  @b @2  @b @2J0[± &%0\±0]±&%Number of Visible items°&&&&&&JJ &&&&&&I’0^±°'0_±&%System0`±&%textBackgroundColor0a±°'°_0b±& % textColor’0c±% @d`  @7 @3  @7 @3J0d± &%0e±0f±&°&&&&&&JJ &&&&&&I’°^°a’0g1NSButton% @0 @O€ @d` @0  @d` @0J0h± &%0i±0j±&%Editable0k±0l1NSMutableString&%GSSwitch0m±%&&&&&&JJ&&&&&&I’0n±&0o±&0p±0q±&%GSSwitchSelected&&& &&0r±% @0 @E€ @d` @0  @d` @0J0s± &%0t±0u±& % Selectable°k°m&&&&&&JJ&&&&&&I’0v±&0w±&°p&&& &&0x±% @0 @8 @d` @0  @d` @0J0y± &%0z±0{±&%Uses Data Source°k°m&&&&&&JJ&&&&&&I’0|±&0}±&°p&&& &&0~±0±&%Options°&&&&&&JJ &&&&&&I’°&0€±° ?€ @ @%%0± % @$ @ @o€ @a`  @o€ @a`J20‚± &0ƒ± % @ @ @mÀ @\€  @mÀ @\€J0„± &0…1 NSScrollView% @? @mÀ @T€  @mÀ @T€J0†± &0‡1 NSClipView% @2 @8 @k@ @L  @k@ @LJ0ˆ1 NSTableView%  @k@ @^@  @k@ @^@J°‡0‰± &%0б0‹±&°&&&&&&JJ&&&&&&0Œ± &01 NSTableColumn0ޱ&%column1 CZ A  GÃP01NSTableHeaderCell0±&%Text°&&&&&&JJ &&&&&&I’0‘±°'°(0’±&% controlShadowColor0“±° ?€0”±0•±&%quatre°°•&&&&&&JJ &&&&&&I’°^°a0–±°'°(0—±& %  gridColor0˜±°'°(0™±&% controlBackgroundColor0š1 NSTableHeaderView%  @k@ @6  @k@ @6J0›±% @2 @ @k@ @6  @k@ @6J°š0œ± &°š0±°'°(0ž±& %  controlColor0Ÿ± &0 1!GSTableCornerView% @ @ @1 @6  @1 @6J0¡± &%% A@’ @ @0¢± &0£± &°ˆ°˜0¤1" NSScroller% @ @8 @0 @L  @0 @LJ0¥± &%0¦±°‹°&&&&&&JJ&&&&&&J°…2 _doScroll:v24@0:8@16°›° °‡I A A A A °¤°›0§±% @$ @ @X€ @6  @X€ @6J0¨± &%0©±0ª±&°&&&&&&JJ &&&&&&I’°^°a’0«±% @] @ @L @8  @L @8J0¬± &%0­±0®±&%Add°&&&&&&JJ&&&&&&I²0¯±&0°±&&&& &&0±±% @f @ @N€ @8  @N€ @8J0²± &%0³±0´±&%Remove°&&&&&&JJ&&&&&&I²0µ±&0¶±&&&& &&0·±0¸±&%Items°&&&&&&JJ &&&&&&I’°&0¹±° ?€ @ @%%°&0º±&%Window0»±&%ComboBox Attributes Inspector°» @ @9 @È @ÈI&   @ž @à0¼± &0½± &0¾1#NSMutableDictionary1$ NSDictionary&0¿±&%GormNSTableView1°ˆ0À±&%Box2°V0Á±& % TextField6°§0±&%Button1°±0ñ& % Inspector°0ı& % TableColumn2°0ű& % TextField1°0Ʊ&%Button3°r0DZ& % ColorWell2°0ȱ&% NSOwner0ɱ&!%!GormNSComboBoxAttributesInspector0ʱ& % TextField30˱% @$ @_À @L @5  @L @5J0̱ &%0ͱ0α&%Text°&&&&&&JJ &&&&&&I’0ϱ° ?€ ?€ ?€ ?€ ?€0б° ?€’0ѱ&%Box1°+0Ò±& % TextField0Ó±% @S€ @`€ @TÀ @,  @TÀ @,J0Ô± &%0Õ±0Ö±&%Title°&&&&&&JJ &&&&&&I’0×±° ?€ ?€ ?€ ?€ ?€0ر° ?€’0Ù±& % TextField5°c0Ú±&%Matrix°/0Û±&%GormNSTableView0ܱ%  @Yà @d   @Yà @d J0ݱ &%0Þ±0ß±&°&&&&&&JJ&&&&&&0à± &0á±0â±&%column1 BÏ A  GÃP0ã±0ä±&°&&&&&&JJ &&&&&&I’°‘0å±°'0æ±&%System0ç±&%windowFrameTextColor0è±0é±&%quatre°°é&&&&&&JJ &&&&&&I’°^°a°–°˜0ê± %  @Yà @6  @Yà @6J0ë± &0ì±!% @ @ @1 @6  @1 @6J0í± &%% A€’ @ @0î± &0ï±& % TableColumn10ð±0ñ±&%column2 BL A  GÃP0ò±0ó±&% °&&&&&&JJ &&&&&&I’°°å0ô±0õ±&%three°°õ&&&&&&JJ &&&&&&I’°^°a0ö±&%Box3°0÷±&%Button2°g0ø±& % TableColumn30ù±0ú±&%column2 C A  GÃP0û±0ü±&°&&&&&&JJ &&&&&&I’°°å0ý±0þ±&%four°°þ&&&&&&JJ &&&&&&I’°^°a0ÿ±& % TableColumn°áP±& % ColorWell1° P±&%Button°«P±& % TextField2°P±&%Button4°xP±& % ScrollView°…P±&%Box°P±& % TextField4°ZP± &==P1%NSNibConnectorаÃP ±%аÃP ±%°Ç°ÃP ±%°Ò°ÃP ±%°Å°ÃP ±%аÃP±%°Ñ°ÃP±%°Ú°ÃP±%°À°ÃP±%°ö°ÃP±%°Ê°ÃP±%°ÛP±%°ÿP±%°ïP±%ÐP±%°¿P±%°ÄP±%°øP±%ÐP±%°ÁP±%ÐP±%°ÂP±%°ÙP1&NSNibOutletConnectorаÇP ±& % nextKeyViewP!±&°Ç°ÚÐ P"±&°Ù°ÁÐ P#±&°ÁÐÐ P$±&аÂÐ P%±&°ÃÐP&±&%initialFirstResponderP'±&P(±&% NSOwnerÐP)±& % addButtonP*±&Ð(°ÚP+±&%alignmentMatrixP,±&Ð(ÐP-±&%backgroundColorWellP.±&Ð(°¿P/±& % itemTableViewP0±&Ð(°ÁP1±&%itemTxtP2±&Ð(°ÙP3±& % itemFieldP4±&Ð(°ÂP5±& % removeButtonP6±&Ð(°ÇP7±& % textColorWellP8±&Ð(°ÙP9±&%visibleItemsFormP:±&Ð(°ÃP;±&%windowP<1'NSNibControlConnectorÐÐ(P=±&%ok:P>±'°ÇÐ(Ð=P?±'°ÚÐ(Ð=P@±&°ÙÐ(PA±&%delegatePB±&°¿Ð(PC±& % dataSourcePD±&°¿Ð(PE±&%delegatePF±'ÐÐ(Ð=PG±'°ÂÐ(Ð=PH±&°ÁÐ(ÐAPI±%°÷PJ±%°ÆPK±%ÐPL±&°Ú°÷PM±& % nextKeyViewPN±&°÷°ÆÐMPO±&°ÆÐÐMPP±&аÙÐMPQ±'°÷Ð(PR±&%ok:PS±'°ÆÐ(ÐRPT±'ÐÐ(ÐRPU±&Ð(°÷PV±&%editablePW±&Ð(°ÆPX±& % selectablePY±&Ð(ÐPZ±&%usesDataSourceP[±#&gorm-1.2.24/Palettes/4Data/GormNSComboBoxInspector.gorm/data.classes0000644000000000000000000000066613410616261023710 0ustar rootroot{ "## Comment" = "Do NOT change this file, Gorm maintains it"; GormNSComboBoxAttributesInspector = { Actions = ( ); Outlets = ( alignmentMatrix, backgroundColorWell, itemBrowser, itemField, optionMatrix, textColorWell, visibleItemsForm, itemTxt, addButton, removeButton, itemTableView, editable, selectable, usesDataSource ); Super = IBInspector; }; }gorm-1.2.24/Palettes/4Data/GormNSComboBoxInspector.gorm/data.info0000644000000000000000000000027013410616261023175 0ustar rootrootGNUstep archive000f4240:00000003:00000003:00000000:01GormFilePrefsManager1NSObject%01NSString&%Latest Version0±& % Typed Streamgorm-1.2.24/Palettes/4Data/GormNSDateFormatterInspector.gorm/0000755000000000000000000000000013410616261022441 5ustar rootrootgorm-1.2.24/Palettes/4Data/GormNSDateFormatterInspector.gorm/objects.gorm0000644000000000000000000001442613410616261024767 0ustar rootrootGNUstep archive00002af9:00000026:000000a8:00000002:01GSNibContainer1NSObject01NSMutableDictionary1 NSDictionary& 01NSString& % Inspector01GSWindowTemplate1GSClassSwapper0±&%NSWindow1NSWindow1 NSResponder% ?€ A Cˆ CÂ&% C”€ DC@01 NSView% ?€ A Cˆ C  Cˆ CÂ&01 NSMutableArray1 NSArray&01 NSBox% A BÊ C| BX  C| BX&20 ± &0 ± % @à @à Cn Aà  Cn Aà&0 ± &0 1 NSTextField1 NSControl% A @À Cb A°  Cb A°&0 ± &%01NSTextFieldCell1 NSActionCell1NSCell0±&%Text01NSFont% A@&&&&&&&&0%2 ok:v12@0:4@801NSColor0±&%NSCalibratedRGBColorSpace ?€ ?€ ?€ ?€ ?€0±° ?€’0±0±& % Custom Format°&&&&&&&&0%’0±0±&%NSNamedColorSpace0±&% System0±&%windowBackgroundColor0±° ?€ @  @ %%0± % A B, C| Bh  C| Bh&"0± &0± % @à @à Cn B  Cn B&0± &01NSButton% A€ A  C2 A€  C2 A€&0 ± &%0!1 NSButtonCell0"±&%Allows natural language0#1NSImage0$1NSMutableString&% common_SwitchOff°&&&&&&&&%²0%±&0&±&0'±0(±&% common_SwitchOn&&&0)±0*±&%Options°&&&&&&&&0%’°0+±° ?€ @  @ %%0,±% Bš A  Bä AÈ  Bä AÈ&"0-± &%0.±0/±&%Detach Formatter°&&&&&&&&%²00±&01±&&&&021 NSScrollView% A C  C| CZ  C| CZ&03± &041 NSClipView% A¨ AÀ Ce C@  Ce C@&05± &061 NSTableView%  Ce C!  Ce C!&07± &%08±09±&0:±%&&&&&&&&0;± &0<1 NSTableColumn0=±&%format Bä A  GÃP0>1NSTableHeaderCell0?±&%Format0@±% &&&&&&&&0%’0A±°0B±&%System0C±&%controlShadowColor0D±°0E±&%System0F±&%windowFrameTextColor0G±0H±&%nine°:°H&&&&&&&&0%’0I±°°E0J±&%textBackgroundColor0K±°°E0L±& % textColor0M±0N±&%date Bæ A  GÃP0O±0P±&%Date°@&&&&&&&&0%’°A0Q±°0R±&%System0S±&%windowFrameTextColor0T±°H°:°H&&&&&&&&0%’0U±°°R0V±&%textBackgroundColor0W±°°R0X±& % textColor0Y±°°E0Z±& % gridColor0[±°0\±&%System0]±&%controlBackgroundColor0^1NSTableHeaderView%  Ce A°  Ce A°&0_± &0`1GSTableCornerView% @ @ A˜ A°  A˜ A°&0a± &%% A€’ @ @@0b±°°E0c±&%controlBackgroundColor0d1 NSScroller% @ AÀ A C@  A C@&0e± &%0f±°9°:&&&&&&&&&°22 _doScroll:v12@0:4@80g±% A¨ @ Ce A°  Ce A°&0h± &°^0i±°°E0j±& % controlColor°`°4% A A A A °d°g°0k±&%Window0l±&!%!DateFormater Attributes Inspector°l @@ AÈ F@ F@%&   D  D€0m±&%NSOwner0n±&%GormDateFormatterInspector0o±&% Box1°0p±& % ScrollView°20q±& % TextField° 0r±&%GSCustomClassMap0s±&0t±&%Button°0u±& % NSVisible0v± &0w±& % TableColumn°<0x±&%Box°0y±&%GormNSTableView°60z±& %  TableColumn10{±0|±&%column2 C1 A  GÃP0}±0~±&% °@&&&&&&&&0%’0±°°R0€±&%controlShadowColor°D0±0‚±&%nine°:°‚&&&&&&&&0%’°I°K0ƒ±&% Button1°,0„± &0…1!NSNibConnector°0†±&%NSOwner0‡±!°x°0ˆ±!°q°0‰±!°o°0б!°t°0‹±!°ƒ°0Œ1"NSNibOutletConnector°†°0±&%window0ޱ"°†°q0±& % formatField0±"°†°t0‘±&%languageSwitch0’±"°†°ƒ0“±& % detachButton0”1#NSNibControlConnector°q°†0•±&%ok:0–±#°t°†°•0—±#°ƒ°†°•0˜±!°p0™±!°y0š±!°w0›±!°z0œ±"°†°y0±& %  formatTable0ž±"°y°†0Ÿ±& %  dataSource0 ±"°y°†0¡±&% delegate0¢±"°q°t0£±& %  nextKeyView0¤±"°t°ƒ°£0¥±"°ƒ°q°£0¦±"°°y0§±&% initialFirstResponder0¨1$ GSMutableSet1% NSMutableSet1&NSSet&°gorm-1.2.24/Palettes/4Data/GormNSDateFormatterInspector.gorm/data.classes0000644000000000000000000000036113410616261024731 0ustar rootroot{ "## Comment" = "Do NOT change this file, Gorm maintains it"; GormDateFormatterInspector = { Actions = ( ); Outlets = ( formatTable, formatField, languageSwitch, detachButton ); Super = IBInspector; }; }gorm-1.2.24/Palettes/4Data/GormNSDateFormatterInspector.gorm/data.info0000644000000000000000000000027013410616261024226 0ustar rootrootGNUstep archive00002af9:00000003:00000003:00000000:01GormFilePrefsManager1NSObject% 01NSString&%Latest Version0±& % Typed Streamgorm-1.2.24/Palettes/4Data/GormNSTextViewInspector.gorm/0000755000000000000000000000000013410616261021457 5ustar rootrootgorm-1.2.24/Palettes/4Data/GormNSTextViewInspector.gorm/objects.gorm0000644000000000000000000002154713410616261024007 0ustar rootrootGNUstep archive000f4240:0000001e:000000ce:00000001:01GSNibContainer1NSObject01 NSMutableSet1NSSet&01GSWindowTemplate1GSClassSwapper01NSString&% NSWindow1NSWindow1 NSResponder% ?ð ?ð @q @w`JI @u @‡p01 NSView% ?ð ?ð @q @w`  @q @w`J01 NSMutableArray1 NSArray&01 NSBox% @H€ @rÐ @d€ @O€  @d€ @O€J 0± &0 ± % @ @ @bÀ @C  @bÀ @CJ0 ± &0 1 NSColorWell1 NSControl% @H  @J€ @@  @J€ @@J0 ± &%0 1NSCell0±&01NSFont% A@&&&&&&JJ&&&&&&01NSColor0±&% NSCalibratedWhiteColorSpace ?€2 ok:v24@0:8@1601NSTextFieldCell1 NSActionCell0±&%Background Color°&&&&&&JJ &&&&&&I’0±0±&% NSNamedColorSpace0±&% System0±&% windowBackgroundColor0±0±&% NSCalibratedRGBColorSpace ?€ @ @%%0± % @H€ @e` @d  @L€  @d  @L€J 0± &0± % @ @ @bà @@  @bà @@J0± &01NSMatrix% @9  @XÀ @:  @XÀ @:J0± &%0 ±0!±&°&&&&&&JJ&&&&&&I’% @8 @: ?ð ?ð0"±° ?*Àƒ ?*Àƒ ?*Àƒ ?*Àƒ ?€°"0#±& % NSButtonCell0$1 NSButtonCell0%±&%Button°&&&&&&JJ&&&&&&I’0&±&0'±&&&& &&%%0(± &0)±0*±&0+1NSImage0,±& % noBorder_nib°&&&&&&JJ&&&&&&I’0-±&°'&&& &&0.±0/±&00±01±&%line_nib°&&&&&&JJ&&&&&&I’02±&°'&&& &&03±04±&05±06±& % bezel_nib°&&&&&&JJ&&&&&&I’07±&°'&&& &&08±09±&0:±0;±& % ridge_nib°&&&&&&JJ&&&&&&I’0<±&°'&&& &&²’’°80=±0>±&%Border°&&&&&&JJ &&&&&&I’°0?±° ?€ @ @%%0@± % @= @$ @j  @c€  @j  @c€J0A± &0B± % @ @ @hà @``  @hà @``J0C± &0D1NSButton% @< @\@ @`À @0  @`À @0J0E± &%0F±0G±& % Selectable0H±0I1NSMutableString&%GSSwitch0J±%&&&&&&JJ&&&&&&I’0K±&0L±&0M±0N±&%GSSwitchSelected&&& &&0O±% @ @R@ @c@ @0  @c@ @0J0P± &%0Q±0R±&%Mutliple fonts allowed°H°J&&&&&&JJ&&&&&&I’0S±&0T±&°M&&& &&0U±% @W€ @W@ @Q @0  @Q @0J0V± &%0W±0X±&%Editable°H°J&&&&&&JJ&&&&&&I’0Y±&0Z±&°M&&& &&0[±% @3 @J€ @aà @0  @aà @0J0\± &%0]±0^±&%Graphics allowed°H°J&&&&&&JJ&&&&&&I’0_±&0`±&°M&&& &&0a±% @P@ @@ @X@ @0  @X@ @0J0b± &%0c±0d±& % Undo allowed°H°J&&&&&&JJ&&&&&&I’0e±&0f±&°M&&& &&0g±% @H€ @& @\@ @0  @\@ @0J0h± &%0i±0j±&%Uses Find Panel°H°J&&&&&&JJ&&&&&&I’0k±&0l±&°M&&& &&0m±0n±&%Options°&&&&&&JJ &&&&&&I’°0o±° ?€ @ @%%0p± % @H€ @m  @d  @O€  @d  @O€J 0q± &0r± % @ @ @bà @C  @bà @CJ0s± &0t±% @H€  @J€ @@  @J€ @@J0u± &%0v±0w±&°&&&&&&JJ&&&&&&0x±° ?€²0y±0z±& % Text Color°&&&&&&JJ &&&&&&I’°0{±° ?€ @ @%%°0|±&%Window0}±&%TextView Attributes Inspector°} @ @9 @È @ÈI&   @ž @à0~± &0± &0€1NSMutableDictionary1 NSDictionary&0±&%Box°0‚±&%Box1°p0ƒ±& % ColorWell° 0„±&%Box3°@0…±&%Button1°O0†±&%Button3°[0‡±&% NSOwner0ˆ±&!%!GormNSTextViewAttributesInspector0‰±& % Button(0)°a0б& % ColorWell1°t0‹±&%Box2°0Œ±&%Matrix°0±&%Button°D0ޱ& % Button(1)°g0±&%Button2°U0±& % Inspector°0‘± &))0’1NSNibConnector°0“±&% NSOwner0”1NSNibOutletConnector°“°0•±&%window0–±°°0—±°ƒ°0˜±°‹°0™±°Œ°0š±°„°0›±°“°ƒ0œ±&%backgroundColorWell0±°“°Œ0ž±& % borderMatrix0Ÿ±°‚°0 ±°Š°0¡±°“°Š0¢±& % textColorWell0£1NSNibControlConnector°ƒ°“0¤±&%ok:0¥±°Š°“°¤0¦±°Œ°“°¤0§±°ƒ°Š0¨±& % nextKeyView0©±°Š°Œ°¨0ª±°°ƒ0«±&%initialFirstResponder0¬±°0­±°…0®±°0¯±°†0°±°“°0±±&%selectableButton0²±°“°0³±&%editableButton0´±°“°…0µ±&%multipleFontsButton0¶±°“°†0·±&%graphicsButton0¸±°°“0¹±&%ok:0º±°°“°¹0»±°…°“°¹0¼±°†°“°¹0½±°Œ°0¾±& % nextKeyView0¿±°°°¾0À±°°…°¾0Á±°…°†°¾0±°†°ƒ°¾0ñ°‰0ı°Ž0ű°“°‰0Ʊ& % undoButton0DZ°“°Ž0ȱ&%findPanelButton0ɱ°‰°“0ʱ&%ok:0˱°Ž°“°Ê0̱&gorm-1.2.24/Palettes/4Data/GormNSTextViewInspector.gorm/data.classes0000644000000000000000000000055713410616261023756 0ustar rootroot{ "## Comment" = "Do NOT change this file, Gorm maintains it"; GormNSTextViewAttributesInspector = { Actions = ( ); Outlets = ( backgroundColorWell, textColorWell, borderMatrix, editableButton, multipleFontsButton, graphicsButton, selectableButton, findPanelButton, undoButton ); Super = IBInspector; }; }gorm-1.2.24/Palettes/4Data/GormNSTextViewInspector.gorm/data.info0000644000000000000000000000027013410616261023244 0ustar rootrootGNUstep archive000f4240:00000003:00000003:00000000:01GormFilePrefsManager1NSObject%01NSString&%Latest Version0±& % Typed Streamgorm-1.2.24/Palettes/4Data/GormTextViewSizeInspector.m0000644000000000000000000000234713410616261021272 0ustar rootroot/* inspectors - Various inspectors for data elements Copyright (C) 2001 Free Software Foundation, Inc. Author: Laurent Julliard Date: Nov 2001 Author: Gregory Casamento Date: Nov 2003,2004,2005 This file is part of GNUstep. This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 3 of the License, or (at your option) any later version. This program 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 General Public License for more details. You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02111 USA. */ #include "GormTextViewSizeInspector.h" @implementation GormTextViewSizeInspector - (void) setObject: (id)anObject { id scrollView; scrollView = [anObject enclosingScrollView]; [super setObject: scrollView]; } @end gorm-1.2.24/Palettes/4Data/GormNSImageViewInspector.gorm/0000755000000000000000000000000013410616261021555 5ustar rootrootgorm-1.2.24/Palettes/4Data/GormNSImageViewInspector.gorm/objects.gorm0000644000000000000000000003363113410616261024102 0ustar rootrootGNUstep archive000f4240:0000001e:00000116:00000001:01GSNibContainer1NSObject01 NSMutableSet1NSSet&01GSWindowTemplate1GSClassSwapper01NSString&% NSWindow1NSWindow1 NSResponder% ?ð ?ð @q @x@JI @€ð @‡H01 NSView% ?ð ?ð @q @x@  @q @x@J01 NSMutableArray1 NSArray&01 NSBox% @. @t @n` @K  @n` @KJ 0± &0 ± % @ @ @l  @=  @l  @=J0 ± &0 1 NSTextField1 NSControl%  @l  @7  @l  @7J0 ± &%0 1NSTextFieldCell1 NSActionCell1NSCell0±&%Text01NSFont% A@&&&&&&JJ &&&&&&I2 ok:v24@0:8@1601NSColor0±&% NSCalibratedRGBColorSpace ?€ ?€ ?€ ?€ ?€0±° ?€’0±0±&%Icon°&&&&&&JJ &&&&&&I’0±0±&% NSNamedColorSpace0±&% System0±&% windowBackgroundColor0±° ?€ @ @%%0± % @P @`@ @aà @M  @aà @MJ"0± &0± % @ @ @` @@€  @` @@€J0± &01NSMatrix%  @` @;  @` @;J0± &%0 ±0!±&°&&&&&&JJ&&&&&&I’% @9 @; ?ð ?ð0"±° ?*Àƒ ?*Àƒ ?*Àƒ ?*Àƒ ?€°"0#±& % NSButtonCell0$1 NSButtonCell0%±&%Button°&&&&&&JJ&&&&&&I’0&±&&&& &&%%0'± &0(±0)±&0*1NSImage0+±& % noBorder_nib°&&&&&&JJ&&&&&&I’°&&&& &&0,±0-±&0.±0/±&%photoframe_nib°&&&&&&JJ&&&&&&I’°&&&& &&00±01±&02±03±& % bezel_nib°&&&&&&JJ&&&&&&I’°&&&& &&04±05±&06±07±& % ridge_nib°&&&&&&JJ&&&&&&I’°&&&& &&08±09±&0:±0;±& % button_nib°&&&&&&JJ&&&&&&I’°&&&& &&²’’°(0<±0=±&%Border°&&&&&&JJ &&&&&&I’°0>±° ?€ @ @%%0?± % @P @4 @aà @[€  @aà @[€J"0@± &0A± % @ @ @` @U@  @` @U@J0B± &0C±% @8  @S@ @SÀ  @S@ @SÀJ0D± &%0E±°!°&&&&&&JJ&&&&&&I’% @9 @9ªªªªª« ?ð ?ð°"°"0F±& % NSButtonCell0G±0H±&%Button°&&&&&&JJ&&&&&&I’&&& &&%%0I± &  0J±0K±&0L±0M±&%iconTopLeft_nib°&&&&&&JJ&&&&&&I’°&&&& &&0N±0O±&0P±0Q±& % iconTop_nib°&&&&&&JJ&&&&&&I’0R±&&&& &&0S±0T±&0U±0V±&%iconTopRight_nib°&&&&&&JJ&&&&&&I’°&&&& &&0W±0X±&0Y±0Z±&%iconCenterLeft_nib°&&&&&&JJ&&&&&&I’°&&&& &&0[±0\±&0]±0^±&%iconCenter_nib°&&&&&&JJ&&&&&&I’0_±&&&& &&0`±0a±&0b±0c±&%iconCenterRight_nib°&&&&&&JJ&&&&&&I’°_&&& &&0d±0e±&0f±0g±&%iconBottomLeft_nib°&&&&&&JJ&&&&&&I’°_&&& &&0h±0i±&0j±0k±&%iconBottom_nib°&&&&&&JJ&&&&&&I’°_&&& &&0l±0m±&0n±0o±&%iconBottomRight_nib°&&&&&&JJ&&&&&&I’°_&&& &&²’’°h0p±0q±& % Alignment°&&&&&&JJ &&&&&&I’°0r±° ?€ @ @%%0s± % @P @g€ @aà @SÀ  @aà @SÀJ 0t± &0u± % @ @ @` @K  @` @KJ0v± &0w±% @  @Z€ @H  @Z€ @HJ0x± &%0y±0z±&°&&&&&&JJ&&&&&&I’% @Z€ @.ªªªªª« ?ð ?ð0{±°°0|±&% controlBackgroundColor0}±° ?*Àƒ ?*Àƒ ?*Àƒ ?*Àƒ ?€0~±& % NSButtonCell0±0€±&%Radio0±0‚1NSMutableString&%GSRadio°&&&&&&JJ&&&&&&I’°_0ƒ±0„±&%GSRadioSelected&&& &&%%0…± &0†±0‡±&%Proportionally°°&&&&&&JJ&&&&&&I’°_°ƒ&&& &&0ˆ±0‰±&%To Fit°°&&&&&&JJ&&&&&&I’°_°ƒ&&& &&0б0‹±&%None°°&&&&&&JJ&&&&&&I’°_°ƒ&&& &&²’’°ˆ0Œ±0±&%Scaling°&&&&&&JJ &&&&&&I’°0ޱ° ?€ @ @%%0± % @P @q @aà @H€  @aà @H€J 0± &0‘± % @ @ @` @8  @` @8J0’± &0“1NSButton% @=  @Q€ @2  @Q€ @2J0”± &%0•±0–±&%Editable0—±0˜±&%GSSwitch°&&&&&&JJ&&&&&&I²°_0™±0š±&%GSSwitchSelected&&& &&0›±0œ±&%Options°&&&&&&JJ &&&&&&I’°0±° ?€ @ @%%°0ž±&%Window0Ÿ±&%Image Attributes Inspector°Ÿ @ @9 @È @ÈI&   @ž @à0 ± &0¡± &0¢1NSMutableDictionary1 NSDictionary&0£±&%Box°0¤±& % TextField10¥±% @$ @_À @L @5  @L @5J0¦± &%0§±0¨±&%Text°&&&&&&JJ &&&&&&I’0©±° ?€ ?€ ?€ ?€ ?€0ª±° ?€’0«±&%Box1°0¬±& % TextField0­±% @$ @_À @L @5  @L @5J0®± &%0¯±0°±&%Text°&&&&&&JJ &&&&&&I’0±±° ?€ ?€ ?€ ?€ ?€0²±° ?€’0³±&%Box30´± % @S€ @S€ @J€ @F  @J€ @FJ0µ± &0¶± % @ @ @C€ @3  @C€ @3J0·± &0¸±0¹±&%Box°&&&&&&JJ &&&&&&I’0º±° ?*Àƒ ?*Àƒ ?*Àƒ ?*Àƒ ?€0»±° ?€ @ @%%0¼±& % TextField3° 0½±&%Box50¾± % @S€ @S€ @J€ @F  @J€ @FJ0¿± &0À± % @ @ @C€ @3  @C€ @3J0Á± &0±0ñ&%Box°&&&&&&JJ &&&&&&I’0ı° ?*Àƒ ?*Àƒ ?*Àƒ ?*Àƒ ?€0ű° ?€ @ @%%0Ʊ&%Matrix2°w0DZ&%Box7°0ȱ&% NSOwner0ɱ&"%"GormNSImageViewAttributesInspector0ʱ& % TextField20˱% @$ @_À @L @5  @L @5J0̱ &%0ͱ0α&%Text°&&&&&&JJ &&&&&&I’0ϱ° ?€ ?€ ?€ ?€ ?€0б° ?€’0ѱ&%Box20Ò± % @S€ @S€ @J€ @F  @J€ @FJ0Ó± &0Ô± % @ @ @C€ @3  @C€ @3J0Õ± &0Ö±0×±&%Box°&&&&&&JJ &&&&&&I’0ر° ?*Àƒ ?*Àƒ ?*Àƒ ?*Àƒ ?€0Ù±° ?€ @ @%%0Ú±&%Box4°?0Û±&%Matrix°0ܱ&%Matrix1°C0ݱ&%Button°“0Þ±& % Inspector°0ß±&%Box6°s0à± &##0á1NSNibConnector°Þ0â±&% NSOwner0ã±°£°Þ0ä±°¬°Þ0å±°¤°Þ0汰ʰÞ0ç±°¼°Þ0è±°«°Þ0é±°Û°Þ0거ѰÞ0ë±°³°Þ0ì±°Ú°Þ0í±°Ü°Þ0î±°½°Þ0ï±°ß°Þ0ð±°Æ°Þ0ñ±°Ç°Þ0ò±°Ý°Þ0ó1NSNibOutletConnector°â°¼0ô±& % iconField0õ±°â°Û0ö±& % borderMatrix0÷±°â°Ü0ø±&%alignmentMatrix0ù±°â°Æ0ú±& % scalingMatrix0û±°â°Ý0ü±&%editableSwitch0ý±°â°Þ0þ±&%window0ÿ1NSNibControlConnector°Û°âP±&%ok:P±°Ü°âÐP±°Æ°âÐP±°Ý°âÐP±°¼°ÛP±& % nextKeyViewP±°Û°ÜÐP±°Ü°ÆÐP±°Æ°ÝÐP ±°Ý°¼ÐP ±°Þ°¼P ±&%initialFirstResponderP ±°¼°âP ±&%delegateP±°¼°âP±&%ok:P±&gorm-1.2.24/Palettes/4Data/GormNSImageViewInspector.gorm/data.classes0000644000000000000000000000041713410616261024047 0ustar rootroot{ "## Comment" = "Do NOT change this file, Gorm maintains it"; GormNSImageViewAttributesInspector = { Actions = ( ); Outlets = ( alignmentMatrix, borderMatrix, editableSwitch, iconField, scalingMatrix ); Super = IBInspector; }; }gorm-1.2.24/Palettes/4Data/GormNSImageViewInspector.gorm/data.info0000644000000000000000000000027013410616261023342 0ustar rootrootGNUstep archive000f4240:00000003:00000003:00000000:01GormFilePrefsManager1NSObject%01NSString&%Latest Version0±& % Typed Streamgorm-1.2.24/Palettes/4Data/GormTextViewAttributesInspector.h0000644000000000000000000000321113410616261022470 0ustar rootroot/* GormTextViewAttributesInspector.h Copyright (C) 2001-2005 Free Software Foundation, Inc. Author: Laurent Julliard Date: Nov 2001 This file is part of GNUstep. This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 3 of the License, or (at your option) any later version. This program 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 General Public License for more details. You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02111 USA. */ /* July 2005 : Spilt inspector in separate classes. Always use ok: revert: methods Clean up Author : Fabien Vallon */ #ifndef INCLUDED_GormTextViewAttributesInspector_h #define INCLUDED_GormTextViewAttributesInspector_h #include @class NSColorWell; @class NSMatrix; @interface GormTextViewAttributesInspector : IBInspector { NSColorWell *backgroundColorWell; NSColorWell *textColorWell; NSMatrix *borderMatrix; /* options */ NSButton *selectableButton; NSButton *editableButton; NSButton *multipleFontsButton; NSButton *graphicsButton; NSButton *undoButton; NSButton *findPanelButton; } @end #endif /* INCLUDED_GormTextViewAttributesInspector_h */ gorm-1.2.24/Palettes/4Data/DataPalette.m0000644000000000000000000002734713410616261016343 0ustar rootroot/* main.m Copyright (C) 1999 Free Software Foundation, Inc. Author: Laurent Julliard Date: Nov 2001 This file is part of GNUstep. This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 3 of the License, or (at your option) any later version. This program 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 General Public License for more details. You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02111 USA. */ #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include /* ----------------------------------------------------------- * Some additions to the NSNumberFormatter Class specific to Gorm * -----------------------------------------------------------*/ NSArray *predefinedNumberFormats; int defaultNumberFormatIndex = 0; @implementation NSNumberFormatter (GormAdditions) + (int) formatCount { return [predefinedNumberFormats count]; } + (NSString *) formatAtIndex: (int)i { return [[predefinedNumberFormats objectAtIndex:i] objectAtIndex:0]; } + (NSString *) positiveFormatAtIndex: (int)i { NSString *fmt =[[predefinedNumberFormats objectAtIndex:i] objectAtIndex:0]; return [ [fmt componentsSeparatedByString:@";"] objectAtIndex:0]; } + (NSString *) zeroFormatAtIndex: (int)i { NSString *fmt =[[predefinedNumberFormats objectAtIndex:i] objectAtIndex:0]; return [ [fmt componentsSeparatedByString:@";"] objectAtIndex:1]; } + (NSString *) negativeFormatAtIndex: (int)i { NSString *fmt =[[predefinedNumberFormats objectAtIndex:i] objectAtIndex:0]; return [ [fmt componentsSeparatedByString:@";"] objectAtIndex:2]; } + (NSDecimalNumber *) positiveValueAtIndex: (int)i { return [NSDecimalNumber decimalNumberWithString: [[predefinedNumberFormats objectAtIndex:i] objectAtIndex:1] ]; } + (NSDecimalNumber *) negativeValueAtIndex: (int)i { return [NSDecimalNumber decimalNumberWithString: [[predefinedNumberFormats objectAtIndex:i] objectAtIndex:2] ]; } + (NSInteger) indexOfFormat: (NSString *) format { int i; NSString *fmt; int count = [predefinedNumberFormats count]; for (i=0;i @end @implementation DataPalette + (void) initialize { predefinedNumberFormats = [[NSArray alloc] initWithObjects: [NSArray arrayWithObjects: @"$#,##0.00;0.00;-$#,##0.00",@"9999.99",@"-9999.99",nil], [NSArray arrayWithObjects: @"$#,##0.00;0.00;[Red]($#,##0.00)",@"9999.99",@"-9999.99",nil], [NSArray arrayWithObjects: @"0.00;0.00;-0.00",@"9999.99",@"-9999.99",nil], [NSArray arrayWithObjects: @"0;0;-0",@"100",@"-100",nil], [NSArray arrayWithObjects: @"00000;00000;-00000",@"100",@"-100",nil], [NSArray arrayWithObjects: @"0%;0%;-0%",@"100",@"-100",nil], [NSArray arrayWithObjects: @"0.00%;0.00%;-0.00%",@"99.99",@"-99.99",nil], nil]; predefinedDateFormats = [[NSArray alloc] initWithObjects: @"%c",@"%A, %B %e, %Y", @"%B %e, %Y", @"%e %B %Y", @"%m/%d/%y", @"%b %d, %Y", @"%B %H", @"%d %b %Y", @"%H:%M:%S", @"%I:%M",nil]; } - (id) init { if((self = [super init]) != nil) { // Make ourselves a delegate, so that when the formatter is dragged in, // this code is called... [NSView registerViewResourceDraggingDelegate: self]; // subscribe to the notification... [[NSNotificationCenter defaultCenter] addObserver: self selector: @selector(willInspectObject:) name: IBWillInspectObjectNotification object: nil]; } return self; } - (void) dealloc { [NSView unregisterViewResourceDraggingDelegate: self]; [[NSNotificationCenter defaultCenter] removeObserver: self]; [super dealloc]; } - (void) finishInstantiate { NSView *contents; NSTextView *tv; id v; NSNumberFormatter *nf; NSDateFormatter *df; NSRect rect; originalWindow = [[NSWindow alloc] initWithContentRect: NSMakeRect(0, 0, 272, 192) styleMask: NSBorderlessWindowMask backing: NSBackingStoreRetained defer: NO]; contents = [originalWindow contentView]; /*******************/ /* First Column... */ /*******************/ // NSScrollView v = [[NSScrollView alloc] initWithFrame: NSMakeRect(20, 22, 113,148)]; [v setHasVerticalScroller: YES]; [v setHasHorizontalScroller: NO]; [v setAutoresizingMask: NSViewHeightSizable | NSViewWidthSizable]; [[(NSScrollView *)v contentView] setAutoresizingMask: NSViewHeightSizable | NSViewWidthSizable]; [[(NSScrollView *)v contentView] setAutoresizesSubviews:YES]; [v setBorderType: NSBezelBorder]; rect = [[(NSScrollView *)v contentView] frame]; tv = [[NSTextView alloc] initWithFrame: rect]; [tv setMinSize: NSMakeSize(108.0, 143.0)]; [tv setMaxSize: NSMakeSize(1.0E7,1.0E7)]; [tv setHorizontallyResizable: YES]; [tv setVerticallyResizable: YES]; [tv setAutoresizingMask: NSViewHeightSizable | NSViewWidthSizable]; [tv setSelectable: YES]; [tv setEditable: YES]; [tv setRichText: YES]; [tv setImportsGraphics: YES]; [[tv textContainer] setContainerSize:NSMakeSize(rect.size.width,1e7)]; [[tv textContainer] setWidthTracksTextView:YES]; [v setDocumentView:tv]; [contents addSubview: v]; RELEASE(v); RELEASE(tv); /********************/ /* Second Column... */ /********************/ // NSImageView v = [[NSImageView alloc] initWithFrame: NSMakeRect(143, 98, 96, 72)]; [v setImageFrameStyle: NSImageFramePhoto]; //FramePhoto not implemented [v setImageScaling: NSScaleProportionally]; [v setImageAlignment: NSImageAlignCenter]; [v setImage: [NSImage imageNamed: @"Sunday_seurat.tiff"]]; [contents addSubview: v]; RELEASE(v); /* Number and Date formatters. Note that they have a specific drag type. * All other palette objects are views and use the default IBViewPboardType * drag type */ v = [[NSImageView alloc] initWithFrame: NSMakeRect(143, 48, 43, 43)]; [v setImageFrameStyle: NSImageFramePhoto]; [v setImageScaling: NSScaleProportionally]; [v setImageAlignment: NSImageAlignCenter]; [v setImage: [NSImage imageNamed: @"number_formatter.tiff"]]; [contents addSubview: v]; nf = [[NSNumberFormatter alloc] init]; [nf setFormat: [NSNumberFormatter defaultFormat]]; [self associateObject: nf type: IBFormatterPboardType with: v]; RELEASE(v); v = [[NSImageView alloc] initWithFrame: NSMakeRect(196, 48, 43, 43)]; [v setImageFrameStyle: NSImageFramePhoto]; [v setImageScaling: NSScaleProportionally]; [v setImageAlignment: NSImageAlignCenter]; [v setImage: [NSImage imageNamed: @"date_formatter.tiff"]]; [contents addSubview: v]; df = [[NSDateFormatter alloc] initWithDateFormat: [NSDateFormatter defaultFormat] allowNaturalLanguage: NO]; [self associateObject: df type: IBFormatterPboardType with: v]; RELEASE(v); // NSComboBox v = [[NSComboBox alloc] initWithFrame: NSMakeRect(143, 22, 96, 21)]; [contents addSubview: v]; RELEASE(v); } - (void) willInspectObject: (NSNotification *)notification { id o = [notification object]; if([o respondsToSelector: @selector(cell)]) { id cell = [o cell]; if([cell respondsToSelector: @selector(formatter)]) { id formatter = [o formatter]; if([formatter isKindOfClass: [NSFormatter class]]) { NSString *ident = NSStringFromClass([formatter class]); [[IBInspectorManager sharedInspectorManager] addInspectorModeWithIdentifier: ident forObject: o localizedLabel: _(@"Formatter") inspectorClassName: [formatter inspectorClassName] ordering: -1.0]; } } } } // view resource dragging delegate... /** * Ask if the view accepts the object. */ - (BOOL) acceptsViewResourceFromPasteboard: (NSPasteboard *)pb forObject: (id)obj atPoint: (NSPoint)p { return ([obj respondsToSelector: @selector(setFormatter:)] && [[pb types] containsObject: IBFormatterPboardType]); } /** * Perform the action of depositing the object. */ - (void) depositViewResourceFromPasteboard: (NSPasteboard *)pb onObject: (id)obj atPoint: (NSPoint)p { NSData *data = [pb dataForType: IBFormatterPboardType]; id array = [NSUnarchiver unarchiveObjectWithData: data]; if(array != nil) { if([array count] > 0) { id formatter = [array objectAtIndex: 0]; // Add the formatter if the object accepts one... if([obj respondsToSelector: @selector(setFormatter:)]) { // Touch the document... [[(id)NSApp activeDocument] touch]; [obj setFormatter: formatter]; RETAIN(formatter); if ([formatter isMemberOfClass: [NSNumberFormatter class]]) { id fieldValue = [NSNumber numberWithFloat: 1.123456789]; [obj setStringValue: [fieldValue stringValue]]; [obj setObjectValue: fieldValue]; } else if ([formatter isMemberOfClass: [NSDateFormatter class]]) { id fieldValue = [NSDate date]; [obj setStringValue: [fieldValue description]]; [obj setObjectValue: fieldValue]; } } } } } /** * Should we draw the connection frame when the resource is * dragged in? */ - (BOOL) shouldDrawConnectionFrame { return NO; } /** * Types of resources accepted by this view. */ - (NSArray *)viewResourcePasteboardTypes { return [NSArray arrayWithObject: IBFormatterPboardType]; } @end gorm-1.2.24/Palettes/4Data/GormDateFormatterAttributesInspector.m0000644000000000000000000001170213410616261023463 0ustar rootroot/* inspectors - Various inspectors for data elements Copyright (C) 2001 Free Software Foundation, Inc. Author: Laurent Julliard Date: Nov 2001 Author: Gregory Casamento Date: Nov 2003,2004,2005 This file is part of GNUstep. This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 3 of the License, or (at your option) any later version. This program 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 General Public License for more details. You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02111 USA. */ #include #include #include #include #include #include #include #include "GormDateFormatterAttributesInspector.h" /* this macro makes sure that the string contains a value, even if @"" */ #define VSTR(str) ({id _str = (id)str; (_str) ? (id)_str : (id)(@"");}) extern NSArray *predefinedDateFormats; @implementation GormDateFormatterAttributesInspector - (id) init { if ([super init] != nil) { if ([NSBundle loadNibNamed: @"GormNSDateFormatterInspector" owner: self] == NO) { NSLog(@"Could not gorm GormDateFormatterInspector"); return nil; } } return self; } - (void) ok: (id)sender { BOOL allowslanguage = NO; NSString *dateFmt = nil; NSDateFormatter *fmtr; // Set the document as modifed... [[(id)NSApp activeDocument] touch]; if (sender == detachButton) { [[object cell] setFormatter: nil]; [[(id)NSApp activeDocument] setSelectionFromEditor: nil]; } else { NSCell *cell = [object cell]; if (sender == formatTable) { int row; if ((row = [sender selectedRow]) != -1) { dateFmt = [NSDateFormatter formatAtIndex: row]; } [formatField setStringValue: VSTR(dateFmt) ]; } else if (sender == formatField) { NSInteger idx; dateFmt = [sender stringValue]; // If the string typed is a predefined one then highligh it in // table dateFormat table view above if ( (idx = [NSDateFormatter indexOfFormat: dateFmt]) == NSNotFound) { [formatTable deselectAll:self]; } else { [formatTable selectRow:idx byExtendingSelection:NO]; } } else if (sender == languageSwitch) { dateFmt = [formatField stringValue]; allowslanguage = ([sender state] == NSOnState); } // Update the Formatter and refresh the Cell value fmtr = [[NSDateFormatter alloc] initWithDateFormat:dateFmt allowNaturalLanguage:allowslanguage]; [cell setFormatter:fmtr]; RELEASE(fmtr); [cell setObjectValue: [cell objectValue]]; } [super ok: sender]; } - (void) revert: (id)sender { NSInteger idx; NSDateFormatter *fmtr = [[object cell] formatter]; // If the string typed is a predefined one then highligh it in // table dateFormat table view above if ( (idx = [NSDateFormatter indexOfFormat: [fmtr dateFormat]]) == NSNotFound) { [formatTable deselectAll:self]; } else { [formatTable selectRow:idx byExtendingSelection:NO]; } [formatField setStringValue: VSTR([fmtr dateFormat]) ]; [languageSwitch setState: [fmtr allowsNaturalLanguage]]; [super revert: sender]; } /* NSDateFormatter inspector: table view delegate and data source */ - (NSInteger)numberOfRowsInTableView:(NSTableView *)aTableView { return [NSDateFormatter formatCount]; } - (id)tableView:(NSTableView *)aTableView objectValueForTableColumn:(NSTableColumn *)aTableColumn row:(NSInteger)rowIndex { NSString *fmt = [NSDateFormatter formatAtIndex:rowIndex]; if ( [[aTableColumn identifier] isEqualToString: @"format"] ) { return fmt; } else if ( [[aTableColumn identifier] isEqualToString: @"date"] ) { return [[NSDateFormatter defaultFormatValue] descriptionWithCalendarFormat:fmt ]; } else { // Huuh?? Only 2 columns NSLog(@"Date table view only doesn't known column identifier: %@", [aTableColumn identifier]); } return nil; } - (void)tableViewSelectionDidChange:(NSNotification *)aNotification { [self ok: formatTable]; } @end gorm-1.2.24/Palettes/4Data/GNUmakefile0000644000000000000000000000335313410616261016036 0ustar rootroot# GNUmakefile # # Copyright (C) 1999 Free Software Foundation, Inc. # # Author: Laurent Julliard # Date: Nov 2001 # # This file is part of GNUstep. # # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 2 of the License, or # (at your option) any later version. # # This program 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 General Public License for more details. # # You should have received a copy of the GNU General Public License # along with this program; if not, write to the Free Software # Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. PACKAGE_NAME = gorm include $(GNUSTEP_MAKEFILES)/common.make PALETTE_NAME = 4Data 4Data_PALETTE_ICON = DataPalette 4Data_PRINCIPAL_CLASS = DataPalette 4Data_OBJC_FILES = \ DataPalette.m \ GormDateFormatterAttributesInspector.m \ GormImageViewAttributesInspector.m \ GormNSComboBoxAttributesInspector.m \ GormNumberFormatterAttributesInspector.m \ GormTextViewAttributesInspector.m \ GormTextViewEditor.m \ GormTextViewSizeInspector.m \ inspectors.m 4Data_RESOURCE_FILES = DataPalette.tiff \ GormNSImageViewInspector.gorm \ GormNSTextViewInspector.gorm \ GormNSComboBoxInspector.gorm \ GormNSDateFormatterInspector.gorm \ GormNSNumberFormatterInspector.gorm \ palette.table 4Data_STANDARD_INSTALL = no -include GNUmakefile.preamble -include GNUmakefile.local include $(GNUSTEP_MAKEFILES)/palette.make #-include GNUmakefile.postamble gorm-1.2.24/Palettes/4Data/GormTextViewEditor.h0000644000000000000000000000250013410616261017701 0ustar rootroot/* inspectors - Various inspectors for data elements Copyright (C) 2001 Free Software Foundation, Inc. Author: Laurent Julliard Date: Nov 2001 Author: Gregory Casamento Date: Nov 2003,2004,2005 This file is part of GNUstep. This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 3 of the License, or (at your option) any later version. This program 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 General Public License for more details. You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02111 USA. */ #ifndef INCLUDED_GormTextViewEditor_h #define INCLUDED_GormTextViewEditor_h #include #include #include #include @interface GormTextViewEditor : GormViewEditor { NSTextView *textView; } @end #endif gorm-1.2.24/Palettes/4Data/GormNSComboBoxAttributesInspector.h0000644000000000000000000000343613410616261022673 0ustar rootroot/* GormNSComboBoxAttributesInspector.h Copyright (C) 2001-2005 Free Software Foundation, Inc. Author: Laurent Julliard Date: Nov 2001 This file is part of GNUstep. This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 3 of the License, or (at your option) any later version. This program 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 General Public License for more details. You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02111 USA. */ /* July 2005 : Spilt inspector in separate classes. Always use ok: revert: methods Clean up Author : Fabien Vallon */ #ifndef INCLUDED_GormNSComboBoxAttributesInspector_h #define INCLUDED_GormNSComboBoxAttributesInspector_h #include @class NSMutableArray; @class NSMatrix; @class NSButton; @class NSColorWell; @class NSForm; @class NSTableView; @class NSTextField; @interface GormNSComboBoxAttributesInspector: IBInspector { NSMatrix *alignmentMatrix; NSColorWell *backgroundColorWell; NSForm *itemField; NSButton *editable; NSButton *selectable; NSButton *usesDataSource; NSColorWell *textColorWell; NSForm *visibleItemsForm; NSTableView *itemTableView; NSTextField *itemTxt; NSButton *addButton; NSButton *removeButton; @private NSMutableArray *itemsArray; } @end #endif gorm-1.2.24/Palettes/4Data/GormDateFormatterAttributesInspector.h0000644000000000000000000000251613410616261023461 0ustar rootroot/* inspectors - Various inspectors for data elements Copyright (C) 2001 Free Software Foundation, Inc. Author: Laurent Julliard Date: Nov 2001 Author: Gregory Casamento Date: Nov 2003,2004,2005 This file is part of GNUstep. This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 3 of the License, or (at your option) any later version. This program 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 General Public License for more details. You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02111 USA. */ #ifndef INCLUDED_GormDateFormatterAttributesInspector_h #define INCLUDED_GormDateFormatterAttributesInspector_h #include @interface GormDateFormatterAttributesInspector : IBInspector { NSTableView *formatTable; id formatField; id languageSwitch; id detachButton; } @end #endif gorm-1.2.24/Palettes/4Data/GormImageViewAttributesInspector.m0000644000000000000000000000724013410616261022601 0ustar rootroot/* GormImageViewAttributesInspector.m Copyright (C) 2001-2005 Free Software Foundation, Inc. Author: Laurent Julliard Date: Nov 2001 This file is part of GNUstep. This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 3 of the License, or (at your option) any later version. This program 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 General Public License for more details. You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02111 USA. */ /* July 2005 : Split inspector classes into separate files. Always use ok: revert: methods Clean up Author : Fabien Vallon */ #include "GormImageViewAttributesInspector.h" #include #include #include #include #include #include #include #include /* This macro makes sure that the string contains a value, even if @"" */ #define VSTR(str) ({id _str = (id)str; (_str) ? (id)_str : (id)(@"");}) @implementation GormImageViewAttributesInspector - (id) init { if ([super init] == nil) return nil; if ([NSBundle loadNibNamed: @"GormNSImageViewInspector" owner: self] == NO) { NSLog(@"Could not gorm GormImageViewInspector"); return nil; } return self; } /* Commit changes that the user makes in the Attributes Inspector */ - (void) ok: (id)sender { /* icon name */ if (sender == iconField) { NSString *name = [sender stringValue]; NSImage *image; if (name == nil || [name isEqual: @""]) { [object setImage: nil]; return; } image = [NSImage imageNamed: name]; if (image == nil) { image = [[NSImage alloc] init]; // [[NSImage alloc] initByReferencingFile: name]; if (image) { [image setName: name]; [image setArchiveByName: YES]; } else { // NSBeep(); } } // else { [object setImage: image ]; } } /* border */ else if (sender == borderMatrix) { [object setImageFrameStyle: [[sender selectedCell] tag]]; } /* alignment */ else if (sender == alignmentMatrix) { [object setImageAlignment: [[sender selectedCell] tag]]; } /* scaling */ else if (sender == scalingMatrix) { [object setImageScaling: [[sender selectedCell] tag]]; } /* editable */ else if (sender == editableSwitch) { [object setEditable: ([sender state] == NSOnState)]; } [super ok:sender]; } /* Sync from object ( ImageView ) changes to the inspector */ -(void) revert:(id) sender { if ( object == nil) return; if ( [ [[object image] name] isEqualToString: @"Sunday_seurat.tiff"] ) [object setImage: nil]; [iconField setStringValue: VSTR([[object image] name])]; [borderMatrix selectCellWithTag: [object imageFrameStyle]]; [alignmentMatrix selectCellWithTag: [object imageAlignment]]; [scalingMatrix selectCellWithTag: [object imageScaling]]; [editableSwitch setState: [object isEditable]]; [super revert:sender]; } /* delegate method for changing the ImageView Name */ - (void)controlTextDidChange:(NSNotification *)aNotification { // [self ok:[aNotification object]]; } @end gorm-1.2.24/Palettes/4Data/.cvsignore0000644000000000000000000000006013410616261015754 0ustar rootroot*.app *.debug *.profile *.palette *obj .gdbinit gorm-1.2.24/Palettes/GNUmakefile0000644000000000000000000000236313410616261015101 0ustar rootroot# GNUmakefile: main makefile for Gorm palettes # # Copyright (C) 1999 Free Software Foundation, Inc. # # Author: Richard Frith-Macdonald # Date: 1999 # # This file is part of GNUstep. # # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 2 of the License, or # (at your option) any later version. # # This program 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 General Public License for more details. # # You should have received a copy of the GNU General Public License # along with this program; if not, write to the Free Software # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02111 USA. # PACKAGE_NAME = gorm include $(GNUSTEP_MAKEFILES)/common.make # # Each palette is a subproject # SUBPROJECTS = \ 0Menus \ 1Windows \ 2Controls \ 3Containers \ 4Data -include GNUmakefile.preamble -include GNUmakefile.local include $(GNUSTEP_MAKEFILES)/aggregate.make -include GNUmakefile.postamble gorm-1.2.24/Gorm.m0000644000000000000000000010255313410616261012332 0ustar rootroot/* Gorm.m * * Copyright (C) 1999, 2003 Free Software Foundation, Inc. * * Author: Richard Frith-Macdonald * Author: Gregory John Casamento * Date: 1999, 2003, 2004 * * This file is part of GNUstep. * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 3 of the License, or * (at your option) any later version. * * This program 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 General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02111 * USA. */ #include #include #include #include #include #include #include #include #include #include @interface Gorm : NSApplication { GormPrefController *preferencesController; GormClassManager *classManager; GormInspectorsManager *inspectorsManager; GormPalettesManager *palettesManager; GormPluginManager *pluginManager; id selectionOwner; BOOL isConnecting; BOOL isTesting; id testContainer; id gormMenu; NSMenu *mainMenu; // saves the main menu... NSMenu *servicesMenu; // saves the services menu... NSMenu *classMenu; // so we can set it for the class view NSMenuItem *guideLineMenuItem; NSDictionary *menuLocations; NSImage *linkImage; NSImage *sourceImage; NSImage *targetImage; NSImage *gormImage; NSImage *testingImage; id connectSource; id connectDestination; NSPoint cascadePoint; NSMutableArray *testingWindows; NSSet *topObjects; } // handle notifications the object recieves. - (void) handleNotification: (NSNotification*)aNotification; @end // Handle server protocol methods... @interface Gorm (GormServer) @end @implementation Gorm - (id) activeDocument { return [[NSDocumentController sharedDocumentController] currentDocument]; } /* NSApp */ - (id) init { self = [super init]; if (self != nil) { NSNotificationCenter *nc = [NSNotificationCenter defaultCenter]; NSNotificationCenter *ndc = [NSDistributedNotificationCenter defaultCenter]; NSBundle *bundle = [NSBundle mainBundle]; NSString *path; NSConnection *conn = [NSConnection defaultConnection]; path = [bundle pathForImageResource: @"GormLinkImage"]; linkImage = [[NSImage alloc] initWithContentsOfFile: path]; path = [bundle pathForImageResource: @"GormSourceTag"]; sourceImage = [[NSImage alloc] initWithContentsOfFile: path]; path = [bundle pathForImageResource: @"GormTargetTag"]; targetImage = [[NSImage alloc] initWithContentsOfFile: path]; path = [bundle pathForImageResource: @"Gorm"]; gormImage = [[NSImage alloc] initWithContentsOfFile: path]; path = [bundle pathForImageResource: @"GormTesting"]; testingImage = [[NSImage alloc] initWithContentsOfFile: path]; // regular notifications... [nc addObserver: self selector: @selector(handleNotification:) name: IBSelectionChangedNotification object: nil]; [nc addObserver: self selector: @selector(handleNotification:) name: IBWillCloseDocumentNotification object: nil]; // distibuted notifications... [ndc addObserver: self selector: @selector(handleNotification:) name: @"GormAddClassNotification" object: nil]; [ndc addObserver: self selector: @selector(handleNotification:) name: @"GormDeleteClassNotification" object: nil]; [ndc addObserver: self selector: @selector(handleNotification:) name: @"GormParseClassNotification" object: nil]; /* * establish registration domain defaults from file. */ path = [bundle pathForResource: @"Defaults" ofType: @"plist"]; if (path != nil) { NSDictionary *dict; dict = [NSDictionary dictionaryWithContentsOfFile: path]; if (dict != nil) { NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults]; [defaults registerDefaults: dict]; } } /* * load the interface... */ if(![NSBundle loadNibNamed: @"Gorm" owner: self]) { NSLog(@"Failed to load interface"); exit(-1); } /* * Make sure the palettes/plugins managers exist, so that the * editors and inspectors provided in the standard palettes * are available. */ [self palettesManager]; [self pluginManager]; /* * set the delegate. */ [self setDelegate: self]; /* * Start the server */ [conn setRootObject: self]; if([conn registerName: @"GormServer"] == NO) { NSLog(@"Could not register GormServer"); } } return self; } - (void) dealloc { NSNotificationCenter *nc = [NSNotificationCenter defaultCenter]; [nc removeObserver: self]; RELEASE(inspectorsManager); RELEASE(palettesManager); RELEASE(classManager); [super dealloc]; } - (void) stop: (id)sender { if(isTesting == NO) { [super stop: sender]; } else { [self endTesting: sender]; } } - (BOOL)applicationShouldOpenUntitledFile: (NSApplication *)sender { if (NSInterfaceStyleForKey(@"NSMenuInterfaceStyle", nil) == NSWindows95InterfaceStyle) { return YES; } return NO; } - (void) applicationOpenUntitledFile: (id)sender { GormDocumentController *dc = [NSDocumentController sharedDocumentController]; // open a new document and build an application type document by default... [dc newDocument: sender]; } - (void) applicationDidFinishLaunching: (NSApplication*)sender { NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults]; if ( [defaults boolForKey: @"ShowInspectors"] ) { [[[self inspectorsManager] panel] makeKeyAndOrderFront: self]; } if ( [defaults boolForKey: @"ShowPalettes"] ) { [[[self palettesManager] panel] makeKeyAndOrderFront: self]; } } - (void) applicationWillTerminate: (NSApplication*)sender { [[NSUserDefaults standardUserDefaults] setBool: [[[self inspectorsManager] panel] isVisible] forKey: @"ShowInspectors"]; [[NSUserDefaults standardUserDefaults] setBool: [[[self palettesManager] panel] isVisible] forKey: @"ShowPalettes"]; } - (BOOL) applicationShouldTerminateAfterLastWindowClosed: (id)sender { if (NSInterfaceStyleForKey(@"NSMenuInterfaceStyle", nil) == NSWindows95InterfaceStyle) { NSDocumentController *docController; docController = [NSDocumentController sharedDocumentController]; if ([[docController documents] count] > 0) { return NO; } else { return YES; } } else { return NO; } } - (GormClassManager*) classManager { id document = [self activeDocument]; if (document != nil) return [document classManager]; /* kept in the case one want access to the classManager without document */ else if (classManager == nil) { classManager = [[GormClassManager alloc] init]; } return classManager; } - (id) connectDestination { return connectDestination; } - (id) connectSource { return connectSource; } - (void) displayConnectionBetween: (id)source and: (id)destination { NSWindow *window; NSRect rect; if (source != connectSource) { if (connectSource != nil) { window = [(GormDocument *)[self activeDocument] windowAndRect: &rect forObject: connectSource]; if (window != nil) { NSView *view = [[window contentView] superview]; rect.origin.x --; rect.size.width ++; rect.size.height ++; [window disableFlushWindow]; [view displayRect: rect]; [window enableFlushWindow]; [window flushWindow]; } } connectSource = source; } if (destination != connectDestination) { if (connectDestination != nil) { window = [(GormDocument *)[self activeDocument] windowAndRect: &rect forObject: connectDestination]; if (window != nil) { NSView *view = [[window contentView] superview]; /* * Erase image from old location. */ rect.origin.x --; rect.size.width ++; rect.size.height ++; [view lockFocus]; [view displayRect: rect]; [view unlockFocus]; [window flushWindow]; } } connectDestination = destination; } if (connectSource != nil) { window = [(GormDocument *)[self activeDocument] windowAndRect: &rect forObject: connectSource]; if (window != nil) { NSView *view = [[window contentView] superview]; NSRect imageRect = rect; imageRect.origin.x++; //rect.size.width--; //rect.size.height--; [view lockFocus]; [[NSColor greenColor] set]; NSFrameRectWithWidth(rect, 1); [sourceImage compositeToPoint: imageRect.origin operation: NSCompositeSourceOver]; [view unlockFocus]; [window flushWindow]; } } if (connectDestination != nil && connectDestination == connectSource) { window = [(GormDocument *)[self activeDocument] windowAndRect: &rect forObject: connectDestination]; if (window != nil) { NSView *view = [[window contentView] superview]; NSRect imageRect = rect; imageRect.origin.x += 3; imageRect.origin.y += 2; // rect.size.width -= 5; // rect.size.height -= 5; [view lockFocus]; [[NSColor purpleColor] set]; NSFrameRectWithWidth(rect, 1); imageRect.origin.x += [targetImage size].width; [targetImage compositeToPoint: imageRect.origin operation: NSCompositeSourceOver]; [view unlockFocus]; [window flushWindow]; } } else if (connectDestination != nil) { window = [(GormDocument *)[self activeDocument] windowAndRect: &rect forObject: connectDestination]; if (window != nil) { NSView *view = [[window contentView] superview]; NSRect imageRect = rect; imageRect.origin.x++; // rect.size.width--; // rect.size.height--; [view lockFocus]; [[NSColor purpleColor] set]; NSFrameRectWithWidth(rect, 1); [targetImage compositeToPoint: imageRect.origin operation: NSCompositeSourceOver]; [view unlockFocus]; [window flushWindow]; } } } /** Info Menu Actions */ - (void) preferencesPanel: (id) sender { if(! preferencesController) { preferencesController = [[GormPrefController alloc] init]; } [[preferencesController panel] makeKeyAndOrderFront:nil]; } /** Document Menu Actions */ - (void) close: (id)sender { GormDocument *document = (GormDocument *)[self activeDocument]; if([document canCloseDocument]) { [document close]; } } - (void) debug: (id) sender { [[self activeDocument] performSelector: @selector(printAllEditors)]; } - (void) loadSound: (id) sender { [(GormDocument *)[self activeDocument] openSound: sender]; } - (void) loadImage: (id) sender { [(GormDocument *)[self activeDocument] openImage: sender]; } - (void) arrangeInFront: (id)sender { if([self isTestingInterface] == NO) { [super arrangeInFront: sender]; } } - (void) testInterface: (id)sender { if (isTesting == YES) { return; } else { // top level objects NS_DURING { NSUserDefaults *defaults; NSNotificationCenter *notifCenter = [NSNotificationCenter defaultCenter]; GormDocument *activeDoc = (GormDocument*)[self activeDocument]; NSData *data; NSArchiver *archiver; NSEnumerator *en; NSDictionary *substituteClasses = [palettesManager substituteClasses]; NSString *subClassName; id obj; id savedDelegate = [NSApp delegate]; // which windows were open when testing started... testingWindows = [[NSMutableArray alloc] init]; en = [[self windows] objectEnumerator]; while((obj = [en nextObject]) != nil) { if([obj isVisible]) { [testingWindows addObject: obj]; } } // set here, so that beginArchiving and endArchiving do not use templates. isTesting = YES; [self setApplicationIconImage: testingImage]; archiver = [[NSArchiver alloc] init]; [activeDoc deactivateEditors]; [archiver encodeClassName: @"GormCustomView" intoClassName: @"GormTestCustomView"]; // substitute classes from palettes. en = [substituteClasses keyEnumerator]; while((subClassName = [en nextObject]) != nil) { NSString *realClassName = [substituteClasses objectForKey: subClassName]; if([realClassName isEqualToString: @"NSTableView"] || [realClassName isEqualToString: @"NSOutlineView"] || [realClassName isEqualToString: @"NSBrowser"]) { continue; } [archiver encodeClassName: subClassName intoClassName: realClassName]; } // do not allow custom classes during testing. [GSClassSwapper setIsInInterfaceBuilder: YES]; [archiver encodeRootObject: activeDoc]; data = RETAIN([archiver archiverData]); // Released below... [activeDoc reactivateEditors]; RELEASE(archiver); [GSClassSwapper setIsInInterfaceBuilder: NO]; // signal the start of testing... [notifCenter postNotificationName: IBWillBeginTestingInterfaceNotification object: self]; if ([selectionOwner conformsToProtocol: @protocol(IBEditors)] == YES) { [selectionOwner makeSelectionVisible: NO]; } defaults = [NSUserDefaults standardUserDefaults]; menuLocations = [[defaults objectForKey: @"NSMenuLocations"] copy]; [defaults removeObjectForKey: @"NSMenuLocations"]; servicesMenu = [self servicesMenu]; testContainer = [NSUnarchiver unarchiveObjectWithData: data]; if (testContainer != nil) { NSMutableDictionary *nameTable = [testContainer nameTable]; NSMenu *aMenu = [nameTable objectForKey: @"NSMenu"]; [self setMainMenu: aMenu]; // initialize the context. RETAIN(testContainer); topObjects = [testContainer topLevelObjects]; [nameTable removeObjectForKey: @"NSServicesMenu"]; [nameTable removeObjectForKey: @"NSWindowsMenu"]; [testContainer awakeWithContext: nil]; [NSApp setDelegate: savedDelegate]; // makes sure the delegate isn't reset. /* * If the model didn't have a main menu, create one, * otherwise, ensure that 'quit' ends testing mode. */ if (aMenu == nil) { NSMenu *testMenu; testMenu = [[NSMenu alloc] initWithTitle: _(@"Test Menu (Gorm)")]; [testMenu addItemWithTitle: _(@"Quit Test") action: @selector(deferredEndTesting:) keyEquivalent: @"q"]; [self setMainMenu: testMenu]; // released, when the menu is reset in endTesting. } else { NSMenu *testMenu = [self mainMenu]; NSString *newTitle = [[testMenu title] stringByAppendingString: @" (Gorm)"]; NSArray *items = findAll(testMenu); NSEnumerator *en = [items objectEnumerator]; id item; BOOL found = NO; while((item = [en nextObject]) != nil) { if([item isKindOfClass: [NSMenuItem class]]) { SEL action = [item action]; if(sel_isEqual(action, @selector(terminate:))) { found = YES; [item setTitle: _(@"Quit Test")]; [item setTarget: self]; [item setAction: @selector(deferredEndTesting:)]; } } } // releast the items... RELEASE(items); // set the menu up so that it's easy to tell we're testing and how to quit. [testMenu setTitle: newTitle]; if(found == NO) { [testMenu addItemWithTitle: _(@"Quit Test") action: @selector(deferredEndTesting:) keyEquivalent: @"q"]; } } // so we don't get the warning... [self setServicesMenu: nil]; [[self mainMenu] display]; en = [[self windows] objectEnumerator]; while((obj = [en nextObject]) != nil) { if([obj isVisible]) { [obj makeKeyAndOrderFront: self]; } } // we're now in testing mode. [notifCenter postNotificationName: IBDidBeginTestingInterfaceNotification object: self]; [NSApp unhide: self]; } RELEASE(data); } NS_HANDLER { // reset the application after the error. NSLog(@"Problem while testing interface: %@", [localException reason]); NSRunAlertPanel(_(@"Problem While Testing Interface"), [NSString stringWithFormat: @"Make sure connections are to appropriate objects.\n" @"Exception: %@", [localException reason]], _(@"OK"), nil, nil); [self endTesting: self]; } NS_ENDHANDLER; } } /** Edit Menu Actions */ - (void) copy: (id)sender { if ([[selectionOwner selection] count] == 0 || [selectionOwner respondsToSelector: @selector(copySelection)] == NO) return; if([self isConnecting]) { [self stopConnecting]; } [(id)selectionOwner copySelection]; } - (void) cut: (id)sender { if ([[selectionOwner selection] count] == 0 || [selectionOwner respondsToSelector: @selector(copySelection)] == NO || [selectionOwner respondsToSelector: @selector(deleteSelection)] == NO) return; if([self isConnecting]) { [self stopConnecting]; } [(id)selectionOwner copySelection]; [(id)selectionOwner deleteSelection]; } - (void) paste: (id)sender { if ([selectionOwner respondsToSelector: @selector(pasteInSelection)] == NO) return; if([self isConnecting]) { [self stopConnecting]; } [(id)selectionOwner pasteInSelection]; } - (void) delete: (id)sender { if ([[selectionOwner selection] count] == 0 || [selectionOwner respondsToSelector: @selector(deleteSelection)] == NO) return; if([self isConnecting]) { [self stopConnecting]; } [(id)selectionOwner deleteSelection]; } - (void) selectAll: (id)sender { if ([[selectionOwner selection] count] == 0 || [selectionOwner respondsToSelector: @selector(deleteSelection)] == NO) return; if([self isConnecting]) { [self stopConnecting]; } [(id)selectionOwner deleteSelection]; } /* - (void) selectAllItems: (id)sender { return; } */ - (void) setName: (id)sender { GormSetNameController *panel; int returnPanel; NSTextField *textField; NSArray *selectionArray = [selectionOwner selection]; id obj = [selectionArray objectAtIndex: 0]; NSString *name; if([(GormDocument *)[self activeDocument] isTopLevelObject: obj]) { panel = [[GormSetNameController alloc] init]; returnPanel = [panel runAsModal]; textField = [panel textField]; if (returnPanel == NSAlertDefaultReturn) { name = [[textField stringValue] stringByTrimmingSpaces]; if (name != nil && [name isEqual: @""] == NO) { [[self activeDocument] setName: name forObject: obj]; } } RELEASE(panel); } } - (void) guideline: (id) sender { [[NSNotificationCenter defaultCenter] postNotificationName: GormToggleGuidelineNotification object:nil]; if ( [guideLineMenuItem tag] == 0 ) { [guideLineMenuItem setTitle:_(@"Enable GuideLine")]; [guideLineMenuItem setTag:1]; } else if ( [guideLineMenuItem tag] == 1) { [guideLineMenuItem setTitle:_(@"Disable GuideLine")]; [guideLineMenuItem setTag:0]; } } - (void) orderFrontFontPanel: (id) sender { NSFontPanel *fontPanel = [NSFontPanel sharedFontPanel]; GormFontViewController *gfvc = [GormFontViewController sharedGormFontViewController]; [fontPanel setAccessoryView: [gfvc view]]; [[NSFontManager sharedFontManager] orderFrontFontPanel: self]; } /** Grouping */ - (void) groupSelectionInSplitView: (id)sender { if ([[selectionOwner selection] count] < 2 || [selectionOwner respondsToSelector: @selector(groupSelectionInSplitView)] == NO) return; [(GormGenericEditor *)selectionOwner groupSelectionInSplitView]; } - (void) groupSelectionInBox: (id)sender { if ([selectionOwner respondsToSelector: @selector(groupSelectionInBox)] == NO) return; [(GormGenericEditor *)selectionOwner groupSelectionInBox]; } - (void) groupSelectionInView: (id)sender { if ([selectionOwner respondsToSelector: @selector(groupSelectionInView)] == NO) return; [(GormGenericEditor *)selectionOwner groupSelectionInView]; } - (void) groupSelectionInScrollView: (id)sender { if ([selectionOwner respondsToSelector: @selector(groupSelectionInScrollView)] == NO) return; [(GormGenericEditor *)selectionOwner groupSelectionInScrollView]; } - (void) ungroup: (id)sender { // NSLog(@"ungroup: selectionOwner %@", selectionOwner); if ([selectionOwner respondsToSelector: @selector(ungroup)] == NO) return; [(GormGenericEditor *)selectionOwner ungroup]; } /** Classes actions */ - (void) createSubclass: (id)sender { [(GormDocument *)[self activeDocument] createSubclass: sender]; } - (void) loadClass: (id)sender { // Call the current document and create the class // descibed by the header [(GormDocument *)[self activeDocument] loadClass: sender]; } - (void) createClassFiles: (id)sender { [(GormDocument *)[self activeDocument] createClassFiles: sender]; } - (void) instantiateClass: (id)sender { [(GormDocument *)[self activeDocument] instantiateClass: sender]; } - (void) addAttributeToClass: (id)sender { [(GormDocument *)[self activeDocument] addAttributeToClass: sender]; } - (void) remove: (id)sender { [(GormDocument *)[self activeDocument] remove: sender]; } /** Palettes Actions... */ - (void) inspector: (id) sender { [[[self inspectorsManager] panel] makeKeyAndOrderFront: self]; } - (void) palettes: (id) sender { [[[self palettesManager] panel] makeKeyAndOrderFront: self]; } - (void) loadPalette: (id) sender { [[self palettesManager] openPalette: sender]; } /** Testing methods... */ - (void) deferredEndTesting: (id) sender { [[NSRunLoop currentRunLoop] performSelector: @selector(endTesting:) target: self argument: nil order: 5000 modes: [NSArray arrayWithObjects: NSDefaultRunLoopMode, NSModalPanelRunLoopMode, NSEventTrackingRunLoopMode, nil]]; } - (id) endTesting: (id)sender { if (isTesting == NO) { return nil; } else { NSNotificationCenter *nc = [NSNotificationCenter defaultCenter]; NSUserDefaults *defaults; NSEnumerator *e; id val; [nc postNotificationName: IBWillEndTestingInterfaceNotification object: self]; /* * Make sure windows will go away when the container is destroyed. */ e = [topObjects objectEnumerator]; while ((val = [e nextObject]) != nil) { if ([val isKindOfClass: [NSWindow class]] == YES) { [val close]; } } /* * Make sure any peripheral windows: font panels, etc. which are brought * up by the interface being tested are also closed. */ e = [[self windows] objectEnumerator]; while ((val = [e nextObject]) != nil) { if ([testingWindows containsObject: val] == NO && [val isKindOfClass: [NSWindow class]] && [val isVisible]) { [val orderOut: self]; } } // prevent saving of this, if the menuLocations have not previously been set. if(menuLocations != nil) { defaults = [NSUserDefaults standardUserDefaults]; [defaults setObject: menuLocations forKey: @"NSMenuLocations"]; DESTROY(menuLocations); } [self setMainMenu: mainMenu]; [self setApplicationIconImage: gormImage]; NS_DURING { [self setServicesMenu: servicesMenu]; } NS_HANDLER { NSDebugLog(@"Exception while setting services menu"); } NS_ENDHANDLER [mainMenu display]; // bring it to the front... isTesting = NO; if ([selectionOwner conformsToProtocol: @protocol(IBEditors)] == YES) { [selectionOwner makeSelectionVisible: YES]; } [nc postNotificationName: IBDidEndTestingInterfaceNotification object: self]; DESTROY(testingWindows); // deallocate RELEASE(testContainer); return self; } } - (void) handleNotification: (NSNotification*)notification { NSString *name = [notification name]; id obj = [notification object]; if ([name isEqual: IBSelectionChangedNotification]) { /* * If we are connecting - stop it - a change in selection must mean * that the connection process has ended. */ if ([self isConnecting] == YES) { [self stopConnecting]; } [selectionOwner makeSelectionVisible: NO]; selectionOwner = obj; [[self inspectorsManager] updateSelection]; } else if ([name isEqual: IBWillCloseDocumentNotification]) { selectionOwner = nil; } else if ([name isEqual: @"GormAddClassNotification"]) { id obj = [notification object]; [self addClass: obj]; } else if ([name isEqual: @"GormDeleteClassNotification"]) { id obj = [notification object]; [self deleteClass: obj]; } else if ([name isEqual: @"GormParseClassNotification"]) { NSString *pathToClass = (NSString *)[notification object]; GormClassManager *cm = [(GormDocument *)[self activeDocument] classManager]; [cm parseHeader: pathToClass]; } } - (void) awakeFromNib { // set the menu... mainMenu = (NSMenu *)gormMenu; //for cascadePoint cascadePoint = NSZeroPoint; } - (GormInspectorsManager*) inspectorsManager { if (inspectorsManager == nil) { inspectorsManager = (GormInspectorsManager *)[GormInspectorsManager sharedInspectorManager]; } return inspectorsManager; } - (BOOL) isConnecting { return isConnecting; } - (BOOL) isTestingInterface { return isTesting; } - (NSImage*) linkImage { return linkImage; } - (id) miniaturize: (id)sender { NSWindow *window = [(GormDocument *)[self activeDocument] window]; [window miniaturize: self]; return nil; } - (GormPalettesManager*) palettesManager { if (palettesManager == nil) { palettesManager = [[GormPalettesManager alloc] init]; } return palettesManager; } - (GormPluginManager*) pluginManager { if (pluginManager == nil) { pluginManager = [[GormPluginManager alloc] init]; } return pluginManager; } - (id) selectionOwner { return (id)selectionOwner; } - (id) selectedObject { return [[selectionOwner selection] lastObject]; } - (id) documentForObject: (id)object { NSEnumerator *en = [[[NSDocumentController sharedDocumentController] documents] objectEnumerator]; id doc = nil; id result = nil; while((doc = [en nextObject]) != nil) { if([doc containsObject: object]) { result = doc; break; } } return result; } - (void) startConnecting { if (isConnecting == YES) { return; } if (connectSource == nil) { return; } if (connectDestination && [[self activeDocument] containsObject: connectDestination] == NO) { NSLog(@"Oops - connectDestination not in active document"); return; } if ([[self activeDocument] containsObject: connectSource] == NO) { NSLog(@"Oops - connectSource not in active document"); return; } isConnecting = YES; [[self inspectorsManager] updateSelection]; } - (void) stopConnecting { [self displayConnectionBetween: nil and: nil]; isConnecting = NO; connectSource = nil; connectDestination = nil; } - (BOOL) validateMenuItem: (NSMenuItem*)item { GormDocument *active = (GormDocument*)[self activeDocument]; SEL action = [item action]; GormClassManager *cm = nil; NSArray *s = nil; // if we have an active document... if(active != nil) { cm = [active classManager]; s = [selectionOwner selection]; } if (sel_isEqual(action, @selector(close:)) || sel_isEqual(action, @selector(miniaturize:))) { if (active == nil) return NO; } else if (sel_isEqual(action, @selector(testInterface:))) { if (active == nil) return NO; } else if (sel_isEqual(action, @selector(copy:))) { if ([s count] == 0) return NO; else { id o = [s objectAtIndex: 0]; NSString *n = [active nameForObject: o]; if ([n isEqual: @"NSOwner"] || [n isEqual: @"NSFirst"]) { return NO; } } return [selectionOwner respondsToSelector: @selector(copySelection)]; } else if (sel_isEqual(action, @selector(cut:))) { if ([s count] == 0) return NO; else { id o = [s objectAtIndex: 0]; NSString *n = [active nameForObject: o]; if ([n isEqual: @"NSOwner"] || [n isEqual: @"NSFirst"]) { return NO; } } return ([selectionOwner respondsToSelector: @selector(copySelection)] && [selectionOwner respondsToSelector: @selector(deleteSelection)]); } else if (sel_isEqual(action, @selector(delete:))) { if ([s count] == 0) return NO; else { id o = [s objectAtIndex: 0]; NSString *n = [active nameForObject: o]; if ([n isEqual: @"NSOwner"] || [n isEqual: @"NSFirst"]) { return NO; } } return [selectionOwner respondsToSelector: @selector(deleteSelection)]; } else if (sel_isEqual(action, @selector(paste:))) { if ([s count] == 0) return NO; else { id o = [s objectAtIndex: 0]; NSString *n = [active nameForObject: o]; if ([n isEqual: @"NSOwner"] || [n isEqual: @"NSFirst"]) { return NO; } } return [selectionOwner respondsToSelector: @selector(pasteInSelection)]; } else if (sel_isEqual(action, @selector(setName:))) { NSString *n; id o; if ([s count] == 0) { return NO; } if ([s count] > 1) { return NO; } o = [s objectAtIndex: 0]; n = [active nameForObject: o]; if ([n isEqual: @"NSOwner"] || [n isEqual: @"NSFirst"] || [n isEqual: @"NSFont"] || [n isEqual: @"NSMenu"]) { return NO; } else if(![active isTopLevelObject: o]) { return NO; } } else if(sel_isEqual(action, @selector(createSubclass:)) || sel_isEqual(action, @selector(loadClass:)) || sel_isEqual(action, @selector(createClassFiles:)) || sel_isEqual(action, @selector(instantiateClass:)) || sel_isEqual(action, @selector(addAttributeToClass:)) || sel_isEqual(action, @selector(remove:))) { if(active == nil) { return NO; } if(![active isEditingClasses]) { return NO; } if(sel_isEqual(action, @selector(createSubclass:))) { NSArray *s = [selectionOwner selection]; id o = nil; NSString *name = nil; if([s count] == 0 || [s count] > 1) return NO; o = [s objectAtIndex: 0]; name = [o className]; if([active classIsSelected] == NO) { return NO; } if([name isEqual: @"FirstResponder"]) return NO; } if(sel_isEqual(action, @selector(createClassFiles:)) || sel_isEqual(action, @selector(remove:))) { id o = nil; NSString *name = nil; if ([s count] == 0) { return NO; } if ([s count] > 1) { return NO; } o = [s objectAtIndex: 0]; name = [o className]; if(![cm isCustomClass: name]) { return NO; } } if(sel_isEqual(action, @selector(instantiateClass:))) { id o = nil; NSString *name = nil; if ([s count] == 0) { return NO; } if ([s count] > 1) { return NO; } if([active classIsSelected] == NO) { return NO; } o = [s objectAtIndex: 0]; name = [o className]; if(name != nil) { id cm = [self classManager]; return [cm canInstantiateClassNamed: name]; } } } else if(sel_isEqual(action, @selector(loadSound:)) || sel_isEqual(action, @selector(loadImage:)) || sel_isEqual(action, @selector(debug:))) { if(active == nil) { return NO; } } return YES; } - (NSMenu*) classMenu { return classMenu; } - (void) print: (id) sender { [[self keyWindow] print: sender]; } @end @implementation Gorm (GormServer) // Methods to support external apps adding and deleting // classes from the current document... - (void) addClass: (NSDictionary *) dict { GormDocument *doc = (GormDocument *)[self activeDocument]; GormClassManager *cm = [doc classManager]; NSArray *outlets = [dict objectForKey: @"outlets"]; NSArray *actions = [dict objectForKey: @"actions"]; NSString *className = [dict objectForKey: @"className"]; NSString *superClassName = [dict objectForKey: @"superClassName"]; // If the class is known, delete it before proceeding. if([cm isKnownClass: className]) { [cm removeClassNamed: className]; } // Add the class to the class manager. [cm addClassNamed: className withSuperClassNamed: superClassName withActions: actions withOutlets: outlets]; } - (void) deleteClass: (NSString *) className { GormDocument *doc = (GormDocument *)[self activeDocument]; GormClassManager *cm = [doc classManager]; [cm removeClassNamed: className]; } @end gorm-1.2.24/Version0000644000000000000000000000066313426755167012637 0ustar rootroot # This file is included in various Makefile's to get version information. # Compatible with Bourne shell syntax, so it can included there too. # The minimum gcc version required to compile the library. GNUSTEP_GCC=3.3.0 # GNUstep GUI version required GNUSTEP_CORE_VERSION=0.25.0 # The version number of this release. MAJOR_VERSION=1 MINOR_VERSION=2 SUBMINOR_VERSION=24 VERSION=${MAJOR_VERSION}.${MINOR_VERSION}.${SUBMINOR_VERSION} gorm-1.2.24/GormInfo.plist0000644000000000000000000000322713426744511014052 0ustar rootroot{ NSIcon = "Gorm.tiff"; NSRole = "Editor"; NSTypes = ( { NSName = "GSGormFileType"; NSHumanReadableName = "GNUstep Gorm"; NSRole = Editor; NSDocumentClass = GormDocument; NSUnixExtensions = ( "gorm" ); NSIcon = "GormFile.tiff"; }, { NSName = "GSNibFileType"; NSHumanReadableName = "Cocoa Nib"; NSRole = Editor; NSDocumentClass = GormDocument; NSUnixExtensions = ( "nib" ); NSIcon = "GormNib.tiff"; }, { NSName = "GSGModelFileType"; NSHumanReadableName = "GNUstep GModel"; NSRole = Viewer; NSDocumentClass = GormDocument; NSUnixExtensions = ( "gmodel" ); NSIcon = "FileIcon_gmodel.tiff"; }, { NSName = "GSXibFileType"; NSHumanReadableName = "Cocoa Xib"; NSRole = Viewer; NSDocumentClass = GormDocument; NSUnixExtensions = ( "xib" ); NSIcon = "GormNib.tiff"; }, { NSUnixExtensions = ( "palette" ); NSIcon = "GormPalette.tiff"; } ); ApplicationDescription = "[GNUstep | Graphical] Object Relationship Modeller"; ApplicationIcon = "Gorm.tiff"; ApplicationName = "Gorm"; ApplicationRelease = "Gorm 1.2.24 (Release)"; Authors = ("Gregory John Casamento ", "Adam Fedor ", "Richard Frith-Macdonald ", "Wolfgang Lux ", "Pierre-Yves Rivaille "); Copyright = "Copyright (C) 1999-2019 FSF"; CopyrightDescription = "Released under the GNU General Public License 3.0"; NSBuildVersion = "1.2.24 Feb 07 2019"; GSDesktopInstallationDomain=SYSTEM; } gorm-1.2.24/COPYING0000644000000000000000000010451413410616261012302 0ustar rootroot GNU GENERAL PUBLIC LICENSE Version 3, 29 June 2007 Copyright (C) 2007 Free Software Foundation, Inc. Everyone is permitted to copy and distribute verbatim copies of this license document, but changing it is not allowed. Preamble The GNU General Public License is a free, copyleft license for software and other kinds of works. The licenses for most software and other practical works are designed to take away your freedom to share and change the works. By contrast, the GNU General Public License is intended to guarantee your freedom to share and change all versions of a program--to make sure it remains free software for all its users. We, the Free Software Foundation, use the GNU General Public License for most of our software; it applies also to any other work released this way by its authors. You can apply it to your programs, too. When we speak of free software, we are referring to freedom, not price. Our General Public Licenses are designed to make sure that you have the freedom to distribute copies of free software (and charge for them if you wish), that you receive source code or can get it if you want it, that you can change the software or use pieces of it in new free programs, and that you know you can do these things. To protect your rights, we need to prevent others from denying you these rights or asking you to surrender the rights. Therefore, you have certain responsibilities if you distribute copies of the software, or if you modify it: responsibilities to respect the freedom of others. For example, if you distribute copies of such a program, whether gratis or for a fee, you must pass on to the recipients the same freedoms that you received. You must make sure that they, too, receive or can get the source code. And you must show them these terms so they know their rights. Developers that use the GNU GPL protect your rights with two steps: (1) assert copyright on the software, and (2) offer you this License giving you legal permission to copy, distribute and/or modify it. For the developers' and authors' protection, the GPL clearly explains that there is no warranty for this free software. For both users' and authors' sake, the GPL requires that modified versions be marked as changed, so that their problems will not be attributed erroneously to authors of previous versions. Some devices are designed to deny users access to install or run modified versions of the software inside them, although the manufacturer can do so. This is fundamentally incompatible with the aim of protecting users' freedom to change the software. The systematic pattern of such abuse occurs in the area of products for individuals to use, which is precisely where it is most unacceptable. Therefore, we have designed this version of the GPL to prohibit the practice for those products. If such problems arise substantially in other domains, we stand ready to extend this provision to those domains in future versions of the GPL, as needed to protect the freedom of users. Finally, every program is threatened constantly by software patents. States should not allow patents to restrict development and use of software on general-purpose computers, but in those that do, we wish to avoid the special danger that patents applied to a free program could make it effectively proprietary. To prevent this, the GPL assures that patents cannot be used to render the program non-free. The precise terms and conditions for copying, distribution and modification follow. TERMS AND CONDITIONS 0. Definitions. "This License" refers to version 3 of the GNU General Public License. "Copyright" also means copyright-like laws that apply to other kinds of works, such as semiconductor masks. "The Program" refers to any copyrightable work licensed under this License. Each licensee is addressed as "you". "Licensees" and "recipients" may be individuals or organizations. To "modify" a work means to copy from or adapt all or part of the work in a fashion requiring copyright permission, other than the making of an exact copy. The resulting work is called a "modified version" of the earlier work or a work "based on" the earlier work. A "covered work" means either the unmodified Program or a work based on the Program. To "propagate" a work means to do anything with it that, without permission, would make you directly or secondarily liable for infringement under applicable copyright law, except executing it on a computer or modifying a private copy. Propagation includes copying, distribution (with or without modification), making available to the public, and in some countries other activities as well. To "convey" a work means any kind of propagation that enables other parties to make or receive copies. Mere interaction with a user through a computer network, with no transfer of a copy, is not conveying. An interactive user interface displays "Appropriate Legal Notices" to the extent that it includes a convenient and prominently visible feature that (1) displays an appropriate copyright notice, and (2) tells the user that there is no warranty for the work (except to the extent that warranties are provided), that licensees may convey the work under this License, and how to view a copy of this License. If the interface presents a list of user commands or options, such as a menu, a prominent item in the list meets this criterion. 1. Source Code. The "source code" for a work means the preferred form of the work for making modifications to it. "Object code" means any non-source form of a work. A "Standard Interface" means an interface that either is an official standard defined by a recognized standards body, or, in the case of interfaces specified for a particular programming language, one that is widely used among developers working in that language. The "System Libraries" of an executable work include anything, other than the work as a whole, that (a) is included in the normal form of packaging a Major Component, but which is not part of that Major Component, and (b) serves only to enable use of the work with that Major Component, or to implement a Standard Interface for which an implementation is available to the public in source code form. A "Major Component", in this context, means a major essential component (kernel, window system, and so on) of the specific operating system (if any) on which the executable work runs, or a compiler used to produce the work, or an object code interpreter used to run it. The "Corresponding Source" for a work in object code form means all the source code needed to generate, install, and (for an executable work) run the object code and to modify the work, including scripts to control those activities. However, it does not include the work's System Libraries, or general-purpose tools or generally available free programs which are used unmodified in performing those activities but which are not part of the work. For example, Corresponding Source includes interface definition files associated with source files for the work, and the source code for shared libraries and dynamically linked subprograms that the work is specifically designed to require, such as by intimate data communication or control flow between those subprograms and other parts of the work. The Corresponding Source need not include anything that users can regenerate automatically from other parts of the Corresponding Source. The Corresponding Source for a work in source code form is that same work. 2. Basic Permissions. All rights granted under this License are granted for the term of copyright on the Program, and are irrevocable provided the stated conditions are met. This License explicitly affirms your unlimited permission to run the unmodified Program. The output from running a covered work is covered by this License only if the output, given its content, constitutes a covered work. This License acknowledges your rights of fair use or other equivalent, as provided by copyright law. You may make, run and propagate covered works that you do not convey, without conditions so long as your license otherwise remains in force. You may convey covered works to others for the sole purpose of having them make modifications exclusively for you, or provide you with facilities for running those works, provided that you comply with the terms of this License in conveying all material for which you do not control copyright. Those thus making or running the covered works for you must do so exclusively on your behalf, under your direction and control, on terms that prohibit them from making any copies of your copyrighted material outside their relationship with you. Conveying under any other circumstances is permitted solely under the conditions stated below. Sublicensing is not allowed; section 10 makes it unnecessary. 3. Protecting Users' Legal Rights From Anti-Circumvention Law. No covered work shall be deemed part of an effective technological measure under any applicable law fulfilling obligations under article 11 of the WIPO copyright treaty adopted on 20 December 1996, or similar laws prohibiting or restricting circumvention of such measures. When you convey a covered work, you waive any legal power to forbid circumvention of technological measures to the extent such circumvention is effected by exercising rights under this License with respect to the covered work, and you disclaim any intention to limit operation or modification of the work as a means of enforcing, against the work's users, your or third parties' legal rights to forbid circumvention of technological measures. 4. Conveying Verbatim Copies. You may convey verbatim copies of the Program's source code as you receive it, in any medium, provided that you conspicuously and appropriately publish on each copy an appropriate copyright notice; keep intact all notices stating that this License and any non-permissive terms added in accord with section 7 apply to the code; keep intact all notices of the absence of any warranty; and give all recipients a copy of this License along with the Program. You may charge any price or no price for each copy that you convey, and you may offer support or warranty protection for a fee. 5. Conveying Modified Source Versions. You may convey a work based on the Program, or the modifications to produce it from the Program, in the form of source code under the terms of section 4, provided that you also meet all of these conditions: a) The work must carry prominent notices stating that you modified it, and giving a relevant date. b) The work must carry prominent notices stating that it is released under this License and any conditions added under section 7. This requirement modifies the requirement in section 4 to "keep intact all notices". c) You must license the entire work, as a whole, under this License to anyone who comes into possession of a copy. This License will therefore apply, along with any applicable section 7 additional terms, to the whole of the work, and all its parts, regardless of how they are packaged. This License gives no permission to license the work in any other way, but it does not invalidate such permission if you have separately received it. d) If the work has interactive user interfaces, each must display Appropriate Legal Notices; however, if the Program has interactive interfaces that do not display Appropriate Legal Notices, your work need not make them do so. A compilation of a covered work with other separate and independent works, which are not by their nature extensions of the covered work, and which are not combined with it such as to form a larger program, in or on a volume of a storage or distribution medium, is called an "aggregate" if the compilation and its resulting copyright are not used to limit the access or legal rights of the compilation's users beyond what the individual works permit. Inclusion of a covered work in an aggregate does not cause this License to apply to the other parts of the aggregate. 6. Conveying Non-Source Forms. You may convey a covered work in object code form under the terms of sections 4 and 5, provided that you also convey the machine-readable Corresponding Source under the terms of this License, in one of these ways: a) Convey the object code in, or embodied in, a physical product (including a physical distribution medium), accompanied by the Corresponding Source fixed on a durable physical medium customarily used for software interchange. b) Convey the object code in, or embodied in, a physical product (including a physical distribution medium), accompanied by a written offer, valid for at least three years and valid for as long as you offer spare parts or customer support for that product model, to give anyone who possesses the object code either (1) a copy of the Corresponding Source for all the software in the product that is covered by this License, on a durable physical medium customarily used for software interchange, for a price no more than your reasonable cost of physically performing this conveying of source, or (2) access to copy the Corresponding Source from a network server at no charge. c) Convey individual copies of the object code with a copy of the written offer to provide the Corresponding Source. This alternative is allowed only occasionally and noncommercially, and only if you received the object code with such an offer, in accord with subsection 6b. d) Convey the object code by offering access from a designated place (gratis or for a charge), and offer equivalent access to the Corresponding Source in the same way through the same place at no further charge. You need not require recipients to copy the Corresponding Source along with the object code. If the place to copy the object code is a network server, the Corresponding Source may be on a different server (operated by you or a third party) that supports equivalent copying facilities, provided you maintain clear directions next to the object code saying where to find the Corresponding Source. Regardless of what server hosts the Corresponding Source, you remain obligated to ensure that it is available for as long as needed to satisfy these requirements. e) Convey the object code using peer-to-peer transmission, provided you inform other peers where the object code and Corresponding Source of the work are being offered to the general public at no charge under subsection 6d. A separable portion of the object code, whose source code is excluded from the Corresponding Source as a System Library, need not be included in conveying the object code work. A "User Product" is either (1) a "consumer product", which means any tangible personal property which is normally used for personal, family, or household purposes, or (2) anything designed or sold for incorporation into a dwelling. In determining whether a product is a consumer product, doubtful cases shall be resolved in favor of coverage. For a particular product received by a particular user, "normally used" refers to a typical or common use of that class of product, regardless of the status of the particular user or of the way in which the particular user actually uses, or expects or is expected to use, the product. A product is a consumer product regardless of whether the product has substantial commercial, industrial or non-consumer uses, unless such uses represent the only significant mode of use of the product. "Installation Information" for a User Product means any methods, procedures, authorization keys, or other information required to install and execute modified versions of a covered work in that User Product from a modified version of its Corresponding Source. The information must suffice to ensure that the continued functioning of the modified object code is in no case prevented or interfered with solely because modification has been made. If you convey an object code work under this section in, or with, or specifically for use in, a User Product, and the conveying occurs as part of a transaction in which the right of possession and use of the User Product is transferred to the recipient in perpetuity or for a fixed term (regardless of how the transaction is characterized), the Corresponding Source conveyed under this section must be accompanied by the Installation Information. But this requirement does not apply if neither you nor any third party retains the ability to install modified object code on the User Product (for example, the work has been installed in ROM). The requirement to provide Installation Information does not include a requirement to continue to provide support service, warranty, or updates for a work that has been modified or installed by the recipient, or for the User Product in which it has been modified or installed. Access to a network may be denied when the modification itself materially and adversely affects the operation of the network or violates the rules and protocols for communication across the network. Corresponding Source conveyed, and Installation Information provided, in accord with this section must be in a format that is publicly documented (and with an implementation available to the public in source code form), and must require no special password or key for unpacking, reading or copying. 7. Additional Terms. "Additional permissions" are terms that supplement the terms of this License by making exceptions from one or more of its conditions. Additional permissions that are applicable to the entire Program shall be treated as though they were included in this License, to the extent that they are valid under applicable law. If additional permissions apply only to part of the Program, that part may be used separately under those permissions, but the entire Program remains governed by this License without regard to the additional permissions. When you convey a copy of a covered work, you may at your option remove any additional permissions from that copy, or from any part of it. (Additional permissions may be written to require their own removal in certain cases when you modify the work.) You may place additional permissions on material, added by you to a covered work, for which you have or can give appropriate copyright permission. Notwithstanding any other provision of this License, for material you add to a covered work, you may (if authorized by the copyright holders of that material) supplement the terms of this License with terms: a) Disclaiming warranty or limiting liability differently from the terms of sections 15 and 16 of this License; or b) Requiring preservation of specified reasonable legal notices or author attributions in that material or in the Appropriate Legal Notices displayed by works containing it; or c) Prohibiting misrepresentation of the origin of that material, or requiring that modified versions of such material be marked in reasonable ways as different from the original version; or d) Limiting the use for publicity purposes of names of licensors or authors of the material; or e) Declining to grant rights under trademark law for use of some trade names, trademarks, or service marks; or f) Requiring indemnification of licensors and authors of that material by anyone who conveys the material (or modified versions of it) with contractual assumptions of liability to the recipient, for any liability that these contractual assumptions directly impose on those licensors and authors. All other non-permissive additional terms are considered "further restrictions" within the meaning of section 10. If the Program as you received it, or any part of it, contains a notice stating that it is governed by this License along with a term that is a further restriction, you may remove that term. If a license document contains a further restriction but permits relicensing or conveying under this License, you may add to a covered work material governed by the terms of that license document, provided that the further restriction does not survive such relicensing or conveying. If you add terms to a covered work in accord with this section, you must place, in the relevant source files, a statement of the additional terms that apply to those files, or a notice indicating where to find the applicable terms. Additional terms, permissive or non-permissive, may be stated in the form of a separately written license, or stated as exceptions; the above requirements apply either way. 8. Termination. You may not propagate or modify a covered work except as expressly provided under this License. Any attempt otherwise to propagate or modify it is void, and will automatically terminate your rights under this License (including any patent licenses granted under the third paragraph of section 11). However, if you cease all violation of this License, then your license from a particular copyright holder is reinstated (a) provisionally, unless and until the copyright holder explicitly and finally terminates your license, and (b) permanently, if the copyright holder fails to notify you of the violation by some reasonable means prior to 60 days after the cessation. Moreover, your license from a particular copyright holder is reinstated permanently if the copyright holder notifies you of the violation by some reasonable means, this is the first time you have received notice of violation of this License (for any work) from that copyright holder, and you cure the violation prior to 30 days after your receipt of the notice. Termination of your rights under this section does not terminate the licenses of parties who have received copies or rights from you under this License. If your rights have been terminated and not permanently reinstated, you do not qualify to receive new licenses for the same material under section 10. 9. Acceptance Not Required for Having Copies. You are not required to accept this License in order to receive or run a copy of the Program. Ancillary propagation of a covered work occurring solely as a consequence of using peer-to-peer transmission to receive a copy likewise does not require acceptance. However, nothing other than this License grants you permission to propagate or modify any covered work. These actions infringe copyright if you do not accept this License. Therefore, by modifying or propagating a covered work, you indicate your acceptance of this License to do so. 10. Automatic Licensing of Downstream Recipients. Each time you convey a covered work, the recipient automatically receives a license from the original licensors, to run, modify and propagate that work, subject to this License. You are not responsible for enforcing compliance by third parties with this License. An "entity transaction" is a transaction transferring control of an organization, or substantially all assets of one, or subdividing an organization, or merging organizations. If propagation of a covered work results from an entity transaction, each party to that transaction who receives a copy of the work also receives whatever licenses to the work the party's predecessor in interest had or could give under the previous paragraph, plus a right to possession of the Corresponding Source of the work from the predecessor in interest, if the predecessor has it or can get it with reasonable efforts. You may not impose any further restrictions on the exercise of the rights granted or affirmed under this License. For example, you may not impose a license fee, royalty, or other charge for exercise of rights granted under this License, and you may not initiate litigation (including a cross-claim or counterclaim in a lawsuit) alleging that any patent claim is infringed by making, using, selling, offering for sale, or importing the Program or any portion of it. 11. Patents. A "contributor" is a copyright holder who authorizes use under this License of the Program or a work on which the Program is based. The work thus licensed is called the contributor's "contributor version". A contributor's "essential patent claims" are all patent claims owned or controlled by the contributor, whether already acquired or hereafter acquired, that would be infringed by some manner, permitted by this License, of making, using, or selling its contributor version, but do not include claims that would be infringed only as a consequence of further modification of the contributor version. For purposes of this definition, "control" includes the right to grant patent sublicenses in a manner consistent with the requirements of this License. Each contributor grants you a non-exclusive, worldwide, royalty-free patent license under the contributor's essential patent claims, to make, use, sell, offer for sale, import and otherwise run, modify and propagate the contents of its contributor version. In the following three paragraphs, a "patent license" is any express agreement or commitment, however denominated, not to enforce a patent (such as an express permission to practice a patent or covenant not to sue for patent infringement). To "grant" such a patent license to a party means to make such an agreement or commitment not to enforce a patent against the party. If you convey a covered work, knowingly relying on a patent license, and the Corresponding Source of the work is not available for anyone to copy, free of charge and under the terms of this License, through a publicly available network server or other readily accessible means, then you must either (1) cause the Corresponding Source to be so available, or (2) arrange to deprive yourself of the benefit of the patent license for this particular work, or (3) arrange, in a manner consistent with the requirements of this License, to extend the patent license to downstream recipients. "Knowingly relying" means you have actual knowledge that, but for the patent license, your conveying the covered work in a country, or your recipient's use of the covered work in a country, would infringe one or more identifiable patents in that country that you have reason to believe are valid. If, pursuant to or in connection with a single transaction or arrangement, you convey, or propagate by procuring conveyance of, a covered work, and grant a patent license to some of the parties receiving the covered work authorizing them to use, propagate, modify or convey a specific copy of the covered work, then the patent license you grant is automatically extended to all recipients of the covered work and works based on it. A patent license is "discriminatory" if it does not include within the scope of its coverage, prohibits the exercise of, or is conditioned on the non-exercise of one or more of the rights that are specifically granted under this License. You may not convey a covered work if you are a party to an arrangement with a third party that is in the business of distributing software, under which you make payment to the third party based on the extent of your activity of conveying the work, and under which the third party grants, to any of the parties who would receive the covered work from you, a discriminatory patent license (a) in connection with copies of the covered work conveyed by you (or copies made from those copies), or (b) primarily for and in connection with specific products or compilations that contain the covered work, unless you entered into that arrangement, or that patent license was granted, prior to 28 March 2007. Nothing in this License shall be construed as excluding or limiting any implied license or other defenses to infringement that may otherwise be available to you under applicable patent law. 12. No Surrender of Others' Freedom. If conditions are imposed on you (whether by court order, agreement or otherwise) that contradict the conditions of this License, they do not excuse you from the conditions of this License. If you cannot convey a covered work so as to satisfy simultaneously your obligations under this License and any other pertinent obligations, then as a consequence you may not convey it at all. For example, if you agree to terms that obligate you to collect a royalty for further conveying from those to whom you convey the Program, the only way you could satisfy both those terms and this License would be to refrain entirely from conveying the Program. 13. Use with the GNU Affero General Public License. Notwithstanding any other provision of this License, you have permission to link or combine any covered work with a work licensed under version 3 of the GNU Affero General Public License into a single combined work, and to convey the resulting work. The terms of this License will continue to apply to the part which is the covered work, but the special requirements of the GNU Affero General Public License, section 13, concerning interaction through a network will apply to the combination as such. 14. Revised Versions of this License. The Free Software Foundation may publish revised and/or new versions of the GNU General Public License from time to time. Such new versions will be similar in spirit to the present version, but may differ in detail to address new problems or concerns. Each version is given a distinguishing version number. If the Program specifies that a certain numbered version of the GNU General Public License "or any later version" applies to it, you have the option of following the terms and conditions either of that numbered version or of any later version published by the Free Software Foundation. If the Program does not specify a version number of the GNU General Public License, you may choose any version ever published by the Free Software Foundation. If the Program specifies that a proxy can decide which future versions of the GNU General Public License can be used, that proxy's public statement of acceptance of a version permanently authorizes you to choose that version for the Program. Later license versions may give you additional or different permissions. However, no additional obligations are imposed on any author or copyright holder as a result of your choosing to follow a later version. 15. Disclaimer of Warranty. THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING, REPAIR OR CORRECTION. 16. Limitation of Liability. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MODIFIES AND/OR CONVEYS THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES. 17. Interpretation of Sections 15 and 16. If the disclaimer of warranty and limitation of liability provided above cannot be given local legal effect according to their terms, reviewing courts shall apply local law that most closely approximates an absolute waiver of all civil liability in connection with the Program, unless a warranty or assumption of liability accompanies a copy of the Program in return for a fee. END OF TERMS AND CONDITIONS How to Apply These Terms to Your New Programs If you develop a new program, and you want it to be of the greatest possible use to the public, the best way to achieve this is to make it free software which everyone can redistribute and change under these terms. To do so, attach the following notices to the program. It is safest to attach them to the start of each source file to most effectively state the exclusion of warranty; and each file should have at least the "copyright" line and a pointer to where the full notice is found. Copyright (C) This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. This program 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 General Public License for more details. You should have received a copy of the GNU General Public License along with this program. If not, see . Also add information on how to contact you by electronic and paper mail. If the program does terminal interaction, make it output a short notice like this when it starts in an interactive mode: Copyright (C) This program comes with ABSOLUTELY NO WARRANTY; for details type `show w'. This is free software, and you are welcome to redistribute it under certain conditions; type `show c' for details. The hypothetical commands `show w' and `show c' should show the appropriate parts of the General Public License. Of course, your program's commands might be different; for a GUI interface, you would use an "about box". You should also get your employer (if you work as a programmer) or school, if any, to sign a "copyright disclaimer" for the program, if necessary. For more information on this, and how to apply and follow the GNU GPL, see . The GNU General Public License does not permit incorporating your program into proprietary programs. If your program is a subroutine library, you may consider it more useful to permit linking proprietary applications with the library. If this is what you want to do, use the GNU Lesser General Public License instead of this License. But first, please read . gorm-1.2.24/English.lproj/0000755000000000000000000000000013410616261013760 5ustar rootrootgorm-1.2.24/English.lproj/GormPrefColors.gorm/0000755000000000000000000000000013410616261017626 5ustar rootrootgorm-1.2.24/English.lproj/GormPrefColors.gorm/objects.gorm0000644000000000000000000000377313410616261022157 0ustar rootrootGNUstep archive00002af9:0000001b:00000030:00000000:01GSNibContainer1NSObject01NSMutableDictionary1 NSDictionary&01NSString&%NSOwner0±&%GormColorsPref0±&%GSCustomClassMap0±&0±&%Box01NSBox1NSView1 NSResponder% BÚ C C B–  C B–&0 1 NSMutableArray1 NSArray&0 ±% @à @à Bì BD  Bì BD&0 ± &0 1 NSColorWell1 NSControl% B A BT Að  BT Að&0 ± &%01 NSCell0±&01NSFont%&&&&&&&&01NSColor0±&%NSCalibratedRGBColorSpace ?€ ?€ ?€ ?€’0± 0±& % Guides Color°&&&&&&&& @  @ %%0±& % GormNSPanel01GSWindowTemplate1GSClassSwapper0±&%NSPanel1NSPanel1NSWindow% ?€ A C¯ Cz& % Cn DD€0±% ?€ A C¯ Cz  C¯ Cz&0± &°0±0±&%NSNamedColorSpace0±&%System0±&%windowBackgroundColor0±&%Window0±&%PrefsColor Panel° ?€ Aà F@ F@%0 1NSImage0!±&%NSApplicationIcon&   D  D€0"±& % ColorWell° 0#± &0$1NSNibConnector°0%±&%NSOwner0&±°0'±°"0(1NSNibControlConnector°"°%0)±&% ok:0*1NSNibOutletConnector°%°"0+±&%color0,±°%°0-±&%window0.±°°"0/1NSMutableString&% initialFirstResponder001 GSMutableSet1 NSMutableSet1NSSet&°gorm-1.2.24/English.lproj/GormPrefColors.gorm/data.classes0000644000000000000000000000030613410616261022115 0ustar rootroot{ "## Comment" = "Do NOT change this file, Gorm maintains it"; GormColorsPref = { Actions = ( "ok:" ); Outlets = ( color, window, _view ); Super = NSObject; }; }gorm-1.2.24/English.lproj/GormPrefColors.gorm/data.info0000644000000000000000000000027013410616261021413 0ustar rootrootGNUstep archive00002af9:00000003:00000003:00000000:01GormFilePrefsManager1NSObject% 01NSString&%Latest Version0±& % Typed Streamgorm-1.2.24/English.lproj/GormDocument.gorm/0000755000000000000000000000000013410616261017326 5ustar rootrootgorm-1.2.24/English.lproj/GormDocument.gorm/objects.gorm0000644000000000000000000003315613410616261021655 0ustar rootrootGNUstep archive0000300c:0000002b:00000165:00000000:01GSNibContainer1NSObject01 NSMutableSet1NSSet&01GSWindowTemplate1GSClassSwapper01NSString&%NSWindow1NSWindow1 NSResponder% ?ð @" @x0 @pð&% @ƒà @‹¸01 NSView% ?ð @" @x0 @pð  @x0 @pð&01 NSMutableArray1 NSArray&01 NSScrollView% @0 @$ @v @o`  @v @o`&0± &0 1 NSClipView% @5 @8 @u @l   @u @l &0 ± &0 1 NSTableView1 NSControl%  @u @d   @u @d &0 ± &%0 1NSCell0±&01NSFont%&&&&&&&&&&&&&&0± &01 NSTableColumn0±&%item BP A  GÃP01NSTableHeaderCell1NSTextFieldCell1 NSActionCell0±&%Item#0±% &&&&&&&& &&&&&&%’01NSColor0±&%NSNamedColorSpace0±&%System0±&%controlShadowColor0±°°0±&%windowFrameTextColor0±0±&%nine°°&&&&&&&& &&&&&&%’0±°0±&%System0 ±&%textBackgroundColor0!±°°0"±& % textColor0#±0$±& % description C A  GÃP0%±0&±& % Description°&&&&&&&& &&&&&&%’°°0'±°°°&&&&&&&& &&&&&&%’°°!0(±°°0)±& % gridColor0*±°°0+±&%controlBackgroundColor0,1NSTableHeaderView%  @u @6  @u @6&0-± &0.1GSTableCornerView% @ @ @3 @6  @3 @6&0/± &%% A€’ @ @°*001 NSScroller% @ @8 @2 @l   @2 @l &01± &%02±°°&&&&&&&&&&&&&&&’03±% @5 @ @u @6  @u @6&04± &°,05±°°06±& % controlColor°.° % A A A A °0°307±°°08±&%windowBackgroundColor09±&%Window0:±&%Show Incompatibilities°: ?ð @> @È @È%0;1NSImage0<±&%NSApplicationIcon&   @ž @’À0=±0>±&%GormDocumentWindow±% ?ð @" @u  @h€&% @YÀ @‚p0?± % ?ð @" @u  @h€  @u  @h€&0@± &0A1NSBox%  @u  @h€  @u  @h€&0B± &0C± % @ @ @u @g@  @u @g@&0D± &0E±0F±&%Box°&&&&&&&&&&&&&& @ @%%°70G±&%Window0H±&%UNTITLED°H @ @@€ @È @È%&  @ž @’À0I1 GSNibItem0J±&%GormFilePrefsManager  &0K±°±% ?ð @" @u @h`&% @„@ @`0L± % ?ð @" @u @h`  @u @h`&0M± &0N±%  @u` @g€  @u` @g€&0O± &0P± % @ @ @tÀ @f@  @tÀ @f@&0Q± &  0R1 NSTextField% @$ @^À @e  @2  @e  @2& 0S± &%0T±0U±&%Gorm Build Identifier0V±% A@&&&&&&&& &&&&&&%’°°!’0W±% @fà @^À @` @2  @` @2& 0X± &%0Y±0Z±&°&&&&&&&& &&&&&&%’°7°!’0[±% @$ @] @s€ @  @s€ @& 0\± &0]± % @ @ @r    @r  &0^± &0_±0`±&%Box°&&&&&&&&&&&&&& @ @%%0a±% @$ @VÀ @e @2  @e @2& 0b± &%0c±0d±&%GNUstep Target Version°V&&&&&&&& &&&&&&%’°°!’0e1 NSPopUpButton1 NSButton% @fà @VÀ @` @4  @` @4& 0f± &%0g1!NSPopUpButtonCell1"NSMenuItemCell1# NSButtonCell0h±&°&&&&&&&&0i1$NSMenu0j±&0k± &0l1% NSMenuItem0m±&%GNUstep gui-0.10.30n±&&&ÿ%’%0o±%0p±&%GNUstep gui-0.9.50q±&&&ÿ%’%0r±%0s±&%GNUstep gui-0.9.30t±&&&ÿ%’%0u±%0v±&%Latest Version°t&&ÿ%0w±0x±& % common_Nibble’%&&&&&&%’0y±&0z±&&&& &&°u°i°u%%%%%0{± % @R  @g @9  @g @9&"0|± &%0}±#0~±&% Show Incompatibilities°&&&&&&&&&&&&&&%’0±&0€±&&&& &&0±% @$ @O @e @2  @e @2&,0‚± &%0ƒ±0„±& % Archive Type°V&&&&&&&& &&&&&&%’°°!’0…±% @fà @O @` @4  @` @4&)0†± &%0‡±!0ˆ±&°&&&&&&&&0‰±$0б&0‹± &0Œ±%0±& % Typed Stream0ޱ&&&ÿ%°w’%0±%0±& % Keyed Archive°Ž&&ÿ%’%0‘±%0’±&%Both0“±&&&ÿ%’%&&&&&&%’0”±&0•±&&&& &&°Œ°‰°Œ%%%%%0–±% @$ @> @\ @2  @\ @2&$0—± &%0˜±0™±& % Document Type°V°™&&&&&&&& &&&&&&%’°°!’0š±% @fà @> @a` @2  @a` @2&!0›± &%0œ±0±&%System0ž±% A@&&&&&&&& &&&&&&%’°°!’0Ÿ±0 ±&°&&&&&&&&&&&&&& @ @%%°70¡±&%Window0¢±&%Window0£±&%Window ?ð @> @È @È%°;&   @ž @’À0¤± &0¥± &0¦1&NSMutableDictionary1' NSDictionary&30§±& % MenuItem1°u0¨±& % ClipView(0)° 0©±& % MenuItem2°Œ0ª±& % MenuItem(12)0«±%0¬±&%Remove0­±&&&ÿ%’%0®±&%Box1°N0¯±& % MenuItem3°0°±&%Box2°[0±±& % MenuItem4°‘0²±& % MenuItem5°o0³±&%View°P0´±&%MenuItem°r0µ±& % MenuItem(0)°l0¶±& % MenuItem(5)0·±%0¸±& % Instantiate0¹±&&&ÿ%’%0º±& % TextField1°W0»±& % Panel Window°K0¼±& % TextField2°a0½±&%GormNSPopUpButton1°…0¾±& % TextField3°0¿±&%Button°{0À±& % TextField°R0Á±&%View(0)°?0±&%TableHeaderView(0)°,0ñ& % MenuItem(2)0ı%0ű& % Load Class0Ʊ&&&ÿ%’%0DZ& % MenuItem(7)0ȱ%0ɱ& % Operations0ʱ&&&ÿ%0˱0̱&%common_3DArrowDown’%0ͱ& % TableColumn1°#0α& % TableColumn20ϱ0б&%column1 BP A  GÃP0ѱ0Ò±&% °&&&&&&&& &&&&&&%’°°0Ó±0Ô±&%trois°°Ô&&&&&&&& &&&&&&%’°°!0Õ±& % TableColumn30Ö±0×±&%column2 BT A  GÃP0ر0Ù±&% °&&&&&&&& &&&&&&%’°°0Ú±0Û±&%three°°Û&&&&&&&& &&&&&&%’°°!0ܱ& % MenuItem(11)0ݱ%0Þ±&%Create Class Files0ß±&&&ÿ%’%0à±& % TextField(3)°š0á±&%TableCornerView(0)°.0â±&%GormNSPopUpButton°e0ã±& % ScrollView°0ä±&%View(2)°]0å±& % MenuItem(4)0æ±%0ç±& % Operations0è±&&&ÿ%°Ë’%0é±& % MenuItem(9)0ê±%0ë±& % Instantiate0ì±&&&ÿ%’%0í±& % TableColumn°0î±&%GormNSTableView° °J°I0ï±& % ClipView(1)°30ð±& % MenuItem(1)0ñ±%0ò±&%Subclass°Æ&&ÿ%’%0ó±& % MenuItem(6)0ô±%0õ±&%Remove0ö±&&&ÿ%’%0÷±&%Incompatibilities Window°0ø±&%Box(0)°A0ù±& % Window(0)°=0ú±& % Scroller(0)°00û±& % MenuItem(10)0ü±%0ý±& % Load Class°ß&&ÿ%’%0þ±& % TextField(2)°–0ÿ±&%View(1)°CP±&%NSOwnerP±& % GormDocumentP±& % MenuItem(3)P±%P±&%Create Class Files°Æ&&ÿ%’%P±& % MenuItem(8)P±%P±&%Subclass°ß&&ÿ%’%P± &DDP 1(NSNibConnector°À°³P ±(°º°³P ±(°°°³P ±(°¼°³P ±(°â°³P±(°´P±(°§P±(°¿°³P1)NSNibOutletConnector°J°ºP±&%gormAppVersionP±)°J°âP±& % targetVersionP±)°J°¿P±&%showIncompatibilitiesP1*NSNibControlConnector°¿°JP±&%showIncompatibilities:P±(°¾°³P±(°½°³P±(°©P±(°¯P±)°J°½P±& % archiveTypeP±*°½°JP ±&%selectArchiveType:P!±*°â°JP"±&%selectTargetVersion:P#±(°±P$±(°ãP%±(°î°¨P&±(°íP'±(°ÍP(±(°ÎP)±(°ÕP*±)°J°÷P+±&%iwindowP,±)°J°îP-±&%itableP.±)°î°JP/±& % dataSourceP0±)°î°JP1±&%delegateP2±(°²P3±)P4±&%NSOwner°÷P51+NSMutableString&%filePrefsWindowP6±)Ð4°®P7±+& % filePrefsViewP8±)Ð4°JP9±+&%filePrefsManagerP:±(°µP;±(°ðP<±(°ÃP=±(ÐP>±*°ðÐ4P?±&%createSubclass:P@±*°ÃÐ4PA±& % loadClass:PB±*ÐÐ4PC±&%createClassFiles:PD±(°åPE±(°¶PF±*°¶Ð4PG±&%instantiateClass:PH±(°óPI±*°óÐ4PJ±&%remove:PK±(°þ°³PL±(°à°³PM±)°J°àPN±&%fileTypePO±(°ÇPP±(ÐPQ±(°éPR±(°ûPS±(°ÜPT±(°ªPU±(°ùÐ4PV±(°Á°ùPW±(°ø°ÁPX±(°ÿ°øPY±)Ð4°ùPZ±+&%_windowP[±)Ð4°øP\±+& % selectionBoxP]±(°¨°ãP^±(°ú°ãP_±*°ú°ãP`±& % _doScroll:Pa±(°ï°ãPb±(°Â°ïPc±(°á°ãPd±(°ä°°Pe±&&°ù°>gorm-1.2.24/English.lproj/GormDocument.gorm/data.classes0000644000000000000000000000177413410616261021627 0ustar rootroot{ "## Comment" = "Do NOT change this file, Gorm maintains it"; FirstResponder = { Actions = ( "createClassFiles:", "createSubclass:", "instantiateClass:", "loadClass:", "remove:", "selectArchiveType:" ); Super = NSObject; }; GSNibContainer = { Actions = ( ); Outlets = ( ); Super = NSObject; }; GormDocument = { Actions = ( "createSubclass:", "loadClass:", "createClassFiles:", "instantiateClass:", "remove:" ); Outlets = ( selectionBox, filePrefsView, filePrefsManager, filePrefsWindow ); Super = NSDocument; }; GormDocumentWindow = { Actions = ( ); Outlets = ( ); Super = NSWindow; }; GormFilePrefsManager = { Actions = ( "showIncompatibilities:", "selectTargetVersion:", "selectArchiveType:" ); Outlets = ( showIncompatibilities, targetVersion, gormAppVersion, archiveType, iwindow, itable, fileType ); Super = NSObject; }; }gorm-1.2.24/English.lproj/GormDocument.gorm/data.info0000644000000000000000000000027013410616261021113 0ustar rootrootGNUstep archive0000300c:00000003:00000003:00000000:01GormFilePrefsManager1NSObject% 01NSString&%Latest Version0±& % Typed Streamgorm-1.2.24/English.lproj/GormInspectorPanel.gorm/0000755000000000000000000000000013410616261020476 5ustar rootrootgorm-1.2.24/English.lproj/GormInspectorPanel.gorm/objects.gorm0000644000000000000000000001074713410616261023026 0ustar rootrootGNUstep archive00002b5c:00000021:00000083:00000000:01GSNibContainer1NSObject01NSMutableDictionary1 NSDictionary&01NSString&%NSOwner0±&% GormInspectorsManager0±& %  GormNSPanel01GSWindowTemplate1GSClassSwapper0±&%NSPanel1NSPanel1 NSWindow1 NSResponder% ?€ A Cˆ CÕ€& % Dp€ D\01 NSView% ?€ A Cˆ CÕ€  Cˆ CÕ€&0 1 NSMutableArray1 NSArray&0 1NSBox%  Cˆ C  Cˆ CÂ&0 ± &0 ± %  Cˆ C  Cˆ CÂ&0 ± &01NSCell0±&01NSFont%&&&&&&&& %%0±% CÅ€ Cˆ @  Cˆ @& 0± &0± % @ @ C†   C† &0± &0±0±&°&&&&&&&& %%0±% CÆ€ Cˆ Að  Cˆ Að& 0± &0± %  Cˆ Að  Cˆ Að&0± &01 NSPopUpButton1NSButton1 NSControl% B† @@ C A°  C A°&0± &%01NSPopUpButtonCell1NSMenuItemCell1 NSButtonCell1 NSActionCell0±&°&&&&&&&&01NSMenu0 ±&0!± &0"1 NSMenuItem0#±& %  Attributes0$±&% 1&&ÿ%0%1NSImage0&±& % common_Nibble’%0'±0(±& %  Connections0)±&% 2&&ÿ%’%0*±0+±&% Size0,±&% 3&&ÿ%’%0-±0.±&% Help0/±&% 4&&ÿ%’%00±01±& %  Custom Class02±&% 5&&ÿ%’%%’03±&04±&&&&°"°°"%%%%%05±06±&°&&&&&&&& %%071NSColor08±&%NSNamedColorSpace09±&% System0:±&% windowBackgroundColor0;±&% Window0<±&% Panel°< C‰ Cå€ F@ F@%&   DÈ D–0=±& %  MenuItem10>±0?±& %  Connections0@±&% 2&&ÿ%’%0A±& %  MenuItem20B±0C±&% Size0D±&% 3&&ÿ%’%0E±& %  MenuItem30F±0G±&% Help0H±&% 4&&ÿ%’%0I±& %  MenuItem40J±0K±& %  Custom Class0L±&% 5&&ÿ%’%0M±& %  MenuItem5°"0N±& %  MenuItem6°'0O±& %  MenuItem7°*0P±& %  MenuItem8°-0Q±&% MenuItem0R±0S±& %  Attributes0T±&% 1&&ÿ%°%’%0U±& %  MenuItem9°00V±&% GSCustomClassMap0W±&0X±&% Box° 0Y±&% View1° 0Z±&% View2°0[±&% View3°0\±&% GormNSPopUpButton°0]±&% Box1°0^±&% View°0_±&% Box2°0`± &0a1NSNibConnector°0b±&%NSOwner0c±°^°0d±°X°^0e±°Y°X0f±°]°^0g±°Z°]0h±°Q0i±°=0j±°A0k±°E0l±°I0m±°_°^0n±°[°_0o±°\°[0p±°M0q±°N0r±°O0s±°P0t±°U0u1NSNibOutletConnector°b°X0v±& %  inspectorView0w±°b°_0x±& %  selectionView0y±°b°\0z±&% popup0{±°b°0|±&% panel0}1NSNibControlConnector°M°b0~±&% setCurrentInspector:0±°N°b°~0€±°O°b°~0±°P°b°~0‚±°U°b°~0ƒ1 GSMutableSet1 NSMutableSet1!NSSet&°gorm-1.2.24/English.lproj/GormInspectorPanel.gorm/data.classes0000644000000000000000000000073613410616261022774 0ustar rootroot{ "## Comment" = "Do NOT change this file, Gorm maintains it"; FirstResponder = { Actions = ( "setCurrentInspector:" ); Super = NSObject; }; GormInspectorsManager = { Actions = ( "setCurrentInspector:" ); Outlets = ( panel, popup, selectionView, inspectorView ); Super = IBInspectorManager; }; IBInspectorManager = { Actions = ( ); Outlets = ( currentMode, selectedObject ); Super = NSObject; }; }gorm-1.2.24/English.lproj/GormInspectorPanel.gorm/data.info0000644000000000000000000000032213410616261022261 0ustar rootrootGNUstep archive00002b5c:00000003:00000003:00000000:01GormFilePrefsManager1NSObject% 01NSString&% Latest Version0±& %  Typed Streamgorm-1.2.24/English.lproj/GormHelpInspector.gorm/0000755000000000000000000000000013410616261020327 5ustar rootrootgorm-1.2.24/English.lproj/GormHelpInspector.gorm/objects.gorm0000644000000000000000000000403613410616261022651 0ustar rootrootGNUstep archive00002c88:0000001b:00000038:00000000:01GSNibContainer1NSObject01 GSMutableSet1 NSMutableSet1NSSet&01GSWindowTemplate1GSClassSwapper01NSString&%NSPanel1 NSPanel1 NSWindow1 NSResponder% ?€ A Cˆ CÂ&% Ce Dˆ 01 NSView% ?€ A Cˆ C  Cˆ CÂ&01 NSMutableArray1NSArray&01 NSTextField1 NSControl% B C²€ C> A¨  C> A¨& 0± &%0 1NSTextFieldCell1 NSActionCell1NSCell0 ±&0 1NSFont%° &&&&&&&&0%’0 1NSColor0 ±&%NSNamedColorSpace0±&%System0±&%textBackgroundColor0±° °0±& % textColor’0±% @À C²€ B„ A  B„ A&0± &%0±0±& % Tool Tips:0±% A@°&&&&&&&&0%’0±° 0±&%System0±&%textBackgroundColor0±° °0±& % textColor’0±° 0±&%System0±&%windowBackgroundColor0±&%Window0 ±&%Inspector Window°  @@ B F@ F@%&   DÈ D–0!± &0"± &0#1NSMutableDictionary1 NSDictionary&0$±& % TextField(0)°0%±&%NSOwner0&±&%GormHelpInspector0'±& % InspectorWin°0(±& % TextField(1)°0)±&%View(0)°0*± &0+1NSNibConnector°'0,±&%NSOwner0-±°)°'0.±°$°)0/±°(°)001NSNibControlConnector°$°,011NSMutableString&%ok:021NSNibOutletConnector°$°,03±&%delegate04±°,°'05±&%window06±°,°$07±&%toolTip08±&gorm-1.2.24/English.lproj/GormHelpInspector.gorm/data.classes0000644000000000000000000000025213410616261022616 0ustar rootroot{ "## Comment" = "Do NOT change this file, Gorm maintains it"; GormHelpInspector = { Actions = ( ); Outlets = ( toolTip ); Super = IBInspector; }; }gorm-1.2.24/English.lproj/GormHelpInspector.gorm/data.info0000644000000000000000000000027013410616261022114 0ustar rootrootGNUstep archive00002c88:00000003:00000003:00000000:01GormFilePrefsManager1NSObject%01NSString&%Latest Version0±& % Typed Streamgorm-1.2.24/English.lproj/GormPalettePanel.gorm/0000755000000000000000000000000013410616261020126 5ustar rootrootgorm-1.2.24/English.lproj/GormPalettePanel.gorm/objects.gorm0000644000000000000000000000473313410616261022454 0ustar rootrootGNUstep archive00002db4:0000001d:00000040:00000000:01GSNibContainer1NSObject01 GSMutableSet1 NSMutableSet1NSSet&01GSWindowTemplate1GSClassSwapper01NSString&%NSPanel1 NSPanel1 NSWindow1 NSResponder% ?€ A C‡ C“€& % DP€ Dz€01 NSView% ?€ A C‡ C“€  C‡ C“€&01 NSMutableArray1NSArray&01 GSCustomView1 GSNibItem0±&%GormPaletteView ¿€ ¿€ Cˆ CJ&%0 1 NSScrollView% CI C‡€ B¼  C‡€ B¼&0 ± &0 1 NSClipView% @ @ C…€ BŽ  C…€ BŽ&0 ± &0 ±0±&%GormPaletteMatrix  B B,&01NSColor0±&%NSCalibratedWhiteColorSpace >ª~ú ?€01 NSScroller1 NSControl% @ B” C…€ A  C…€ A&0± &%01NSCell0±&01NSFont%&&&&&&&&&&&&&&&’° % A A A A °0±0±&%NSNamedColorSpace0±&%System0±&%windowBackgroundColor0±&%Window0±&%Palettes° Cˆ Cˆ F@ F@%01NSImage0±&%NSApplicationIcon&  DÈ D–0± &0± &0 1NSMutableDictionary1 NSDictionary& 0!±&%NSOwner0"±&%GormPalettesManager0#±& % Scroller(1)0$±% @ @ A B€  A B€&0%± &%0&±°°&&&&&&&&&&&&&&&’0'±& % ScrollView(0)° 0(±&%Panel(0)°0)±& % ClipView(0)° 0*±& % Scroller(0)°0+±& % CustomView(1)° 0,±& % CustomView(0)°0-±&%View(0)°0.± &  0/1NSNibConnector°(00±&%NSOwner01±°-°(02±°,°-031NSNibOutletConnector°0°(04±&%panel05±°0°,06±&%dragView07±°+°-08±°'°-09±°)°'0:±°*°'0;1NSNibControlConnector°*°'0<±& % _doScroll:0=±°#°'0>±°#°'0?±& % _doScroll:0@±&gorm-1.2.24/English.lproj/GormPalettePanel.gorm/data.classes0000644000000000000000000000070613410616261022421 0ustar rootroot{ "## Comment" = "Do NOT change this file, Gorm maintains it"; GormPaletteMatrix = { Actions = ( ); Outlets = ( ); Super = NSMatrix; }; GormPalettePanel = { Actions = ( ); Outlets = ( ); Super = NSPanel; }; GormPaletteView = { Actions = ( ); Outlets = ( ); Super = NSView; }; GormPalettesManager = { Actions = ( ); Outlets = ( panel, dragView, selectionView ); Super = NSObject; }; }gorm-1.2.24/English.lproj/GormPalettePanel.gorm/data.info0000644000000000000000000000027013410616261021713 0ustar rootrootGNUstep archive00002db4:00000003:00000003:00000000:01GormFilePrefsManager1NSObject%01NSString&%Latest Version0±& % Typed Streamgorm-1.2.24/English.lproj/GormPreferences.gorm/0000755000000000000000000000000013410616261020011 5ustar rootrootgorm-1.2.24/English.lproj/GormPreferences.gorm/objects.gorm0000644000000000000000000003440613410616261022337 0ustar rootrootGNUstep archive000f4240:0000002c:0000011e:00000006:01GSNibContainer1NSObject01 NSMutableSet1NSSet&01GSWindowTemplate1GSClassSwapper01NSString&% NSPanel1NSPanel1 NSWindow1 NSResponder% ?ð @" @uà @rðJI @pð @‰01 NSView% ?ð @" @uà @rð  @uà @rðJ01 NSMutableArray1 NSArray&01NSBox% @nÀ @uà @H€  @uà @H€J0± &0 ± % @ @ @u@ @C€  @u@ @C€J0 ± &0 1 NSPopUpButton1NSButton1 NSControl% @\ @, @]À @4  @]À @4J0 ± &%0 1NSPopUpButtonCell1NSMenuItemCell1 NSButtonCell1 NSActionCell1NSCell0±&%Button01NSFont% A@&&&&&&JJ01NSMenu0±&0± &01 NSMenuItem0±&%General0±&JJÿI01NSImage @& @ 01NSColor0±&% NSCalibratedWhiteColorSpace 0± &01NSBitmapImageRep1 NSImageRep0±&% NSDeviceRGBColorSpace @& @ II I01NSData&II*t€8 Oø‚ ‚ÁàИd €"Q8”&)ŒFb@8à*@ˆÆbÑ©$“%R™\ŽK/ŠIâ¢d²k ŽÁSÐ|”M&ÏùE!FR(”yœ®…¡TiÕ9­J«TÆ*Ô:Ýv± þÿ þlR’I0±0±&%Headers°JJÿI’I0±0 ±&%Shelf0!±&JJÿI’I0"±0#±&%Palettes0$±&JJÿI’I0%±0&±& % Guidelines0'±&JJÿI’I0(±0)±&%Plugins0*±&JJÿI’I&&&&&&I’0+±&0,±&&&& &&°°°%%%%%0-±% À$  @uà @  @uà @J0.± &0/± % @ @ @u   @u J00± &01±02±&%Box03±%&&&&&&JJ&&&&&& @ @%%041NSTextFieldCell05±&%Box°&&&&&&JJ &&&&&&I’06±07±&% NSNamedColorSpace08±&% System09±&% windowBackgroundColor0:±°70;±&%System0<±& % textColor @ @%%0=±% ?ð @uà @m   @uà @m J0>± &0?± % @ @ @u@ @l`  @u@ @l`J0@± &0A±0B±&%Box°&&&&&&JJ &&&&&&I’°6°: @ @%%°60C±&%Window0D±& % Preferences°D ¿ð @ @Ç @Ã|I0E±0F±&% NSApplicationIcon&   @ž @’À0G± &0H± &0I1 NSMutableDictionary1! NSDictionary&0J±&%Box20K±% @G€ @RÀ @o  @S  @o  @SJ0L± &0M± % @ @ @mà @I€  @mà @I€J0N± &0O±% @$ @8 @k` @0  @k` @0J0P± &%0Q±0R±&%Create Backup file when saving0S±0T1"NSMutableString&%GSSwitch°&&&&&&JJ&&&&&&I’0U±&0V±&0W±0X±"&%GSSwitchSelected&&& &&0Y±0Z±& % Save Options°&&&&&&JJ &&&&&&I’°6°: @ @%%0[±&%Button80\±% @W€ @ @L @8  @L @8J0]± &%0^±0_±&%Add°&&&&&&JJ&&&&&&I’0`±&0a±&&&& &&0b±&%Button10c±% @9 @B€ @L @0  @L @0J0d± &%0e±0f±&%Switch°S°&&&&&&JJ&&&&&&I’0g±&0h±&°W&&& &&0i±& % MenuItem5°"0j±&%Box4°=0k±&%Button30l±% @G€ @. @L @8  @L @8J0m± &%0n±0o±&%Add°&&&&&&JJ&&&&&&I2 addHeader:v24@0:8@160p±&0q±&&&& &&0r±&%Button50s±% @F @ @]@ @0  @]@ @0J0t± &%0u±0v±&%Show Inspector°S°&&&&&&JJ&&&&&&I’0w±&0x±&°W&&& &&0y±&% NSOwner0z±&%GormPrefController0{±& % MenuItem2°0|±&%MenuItem°0}±&%Box10~±% @Q€ @c€ @h` @S@  @h` @S@J0± &0€± % @ @ @f  @J  @f  @JJ0± &0‚±% @F @9 @]@ @0  @]@ @0J0ƒ± &%0„±0…±& % Show Palettes°S°&&&&&&JJ&&&&&&I’0†±&0‡±&°W&&& &&°s0ˆ±0‰±&%Startup Options°&&&&&&JJ &&&&&&I’°6°: @ @%%0б&%Button70‹±% @$ @iÀ @a€ @0  @a€ @0J0Œ± &%0±0ޱ&%Preload Headers°S°&&&&&&JJ&&&&&&I’0±&0±&°W&&& &&0‘±& % MenuItem40’±0“±&%Item0”±&JJÿI0•±0–±"&%GSMenuSelected0—±0˜±"& % GSMenuMixed’I0™±& % MenuItem(0)°(0š±&%Box30›±% @$ @$ @t  @p   @t  @p J0œ± &0± % @ @ @sÀ @m   @sÀ @m J0ž± &°‹0Ÿ1# NSBrowser% @D @A€ @n @cà  @n @càJ0 ± &0¡1$ NSScroller% @ ?ð @m€ @2  @m€ @2J0¢± &%0£±0¤±&°&&&&&&JJ&&&&&&J°Ÿ2 scrollViaScroller:v24@0:8@160¥1% NSScrollView% @7 @n @\@  @n @\@J0¦± &0§1& NSClipView% @5 @ @k @[@  @k @[@J0¨1'NSMatrix%  @k @Y  @k @YJ°§0©± &%0ª±0«±&°&&&&&&JJ&&&&&&I’% @k @Y 0¬±°7°80­±&% controlBackgroundColor°¬0®±& % NSBrowserCell0¯1( NSBrowserCell°¤°&&&&&&JJ&&&&&&%%0°± &°Ÿ2 doClick:v24@0:8@162 doDoubleClick:v24@0:8@16’0±± &°¨°¬0²±$% @ @ @2 @[@  @2 @[@J0³± &%0´±°¤°&&&&&&JJ&&&&&&J°¥2 _doScroll:v24@0:8@16°§I A A A A °²%0µ±(°¤°&&&&&&JJ&&&&&&°¯0¶±&% NSMatrix0·±&%/% @Y°¡ @ ?ð @m€ @2 @n @\@’’0¸± &0¹1)NSBrowserColumn°¥°¨%°·%%°\0º±% @d` @ @L @8  @L @8J0»± &%0¼±0½±&%Remove°&&&&&&JJ&&&&&&I’0¾±&0¿±&&&& &&0À±0Á±&%Preload Headers°&&&&&&JJ &&&&&&I’°6°: @ @%%0±&%Button9°º0ñ&%GormNSBrowser1°Ÿ0ı&%Button2°‚0ű& % MenuItem6°%0Ʊ&%Box5°-0DZ&%Button0ȱ% @$ @j @^À @1  @^À @1J0ɱ &%0ʱ0˱&%Preload Headers°S°&&&&&&JJ&&&&&&I2 setGeneralPreferences:v12@0:4@80̱&0ͱ&°W&&& &&0α&%Button40ϱ% @` @. @L @8  @L @8J0б &%0ѱ0Ò±&%Remove°&&&&&&JJ&&&&&&I’0Ó±&0Ô±&&&& &&0Õ±& % MenuItem1°0Ö±& % GormNSBrowser0×±#% @F @m @bà  @m @bàJ-0ر &0Ù±$% @ ?ð @l€ @2  @l€ @2J0Ú± &%0Û±0ܱ&°&&&&&&JJ&&&&&&J°×²0ݱ%% @7 @m @Z@  @m @Z@J0Þ± &0ß±&% @5 @ @j @Y@  @j @Y@J0à±'%  @j @Y  @j @YJ°ß0á± &%0â±0ã±&°&&&&&&JJ&&&&&&I’% @j @Y °¬°¬0ä±& % NSBrowserCell0å±(°Ü°&&&&&&JJ&&&&&&%%0æ± &°×²²’0ç± &°à°¬0è±$% @ @ @2 @Y@  @2 @Y@J0é± &%0거ܰ&&&&&&JJ&&&&&&J°Ý²°ßI A A A A °è%0ë±(°Ü°&&&&&&JJ&&&&&&°å°¶0ì±&%/% @Y°Ù @ ?ð @l€ @2 @m @Z@’’0í± &0î±)°Ý°à%°ì%%0ï±&%Box°0ð±&%Button6°O0ñ±&%Panel°0ò±&%GormNSPopUpButton° 0ó± &0ô1*NSNibConnector°Ç0õ±*°Ö0ö±*°k0÷±*°Î0ø±*°b0ù±*°}0ú±*°Ä0û±*°r0ü±*°J0ý±*°ð0þ±*°š0ÿ±*°ŠP±*°ÃP±*°[P±*°ÂP±*°ïP±*°jP±*°òP±*°|P±*°ÕP±*°{P ±*°ÆP ±*°iP ±*°ÅP 1+NSNibOutletConnector°ñ°òP ±"&%initialFirstResponderP1,NSNibControlConnector°òP±&% NSOwnerP±"& % popupAction:P±+аjP±"&%prefBoxP±+аòP±"&%popupP±+аñP±&%panelP±*°™P± &gorm-1.2.24/English.lproj/GormPreferences.gorm/data.classes0000644000000000000000000000032413410616261022300 0ustar rootroot{ "## Comment" = "Do NOT change this file, Gorm maintains it"; GormPrefController = { Actions = ( "popupAction:" ); Outlets = ( popup, prefBox, panel ); Super = NSObject; }; }gorm-1.2.24/English.lproj/GormPreferences.gorm/data.info0000644000000000000000000000027013410616261021576 0ustar rootrootGNUstep archive000f4240:00000003:00000003:00000000:01GormFilePrefsManager1NSObject%01NSString&%Latest Version0±& % Typed Streamgorm-1.2.24/English.lproj/GormPrefGeneral.gorm/0000755000000000000000000000000013410616261017742 5ustar rootrootgorm-1.2.24/English.lproj/GormPrefGeneral.gorm/objects.gorm0000644000000000000000000001056613410616261022271 0ustar rootrootGNUstep archive000f4240:0000001e:00000064:00000000:01GSNibContainer1NSObject01 NSMutableSet1NSSet&01GSWindowTemplate1GSClassSwapper01NSString&% NSPanel1NSPanel1 NSWindow1 NSResponder% ?ð @" @uà @o@J I @l @ƒ€01 NSView% ?ð @" @uà @o@  @uà @o@J01 NSMutableArray1 NSArray&01NSBox% @P€ @b @k @T€  @k @T€J0± &0 ± % @ @ @i` @L€  @i` @L€J0 ± &0 1NSButton1 NSControl% @C€ @6 @aÀ @1  @aÀ @1J0 ± &%0 1 NSButtonCell1 NSActionCell1NSCell0±&%Create backup file01NSImage01NSMutableString&%GSSwitch01NSFont% A@&&&&&&JJ&&&&&&I’0±&0±&0±0±&%GSSwitchSelected&&& &&01NSTextFieldCell0±& % Save Option°&&&&&&JJ&&&&&&I’01NSColor0±&% NSNamedColorSpace0±&% System0±&% windowBackgroundColor0±°0±&%System0±& % textColor @ @%%0±% @P€ @I @k @V@  @k @V@J0 ± &0!± % @ @ @i` @P  @i` @PJ0"± &0#1NSMatrix% @I€ @* @YÀ @D  @YÀ @DJ0$± &%0%±0&±&0'±%&&&&&&JJ&&&&&&I’% @YÀ @4 0(±°°0)±&% controlBackgroundColor°(0*±& % NSButtonCell0+±0,±&%Radio0-±0.±&%GSRadio°'&&&&&&JJ&&&&&&I’0/±&00±&01±02±&%GSRadioSelected&&& &&%%03± &04±05±& % Outline View°-°'&&&&&&JJ&&&&&&I’06±&07±&°1&&& &&08±09±& % Browser View°-°'&&&&&&JJ&&&&&&I’0:±&0;±&°1&&& &&’’’°40<±0=±&%Default Classes Interface°'°=&&&&&&JJ&&&&&& @ @%%°0>±&%Window0?±&%General°? ¿ð À" @Ç @ÃxI0@±0A±&% NSApplicationIcon&   @ž @’À0B± &0C± &0D1NSMutableDictionary1 NSDictionary&0E±&%Button2° 0F±&%Box2°0G±&% NSOwner0H±&%GormGeneralPref0I±& % GormNSPanel°0J±&%Matrix°#0K±&%Box1°0L± &  0M1NSNibConnector°I0N±&% NSOwner0O±°K0P±°E0Q1NSNibOutletConnector°N°I0R±&%window0S1NSNibControlConnector°E°N0T±& % backupAction:0U±°N°E0V±& % backupButton0W±°F0X±°J0Y±°J°N0Z±&%classesAction:0[±°N°J0\±&%interfaceMatrix0]±°E°J0^±& % nextKeyView0_±°J°E°^0`±°I°E0a±&%initialFirstResponder0b±&gorm-1.2.24/English.lproj/GormPrefGeneral.gorm/data.classes0000644000000000000000000000113113410616261022226 0ustar rootroot{ "## Comment" = "Do NOT change this file, Gorm maintains it"; FirstResponder = { Actions = ( "archiveAction:", "classesAction:", "consistencyAction:", "orderFrontFontPanel:" ); Super = NSObject; }; GormGeneralPref = { Actions = ( "palettesAction:", "inspectorAction:", "backupAction:", "archiveAction:", "classesAction:", "consistencyAction:" ); Outlets = ( window, palettesButton, inspectorButton, backupButton, archiveMatrix, interfaceMatrix, checkConsistency ); Super = NSObject; }; }gorm-1.2.24/English.lproj/GormPrefGeneral.gorm/data.info0000644000000000000000000000027013410616261021527 0ustar rootrootGNUstep archive000f4240:00000003:00000003:00000000:01GormFilePrefsManager1NSObject%01NSString&%Latest Version0±& % Typed Streamgorm-1.2.24/English.lproj/GormClassInspector.gorm/0000755000000000000000000000000013410616261020504 5ustar rootrootgorm-1.2.24/English.lproj/GormClassInspector.gorm/objects.gorm0000644000000000000000000005775213410616261023043 0ustar rootrootGNUstep archive0000300d:00000029:00000150:00000003:01GSNibContainer1NSObject01 NSMutableSet1NSSet&01GSWindowTemplate1GSClassSwapper01NSString&% NSWindow1NSWindow1 NSResponder% ?ð @" @q @x@&% @xÐ @…01 NSView% ?ð @" @q @x@  @q @x@&01 NSMutableArray1 NSArray&01 NSTabView% @$ @$ @o€ @j   @o€ @j &20± &0 ± % ?à ?ð @o@ @hP  @o@ @hP&0 ± &0 1 NSScrollView% @$ @F @lÀ @a  @lÀ @a&0 ± &0 1 NSClipView% @5 @8 @ià @Wà ?ð  @ià @Wà&0± &01 NSTableView1 NSControl% ?à ¿à @ià @d   @ià @d &0± &%01NSCell0±&01NSFont% A@&&&&&&&&&&&&&&0± &01 NSTableColumn0±&%column2 CO A  GÃP01NSTableHeaderCell1NSTextFieldCell1 NSActionCell0±& % Outlet Names°&&&&&&&& &&&&&&%’01NSColor0±&% NSNamedColorSpace0±&% System0±&% controlShadowColor0±°°0±&% windowFrameTextColor0±0 ±&0!±%&&&&&&&& &&&&&&%’0"±°0#±&%System0$±&%textBackgroundColor0%±°°#0&±& % textColor0'±°°0(±& %  gridColor0)±°°0*±&% controlBackgroundColor0+1NSTableHeaderView%  @ià @6  @ià @6&0,± &0-1GSTableCornerView% @ @ @3 @6  @3 @6&0.± &%% A€’ @ @0/± &°)00±% @5 @ @ià @6  @ià @6&01± &°+02±°°03±& %  controlColor041 NSScroller% @5 @^  @ià @2  @ià @2&05± &%06±07±&°&&&&&&&&&&&&&&&° 2 _doScroll:v24@0:8@1608±% @ @8 @2 @\   @2 @\ &09± &%0:±°°&&&&&&&&&&&&&&&° ²°-° % A A A A °4°8°00;1NSButton% @` @$ @L€ @8  @L€ @8&!0<± &%0=1 NSButtonCell0>±&%Remove0?±% A@&&&&&&&&&&&&&&%2 removeAction:v24@0:8@160@±&0A±&&&& &&0B±% @Q@ @$ @L @8  @L @8&$0C± &%0D±0E±&%Add°?&&&&&&&&&&&&&&%2 addAction:v24@0:8@160F±&0G±&&&& &&0H± &0I1 NSTabViewItem0J±&%Outlets0K±&%Outlets° %°0L±0M±&%Actions0N±&%Actions0O± % ?à ?ð @o@ @hP  @o@ @hP&0P± &0Q±% @$ @F @lÀ @a  @lÀ @a&0R± &0S±% @5 @8 @ià @Wà  @ià @Wà&0T± &0U±%  @ià @d   @ià @d &0V± &%0W±0X±&°&&&&&&&&&&&&&&0Y± &0Z±0[±&%column2 CO A  GÃP0\±0]±& % Action Names°&&&&&&&& &&&&&&%’°°0^±° °!&&&&&&&& &&&&&&%’°"°%°'°)0_±%  @ià @6  @ià @6&0`± &0a±% @ @ @3 @6  @3 @6&0b± &%% A€’ @ @0c± &°)0d±% @ @8 @2 @\   @2 @\ &0e± &%0f±°X°&&&&&&&&&&&&&&&°Q²0g±% @5 @ @ià @6  @ià @6&0h± &°_°20i±% @5 @^  @ià @2  @ià @2&0j± &%0k±°7°&&&&&&&&&&&&&&&°Q²°a°S% A A A A °i°d°g0l±% @` @$ @L€ @8  @L€ @8&!0m± &%0n±0o±&%Remove°&&&&&&&&&&&&&&%’0p±&0q±&&&& &&0r±% @Q @$ @L @8  @L @8&$0s± &%0t±0u±&%Add°&&&&&&&&&&&&&&%’0v±&0w±&&&& &&%°°?%%0x1 NSTextField% @v€ @Q@ @4  @Q@ @4& 0y± &%0z±0{±&%Class:0|±% A`&&&&&&&& &&&&&&%’°"°%’0}±% @S@ @v€ @g @4  @g @4& 0~± &%0±0€±&°&&&&&&&& &&&&&&%’°"°%’0±% @$ @p @o€ @WÀ  @o€ @WÀ&0‚± &0ƒ±% @5 @8 @l  @Q@  @l  @Q@&0„± &0…±%  @l  @d   @l  @d &0†± &%0‡±0ˆ±&°!&&&&&&&&&&&&&&0‰± &0б0‹±&%column1 Ce A  GÃP0Œ±0±& % Parent Class0ޱ% &&&&&&&& &&&&&&%’°°0±0±&%quatre°!°&&&&&&&& &&&&&&%’°"°%°'°)0‘±%  @l  @6  @l  @6&0’± &0“±% @ @ @3 @6  @3 @6&0”± &%% A€’ @ @0•± &°)0–±% @ @8 @2 @Q@  @2 @Q@&0—± &%0˜±°ˆ°!&&&&&&&&&&&&&&&°²0™±% @5 @ @l  @6  @l  @6&0š± &°‘°2°“°ƒ% A A A A °–°™0›±% @iÀ @l  @L @8  @L @8&)0œ± &%0±0ž±&%Select°?&&&&&&&&&&&&&&%’0Ÿ±&0 ±&&&& &&0¡±% @$ @là @Y@ @4  @Y@ @4&.0¢± &%0£±0¤±&°!&&&&&&&& &&&&&&%’°"°%’0¥±% @]€ @l  @L @8  @L @8&-0¦± &%0§±0¨±&%Search°?&&&&&&&&&&&&&&%’0©±&0ª±&&&& &&0«±°°0¬±&% windowBackgroundColor0­±&%Window0®±&%Inspector Window°® ?ð @5 @È @È%0¯1 NSImage 0°±0±±&% NSCalibratedWhiteColorSpace 0²± &0³1!NSBitmapImageRep1" NSImageRep0´±&% NSDeviceRGBColorSpace @H @H%%0%00µ1#NSData&$š$šII*$§[=¿T8þŠJ2þR-!k§[=¿žU:þ‹K3þxB-ÿH'ÿR-!k§[=¿šS7þˆJ2ÿxB-ÿH'ÿ/ÿ ?§[=¿šS7ÿ†I2ÿxB-ÿH'ÿ/ÿ ?§[=¿™S7ÿ…H0þxB-ÿH'ÿ/ÿ ?§[=¿™R7þ†I2ÿxB-ÿH'ÿ/ÿ ?§[=¿™S7þ‡I0þxB-ÿH'ÿ/ÿ ?§[=¿˜R7þ‡I2þxB-ÿH'ÿ/ÿ ?§[=¿˜R7ÿ…H0þxB-ÿH'ÿ/ÿ ?¨[>ÿX/!ÿj:)ÿH'ÿ/ÿ ?D49ÿ  ?hft¿{y‰ÿ<;Dÿ ?hft¿€}ÿ<;Dÿ ?™¯ÿ<;Dÿ ?™¯ÿ43:ÿ""""™¯ÿ43:ÿzzzz°°°¶ÅÅÅÍÅÅÅÍáááûäääÿðððÿíííÿÙÙÙæÆÆÆÍ±±±¶""""EEEEEEEEEEEE™¯ÿ43:ÿŸŸŸŸŸŸŸŸŸŸŸŸÖÖÖæçççÿÜÜÜÿÚÚÚÿÚÚÚÿÛÛÛÿÛÛÛÿÚÚÚÿÚÚÚÿØØØÿËËËÿËËËÿ–––ÿ555»222t™¯ÿ43:ÿ0?55hhhiiiÝÝÝÿÚÚÚÿÕÕÕÿÓÓÓÿÒÒÒÿÒÒÒÿÑÑÑÿÑÑÑÿÑÑÑÿÑÑÑÿÎÎÎÿÏÏÏÿ³³³ÿ›››ÿ‡‡‡ÿyyyÿVVVÝ777?™¯ÿ43:ÿ~=0¿¸rdÿ¼¤ŸÿÔÓÓÿØØØÿÐÏÏÿÑÑÑÿÑÑÑÿÒÒÒÿÔÔÔÿÒÒÒÿÏÏÏÿÌÌÌÿÏÏÏÿÔÔÔÿ×××ÿ¿¿¿ÿ¥¥¥ÿŸŸŸÿ“““ÿ‰‰‰ÿ‚‚‚ÿxxxÿUUUÝ444?/17?Œ‰¿µ²Êÿ43:ÿ5„?0þ¥\MþÁ·µÿ·°¯ÿÃÃÃÿÎÊÈÿÑÑÑÿÒÒÒÿÔÔÔÿÒÒÒÿÐÐÐÿÐÐÐÿÕÕÕÿÐÐÐÿÆÆÆÿ©©©ÿ£££ÿŸŸŸÿœœœÿ———ÿŽŽŽÿ……†ÿzz{ÿ]]]ÿQQQmmm_bnÀÄÝÿ¯²Èÿ¡¡·ÿœ™¯ÿ:9@ÿ5‚?0þ‡I>þ¥’ÿ’e]ÿ·‚xÿÐÎÎÿ×××ÿÑÑÑÿÑÑÑÿÕÕÕÿÐÐÐÿÏÏÏÿÐÐÐÿÀÀÀÿ¥¥¥ÿ¥¥¥ÿ£££ÿ   ÿžžžÿÿ™š›ÿ™™ÿ˜™žÿ   ÿ±³ÀÿÀÄÝÿŸ µþxw‡þvt„ÿsqÿpo}þ66<ÿ5ƒ?2þ…A3þˆQFÿ…A4þ‹H:þ²Ÿœÿ°‰ÿ»¸¸ÿÐÐÐÿÛÛÛÿÑÑÑÿÖÖÖÿÎÎÎÿ®®®ÿŸŸŸÿŸŸŸÿ¡¡¡ÿ   ÿ£££ÿžžžÿ   ÿ¦¨¯ÿ¸»ÎÿÀÄÝÿ¡¢¸ÿ|z‹þzy‰ÿwu…þtr‚þqpþbaoþ++0¿5„?2ÿ†@2ÿ‡@2þ‡A3þ‰B3ÿŠC4þE6þ¤ƒ}þÇÆÆÿÔÔÔÿÐÐÐÿÒÒÒÿ²²²ÿ¤¤¤ÿŸŸŸÿŸŸŸÿ¢¢¢ÿŸŸŸÿžžžÿ×××ÿééìÿÞàçÿ²²¿ÿ‘ÿ}|ÿzxŠþxw‡ÿutƒþrq€þpn}þVT_ÿ=,,ê ˆ5…@2þ†@3þ‡A3þˆA3þŠJ<þ‰NBÿŽD6þH:þ¹Ÿ›þÇÅÅÿ Žþ•‰†ÿ™’‘ÿŸ›šÿœ™˜ÿ žÿ£ ŸÿØÓÒÿòòòÿóóóÿéééÿäääÿàààÿÄÄÄÿ‰‰‘ÿƒ‚Žþ}|ˆÿtrþqo~þnm{ÿ::Bÿf4)þa2'þ\/&þW*!¿55†@2þ‡A3þˆA3þ‰C4þ¤€yþ‰c\þE6þE6þ­ˆ‚þ‘ÿÀ¤ŸÿÛÌÉþõõõÿóóóÿòòòÿóóóÿïïïÿìììÿãããÿàààÿ···ÿ¼¼¼ÿ±±±ÿ¼¼¼ÿ¿¿¿ÿ«««ÿ¥¤¨ÿyx€þsr|þ`_mþF;?þf4)þd3)þo4)þz:-þ…@2þw:-þV* ¿55‡@3þ‡A3þˆA3þŠC4þ¦‚zþf^þE6þ’F7þ”K<þÛÐÏþóóóÿîîîÿèèèÿßßßÿÖÖÖÿÍÍÍÿÈÈÈÿËËËÿÇÇÇÿÆÆÆÿ»»»ÿÂÂÂÿ¸¸¸ÿºººÿ»»»ÿªªªÿ¸¸¸ÿ¨¨¨ÿÇÇÇÿ›››þtihþb/$þi3'þv8,þ~ÿdbqþihvþFEOÿQ-)þY)!þW)þ`/$ÿk3'ÿq6*þn4)þl3'þi2'þf0&þc/$þ`-$þY*!þ)5ŠC4þŒC4þD4þE6þ’F7þ•H7þƦ¡þëëëÿØØØÿ¼¼¼ÿÔÔÔÿÂÂÂÿ···ÿ©©©ÿ±±±ÿÅÅÅÿÎÎÎÿÂÂÂÿºººÿ¸¸¸ÿÿ’’’ÿkkkÿ)))þLJRþkjxþihvÿhguþ::Bÿ\/&þ[-$þY-$þc/&ÿl3'þo4)ÿl3'ÿj2'þg2&þd0$þa/$þ^-#þX*!þ)5„@2þD4þE6þ‘F7þ”H7þ—I8þÚÅÂþëëëÿÒÒÒÿ¸¸¸ÿ¬¬¬ÿ°°°ÿÄÄÄÿ­­­ÿ¸¸¸ÿºººÿ¸¸¸ÿÆÆÆÿ²²²ÿƒƒƒÿ{{{ÿ[[[ÿ322þQPZþ^]jþjhwþhguþQP[þK33ÿ\-&þW)þ_/$þj3'þm3'þm4)þj3'ÿh2&þd0&þb/$þ_-#þ],#þX*!ÿ)P'¿~>>þdddÿ´´´ÿ>>?ÿ87?þ4$$þE)&þ_-#þ`0'þ_0&ÿ]/&ÿ^/&þ`/&ÿ`/&þc0&þj2'þn3'þk3'þh2&ÿd0$ÿa/$ÿ^-#þ\,!þZ,!þX*!þU)þT)ÿ)ttt³³³ÿ©©©ÿ‰‰‰ÿtttÿzzzÿ¯¯¯ÿ¯¯¯ÿ¹¹¹ÿ‡‡‡ÿ;;;ÿrqyþjhwþPPZÿ43:ÿªªªÿC@?ÿw9,ÿc2)þb2)þ^,#þ_0&þd2'þg2'þh2'ÿk3)þl3)þl3)þl3'ÿl3'þi2'þf0&ÿc/$ÿ_-#þ],#þZ,!þX*!þW)þT)þS)þ)rrrŸŸŸÿ€€€ÿ```ÿFFFû000úŠŠŠÿÇÇÇÿ¯¯¯ÿmmmÿ\[aÿ<;CÿA)'þ^3,þ‘I:þ°°°ÿ:76þv8,þ_-$þb2'þg2'þl4)þr7*þs7*þs7*þw8,þt7,þq6*þn4)þk3'ÿg2&ÿd0$ÿ`-$þ],#þ[,!ÿX*!þW)þU)þS'þS'ÿ)ÁÁÁúYYYøò777ïXWcûKJSþ|||ÿÊÊÊÿ¦¦¦ÿSSSÿ\2,þ‚KDþD4þ‘I:þ“I;þ¯¯¯ÿA?>þ~>0þb2)þf2'þp6*þx:-þy:-þ{;-þx:-þv9,ÿs7*þo4)þl3'þi2&þf0&þc/$ÿ_-#ÿ\,#þY*!þW)þT)þS'þR'þS'ÿ)TR^|z‡ô@?Gↄ–þŒŠþ\Zgþ<;CþŽŽŽÿÐÐÐÿ¯¯¯ÿJJJÿm4)þD4þE6þ˜J;þ˜UIþ†PEþvI@ÿq:/ÿl4)þm4)þx:,þ};/þ{:-þy:-þw9,ÿt7*þq6*ÿm4)þj3'þh2&þc0&þa/$ÿ]-#þ[,!ÿX*!þV)ÿT)þR'þR'þR'þ)0/5?ª§¾þˆ‡™þ_^kÿCBJÿ43:ÿ?ˆˆˆÿ¸¸¸ÿ‚‚‚ÿQQQÿ ˆ^-#þ’I:þ¡O>þ¬SBÿ£P?þ‘H7ÿ€?2þp6*þs7*þ0þ|;/þy:-þp6*þf0&þd0&ÿc/&ÿ`/$þ_-$þ]-#þ\,#þT)!ÿT)!ÿT)!ÿT)!ÿT)!ÿT)!ÿT)!ÿ)))) ?h3'¿z;/ÿT)!ÿT)!ÿT)!ÿ`/$ÿ`/$ÿ))))) ? þÿ00’$$R&   @” @…0¶± &0·± &0¸1$NSMutableDictionary1% NSDictionary&0¹±&%GormNSTableView2°U0º±& % TableColumn70»±0¼±&%column2 C5 A  GÃP0½±0¾±&% °Ž&&&&&&&& &&&&&&%’°2°0¿±0À±&%two°!°À&&&&&&&& &&&&&&%’°"°%0Á±&%Button5°¥0±&% NSOwner0ñ&%GormClassInspector0ı& % TextField°x0ű&%GormNSTableView3°…0Ʊ&%Button°;0DZ&%TabView°0ȱ& % InspectorWin°0ɱ& % ScrollView° 0ʱ& % ScrollView1°Q0˱& % ScrollView2°0̱& % TableColumn10ͱ0α&%column2 C A  GÃP0ϱ0б&% °&&&&&&&& &&&&&&%’°°0ѱ0Ò±&%nine°°Ò&&&&&&&& &&&&&&%’°"°%0Ó±& % TextField1°}0Ô±& % TableColumn0Õ±0Ö±&%column1 BP A  GÃP0×±0ر&% °&&&&&&&& &&&&&&%’°2°0Ù±0Ú±&%neuf°°Ú&&&&&&&& &&&&&&%’°"°%0Û±& % TextField2°¡0ܱ& % TableColumn20ݱ0Þ±&%column1 BP A  GÃP0ß±0à±&% °&&&&&&&& &&&&&&%’°2°0á±0â±&%neuf°°â&&&&&&&& &&&&&&%’°"°%0ã±&%Button1°B0ä±& % TableColumn3°0å±&%GormNSTableView0æ±%  @cà @d   @cà @d &0ç± &%0è±0é±&°&&&&&&&&&&&&&&0ê± &°Í°'°)0ë±%  @cà @6  @cà @6&0ì± &0í±%  @3 @6  @3 @6&0î± &%% A€’ @ @0ï± &0ð±&%Button2°l0ñ±& % TableColumn40ò±0ó±&%column1 BP A  GÃP0ô±0õ±&% °&&&&&&&& &&&&&&%’°2°0ö±°â°°â&&&&&&&& &&&&&&%’°"°%0÷±&%Button3°r0ø±& % TableColumn5°Z0ù±&%Button4°›0ú±& % TableColumn6°Š0û±&%GormNSTableView1°0ü± &990ý1&NSNibConnector°È°Â0þ±&°Ç0ÿ±&°åP±&°ÔP±&°ÌP±&°ÄP±&°ÓP1'NSNibOutletConnector°Â°ÈP±&%windowP±'°Â°ÇP±&%tabViewP±'°Â°ÓP ±& % classFieldP ±&°ÉP ±&°ûP ±&°ÜP ±&°äP±&°ÊP±&°¹P±&°ñP±&°øP±&°Æ°ÂP±&°ã°ÂP±&°ð°ÂP±&°÷°ÂP±&°ËP±&°ÅP±&°úP±&°ºP±&°ùP1(NSNibControlConnector°ù°ÂP±& % selectClass:P±'°Â°ùP±& % selectClassP±&°ÛP ±&°ÁP!±(°Á°ÂP"±&%searchForClass:P#±'°Â°ÁP$±&%searchP%±'°Â°ÛP&±& % searchTextP'±'°Â°ÅP(±& % parentClassP)±(°Ó°ÂP*±&%changeClassName:P+±'°Â°ûP,1)NSMutableString& % outletTableP-±'°Â°¹P.±)& % actionTableP/±'°Â°÷P0±)& % addActionP1±'°Â°ðP2±)& % removeActionP3±'°Â°ãP4±)& % addOutletP5±'°Â°ÆP6±)& % removeOutletP7±(°ã°ÂP8±)& % addOutlet:P9±(°Æ°ÂP:±)& % removeOutlet:P;±(°÷°ÂP<±)& % addAction:P=±(°ð°ÂP>±)& % removeAction:P?±(°û°ÂP@±& % selectOutlet:PA±(°¹°ÂPB±& % selectAction:PC±'°Ó°ÅPD±)& % nextKeyViewPE±'°Å°ÛÐDPF±'°Û°ÁÐDPG±'°Á°ùÐDPH±'°ù°ûÐDPI±'°û°ãÐDPJ±'°ã°ÆÐDPK±'°Æ°ÓÐDPL±'°È°ÓPM±)&%initialFirstResponderPN±$&gorm-1.2.24/English.lproj/GormClassInspector.gorm/data.classes0000644000000000000000000000150713410616261022777 0ustar rootroot{ "## Comment" = "Do NOT change this file, Gorm maintains it"; FirstResponder = { Actions = ( "addOutlet:", "clickOnClass:", "selectOutlet:", "orderFrontFontPanel:", "removeOutlet:", "searchForClass:", "selectAction:", "selectClass:" ); Super = NSObject; }; GormClassInspector = { Actions = ( "select:", "removeAction:", "addAction:", "removeOutlet:", "addOutlet:", "selectClass:", "searchForClass:", "clickOnClass:", "changeClassName:", "selectOutlet:", "selectAction:" ); Outlets = ( classField, tabView, removeOutlet, addAction, actionTable, outletTable, removeAction, addOutlet, selectClass, parentClass, search, searchText ); Super = IBInspector; }; }gorm-1.2.24/English.lproj/GormClassInspector.gorm/data.info0000644000000000000000000000027013410616261022271 0ustar rootrootGNUstep archive0000300d:00000003:00000003:00000000:01GormFilePrefsManager1NSObject% 01NSString&%Latest Version0±& % Typed Streamgorm-1.2.24/English.lproj/GormShelfPref.gorm/0000755000000000000000000000000013410616261017426 5ustar rootrootgorm-1.2.24/English.lproj/GormShelfPref.gorm/objects.gorm0000644000000000000000000001024713410616261021751 0ustar rootrootGNUstep archive00002af9:0000001e:00000078:00000000:01GSNibContainer1NSObject01NSMutableDictionary1 NSDictionary& 01NSString&%NSOwner0±& % GormShelfPref0±&%GSCustomClassMap0±&0±& % ImageView01 NSImageView1 NSControl1NSView1 NSResponder% B” AÈ B@ B@  B@ B@&0 1 NSMutableArray1 NSArray&%0 1 NSImageCell1 NSCell0 1NSFont% A@&&&&&&&&%%% ?€ ?€’0 ±&%Box0 1NSBox% B  Bä CE B  CE BÂ&0± &0±% @ @ CA B–  CA B–&0± &°01 NSTextField% B” @  B@ A€  B@ A€&0± &%01NSTextFieldCell1 NSActionCell0±&° &&&&&&&&0%’01NSColor0±&%NSNamedColorSpace0±&%System0±&%textBackgroundColor0±°°0±& % textColor’0±% Bô @  A€ A€  A€ A€&0± &0±%  A€ A€  A€ A€&0± &0±0 ±&%Box° &&&&&&&&0%’0!±°0"±&%System0#±&%windowBackgroundColor0$±°0%±&%System0&±& % textColor %%0'±% Bh @  A€ A€  A€ A€&0(± &0)±%  A€ A€  A€ A€&0*± &0+±0,±&%Box° &&&&&&&&0%’0-±°0.±&%System0/±&%windowBackgroundColor00±°01±&%System02±& % textColor %%03±04±& % Title Width° &&&&&&&&0%’°!05±°06±&%System07±& % textColor %%08±&%Button091NSButton% BÞ Bª C AÀ  C AÀ&0:± &%0;1 NSButtonCell0<±&%Use Default Settings° &&&&&&&&%’0=±&0>±&&&&0?±& % TextField°0@±&% Box10A±% A¸  C¯ C‹€  C¯ C‹€&0B± &0C±%  C¯ C‹€  C¯ C‹€&0D± &° °90E±0F±&%Box° &&&&&&&&0%’°!0G±°0H±&%System0I±& % textColor %%0J±&% Box2°0K±&%MenuItem0L1 NSMenuItem0M±&%Item 10N±&&&ÿ%0O1NSImage0P±& % common_Nibble’%0Q±& % GormNSWindow0R1NSWindow% ?€ A CÆ CŒ€&% D À D<@0S±% ?€ A CÆ CŒ€  CÆ CŒ€&0T± &°A°!0U±&%Window0V±&%Window0W±&%Window CÆ C› F@ F@%0X±0Y±&%NSApplicationIcon0Z±&% Box3°'0[± &0\1NSNibConnector°Q0]±&%NSOwner0^±°@0_±°K0`±° 0a±°0b±°?0c±°80d±°J0e±°Z0f1NSNibOutletConnector°]°Q0g±&%win0h±°]°@0i±&%prefbox0j±°]° 0k±&%iconbox0l±°]°0m±&%imView0n±°]°Z0o±& % leftResBox0p±°]°J0q±& % rightResBox0r±°]°?0s±& % nameField0t±°]°80u±&%setButt0v1NSNibControlConnector°8°]0w±&%setDefaultWidth:0x1 GSMutableSet1 NSMutableSet1NSSet&°Rgorm-1.2.24/English.lproj/GormShelfPref.gorm/data.classes0000644000000000000000000000401513410616261021716 0ustar rootroot{ "## Comment" = "Do NOT change this file, Gorm maintains it"; ArrResizer = { Actions = ( "initForController:" ); Outlets = ( ); Super = NSView; }; FirstResponder = { Actions = ( "alignCenter:", "alignLeft:", "arrangeInFront:", "capitalizeWord:", "changeFont:", "close:", "copy:", "copyRuler:", "delete:", "deleteForward:", "deleteToBeginningOfParagraph:", "deleteToEndOfParagraph:", "deleteWordBackward:", "deminiaturize:", "fax:", "hideOtherApplications:", "loosenKerning:", "lowercaseWord:", "miniaturize:", "moveBackward:", "moveDown:", "moveForward:", "moveLeft:", "moveToBeginningOfDocument:", "moveToBeginningOfParagraph:", "moveToEndOfLine:", "moveUp:", "moveWordBackward:", "moveWordForward:", "newDocument:", "openDocument:", "orderFront:", "orderFrontDataLinkPanel:", "orderFrontFontPanel:", "orderFrontStandardAboutPanel:", "orderOut:", "pageUp:", "pasteAsPlainText:", "pasteFont:", "performClose:", "performZoom:", "raiseBaseline:", "runPageLayout:", "saveAllDocuments:", "saveDocumentAs:", "scrollLineDown:", "scrollPageDown:", "scrollViaScroller:", "selectLine:", "selectParagraph:", "selectToMark:", "selectWord:", "showGuessPanel:", "showWindow:", "subscript:", "swapWithMark:", "takeFloatValueFrom:", "takeObjectValueFrom:", "terminate:", "toggle:", "toggleRuler:", "toggleTraditionalCharacterShape:", "transposeWords:", "turnOffLigatures:", "unhide:", "unscript:", "useAllLigatures:", "useStandardLigatures:", "zoom:" ); Super = NSObject; }; GormShelfPref = { Actions = ( "setDefaultWidth:" ); Outlets = ( win, prefbox, iconbox, imView, leftResBox, rightResBox, nameField, setButt ); Super = NSObject; }; }gorm-1.2.24/English.lproj/GormShelfPref.gorm/data.info0000644000000000000000000000027013410616261021213 0ustar rootrootGNUstep archive00002af9:00000003:00000003:00000000:01GormFilePrefsManager1NSObject%01NSString&%Latest Version0±& % Typed Streamgorm-1.2.24/English.lproj/GormPrefPalettes.gorm/0000755000000000000000000000000013410616261020146 5ustar rootrootgorm-1.2.24/English.lproj/GormPrefPalettes.gorm/objects.gorm0000644000000000000000000001154313410616261022471 0ustar rootrootGNUstep archive00002af9:00000026:00000080:00000001:01GSNibContainer1NSObject01NSMutableDictionary1 NSDictionary& 01NSString&%NSOwner0±&% GormPalettesPref0±&%GSCustomClassMap0±&0±&% PaletteDataSource01 GSNibItem°  &0 ±&% Button10 1NSButton1 NSControl1 NSView1 NSResponder% Bè A B` AÀ  B` AÀ&0 1 NSMutableArray1 NSArray&%0 1 NSButtonCell1 NSActionCell1NSCell0 ±&%Add01NSFont% A@&&&&&&&&%’0±&0±&&&&0±& %  TableColumn101 NSTableColumn0±&%column2 C‡€ A  GÃP01NSTableHeaderCell1NSTextFieldCell0±&%Palettes0±% &&&&&&&&0%’01NSColor0±&%NSNamedColorSpace0±&%System0±&%controlShadowColor0±°0±&%System0±&%windowFrameTextColor0±0±&%seven0 ±%°&&&&&&&&0%’0!±°°0"±&%textBackgroundColor0#±°°0$±& % textColor0%±& % GormNSPanel0&1GSWindowTemplate1GSClassSwapper0'±&%NSPanel1NSPanel1NSWindow% ?€ A C¯ Cz& % C·€ DK@0(± % ?€ A C¯ Cz  C¯ Cz&0)± &° 0*±% C4 A B` AÀ  B` AÀ&0+± &%0,± 0-±&%Remove°&&&&&&&&%’0.±&0/±&&&&001 NSScrollView% Aè B  C“ C)  C“ C)&01± &021 NSClipView% A¨ AÀ C‡€ Bø  C‡€ Bø&03± &041 NSTableView%  C‡€ C!  C‡€ C!&05± &%06±07±&° &&&&&&&&08± &°09±°°0:±& % gridColor0;±°0<±&% System0=±&%controlBackgroundColor0>1NSTableHeaderView%  C‡€ A°  C‡€ A°&0?± &0@1GSTableCornerView% @ @ A˜ A°  A˜ A°&0A± &%% A€’ @ @@°;0B1 NSScroller% @ AÀ A C  A C&0C± &%0D±°7° &&&&&&&&&°02 _doScroll:v12@0:4@80E±% A¨ @ C‡€ A°  C‡€ A°&0F± &°>0G±°°0H±& % controlColor0I±% A¨ C C‡€ A  C‡€ A&0J± &%0K±0L±&° &&&&&&&&&°0²°@°2% A A A A °I°B°E0M±°0N±&%System0O±&%windowBackgroundColor0P±&%Window0Q±&%Headers°Q ?€ A¸ F@ F@%0R1NSImage0S±&%NSApplicationIcon&   D  D€0T±& % ScrollView°00U±&% Button2°*0V±& % TableColumn0W±0X±&%column1 BP A  GÃP0Y±0Z±&% °&&&&&&&&0%’0[±°0\±&%System0]±& % controlColor°0^±0_±&%sept° °_&&&&&&&&0%’°!°#0`±&%GormNSTableView°40a± &0b1 NSNibConnector° 0c± °U0d± °T0e± °`0f± °V0g± °0h± °0i±&%NSOwner0j1!NSNibOutletConnector°`°0k1"NSMutableString& %  dataSource0l±!°`°i0m±"&% delegate0n±!°i°`0o±"&% table0p±!°i° 0q±"& %  addButton0r±!°i°U0s±"& %  removeButton0t±!°i°%0u±"&% window0v1#NSNibControlConnector° °i0w±"& %  addAction:0x±#°U°i0y±"& %  removeAction:0z±!°`° 0{±"& %  nextKeyView0|±!° °U°{0}±!°U°`°{0~±!°%° 0±"&% initialFirstResponder0€1$ GSMutableSet1% NSMutableSet1&NSSet&°°&gorm-1.2.24/English.lproj/GormPrefPalettes.gorm/data.classes0000644000000000000000000000074513410616261022444 0ustar rootroot{ "## Comment" = "Do NOT change this file, Gorm maintains it"; FirstResponder = { Actions = ( "orderFrontFontPanel:", "removeAction:", "addAction:" ); Super = NSObject; }; GormPalettesPref = { Actions = ( "removeAction:", "addAction:" ); Outlets = ( _view, window, removeButton, addButton, table ); Super = NSObject; }; PaletteDataSource = { Actions = ( ); Outlets = ( ); Super = NSObject; }; }gorm-1.2.24/English.lproj/GormPrefPalettes.gorm/data.info0000644000000000000000000000027013410616261021733 0ustar rootrootGNUstep archive00002af9:00000003:00000003:00000000:01GormFilePrefsManager1NSObject% 01NSString&%Latest Version0±& % Typed Streamgorm-1.2.24/English.lproj/GormViewSizeInspector.gorm/0000755000000000000000000000000013410616261021204 5ustar rootrootgorm-1.2.24/English.lproj/GormViewSizeInspector.gorm/objects.gorm0000644000000000000000000001543013410616261023526 0ustar rootrootGNUstep archive00002ced:00000020:000000b0:00000002:01GSNibContainer1NSObject01 GSMutableSet1 NSMutableSet1NSSet&01GSWindowTemplate1GSClassSwapper01NSString&%NSWindow1 NSWindow1 NSResponder% ?€ A Cˆ CÃ&% CÆ€ DI01 NSView% ?€ A Cˆ Cà  Cˆ CÃ&01 NSMutableArray1 NSArray&01NSBox% Aè C~ CV Bð  CV Bð&0± &0 ± % @à @à CH B¼  CH B¼&0 ± &0 1NSForm1NSMatrix1 NSControl% A¤  C! B¼  C! B¼&0 ± &%0 1 NSFormCell1 NSActionCell1NSCell0±&01NSFont% A@&&&&&&&&&&&&&&%’ ¿€0±0±&%Field:°&&&&&&&&&&&&&&% C! Aª @@01NSColor0±&%NSNamedColorSpace0±&%System0±&%controlBackgroundColor0±0±&%NSCalibratedRGBColorSpace ?*Àƒ ?*Àƒ ?*Àƒ ?*Àƒ ?€0±& % NSFormCell%%0± &0±0±&°&&&&&&&&&&&&&&%’ B40±0±&%X:°&&&&&&&&&&&&&&0±0±&°&&&&&&&&&&&&&&%’ B40 ±0!±&%Y:°&&&&&&&&&&&&&&0"±0#±&°&&&&&&&&&&&&&&%’ B40$±0%±&%Width:°&&&&&&&&&&&&&&0&±0'±&°&&&&&&&&&&&&&&%’ B40(±0)±&%Height:°&&&&&&&&&&&&&&2 ok:v12@0:4@8’’°&0*1NSTextFieldCell0+±&%Size°&&&&&&&&&&&&&&%’0,±°0-±&%System0.±&%windowBackgroundColor0/±° ?€ @  @ %%00±% Aè Aˆ CV Ce  CV Ce&201± &02± % @à @à CH CK  CH CK&03± &041NSButton% BH BL BÈ BÊ  BÈ BÊ&05± &%061 NSButtonCell07±&°&&&&&&&&&&&&&&%’08±&09±&&&& &&0:±% B¶  A  BH  A  BH&%0;± &%0<±0=±&0>1NSImage0?±& % GormEVLine°&&&&&&&&&&&&&&%2 setAutosize:v12@0:4@80@±&0A±&0B±0C±& % GormEVCoil&&& &&0D±% B¶ C A  BH  A  BH& 0E± &%0F±0G±&°>°&&&&&&&&&&&&&&%²0H±&0I±&°B&&& &&0J±% C B¹ BH A   BH A &)0K± &%0L±0M±&%Button0N±0O±& % GormEHLine°&&&&&&&&&&&&&&%²0P±&0Q±&0R±0S±& % GormEHCoil&&& &&0T±% B¹ BH A   BH A &,0U± &%0V±0W±&°N°&&&&&&&&&&&&&&%²0X±&0Y±&°R&&& &&0Z±% BL Bº B A   B A &*0[± &%0\±0]±&0^±0_±& % GormMHLine°&&&&&&&&&&&&&&%²0`±&0a±&0b±0c±& % GormMHCoil&&& &&0d±% B¶ BT A˜ B  A˜ BÂ&0e± &%0f±0g±&0h±0i±& % GormMVLine°&&&&&&&&&&&&&&%²0j±&0k±&0l±0m±& % GormMVCoil&&& &&0n±0o±& % Autosizing°&&&&&&&&&&&&&&%’°,0p±° ?€ @  @ %%0q±°0r±&%System0s±&%windowBackgroundColor0t±&%Window0u±&%Inspector Window°u ?€ A¸ F@ F@%&   DÈ D–0v± &0w± &0x1NSMutableDictionary1 NSDictionary& 0y±&%NSOwner0z±&%GormViewSizeInpector0{±&%Form° 0|±&%Button1°:0}±&%Box°0~±&%Button2°D0±&%Button°40€±&%Box1°00±&%Button3°J0‚±&%Button4°T0ƒ±& % InspectorWin°0„±&%Button5°Z0…±&%Button6°d0†± &0‡1NSNibConnector°ƒ0ˆ±&%NSOwner0‰±°}°ƒ0б°{°ƒ0‹±°€°ƒ0Œ±°°ƒ0±°|°ƒ0ޱ°~°ƒ0±°°ƒ0±°‚°ƒ0‘±°„°ƒ0’±°…°ƒ0“1NSNibOutletConnector°ˆ°‚0”±&%left0•±°ˆ°0–±&%right0—±°ˆ°~0˜±&%top0™±°ˆ°|0š±&%bottom0›±°ˆ°{0œ±&%sizeForm0±°ˆ°…0ž±&%height0Ÿ±°ˆ°„0 ±&%width0¡1NSNibControlConnector°{°ˆ0¢±&%ok:0£±°‚°ˆ0¤±& % setAutosize:0¥±°°ˆ°¤0¦±°~°ˆ°¤0§±°|°ˆ°¤0¨±°…°ˆ°¤0©±°„°ˆ°¤0ª±°ˆ°ƒ0«±&%window0¬±°ƒ°{0­1 NSMutableString&%initialFirstResponder0®±&gorm-1.2.24/English.lproj/GormViewSizeInspector.gorm/data.classes0000644000000000000000000000041113410616261023470 0ustar rootroot{ "## Comment" = "Do NOT change this file, Gorm maintains it"; GormViewSizeInpector = { Actions = ( "setAutosize:" ); Outlets = ( bottom, height, left, right, sizeForm, top, width ); Super = IBInspector; }; }gorm-1.2.24/English.lproj/GormViewSizeInspector.gorm/data.info0000644000000000000000000000027013410616261022771 0ustar rootrootGNUstep archive00002ced:00000003:00000003:00000000:01GormFilePrefsManager1NSObject%01NSString&%Latest Version0±& % Typed Streamgorm-1.2.24/English.lproj/GormObjectInspector.gorm/0000755000000000000000000000000013410616261020645 5ustar rootrootgorm-1.2.24/English.lproj/GormObjectInspector.gorm/objects.gorm0000644000000000000000000000742313410616261023172 0ustar rootrootGNUstep archive00002b5c:00000024:0000005b:00000004:01GSNibContainer1NSObject01NSMutableDictionary1 NSDictionary&01NSString&%NSOwner0±&%GormObjectInspector0±&%GSCustomClassMap0±&0±&%Button01NSButton1 NSControl1NSView1 NSResponder% A B0 C| AÀ  C| AÀ&"0 1 NSMutableArray1 NSArray&%0 1 NSButtonCell1 NSActionCell1NSCell0 ±&%No Type0 1NSFont%&&&&&&&&%’0 ±&0±&&&&0±& % TextField01 NSTextField% A A  C| AÈ  C| AÈ&"0± &%01NSTextFieldCell0±&° &&&&&&&&0%’01NSColor0±&%NSNamedColorSpace0±&%System0±&%textBackgroundColor0±°°0±& % textColor’0±& % GormNSBrowser01 NSBrowser% A B’ C| C˜€  C| C˜€&0± &01 NSScrollView% @ C| C‹  C| C‹&0± &01 NSClipView% A¨ @ Ce C‰  Ce C‰&0 ± &0!1NSMatrix%  Ce BÈ  Ce BÈ&0"± &%0#± 0$±&° &&&&&&&&%’% Ce BÈ 0%±°0&±&%System0'±&%controlBackgroundColor°%0(±& % NSBrowserCell0)1 NSBrowserCell0*±&° &&&&&&&&%%0+± &°2doClick:2doDoubleClick:’0,±°0-±&%System0.±&%controlBackgroundColor0/1 NSScroller% @ @ A C‰  A C‰&00± &%01±°*° &&&&&&&&&°2 _doScroll:v12@0:4@8°% A A A A °/%02±°*° &&&&&&&&°)03±&%NSMatrix04±&%/% BÈ05±% @ ?€ Cx A  Cx A&06± &%07±°*° &&&&&&&&&°2 scrollViaScroller:v12@0:4@8   C| C‹’’08± &091NSBrowserColumn°°!%°4%%0:±& % InspectorWin0;1GSWindowTemplate1GSClassSwapper0<±&%NSPanel1NSPanel1NSWindow% ?€ A Cˆ CÂ&% C‹€ DD@0=±% ?€ A Cˆ C  Cˆ CÂ&0>± &°°°0?±°0@±&%System0A±&%windowBackgroundColor0B±&%Window0C±&%Inspector Window°C @@ B F@ F@%&   DÈ D–0D± &  0E1NSNibConnector°:0F±&%NSOwner0G±°0H±°0I±°0J1NSNibOutletConnector°F°0K±&% label0L±°F°0M±&% value0N±°F°0O±&% browser0P1 NSNibControlConnector°°F0Q1!NSMutableString&% ok:0R±°°F0S±!&% delegate0T±°F°:0U±!&% window0V± °°F0W±&% update:0X1" GSMutableSet1# NSMutableSet1$NSSet&°;gorm-1.2.24/English.lproj/GormObjectInspector.gorm/data.classes0000644000000000000000000000044413410616261023137 0ustar rootroot{ "## Comment" = "Do NOT change this file, Gorm maintains it"; FirstResponder = { Actions = ( "update:" ); Super = NSObject; }; GormObjectInspector = { Actions = ( "update:" ); Outlets = ( browser, label, value ); Super = IBInspector; }; }gorm-1.2.24/English.lproj/GormObjectInspector.gorm/data.info0000644000000000000000000000027013410616261022432 0ustar rootrootGNUstep archive00002b5c:00000003:00000003:00000000:01GormFilePrefsManager1NSObject% 01NSString&%Latest Version0±& % Typed Streamgorm-1.2.24/English.lproj/GormFontView.gorm/0000755000000000000000000000000013410616261017311 5ustar rootrootgorm-1.2.24/English.lproj/GormFontView.gorm/objects.gorm0000644000000000000000000001264513410616261021640 0ustar rootrootGNUstep archive00002f44:00000026:00000097:00000000:01GSNibContainer1NSObject01 GSMutableSet1 NSMutableSet1NSSet&01GSWindowTemplate1GSClassSwapper01NSString&%NSWindow1 NSWindow1 NSResponder% ?ð @" @rÀ @d`&% @o  @ƒ01 NSView% ?ð @" @rÀ @d`  @rÀ @d`&01 NSMutableArray1 NSArray&01NSBox% @$ @O @q€ @SÀ  @q€ @SÀ&0± &0 ± % @ @ @pà @Q@  @pà @Q@&0 ± &0 1 NSPopUpButton1NSButton1 NSControl% @H @5 @f  @4  @f  @4&0 ± &%0 1NSPopUpButtonCell1NSMenuItemCell1 NSButtonCell1 NSActionCell1NSCell0±&%Button01NSFont% A@&&&&&&&&01NSMenu0±&0± &  01 NSMenuItem0±&%As Selected Above0±&&&ÿ%01NSImage @& @ 01NSColor0±&%NSCalibratedWhiteColorSpace 0± &01NSBitmapImageRep1 NSImageRep0±&%NSDeviceRGBColorSpace @& @ %% %01NSData&II*t€8 Oø‚ ‚ÁàИd €"Q8”&)ŒFb@8à*@ˆÆbÑ©$“%R™\ŽK/ŠIâ¢d²k ŽÁSÐ|”M&ÏùE!FR(”yœ®…¡TiÕ9­J«TÆ*Ô:Ýv± þÿ þlR’%0±0±&%Bold System Font0±&&&ÿ%’%0 ±0!±& % System Font°&&ÿ%’%0"±0#±&%User Fixed Font0$±&&&ÿ%’%0%±0&±& % User Font°&&ÿ%’%0'±0(±&%Title Bar Font0)±&&&ÿ%’%0*±0+±& % Menu Font0,±&&&ÿ%’%0-±0.±& % Message Font0/±&&&ÿ%’%00±01±& % Palette Font02±&&&ÿ%’%03±04±&%Tool Tips Font05±&&&ÿ%’%06±07±&%Control Content Font08±&&&ÿ%’%09±0:±&%Role Label Font0;±&&&ÿ%’%&&&&&&%’0<±&0=±&&&& &&°°°%%%%%0>1 NSTextField% @H @I€ @f  @2  @f  @2&0?± &%0@1 NSTextFieldCell0A±&%Use Family and Typeface0B±% A@&&&&&&&& &&&&&&%’0C±0D±&%NSNamedColorSpace0E±&%System0F±&%textBackgroundColor0G±°D°E0H±& % textColor’0I±% @H  @f  @0  @f  @0&0J± &%0K±0L±&%Encode default size0M±0N1!NSMutableString&%common_SwitchOff°&&&&&&&&&&&&&&%’0O±&0P±&0Q±0R±!&%common_SwitchOn&&& &&0S± 0T±&%Box0U±% A@&&&&&&&& &&&&&&%’0V±°D0W±&%System0X±&%windowBackgroundColor°G @ @%%°V0Y±&%Window0Z±& % FontViewPanel°Z ?ð @> @È @È%0[±0\±&%NSApplicationIcon&   @ž @’À0]± &0^± &0_1"NSMutableDictionary1# NSDictionary&0`±&%NSOwner0a±&%GormFontViewController0b±& % MenuItem1° 0c±& % TextField°>0d±& % MenuItem2°%0e±& % MenuItem3°"0f±&%Button°I0g±& % MenuItem4°'0h±& % MenuItem5°*0i±& % MenuItem6°-0j±& % MenuItem7°00k±& % MenuItem10°90l±& % MenuItem8°30m±&%MenuItem°0n±& % MenuItem11°0o±& % MenuItem9°60p±&%View(0)° 0q±&%Box°0r±&%GormNSPopUpButton° 0s±& % FontViewPanel°0t± &0u1$NSNibConnector°s0v±&%NSOwner0w±$°q0x±$°r°p0y±$°m0z±$°b0{±$°d0|±$°e0}±$°g0~±$°h0±$°i0€±$°j0±$°l0‚±$°o0ƒ±$°k0„±$°n0…1%NSNibOutletConnector°v°q0†±&%view0‡±%°v°r0ˆ±& % fontSelector0‰1&NSNibControlConnector°r°v0б& % selectFont:0‹±$°c°p0Œ±$°f°p0±%°v°f0ޱ& % encodeButton0±%°r°f0±!& % nextKeyView0‘±%°f°r°0’±%°s°r0“±!&%initialFirstResponder0”±$°p°q0•±"&gorm-1.2.24/English.lproj/GormFontView.gorm/data.classes0000644000000000000000000000052413410616261021602 0ustar rootroot{ "## Comment" = "Do NOT change this file, Gorm maintains it"; FirstResponder = { Actions = ( "orderFrontFontPanel:", "selectFont:" ); Super = NSObject; }; GormFontViewController = { Actions = ( "selectFont:" ); Outlets = ( view, fontSelector, encodeButton ); Super = NSObject; }; }gorm-1.2.24/English.lproj/GormFontView.gorm/data.info0000644000000000000000000000027013410616261021076 0ustar rootrootGNUstep archive00002f44:00000003:00000003:00000000:01GormFilePrefsManager1NSObject% 01NSString&%Latest Version0±& % Typed Streamgorm-1.2.24/English.lproj/Gorm.gorm/0000755000000000000000000000000013410616261015627 5ustar rootrootgorm-1.2.24/English.lproj/Gorm.gorm/objects.gorm0000644000000000000000000006172613410616261020162 0ustar rootrootGNUstep archive000f4240:00000011:00000366:00000001:01GSNibContainer1NSObject01 NSMutableSet1NSSet&01 GSNibItem01NSString& % NSFontManager  &01NSMenu0±&%Gorm01NSMutableArray1 NSArray&  01 NSMenuItem0 ±&%Info0 ±&JJÿI0 1 NSImage0 1 NSMutableString&%GSMenuSelected0 ± 0± & % GSMenuMixed2 submenuAction:v24@0:8@16I0±° 0±&0± 0±& % Info Panel...0±&JJÿI° ° ’I0± 0±&%Preferences...0±&JJÿI° ° ’I0± 0±&%Help...0±&%?JJÿI° ° ’I°0± 0±&%Document0±&JJÿI° ° ²I0±°0±&0± 0 ±&%Open...0!±&%oJJÿI° ° ’I0"± 0#±& % Open Recent0$±&JJÿI° ° ’I0%±0&±& % Open Recent0'±&0(± 0)±& % Clear List°$JJÿI° ° ’I°0*± 0+±&%New Application0,±&%nJJÿI° ° ’I0-± 0.±& % New Module0/±&JJÿI° ° ²I00±°.01±&02± 03±& % New Empty04±&%NJJÿI° ° ’I05± 06±& % New Inspector07±&JJÿI° ° ’I08± 09±& % New Palette0:±&JJÿI° ° ’I°0;± 0<±&%Save...0=±&%sJJÿI° ° ’I0>± 0?±& % Save As...0@±&%SJJÿI° ° ’I0A± 0B±&%Save All0C±&JJÿI° ° ’I0D± 0E±& % Save To...0F±&JJÿI° ° ’I0G± 0H±&%Revert To Saved0I±&%uJJÿI° ° ’I0J± 0K±&%Print0L±&JJÿI° ° ’I0M± 0N±& % Page Layout0O±&%PJJÿI° ° ’I0P± 0Q±&%Test Interface0R±&%rJJÿI° ° ’I0S± 0T±& % Translate0U±&JJÿI° ° ²I0V±°T0W±&0X± 0Y±& % Load Strings0Z±&JJÿI° ° ’I0[± 0\±&%Export Strings0]±&JJÿI° ° ’I°0^± 0_±& % Miniaturize0`±&%mJJÿI° ° ’I0a± 0b±&%Close0c±&JJÿI° ° ’I0d± 0e±&%Debug0f±&JJÿI° ° ’I0g± 0h±& % Load Sound0i±&JJÿI° ° ’I0j± 0k±& % Load Image0l±&JJÿI° ° ’I°0m± 0n±&%Edit0o±&JJÿI° ° ²I0p±°n0q±&  0r± 0s±&%Cut0t±&%xJJÿI° ° ’I0u± 0v±&%Copy0w±&%cJJÿI° ° ’I0x± 0y±&%Paste0z±&%vJJÿI° ° ’I0{± 0|±&%Delete0}±&%JJÿI° ° ’I0~± 0±& % Select All0€±&%aJJÿI° ° ’I0± 0‚±& % Set Name...0ƒ±&JJÿI° ° ’I0„± 0…±&%Group0†±&JJÿI° ° ²I0‡±°…0ˆ±&0‰± 0б& % In Splitview0‹±&JJÿI° ° ’I0Œ± 0±&%In Box0ޱ&JJÿI° ° ’I0± 0±& % In Scrollview0‘±&JJÿI° ° ’I0’± 0“±&%In View0”±&JJÿI° ° ’I0•± 0–±&%Ungroup0—±&JJÿI° ° ’I°p0˜± 0™±&%Disable guideLine0š±&JJÿI° ° ’I0›± 0œ±& % Font Panel0±&%tJJÿI° ° ’I°0ž± 0Ÿ±&%Classes0 ±&JJÿI° ° ²I0¡±°Ÿ0¢±&0£± 0¤±&%Create Subclass...0¥±&%CJJÿI° ° ’I0¦± 0§±& % Load Class...0¨±&%LJJÿI° ° ’I0©± 0ª±&%Create Class Files0«±&%BJJÿI° ° ’I0¬± 0­±& % Instantiate0®±&%IJJÿI° ° ’I0¯± 0°±&%Add Outlet/Action0±±&%AJJÿI° ° ’I0²± 0³±&%Remove0´±&%XJJÿI° ° ’I°0µ± 0¶±&%Tools0·±&JJÿI° ° ²I0¸±°¶0¹±&0º± 0»±& % Inspector0¼±&%iJJÿI° ° ’I0½± 0¾±&%Palettes0¿±&%pJJÿI° ° ’I0À± 0Á±& % Load Palette0±&JJÿI° ° ’I°0ñ 0ı&%Layout0ű&JJÿI° ° ²I0Ʊ°Ä0DZ&0ȱ 0ɱ& % Alignment0ʱ&JJÿI° ° ²I0˱°É0̱&0ͱ 0α&%Center Vertically0ϱ&JJÿI° ° ’I0б 0ѱ&%Center Horizontally0Ò±&JJÿI° ° ’I0Ó± 0Ô±& % Left Edges0Õ±&JJÿI° ° ’I0Ö± 0×±& % Right Edges0ر&JJÿI° ° ’I0Ù± 0Ú±& % Top Edges0Û±&JJÿI° ° ’I0ܱ 0ݱ& % Bottom Edges0Þ±&JJÿI° ° ’I°Æ0ß± 0à±&%Bring to Front0á±&JJÿI° ° ’I0â± 0ã±& % Send To Back0ä±&JJÿI° ° ’I°0å± 0æ±&%Windows0ç±&JJÿI° ° ²I0è±°æ0é±&0ê± 0ë±&%Arrange In Front0ì±&JJÿI° ° ’I0í± 0î±&%Miniaturize Window0ï±&%mJJÿI° ° ’I0ð± 0ñ±& % Close Window0ò±&%wJJÿI° ° ’I°0ó± 0ô±&%Services0õ±&JJÿI° ° ’I0ö±°ô0÷±&0ø± 0ù±&%Hide0ú±&%hJJÿI° ° ’I0û± 0ü±&%Quit0ý±&%qJJÿI° ° ’I0þ±0ÿ±&%GormDocumentController  &P±&P±&P1 NSMutableDictionary1 NSDictionary&}P±& % MenuItem81°dP±& % MenuItem183°*P±& % GormNSMenu1°P±&% NSOwnerP±&%GormP±& % GormNSMenu33°ÆP ±& % MenuItem99°£P ±& % MenuItem266°~P ±& % MenuItem75°PP ±& % MenuItem177°P ±& % MenuItem242°°ÿ°þP±& % MenuItem51°›P±& % MenuItem153°•P±& % GormNSMenu27°0P±& % MenuItem236°ûP±& % MenuItem69°5P±& % MenuItem301°DP±& % MenuItem147°~P±& % MenuItem212°•P±& % MenuItem45°P±& % MenuItem123°P±& % MenuItem21°dP±& % MenuItem190°AP±& % GormNSMenu40°VP±& % MenuItem297°DP±& % MenuItem1°ûP±& % MenuItem206°~P±& % MenuItem39°ÀP±& % MenuItem117°ÐP ±& % MenuItem273°˜P!±& % MenuItem15°-P"±& % MenuItem82°gP#±& % MenuItem184°-P$±& % MenuItem160°¬P%±& % GormNSMenu2°0P&±& % GormNSMenu34°ËP'±&%NSServicesMenu°öP(±& % GormNSMenu10°P)±& % MenuItem267°P*±& % MenuItem76°SP+±& % MenuItem178°P,±& % MenuItem243°*P-±& % MenuItem52°˜P.±& % MenuItem154°˜P/±& % MenuItem130°>P0±&%Menu(1)°%P1±& % GormNSMenu28°VP2±& % MenuItem237°P3±& % MenuItem148°P4±& % MenuItem213°˜P5±& % MenuItem46°„P6±& % MenuItem124°*P7±& % MenuItem280°²P8±& % MenuItem22°gP9±& % MenuItem100°¦P:±& % MenuItem191°GP;±& % GormNSMenu41°pP<±& % MenuItem2°P=±& % MenuItem207°P>±& % MenuItem298°DP?±& % MenuItem16°2P@±& % MenuItem118°PA±& % MenuItem274°›PB±& % MenuItem250°APC±& % MenuItem83°jPD±& % MenuItem185°2PE±& % MenuItem161°¯PF±& % MenuItem(19)°óPG±& % GormNSMenu3°pPH±& % GormNSMenu35°èPI±& % GormNSMenu11°ÆPJ±& % MenuItem268°„PK±& % MenuItem179°PL±& % MenuItem244°-PM±& % MenuItem77°XPN±& % MenuItem155°›PO±& % MenuItem220°²PP±& % MenuItem53°-PQ±& % MenuItem131°APR±& % MenuItem(16)°êPS±& % GormNSMenu29°pPT±& % MenuItem(8)°"PU±& % MenuItem238°PV±& % MenuItem149°„PW±& % MenuItem214°›PX±& % MenuItem47°‰PY±& % MenuItem125°-PZ±& % MenuItem281°½P[±& % MenuItem23°jP\±& % MenuItem101°©P]±& % MenuItem90°P^±& % MenuItem192°PP_±& % MenuItem(13)°{P`±& % MenuItem(5)°’Pa±& % GormNSMenu42°‡Pb±& % MenuItem208°„Pc±& % MenuItem299°DPd±& % MenuItem3°Pe±& % MenuItem17°5Pf±& % MenuItem119°Pg±& % MenuItem275°žPh±& % MenuItem84°mPi±& % MenuItem186°5Pj±& % MenuItem251°GPk±& % MenuItem60°Pl±& % MenuItem162°²Pm±& % MenuItem(10)°JPn±& % GormNSMenu4°¡Po±& % GormNSMenu36°öPp±& % MenuItem(2)°DPq±& % GormNSMenu12°ËPr±& % MenuItem269°‰Ps±& % MenuItem245°2Pt±& % MenuItem78°[Pu±& % MenuItem156°žPv±& % MenuItem221°½Pw±& % MenuItem54°XPx±& % MenuItem132°GPy±& % MenuItem30°£Pz±& % MenuItem239°P{±& % MenuItem215°žP|±& % MenuItem48°ŒP}±& % MenuItem282°ÀP~±& % MenuItem24°mP±& % MenuItem126°2P€±& % MenuItem91°„P±& % MenuItem193°SP‚±& % MenuItem102°¬Pƒ±& % GormNSMenu43°¡P„±& % MenuItem4°P…±& % MenuItem209°‰P†±& % MenuItem18°8P‡±& % MenuItem276°¦Pˆ±& % MenuItem187°8P‰±& % MenuItem252°PPб& % MenuItem85°rP‹±& % MenuItem163°µPŒ±& % MenuItem61°P±& % GormNSMenu5°¸Pޱ& % GormNSMenu37°P±& % GormNSMenu13°P±& % MenuItem246°5P‘±& % MenuItem79°^P’±& % MenuItem157°£P“±& % MenuItem222°ÀP”±& % MenuItem55°SP•±& % MenuItem133°PP–±& % MenuItem31°µP—±& % NSWindowsMenu°èP˜±& % MenuItem216°¦P™±& % MenuItem49°Pš±& % MenuItem25°rP›±& % MenuItem127°5Pœ±& % MenuItem283°ÃP±& % MenuItem92°‰Pž±& % MenuItem194°XPŸ±& % MenuItem103°¯P ±& % MenuItem170°ÖP¡±& % GormNSMenu44°¸P¢±& % GormNSMenu20°¸P£±& % MenuItem5°P¤±& % MenuItem19°PP¥±& % MenuItem277°©P¦±& % MenuItem188°;P§±& % MenuItem253°SP¨±& % MenuItem86°uP©±& % MenuItem164°ºPª±& % MenuItem62°P«±& % MenuItem140°gP¬±& % GormNSMenu6°èP­±& % GormNSMenu38°P®±& % GormNSMenu14°P¯±& % MenuItem247°8P°±& % MenuItem223°ÃP±±& % MenuItem56°[P²±& % MenuItem158°¦P³±& % MenuItem290°ÜP´±& % MenuItem32°ºPµ±& % MenuItem134°SP¶±& % MenuItem110°âP·±& % MenuItem217°©P¸±& % MenuItem26°uP¹±& % MenuItem128°8Pº±& % MenuItem284°ÈP»±& % MenuItem195°[P¼±& % MenuItem104°²P½±& % MenuItem260°jP¾±& % MenuItem93°ŒP¿±& % MenuItem171°ÙPÀ±& % GormNSMenu45°ÆPÁ±& % GormNSMenu21°ÆP±& % MenuItem6°Pñ& % MenuItem278°¬Pı& % MenuItem189°>Pű& % MenuItem254°XPƱ& % MenuItem87°xPDZ& % MenuItem165°ÃPȱ& % MenuItem230°ÜPɱ& % MenuItem63°Pʱ& % MenuItem141°jP˱& % MenuItem(17)°íP̱&%NSFont°Pͱ& % GormNSMenu7°öPα& % GormNSMenu39°0Pϱ& % MenuItem(9)°(Pб& % GormNSMenu15°0Pѱ& % MenuItem248°;PÒ±& % MenuItem224°ÈPÓ±& % MenuItem57°2PÔ±& % MenuItem159°©PÕ±& % MenuItem200°jPÖ±& % MenuItem33°åP×±& % MenuItem135°XPر& % MenuItem291°ßPÙ±& % MenuItem111°ÈPÚ±& % MenuItem(14)°ÍPÛ±&%NSMenu°Pܱ& % MenuItem(6)°"Pݱ& % MenuItem218°¬PÞ±&%MenuItem°øPß±& % MenuItem27°xPà±& % MenuItem129°;Pá±& % MenuItem285°ÍPâ±& % MenuItem196°^Pã±& % MenuItem105°µPä±& % MenuItem261°mPå±& % MenuItem94°Pæ±& % MenuItem172°ÜPç±& % MenuItem70°8Pè±& % MenuItem(11)°MPé±& % MenuItem(3)°JPê±& % GormNSMenu46°ËPë±& % GormNSMenu22°ËPì±& % MenuItem7°Pí±& % MenuItem279°¯Pî±& % MenuItem255°[Pï±& % MenuItem88°{Pð±& % MenuItem231°ßPñ±& % MenuItem64°Pò±& % MenuItem166°ÈPó±& % MenuItem142°mPô±& % MenuItem40°¦Põ±& % GormNSMenu°Pö±& % GormNSMenu8°‡P÷±& % GormNSMenu16°VPø±& % MenuItem(0)°DPù±& % MenuItem249°>Pú±& % MenuItem225°ÍPû±& % MenuItem58°5Pü±& % MenuItem201°mPý±& % MenuItem34°êPþ±& % MenuItem136°[Pÿ±& % MenuItem292°âP±& % MenuItem10°>P±& % MenuItem112°ÍP±& % MenuItem219°¯P±& % MenuItem286°ÐP±& % MenuItem28°~P±& % MenuItem197°aP±& % MenuItem106°øP±& % MenuItem262°rP±& % MenuItem95°•P ±& % MenuItem173°ßP ±& % MenuItem71°;P ±& % MenuItem(20)°øP ±& % GormNSMenu47°èP ±& % MenuItem8°*P±& % GormNSMenu23°èP±& % MenuItem256°^P±& % MenuItem89°~P±& % MenuItem232°âP±& % MenuItem65°P±& % MenuItem167°ÍP±& % MenuItem41°©P±& % MenuItem143°rP±& % GormNSMenu9°VP±& % GormNSMenu17°pP±& % MenuItem59°8P±& % MenuItem226°ÐP±& % MenuItem35°íP±& % MenuItem137°^P±& % MenuItem293°íP±& % MenuItem202°rP±& % MenuItem11°{P±& % MenuItem113°ÓP ±& % MenuItem180°P!±& % GormNSMenu30°‡P"±& % MenuItem287°ÓP#±& % MenuItem29°žP$±& % MenuItem107°ûP%±& % MenuItem263°uP&±& % MenuItem96°˜P'±& % MenuItem198°dP(±& % MenuItem174°âP)±& % MenuItem72°>P*±& % MenuItem150°‰P+±& % GormNSMenu48°öP,±& % MenuItem9°;P-±& % GormNSMenu24°öP.±& % MenuItem257°aP/±& % MenuItem233°íP0±& % MenuItem66°*P1±& % MenuItem168°ÐP2±& % MenuItem42°¬P3±& % MenuItem144°uP4±& % MenuItem120°P5±&%Menu(0)°%P6±& % GormNSMenu18°‡P7±& % MenuItem227°ÓP8±& % MenuItem36°ðP9±& % MenuItem203°uP:±& % MenuItem138°aP;±& % MenuItem294°ðP<±& % MenuItem270°ŒP=±& % MenuItem114°ÖP>±& % MenuItem12°AP?±& % MenuItem181°P@±& % GormNSMenu31°¡PA±& % MenuItem288°ÖPB±& % MenuItem199°gPC±& % MenuItem108°ÃPD±& % MenuItem97°›PE±& % MenuItem264°xPF±& % MenuItem175°øPG±& % MenuItem73°APH±& % MenuItem240°PI±& % MenuItem151°ŒPJ±& % MenuItem(18)°ðPK±& % GormNSMenu25°PL±& % MenuItem258°dPM±& % MenuItem169°ÓPN±& % MenuItem67°-PO±& % MenuItem234°ðPP±& % MenuItem210°ŒPQ±& % MenuItem145°xPR±& % MenuItem43°¯PS±& % MenuItem121°PT±& % MenuItem(15)°ÓPU±& % GormNSMenu19°¡PV±& % MenuItem(7)°(PW±& % MenuItem228°ÖPX±& % MenuItem204°xPY±& % MenuItem295°óPZ±& % MenuItem139°dP[±& % MenuItem37°óP\±& % MenuItem13°GP]±& % MenuItem271°P^±& % MenuItem115°ÙP_±& % MenuItem182°P`±& % MenuItem80°aPa±& % MenuItem(12)°aPb±& % MenuItem(4)°MPc±& % GormNSMenu32°¸Pd±& % MenuItem289°ÙPe±& % MenuItem109°ßPf±& % MenuItem98°žPg±& % MenuItem265°{Ph±& % MenuItem176°ûPi±& % MenuItem74°GPj±& % MenuItem241°Pk±& % MenuItem152°Pl±& % MenuItem50°•Pm±& % MenuItem(1)°DPn±& % GormNSMenu26°Po±& % MenuItem259°gPp±& % MenuItem300°DPq±& % MenuItem68°2Pr±& % MenuItem235°óPs±& % MenuItem211°Pt±& % MenuItem146°{Pu±& % MenuItem44°²Pv±& % MenuItem20°^Pw±& % MenuItem122°Px±& % MenuItem229°ÙPy±& % MenuItem205°{Pz±& % MenuItem296°ûP{±&%NSRecentDocumentsMenu°%P|±& % MenuItem38°½P}±& % MenuItem14°aP~±& % MenuItem272°•P±& % MenuItem116°ÜP€±&¢¢P1NSNibConnectorÐÛP‚±&% NSOwnerPƒ±ÐFÐÛP„±ÐzÐÛP…±ÐkÐÛP†±ÐKÐkP‡±ÐŒÐKPˆ±Ð4ÐKP‰±ÐSÐKPбÐwÐÛP‹±ÐnÐwPŒ±Ð_ÐnP±Ð0ÐnPޱÐ,ÐnP±Ð)ÐnP±ÐGÐnP‘±ÐiÐnP’±Ð}ÐnP“±ÐNÐnP”±ÐÐÐNP•±Ð¤ÐnP–±ÐvÐnP—±ÐZÐnP˜±ÐoÐnP™±ÐÕÐnPš±ÐüÐÛP›±ÐÐüPœ±ÐÐP±Ð9ÐPž±ÐXÐPŸ±ÐÐP ±ÐfÐÛP¡±ÐUÐfP¢±Ð’ÐUP£±ÐãÐÛP¤±ÐcÐãP¥±Ð´ÐcP¦±ÐÖÐÛP§±ÐÐÖP¨±ÐýÐP©±Ð/ÐPª±ÐOÐP«±ÐrÐÛP¬±Ð-ÐrP­±Ð|ÐcP®±Ð“ÐcP¯±ÐôÐUP°±ÐÐUP±±Ð2ÐUP²±ÐRÐUP³±ÐuÐUP´±ÐyÐPµ±Ð]ÐP¶±Ð€ÐP·±Ð6ЀP¸±Ð*Ð6P¹±ÐPÐ6Pº±ÐsÐ6P»±Ð~Ð6P¼±ÐDÐP½1NSNibControlConnectorГЂP¾±& % loadPalette:P¿±Ð/PÀ±&% NSFirstPÁ±&%performMiniaturize:P±ÐOÐÀPñ& % performClose:PıÐýÐÀPű&%arrangeInFront:PƱÐFÐÀPDZ&%hide:PȱÐzÐÀPɱ& % terminate:PʱÐÐÀP˱&%cut:P̱Ð9ÐÀPͱ&%copy:PαÐXÐÀPϱ&%paste:PбÐ|ЂPѱ& % palettes:PÒ±Ð4ЂPÓ±&%preferencesPanel:PÔ1NSNibOutletConnectorЂÐÛPÕ±&%gormMenuPÖ±Ð&ÐP×±Ð&ЂPر& % guideline:PٱЂÐ&PÚ±&%guideLineMenuItemPÛ±ÐDЂPܱ&%orderFrontFontPanel:PݱÐNÐnPÞ±&%submenuAction:Pß±ÐqÐÐPà±ÐûÐÐPá±ÐÐÐPâ±ÐŒÐÀPã±&%orderFrontStandardInfoPanel:Pä±ÐµÐnPå±ÐµÐnPæ±&%submenuAction:Pç±ÐеPè±ÐþÐPé±Ð×ÐPê±ÐkÐÛPë±&%submenuAction:Pì±ÐwÐÛPí±&%submenuAction:Pî±Ð¤ÐÀPï±&%testInterface:Pð±ÐvÐÀPñ±& % miniaturize:Pò±Ð}ÐÀPó±&%close:Pô±ÐZÐÀPõ±&%debug:Pö±ÐoÐÀP÷±& % loadSound:Pø±ÐÕÐÀPù±& % loadImage:Pú±ÐüÐÛPû±&%submenuAction:Pü±ÐyÐÀPý±&%delete:Pþ±Ð]ÐÀPÿ±&%setName:P±Ð€ÐP±&%submenuAction:P±Ð*ÐÀP±&%groupSelectionInSplitView:P±ÐPÐÀP±&%groupSelectionInBox:P±ÐsÐÀP±&%groupSelectionInScrollView:P±Ð~ÐÀP ±&%ungroup:P ±ÐÌЂP ±ÐfÐÛP ±&%submenuAction:P ±ÐãÐÛP±&%submenuAction:P±ÐCÐÛP±ÐCÐÛP±&%submenuAction:P±ÐÁÐCP±ÐeÐÁP±Ð(ÐÁP±ÐòÐÁP±ÐòÐÁP±&%submenuAction:P±ÐëÐòP±ÐÐëP±ÐMÐëP±ÐWÐëP±ÐxÐëP±ÐÐëP±Ð1ÐëP±Ð´ÐÀP ±& % inspector:P!±Ð|ÐÀP"±& % palettes:P#±Ð“ÐÀP$±& % loadPalette:P%±ÐrÐÛP&±&%submenuAction:P'±Ð’ЂP(± &%createSubclass:P)±ÐôЂP*± & % loadClass:P+±ÐЂP,± &%createClassFiles:P-±Ð2ЂP.± &%instantiateClass:P/±ÐRЂP0± &%addAttributeToClass:P1±ÐuЂP2± &%remove:P3±ÐpÐnP4±Ð_ÐÀP5± & % openDocument:P6±Ð0ÐÀP7± & % newDocument:P8±ÐqÐÀÐ7P9±ÐûÐÀÐ7P:±ÐÐÀÐ7P;±Ð,ÐÀP<± & % saveDocument:P=±Ð)ÐÀP>± &%saveDocumentAs:P?±ÐGÐÀP@± &%saveAllDocuments:PA±ÐpÐÀPB± &%saveDocumentTo:PC±ÐiÐÀPD± &%revertDocumentToSaved:PE±°ÿЂPF±ÐeÐÀPG± &%arrangeSelectedObjects:PH±Ð(ÐÀÐGPI±ÐÐÀPJ± &%alignSelectedObjects:PK±Ð1ÐÀÐJPL±ÐMÐÀÐJPM±ÐWÐÀÐJPN±ÐxÐÀÐJPO±ÐÐÀÐJPP±Ð×ÐÀPQ± & % translate:PR±ÐþÐÀPS± &%exportStrings:PT±ÐéÐnPU±ÐéЂPV±&%print:PW±ÐbÐnPX±ÐbÐÀPY± &%runPageLayout:PZ±Ð`Ð6P[±Ð`ÐÀP\±&%groupSelectionInView:P]±ÐÜÐnP^±Ð{ÐÜP_±ÐVÐ{P`±ÐÜÐnPa±&%submenuAction:Pb±ÐVÐÀPc± &%clearRecentDocuments:Pd±ÐÐÀPe±& % selectAll:Pf± &gorm-1.2.24/English.lproj/Gorm.gorm/data.classes0000644000000000000000000000230113410616261020113 0ustar rootroot{ "## Comment" = "Do NOT change this file, Gorm maintains it"; FirstResponder = { Actions = ( "alignSelectedObjects:", "arrangeSelectedObjects:", "exportStrings:", "groupSelectionInView:", "orderFrontFontPanel:", "translate:" ); Super = NSObject; }; Gorm = { Actions = ( "editClass:", "createSubclass:", "testInterface:", "setName:", "selectAllItems:", "paste:", "palettes:", "loadSound:", "loadPalette:", "inspector:", "infoPanel:", "endTesting:", "delete:", "cut:", "copy:", "close:", "miniaturize:", "debug:", "loadImage:", "orderFrontFontPanel:", "ungroup:", "groupSelectionInScrollView:", "groupSelectionInBox:", "groupSelectionInSplitView:", "remove:", "addAttributeToClass:", "instantiateClass:", "createClassFiles:", "loadClass:", "preferencesPanel:", "guideline:", "print:", "groupSelectionInView:" ); Outlets = ( gormMenu, guideLineMenuItem ); Super = NSApplication; }; GormDocumentController = { Actions = ( ); Outlets = ( ); Super = NSDocumentController; }; }gorm-1.2.24/English.lproj/Gorm.gorm/data.info0000644000000000000000000000027013410616261017414 0ustar rootrootGNUstep archive000f4240:00000003:00000003:00000000:01GormFilePrefsManager1NSObject%01NSString&%Latest Version0±& % Typed Streamgorm-1.2.24/English.lproj/GormClassPanel.gorm/0000755000000000000000000000000013410616261017575 5ustar rootrootgorm-1.2.24/English.lproj/GormClassPanel.gorm/objects.gorm0000644000000000000000000001055113410616261022116 0ustar rootrootGNUstep archive00002af9:00000025:0000006b:00000004:01GSNibContainer1NSObject01NSMutableDictionary1 NSDictionary&01NSString&%NSOwner0±&%GormClassPanelController0±&%GSCustomClassMap0±&0±& % SelectPanel01GSWindowTemplate1GSClassSwapper0 ±&%NSPanel1NSPanel1 NSWindow1 NSResponder% ?€ A Ct CŒ€& % Cö DK0 1 NSView% ?€ A Ct CŒ€  Ct CŒ€&0 1 NSMutableArray1 NSArray&0 1 NSBrowser1 NSControl% A Bx Ca CQ  Ca CQ&0 ± &01 NSScroller% @ ?€ C] A  C] A&0± &%01NSCell0±&01NSFont%&&&&&&&&&° 2 scrollViaScroller:v12@0:4@801 NSScrollView% A¸ Ca C#  Ca C#&0± &01 NSClipView% A¨ @ CJ C  CJ C&0± &01NSMatrix%  CJ BÈ  CJ BÈ&0± &%01 NSActionCell0±&°&&&&&&&&%’% CJ BÈ 01NSColor0±&%NSNamedColorSpace0±&%System0±&%controlBackgroundColor°0±& % NSBrowserCell0 1 NSBrowserCell°°&&&&&&&&%%0!± &° 2doClick:2doDoubleClick:’0"±°0#±&%System0$±&%controlBackgroundColor0%±% @ @ A C  A C&0&± &%0'±°°&&&&&&&&&°2 _doScroll:v12@0:4@8°% A A A A °%%0(±°°&&&&&&&&° 0)±&%NSMatrix0*±&%/% BȰ @ ?€ C] A Ca C#’’0+± &0,1NSBrowserColumn°°%°*%%0-1NSButton% Bº A B` AÀ  B` AÀ&0.± &%0/1 NSButtonCell00±&%OK°&&&&&&&&%’01±&02±&&&&031NSForm% @À B Cd A   Cd A &04± &%051 NSFormCell06±&°&&&&&&&&%’ ¿€07±08±&%Field:°&&&&&&&&% Cd A  @@09±°0:±&%System0;±&%controlBackgroundColor°90<±& % NSFormCell%%0=± &0>±0?±&°&&&&&&&&%’ Bš0@±0A±& % Class Name:°&&&&&&&&’’’°>0B±°0C±&%System0D±&%windowBackgroundColor0E±&%Window0F±&%Select A Class°F @@ B F@ F@%0G1NSImage0H±&%NSApplicationIcon&   D  D€0I±&%Form°30J±&%Button°-0K±& % GormNSBrowser° 0L± &0M1NSNibConnector°0N±&%NSOwner0O±°K0P±°J0Q1 NSNibOutletConnector°N°K0R±& % classBrowser0S± °N°0T±&%panel0U± °N°J0V±&%okButton0W1!NSNibControlConnector°J°N0X±& %  okButton:0Y± °K°N0Z1"NSMutableString&% delegate0[±°I0\±!°K°N0]±&% browserAction:0^± °N°I0_±& % classNameForm0`± °I°J0a±"& %  nextKeyView0b± °K°I°a0c± °J°K°a0d± °°K0e±"&% initialFirstResponder0f1# GSMutableSet1$ NSMutableSet1%NSSet&°gorm-1.2.24/English.lproj/GormClassPanel.gorm/data.classes0000644000000000000000000000056413410616261022072 0ustar rootroot{ "## Comment" = "Do NOT change this file, Gorm maintains it"; FirstResponder = { Actions = ( "okButton:", "browserAction:" ); Super = NSObject; }; GormClassPanelController = { Actions = ( "okButton:", "browserAction:" ); Outlets = ( okButton, classBrowser, panel, classNameForm ); Super = NSObject; }; }gorm-1.2.24/English.lproj/GormClassPanel.gorm/data.info0000644000000000000000000000027013410616261021362 0ustar rootrootGNUstep archive00002af9:00000003:00000003:00000000:01GormFilePrefsManager1NSObject% 01NSString&%Latest Version0±& % Typed Streamgorm-1.2.24/English.lproj/GormSetName.gorm/0000755000000000000000000000000013410616261017104 5ustar rootrootgorm-1.2.24/English.lproj/GormSetName.gorm/objects.gorm0000644000000000000000000001022713410616261021425 0ustar rootrootGNUstep archive00002af9:00000021:00000077:00000001:01GSNibContainer1NSObject01NSMutableDictionary1 NSDictionary& 01NSString&%NSOwner0±&%GormSetNameController0±&%GSCustomClassMap0±&0±& % ImageView01 NSImageView1 NSControl1NSView1 NSResponder% A B¢ B@ B@  B@ B@&0 1 NSMutableArray1 NSArray&%0 1 NSImageCell1 NSCell0 1NSImage0 ±& % Gorm.tiff0 1NSFont%&&&&&&&&%%% B@ B@’0±&% Button101NSButton% C5 @À B’ A°  B’ A°&0± &%01 NSButtonCell1 NSActionCell0±&%Cancel0±%&&&&&&&&%’0±&0±&&&&0±& % NSVisible0± &01GSWindowTemplate1GSClassSwapper0±&%NSPanel1NSPanel1NSWindow% ?€ A C« C &% C– D%@0±% ?€ A C« C   C« C &0± &01 NSTextField% B| B¢ C†€ B@  C†€ B@&0± &%01NSTextFieldCell0±&%Set Name0 ±% A&&&&&&&&0%’0!1NSColor0"±&%NSNamedColorSpace0#±&%System0$±&%textBackgroundColor0%±°"°#0&±& % textColor’0'±% A B Bh A°  Bh A°&0(± &%0)±0*±&%Name:°&&&&&&&&0%’0+±°"0,±&%System0-±&%textBackgroundColor0.±°"°,0/±& % textColor’00±% B˜ B Cz A   Cz A &01± &%02±03±&° &&&&&&&&0%04±% C€ @À B’ A°  B’ A°&05± &%06±07±&%set Name08±09±& %  common_ret° &&&&&&&&%’0:±&% 0;±&0<±0=±& %  common_retH&&&2 performClick:v12@0:4@80>±°"0?±&%System0@±&%textBackgroundColor0A±°"°?0B±& % textColor’°4°°0C1NSBox% B C« @  C« @&0D± &0E±% @à @à C¤   C¤ &0F± &0G±0H±&%Box° &&&&&&&&0%’0I±°"0J±&%System0K±&%windowBackgroundColor0L±°"0M±&%System0N±& % textColor @  @ %%°I0O±&%Window0P±&%Panel°P A AÈ F@ F@%0Q±0R±&%NSApplicationIcon&   D  D€0S±&%Box°C0T±&%Button°40U±& % TextField°0V±& %  TextField1°'0W±& %  TextField2°00X±&%SetName°0Y± &0Z1NSNibConnector°X0[±&%NSOwner0\±°U0]±°V0^±°W0_±°T0`±°0a±°0b1NSNibControlConnector°W°T0c±& % performClick:0d1NSNibOutletConnector°[°0e±& % cancelButton0f±°[°T0g±&%okButton0h±°[°W0i±& % textField0j±°[°X0k±&%window0l±°T°[0m±&% okHit:0n±°°[0o±& %  cancelHit:0p±°S0q±°W°T0r1NSMutableString& %  nextKeyView0s±°T°°r0t±°°W°r0u±°X°W0v±&% initialFirstResponder0w1 GSMutableSet1 NSMutableSet1!NSSet&°gorm-1.2.24/English.lproj/GormSetName.gorm/Gorm.tiff0000644000000000000000000001004613410616261020663 0ustar rootrootII*`€ P8$ „BaP¸d6ˆDaêrØõ~*È¢PÉüRˆMq)$–M'”JeQH²xª:"Éc7ñà„-’áÇü‚E* PhT:±~š)ßȈëþm8Oဃü蕺åv½F¤ ßèbHÊ7œÎßõ:­^³^¸\nQ*2f’ÿB’[EF×T«V+W<& º”©VK5>ÓRÀ[°x|¦V‹_Ý©HrMï~¶`mùm&–MFLbŸÙÈö~Õ¡Éi¶[8n£x½_*üŽ i¿àB±óü°/¿ÍC¡N>ÿmßpz]8xA_’­DçCGÔðm c¢üöyD¿ÇÃAËü:ŸÁ×Kãòùý#ÁÙþ€àK&û@#ð_é¿ô@°‹dN“%|þ¿ð  CŒ´) ˜tñ*ºEŸñ G$ƒÔd=©lbÇlpb™§ |}œ’ þxH‡ùÛ#ŸæÌ”sÒišXʲã„B,­+Ë´YD‘€OÌ Å0Ó)ÌsÍù¹5ŸæÔÝ6ÍæÜäÎFÜàmNçù±=Ÿæ\ý>Ï䵆´)vQ£ -ÄRëÀ~ƒ ˜ÿJRÃE4?4èþnÔÉ«QŸæLšUMQU5iÿVš5}]Xæul™õÉþYׇù7_Ÿä=„6)þ+YèoeÃj ¼#ðzåÀä2åáHOŸæ¥O=›ù¡]V•¥Ri[¦¡©UÝÉž™—q]]WY¯{Ÿåýô”·éÿ0Ÿäž‘8)þAa pð<â®n†˜š…áˆn‘„I:_–¥‘•ѯ­0?úöR‹‚iü`–å©þ[–±‡™Ö¦Q‘YV7=ÓuçF†}qgõ« üšcåN””zmÿ0俤’ú©þGk Á Cñö‹» þ(ìƒøÛ³âøÄ7æˆnŸåye›”% o¨Â§øtˆs©‘Y3V$‡ÇñJIù$2‹¹y†½îkç®…¢^w~}¢˜íù_¥.™§)þOuù;ÕŸäÉ4Mõ¤É:“É<ô¥þX–fÿ·nù@Z¦£¹áŽc‰ŽxúÁ°y¿:y£Ä(‚šˆŒ¼!¢b$&‘>Nåô—eÁqÌN¼¬ÊkVµ¹]ýéöæÝE ¸tÍ4QºwRîGø¦X\ ±œïÛxÿ"‰ù‡Àô"Çðz=ü;‡Q ?ƒ rCø8‡þ?ƒa ãø‚µ¨È”«${…Œ a M[ßÂ$!1þ"‚æ¡áH Þ˜ÇI¬íÌ3¡eÇø¤ŠOö* (­C·rcütŽ‘Ø?Æðàãþ'‹ñþ Cø‘áô>ÖºSÅãü:‡A?ƒqø8禂 _àôÁÔÀx fˆXp!‚4ðèDC¢8!ØNM\"DQ úð¹âl tpÂTDµÁ2$£T£MàL;<ìÅ [ƒ`i®å/Çøó˜Qr.ô‚9øà™CübLÖ"cPƒRª6ÿD $ áøàÚ×ÁÐ:“a˜‘üA'Áp‚aüÁP!ìŒÊ²9 G¤›à‡B& ÄaaØc ƒøGÄAü$(0­ŒN‰0Útƒ$Z-0f¿T`yñßGÇøì¤CüqÒY“2Ž)["ð^;´¡JéjúŒÂ®š/ÁH* xaÌ9ÁüømÁƒñý9'0ds˜7ÎX2hþ‘Äx;ÕüP žpÄ®28o$¤¤–Ÿ¢˜A¡ü#C0^ ôIb”%\˜kŒL*:;«Àÿìúü?߸ÿ¶ Œ‹  Xÿö-£D±wcÇøÂ²Cýù?1ueÇýcüUYÛ(ü‡ø¨´V*Æ+ùHHh…¼àÒ çPv°àx Çð„‡ ”=²Ìí˜þ vÀðJEð4 X Ä Cêõa&“ñó¹ú#ÂeFá|*á#[‡ð” hn%cF© #T Á˦ä𩆛qèZÍñi}Çû3cþË‹«Ò)•™²ç@‘L)¯Ë48-_, æ…š¨—á B‰Ók® tધÕê í rØr¦Î`ÙqV àÂwX?xAüˆ21X&8ˆÐˆÉú#¤íkˆµ´¥ !H'‡ðëÉCÿ%·,©,37YM<àõò¾ìÂÀVn–R×:ï‘Øÿ¹¤´¶³@ÿ a-•@F ÇøE8ƒ`YÐ*S²w [kn´ÃöÐ8â1þÁ´æ µ85\@Ð §pd´-‚ÀF?HÒèC+tÂ4ºÑ">jnùJÁÀ3áÐ9‡0þHãµ='Åê¼”Ê2geÜ~ÆNÁ×÷þ2Ex,Ú‹SjO°=ìÑþÙÃhÿÀ†Ö„­¬?ÃXiä|)Ñý I O „€Rç>/Äç7 aÍ 9ƒuN¸s«GÎàÍ‹ðcµƒü- F?ôΛưÄDÖ'Ì#5-È"Bð ;À-„D{ɹ3%ూæ5½÷–rÏl}†­ ~_¦ÿ œÅ™Ç)ù ?ð³ËÇøPæCøƒsŠqµÁ ;T0ŠÛ-œÁgqÎýÏO÷ÞóúoMqNÞó»}ZÐÁŸÇðYž:cMiÂÈñØþÇÚ“SVËÀ%BAJ˜P䜖¸9·Ë,¾•4¡SK…ˆÿÌ<‚ÈÙ;ûgߘðN(I -°Ã_3˜& ¥pƒPxça؆€ÎGôá“yð¾°zÆúÃÿάKé-ÊÅZ@i+[‹­h^º\,u¾׈k#·DxFðš ª/â)B\$‘¡´1FnÉÌêÊñYóßj5׃“Šß,ÇÍhûYñ÷ÇþÍkáoòðf¢ðQ hງðj oËyÔÇñ3‡ÁpÎà®èà¾Åí@Ú¸œÐò¯XÒIÜ L^ ïfÀºÒÍÊž.ë¢J NÁ~¶À^íRÎ)A,ø¡ülŽÕÊø½núËM‚.>Vì¦cì¢äŒ °púîæð¯ ð|à¿!þ Јà4@$¨àÈIÞ  ÀÏêÀÎ<ŒâçïÒèAþóÀHà¨èíêÌJ›­äê¤ßªéc-*ÜþÜn%+š@Kd¶,¼aü”&įÁügG.Ìo¬¾¡knG¬ÂãÄ ï/šù ù¡þ± à0’@¤ Œ `ÔÛkRç°¦• €fQ¯øôlý pµ®¢Îà©Îœþ+ˆ ïX m&Ý+[ /m. @Y Ž‹ ⃠P8ÕmZ¤¡ÆÊèÍf\¥&îŠAH¾ËðîËäBÌûm}Ql ½àT·>ÙàØ¬Ñ8Ûoäç   z€haü@Hµ „ð· P²ë \Íç NžÎ¢ÞÍñάëdÒðÖë.¶ ±ƒàÁt!¼^!˜Á§`€Œ Á D§ ™¯©r2ð Â.ô”ðp¡þ€“`º €Ò› Økí¬ aüç¬Àgaü€RÀ¾Å†À¡ÿæßÉÖë¦ÏJÐ  ˆêaÿ Š~öfÁ*’ß­ÈÜÀ>a®Bˆ2Àò=Ž62Ìv!3$+:Q˜òNá.!þz làš  ªÀ}/oZ …°ãCÔÀ~àpbáü’t²zÑt§à`R~ô`»(@¼®ô`Á2ÑlÌR@ܸ‘úÞ¡þõÁþöÿ é×áýÒ³!n ²·+ÂT“hî=Æ =3h†ºFQ¯7îJX%†sˆèò äÛnd F@DrÖÂ`0`î XàÆIÌ S°ý°)2/Zõmè-°©r•<×<¬á)qZ¨ò€ê°1y5sTö±€Ý`À§+²(å? þ`@!þ à@áöÎÀ`AA«Hó~Ú† `ÂBà†à‚)Ô Àf¶" "`F¡`oRly ƒ [;IÕ‰Ô ŠœL6ÀçF4fÄ @„ŒGË„õ1hôsHêë[>0Ö8ζÿíÑ!Ð `OIt›î(.,N^ !ð´°E–áÞ ® aö `•&‘ÿ$ Á§Mr†Kh@–ŠÎá4>&& 1àÊÀ‚ç À|/s´œÀÌÂàáG`ðªÀòªÀöj£Pê¢Ó¨y”c 3Ôõ’“=Ñu(p(ëSêÓïIÐ @N³ñIód$ ¨ @¼è,áé: ŽA ,ìA©Ö @ÎÃøaüks ¬ÚÀ”Ùêœ÷§Ì÷ðî Qઠ!üÀ § &ú uô\ÑJPëh v·÷Q ­:sªÝ´tU)ÓÂêñ4À» QHÍÈ ÍÏ ŽTUI_B?I®¹J"$^ ~AN–á31€¼ñ †UŠK€  f 0`.)¬ù¦FÆlþàá5%Dü žp¡X i6` ¨Á"í!þ¸”wF¡üënÀù\,:&µ"Ðu$ÄŠœô°PµpÒß๒±³ìèõA_µH 5G_­ÑTâ!<Ù ä “šö'b¶.bbX°ÖØ€màö –Ed‘Œán 5©nõ¨Àº üÀ¨*¼f¶æÀûg õQ‚jª×gU [ƒ›3¡þÅuÜêÌ_ ð³5U8èÖ§IÍÑkIU÷_Ö¸!ÀD Lö-c„×`÷`Ànàe,Æè|`Î !ü`Æe@úpUõÌü5)׸5Ðéÿ.• ò“*S>3Y­ÉIU=_5ýTR·{–µJpKÂÔ!ü`±NA\ µ|ôÿgÖQ*£P¬9)0:Ò…31rëâÒöžÒðº98_Üx €øöøë¯n–GmÄ!€Ð¶qp?€x1€×õ@m÷m7ƒÀÿ¸B"00ªX(R€ü '€ü 'gorm-1.2.24/English.lproj/GormSetName.gorm/data.classes0000644000000000000000000000057513410616261021403 0ustar rootroot{ "## Comment" = "Do NOT change this file, Gorm maintains it"; FirstResponder = { Actions = ( "orderFrontFontPanel:", "okHit:", "cancelHit:" ); Super = NSObject; }; GormSetNameController = { Actions = ( "okHit:", "cancelHit:" ); Outlets = ( cancelButton, okButton, window, textField ); Super = NSObject; }; }gorm-1.2.24/English.lproj/GormSetName.gorm/data.info0000644000000000000000000000027013410616261020671 0ustar rootrootGNUstep archive00002af9:00000003:00000003:00000000:01GormFilePrefsManager1NSObject% 01NSString&%Latest Version0±& % Typed Streamgorm-1.2.24/English.lproj/GormPrefHeaders.gorm/0000755000000000000000000000000013410616261017740 5ustar rootrootgorm-1.2.24/English.lproj/GormPrefHeaders.gorm/objects.gorm0000644000000000000000000001246713410616261022271 0ustar rootrootGNUstep archive00002af9:00000026:00000094:00000001:01GSNibContainer1NSObject01NSMutableDictionary1 NSDictionary& 01NSString&% Button201NSButton1 NSControl1NSView1 NSResponder% C6 A@ B` AÀ  B` AÀ&01 NSMutableArray1 NSArray&%01 NSButtonCell1 NSActionCell1NSCell0±&%Remove01NSFont% A@&&&&&&&&%’0 ±&0 ±&&&&0 ±&%NSOwner0 ±&%GormHeadersPref0 ±& % ScrollView01 NSScrollView% Aà B0 C’ C  C’ C&0± &01 NSClipView% A¨ AÀ C†€ BØ  C†€ BØ&0± &01 NSTableView%  C†€ C!  C†€ C!&0± &%0±0±&0±%&&&&&&&&0± &01 NSTableColumn0±&%column2 C†€ A  GÃP01NSTableHeaderCell1NSTextFieldCell0±&%Headers0±% &&&&&&&&0%’01NSColor0±&%NSNamedColorSpace0±&%System0 ±&%controlShadowColor0!±°0"±&%System0#±&%windowFrameTextColor0$±0%±&%six°°%&&&&&&&&0%’0&±°°"0'±&%textBackgroundColor0(±°°"0)±& % textColor0*±°°"0+±& % gridColor0,±°0-±&%System0.±&%controlBackgroundColor0/1NSTableHeaderView%  C†€ A°  C†€ A°&00± &011GSTableCornerView% @ @ A˜ A°  A˜ A°&02± &%% A€’ @ @@03±°°"04±&%controlBackgroundColor051 NSScroller% @ AÀ A Bþ  A Bþ&06± &%07±°°&&&&&&&&&°2 _doScroll:v12@0:4@808±% A¨ @ C†€ A°  C†€ A°&09± &°/0:±°°"0;±& % controlColor0<±% A¨ C C†€ A  C†€ A&0=± &%0>±0?±&°&&&&&&&&&°²°1°% A A A A °<°5°80@±&%GSCustomClassMap0A±&0B±&%Button0C±% Aà CP C A€  C A€&0D± &%0E± 0F±&%Preload Headers0G1NSImage0H1NSMutableString&% common_SwitchOff°&&&&&&&&%’0I±&0J±&0K±0L±&% common_SwitchOn&&&0M±&%HeaderDataSource0N1 GSNibItem°M  &0O±& % TableColumn0P±0Q±&%column1 BP A  GÃP0R±0S±&% °&&&&&&&&0%’0T±°0U±&%System0V±& % controlColor°!0W±0X±&%sept°°X&&&&&&&&0%’°&°(0Y±& % GormNSPanel0Z1GSWindowTemplate1GSClassSwapper0[±&%NSPanel1NSPanel1 NSWindow% ?€ A C®€ Ct& % C€ D@0\±% ?€ A C®€ Ct  C®€ Ct&0]± &°C0^±% Bò A@ B` AÀ  B` AÀ&0_± &%0`± 0a±&%Add°&&&&&&&&%’0b±&0c±&&&&°°0d±°0e±&%System0f±&%windowBackgroundColor0g±&%Window0h±&%Headers°h ?€ A¸ F@ F@%0i±0j±&%NSApplicationIcon&   D  D€0k±&%GormNSTableView°0l±& %  TableColumn1°0m±&% Button1°^0n± &0o1!NSNibConnector°Y0p±&%NSOwner0q±!°B0r±!°m0s±!°0t1"NSNibOutletConnector°p°m0u±& % addButton0v±"°p°0w±& % removeButton0x±"°p°B0y±& % preloadButton0z1#NSNibControlConnector°B°p0{±&% preloadAction:0|±#°m°p0}±& %  addAction:0~±#°°p0±& %  removeAction:0€±"°p°Y0±&%window0‚±!° 0ƒ±!°k0„±!°O0…±!°l0†±!°M°p0‡±"°k°M0ˆ±& % dataSource0‰±"°k°p0б&%delegate0‹±"°p°k0Œ±&%table0±"°B°k0ޱ& %  nextKeyView0±"°k°m°Ž0±"°m°°Ž0‘±"°°B°Ž0’±"°Y°B0“±&% initialFirstResponder0”1$ GSMutableSet1% NSMutableSet1&NSSet&°N°Zgorm-1.2.24/English.lproj/GormPrefHeaders.gorm/data.classes0000644000000000000000000000073113410616261022231 0ustar rootroot{ "## Comment" = "Do NOT change this file, Gorm maintains it"; FirstResponder = { Actions = ( "orderFrontFontPanel:" ); Super = NSObject; }; GormHeadersPref = { Actions = ( "addAction:", "removeAction:", "preloadAction:" ); Outlets = ( preloadButton, addButton, removeButton, window, table ); Super = NSObject; }; HeaderDataSource = { Actions = ( ); Outlets = ( ); Super = NSObject; }; }gorm-1.2.24/English.lproj/GormPrefHeaders.gorm/data.info0000644000000000000000000000027013410616261021525 0ustar rootrootGNUstep archive00002af9:00000003:00000003:00000000:01GormFilePrefsManager1NSObject% 01NSString&%Latest Version0±& % Typed Streamgorm-1.2.24/English.lproj/GormPrefGuideline.gorm/0000755000000000000000000000000013410616261020272 5ustar rootrootgorm-1.2.24/English.lproj/GormPrefGuideline.gorm/objects.gorm0000644000000000000000000001222513410616261022613 0ustar rootrootGNUstep archive000f4240:00000023:00000070:00000000:01GSNibContainer1NSObject01 NSMutableSet1NSSet&01GSWindowTemplate1GSClassSwapper01NSString&% NSPanel1NSPanel1 NSWindow1 NSResponder% ?ð @" @uà @o@J I @vð @„ð01 NSView% ?ð @" @uà @o@  @uà @o@J01 NSMutableArray1 NSArray&01NSBox% @Q@ @? @i @g`  @i @g`J0± &0 ± % @ @ @g@ @d@  @g@ @d@J0 ± &0 1 NSTextField1 NSControl% @( @UÀ @\À @5  @\À @5J0 ± &%0 1NSTextFieldCell1 NSActionCell1NSCell0±&%Container Edge:01NSFont% A@&&&&&&JJ &&&&&&I’01NSColor0±&% NSNamedColorSpace0±&%System0±&%textBackgroundColor0±°°0±& % textColor’01NSSlider% @I @H @UÀ @0  @UÀ @0J0± &%01 NSSliderCell0±&%100±%01NSNumber1NSValued @$&&&&&&JJ&&&&&&I’ ?€ A  ¿€%0±0±&°&&&&&&JJ &&&&&&I’°0±°0±&% System0 ±&% controlTextColor0!±0"±&0#1NSImage0$±&%common_SliderHoriz°&&&&&&JJ&&&&&&I%0%±% @_À @UÀ @? @5  @? @5J0&± &%0'±0(±&%Text°&&&&&&JJ &&&&&&I’0)±°°0*±&% windowBackgroundColor°’0+1NSButton% @PÀ @$ @L @8  @L @8J0,± &%0-1 NSButtonCell0.±&%Reset°&&&&&&JJ&&&&&&I’0/±&00±&&&& &&01±% @( @Q@ @\À @2  @\À @2J02± &%03±04±&%Between Views:°&&&&&&JJ &&&&&&I’°°’05±% @_À @Q@ @? @5  @? @5J06± &%07±08±&%Text°&&&&&&JJ &&&&&&I’°)°’091 NSColorWell% @PÀ @]€ @J€ @>  @J€ @>J0:± &%0;±0<±&°&&&&&&JJ&&&&&&0=±0>±&% NSCalibratedWhiteColorSpace ?€’0?±0@±& % Guide Spacing°&&&&&&JJ&&&&&& @ @%%°)0A±&%Window0B±&%Panel°B ¿ð À @Ç @ÃxI0C±0D±&% NSApplicationIcon&   @ž @’À0E± &0F± &0G1NSMutableDictionary1 NSDictionary& 0H±&%Box°0I±&%Slider°0J±& % TextField3°50K±& % ColorWell(0)°90L±& % TextField° 0M±& % TextField2°10N±&%Button°+0O±&% NSOwner0P±&%GormGuidelinePref0Q±& % GormNSPanel°0R±& % TextField1°%0S±&%Cell(0)°;0T± &0U1 NSNibConnector°Q0V±&% NSOwner0W± °H0X± °L0Y1!NSNibOutletConnector°V°Q0Z±&%window0[± °I0\± °R0]1"NSNibControlConnector°I°V0^1#NSMutableString&%ok:0_±!°V°I0`±#& % spacingSlider0a±!°V°R0b±#&%currentSpacing0c± °N0d±"°N°V0e±&%reset:0f± °M0g± °J°V0h±!°V°J0i±& % halfSpacing0j± °K0k± °S°K0l±!°V°K0m±& % colorWell0n±"°K°V0o±&%ok:0p±&gorm-1.2.24/English.lproj/GormPrefGuideline.gorm/data.classes0000644000000000000000000000055113410616261022563 0ustar rootroot{ "## Comment" = "Do NOT change this file, Gorm maintains it"; FirstResponder = { Actions = ( "reset:" ); Super = NSObject; }; GormGuidelinePref = { Actions = ( "ok:", "reset:" ); Outlets = ( spacingSlider, window, "_view", currentSpacing, halfSpacing, colorWell ); Super = NSObject; }; }gorm-1.2.24/English.lproj/GormPrefGuideline.gorm/data.info0000644000000000000000000000027013410616261022057 0ustar rootrootGNUstep archive000f4240:00000003:00000003:00000000:01GormFilePrefsManager1NSObject%01NSString&%Latest Version0±& % Typed Streamgorm-1.2.24/English.lproj/GormInconsistenciesPanel.gorm/0000755000000000000000000000000013410616261021670 5ustar rootrootgorm-1.2.24/English.lproj/GormInconsistenciesPanel.gorm/objects.gorm0000644000000000000000000000502113410616261024205 0ustar rootrootGNUstep archive00002ced:0000001f:0000003e:00000001:01GSNibContainer1NSObject01 GSMutableSet1 NSMutableSet1NSSet&01GSWindowTemplate1GSClassSwapper01NSString&%NSPanel1 NSPanel1 NSWindow1 NSResponder% ?€ A Cù C†&% D DD01 NSView% ?€ A Cù C†  Cù C†&01 NSMutableArray1NSArray&01 NSScrollView% A A  Cï C[  Cï C[&0± &0 1 NSClipView% A¨ @ C〠CW A A  C〠CW&0 ± &0 1 NSTextView1NSText% A A  C〠C[  C〠C[&0 ± &0 1NSColor0±&%NSNamedColorSpace0±&%System0±&%textBackgroundColor C〠C[ K–€ K–€0±°°0±& % textColor C〠K–€° 01 NSScroller1 NSControl% @ @ A CW  A CW&0± &%01NSCell0±&01NSFont%&&&&&&&&&&&&&&&°2 _doScroll:v12@0:4@8° % A A A A °01 NSTextField% A Cj Cï AÀ  Cï AÀ&0± &%01NSTextFieldCell1 NSActionCell0±&0±% A@°&&&&&&&&&&&&&&%’0±°0±&%System0±&%textBackgroundColor0 ±°°0!±& % textColor’0"±°0#±&%System0$±&%windowBackgroundColor0%±&%Window0&±&%Inconsistencies Found°& @@ B F@ F@%&  DÈ D–0'± &0(± &0)1NSMutableDictionary1 NSDictionary&0*±& % TextField(0)°0+±&%NSOwner0,±&%GormGormWrapperLoader0-±& % ScrollView(0)°0.±&%Panel(0)°0/±& % TextView(0)° 00±&%View(0)°01± &021NSNibConnector°.03±&%NSOwner04±°0°.05±°-°006±°/°-07±°*°0081NSNibOutletConnector°3°/091NSMutableString& % textField0:±°3°*0;±&%message0<±°3°.0=±&%panel0>±&gorm-1.2.24/English.lproj/GormInconsistenciesPanel.gorm/data.classes0000644000000000000000000000044613410616261024164 0ustar rootroot{ "## Comment" = "Do NOT change this file, Gorm maintains it"; GormGormWrapperLoader = { Actions = ( ); Outlets = ( message, textField, panel ); Super = GormWrapperLoader; }; GormWrapperLoader = { Actions = ( ); Outlets = ( ); Super = NSObject; }; }gorm-1.2.24/English.lproj/GormInconsistenciesPanel.gorm/data.info0000644000000000000000000000027013410616261023455 0ustar rootrootGNUstep archive00002ced:00000003:00000003:00000000:01GormFilePrefsManager1NSObject%01NSString&%Latest Version0±& % Typed Streamgorm-1.2.24/English.lproj/GormSoundInspector.gorm/0000755000000000000000000000000013410616261020527 5ustar rootrootgorm-1.2.24/English.lproj/GormSoundInspector.gorm/objects.gorm0000644000000000000000000012076313410616261023057 0ustar rootrootGNUstep archive00002af9:00000024:00000077:00000001:01GSNibContainer1NSObject01NSMutableDictionary1 NSDictionary& 01NSString&%NSOwner0±&%GormSoundInspector0±&%GSCustomClassMap0±&0±& % NSVisible01NSMutableArray1NSArray&0 ±&%GormCustomView0 1 GSCustomView1 GSNibItem0 ±& % GormSoundView  Cn Cƒ&0 ±&% Button10 1 NSButton1 NSControl1 NSView1 NSResponder% B’ A  B| Bš  B| Bš&0±&%01 NSButtonCell1 NSActionCell1NSCell0±&%Play01NSImage B@ B@01NSColor0±&%NSCalibratedWhiteColorSpace 0±&01NSBitmapImageRep1 NSImageRep0±&%NSDeviceRGBColorSpace B@ B@%%0%001 NSDataMalloc1 NSDataStatic1NSData&$š$šII*$ddh¾uuyÎ))*>ÿ~~†ÿ®®±ÿ««­ùÿeÿ…ÿ´´¶þ¤¤¦ÞÿeÿdÿTTfÿ¦¦«ÿ¤¤©úÿeÿeÿeÿttÿÅÅÈÿÂÂÄøÿeÿeÿeÿeÿggyÿ®®±ù——˜ÅÿeÿeÿeÿeÿeÿBBKÿœœŸø““–¹##$+ÿeÿeÿeÿeÿeÿeÿ***ÿ””™ÿ••š¿''(1ÿeÿeÿeÿeÿeÿeÿeÿ__gÿ¡¡©ÿ‰‰¿ÿeÿeÿeÿeÿeÿeÿeÿeÿff}ÿžž¨ùww|žÿeÿeÿeÿeÿeÿeÿeÿeÿeÿrr‹ÿ¾¾Åþ··¼íÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿWW|ÿffsÒ""#8ÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿddwÿ™™›ôttt¢ÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿWWrÿ©©®îŠŠŒ£ÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿIIuÿIIQ¥ÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿUÿ<ÿ 8ò ÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿNÿQÿ ÿeÿeÿeÿeÿeÿeÿeÿeÿeÿRÿLÿ99XÿGGO½%ÿeÿeÿeÿeÿeÿeÿeÿeÿUÿJÿ;;\ÿTT`Î--.A ÿeÿeÿeÿeÿeÿeÿeÿUÿUÿ..OÿJJVÚ003U ÿeÿeÿeÿeÿeÿeÿeÿNÿ..Yÿ@@L­'ÿeÿeÿeÿeÿeÿUÿFÿ??cÿYY`³//1I ÿeÿeÿeÿeÿUÿ LÿLLeÿcckÎ;;=NÿeÿeÿeÿNÿOÿBBPÿ||öwwy§**+4ÿeÿeÿNÿSÿ??Sÿ‚‚‹û~~¸!!!)ÿeÿUÿGÿSShÿ˜˜¡þ––›Ö,,-8ÿeÿ Lÿ``qÿ•þ……Œêÿ Gÿddtÿ““šü€€…Îÿ__fÿ““–ÿ……‡ÚUUYýŒŒÿ‹‹ýccc{ccc{ þÿ00’$$R01NSFont% A@&&&&&&&&%’0±&0±&&&&0±&%Box01NSBox% A B¸ C| C”  C| C”&0±&0± % @à @à Cn Cƒ€  Cn Cƒ€&0±&° 0 1NSTextFieldCell0!±&%Sound Attributes°&&&&&&&&0%’0"±0#±&%NSNamedColorSpace0$±&%System0%±&%windowBackgroundColor0&±°#0'±&%System0(±& % textColor @  @ %%0)±&% Button20*± % C A  B| Bš  B| Bš&0+±&%0,±0-±&%Pause0.± B@ B@°0/±&00±° B@ B@%%0%001±&$š$šII*$eÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿ þÿ00’$$R°&&&&&&&&%’02±&03±&&&&04±&% Button305± % CG A  B| Bš  B| Bš& 06±&%07±08±&%Record09± B@ B@°0:±&0;±° B@ B@%%0%00<±&$š$šII*$0/yF³WÝaöeÿaöWÝF³/y0"XMÃeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿMÃ"X0J»eÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿJ»0&`eÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿ&`,qeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿ,q&`eÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿ&`0eÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿ0J»eÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿJ»"Xeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿ"XMÃeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿMÃ0eÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿ0/yeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿ/yF³eÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿF³WÝeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿWÝaöeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿaöeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿaöeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿaöWÝeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿWÝF³eÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿF³/yeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿ/y0eÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿ0MÃeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿMÃ"Xeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿ"XJ»eÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿJ»0eÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿ0&`eÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿ&`,qeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿ,q&`eÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿ&`0J»eÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿJ»0"XMÃeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿMÃ"X0/yF³WÝaöeÿaöWÝF³/y0 þÿ00’$$R°&&&&&&&&%’0=±&0>±&&&&0?±&%Button0@± % A A  B| Bš  B| Bš&0A±&%0B±0C±&%Stop0D± B@ B@°0E±&0F±° B@ B@%%0%00G±&$š$šII*$eÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿ þÿ00’$$R°&&&&&&&&%2 stop:v12@0:4@80H±&0I±&&&&0J±& % InspectorWin0K1GSWindowTemplate1GSClassSwapper0L±&%NSWindow1NSWindow% ?€ A Cˆ CÂ&% CÝ€ DB0M± % ?€ A Cˆ C  Cˆ CÂ&0N±&°@° °*°5°°"0O±&%Window0P±&%Inspector Window°P ?€ A  F@ F@%0Q±0R±&%NSApplicationIcon&   D  D€0S±&0T1NSNibConnector°J0U±&%NSOwner0V±°?0W±° 0X±°)0Y±°40Z±°0[1NSNibOutletConnector°U°J0\±&%window0]1 NSNibControlConnector°?°U0^±&%stop:0_± ° °U0`±&%play:0a± °)°U0b±&%pause:0c± °4°U0d±&%record:0e±° 0f±°U° 0g±& % soundView0h±°?° 0i1!NSMutableString& %  nextKeyView0j±° °)°i0k±°)°4°i0l±°4°?°i0m±°J°?0n±!&% initialFirstResponder0o1" GSMutableSet1# NSMutableSet1$NSSet&°Kgorm-1.2.24/English.lproj/GormSoundInspector.gorm/play.tiff0000644000000000000000000002245213410616261022353 0ustar rootrootII*$ddh¾uuyÎ))*>ÿ~~†ÿ®®±ÿ««­ùÿeÿ…ÿ´´¶þ¤¤¦ÞÿeÿdÿTTfÿ¦¦«ÿ¤¤©úÿeÿeÿeÿttÿÅÅÈÿÂÂÄøÿeÿeÿeÿeÿggyÿ®®±ù——˜ÅÿeÿeÿeÿeÿeÿBBKÿœœŸø““–¹##$+ÿeÿeÿeÿeÿeÿeÿ***ÿ””™ÿ••š¿''(1ÿeÿeÿeÿeÿeÿeÿeÿ__gÿ¡¡©ÿ‰‰¿ÿeÿeÿeÿeÿeÿeÿeÿeÿff}ÿžž¨ùww|žÿeÿeÿeÿeÿeÿeÿeÿeÿeÿrr‹ÿ¾¾Åþ··¼íÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿWW|ÿffsÒ""#8ÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿddwÿ™™›ôttt¢ÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿWWrÿ©©®îŠŠŒ£ÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿIIuÿIIQ¥ÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿUÿ<ÿ 8ò ÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿNÿQÿ ÿeÿeÿeÿeÿeÿeÿeÿeÿeÿRÿLÿ99XÿGGO½%ÿeÿeÿeÿeÿeÿeÿeÿeÿUÿJÿ;;\ÿTT`Î--.A ÿeÿeÿeÿeÿeÿeÿeÿUÿUÿ..OÿJJVÚ003U ÿeÿeÿeÿeÿeÿeÿeÿNÿ..Yÿ@@L­'ÿeÿeÿeÿeÿeÿUÿFÿ??cÿYY`³//1I ÿeÿeÿeÿeÿUÿ LÿLLeÿcckÎ;;=NÿeÿeÿeÿNÿOÿBBPÿ||öwwy§**+4ÿeÿeÿNÿSÿ??Sÿ‚‚‹û~~¸!!!)ÿeÿUÿGÿSShÿ˜˜¡þ––›Ö,,-8ÿeÿ Lÿ``qÿ•þ……Œêÿ Gÿddtÿ““šü€€…Îÿ__fÿ““–ÿ……‡ÚUUYýŒŒÿ‹‹ýccc{ccc{þ00æ$ î$%@$%"%(R/home/heron/play.tiffCreated with The GIMPHHgorm-1.2.24/English.lproj/GormSoundInspector.gorm/rec.tiff0000644000000000000000000002245213410616261022157 0ustar rootrootII*$0/yF³WÝaöeÿaöWÝF³/y0"XMÃeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿMÃ"X0J»eÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿJ»0&`eÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿ&`,qeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿ,q&`eÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿ&`0eÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿ0J»eÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿJ»"Xeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿ"XMÃeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿMÃ0eÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿ0/yeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿ/yF³eÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿF³WÝeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿWÝaöeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿaöeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿaöeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿaöWÝeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿWÝF³eÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿF³/yeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿ/y0eÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿ0MÃeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿMÃ"Xeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿ"XJ»eÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿJ»0eÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿ0&`eÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿ&`,qeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿ,q&`eÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿ&`0J»eÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿJ»0"XMÃeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿMÃ"X0/yF³WÝaöeÿaöWÝF³/y0þ00æ$ î$%@$%"%(R/home/heron/rec.tiffCreated with The GIMPHHgorm-1.2.24/English.lproj/GormSoundInspector.gorm/data.classes0000644000000000000000000000046713410616261023026 0ustar rootroot{ "## Comment" = "Do NOT change this file, Gorm maintains it"; GormSoundInspector = { Actions = ( "record:", "pause:", "play:", "stop:" ); Outlets = ( soundView ); Super = IBInspector; }; GormSoundView = { Actions = ( ); Outlets = ( ); Super = NSView; }; }gorm-1.2.24/English.lproj/GormSoundInspector.gorm/rw.tiff0000644000000000000000000002245013410616261022034 0ustar rootrootII*$‹‹ýŒŒÿUUYý‹‹ýŒŒÿUUYý……‡Ú““–ÿ__fÿÿ……‡Ú““–ÿ__fÿÿ€€…Γ“šüddtÿ Gÿÿ€€…Γ“šüddtÿ Gÿÿ……Œê•þ``qÿ Lÿeÿÿ……Œê•þ``qÿ Lÿeÿÿ,,-8––›Ö˜˜¡þSShÿGÿUÿeÿÿ,,-8––›Ö˜˜¡þSShÿGÿUÿeÿÿ!!!)~~¸‚‚‹û??SÿSÿNÿeÿeÿÿ~~¸‚‚‹û??SÿSÿNÿeÿeÿÿ**+4wwy§||öBBPÿOÿNÿeÿeÿeÿÿ||öBBPÿOÿNÿeÿeÿeÿÿ;;=NcckÎLLeÿ LÿUÿeÿeÿeÿeÿÿLLeÿ LÿUÿeÿeÿeÿeÿÿ //1IYY`³??cÿFÿUÿeÿeÿeÿeÿeÿÿFÿUÿeÿeÿeÿeÿeÿÿ'@@L­..YÿNÿeÿeÿeÿeÿeÿeÿeÿÿeÿeÿeÿeÿeÿeÿeÿÿ 003UJJVÚ..OÿUÿUÿeÿeÿeÿeÿeÿeÿeÿÿeÿeÿeÿeÿeÿeÿeÿÿ --.ATT`Î;;\ÿJÿUÿeÿeÿeÿeÿeÿeÿeÿeÿÿeÿeÿeÿeÿeÿeÿeÿÿ%GGO½99XÿLÿRÿeÿeÿeÿeÿeÿeÿeÿeÿeÿÿeÿeÿeÿeÿeÿeÿeÿÿ QÿNÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿÿeÿeÿeÿeÿeÿeÿeÿÿ 8ò<ÿUÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿÿeÿeÿeÿeÿeÿeÿeÿÿIIQ¥IIuÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿÿeÿeÿeÿeÿeÿeÿeÿÿŠŠŒ£©©®îWWrÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿÿeÿeÿeÿeÿeÿeÿeÿÿttt¢™™›ôddwÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿÿeÿeÿeÿeÿeÿeÿeÿÿ""#8ffsÒWW|ÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿÿeÿeÿeÿeÿeÿeÿeÿÿ··¼í¾¾Åþrr‹ÿeÿeÿeÿeÿeÿeÿeÿeÿeÿÿeÿeÿeÿeÿeÿeÿeÿÿww|žžž¨ùff}ÿeÿeÿeÿeÿeÿeÿeÿeÿÿeÿeÿeÿeÿeÿeÿeÿÿ‰‰¿¡¡©ÿ__gÿeÿeÿeÿeÿeÿeÿeÿÿeÿeÿeÿeÿeÿeÿeÿÿ''(1••š¿””™ÿ***ÿeÿeÿeÿeÿeÿeÿÿ***ÿeÿeÿeÿeÿeÿeÿÿ##$+““–¹œœŸøBBKÿeÿeÿeÿeÿeÿÿœœŸøBBKÿeÿeÿeÿeÿeÿÿ——˜Å®®±ùggyÿeÿeÿeÿeÿÿ——˜Å®®±ùggyÿeÿeÿeÿeÿÿÂÂÄøÅÅÈÿttÿeÿeÿeÿÿÂÂÄøÅÅÈÿttÿeÿeÿeÿÿ¤¤©ú¦¦«ÿTTfÿdÿeÿÿ¤¤©ú¦¦«ÿTTfÿdÿeÿÿ¤¤¦Þ´´¶þ…ÿeÿÿ¤¤¦Þ´´¶þ…ÿeÿÿ««­ù®®±ÿ~~†ÿÿ««­ù®®±ÿ~~†ÿÿ))*>uuyÎddh¾))*>uuyÎddh¾ccc{ccc{þ00æ$ î$%@$% %(R/home/heron/rw.tiffCreated with The GIMPHHgorm-1.2.24/English.lproj/GormSoundInspector.gorm/ff.tiff0000644000000000000000000002245013410616261021777 0ustar rootrootII*$ccc{ccc{ddh¾uuyÎ))*>ddh¾uuyÎ))*>ÿ~~†ÿ®®±ÿ««­ùÿ~~†ÿ®®±ÿ««­ùÿeÿ…ÿ´´¶þ¤¤¦Þÿeÿ…ÿ´´¶þ¤¤¦ÞÿeÿdÿTTfÿ¦¦«ÿ¤¤©úÿeÿdÿTTfÿ¦¦«ÿ¤¤©úÿeÿeÿeÿttÿÅÅÈÿÂÂÄøÿeÿeÿeÿttÿÅÅÈÿÂÂÄøÿeÿeÿeÿeÿggyÿ®®±ù——˜Åÿeÿeÿeÿeÿggyÿ®®±ù——˜ÅÿeÿeÿeÿeÿeÿBBKÿœœŸøÿeÿeÿeÿeÿeÿBBKÿœœŸø““–¹##$+ÿeÿeÿeÿeÿeÿeÿ***ÿÿeÿeÿeÿeÿeÿeÿ***ÿ””™ÿ••š¿''(1ÿeÿeÿeÿeÿeÿeÿeÿÿeÿeÿeÿeÿeÿeÿeÿ__gÿ¡¡©ÿ‰‰¿ÿeÿeÿeÿeÿeÿeÿeÿÿeÿeÿeÿeÿeÿeÿeÿeÿff}ÿžž¨ùww|žÿeÿeÿeÿeÿeÿeÿeÿÿeÿeÿeÿeÿeÿeÿeÿeÿeÿrr‹ÿ¾¾Åþ··¼íÿeÿeÿeÿeÿeÿeÿeÿÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿWW|ÿffsÒ""#8ÿeÿeÿeÿeÿeÿeÿeÿÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿddwÿ™™›ôttt¢ÿeÿeÿeÿeÿeÿeÿeÿÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿWWrÿ©©®îŠŠŒ£ÿeÿeÿeÿeÿeÿeÿeÿÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿIIuÿIIQ¥ÿeÿeÿeÿeÿeÿeÿeÿÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿUÿ<ÿ 8ò ÿeÿeÿeÿeÿeÿeÿeÿÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿNÿQÿ ÿeÿeÿeÿeÿeÿeÿeÿÿeÿeÿeÿeÿeÿeÿeÿeÿeÿRÿLÿ99XÿGGO½%ÿeÿeÿeÿeÿeÿeÿeÿÿeÿeÿeÿeÿeÿeÿeÿeÿUÿJÿ;;\ÿTT`Î--.A ÿeÿeÿeÿeÿeÿeÿeÿÿeÿeÿeÿeÿeÿeÿeÿUÿUÿ..OÿJJVÚ003U ÿeÿeÿeÿeÿeÿeÿeÿÿeÿeÿeÿeÿeÿeÿeÿNÿ..Yÿ@@L­'ÿeÿeÿeÿeÿeÿUÿFÿÿeÿeÿeÿeÿeÿUÿFÿ??cÿYY`³//1I ÿeÿeÿeÿeÿUÿ LÿLLeÿÿeÿeÿeÿeÿUÿ LÿLLeÿcckÎ;;=NÿeÿeÿeÿNÿOÿBBPÿ||öÿeÿeÿeÿNÿOÿBBPÿ||öwwy§**+4ÿeÿeÿNÿSÿ??Sÿ‚‚‹û~~¸ÿeÿeÿNÿSÿ??Sÿ‚‚‹û~~¸!!!)ÿeÿUÿGÿSShÿ˜˜¡þ––›Ö,,-8ÿeÿUÿGÿSShÿ˜˜¡þ––›Ö,,-8ÿeÿ Lÿ``qÿ•þ……Œêÿeÿ Lÿ``qÿ•þ……Œêÿ Gÿddtÿ““šü€€…Îÿ Gÿddtÿ““šü€€…Îÿ__fÿ““–ÿ……‡Úÿ__fÿ““–ÿ……‡ÚUUYýŒŒÿ‹‹ýUUYýŒŒÿ‹‹ýþ00æ$ î$%@$% %(R/home/heron/ff.tiffCreated with The GIMPHHgorm-1.2.24/English.lproj/GormSoundInspector.gorm/stop.tiff0000644000000000000000000002245213410616261022373 0ustar rootrootII*$eÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿþ00æ$ î$%@$%"%(R/home/heron/stop.tiffCreated with The GIMPHHgorm-1.2.24/English.lproj/GormSoundInspector.gorm/data.info0000644000000000000000000000027013410616261022314 0ustar rootrootGNUstep archive00002af9:00000003:00000003:00000000:01GormFilePrefsManager1NSObject% 01NSString&%Latest Version0±& % Typed Streamgorm-1.2.24/English.lproj/GormSoundInspector.gorm/pause.tiff0000644000000000000000000002245413410616261022525 0ustar rootrootII*$eÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿeÿþ00æ$ î$%@$%$%(R/home/heron/pause.tiffCreated with The GIMPHHgorm-1.2.24/English.lproj/GormPrefPlugins.gorm/0000755000000000000000000000000013410616261020006 5ustar rootrootgorm-1.2.24/English.lproj/GormPrefPlugins.gorm/objects.gorm0000644000000000000000000001176613410616261022340 0ustar rootrootGNUstep archive00002db4:00000026:00000080:00000001:01GSNibContainer1NSObject01 GSMutableSet1 NSMutableSet1NSSet&01 GSNibItem01NSString&%PluginDataSource  &01GSWindowTemplate1 GSClassSwapper0±&%NSPanel1 NSPanel1 NSWindow1 NSResponder% ?€ A C¯ Cz& % D @ DD€01 NSView% ?€ A C¯ Cz  C¯ Cz&01NSMutableArray1NSArray&0 1NSButton1 NSControl% Bè A B` AÀ  B` AÀ&0 ±&%0 1 NSButtonCell1 NSActionCell1NSCell0 ±&%Add0 1NSFont% A@&&&&&&&&&&&&&&%’0±&0±&&&& &&0±% C4 A B` AÀ  B` AÀ&0±&%0±0±&%Remove° &&&&&&&&&&&&&&%’0±&0±&&&& &&01 NSScrollView% Aè B  C“ C)  C“ C)&0±&01 NSClipView% A¨ AÀ C‡€ Bø  C‡€ Bø&0±&01 NSTableView%  C‡€ C!  C‡€ C!&0±&%0±0±&0±%&&&&&&&&&&&&&&0±&0 1 NSTableColumn0!±&%column2 C‡€ A  GÃP0"1NSTableHeaderCell1NSTextFieldCell0#±&%Plugins0$±% °#&&&&&&&& &&&&&&%’0%1NSColor0&±&%NSNamedColorSpace0'±&%System0(±&%controlShadowColor0)±°&°'0*±&%windowFrameTextColor0+±0,±&%seven°°,&&&&&&&& &&&&&&%’0-±°&0.±&%System0/±&%textBackgroundColor00±°&°.01±& % textColor02±°&°.03±& % gridColor04±°&05±&%System06±&%controlBackgroundColor071NSTableHeaderView%  C‡€ A°  C‡€ A°&08±&091GSTableCornerView% @ @ A˜ A°  A˜ A°&0:±&%% A€’ @ @@°40;1 NSScroller% @ AÀ A C  A C&0<±&%0=±°°&&&&&&&&&&&&&&&°2 _doScroll:v24@0:8@160>±% A¨ @ C‡€ A°  C‡€ A°&0?±&°70@±°&°.0A±& % controlColor0B±% A¨ C C‡€ A  C‡€ A&0C±&%0D±0E±&°&&&&&&&&&&&&&&&°²°9°% A A A A °B°;°>0F±°&0G±&%System0H±&%windowBackgroundColor0I±&%Window0J±&%Plugins°J ?€ A¸ F@ F@%0K1 NSImage0L±&%NSApplicationIcon&   DÈ D–0M±&0N±&0O1!NSMutableDictionary1" NSDictionary& 0P±&%PluginDataSource(0)°0Q±&%NSOwner0R±&%GormPluginsPref0S±&%Button1° 0T±& % GormNSPanel°0U±&%Button2°0V±& % ScrollView°0W±& % TableColumn1° 0X±& % TableColumn0Y±0Z±&%column1 BP A  GÃP0[±0\±&% °$&&&&&&&& &&&&&&%’0]±°&0^±&%System0_±& % controlColor0`±°&°.0a±&%windowFrameTextColor0b±0c±&%sept°°c&&&&&&&& &&&&&&%’°-°00d±&%GormNSTableView°0e±&0f1#NSNibConnector°S0g±#°U0h±#°V0i±#°d0j±#°X0k±#°W0l1$NSNibOutletConnector°d°S0m1%NSMutableString& % nextKeyView0n±$°S°U°m0o±$°U°d°m0p±$°T°S0q±%&%initialFirstResponder0r±$°d°P0s±%& % dataSource0t1&NSNibControlConnector°S°Q0u±%& % addAction:0v±&°U°Q0w±%& % removeAction:0x±$°Q°T0y±%&%window0z±$°Q°S0{±%& % addButton0|±$°Q°U0}±%& % removeButton0~±$°Q°d0±%&%table0€±!&gorm-1.2.24/English.lproj/GormPrefPlugins.gorm/data.classes0000644000000000000000000000074313410616261022302 0ustar rootroot{ "## Comment" = "Do NOT change this file, Gorm maintains it"; FirstResponder = { Actions = ( "orderFrontFontPanel:", "removeAction:", "addAction:" ); Super = NSObject; }; GormPluginsPref = { Actions = ( "removeAction:", "addAction:" ); Outlets = ( _view, window, removeButton, addButton, table ); Super = NSObject; }; PluginDataSource = { Actions = ( ); Outlets = ( ); Super = NSObject; }; }gorm-1.2.24/English.lproj/GormPrefPlugins.gorm/data.info0000644000000000000000000000027013410616261021573 0ustar rootrootGNUstep archive00002db4:00000003:00000003:00000000:01GormFilePrefsManager1NSObject%01NSString&%Latest Version0±& % Typed Streamgorm-1.2.24/English.lproj/GormNSSplitViewInspector.gorm/0000755000000000000000000000000013410616261021626 5ustar rootrootgorm-1.2.24/English.lproj/GormNSSplitViewInspector.gorm/objects.gorm0000644000000000000000000000545213410616261024153 0ustar rootrootGNUstep archive00002af9:0000001d:00000047:00000001:01GSNibContainer1NSObject01NSMutableDictionary1 NSDictionary&01NSString&%NSOwner0±&%GormNSSplitViewInspector0±&%GSCustomClassMap0±&0±&%Box01NSBox1NSView1 NSResponder% BT C6 C BÈ  C BÈ&0 1 NSMutableArray1 NSArray&0 ±% @à @à C B”  C B”&0 ± &0 1 NSMatrix1 NSControl% B A  B¬ B@  B¬ B@&0 ± &%01 NSActionCell1NSCell0±&01NSFont% A@&&&&&&&&%’% B¬ AÀ 01NSColor0±&%NSNamedColorSpace0±&%System0±&%controlBackgroundColor°0±& % NSButtonCell01 NSButtonCell0±&%Radio01NSImage01NSMutableString&% common_RadioOff0±%&&&&&&&&%’0±&0±&0±0±&% common_RadioOn&&&%%0± &0 ±0!±& % Horizontal°0"±% A@&&&&&&&&%’°0#±&°&&&0$±0%±&%Vertical°°"&&&&&&&&%’°0&±&°&&&2 ok:v12@0:4@8’’°$0'1NSTextFieldCell0(±& % Orientation°"&&&&&&&&0%’0)±°°0*±&%windowBackgroundColor0+±°0,±&%System0-±& % textColor @  @ %%0.±&%SplitViewInspector0/1GSWindowTemplate1GSClassSwapper00±&%NSWindow1NSWindow% ?€ A Cˆ CÂ&% D3€ D À01±% ?€ A Cˆ C  Cˆ CÂ&02± &°°)03±&%Window04±&%SplitView InspectorPanel°4 ?€ A˜ F@ F@%05±06±&%NSApplicationIcon&   D  D€07±&%Matrix° 08± &091NSNibConnector°.0:±&%NSOwner0;±°0<±°70=1NSNibOutletConnector°:°70>±& % orientation0?±°:°.0@±&%window0A1NSNibControlConnector°7°:0B±&%ok:0C±°.°70D±&% initialFirstResponder0E1 GSMutableSet1 NSMutableSet1NSSet&°/gorm-1.2.24/English.lproj/GormNSSplitViewInspector.gorm/data.classes0000644000000000000000000000042313410616261024115 0ustar rootroot{ "## Comment" = "Do NOT change this file, Gorm maintains it"; FirstResponder = { Actions = ( "orderFrontFontPanel:" ); Super = NSObject; }; GormNSSplitViewInspector = { Actions = ( ); Outlets = ( orientation ); Super = IBInspector; }; }gorm-1.2.24/English.lproj/GormNSSplitViewInspector.gorm/data.info0000644000000000000000000000027013410616261023413 0ustar rootrootGNUstep archive00002af9:00000003:00000003:00000000:01GormFilePrefsManager1NSObject% 01NSString&%Latest Version0±& % Typed Streamgorm-1.2.24/English.lproj/GormCustomClassInspector.gorm/0000755000000000000000000000000013410616261021677 5ustar rootrootgorm-1.2.24/English.lproj/GormCustomClassInspector.gorm/objects.gorm0000644000000000000000000000605713410616261024226 0ustar rootrootGNUstep archive00002af9:0000001f:00000047:00000004:01GSNibContainer1NSObject01NSMutableDictionary1 NSDictionary&01NSString&%NSOwner0±&%GormCustomClassInspector0±&%GSCustomClassMap0±&0±& % NSVisible01NSMutableArray1NSArray&0 ±& % GormNSBrowser0 1 NSBrowser1 NSControl1 NSView1 NSResponder% B B` CK C•€  CK C•€&0 ±&0 1 NSScrollView% @ CK Cˆ  CK Cˆ&0 ±&01 NSClipView% A¨ @ C4 C†  C4 C†&0±&01NSMatrix%  C4 BÈ  C4 BÈ&0±&%01 NSActionCell1NSCell0±&01NSFont%&&&&&&&&%’% C4 BÈ 01NSColor0±&%NSNamedColorSpace0±&%System0±&%controlBackgroundColor°0±& % NSBrowserCell01 NSBrowserCell0±&0±% A@&&&&&&&&%%0±&° 2doClick:2doDoubleClick:’0±°0±&%System0 ±&%controlBackgroundColor0!1 NSScroller% @ @ A C†  A C†&0"±&%0#±°°&&&&&&&&&° 2 _doScroll:v12@0:4@8°% A A A A °!%0$±°°&&&&&&&&°0%±&%NSMatrix0&±&%/% BÈ0'±%  A   A &0(±&%0)±°°&&&&&&&&&° 2 scrollViaScroller:v12@0:4@8   CK Cˆ’’0*±&0+1NSBrowserColumn° °%°&%%0,±& % InspectorWin0-1GSWindowTemplate1GSClassSwapper0.±&%NSWindow1NSWindow% ?€ A Cˆ CÂ&% C®€ Dc€0/± % ?€ A Cˆ C  Cˆ CÂ&00±&° 01±°02±&%System03±& % controlColor04±&%Window05±&%Inspector Window°5 ?€ A¸ F@ F@%061NSImage07±&%NSApplicationIcon&   D  D€08±&091NSNibConnector°,0:±&%NSOwner0;±° °,0<1NSNibOutletConnector°:° 0=±&%browser0>±°:°,0?±&%window0@±° °:0A±&%delegate0B±°,° 0C1NSMutableString&% initialFirstResponder0D1 GSMutableSet1 NSMutableSet1NSSet&°-gorm-1.2.24/English.lproj/GormCustomClassInspector.gorm/data.classes0000644000000000000000000000030013410616261024160 0ustar rootroot{ "## Comment" = "Do NOT change this file, Gorm maintains it"; GormCustomClassInspector = { Actions = ( "select:" ); Outlets = ( browser ); Super = IBInspector; }; }gorm-1.2.24/English.lproj/GormCustomClassInspector.gorm/data.info0000644000000000000000000000027013410616261023464 0ustar rootrootGNUstep archive00002af9:00000003:00000003:00000000:01GormFilePrefsManager1NSObject% 01NSString&%Latest Version0±& % Typed Streamgorm-1.2.24/English.lproj/GormScrollViewAttributesInspector.gorm/0000755000000000000000000000000013410616261023577 5ustar rootrootgorm-1.2.24/English.lproj/GormScrollViewAttributesInspector.gorm/objects.gorm0000644000000000000000000004470513410616261026130 0ustar rootrootGNUstep archive00002cef:00000024:000000f1:00000000:01GSNibContainer1NSObject01 GSMutableSet1 NSMutableSet1NSSet&01GSWindowTemplate1GSClassSwapper01NSString&%NSWindow1 NSWindow1 NSResponder% ?€ A Cˆ CÂ&% C—€ DO@01 NSView% ?€ A Cˆ C  Cˆ CÂ&01 NSMutableArray1 NSArray&01NSBox% A C™ Bð B  Bð B&0± &0 ± % @à @à BÔ B8  BÔ B8&0 ± &0 1 NSColorWell1 NSControl% Aè A  BT Að  BT Að&0 ± &%0 1NSCell0±&01NSFont% A@&&&&&&&&&&&&&&01NSColor0±&%NSCalibratedWhiteColorSpace ?€’01NSTextFieldCell1 NSActionCell0±&%Background Color0±% A@&&&&&&&&&&&&&&%’0±0±&%NSNamedColorSpace0±&%System0±&%windowBackgroundColor0±°0±&%System0±& % textColor @  @ %%0±% A Cl C| B‚  C| B‚& 0± &0± % @à @à Cn B  Cn B&0± &0 1NSButton% BŠ A¸ B¼ A€  B¼ A€&0!± &%0"1 NSButtonCell0#±&%Vertical0$1NSImage0%1NSMutableString&%common_SwitchOff°&&&&&&&&&&&&&&%’0&±&0'±&0(±0)±&%common_SwitchOn&&& &&0*±% BŠ @ B¼ A€  B¼ A€&0+± &%0,±0-±& % Horizontal°$°°-&&&&&&&&&&&&&&%’0.±&0/±&°(&&& &&00±01±& % Scrollbars°&&&&&&&&&&&&&&%’°02±°03±&%System04±& % textColor @  @ %%05±% C C™ Bü B  Bü B& 06± &07± % @à @à Bà B8  Bà B8&08± &091NSMatrix% @À A@ BÈ AÐ  BÈ AÐ&0:± &%0;±0<±&°&&&&&&&&&&&&&&%’% AÈ AÐ 0=±°°0>±&%controlBackgroundColor°=0?±& % NSButtonCell0@±0A±&%Button°&&&&&&&&&&&&&&%’0B±&0C±&&&& &&%%0D± &0E±0F±&%Button0G±0H±& % noBorder_nib°&&&&&&&&&&&&&&%’°B°C&&& &&0I±0J±&%Button0K±0L±&%line_nib°&&&&&&&&&&&&&&%’°B°C&&& &&0M±0N±&%Button0O±0P±& % bezel_nib°&&&&&&&&&&&&&&%’°B°C&&& &&0Q±0R±&0S±0T±& % ridge_nib°&&&&&&&&&&&&&&%’°B°C&&& &&’’’°I0U±0V±&%Borders°&&&&&&&&&&&&&&%’°0W±°0X±&%System0Y±& % textColor @  @ %%0Z±% A B† C| B¼  C| B¼&"0[± &0\± % @à @à Cn Bˆ  Cn Bˆ&0]± &0^1NSForm% B B C A¨  C A¨&0_± &%0`1 NSFormCell0a±&°&&&&&&&&&&&&&&%’ ¿€0b±0c±&%Field:°&&&&&&&&&&&&&&% C A¨ @@0d±°0e±&%System0f±&%controlBackgroundColor°d0g±& % NSFormCell%%0h± &0i±0j±&°&&&&&&&&&&&&&&%’ B 0k±0l±& % Line Amount:°&&&&&&&&&&&&&&’’’°i0m±% AÐ A  C A¨  C A¨&0n± &%0o±0p±&°&&&&&&&&&&&&&&%’ ¿€0q±0r±&%Field:°&&&&&&&&&&&&&&% C A¨ @@0s±°0t±&%System0u±&%controlBackgroundColor°s0v±& % NSFormCell%%0w± &0x±0y±&°&&&&&&&&&&&&&&%’ B²0z±0{±& % Page Context:°&&&&&&&&&&&&&&’’’°x0|±0}±& % Parameters°&&&&&&&&&&&&&&%’°0~±°0±&%System0€±& % textColor @  @ %%0±% A C& C| BŒ  C| BŒ&0‚± &0ƒ± % @à @à Cn B0  Cn B0&0„± &0…±% Bˆ A¸ B¼ A€  B¼ A€&0†± &%0‡±0ˆ±&%Vertical°$0‰±%°ˆ&&&&&&&&&&&&&&%’0б&0‹±&°(&&& &&0Œ±% Bˆ @ B¼ A€  B¼ A€&0± &%0ޱ0±& % Horizontal°$°‰°&&&&&&&&&&&&&&%’0±&0‘±&°(&&& &&0’±0“±&%Rulers°‰°“&&&&&&&&&&&&&& @  @ %%°0”±&%Window0•±&%Inspector Window°• ?€ A¨ F@ F@%0–± 0—±° 0˜± &0™1NSBitmapImageRep1 NSImageRep0š±&%NSDeviceRGBColorSpace B@ B@%%0%00›1NSData&$š$šII*$ (/LBaq¤/EQ~ -5RC`p aŒ¥åu¥¿þ€«ÃÿaŒ¤è "!!!,  ,3QEcs¥g’¬çw¦¾üˆ°Çÿ¶Êÿ‰°Æÿ’¶Êÿw¥¾þ3KX˜ /;h2I\›B`yÆQw•æ 0)¾¾¾æ§§§Å777G -5QGdu¥d§ãy¨Âþ޵Ëÿ“¸Ìÿ‰±Çÿ†¯Æÿ´ÉÿŒ²Èÿ€«Âÿ‰°Åÿe”°ÿU{šÿa‡§ÿh«ÿX£þ )` 4adgÂÏÏÏÿÊÊÊû777I !/7THev¦mš´î~¬Åþ޵Ëÿ—»Ïÿ¦ÄÕÿ‰²Èÿ´Éÿ”¸Ìÿ„®Åÿq¡¼ÿnžºÿk¹ÿ‚«ÂÿpŸºÿhŒ¥ÿiªÿr”°ÿ^†¦ÿ&9HŽ !%€}~~ò£££þŽŒ· "/7SJhy¦i“«ä~ªÄý”¹Ïÿ›½Ñÿ޵Ëÿ|ªÃÿs£¿ÿ|©Âÿš¼Ïÿ‹²Èÿ‰±Çÿƒ­Äÿ¬Ãÿy¦¿ÿkœ¸ÿnž¹ÿ‚«Âÿa«ÿTz™ÿe‹©ÿf‹ªÿ5Ma°  4{GM·­¯¬ü–™™ÄKfx³`‡ŸÜq¶ñ€®Çþ–»ÐÿžÁÔÿ’¹Îÿ€­Æÿx¨Âÿw¦Áÿv¦Áÿu¥Àÿu¤¿ÿt£¿ÿr£¾ÿq¢½ÿ¬Äÿ”¸Ìÿ’¶ËÿŒ²Çÿ…®Äÿ‹±Æÿ{¦¿ÿr ºÿož¸ÿ|¦¾ÿ]‹§ÿU|œÿr•°ÿLqŽé '  <"1>j0FY•BayÆNrŽéTy’ý_w†ÿ¯°±ÿ»ÈÐÿ™¼Ñÿ¿Óÿ–»Ðÿ€­Çÿw§Ãÿy¨Ãÿ{©Ãÿy¨Âÿv¦Áÿu¥Àÿu¥Àÿt¤¿ÿs£¾ÿr¢½ÿq¡½ÿr¡½ÿ•¸Ìÿ•¸Ëÿˆ¯ÅÿŒ²Çÿ©Àÿi›¶ÿhšµÿf˜´ÿ€¨¿ÿf˜³ÿRy—ÿt–±ÿT}ú E#BGi„ÔRx—íX ù]…¥þb«ÿn›·ÿw¦Áÿ©Áÿ|°ÿr…’ÿ®°±ÿ¿ÊÐÿƒ®ÇÿгËÿ«ÉÚÿËÝèÿÚæîÿÞéïÿÛçîÿÍÞçÿ³ÍÛÿ‘·Ìÿx§Áÿr¢½ÿr¢½ÿq¡¼ÿo »ÿбÇÿ޳Èÿ³Èÿq »ÿj›·ÿhš¶ÿiš¶ÿlœ·ÿt¡ºÿu¢ºÿZ‡£ÿoªÿYƒ¤ÿ$.h!G_‡§ÿ| ¹ÿ~§Àÿy¨Âÿƒ¯Èÿš½ÒÿÀÓÿ”ºÏÿ}¨Áÿg§ÿd|Œÿ¬®¯ÿÊÑÔÿìòõÿòöùÿðõøÿïô÷ÿíòöÿëñõÿéðôÿèîóÿåìñÿÑàèÿš¼Ïÿs¢½ÿp »ÿoŸ»ÿs¢¼ÿ´Èÿ|§Àÿl¸ÿs¡»ÿ|¦¾ÿ¨¿ÿk›¶ÿe—³ÿ~¦½ÿ`’®ÿc†¡ÿb‰¨ÿ)LPÿÿ ÿ ÿÿ2GSÿc©ÿiš¶ÿg™µÿ|¥½ÿ£¾Îÿb”°ÿc•±ÿ~¦¼ÿm›´ÿ`’®ÿg–±ÿk™²ÿo›´ÿ_¬ÿZ©ÿ]Žªÿh–¯ÿ?dxÉ ,6px§Âÿ¡ÃÕÿ|«Åÿ†±Éÿçðôÿòöùÿñõùÿðõøÿïó÷ÿíòöÿëñõÿéðôÿÜçíÿ‘·Ìÿ~ªÃÿz§Àÿp›³ÿ[”ÿ"08ÿÿ ÿÿÿ!%ÿLp„ÿf˜´ÿ|¥½ÿ¡½Íÿb”°ÿ`“¯ÿw¡¸ÿo›µÿu ·ÿuŸ¶ÿj˜±ÿf•¯ÿk˜±ÿk˜±ÿe“®ÿi–¯ÿT†¢ù!LCl˜³þ—¼Ñÿ…°Éÿ®ÇÿÜèïÿñöøÿðõøÿïô÷ÿîòöÿìñõÿêðôÿèïóÿäìðÿ”¸Íÿ}©Ãÿ{¨Áÿx¥¿ÿm˜°ÿ[€–ÿ .6ÿÿ ÿÿ(((ÿÿ*\sÓ-BS®+7‰` 9:Uk·p’®ÿdŽªÿ‹³Êÿƒ®Æÿv¥Àÿu¥Àÿt¤¿ÿt¤¾ÿ“·Ìÿ¿ÓßÿÊÚãÿ²ÊØÿš»Íÿ³ÇÿŒ±Æÿ³ÇÿŸ½Íÿ±ÈÔÿ©ÂÐÿ{¥¼ÿb”°ÿa’®ÿh”­ÿc‡ÿ@Ziÿÿÿ ÿÿÿ444ÿ222ÿü †2 *>MhŽ«ÿbˆ£ÿv¥Àÿ–ºÎÿt£¿ÿt¤¾ÿs£¾ÿr¢½ÿq¡¼ÿq¡¼ÿ~©Áÿ’µÉÿ¤ÁÑÿªÄÓÿ§ÂÑÿœ»Ìÿˆ®ÃÿrŸ¸ÿe—³ÿe–²ÿrž·ÿy¢¹ÿk™³ÿX‡¡û>^qì$2<á öÿÿÿÿ333ÿ333ÿå4(3b^†¦ÿk¨ÿmšµÿ“¸Íÿu¤¿ÿs¢¾ÿq¡½ÿq¡¼ÿp »ÿo ºÿmŸ¹ÿl¸ÿjœ·ÿiš¶ÿg™µÿg˜´ÿe—³ÿl›¶ÿz¤¼ÿx¢ºÿi™´ÿU‚œò3M\½zK V!‘ îÿÿÿÿ333ÿ111ÿ³:U~Ÿûw—²ÿh«ÿ„¯Çÿ¬Äÿq¢½ÿq¡¼ÿp »ÿoŸºÿmž¹ÿm¹ÿkœ¸ÿj›·ÿhš¶ÿhšµÿs ºÿ¨¾ÿv¡ºÿc“®üLs‰Ý%8C– G >!ƒ ëÿÿÿÿÿÎ Ot’ëe‹©ÿ]‚Ÿÿt¤¿ÿµËÿp¡¼ÿo ¼ÿnŸ»ÿmžºÿl¹ÿkœ¸ÿi›·ÿj›·ÿ~§¿ÿ€©¿ÿsŸ¹ÿb’®û?_qÇ&-x0 9! æÿÿÿúk FfÒRz™öIk†êbŒ¥ôµÊÿq ¼ÿoŸºÿmžºÿl¹ÿkœ¸ÿt¢»ÿ‚ªÁÿ‚ªÁÿl›¶þXƒ›ë2KY« U  6!w Üüô‰P V:0EQ’}©Âÿ‚«Ãÿnž¹ÿl¸ÿ|¦¿ÿ‰¯Åÿ|¦¾ÿl›¶ýPwÞ%7@ B 1hŒf3i•¯ò´Éÿ„¬ÃÿаÅÿy¥¾ÿc«öA`qÁ!'p)  Nr†Åz¦¿ÿr¡»þ]ˆ¡ë3JW§ W &8BqQv‹×$5>Š<% þÿ00’$$R&   DÈ D–0œ± &0± &0ž1 NSMutableDictionary1! NSDictionary&0Ÿ±&%Box3°Z0 ±&%NSOwner0¡±&!%!GormScrollViewAttributesInspector0¢±&%Form1°m0£±&%View(1)°0¤±&%Button° 0¥±&%View(3)°\0¦±& % Button(1)°Œ0§±&%Box(0)°0¨±& % InspectorWin°0©±&%Form°^0ª±&%View(0)° 0«±& % ColorWell° 0¬±&%View(2)°70­±&%Box°0®±& % Button(0)°…0¯±&%Matrix1°90°±&%Button1°*0±±&%View(4)°ƒ0²±&%Box1°0³±&%Box2°50´± &##0µ1"NSNibConnector°¨0¶±&%NSOwner0·±"°­0¸±"°²0¹±"°³0º±"°Ÿ0»±"°«°ª0¼±"°¯°¬0½1#NSNibOutletConnector°¶°«0¾±&%color0¿±"°¤°£0À±"°°°£0Á±#°¶°¤0±&%verticalScroll0ñ#°¶°°0ı&%horizontalScroll0ű#°¶°¯0Ʊ& % borderMatrix0DZ"°©°¥0ȱ"°¢°¥0ɱ#°¶°©0ʱ& % lineAmount0˱#°¶°¢0̱& % pageContext0Í1$NSNibControlConnector°«°¶0α&%colorSelected:0ϱ$°¤°¶0б&%verticalSelected:0ѱ$°°°¶0Ò±&%horizontalSelected:0Ó±$°¯°¶0Ô±&%borderSelected:0Õ±#°¶°¨0Ö±&%window0×±#°¨°«0ر&%initialFirstResponder0Ù±"°ª°­0Ú±"°£°²0Û±"°¬°³0ܱ"°¥°Ÿ0ݱ"°§0Þ±"°±°§0ß±"°®°±0à±"°¦°±0á±$°®°¶0â±&%verticalRuler:0ã±$°¦°¶0ä±&%horizontalRuler:0å±#°¶°¦0æ±&%horizontalRuler0ç±#°¶°®0è±& % verticalRuler0é± &gorm-1.2.24/English.lproj/GormScrollViewAttributesInspector.gorm/data.classes0000644000000000000000000000131313410616261026065 0ustar rootroot{ "## Comment" = "Do NOT change this file, Gorm maintains it"; FirstResponder = { Actions = ( "borderSelected:", "colorSelected:", "horizontalRuler:", "horizontalSelected:", "verticalRuler:", "orderFrontFontPanel:", "verticalSelected:" ); Super = NSObject; }; GormScrollViewAttributesInspector = { Actions = ( "borderSelected:", "horizontalSelected:", "verticalSelected:", "colorSelected:", "horizontalRuler:", "verticalRuler:" ); Outlets = ( borderMatrix, horizontalScroll, verticalScroll, color, lineAmount, pageContext, horizontalRuler, verticalRuler ); Super = IBInspector; }; }gorm-1.2.24/English.lproj/GormScrollViewAttributesInspector.gorm/data.info0000644000000000000000000000027013410616261025364 0ustar rootrootGNUstep archive00002cef:00000003:00000003:00000000:01GormFilePrefsManager1NSObject%01NSString&%Latest Version0±& % Typed Streamgorm-1.2.24/English.lproj/GormConnectionInspector.gorm/0000755000000000000000000000000013410616261021536 5ustar rootrootgorm-1.2.24/English.lproj/GormConnectionInspector.gorm/objects.gorm0000644000000000000000000001242113410616261024055 0ustar rootrootGNUstep archive00002b5c:00000022:0000007c:00000004:01GSNibContainer1NSObject01NSMutableDictionary1 NSDictionary&01NSString&%NSOwner0±&%GormConnectionInspector0±&%GSCustomClassMap0±&0±& % GormNSBrowser01 NSBrowser1 NSControl1NSView1 NSResponder%  C| C~  C| C~&0 1 NSMutableArray1 NSArray&0 1 NSScroller% @ ?€ Cx A  Cx A&0 ± &%0 1 NSCell0 ±&01NSFont%&&&&&&&&&°2 scrollViaScroller:v12@0:4@801 NSScrollView% A¸ Bø CP  Bø CP&0± &01 NSClipView% A¨ @ BÊ CL  BÊ CL&0± &01NSMatrix%  BÊ BÈ  BÊ BÈ&0± &%01 NSActionCell0±&°&&&&&&&&%’% BÊ BÈ 01NSColor0±&%NSNamedColorSpace0±&%System0±&%controlBackgroundColor°0±& % NSBrowserCell01 NSBrowserCell° °&&&&&&&&%%0± &°2doClick:2doDoubleClick:’0±°0±&%System0 ±&%controlBackgroundColor0!± % @ @ A CL  A CL&0"± &%0#± ° °&&&&&&&&&°2 _doScroll:v12@0:4@8°% A A A A °!0$±% C A¸ Bø CP  Bø CP&0%± &0&±% A¨ @ BÊ CL  BÊ CL&0'± &0(±°0)±&%System0*±& % controlColor0+± % @ @ A CL  A CL&0,± &%0-± 0.±&°&&&&&&&&&°$²°&% A A A A °+%0/±° °&&&&&&&&°00±&%NSMatrix01±&%/% BȰ  @ ?€ Cx A Bø CP’’02± &031NSBrowserColumn°°%°104±°$%%%05±& % SplitView061 NSSplitView% A A  C| C¸  C| C¸&07± &°08±% C‚ C| BØ  C| BØ&09± &0:±% @ C| B¢  C| B¢&0;± &0<±% A¨ @ Ce Bš  Ce Bš&0=± &0>±%  Ce BÈ  Ce BÈ&0?± &%0@±°°&&&&&&&&%’% Ce BÈ °°0A±& % NSBrowserCell0B±0C±&°&&&&&&&&%%0D± &°8²²’0E±°0F±&%System0G±&%controlBackgroundColor0H± % @ @ A Bš  A Bš&0I± &%0J± °C°&&&&&&&&&°:²°<% A A A A °H%0K±°C°&&&&&&&&°B0L±&%NSMatrix0M±&%/% BÈ0N± % @ ?€ Cx A  Cx A&0O± &%0P± °C°&&&&&&&&&°8²   C| B¢’’0Q± &0R±°:°>%°M%%0S1NSImage0T±&%common_Dimple.tiff0U±°0V±&%System0W±&%controlBackgroundColor0X±°°V0Y±&%controlShadowColor%A0Z±& % InspectorWin0[1GSWindowTemplate1GSClassSwapper0\±&%NSPanel1NSPanel1NSWindow% ?€ A Cˆ CÂ&% D% DU€0]±% ?€ A Cˆ C  Cˆ CÂ&0^± &°60_±°°)0`±&%windowBackgroundColor0a±&%Window0b±&%Inspector Window°b @@ B F@ F@%&   DÈ D–0c±&% GormNSBrowser1°80d± &  0e1NSNibConnector°Z0f±&%NSOwner0g±°°50h±°c°50i±°50j1NSNibOutletConnector°f°c0k±& %  oldBrowser0l±°f°0m±& %  newBrowser0n1NSNibControlConnector°°f0o±&% _internalCall:0p±°c°f°o0q±°f°Z0r1NSMutableString&% window0s±°c°f0t±&% delegate0u±°°f°t0v1 GSMutableSet1! NSMutableSet1"NSSet&°[gorm-1.2.24/English.lproj/GormConnectionInspector.gorm/data.classes0000644000000000000000000000046213410616261024030 0ustar rootroot{ "## Comment" = "Do NOT change this file, Gorm maintains it"; FirstResponder = { Actions = ( "_internalCall:" ); Super = NSObject; }; GormConnectionInspector = { Actions = ( "_internalCall:" ); Outlets = ( newBrowser, oldBrowser ); Super = IBInspector; }; }gorm-1.2.24/English.lproj/GormConnectionInspector.gorm/data.info0000644000000000000000000000027013410616261023323 0ustar rootrootGNUstep archive00002b5c:00000003:00000003:00000000:01GormFilePrefsManager1NSObject% 01NSString&%Latest Version0±& % Typed Streamgorm-1.2.24/English.lproj/GormDummyInspector.gorm/0000755000000000000000000000000013410616261020532 5ustar rootrootgorm-1.2.24/English.lproj/GormDummyInspector.gorm/objects.gorm0000644000000000000000000000321013410616261023045 0ustar rootrootGNUstep archive00002b5c:0000001a:00000026:00000000:01GSNibContainer1NSObject01NSMutableDictionary1 NSDictionary&01NSString&%NSOwner0±&% GormDummyInspector0±&%GSCustomClassMap0±&0±&% Button01NSButton1 NSControl1NSView1 NSResponder%  Cˆ C  Cˆ CÂ&0 1 NSMutableArray1 NSArray&%0 1 NSButtonCell1 NSActionCell1NSCell0 ±&% Dummy Inspector0 1NSFont%&&&&&&&&%’0 ±&0±&&&&0±&% View0±% ?€ A Cˆ C  Cˆ CÂ&0± &°0±& % InspectorWin01GSWindowTemplate1GSClassSwapper0±&%NSPanel1NSPanel1NSWindow% ?€ A Cˆ CÂ&% D(À D=@°01NSColor0±&%NSNamedColorSpace0±&%System0±&%windowBackgroundColor0±&%Window0±&%Inspector Window° @@ B F@ F@%&   DÈ D–0± &01NSNibConnector°0±&%NSOwner0±0±&% View°0 ±0!±&% Button°0"1NSNibOutletConnector°°0#1NSMutableString&% window0$±°°!0%±&% button0&1 GSMutableSet1 NSMutableSet1NSSet&°gorm-1.2.24/English.lproj/GormDummyInspector.gorm/data.classes0000644000000000000000000000025213410616261023021 0ustar rootroot{ "## Comment" = "Do NOT change this file, Gorm maintains it"; GormDummyInspector = { Actions = ( ); Outlets = ( button ); Super = IBInspector; }; }gorm-1.2.24/English.lproj/GormDummyInspector.gorm/data.info0000644000000000000000000000032213410616261022315 0ustar rootrootGNUstep archive00002b5c:00000003:00000003:00000000:01GormFilePrefsManager1NSObject% 01NSString&% Latest Version0±& %  Typed Streamgorm-1.2.24/English.lproj/GormImageInspector.gorm/0000755000000000000000000000000013410616261020461 5ustar rootrootgorm-1.2.24/English.lproj/GormImageInspector.gorm/objects.gorm0000644000000000000000000000767713410616261023021 0ustar rootrootGNUstep archive00002af9:0000001c:00000072:00000000:01GSNibContainer1NSObject01NSMutableDictionary1 NSDictionary& 01NSString&%NSOwner0±&%GormImageInspector0±& %  TextField101 NSTextField1 NSControl1NSView1 NSResponder% B Bd A˜  Bd A˜&01 NSMutableArray1 NSArray&%01 NSTextFieldCell1 NSActionCell1NSCell0 ±&%Height:0 1NSFont% A@&&&&&&&&0%’0 1NSColor0 ±&%NSNamedColorSpace0 ±&%System0±&%textBackgroundColor0±° ° 0±& % textColor’0±& %  TextField20±% @à A B4 A˜  B4 A˜&0± &%0± 0±&%Name:° &&&&&&&&0%’0±° 0±&%System0±&%textBackgroundColor0±° °0±& % textColor’0±& % TextField0±% ?€ Bd BL A˜  BL A˜&0± &%0± 0±&%Width:° &&&&&&&&0%’0 ±° 0!±&%System0"±&%textBackgroundColor0#±° °!0$±& % textColor’0%±& %  TextField30&±% BP Bd B` A˜  B` A˜&0'± &%0(± 0)±&° &&&&&&&&0%’0*±° 0+±&% System0,±&%controlBackgroundColor0-±° 0.±&%System0/±& % textColor’00±& %  TextField401±% Bd B B` A˜  B` A˜&02± &%03± 04±&05±%&&&&&&&&0%’°*06±° 07±&%System08±& % textColor’09±& %  TextField50:±% BP A C1 A˜  C1 A˜&0;± &%0<± 0=±&°5&&&&&&&&0%’°*0>±° 0?±&%System0@±& % textColor’0A±&%GSCustomClassMap0B±&0C±&%GormCustomView0D1 GSCustomView1 GSNibItem0E±& % NSImageView A Bè C| Cƒ&0F±& % NSVisible0G± &0H±& % InspectorWin0I1GSWindowTemplate1GSClassSwapper0J±&%NSWindow1NSWindow% ?€ A Cˆ CÂ&% D8@ DK@0K±% ?€ A Cˆ C  Cˆ CÂ&0L± &0M1NSBox% A A  C| BÔ  C| BÔ&"0N± &0O±% @à @à Cn B   Cn B &0P± &°°°°&°1°:0Q± 0R±& % Attributes° &&&&&&&&0%’0S±° 0T±&%System0U±&%windowBackgroundColor0V±° °T0W±& % textColor @  @ %%°D°S0X±&%Window0Y±&%Inspector Window°Y ?€ A¨ F@ F@%0Z1NSImage0[±&%NSApplicationIcon&   D  D€0\±&%Box°M0]± &0^1NSNibConnector°H0_±&%NSOwner0`±°0a±°0b±°0c±°%0d±°0°_0e±°9°_0f±°\0g1NSNibOutletConnector°_°H0h±&%window0i±°_°%0j±&%width0k±°_°90l±&%name0m±°C0n±°_°C0o±& % imageView0p±°_°00q±&%height0r1 GSMutableSet1 NSMutableSet1NSSet&°Igorm-1.2.24/English.lproj/GormImageInspector.gorm/data.classes0000644000000000000000000000045713410616261022757 0ustar rootroot{ "## Comment" = "Do NOT change this file, Gorm maintains it"; FirstResponder = { Actions = ( "orderFrontFontPanel:" ); Super = NSObject; }; GormImageInspector = { Actions = ( ); Outlets = ( height, width, imageView, name ); Super = IBInspector; }; }gorm-1.2.24/English.lproj/GormImageInspector.gorm/data.info0000644000000000000000000000027013410616261022246 0ustar rootrootGNUstep archive00002af9:00000003:00000003:00000000:01GormFilePrefsManager1NSObject% 01NSString&%Latest Version0±& % Typed Streamgorm-1.2.24/English.lproj/GormClassEditor.gorm/0000755000000000000000000000000013410616261017764 5ustar rootrootgorm-1.2.24/English.lproj/GormClassEditor.gorm/objects.gorm0000644000000000000000000001100313410616261022276 0ustar rootrootGNUstep archive00002c88:00000026:00000086:00000000:01GSNibContainer1NSObject01 GSMutableSet1 NSMutableSet1NSSet&01GSWindowTemplate1GSClassSwapper01NSString&%NSWindow1 NSWindow1 NSResponder% ?€ A C³€ CY&% CŸ€ D:01 NSView% ?€ A C³€ CY  C³€ CY&01 NSMutableArray1 NSArray&01NSBox%  C³ CX  C³ CX&0± &0 ± %  C³ CX  C³ CX&0 ± &0 1 NSTextField1 NSControl% B@ C< C AØ  C AØ&0 ± &%0 1NSTextFieldCell1 NSActionCell1NSCell0±&01NSFont%°&&&&&&&&0%’01NSColor0±&%NSNamedColorSpace0±&%System0±&%textBackgroundColor0±°°0±& % textColor’01 NSPopUpButton1NSButton% CF C; C Aà  C Aà& 0± &%01NSPopUpButtonCell1NSMenuItemCell1 NSButtonCell0±&°&&&&&&&&01NSMenu0±&0± &01 NSMenuItem0±& % Operations°&&ÿ%01NSImage0 ±&%common_3DArrowDown’%0!±0"±&%Subclass°&&ÿ%’%0#±0$±& % Instantiate°&&ÿ%’%0%±0&±& % Load Class0'±&&&ÿ%’%0(±0)±&%Create Class Files0*±&&&ÿ%’%0+±0,±&%Remove0-±&&&ÿ%’%%’0.±&°.&&&°°%%%%%0/±%  C³ C8  C³ C8&00± &01± %  C³ C8  C³ C8&02± &03±04±&%Box°&&&&&&&& %%051 NSImageView% AÀ C= AÀ AÀ  AÀ AÀ& 06± &%071 NSImageCell08±09±&%GSSearch°&&&&&&&&%%% Ap Ap’0:±% C= AÀ AÀ  AÀ AÀ& 0;± &%0<±0=±&°°=&&&&&&&&%’0>±&0?±&&&&0@±0A±&%Box°&&&&&&&& %%0B±°0C±&%System0D±&%windowBackgroundColor0E±&%Window°E0F±&%Window @@ B F@ F@%&  DÈ D–0G± &0H± &0I1 NSMutableDictionary1! NSDictionary&0J±& % MenuItem(3)°%0K±& % ImageView(0)°50L±& % MenuItem(5)°+0M±&%NSOwner0N±&%GormClassEditor0O±&%View(1)° 0P±&%Box(0)°0Q±& % TextField(1)° 0R±&%PopUpButton(0)°0S±& % MenuItem(0)°0T±& % MenuItem(2)°#0U±& % MenuItem(4)°(0V±&%View(0)°0W±& % Button(0)°:0X±&%View(2)°10Y±& % Window(0)°0Z±&%Box(1)°/0[±& % MenuItem(1)°!0\± &0]1"NSNibConnector°V°Y0^±"°P°V0_±"°O°P0`±"°Q°O0a±"°R°O0b±"°S0c±"°[0d±"°T0e±"°J0f±"°U0g±"°L0h±"°Z°O0i±"°X°Z0j1#NSNibOutletConnector0k±&%NSOwner°P0l±&%mainView0m±#°k°Z0n±& % classesView0o±#°Q°k0p1$NSMutableString&%delegate0q1%NSNibControlConnector°[°k0r±&%createSubclass:0s±%°T°k0t±&%instantiateClass:0u±%°J°k0v±& % loadClass:0w±%°U°k0x±&%createClassFiles:0y±%°L°k0z±& % removeClass:0{±"°K°O0|±"°W°O0}±%°W°k0~±& % toggleView:0±#°k°W0€±& % viewToggle01&NSIBHelpConnector°W0‚±&%NSToolTipHelpKey0ƒ±&%Switch clases view0„±&°R°‚0…±&(%(Perform operations on the selected class0†± &gorm-1.2.24/English.lproj/GormClassEditor.gorm/data.classes0000644000000000000000000000102713410616261022254 0ustar rootroot{ "## Comment" = "Do NOT change this file, Gorm maintains it"; FirstResponder = { Actions = ( "createClassFiles:", "createSubclass:", "instantiateClass:", "loadClass:", "toggleView:", "removeClass:" ); Super = NSObject; }; GormClassEditor = { Actions = ( "instantiateClass:", "createSubclass:", "loadClass:", "createClassFiles:", "removeClass:", "toggleView:" ); Outlets = ( classesView, mainView, viewToggle ); Super = NSView; }; }gorm-1.2.24/English.lproj/GormClassEditor.gorm/data.info0000644000000000000000000000027013410616261021551 0ustar rootrootGNUstep archive00002c88:00000003:00000003:00000000:01GormFilePrefsManager1NSObject%01NSString&%Latest Version0±& % Typed Streamgorm-1.2.24/GormCore/0000755000000000000000000000000013426745022012764 5ustar rootrootgorm-1.2.24/GormCore/GormSoundView.h0000644000000000000000000000223413410616261015701 0ustar rootroot/** GormSoundView Visualizes a sound. Copyright (C) 2004 Free Software Foundation, Inc. Author: Gregory John Casamento Date: May 2004 This file is part of GNUstep. 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 3 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, 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ /* All Rights reserved */ #include @interface GormSoundView : NSView { NSSound *_sound; } - (void)setSound: (NSSound *)sound; - (NSSound *)sound; @end gorm-1.2.24/GormCore/GormObjectEditor.m0000644000000000000000000003364313410616261016350 0ustar rootroot/* GormObjectEditor.m * * Copyright (C) 1999,2002,2003,2004,2005 Free Software Foundation, Inc. * * Author: Gregory John Casamento * Date: 2002,2003,2004,2005 * Author: Richard Frith-Macdonald * Date: 1999 * * This file is part of GNUstep. * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 3 of the License, or * (at your option) any later version. * * This program 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 General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02111 USA. */ #include #include "GormPrivate.h" #include "GormObjectEditor.h" #include "GormFunctions.h" #include "GormDocument.h" #include "GormClassManager.h" #include /* * Method to return the image that should be used to display objects within * the matrix containing the objects in a document. */ @interface NSObject (GormObjectAdditions) @end @implementation NSObject (GormObjectAdditions) - (NSImage*) imageForViewer { static NSImage *image = nil; if (image == nil) { NSBundle *bundle = [NSBundle mainBundle]; NSString *path = [bundle pathForImageResource: @"GormUnknown"]; image = [[NSImage alloc] initWithContentsOfFile: path]; } return image; } - (NSString*) inspectorClassName { return @"GormObjectInspector"; } - (NSString*) connectInspectorClassName { return @"GormConnectionInspector"; } - (NSString*) sizeInspectorClassName { return @"GormNotApplicableInspector"; } - (NSString*) helpInspectorClassName { return @"GormNotApplicableInspector"; } - (NSString*) classInspectorClassName { return @"GormCustomClassInspector"; } - (NSString*) editorClassName { return @"GormObjectEditor"; } @end @implementation NSView (GormObjectAdditions) - (NSString*) helpInspectorClassName { return @"GormHelpInspector"; } @end @implementation GormObjectEditor static NSMapTable *docMap = 0; + (void) initialize { if (self == [GormObjectEditor class]) { docMap = NSCreateMapTable(NSNonRetainedObjectMapKeyCallBacks, NSNonRetainedObjectMapValueCallBacks, 2); } } + (id) editorForDocument: (id)aDocument { id editor = NSMapGet(docMap, (void*)aDocument); if (editor == nil) { editor = [[self alloc] initWithObject: nil inDocument: aDocument]; AUTORELEASE(editor); } return editor; } + (void) setEditor: (id)editor forDocument: (id)aDocument { NSMapInsert(docMap, (void*)aDocument, (void*)editor); } - (BOOL) acceptsTypeFromArray: (NSArray*)types { return ([[(GormDocument *)document allManagedPboardTypes] firstObjectCommonWithArray: types] != nil); } - (void) pasteInSelection { NSPasteboard *pb = [NSPasteboard generalPasteboard]; NSString *type = [[(GormDocument *)document allManagedPboardTypes] firstObjectCommonWithArray: [pb types]]; if(type != nil) { // paste the object in. [document pasteType: type fromPasteboard: pb parent: nil]; } } - (void) copySelection { NSArray *sel = [self selection]; if([sel count] > 0) { NSString *type = nil; id obj = [sel objectAtIndex: 0]; if([obj isKindOfClass: [NSWindow class]]) { type = IBWindowPboardType; } else if([obj isKindOfClass: [NSView class]]) { type = IBViewPboardType; } else { type = IBObjectPboardType; } [document copyObjects: sel type: type toPasteboard: [NSPasteboard generalPasteboard]]; } } - (void) deleteSelection { if (selected != nil && [[document nameForObject: selected] isEqualToString: @"NSOwner"] == NO && [[document nameForObject: selected] isEqualToString: @"NSFirst"] == NO) { if ([selected isKindOfClass: [NSMenu class]] && [[document nameForObject: selected] isEqual: @"NSMenu"] == YES) { NSString *title = _(@"Removing Main Menu"); NSString *msg = _(@"Are you sure you want to do this?"); NSInteger retval = NSRunAlertPanel(title, msg,_(@"OK"),_(@"Cancel"), nil, nil); // if the user *really* wants to delete the menu, do it. if(retval != NSAlertDefaultReturn) return; } [document detachObject: selected]; if ([selected isKindOfClass: [NSWindow class]] == YES) { NSArray *subviews = allSubviews([(NSWindow *)selected contentView]); [document detachObjects: subviews]; [selected close]; } if ([selected isKindOfClass: [NSMenu class]] == YES) { NSArray *items = findAll( selected ); NSEnumerator *en = [items objectEnumerator]; id obj = nil; while((obj = [en nextObject]) != nil) { [document detachObject: obj]; } } [objects removeObjectIdenticalTo: selected]; [self selectObjects: [NSArray array]]; [self refreshCells]; } } /* * Dragging source protocol implementation */ - (void) draggedImage: (NSImage*)i endedAt: (NSPoint)p deposited: (BOOL)f { } - (NSDragOperation) draggingEntered: (id)sender { NSArray *pbTypes = nil; // Get the resource manager first, if nil don't bother calling the rest... dragPb = [sender draggingPasteboard]; pbTypes = [dragPb types]; if ([pbTypes containsObject: GormLinkPboardType] == YES) { dragType = GormLinkPboardType; } else { dragType = nil; } return [self draggingUpdated: sender]; } - (NSDragOperation) draggingUpdated: (id)sender { if (dragType == GormLinkPboardType) { NSPoint loc = [sender draggingLocation]; NSInteger r, c; int pos; id obj = nil; loc = [self convertPoint: loc fromView: nil]; [self getRow: &r column: &c forPoint: loc]; pos = r * [self numberOfColumns] + c; if (pos >= 0 && pos < [objects count]) { obj = [objects objectAtIndex: pos]; } if (obj == [NSApp connectSource]) { return NSDragOperationNone; /* Can't drag an object onto itsself */ } [NSApp displayConnectionBetween: [NSApp connectSource] and: obj]; if (obj != nil) { return NSDragOperationLink; } return NSDragOperationNone; } return NSDragOperationNone; } /** * Used for autoscrolling when you connect IBActions. * FIXME: Maybye there is a better way to do it. */ - (void)draggingExited:(id < NSDraggingInfo >)sender { if (dragType == GormLinkPboardType) { NSRect documentVisibleRect; NSRect documentRect; NSPoint loc = [sender draggingLocation]; loc = [self convertPoint:loc fromView:nil]; documentVisibleRect = [(NSClipView *)[self superview] documentVisibleRect]; documentRect = [(NSClipView *)[self superview] documentRect]; /* Down */ if ( (loc.y >= documentVisibleRect.size.height) && ( ! NSEqualRects(documentVisibleRect,documentRect) ) ) { loc.x = 0; loc.y = documentRect.origin.y + [self cellSize].height; [(NSClipView*) [self superview] scrollToPoint:loc]; } /* up */ else if ( (loc.y + 10 >= documentVisibleRect.origin.y ) && ( ! NSEqualRects(documentVisibleRect,documentRect) ) ) { loc.x = 0; loc.y = documentRect.origin.y - [self cellSize].height; [(NSClipView*) [self superview] scrollToPoint:loc]; } } } - (NSDragOperation) draggingSourceOperationMaskForLocal: (BOOL)flag { return NSDragOperationLink; } - (void) drawSelection { } - (void) handleNotification: (NSNotification*)aNotification { NSString *name = [aNotification name]; if([name isEqual: GormResizeCellNotification]) { NSDebugLog(@"Received notification"); [self setCellSize: defaultCellSize()]; } } /* * Initialisation - register to receive DnD with our own types. */ - (id) initWithObject: (id)anObject inDocument: (id)aDocument { id old = NSMapGet(docMap, (void*)aDocument); if (old != nil) { RELEASE(self); self = RETAIN(old); [self addObject: anObject]; return self; } self = [super initWithObject: anObject inDocument: aDocument]; if (self != nil) { NSButtonCell *proto; NSColor *color = [NSColor colorWithCalibratedRed: 0.850980 green: 0.737255 blue: 0.576471 alpha: 0.0 ]; document = aDocument; [self registerForDraggedTypes:[NSArray arrayWithObject:GormLinkPboardType]]; [self setAutosizesCells: NO]; [self setCellSize: defaultCellSize()]; [self setIntercellSpacing: NSMakeSize(8,8)]; [self setAutoresizingMask: NSViewMinYMargin|NSViewWidthSizable]; [self setMode: NSRadioModeMatrix]; /* * Send mouse click actions to self, so we can handle selection. */ [self setAction: @selector(changeSelection:)]; [self setDoubleAction: @selector(raiseSelection:)]; [self setTarget: self]; // set the background color. [self setBackgroundColor: color]; objects = [[NSMutableArray alloc] init]; proto = [[NSButtonCell alloc] init]; [proto setBordered: NO]; [proto setAlignment: NSCenterTextAlignment]; [proto setImagePosition: NSImageAbove]; [proto setSelectable: NO]; [proto setEditable: NO]; [self setPrototype: proto]; RELEASE(proto); [self setEditor: self forDocument: aDocument]; [self addObject: anObject]; // set up the notification... [[NSNotificationCenter defaultCenter] addObserver: self selector: @selector(handleNotification:) name: GormResizeCellNotification object: nil]; [[NSNotificationCenter defaultCenter] addObserver: self selector: @selector(handleNotification:) name: IBResourceManagerRegistryDidChangeNotification object: nil]; } return self; } - (void) willCloseDocument: (NSNotification *)aNotification { NSMapRemove(docMap,document); [super willCloseDocument: aNotification]; } - (void) close { [super close]; [[NSNotificationCenter defaultCenter] removeObserver: self]; NSMapRemove(docMap,document); } - (void) makeSelectionVisible: (BOOL)flag { if (flag == YES && selected != nil) { unsigned pos = [objects indexOfObjectIdenticalTo: selected]; int r = pos / [self numberOfColumns]; int c = pos % [self numberOfColumns]; [self selectCellAtRow: r column: c]; } else { [self deselectAllCells]; } [self displayIfNeeded]; [[self window] flushWindow]; } - (void) mouseDown: (NSEvent*)theEvent { if ([theEvent modifierFlags] & NSControlKeyMask) { NSPoint loc = [theEvent locationInWindow]; NSString *name; NSInteger r = 0, c = 0; int pos = 0; id obj = nil; loc = [self convertPoint: loc fromView: nil]; [self getRow: &r column: &c forPoint: loc]; pos = r * [self numberOfColumns] + c; if (pos >= 0 && pos < [objects count]) { obj = [objects objectAtIndex: pos]; } if (obj != nil && obj != selected) { [self selectObjects: [NSArray arrayWithObject: obj]]; [self makeSelectionVisible: YES]; } name = [document nameForObject: obj]; if ([name isEqualToString: @"NSFirst"] == NO && name != nil) { NSPasteboard *pb; pb = [NSPasteboard pasteboardWithName: NSDragPboard]; [pb declareTypes: [NSArray arrayWithObject: GormLinkPboardType] owner: self]; [pb setString: name forType: GormLinkPboardType]; [NSApp displayConnectionBetween: obj and: nil]; [NSApp startConnecting]; [self dragImage: [NSApp linkImage] at: loc offset: NSZeroSize event: theEvent pasteboard: pb source: self slideBack: YES]; [self makeSelectionVisible: YES]; return; } } [super mouseDown: theEvent]; } - (BOOL) performDragOperation: (id)sender { if (dragType == GormLinkPboardType) { NSPoint loc = [sender draggingLocation]; NSInteger r, c; int pos; id obj = nil; loc = [self convertPoint: loc fromView: nil]; [self getRow: &r column: &c forPoint: loc]; pos = r * [self numberOfColumns] + c; if (pos >= 0 && pos < [objects count]) { obj = [objects objectAtIndex: pos]; } if (obj == nil) { return NO; } else { [NSApp displayConnectionBetween: [NSApp connectSource] and: obj]; [NSApp startConnecting]; return YES; } } else { NSLog(@"Drop with unrecognized type!"); return NO; } } - (BOOL) prepareForDragOperation: (id)sender { /* * Tell the source that we will accept the drop if we can. */ if (dragType == GormLinkPboardType) { NSPoint loc = [sender draggingLocation]; NSInteger r, c; int pos; id obj = nil; loc = [self convertPoint: loc fromView: nil]; [self getRow: &r column: &c forPoint: loc]; pos = r * [self numberOfColumns] + c; if (pos >= 0 && pos < [objects count]) { obj = [objects objectAtIndex: pos]; } if (obj != nil) { return YES; } } return NO; } - (id) raiseSelection: (id)sender { id obj = [self changeSelection: sender]; id e; if(obj != nil) { e = [document editorForObject: obj create: YES]; [e orderFront]; [e resetObject: obj]; } return self; } - (void) resetObject: (id)anObject { NSString *name = [document nameForObject: anObject]; GormInspectorsManager *mgr = [(id)NSApp inspectorsManager]; if ([name isEqual: @"NSOwner"] == YES) { [mgr setClassInspector]; } if ([name isEqual: @"NSFirst"] == YES) { [mgr setClassInspector]; } } - (void) addObject:(id)anObject { [super addObject:anObject]; /* we need to do this for palettes which can drop top level objects */ [(GormDocument *)document changeToViewWithTag:0]; } @end gorm-1.2.24/GormCore/GormWindowEditor.h0000644000000000000000000000554113410616261016400 0ustar rootroot/* GormWindowEditor.h * * Copyright (C) 1999,2004,2005 Free Software Foundation, Inc. * * Author: Richard Frith-Macdonald * Date: 1999 * Author: Gregory John Casamento * Date: 2004,2005 * * This file is part of GNUstep. * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 3 of the License, or * (at your option) any later version. * * This program 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 General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02111 USA. */ #ifndef INCLUDED_GormWindowEditor_h #define INCLUDED_GormWindowEditor_h #include #include #include @class NSMutableArray, NSString, NSView, NSPasteboard; @interface GormWindowEditor : GormViewWithContentViewEditor { NSView *edit_view; NSMutableArray *subeditors; BOOL isLinkSource; NSPasteboard *dragPb; NSString *dragType; } /** * Returns YES, if the reciever accepts any of the pasteboard items in types. */ - (BOOL) acceptsTypeFromArray: (NSArray*)types; /** * Activates the editor */ - (BOOL) activate; /** * Instantiate with anObject in the document aDocument. */ - (id) initWithObject: (id)anObject inDocument: (id)aDocument; /** * Change the font. */ - (void) changeFont: (id) sender; /** * Close the editor. This will also call the deactivate method. */ - (void) close; /** * Close any and all editors which are subordinate to this one. */ - (void) closeSubeditors; /** * Deactivate the editor. */ - (void) deactivate; /** * Delete the current selection. */ - (void) deleteSelection; /** * Return the document which the object the receiver is edited is located in. */ - (id) document; /** * Call with success or failure of the drag operation. */ - (void) draggedImage: (NSImage*)i endedAt: (NSPoint)p deposited: (BOOL)f; /** * Returns NSDragOperationNone. */ - (NSUInteger) draggingSourceOperationMaskForLocal: (BOOL)flag; /** * Make current selection visible. */ - (void) makeSelectionVisible: (BOOL)flag; - (id) openSubeditorForObject: (id)anObject; /** * Order the edited window to the front. */ - (void) orderFront; /** * Paste from pasteboard. */ - (void) pasteInSelection; /** * Reset object, redisplays the window. */ - (void) resetObject: (id)anObject; @end #endif gorm-1.2.24/GormCore/GormPlacementInfo.h0000644000000000000000000000405513410616261016505 0ustar rootroot/* GormPlacementInfo.h * * Copyright (C) 2002 Free Software Foundation, Inc. * * Author: Pierre-Yves Rivaille * Date: 2002 * * This file is part of GNUstep. * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 3 of the License, or * (at your option) any later version. * * This program 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 General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02111 USA. */ #ifndef INCLUDED_GormPlacementInfo_h #define INCLUDED_GormPlacementInfo_h #include #include @class NSView, NSMutableArray; @interface GormPlacementInfo : NSObject { @public NSView *resizingIn; NSRect oldRect; BOOL firstPass; BOOL hintInitialized; NSMutableArray *leftHints; NSMutableArray *rightHints; NSMutableArray *topHints; NSMutableArray *bottomHints; NSRect lastLeftRect; NSRect lastRightRect; NSRect lastTopRect; NSRect lastBottomRect; NSRect hintFrame; NSRect lastFrame; IBKnobPosition knob; } @end typedef enum _GormHintBorder { Top, Bottom, Left, Right } GormHintBorder; @interface GormPlacementHint : NSObject { GormHintBorder _border; float _position; float _start; float _end; NSRect _frame; } - (id) initWithBorder: (GormHintBorder) border position: (float) position validityStart: (float) start validityEnd: (float) end frame: (NSRect) frame; - (NSRect) rectWithHalfDistance: (int) halfDistance; - (int) distanceToFrame: (NSRect) frame; - (float) position; - (float) start; - (float) end; - (NSRect) frame; - (GormHintBorder) border; @end #endif gorm-1.2.24/GormCore/NSCell+GormAdditions.m0000644000000000000000000000407413410616261017021 0ustar rootroot/* NSCell+GormAdditions.h * * Copyright (C) 1999, 2003 Free Software Foundation, Inc. * * Author: Gregory John Casamento * Date: 1999, 2003 * * This file is part of GNUstep. * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 3 of the License, or * (at your option) any later version. * * This program 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 General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02111 USA. */ #include #include #include "NSCell+GormAdditions.h" @implementation NSCell (GormAdditions) /* * this methods is directly coming from NSCell.m * The only additions is [textObject setUsesFontPanel: NO] * We do this because we want to have control over the font panel changes */ - (NSText *)setUpFieldEditorAttributes:(NSText *)textObject { [textObject setUsesFontPanel: NO]; [textObject setTextColor: [self textColor]]; if (_cell.contents_is_attributed_string == NO) { /* TODO: Manage scrollable attribute */ [textObject setFont: _font]; [textObject setAlignment: _cell.text_align]; } else { /* TODO: What do we do if we are an attributed string. Think about what happens when the user ends editing. Allows editing text attributes... Formatter. */ } [textObject setEditable: _cell.is_editable]; [textObject setSelectable: _cell.is_selectable || _cell.is_editable]; [textObject setRichText: _cell.is_rich_text]; [textObject setImportsGraphics: _cell.imports_graphics]; [textObject setSelectedRange: NSMakeRange(0, 0)]; return textObject; } @end gorm-1.2.24/GormCore/GormResourceEditor.m0000644000000000000000000002243313410616261016724 0ustar rootroot/* GormResourceEditor.m * * Copyright (C) 2002 Free Software Foundation, Inc. * * Author: Gregory John Casamento * Date: 2002 * * This file is part of GNUstep. * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 3 of the License, or * (at your option) any later version. * * This program 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 General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02111 USA. */ #include #include "GormDocument.h" #include "GormPrivate.h" #include "GormResourceEditor.h" #include "GormFunctions.h" #include "GormPalettesManager.h" #include "GormResource.h" @implementation GormResourceEditor - (BOOL) acceptsTypeFromArray: (NSArray*)types { return [types containsObject: NSFilenamesPboardType]; } - (NSArray *) fileTypes { return nil; } - (NSArray *) pbTypes { return nil; } /* * Dragging source protocol implementation */ - (void) draggedImage: (NSImage*)i endedAt: (NSPoint)p deposited: (BOOL)f { } - (unsigned int) draggingSourceOperationMaskForLocal: (BOOL)flag { return NSDragOperationCopy; } - (id) placeHolderWithPath: (NSString *)string { return nil; } - (void) drawSelection { } - (id) document { return document; } - (void) handleNotification: (NSNotification*)aNotification { NSString *name = [aNotification name]; if([name isEqual: GormResizeCellNotification]) { NSDebugLog(@"Received notification"); [self setCellSize: defaultCellSize()]; } } - (void) addSystemResources { // NSMutableArray *list = [NSMutableArray array]; // do nothing... this is the parent class. } /* * Initialisation */ - (id) initWithObject: (id)anObject inDocument: (id)aDocument { if ((self = [super initWithObject: anObject inDocument: aDocument]) != nil) { NSButtonCell *proto; [self setAutosizesCells: NO]; [self setCellSize: NSMakeSize(72,72)]; [self setIntercellSpacing: NSMakeSize(8,8)]; [self setAutoresizingMask: NSViewMinYMargin|NSViewWidthSizable]; [self setMode: NSRadioModeMatrix]; /* * Send mouse click actions to self, so we can handle selection. */ [self setAction: @selector(changeSelection:)]; [self setDoubleAction: @selector(raiseSelection:)]; [self setTarget: self]; objects = [[NSMutableArray alloc] init]; proto = [[NSButtonCell alloc] init]; [proto setBordered: NO]; [proto setAlignment: NSCenterTextAlignment]; [proto setImagePosition: NSImageAbove]; [proto setSelectable: NO]; [proto setEditable: NO]; [self setPrototype: proto]; RELEASE(proto); // do not insert it if it's nil. if(anObject != nil) { [self addObject: anObject]; } // add any initial objects [self addSystemResources]; // set up the notification... [[NSNotificationCenter defaultCenter] addObserver: self selector: @selector(handleNotification:) name: GormResizeCellNotification object: nil]; } return self; } - (void) close { [super close]; [[NSNotificationCenter defaultCenter] removeObserver: self]; } - (NSString *) resourceType { return @"resource"; } - (void) addObject: (id)anObject { if([objects containsObject: anObject] == NO) { [super addObject: anObject]; } else { NSString *type = [self resourceType]; NSString *msg = [NSString stringWithFormat: _(@"Problem adding %@"), type]; NSRunAlertPanel(msg, _(@"A resource with the same name exists, remove it first."), _(@"OK"), nil, nil); } } - (void) makeSelectionVisible: (BOOL)flag { if (flag == YES && selected != nil) { unsigned pos = [objects indexOfObjectIdenticalTo: selected]; int r = pos / [self numberOfColumns]; int c = pos % [self numberOfColumns]; [self selectCellAtRow: r column: c]; } else { [self deselectAllCells]; } [self displayIfNeeded]; [[self window] flushWindow]; } - (void) mouseDown: (NSEvent*)theEvent { NSInteger row, column; NSInteger newRow, newColumn; unsigned eventMask = NSLeftMouseUpMask | NSLeftMouseDownMask | NSMouseMovedMask | NSLeftMouseDraggedMask | NSPeriodicMask; NSPoint lastLocation = [theEvent locationInWindow]; NSEvent* lastEvent = theEvent; NSPoint initialLocation; /* * Pathological case -- ignore mouse down */ if ((_numRows == 0) || (_numCols == 0)) { [super mouseDown: theEvent]; return; } lastLocation = [self convertPoint: lastLocation fromView: nil]; initialLocation = lastLocation; // If mouse down was on a selectable cell, start editing/selecting. if ([self getRow: &row column: &column forPoint: lastLocation]) { if ([_cells[row][column] isEnabled]) { if ((_mode == NSRadioModeMatrix) && _selectedCell != nil) { [_selectedCell setState: NSOffState]; [self drawCellAtRow: _selectedRow column: _selectedColumn]; _selectedCells[_selectedRow][_selectedColumn] = NO; _selectedCell = nil; _selectedRow = _selectedColumn = -1; } [_cells[row][column] setState: NSOnState]; [self drawCellAtRow: row column: column]; [_window flushWindow]; _selectedCells[row][column] = YES; _selectedCell = _cells[row][column]; _selectedRow = row; _selectedColumn = column; } } else { return; } lastEvent = [NSApp nextEventMatchingMask: eventMask untilDate: [NSDate distantFuture] inMode: NSEventTrackingRunLoopMode dequeue: YES]; lastLocation = [self convertPoint: [lastEvent locationInWindow] fromView: nil]; while ([lastEvent type] != NSLeftMouseUp) { if((![self getRow: &newRow column: &newColumn forPoint: lastLocation]) || (row != newRow) || (column != newColumn) || ((lastLocation.x - initialLocation.x) * (lastLocation.x - initialLocation.x) + (lastLocation.y - initialLocation.y) * (lastLocation.y - initialLocation.y) >= 25)) { NSPasteboard *pb; NSInteger pos; pos = row * [self numberOfColumns] + column; // don't allow the user to drag empty resources. if(pos < [objects count]) { pb = [NSPasteboard pasteboardWithName: NSDragPboard]; [pb declareTypes: [self pbTypes] owner: self]; [pb setString: [(GormResource *)[objects objectAtIndex: pos] name] forType: [[self pbTypes] objectAtIndex: 0]]; [self dragImage: [[objects objectAtIndex: pos] imageForViewer] at: lastLocation offset: NSZeroSize event: theEvent pasteboard: pb source: self slideBack: YES]; } return; } lastEvent = [NSApp nextEventMatchingMask: eventMask untilDate: [NSDate distantFuture] inMode: NSEventTrackingRunLoopMode dequeue: YES]; lastLocation = [self convertPoint: [lastEvent locationInWindow] fromView: nil]; } [self changeSelection: self]; } - (void) pasteInSelection { } - (void) deleteSelection { if(![selected isSystemResource]) { if([selected isInWrapper]) { NSFileManager *mgr = [NSFileManager defaultManager]; NSString *path = [selected path]; BOOL removed = [mgr removeFileAtPath: path handler: nil]; if(!removed) { NSString *msg = [NSString stringWithFormat: @"Could not delete file %@", path]; NSLog(@"%@",msg); } } [super deleteSelection]; } } - (id) raiseSelection: (id)sender { id obj = [self changeSelection: sender]; id e; e = [document editorForObject: obj create: YES]; [e orderFront]; [e resetObject: obj]; return self; } - (void) refreshCells { unsigned count = [objects count]; unsigned index; int cols = 0; int rows; int width; // return if the superview is not available. if(![self superview]) { return; } width = [[self superview] bounds].size.width; while (width >= 72) { width -= (72 + 8); cols++; } if (cols == 0) { cols = 1; } rows = count / cols; if (rows == 0 || rows * cols != count) { rows++; } [self renewRows: rows columns: cols]; for (index = 0; index < count; index++) { id obj = [objects objectAtIndex: index]; NSButtonCell *but = [self cellAtRow: index/cols column: index%cols]; NSString *name = [(GormResource *)obj name]; [but setImage: [obj imageForViewer]]; [but setTitle: name]; [but setShowsStateBy: NSChangeGrayCellMask]; [but setHighlightsBy: NSChangeGrayCellMask]; } while (index < rows * cols) { NSButtonCell *but = [self cellAtRow: index/cols column: index%cols]; [but setImage: nil]; [but setTitle: @""]; [but setShowsStateBy: NSNoCellMask]; [but setHighlightsBy: NSNoCellMask]; index++; } [self setIntercellSpacing: NSMakeSize(8,8)]; [self sizeToCells]; [self setNeedsDisplay: YES]; } @end gorm-1.2.24/GormCore/GormPrivate.m0000644000000000000000000001615213410616261015401 0ustar rootroot/* GormPrivate.m * * Copyright (C) 1999, 2003 Free Software Foundation, Inc. * * Author: Richard Frith-Macdonald * Author: Gregory John Casamento * Date: 1999, 2003, 2004 * * This file is part of GNUstep. * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 3 of the License, or * (at your option) any later version. * * This program 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 General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02111 USA. */ #include "GormPrivate.h" #include "GormFontViewController.h" #include "GormSetNameController.h" #include "GNUstepGUI/GSNibLoading.h" #include "GNUstepBase/GSObjCRuntime.h" // for templates... #include #include NSString *GormToggleGuidelineNotification = @"GormToggleGuidelineNotification"; NSString *GormDidModifyClassNotification = @"GormDidModifyClassNotification"; NSString *GormDidAddClassNotification = @"GormDidAddClassNotification"; NSString *GormDidDeleteClassNotification = @"GormDidDeleteClassNotification"; NSString *GormWillDetachObjectFromDocumentNotification = @"GormWillDetachObjectFromDocumentNotification"; NSString *GormResizeCellNotification = @"GormResizeCellNotification"; // Private, and soon to be deprecated, notification string... NSString *GSInternalNibItemAddedNotification = @"_GSInternalNibItemAddedNotification"; // Define this as "NO" initially. We only want to turn this on while loading or testing. static BOOL _isInInterfaceBuilder = NO; @class InfoPanel; // we had this include for grouping/ungrouping selectors #include "GormViewWithContentViewEditor.h" @implementation GSNibItem (GormAdditions) - (id) initWithClassName: (NSString*)className frame: (NSRect)frame { if((self = [super init]) != nil) { theClass = [className copy]; theFrame = frame; } return self; } - (id) initWithClassName: (NSString*)className { return [self initWithClassName: className frame: NSMakeRect(0,0,0,0)]; } - (NSString*) className { return theClass; } @end @interface NSObject (GormPrivate) // + (void) poseAsClass: (Class)aClassObject; + (BOOL) canSubstituteForClass: (Class)origClass; @end @implementation NSObject (GormPrivate) /* + (void) poseAsClass: (Class)aClassObject { // disable poseAs: while in Gorm. class_pose_as(self, aClassObject); NSLog(@"WARNING: poseAs: called in Gorm."); } */ + (BOOL) canSubstituteForClass: (Class)origClass { if(self == origClass) { return YES; } else if([self isSubclassOfClass: origClass]) { Class cls = self; while(cls != nil && cls != origClass) { if(GSGetMethod(cls, @selector(initWithCoder:), YES, NO) != NULL && GSGetMethod(cls, @selector(encodeWithCoder:), YES, NO) != NULL) { return NO; } cls = GSObjCSuper(cls); // get super class } return YES; } return NO; } @end @implementation GormObjectProxy /* * Perhaps this would be better to have a dummy initProxyWithCoder * in GSNibItem class, so that we are not dependent on actual coding * order of the ivars ? */ - (id) initWithCoder: (NSCoder*)aCoder { if([aCoder allowsKeyedCoding]) { ASSIGN(theClass, [aCoder decodeObjectForKey: @"NSClassName"]); theFrame = NSZeroRect; return self; } else { NSUInteger version = [aCoder versionForClassName: NSStringFromClass([GSNibItem class])]; NSInteger cv = [aCoder versionForClassName: NSStringFromClass([GSNibContainer class])]; if (version == NSNotFound) { NSLog(@"no GSNibItem"); version = [aCoder versionForClassName: NSStringFromClass([GormObjectProxy class])]; } // add to the top level items during unarchiving, if the container is old. if (cv == 0) { NSNotificationCenter *nc = [NSNotificationCenter defaultCenter]; [nc postNotificationName: GSInternalNibItemAddedNotification object: self]; } if (version == 0) { // do not decode super (it would try to morph into theClass ! ) [aCoder decodeValueOfObjCType: @encode(id) at: &theClass]; theFrame = [aCoder decodeRect]; RETAIN(theClass); // release in dealloc of GSNibItem... return self; } else if (version == 1) { // do not decode super (it would try to morph into theClass ! ) [aCoder decodeValueOfObjCType: @encode(id) at: &theClass]; theFrame = [aCoder decodeRect]; [aCoder decodeValueOfObjCType: @encode(unsigned int) at: &autoresizingMask]; RETAIN(theClass); // release in dealloc of GSNibItem... return self; } else { NSLog(@"no initWithCoder for version %d", (int)version); RELEASE(self); return nil; } } return nil; } - (void) encodeWithCoder: (NSCoder *)coder { if([coder allowsKeyedCoding]) { [coder encodeObject: theClass forKey: @"NSClassName"]; } else { [super encodeWithCoder: coder]; } } - (NSString*) inspectorClassName { return @"GormNotApplicableInspector"; } - (NSString*) classInspectorClassName { return @"GormNotApplicableInspector"; } - (void) setClassName: (NSString *)className { ASSIGNCOPY(theClass, className); } - (NSImage *) imageForViewer { NSImage *image = [super imageForViewer]; if([theClass isEqual: @"NSFontManager"]) { NSBundle *bundle = [NSBundle mainBundle]; NSString *path = [bundle pathForImageResource: @"GormFontManager"]; image = [[NSImage alloc] initWithContentsOfFile: path]; } return image; } @end // define the class proxy... @implementation GormClassProxy - (id) initWithClassName: (NSString *)n { self = [super init]; if (self != nil) { if([n isKindOfClass: [NSString class]]) { // create a copy. ASSIGNCOPY(name, n); } else { NSLog(@"Attempt to add a class proxy with className = %@",n); } } return self; } - (void) dealloc { RELEASE(name); [super dealloc]; } - (NSString*) className { return name; } - (NSString*) inspectorClassName { return @"GormClassInspector"; } - (NSString*) classInspectorClassName { return @"GormNotApplicableInspector"; } - (NSString*) connectInspectorClassName { return @"GormNotApplicableInspector"; } - (NSString*) sizeInspectorClassName { return @"GormNotApplicableInspector"; } @end // custom class additions... @implementation GSClassSwapper (GormCustomClassAdditions) + (void) setIsInInterfaceBuilder: (BOOL)flag { _isInInterfaceBuilder = flag; } - (BOOL) isInInterfaceBuilder { return _isInInterfaceBuilder; } @end @implementation IBResourceManager (GormAdditions) + (void) registerForAllPboardTypes: (id)editor inDocument: (id)doc { NSArray *allTypes = [doc allManagedPboardTypes]; [editor registerForDraggedTypes: allTypes]; } @end gorm-1.2.24/GormCore/GormSoundView.m0000644000000000000000000000517313410616261015713 0ustar rootroot/** GormSoundView Visualizes a sound. Copyright (C) 2004 Free Software Foundation, Inc. Author: Gregory John Casamento Date: May 2004 This file is part of GNUstep. 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 3 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, 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ /* All Rights reserved */ #include #include "GormSoundView.h" #include // add a data method to the NSSound class... @interface NSSound (SoundView) - (NSData *)data; @end @implementation NSSound (SoundView) - (NSData *)data { return _data; } @end /* static float findMax(NSData *data) { float max = 0.0; NSInteger index = 0; float *array = (float *)[data bytes]; NSInteger len = [data length]; // find the maximum... for(index = 0; index < len; index++) { float d = array[index]; if(d > max) { max = d; } } return max; } */ @implementation GormSoundView - (void) setSound: (NSSound *)sound { NSLog(@"Set sound..."); ASSIGN(_sound,sound); [self setNeedsDisplay: YES]; } - (NSSound *)sound { return _sound; } /* - (void) drawRect: (NSRect)aRect { float w = aRect.size.width; float h = aRect.size.height; float offset = (h/2); NSData *soundData = [_sound data]; float *data = 0; float x1 = 0, x2 = 0, y1 = offset, y2 = offset; float max = findMax(soundData); float multiplier = h/max; NSInteger length = [soundData length]; NSInteger index = 0; NSInteger step = (length/(int)w); [super drawRect: aRect]; PSsetrgbcolor(1.0,0,0); // red data = (float *)[soundData bytes]; if( length > 2 ) { x1 = (data[0] * multiplier); y1 = offset; for(index = step; index < w; index+=step) { NSInteger i = (int)index; float d = data[i]; // calc new position... x2 = d * multiplier; y2 = index + offset; PSmoveto(x1,y1); PSlineto(x2,y2); // move to old vars... x1 = x2; y1 = y2; } } } */ @end gorm-1.2.24/GormCore/GormSound.m0000644000000000000000000000554013410616261015056 0ustar rootroot/* GormSound.m * * Copyright (C) 2002 Free Software Foundation, Inc. * * Author: Gregory John Casamento * Date: Dec 2004 * * This file is part of GNUstep. * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 3 of the License, or * (at your option) any later version. * * This program 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 General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02111 USA. */ #include #include #include #include #include "GormSound.h" // sound proxy object... @implementation GormSound + (GormSound*) soundForPath: (NSString *)aPath { return [GormSound soundForPath: aPath inWrapper: NO]; } + (GormSound*) soundForPath: (NSString *)aPath inWrapper: (BOOL)flag { return AUTORELEASE([[GormSound alloc] initWithPath: aPath inWrapper: flag]); } + (GormSound*)soundForData: (NSData *)aData withFileName: (NSString *)aName inWrapper: (BOOL)flag { return AUTORELEASE([[GormSound alloc] initWithData: aData withFileName: aName inWrapper: flag]); } - (id) initWithData: (NSData *)aData withFileName: (NSString *)aName inWrapper: (BOOL)flag { if((self = [super initWithData: aData withFileName: aName inWrapper: flag])) { // ASSIGN(sound, AUTORELEASE([[NSImage alloc] initWithData: aData])); } return self; } - (id) initWithName: (NSString *)aName path: (NSString *)aPath inWrapper: (BOOL)flag { if((self = [super initWithName: aName path: aPath inWrapper: flag]) != nil) { NSSound *sound = [[NSSound alloc] initWithContentsOfFile: aPath byReference: YES]; [(NSSound *)sound setName: aName]; // cache the sound under the given name. } return self; } @end @implementation GormSound (IBObjectAdditions) - (NSString *)inspectorClassName { return @"GormSoundInspector"; } - (NSString *) classInspectorClassName { return @"GormNotApplicableInspector"; } - (NSString *) connectInspectorClassName { return @"GormNotApplicableInspector"; } - (NSString *) objectNameForInspectorTitle { return @"Sound"; } - (NSImage *) imageForViewer { static NSImage *image = nil; if (image == nil) { NSBundle *bundle = [NSBundle mainBundle]; NSString *bpath = [bundle pathForImageResource: @"GormSound"]; image = [[NSImage alloc] initWithContentsOfFile: bpath]; } return image; } @end gorm-1.2.24/GormCore/GormNSSplitViewInspector.h0000644000000000000000000000025613410616261020036 0ustar rootroot/* All Rights reserved */ #include #include @interface GormNSSplitViewInspector : IBInspector { id orientation; } @end gorm-1.2.24/GormCore/GormNSPanel.m0000644000000000000000000000732513410616261015271 0ustar rootroot/* GormNSPanel.m Copyright (C) 2003 Free Software Foundation, Inc. Author: Gregory John Casamento Date: 2003 (Adapted from GormNSWindow.m) This file is part of GNUstep. This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 3 of the License, or (at your option) any later version. This program 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 General Public License for more details. You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02111 USA. */ #include #include #include #include "GormNSPanel.h" // the default style mask we start with. static NSUInteger defaultStyleMask = NSTitledWindowMask | NSClosableWindowMask | NSResizableWindowMask | NSMiniaturizableWindowMask; @implementation GormNSPanel - (void)encodeWithCoder: (NSCoder*) aCoder { unsigned oldStyleMask; // save the old values... oldStyleMask = _styleMask; // set the values we wish to save.. after save restore. _styleMask = _gormStyleMask; [self setReleasedWhenClosed: _gormReleasedWhenClosed]; [super encodeWithCoder: aCoder]; _styleMask = oldStyleMask; [self setReleasedWhenClosed: NO]; } - (id) initWithCoder: (NSCoder *)coder { self = [super initWithCoder: coder]; if (self == nil) { return nil; } // preserve the setting and set the actual window to NO. _gormReleasedWhenClosed = [self isReleasedWhenClosed]; [self setReleasedWhenClosed: NO]; return self; } - (id) initWithContentRect: (NSRect)contentRect styleMask: (NSUInteger)aStyle backing: (NSBackingStoreType)bufferingType defer: (BOOL)flag { _gormStyleMask = aStyle; self = [super initWithContentRect: contentRect styleMask: defaultStyleMask backing: bufferingType defer: flag]; if(self != nil) { // Don't release when the window is closed, a window being edited may // be periodically opened and closed. [self setReleasedWhenClosed: NO]; // remove the default icon... [self setMiniwindowImage: nil]; // set the default position mask; autoPositionMask = GSWindowMaxXMargin | GSWindowMaxYMargin; } return self; } - (void) _setStyleMask: (unsigned int) newStyleMask { _gormStyleMask = newStyleMask; } - (unsigned int) _styleMask { return _gormStyleMask; } - (NSString *) className { return @"NSPanel"; } - (void) _setReleasedWhenClosed: (BOOL) flag { _gormReleasedWhenClosed = flag; } - (BOOL) _isReleasedWhenClosed { return _gormReleasedWhenClosed; } - (unsigned int) autoPositionMask { return autoPositionMask; } - (void) setAutoPositionMask: (unsigned int)mask { autoPositionMask = mask; } - (void) orderWindow: (NSWindowOrderingMode)place relativeTo: (NSInteger)otherWin { id document = [(id)NSApp documentForObject: self]; [super orderWindow: place relativeTo: otherWin]; if([NSApp isConnecting] == NO) { id editor = [document editorForObject: self create: NO]; // select myself. if([editor respondsToSelector: @selector(selectObjects:)]) { [editor selectObjects: [NSArray arrayWithObject: self]]; } [document setSelectionFromEditor: editor]; [editor makeSelectionVisible: YES]; } } - (void) saveFrameUsingName: (NSString*)name { // do nothing... } @end gorm-1.2.24/GormCore/GormFilesOwner.h0000644000000000000000000000311713410616261016034 0ustar rootroot/* GormFilesOwner.h * * Copyright (C) 1999 Free Software Foundation, Inc. * * Author: Richard Frith-Macdonald * Author: Gregory John Casamento * Date: 1999, 2004 * * This file is part of GNUstep. * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 3 of the License, or * (at your option) any later version. * * This program 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 General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02111 USA. */ #ifndef INCLUDED_GormFilesOwner_h #define INCLUDED_GormFilesOwner_h #include #include @class NSMutableArray, NSBrowser, NSString; /* * Each document has a GormFilesOwner object that is used as a placeholder * for the owner of the document. */ @interface GormFilesOwner : NSObject { NSString *className; } - (NSString*) className; - (void) setClassName: (NSString*)aName; @end @interface GormFilesOwnerInspector : IBInspector { NSBrowser *browser; NSMutableArray *classes; BOOL hasConnections; } - (void) takeClassFrom: (id)sender; @end #endif gorm-1.2.24/GormCore/GormSoundInspector.h0000644000000000000000000000264013410616261016736 0ustar rootroot/** GormSoundInspector allow user to inspect sound files in Gorm Copyright (C) 2002 Free Software Foundation, Inc. Author: Gregory John Casamento Date: September 2002 This file is part of GNUstep. 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 3 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, 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ #ifndef INCLUDED_GormSoundInspector_h #define INCLUDED_GormSoundInspector_h #include #include @class GormClassManager; @class GormSoundView; @interface GormSoundInspector : IBInspector { GormSoundView *soundView; } - (void) stop: (id)sender; - (void) play: (id)sender; - (void) pause: (id)sender; - (void) record: (id)sender; @end #endif gorm-1.2.24/GormCore/GormClassPanelController.m0000644000000000000000000000503513410616261020056 0ustar rootroot/* GormClassPanelController.m * * Copyright (C) 2004 Free Software Foundation, Inc. * * Author: Gregory John Casamento * Date: 2004 * * This file is part of GNUstep. * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 3 of the License, or * (at your option) any later version. * * This program 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 General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02111 USA. */ /* All Rights reserved */ #include #include "GormClassPanelController.h" #include "GormPrivate.h" @implementation GormClassPanelController - (id) initWithTitle: (NSString *)title classList: (NSArray *)classes { self = [super init]; if(self != nil) { if ( ![NSBundle loadNibNamed:@"GormClassPanel" owner:self] ) { NSLog(@"Can not load bundle GormClassPanel"); return nil; } } ASSIGN(allClasses, [classes mutableCopy]); [allClasses removeObject: @"FirstResponder"]; [panel setTitle: title]; [classBrowser loadColumnZero]; return self; } - (NSString *)runModal { [NSApp runModalForWindow: panel]; [panel orderOut: self]; return className; } - (void) dealloc { RELEASE(allClasses); RELEASE(className); RELEASE(panel); [super dealloc]; } - (void) okButton: (id)sender { ASSIGN(className, [[classNameForm cellAtIndex: 0] stringValue]); [NSApp stopModal]; } - (void) browserAction: (id)sender { [[classNameForm cellAtIndex: 0] setStringValue: [[classBrowser selectedCell] stringValue]]; } - (NSInteger) browser: (NSBrowser*)sender numberOfRowsInColumn: (NSInteger)column { return [allClasses count]; } - (NSString*) browser: (NSBrowser*)sender titleOfColumn: (NSInteger)column { return @"Class"; } - (void) browser: (NSBrowser*)sender willDisplayCell: (id)aCell atRow: (NSInteger)row column: (NSInteger)col { if (row >= 0 && row < [allClasses count]) { [aCell setStringValue: [allClasses objectAtIndex: row]]; [aCell setEnabled: YES]; } else { [aCell setStringValue: @""]; [aCell setEnabled: NO]; } [aCell setLeaf: YES]; } @end gorm-1.2.24/GormCore/GormDocumentWindow.h0000644000000000000000000000222513410616261016724 0ustar rootroot#ifndef __INCLUDED_GormDocumentWindow_h /* GormDocumentWindow.h * * Copyright (C) 2006 Free Software Foundation, Inc. * * Author: Matt Rice * * This file is part of GNUstep. * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 3 of the License, or * (at your option) any later version. * * This program 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 General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02111 USA. */ #include #include @interface GormDocumentWindow : NSWindow { id _document; IBResourceManager *dragMgr; } - (void) setDocument:(id)document; @end #define __INCLUDED_GormDocumentWindow_h #endif gorm-1.2.24/GormCore/GormWindowEditor.m0000644000000000000000000001705213410616261016405 0ustar rootroot/* GormWindowEditor.m * * Copyright (C) 1999,2004,2005 Free Software Foundation, Inc. * * Author: Richard Frith-Macdonald * Date: 1999 * Author: Gregory John Casamento * Date: 2004,2005 * * This file is part of GNUstep. * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 3 of the License, or * (at your option) any later version. * * This program 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 General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02111 USA. */ #include #include #include "GormPrivate.h" #include "GormViewWithContentViewEditor.h" #include "GormInternalViewEditor.h" #include "GormViewKnobs.h" #include "GormWindowEditor.h" #include #define _EO ((NSWindow *)_editedObject) /* * Default implementations of methods used for updating a view by * direct action through an editor. */ @implementation NSView (IBViewAdditions) - (BOOL) acceptsColor: (NSColor*)color atPoint: (NSPoint)point { return NO; /* Can the view accept a color drag-and-drop? */ } - (BOOL) allowsAltDragging { return NO; /* Can the view be dragged into a matrix? */ } - (void) depositColor: (NSColor*)color atPoint: (NSPoint)point { /* Handle color drop in view. */ } - (NSSize) maximumSizeFromKnobPosition: (IBKnobPosition)knobPosition { NSView *s = [self superview]; NSRect r = (s != nil) ? [s bounds] : [self bounds]; return r.size; /* maximum resize permitted */ } - (NSSize) minimumSizeFromKnobPosition: (IBKnobPosition)position { return NSMakeSize(5, 5); /* Minimum resize permitted */ } - (void) placeView: (NSRect)newFrame { [self setFrame: newFrame]; /* View changed by editor. */ } @end @interface NSWindow (GormWindowEditorAdditions) - (void) unsetInitialFirstResponder; @end @implementation NSWindow (GormWindowEditorAdditions) /* * The setFirstResponder method is used in this editor to allow it to * respond to messages forwarded to the window appropriately. * Unfortunately, once it's set to something, it cannot be set to nil. * This method allows us to set it to nil, thus preventing a memory leak. */ - (void) unsetInitialFirstResponder { if(_firstResponder == _initialFirstResponder) { _firstResponder = nil; } _initialFirstResponder = nil; } @end @implementation GormWindowEditor - (id) initWithObject: (id)anObject inDocument: (id)aDocument { NSNotificationCenter *nc = [NSNotificationCenter defaultCenter]; if ((self = [super initWithFrame: NSZeroRect]) == nil) return nil; [nc addObserver: self selector: @selector(handleNotification:) name: IBWillCloseDocumentNotification object: aDocument]; _displaySelection = YES; ASSIGN(_editedObject, anObject); // we don't retain the document... document = aDocument; [self registerForDraggedTypes: [NSArray arrayWithObjects: GormLinkPboardType, IBViewPboardType, nil]]; selection = [[NSMutableArray alloc] init]; subeditors = [[NSMutableArray alloc] init]; activated = NO; closed = NO; [self activate]; return self; } - (void) dealloc { if (closed == NO) [self close]; RELEASE(selection); RELEASE(subeditors); [super dealloc]; } - (BOOL) acceptsFirstMouse: (NSEvent*)theEvent { NSDebugLog(@"acceptsFirstMouse"); return YES; } - (BOOL) acceptsFirstResponder { NSDebugLog(@"acceptsFirstResponder"); return YES; } - (void) encodeWithCoder: (NSCoder*)aCoder { [NSException raise: NSInternalInconsistencyException format: @"Argh - encoding window editor"]; } - (BOOL) acceptsTypeFromArray: (NSArray*)types { /* * A window editor can accept views pasted in to the window. */ return [types containsObject: IBViewPboardType]; } - (BOOL) activate { if (activated == NO) { NSView *contentView = [_EO contentView]; contentViewEditor = (GormInternalViewEditor *)[document editorForObject: contentView inEditor: self create: YES]; [_EO setInitialFirstResponder: self]; [self setOpened: YES]; activated = YES; return YES; } return NO; } - (void) deactivate { if (activated == YES) { [contentViewEditor deactivate]; [_EO unsetInitialFirstResponder]; activated = NO; } return; } - (void) changeFont: (id)sender { NSDebugLog(@"changeFont"); } - (void) close { NSAssert(closed == NO, NSInternalInconsistencyException); closed = YES; [[NSNotificationCenter defaultCenter] removeObserver: self]; [self makeSelectionVisible: NO]; if ([(id)NSApp selectionOwner] == self) { [document resignSelectionForEditor: self]; } [self closeSubeditors]; [self deactivate]; [document editor: self didCloseForObject: _EO]; } - (void) closeSubeditors { while ([subeditors count] > 0) { id sub = [subeditors lastObject]; [sub close]; [subeditors removeObjectIdenticalTo: sub]; } } - (void) copySelection { NSLog(@"copySelection"); } - (void) deleteSelection { NSLog(@"deleteSelection"); } - (void) drawSelection { NSDebugLog(@"drawSelection"); } - (id) document { return document; } - (void) makeSelectionVisible: (BOOL)flag { if (flag == NO) { if ([selection count] > 0) { NSEnumerator *enumerator = [selection objectEnumerator]; NSView *view; [[self window] disableFlushWindow]; while ((view = [enumerator nextObject]) != nil) { NSRect rect = GormExtBoundsForRect([view frame]); [edit_view displayRect: rect]; } [[self window] enableFlushWindow]; [[self window] flushWindowIfNeeded]; } } else { [self drawSelection]; [[self window] flushWindow]; } } - (id) openSubeditorForObject: (id)anObject { NSDebugLog(@"openSubeditorForObject"); return nil; } - (void) orderFront { [_EO orderFront: self]; } - (void) pasteInSelection { NSLog(@"pasteInSelection"); } - (BOOL) performDragOperation: (id)sender { NSDebugLog(@"performDragOperation"); return NO; } - (BOOL) prepareForDragOperation: (id)sender { return NO; } - (void) resetObject: (id)anObject { [[self window] makeKeyAndOrderFront: self]; } - (id) selectAllItems: (id)sender { NSDebugLog(@"selectAllItems"); return nil; } - (NSUInteger) selectionCount { NSDebugLog(@"selectionCount"); return 0; } - (void) validateEditing { NSDebugLog(@"validateEditing"); } /* * Dragging source protocol implementation */ - (void) draggedImage: (NSImage*)i endedAt: (NSPoint)p deposited: (BOOL)f { /* * Notification that a drag failed/succeeded. */ NSDebugLog(@"draggedImage"); if(f == NO) { NSRunAlertPanel(nil, _(@"Window drag failed."), _(@"OK"), nil, nil); } } - (NSUInteger) draggingSourceOperationMaskForLocal: (BOOL)flag { NSDebugLog(@"draggingSourceOperationMaskForLocal"); return NSDragOperationNone; } - (NSDragOperation) draggingEntered: (id)sender { return NSDragOperationNone; } - (NSDragOperation) draggingUpdated: (id)sender { return NSDragOperationNone; } @end gorm-1.2.24/GormCore/GormOpenGLView.m0000644000000000000000000000350613410616261015745 0ustar rootroot/* GormOpenGLView.h - Demo view for show when displaying a NSOpenGLView during * testing only. * * Copyright (C) 2005 Free Software Foundation, Inc. * * Author: Gregory John Casamento * Date: 2005 * * This file is part of GNUstep. * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 3 of the License, or * (at your option) any later version. * * This program 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 General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02111 USA. */ #include #include #include // #include // #include @implementation GormOpenGLView - (id) initWithFrame: (NSRect)rect { if((self = [super initWithFrame: rect]) != nil) { /* rtri = 0.0f; timer = [NSTimer scheduledTimerWithTimeInterval: 0.05 target: self selector: @selector(oneStep) userInfo: nil repeats: YES]; */ } return self; } - (void) dealloc { // [timer invalidate]; [super dealloc]; } - (void) oneStep { // rotate. // rtri -= 0.2f; rtri = 0.5f; [self setNeedsDisplay: YES]; } - (void) drawRect: (NSRect)rect { // do nothing for now... [[NSColor blackColor] set]; PSrectfill(NSMinX(rect), NSMinY(rect), NSWidth(rect), NSHeight(rect)); } @end gorm-1.2.24/GormCore/GormFilesOwner.m0000644000000000000000000001540113410616261016040 0ustar rootroot/* GormFilesOwner.m * * Copyright (C) 1999 Free Software Foundation, Inc. * * Author: Richard Frith-Macdonald * Author: Gregory John Casamento * Date: 1999, 2004 * * This file is part of GNUstep. * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 3 of the License, or * (at your option) any later version. * * This program 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 General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02111 USA. */ #include #include "GormPrivate.h" #include "GormCustomView.h" // @class GormCustomView; @implementation GormFilesOwner - (NSString*) className { return className; } - (void) dealloc { RELEASE(className); [super dealloc]; } - (NSImage*) imageForViewer { static NSImage *image = nil; if (image == nil) { NSBundle *bundle = [NSBundle mainBundle]; NSString *path = [bundle pathForImageResource: @"GormFilesOwner"]; image = [[NSImage alloc] initWithContentsOfFile: path]; } return image; } - (id) init { self = [super init]; [self setClassName: @"NSApplication"]; return self; } - (NSString*) inspectorClassName { return @"GormFilesOwnerInspector"; } - (NSString*) classInspectorClassName { return @"GormFilesOwnerInspector"; } - (void) setClassName: (NSString*)aName { ASSIGN(className, aName); } - (void) encodeWithCoder: (NSCoder *)coder { if([coder allowsKeyedCoding]) { [coder encodeObject: className forKey: @"NSClassName"]; } } /* - (id) initWithCoder: (NSCoder *)coder { [NSException raise: NSInvalidArgumentException format: @"Keyed coding not implemented for %@.", NSStringFromClass([self class])]; return nil; // never reached, but keeps gcc happy. } */ @end @implementation GormFilesOwnerInspector - (NSInteger) browser: (NSBrowser*)sender numberOfRowsInColumn: (NSInteger)column { return [classes count]; } - (NSString*) browser: (NSBrowser*)sender titleOfColumn: (NSInteger)column { return @"Class"; } - (void) browser: (NSBrowser*)sender willDisplayCell: (id)aCell atRow: (NSInteger)row column: (NSInteger)col { if (row >= 0 && row < [classes count]) { [aCell setStringValue: [classes objectAtIndex: row]]; [aCell setEnabled: YES]; } else { [aCell setStringValue: @""]; [aCell setEnabled: NO]; } [aCell setLeaf: YES]; } - (void) dealloc { RELEASE(classes); [super dealloc]; } - (void) _classAdded: (NSNotification *)notification { [self setObject: object]; } - (void) _classDeleted: (NSNotification *)notification { [self setObject: object]; } - (id) init { self = [super init]; if (self != nil) { NSView *contents; NSRect rect; NSRect browserRect; rect = NSMakeRect(0, 0, IVW, IVH); window = [[NSWindow alloc] initWithContentRect: rect styleMask: NSBorderlessWindowMask backing: NSBackingStoreRetained defer: NO]; contents = [window contentView]; browserRect = NSMakeRect(31,56,203,299); browser = [[NSBrowser alloc] initWithFrame: browserRect]; [browser setAutoresizingMask: NSViewWidthSizable|NSViewHeightSizable]; [browser setMaxVisibleColumns: 1]; [browser setAllowsMultipleSelection: NO]; [browser setHasHorizontalScroller: NO]; [browser setDelegate: self]; [browser setTarget: self]; [browser setAction: @selector(takeClassFrom:)]; [contents addSubview: browser]; RELEASE(browser); // add observers for relavent notifications. [[NSNotificationCenter defaultCenter] addObserver: self selector: @selector(_classAdded:) name: GormDidAddClassNotification object: [(id)NSApp classManager]]; [[NSNotificationCenter defaultCenter] addObserver: self selector: @selector(_classDeleted:) name: GormDidDeleteClassNotification object: [(id)NSApp classManager]]; } return self; } - (void) setObject: (id)anObject { // filter the classes to view only when a custom view is selected. if([anObject isKindOfClass: [GormCustomView class]]) { ASSIGN(classes, AUTORELEASE([[[(id)NSApp classManager] allSubclassesOf: @"NSView"] mutableCopy])); } else { ASSIGN(classes, AUTORELEASE([[[(id)NSApp classManager] allClassNames] mutableCopy])); } // remove the first responder, since we don't want the user to choose this. [classes removeObject: @"FirstResponder"]; if (anObject != nil) { NSArray *array; NSUInteger pos; ASSIGN(object, anObject); hasConnections = NO; /* * Create list of existing connections for selected object. */ array = [[(id)NSApp activeDocument] connectorsForSource: object ofClass: [NSNibOutletConnector class]]; if ([array count] > 0) hasConnections = YES; array = [[(id)NSApp activeDocument] connectorsForDestination: object ofClass: [NSNibControlConnector class]]; if ([array count] > 0) hasConnections = YES; [browser loadColumnZero]; pos = [classes indexOfObject: [object className]]; if (pos != NSNotFound) { [browser selectRow: pos inColumn: 0]; } } } - (void) takeClassFrom: (id)sender { NSString *title = [[browser selectedCell] stringValue]; NSDebugLog(@"Selected %d, %@", (int)[browser selectedRowInColumn: 0], title); if (hasConnections > 0 && [title isEqual: [object className]] == NO) { if (NSRunAlertPanel(nil, _(@"This operation will break existing connection"), _(@"OK"), _(@"Cancel"), nil) != NSAlertDefaultReturn) { unsigned pos = [classes indexOfObject: [object className]]; [browser selectRow: pos inColumn: 0]; return; } else { NSArray *array; id doc = [(id)NSApp activeDocument]; unsigned i; array = [doc connectorsForSource: object ofClass: [NSNibOutletConnector class]]; for (i = 0; i < [array count]; i++) { id con = [array objectAtIndex: i]; [doc removeConnector: con]; } array = [doc connectorsForDestination: object ofClass: [NSNibControlConnector class]]; for (i = 0; i < [array count]; i++) { id con = [array objectAtIndex: i]; [doc removeConnector: con]; } hasConnections = NO; } } [object setClassName: title]; } @end gorm-1.2.24/GormCore/GormCustomClassInspector.m0000644000000000000000000002660213410616261020117 0ustar rootroot/** GormCustomClassInspector allow user to select custom classes Copyright (C) 2002 Free Software Foundation, Inc. Author: Gregory John Casamento Date: September 2002 This file is part of GNUstep. 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 3 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, 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ /* All Rights reserved */ #include #include "GormCustomClassInspector.h" #include "GormPrivate.h" #include "GormClassManager.h" #include "GormDocument.h" #include "GormPrivate.h" #include "GormViewEditor.h" @implementation GormCustomClassInspector + (void) initialize { if (self == [GormCustomClassInspector class]) { // TBD } } - (id) init { self = [super init]; if (self != nil) { // initialize all member variables... _classManager = nil; _currentSelectionClassName = nil; _rowToSelect = 0; // load the gui... if (![NSBundle loadNibNamed: @"GormCustomClassInspector" owner: self]) { NSLog(@"Could not open gorm GormCustomClassInspector"); return nil; } } return self; } - (void) _setCurrentSelectionClassName: (id)anobject { NSString *className; className = [_classManager customClassForObject: anobject]; if ([className isEqualToString: @""] || className == nil) { className = [anobject className]; } ASSIGN(_currentSelectionClassName, className); ASSIGN(_parentClassName, [anobject className]); } - (NSMutableArray *) _generateClassList { NSMutableArray *classes = [NSMutableArray arrayWithObject: _parentClassName]; NSArray *subclasses = [_classManager allSubclassesOf: _parentClassName]; NSEnumerator *en = [subclasses objectEnumerator]; NSString *className = nil; Class parentClass = NSClassFromString(_parentClassName); while((className = [en nextObject]) != nil) { if([_classManager isCustomClass: className] == YES) { NSString *superClass = [_classManager nonCustomSuperClassOf: className]; Class cls = NSClassFromString(superClass); if(cls != nil) { if([cls respondsToSelector: @selector(canSubstituteForClass:)]) { if([cls canSubstituteForClass: parentClass]) { [classes addObject: className]; } } } } else if(parentClass != nil) { Class cls = NSClassFromString(className); if(cls != nil) { if([cls respondsToSelector: @selector(canSubstituteForClass:)]) { if([cls canSubstituteForClass: parentClass]) { [classes addObject: className]; } } } } } return classes; } - (void) setObject: (id)anObject { if(anObject != nil) { NSMutableArray *classes = nil; [super setObject: anObject]; _document = [(id)NSApp activeDocument]; _classManager = [(id)NSApp classManager]; // get the information... NSDebugLog(@"Current selection %@", [self object]); [self _setCurrentSelectionClassName: [self object]]; // load the array... [browser loadColumnZero]; // get a list of all of the classes allowed and the class to be shown // and select the appropriate row in the inspector... classes = [self _generateClassList]; // [NSMutableArray arrayWithObject: _parentClassName]; // [classes addObjectsFromArray: [_classManager allCustomSubclassesOf: _parentClassName]]; _rowToSelect = [classes indexOfObject: _currentSelectionClassName]; _rowToSelect = (_rowToSelect != NSNotFound)?_rowToSelect:0; if(_rowToSelect != NSNotFound) { [browser selectRow: _rowToSelect inColumn: 0]; } } } - (void) awakeFromNib { [browser setTarget: self]; [browser setAction: @selector(select:)]; [browser setMaxVisibleColumns: 1]; } - (void) _replaceWithCellClassForClassName: (NSString *)name { NSString *className = name; if([[object class] respondsToSelector: @selector(cellClass)]) { if([_classManager customClassForObject: object]) { if([_classManager isCustomClass: className]) { className = [_classManager nonCustomSuperClassOf: name]; } } if(className != nil) { Class cls = NSClassFromString(className); if(cls != nil) { Class cellClass = [cls cellClass]; if(cellClass != [[object cell] class]) { id newCell = [[cellClass alloc] init]; id cell = RETAIN([object cell]); // retain the old cell for now... BOOL drawsBackground = NO; if([object respondsToSelector: @selector(drawsBackground)]) { drawsBackground = [object drawsBackground]; } // TODO: Need to find a more generic way to handle this. Perhaps using // encoding, kv-copying or @defs(...). // set the new cell.. [object setCell: newCell]; // general state... if([newCell respondsToSelector: @selector(setFont:)] && [cell respondsToSelector: @selector(font)]) { [newCell setFont: [cell font]]; } if([newCell respondsToSelector: @selector(setEnabled:)] && [cell respondsToSelector: @selector(isEnabled)]) { [newCell setEnabled: [cell isEnabled]]; } if([newCell respondsToSelector: @selector(setEditable:)] && [cell respondsToSelector: @selector(isEditable)]) { [newCell setEditable: [cell isEditable]]; } if([newCell respondsToSelector: @selector(setImportsGraphics:)] && [cell respondsToSelector: @selector(importsGraphics)]) { [newCell setImportsGraphics: [cell importsGraphics]]; } if([newCell respondsToSelector: @selector(setShowsFirstResponder:)] && [cell respondsToSelector: @selector(showsFirstResponder)]) { [newCell setShowsFirstResponder: [cell showsFirstResponder]]; } if([newCell respondsToSelector: @selector(setRefusesFirstResponder:)] && [cell respondsToSelector: @selector(refusesFirstResponder)]) { [newCell setRefusesFirstResponder: [cell refusesFirstResponder]]; } if([newCell respondsToSelector: @selector(setBordered:)] && [cell respondsToSelector: @selector(isBordered)]) { [newCell setBordered: [cell isBordered]]; } if([newCell respondsToSelector: @selector(setBezeled:)] && [cell respondsToSelector: @selector(isBezeled)]) { [newCell setBezeled: [cell isBezeled]]; } if([newCell respondsToSelector: @selector(setScrollable:)] && [cell respondsToSelector: @selector(isScrollable)]) { [newCell setScrollable: [cell isScrollable]]; } if([newCell respondsToSelector: @selector(setSelectable:)] && [cell respondsToSelector: @selector(isSelectable)]) { [newCell setSelectable: [cell isSelectable]]; } if([newCell respondsToSelector: @selector(setState:)] && [cell respondsToSelector: @selector(state)]) { [newCell setState: [cell state]]; } if([(NSCell *)cell type] == NSTextCellType) { // title... if([newCell respondsToSelector: @selector(setStringValue:)] && [cell respondsToSelector: @selector(stringValue)]) { [newCell setStringValue: [cell stringValue]]; } if([newCell respondsToSelector: @selector(setTitle:)] && [cell respondsToSelector: @selector(title)]) { [newCell setTitle: [cell title]]; } if([newCell respondsToSelector: @selector(setAlternateTitle:)] && [cell respondsToSelector: @selector(alternateTitle)]) { [newCell setAlternateTitle: [cell alternateTitle]]; } } else if([(NSCell *)cell type] == NSImageCellType) { // images... if([newCell respondsToSelector: @selector(setAlternateImage:)] && [cell respondsToSelector: @selector(alternateImage)]) { [newCell setAlternateImage: [cell alternateImage]]; } if([newCell respondsToSelector: @selector(setImage:)] && [cell respondsToSelector: @selector(image)]) { [newCell setImage: [cell image]]; } if([newCell respondsToSelector: @selector(setImagePosition:)] && [cell respondsToSelector: @selector(imagePosition)]) { [newCell setImagePosition: [cell imagePosition]]; } } // set attributes of textfield. if([object respondsToSelector: @selector(setDrawsBackground:)]) { [object setDrawsBackground: drawsBackground]; } [object setNeedsDisplay: YES]; RELEASE(cell); } } } } } - (void) select: (id)sender { NSCell *cell = [browser selectedCellInColumn: 0]; NSString *stringValue = [NSString stringWithString: [cell stringValue]]; NSString *nameForObject = [_document nameForObject: [self object]]; NSString *classForObject = [[self object] className]; GormViewEditor *gve = (GormViewEditor *)[_document editorForObject: [self object] create: NO]; NSDebugLog(@"selected = %@, class = %@",stringValue,nameForObject); /* add or remove the mapping as necessary. */ if(nameForObject != nil) { [super ok: sender]; if (![stringValue isEqualToString: classForObject]) { [_classManager setCustomClass: stringValue forName: nameForObject]; } else { [_classManager removeCustomClassForName: nameForObject]; } [gve setToolTip: [NSString stringWithFormat: @"%@,%@", nameForObject, stringValue]]; [self _replaceWithCellClassForClassName: stringValue]; } else NSLog(@"name for object %@ returned as nil",[self object]); } // Browser delegate - (void) browser: (NSBrowser *)sender createRowsForColumn: (NSInteger)column inMatrix: (NSMatrix *)matrix { if (_parentClassName != nil) { NSMutableArray *classes; NSEnumerator *e = nil; NSString *class = nil; NSBrowserCell *cell = nil; NSInteger i = 0; classes = [self _generateClassList]; // [NSMutableArray arrayWithObject: _parentClassName]; // get a list of all of the classes allowed and the class to be shown. //[classes addObjectsFromArray: // [_classManager allCustomSubclassesOf: _parentClassName]]; // enumerate through the classes... e = [classes objectEnumerator]; while ((class = [e nextObject]) != nil) { if ([class isEqualToString: _currentSelectionClassName]) { _rowToSelect = i; } [matrix insertRow: i withCells: nil]; cell = [matrix cellAtRow: i column: 0]; [cell setLeaf: YES]; i++; [cell setStringValue: class]; } } } - (NSString*) browser: (NSBrowser*)sender titleOfColumn: (NSInteger)column { NSDebugLog(@"Delegate called"); return @"Class"; } - (void) browser: (NSBrowser *)sender willDisplayCell: (id)cell atRow: (NSInteger)row column: (NSInteger)column { } - (BOOL) browser: (NSBrowser *)sender isColumnValid: (NSInteger)column { return YES; } @end gorm-1.2.24/GormCore/NSCell+GormAdditions.h0000644000000000000000000000253513410616261017014 0ustar rootroot/* NSCell+GormAdditions.h * * Copyright (C) 1999, 2003, 2005 Free Software Foundation, Inc. * * Author: Gregory John Casamento * Date: 1999, 2003, 2005 * * This file is part of GNUstep. * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 3 of the License, or * (at your option) any later version. * * This program 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 General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02111 USA. */ #ifndef INCLUDED_NSCellGormAdditions_h #define INCLUDED_NSCellGormAdditions_h #include @class NSText; @interface NSCell (GormAdditions) /** * This methods is comes directly from NSCell.m * The only additions is [textObject setUsesFontPanel: NO] * We do this because we want to have control over the font * panel changes. */ - (NSText *)setUpFieldEditorAttributes:(NSText *)textObject; @end #endif gorm-1.2.24/GormCore/GormClassInspector.m0000644000000000000000000005303613410616261016725 0ustar rootroot/** GormClassInspector allow user to select custom classes Copyright (C) 2003 Free Software Foundation, Inc. Author: Gregory John Casamento Date: March 2003 This file is part of GNUstep. 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 3 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, 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ /* All Rights reserved */ #include #include "GormClassInspector.h" #include "GormClassManager.h" #include "GormDocument.h" #include "GormFunctions.h" #include "GormPrivate.h" #include "GormProtocol.h" #include NSNotificationCenter *nc = nil; // interfaces @interface GormDocument (GormClassInspectorAdditions) - (void) collapseClass: (NSString *)className; - (void) reloadClasses; @end // the data source classes for each of the tables... @interface GormOutletDataSource : NSObject { id inspector; } - (void) setInspector: (id)ins; @end @interface GormActionDataSource : NSObject { id inspector; } - (void) setInspector: (id)ins; @end @interface GormClassesDataSource : NSObject { id inspector; } - (void) setInspector: (id)ins; @end // implementation @implementation GormDocument (GormClassInspectorAdditions) - (void) collapseClass: (NSString *)className { NSDebugLog(@"%@",className); [classesView resetObject: className]; } - (void) reloadClasses { [classesView reloadData]; } @end @implementation GormOutletDataSource - (NSInteger) numberOfRowsInTableView: (NSTableView *)tv { NSArray *list = [[(id)NSApp classManager] allOutletsForClassNamed: [inspector _currentClass]]; return [list count]; } - (id) tableView: (NSTableView *)tv objectValueForTableColumn: (NSTableColumn *)tc row: (NSInteger)rowIndex { NSArray *list = [[(id)NSApp classManager] allOutletsForClassNamed: [inspector _currentClass]]; id value = nil; if([list count] > 0) { value = [list objectAtIndex: rowIndex]; } return value; } - (void) tableView: (NSTableView *)tv setObjectValue: (id)anObject forTableColumn: (NSTableColumn *)tc row: (NSInteger)rowIndex { id classManager = [(id)NSApp classManager]; NSString *currentClass = [inspector _currentClass]; NSArray *list = [classManager allOutletsForClassNamed: currentClass]; NSString *name = [list objectAtIndex: rowIndex]; NSString *formattedOutlet = formatOutlet( (NSString *)anObject ); GormDocument *document = (GormDocument *)[(id )NSApp activeDocument]; if(![name isEqual: formattedOutlet]) { BOOL removed = [document removeConnectionsWithLabel: name forClassNamed: currentClass isAction: NO]; if(removed) { [classManager replaceOutlet: name withOutlet: formattedOutlet forClassNamed: currentClass]; // collapse the class in question if it's being edited and make // certain that names in the list are kept in sync. [document collapseClass: currentClass]; [document reloadClasses]; [document selectClass: currentClass editClass: NO]; } } } // set methods - (void) setInspector: (id)ins { ASSIGN(inspector, ins); } @end @implementation GormActionDataSource - (NSInteger) numberOfRowsInTableView: (NSTableView *)tv { NSArray *list = [[(id)NSApp classManager] allActionsForClassNamed: [inspector _currentClass]]; return [list count]; } - (id) tableView: (NSTableView *)tv objectValueForTableColumn: (NSTableColumn *)tc row: (NSInteger)rowIndex { NSArray *list = [[(id)NSApp classManager] allActionsForClassNamed: [inspector _currentClass]]; return [list objectAtIndex: rowIndex]; } - (void) tableView: (NSTableView *)tv setObjectValue: (id)anObject forTableColumn: (NSTableColumn *)tc row: (NSInteger)rowIndex { id classManager = [(id)NSApp classManager]; NSString *currentClass = [inspector _currentClass]; NSArray *list = [classManager allActionsForClassNamed: currentClass]; NSString *name = [list objectAtIndex: rowIndex]; NSString *formattedAction = formatAction( (NSString *)anObject ); GormDocument *document = (GormDocument *)[(id )NSApp activeDocument]; if(![name isEqual: formattedAction]) { BOOL removed = [document removeConnectionsWithLabel: name forClassNamed: currentClass isAction: YES]; if(removed) { [classManager replaceAction: name withAction: formattedAction forClassNamed: currentClass]; // collapse the class in question if it's being edited and make // certain that names in the list are kept in sync. [document collapseClass: currentClass]; [document reloadClasses]; [document selectClass: currentClass editClass: NO]; } } } // set method - (void) setInspector: (id)ins { ASSIGN(inspector, ins); } @end @implementation GormClassesDataSource - (NSInteger) numberOfRowsInTableView: (NSTableView *)tv { NSArray *list = [[(id)NSApp classManager] allClassNames]; return [list count]; } - (id) tableView: (NSTableView *)tv objectValueForTableColumn: (NSTableColumn *)tc row: (NSInteger)rowIndex { NSArray *list = [[(id)NSApp classManager] allClassNames]; id value = nil; if([list count] > 0) { value = [list objectAtIndex: rowIndex]; } return value; } - (void) tableView: (NSTableView *)tv setObjectValue: (id)anObject forTableColumn: (NSTableColumn *)tc row: (NSInteger)rowIndex { // cannot replace any values for this data source... } // set methods - (void) setInspector: (id)ins { ASSIGN(inspector, ins); } @end @implementation GormClassInspector + (void) initialize { if (self == [GormClassInspector class]) { nc = [NSNotificationCenter defaultCenter]; } } - (id) init { self = [super init]; if (self != nil) { // initialize all member variables... actionTable = nil; addAction = nil; addOutlet = nil; classField = nil; outletTable = nil; removeAction = nil; removeOutlet = nil; tabView = nil; currentClass = nil; actionData = nil; outletData = nil; parentClassData = nil; // load the gui... if (![NSBundle loadNibNamed: @"GormClassInspector" owner: self]) { NSLog(@"Could not open gorm GormClassInspector"); return nil; } [nc addObserver: self selector: @selector(handleNotification:) name: GormDidModifyClassNotification object: nil]; } return self; } - (void) awakeFromNib { // instantiate.. actionData = [[GormActionDataSource alloc] init]; outletData = [[GormOutletDataSource alloc] init]; parentClassData = [[GormClassesDataSource alloc] init]; // initialize.. [actionData setInspector: self]; [outletData setInspector: self]; [parentClassData setInspector: self]; // use.. [actionTable setDataSource: actionData]; [outletTable setDataSource: outletData]; [parentClass setDataSource: parentClassData]; [parentClass setDoubleAction: @selector(selectClass:)]; [parentClass setTarget: self]; // delegate... [actionTable setDelegate: self]; [outletTable setDelegate: self]; [parentClass setDelegate: self]; } - (void) _refreshView { id addActionCell = [addAction cell]; id removeActionCell = [removeAction cell]; id addOutletCell = [addOutlet cell]; id removeOutletCell = [removeOutlet cell]; id selectClassCell = [selectClass cell]; id searchCell = [search cell]; BOOL isEditable = [classManager isCustomClass: [self _currentClass]]; BOOL isFirstResponder = [[self _currentClass] isEqualToString: @"FirstResponder"]; NSArray *list = [classManager allClassNames]; NSString *superClass = [classManager parentOfClass: [self _currentClass]]; NSUInteger index = [list indexOfObject: superClass]; [classField setStringValue: [self _currentClass]]; [outletTable reloadData]; [actionTable reloadData]; [parentClass reloadData]; // [outletTable deselectAll: self]; // [actionTable deselectAll: self]; // activate for actions... [addActionCell setEnabled: YES]; [removeActionCell setEnabled: NO]; // YES]; // activate for outlet... [addOutletCell setEnabled: (isEditable && !isFirstResponder)]; [removeOutletCell setEnabled: NO]; // (isEditable && !isFirstResponder)]; // activate select class... [selectClassCell setEnabled: (isEditable && !isFirstResponder)]; [parentClass setEnabled: (isEditable && !isFirstResponder)]; [searchCell setEnabled: (isEditable && !isFirstResponder)]; [classField setEditable: (isEditable && !isFirstResponder)]; [classField setBackgroundColor: ((isEditable && !isFirstResponder)?[NSColor whiteColor]:[NSColor lightGrayColor])]; // select the parent class if(index != NSNotFound && list != nil) { [parentClass selectRow: index byExtendingSelection: NO]; [parentClass scrollRowToVisible: index]; } } - (void) addAction: (id)sender { NS_DURING { GormDocument *document = (GormDocument *)[(id )NSApp activeDocument]; if(document != nil) { NSString *className = [self _currentClass]; NSString *newAction = [classManager addNewActionToClassNamed: className]; NSArray *list = [classManager allActionsForClassNamed: className]; NSInteger row = [list indexOfObject: newAction]; [document collapseClass: className]; [document reloadClasses]; [nc postNotificationName: IBInspectorDidModifyObjectNotification object: classManager]; [actionTable reloadData]; [actionTable scrollRowToVisible: row]; [actionTable selectRow: row byExtendingSelection: NO]; [document selectClass: className]; [super ok: sender]; } } NS_HANDLER { NSLog(@"%@",[localException reason]); } NS_ENDHANDLER; } - (void) addOutlet: (id)sender { NS_DURING { GormDocument *document = (GormDocument *)[(id )NSApp activeDocument]; if(document != nil) { NSString *className = [self _currentClass]; NSString *newOutlet = [classManager addNewOutletToClassNamed: className]; NSArray *list = [classManager allOutletsForClassNamed: className]; NSInteger row = [list indexOfObject: newOutlet]; [document collapseClass: className]; [document reloadClasses]; [nc postNotificationName: IBInspectorDidModifyObjectNotification object: classManager]; [outletTable reloadData]; [outletTable scrollRowToVisible: row]; [outletTable selectRow: row byExtendingSelection: NO]; [document selectClass: className]; [super ok: sender]; } } NS_HANDLER { NSLog(@"%@",[localException reason]); } NS_ENDHANDLER; } - (void) removeAction: (id)sender { NS_DURING { NSInteger i = [actionTable selectedRow]; NSString *className = [self _currentClass]; NSArray *list = [classManager allActionsForClassNamed: className]; BOOL removed = NO; BOOL isCustom = [classManager isCustomClass: className]; NSString *name = nil; GormDocument *document = (GormDocument *)[(id )NSApp activeDocument]; if(document != nil) { // check the count... if(isCustom || [classManager isCategoryForClass: className]) { if([list count] > 0 && i >= 0 && i < [list count]) { [actionTable deselectAll: self]; name = [list objectAtIndex: i]; if(isCustom || [classManager isAction: name onCategoryForClassNamed: className]) { removed = [document removeConnectionsWithLabel: name forClassNamed: currentClass isAction: YES]; } } if(removed) { [super ok: sender]; [document collapseClass: className]; [document reloadClasses]; [classManager removeAction: name fromClassNamed: className]; [nc postNotificationName: IBInspectorDidModifyObjectNotification object: classManager]; [actionTable reloadData]; [document selectClass: className]; } } } } NS_HANDLER { NSLog(@"%@",[localException reason]); } NS_ENDHANDLER; } - (void) removeOutlet: (id)sender { NS_DURING { NSInteger i = [outletTable selectedRow]; NSString *className = [self _currentClass]; NSArray *list = [classManager allOutletsForClassNamed: className]; BOOL removed = NO; NSString *name = nil; GormDocument *document = (GormDocument *)[(id )NSApp activeDocument]; if(document != nil) { // check the count... if([list count] > 0 && i >= 0 && i < [list count]) { [outletTable deselectAll: self]; name = [list objectAtIndex: i]; removed = [document removeConnectionsWithLabel: name forClassNamed: currentClass isAction: NO]; } if(removed) { [super ok: sender]; [document collapseClass: className]; [document reloadClasses]; [classManager removeOutlet: name fromClassNamed: className]; [nc postNotificationName: IBInspectorDidModifyObjectNotification object: classManager]; [outletTable reloadData]; [document selectClass: className]; } } } NS_HANDLER { NSLog(@"%@",[localException reason]); } NS_ENDHANDLER; } - (void) select: (id)sender { NSLog(@"select..."); } - (void) searchForClass: (id)sender { NSArray *list = [classManager allClassNames]; NSString *stringValue = [searchText stringValue]; NSInteger index = [list indexOfObject: stringValue]; NSLog(@"Search... %@",[searchText stringValue]); if(index != NSNotFound && list != nil && [stringValue isEqualToString: @"FirstResponder"] == NO) { // select the parent class [parentClass selectRow: index byExtendingSelection: NO]; [parentClass scrollRowToVisible: index]; } } - (void) selectClass: (id)sender { NSArray *list = [classManager allClassNames]; NSInteger row = [parentClass selectedRow]; NS_DURING { if(row >= 0) { NSString *newParent = [list objectAtIndex: row]; NSString *name = [self _currentClass]; GormDocument *document = (GormDocument *)[(id )NSApp activeDocument]; // if it's a custom class, let it go, if not do nothing. if(document != nil) { if([classManager isCustomClass: name]) { NSString *title = _(@"Modifying/Reparenting Class"); NSString *msg = [NSString stringWithFormat: _(@"This action may break existing connections " @"to instances of class '%@'" @"and it's subclasses. Continue?"), name]; NSInteger retval = -1; BOOL removed = NO; [super ok: sender]; // ask the user if he/she wants to continue... retval = NSRunAlertPanel(title, msg,_(@"OK"),_(@"Cancel"), nil, nil); if (retval == NSAlertDefaultReturn) { removed = YES; } else { removed = NO; } // if removed, move the class and notify... if(removed) { NSString *oldSuper = [classManager superClassNameForClassNamed: name]; [classManager setSuperClassNamed: newParent forClassNamed: name]; [document refreshConnectionsForClassNamed: name]; [nc postNotificationName: IBInspectorDidModifyObjectNotification object: classManager]; [document collapseClass: oldSuper]; [document collapseClass: name]; [document reloadClasses]; [document selectClass: name]; } } } } } NS_HANDLER { NSLog(@"%@",[localException reason]); } NS_ENDHANDLER; } - (void) changeClassName: (id)sender { NSString *name = [self _currentClass]; NSString *newName = [sender stringValue]; GormDocument *document = (GormDocument *)[(id )NSApp activeDocument]; BOOL flag = NO; // check to see if the user wants to do this and rename the connections. flag = [document renameConnectionsForClassNamed: name toName: newName]; if(flag) { [document collapseClass: name]; [classManager renameClassNamed: name newName: newName]; [nc postNotificationName: IBInspectorDidModifyObjectNotification object: classManager]; [document reloadClasses]; [document selectClass: newName]; [super ok: sender]; } } - (void) selectAction: (id)sender { NSInteger row = [sender selectedRow]; NSArray *actions = [classManager allActionsForClassNamed: currentClass]; if(row <= [actions count]) { BOOL isCustom = [classManager isCustomClass: currentClass]; id cell = [removeAction cell]; NSString *action = [actions objectAtIndex: row]; BOOL isAction = [classManager isAction: action ofClass: currentClass]; BOOL isActionOnCategory = [classManager isAction: action onCategoryForClassNamed: currentClass]; [cell setEnabled: ((isCustom && isAction) || isActionOnCategory)]; } } - (void) selectOutlet: (id)sender { NSInteger row = [sender selectedRow]; NSArray *outlets = [classManager allOutletsForClassNamed: currentClass]; if(row <= [outlets count]) { BOOL isCustom = [classManager isCustomClass: currentClass]; BOOL isFirstResponder = [currentClass isEqualToString: @"FirstResponder"]; id cell = [removeOutlet cell]; NSString *outlet = [outlets objectAtIndex: row]; BOOL isOutlet = [classManager isOutlet: outlet ofClass: currentClass]; [cell setEnabled: (isOutlet && isCustom && !isFirstResponder)]; } } - (void) clickOnClass: (id)sender { NSLog(@"Click on class %@",sender); } - (void) setObject: (id)anObject { NSInteger outletsCount = 0; NSInteger actionsCount = 0; NSTabViewItem *item = nil; if([anObject isKindOfClass: [GormClassProxy class]]) { [super setObject: anObject]; ASSIGN(classManager, [(id)NSApp classManager]); ASSIGN(currentClass, [object className]); outletsCount = [[classManager allOutletsForClassNamed: currentClass] count]; actionsCount = [[classManager allActionsForClassNamed: currentClass] count]; item = [tabView tabViewItemAtIndex: 1]; // actions; [item setLabel: [NSString stringWithFormat: @"Actions (%ld)",(long)actionsCount]]; item = [tabView tabViewItemAtIndex: 0]; // outlets; [item setLabel: [NSString stringWithFormat: @"Outlets (%ld)",(long)outletsCount]]; [tabView setNeedsDisplay: YES]; [self _refreshView]; } else { NSLog(@"Got %@ set to class edit inspector",anObject); } } - (NSString *) _currentClass { return AUTORELEASE([[object className] copy]); } - (void) handleNotification: (NSNotification *)notification { if([notification object] == classManager && [(id)NSApp activeDocument] != nil) { [self _refreshView]; } } // table delegate/data source methods... - (BOOL) tableView: (NSTableView *)tableView shouldEditTableColumn: (NSTableColumn *)aTableColumn row: (NSInteger)rowIndex { BOOL result = NO; if(tableView != parentClass) { NSArray *list = nil; NSString *name = nil; NSString *className = [self _currentClass]; if(tableView == actionTable) { list = [classManager allActionsForClassNamed: className]; name = [list objectAtIndex: rowIndex]; } else if(tableView == outletTable) { list = [classManager allOutletsForClassNamed: className]; name = [list objectAtIndex: rowIndex]; } if([classManager isCustomClass: className]) { if(tableView == actionTable) { result = [classManager isAction: name ofClass: className]; } else if(tableView == outletTable) { result = [classManager isOutlet: name ofClass: className]; } } else { result = [classManager isAction: name onCategoryForClassNamed: className]; } } return result; } - (void) tableView: (NSTableView *)tableView willDisplayCell: (id)aCell forTableColumn: (NSTableColumn *)aTableColumn row: (NSInteger)rowIndex { /* NSString *name = [aCell stringValue]; NSString *className = [self _currentClass]; if(tableView == actionTable) { if(([classManager isCustomClass: className] && [classManager isAction: name ofClass: className]) || [classManager isAction: name onCategoryForClassNamed: className]) { [aCell setTextColor: [NSColor blackColor]]; } else { [aCell setTextColor: [NSColor darkGrayColor]]; } } else if(tableView == outletTable) { if([classManager isCustomClass: className] && [classManager isOutlet: name ofClass: className]) { [aCell setTextColor: [NSColor blackColor]]; } else { [aCell setTextColor: [NSColor darkGrayColor]]; } } */ [(NSTextFieldCell *)aCell setScrollable: YES]; } - (BOOL) tableView: (NSTableView *)tv shouldSelectRow: (NSInteger)rowIndex { BOOL result = YES; if(tv == parentClass) { NSArray *list = [classManager allClassNames]; NSString *className = [list objectAtIndex: rowIndex]; NSString *name = [self _currentClass]; BOOL isFirstResponder = [className isEqualToString: @"FirstResponder"]; BOOL isCurrentClass = [className isEqualToString: name]; BOOL isSubClass = [classManager isSuperclass: name linkedToClass: className]; if(isFirstResponder || isCurrentClass || isSubClass) { NSBeep(); result = NO; } } return result; } @end gorm-1.2.24/GormCore/GormViewWithSubviewsEditor.h0000644000000000000000000000362313410616261020426 0ustar rootroot/* GormViewWithSubviewsEditor.h * * Copyright (C) 2002 Free Software Foundation, Inc. * * Author: Pierre-Yves Rivaille * Date: 2002 * * This file is part of GNUstep. * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 3 of the License, or * (at your option) any later version. * * This program 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 General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02111 USA. */ #ifndef INCLUDED_GormViewWithSubviewsEditor_h #define INCLUDED_GormViewWithSubviewsEditor_h #include @interface GormViewWithSubviewsEditor : GormViewEditor { BOOL _displaySelection; GormViewWithSubviewsEditor *openedSubeditor; NSMutableArray *selection; BOOL opened; BOOL _followGuideLine; } /* * Handle mouse click on knob. */ - (void) handleMouseOnKnob: (IBKnobPosition) knob ofView: (GormViewEditor *) view withEvent: (NSEvent *) theEvent; /* * Handle mouse click on view. */ - (void) handleMouseOnView: (GormViewEditor *) view withEvent: (NSEvent *) theEvent; - (void) setOpenedSubeditor: (GormViewWithSubviewsEditor *) newEditor; - (void) openParentEditor; - (void) makeSubeditorResign; - (void) silentlyResetSelection; - (void) selectObjects: (NSArray *) objects; - (void) copySelection; /* * Close subeditors of this editor. */ - (void) closeSubeditors; - (void) deactivateSubeditors; - (void) changeFont: (id)sender; @end #endif gorm-1.2.24/GormCore/GormHelpInspector.m0000644000000000000000000000345113410616261016544 0ustar rootroot/* All Rights reserved */ #include #include "GormHelpInspector.h" #include @implementation GormHelpInspector - (id) init { if ([super init] == nil) { return nil; } if ([NSBundle loadNibNamed: @"GormHelpInspector" owner: self] == NO) { NSLog(@"Could not gorm GormHelpInspector"); return nil; } return self; } - (void) ok: (id)sender { id document = [(id)NSApp activeDocument]; NSArray *cons = [document connectorsForDestination: object ofClass: [NSIBHelpConnector class]]; NSIBHelpConnector *con = nil; if([cons count] > 0) { NSEnumerator *en = [cons objectEnumerator]; NSString *val = [sender stringValue]; if([val isEqualToString: @""] == NO) { while((con = [en nextObject]) != nil) { [con setMarker: [sender stringValue]]; } } else { while((con = [en nextObject]) != nil) { [document removeConnector: con]; } } } else { con = [[NSIBHelpConnector alloc] init]; [con setFile: @"NSToolTipHelpKey"]; [con setMarker: [sender stringValue]]; [con setDestination: object]; [document addConnector: con]; } [super ok: sender]; } - (void) revert: (id)sender { id document = [(id)NSApp activeDocument]; NSArray *cons = [document connectorsForDestination: object ofClass: [NSIBHelpConnector class]]; if([cons count] > 0) { NSIBHelpConnector *con = [cons objectAtIndex: 0]; NSString *val = [con marker]; [toolTip setStringValue: val]; } else { [toolTip setStringValue: @""]; } [super revert: sender]; } -(void) controlTextDidChange:(NSNotification *)aNotification { [self ok: [aNotification object]]; } @end gorm-1.2.24/GormCore/GormDocumentController.m0000644000000000000000000001242613410616261017611 0ustar rootroot/* GormDocumentController.m * * This class is a subclass of the NSDocumentController * * Copyright (C) 2006 Free Software Foundation, Inc. * * Author: Gregory John Casamento * Date: 2006 * * This file is part of GNUstep. * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 3 of the License, or * (at your option) any later version. * * This program 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 General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02111 USA. */ #include "GormPrivate.h" #include #include @implementation GormDocumentController - (id) currentDocument { NSArray *documents = [self documents]; unsigned i = [documents count]; id result = nil; if (i > 0) { while (i-- > 0) { id doc = [documents objectAtIndex: i]; if ([doc isActive] == YES) { result = doc; break; } } } return result; } - (void) buildDocumentForType: (GormDocumentType)documentType { GormDocument *doc = nil; NSDebugLog(@"In gorm document controller..."); doc = (GormDocument *)[[self documents] lastObject]; // get the latest document... switch (documentType) { case GormApplication: { NSMenu *aMenu; NSWindow *aWindow; NSRect frame = [[NSScreen mainScreen] frame]; unsigned style = NSTitledWindowMask | NSClosableWindowMask | NSResizableWindowMask | NSMiniaturizableWindowMask; if ([NSMenu respondsToSelector: @selector(allocSubstitute)]) { aMenu = [[NSMenu allocSubstitute] init]; } else { aMenu = [[NSMenu alloc] init]; } if ([NSWindow respondsToSelector: @selector(allocSubstitute)]) { aWindow = [[NSWindow allocSubstitute] initWithContentRect: NSMakeRect(0,0,600, 400) styleMask: style backing: NSBackingStoreBuffered defer: NO]; } else { aWindow = [[NSWindow alloc] initWithContentRect: NSMakeRect(0,0,600, 400) styleMask: style backing: NSBackingStoreBuffered defer: NO]; } [aWindow setFrameTopLeftPoint: NSMakePoint(230, frame.size.height-100)]; [aWindow setTitle: _(@"My Window")]; [doc setName: @"My Window" forObject: aWindow]; [doc attachObject: aWindow toParent: nil]; [doc setObject: aWindow isVisibleAtLaunch: YES]; [aMenu setTitle: _(@"Main Menu")]; [aMenu addItemWithTitle: _(@"Hide") action: @selector(hide:) keyEquivalent: @"h"]; [aMenu addItemWithTitle: _(@"Quit") action: @selector(terminate:) keyEquivalent: @"q"]; // the first menu attached becomes the main menu. [doc attachObject: aMenu toParent: nil]; } break; case GormInspector: { NSPanel *aWindow; NSRect frame = [[NSScreen mainScreen] frame]; unsigned style = NSTitledWindowMask | NSClosableWindowMask; if ([NSPanel respondsToSelector: @selector(allocSubstitute)]) { aWindow = [[NSPanel allocSubstitute] initWithContentRect: NSMakeRect(0,0, IVW, IVH) styleMask: style backing: NSBackingStoreBuffered defer: NO]; } else { aWindow = [[NSPanel alloc] initWithContentRect: NSMakeRect(0,0, IVW, IVH) styleMask: style backing: NSBackingStoreBuffered defer: NO]; } [aWindow setFrameTopLeftPoint: NSMakePoint(230, frame.size.height-100)]; [aWindow setTitle: _(@"Inspector Window")]; [doc setName: @"InspectorWin" forObject: aWindow]; [doc attachObject: aWindow toParent: nil]; } break; case GormPalette: { NSPanel *aWindow; NSRect frame = [[NSScreen mainScreen] frame]; unsigned style = NSTitledWindowMask | NSClosableWindowMask; if ([NSPanel respondsToSelector: @selector(allocSubstitute)]) { aWindow = [[NSPanel allocSubstitute] initWithContentRect: NSMakeRect(0,0,272,160) styleMask: style backing: NSBackingStoreBuffered defer: NO]; } else { aWindow = [[NSPanel alloc] initWithContentRect: NSMakeRect(0,0,272,160) styleMask: style backing: NSBackingStoreBuffered defer: NO]; } [aWindow setFrameTopLeftPoint: NSMakePoint(230, frame.size.height-100)]; [aWindow setTitle: _(@"Palette Window")]; [doc setName: @"PaletteWin" forObject: aWindow]; [doc attachObject: aWindow toParent: nil]; } break; case GormEmpty: { // nothing to do... } break; default: { NSLog(@"Unknown document type..."); } } // set the filetype and touch the document. [doc setFileType: @"GSGormFileType"]; } - (void) newDocument: (id)sender { GormDocumentType documentType = GormApplication; if([sender respondsToSelector: @selector(tag)]) { documentType = (GormDocumentType)[sender tag]; } [super newDocument: sender]; [self buildDocumentForType: documentType]; } - (id) openDocumentWithContentsOfURL:(NSURL *)url { return [self openDocumentWithContentsOfURL:url display:YES]; } @end gorm-1.2.24/GormCore/GormClassManager.m0000644000000000000000000017367713410616261016347 0ustar rootroot/* GormClassManager.m * * Copyright (C) 1999 Free Software Foundation, Inc. * * Author: Richard Frith-Macdonald * Author: Gregory John Casamento * Date: 1999, 2002 * * This file is part of GNUstep. * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 3 of the License, or * (at your option) any later version. * * This program 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 General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02111 USA. */ #include "GormPrivate.h" #include "GormCustomView.h" #include "GormDocument.h" #include "GormFilesOwner.h" #include "GormPalettesManager.h" #include #include #include #include #include #include #include #include /** * Just a few definitions to start things out. To increase efficiency, * so that Gorm doesn't need to constantly derive the method list for * each class, it is necessary to cache some information. Here is the * way it works. * * Actions = All actions on that class, excluding superclass methods. * AllActions = All actions on that class including superclass methods. * ExtraActions = All actions added during this session. * * Outlets = All actions on that class, excluding superclass methods. * AllOutlets = All actions on that class including superclass methods. * ExtraOutlets = All actions added during this session. */ /** Private methods not accesible from outside */ @interface GormClassManager (Private) - (NSMutableDictionary*) classInfoForClassName: (NSString*)className; - (NSMutableDictionary*) classInfoForObject: (id)anObject; - (void) touch; - (void) convertDictionary: (NSMutableDictionary *)dict; @end @interface NSMutableArray (Private) - (void) mergeObject: (id)object; - (void) mergeObjectsFromArray: (NSArray *)array; @end @implementation NSMutableArray (Private) - (void) mergeObject: (id)object { if ([self containsObject: object] == NO) { [self addObject: object]; [self sortUsingSelector: @selector(compare:)]; } } - (void) mergeObjectsFromArray: (NSArray *)array { id obj = nil; if(array != nil) { NSEnumerator *enumerator = [array objectEnumerator]; while ((obj = [enumerator nextObject]) != nil) { [self mergeObject: obj]; } } } @end @implementation GormClassManager - (id) initWithDocument: (id)aDocument { self = [super init]; if (self != nil) { NSBundle *bundle = [NSBundle mainBundle]; NSString *path; document = aDocument; // the document retains us, this is for convenience path = [bundle pathForResource: @"ClassInformation" ofType: @"plist"]; if (path == nil) { NSLog(@"ClassInformation.plist missing from resources"); } else { GormPalettesManager *palettesManager = [(id)NSApp palettesManager]; NSDictionary *importedClasses = [palettesManager importedClasses]; NSEnumerator *en = [importedClasses objectEnumerator]; NSDictionary *description = nil; // load the classes, initialize the custom class array and map.. if([self loadFromFile: path]) { NSMutableDictionary *classDict = [classInformation objectForKey: @"FirstResponder"]; NSMutableArray *firstResponderActions = [classDict objectForKey: @"Actions"]; customClasses = [[NSMutableArray alloc] initWithCapacity: 1]; customClassMap = [[NSMutableDictionary alloc] initWithCapacity: 10]; categoryClasses = [[NSMutableArray alloc] initWithCapacity: 1]; // add the imported classes to the class information list... [classInformation addEntriesFromDictionary: importedClasses]; // add all of the actions to the FirstResponder while((description = [en nextObject]) != nil) { NSArray *actions = [description objectForKey: @"Actions"]; NSEnumerator *aen = [actions objectEnumerator]; NSString *actionName = nil; // add the actions to the first responder... while((actionName = [aen nextObject]) != nil) { if(![firstResponderActions containsObject: actionName]) { [firstResponderActions addObject: [actionName copy]]; } } } // incorporate the added actions into the list and sort. [self allActionsForClassNamed: @"FirstResponder"]; } } } return self; } - (void) touch { [[NSNotificationCenter defaultCenter] postNotificationName: GormDidModifyClassNotification object: self]; [document touch]; } - (void) convertDictionary: (NSMutableDictionary *)dict { [dict removeObjectsForKeys: [classInformation allKeys]]; } - (NSString *) uniqueClassNameFrom: (NSString *)name { NSString *search = [NSString stringWithString: name]; NSInteger i = 1; while([classInformation objectForKey: search]) { search = [name stringByAppendingString: [NSString stringWithFormat: @"%ld",(long)i++]]; } return search; } - (NSString *) addClassWithSuperClassName: (NSString*)name { if (([self isRootClass: name] || [classInformation objectForKey: name] != nil) && [name isEqual: @"FirstResponder"] == NO) { NSMutableDictionary *classInfo; NSMutableArray *outlets; NSMutableArray *actions; NSString *className = [self uniqueClassNameFrom: @"NewClass"]; classInfo = [[NSMutableDictionary alloc] initWithCapacity: 3]; outlets = [[NSMutableArray alloc] initWithCapacity: 0]; actions = [[NSMutableArray alloc] initWithCapacity: 0]; [classInfo setObject: outlets forKey: @"Outlets"]; [classInfo setObject: actions forKey: @"Actions"]; [classInfo setObject: name forKey: @"Super"]; [classInformation setObject: classInfo forKey: className]; [customClasses addObject: className]; [self touch]; [[NSNotificationCenter defaultCenter] postNotificationName: GormDidAddClassNotification object: self]; return className; } return nil; } - (NSString *) addNewActionToClassNamed: (NSString *)name { NSArray *combined = [self allActionsForClassNamed: name]; NSString *newAction = @"newAction"; NSString *search = [newAction stringByAppendingString: @":"]; NSString *new = nil; NSInteger i = 1; while ([combined containsObject: search]) { new = [newAction stringByAppendingFormat: @"%ld", (long)i++]; search = [new stringByAppendingString: @":"]; } [self addAction: search forClassNamed: name]; return search; } - (NSString *) addNewOutletToClassNamed: (NSString *)name { NSArray *combined = [self allOutletsForClassNamed: name]; NSString *newOutlet = @"newOutlet"; NSString *new = newOutlet; NSInteger i = 1; while ([combined containsObject: new]) { new = [newOutlet stringByAppendingFormat: @"%ld", (long)i++]; } [self addOutlet: new forClassNamed: name]; return new; } - (BOOL) addClassNamed: (NSString *)className withSuperClassNamed: (NSString *)superClassName withActions: (NSArray *)actions withOutlets: (NSArray *)outlets { return [self addClassNamed: className withSuperClassNamed: superClassName withActions: actions withOutlets: outlets isCustom: YES]; } - (BOOL) addClassNamed: (NSString *)className withSuperClassNamed: (NSString *)superClassName withActions: (NSArray *)actions withOutlets: (NSArray *)outlets isCustom: (BOOL) isCustom { BOOL result = NO; NSString *classNameCopy = [NSString stringWithString: className]; NSString *superClassNameCopy = (superClassName != nil)?[NSString stringWithString: superClassName]:nil; NSMutableArray *actionsCopy = (actions != nil)?[NSMutableArray arrayWithArray: actions]:[NSMutableArray array]; NSMutableArray *outletsCopy = (outlets != nil)?[NSMutableArray arrayWithArray: outlets]:[NSMutableArray array]; // We make an autoreleased copy of all of the inputs. This prevents changes // to the original objects from reflecting here. GJC if ([self isRootClass: superClassNameCopy] || ([classInformation objectForKey: superClassNameCopy] != nil && [superClassNameCopy isEqualToString: @"FirstResponder"] == NO)) { NSMutableDictionary *classInfo; if (![classInformation objectForKey: classNameCopy]) { NSEnumerator *e = [actionsCopy objectEnumerator]; id action = nil; NSArray *superActions = [self allActionsForClassNamed: superClassNameCopy]; NSArray *superOutlets = [self allOutletsForClassNamed: superClassNameCopy]; [self touch]; classInfo = [[NSMutableDictionary alloc] initWithCapacity: 3]; // if an outlet/action is defined on the superclass before this // class is added, the superclass' entry takes precedence. [actionsCopy removeObjectsInArray: superActions]; [outletsCopy removeObjectsInArray: superOutlets]; [classInfo setObject: outletsCopy forKey: @"Outlets"]; [classInfo setObject: actionsCopy forKey: @"Actions"]; if(superClassNameCopy != nil) { [classInfo setObject: superClassNameCopy forKey: @"Super"]; } [classInformation setObject: classInfo forKey: classNameCopy]; // if it's a custom class add it to the list. if(isCustom) { [customClasses addObject: classNameCopy]; } // copy all actions from the class imported to the first responder while((action = [e nextObject])) { [self addAction: action forClassNamed: @"FirstResponder"]; } result = YES; // post the notification [[NSNotificationCenter defaultCenter] postNotificationName: GormDidAddClassNotification object: self]; } else { NSDebugLog(@"Class already exists"); result = NO; } } return result; } - (void) addAction: (NSString *)anAction forObject: (id)anObject { [self addAction: anAction forClassNamed: [anObject className]]; } - (void) addAction: (NSString *)action forClassNamed: (NSString *)className { NSMutableDictionary *info = [classInformation objectForKey: className]; NSMutableArray *extraActions = [info objectForKey: @"ExtraActions"]; NSMutableArray *allActions = [info objectForKey: @"AllActions"]; NSString *anAction = [action copy]; NSArray *subClasses = [self allSubclassesOf: className]; NSEnumerator *en = [subClasses objectEnumerator]; NSString *subclassName = nil; // check all if ([allActions containsObject: anAction]) { return; } if ([self isNonCustomClass: className]) { if([categoryClasses containsObject: className] == NO) { [categoryClasses addObject: className]; } } if (extraActions == nil) { extraActions = [[NSMutableArray alloc] initWithCapacity: 1]; [info setObject: extraActions forKey: @"ExtraActions"]; } [extraActions mergeObject: anAction]; [allActions mergeObject: anAction]; if(![className isEqualToString: @"FirstResponder"]) { [self addAction: anAction forClassNamed: @"FirstResponder"]; } while((subclassName = [en nextObject]) != nil) { NSDictionary *subInfo = [classInformation objectForKey: subclassName]; NSMutableArray *subAll = [subInfo objectForKey: @"AllActions"]; [subAll mergeObject: anAction]; } [self touch]; } - (void) addOutlet: (NSString *)outlet forObject: (id)anObject { [self addOutlet: outlet forClassNamed: [anObject className]]; } - (void) addOutlet: (NSString *)outlet forClassNamed: (NSString *)className { NSMutableDictionary *info = [classInformation objectForKey: className]; NSMutableArray *extraOutlets = [info objectForKey: @"ExtraOutlets"]; NSMutableArray *allOutlets = [info objectForKey: @"AllOutlets"]; NSString *anOutlet = [outlet copy]; NSArray *subClasses = [self allSubclassesOf: className]; NSEnumerator *en = [subClasses objectEnumerator]; NSString *subclassName = nil; // check all if ([allOutlets containsObject: anOutlet]) { return; } if (extraOutlets == nil) { extraOutlets = [[NSMutableArray alloc] initWithCapacity: 1]; [info setObject: extraOutlets forKey: @"ExtraOutlets"]; } [extraOutlets mergeObject: anOutlet]; [allOutlets mergeObject: anOutlet]; while((subclassName = [en nextObject]) != nil) { NSDictionary *subInfo = [classInformation objectForKey: subclassName]; NSMutableArray *subAll = [subInfo objectForKey: @"AllOutlets"]; [subAll mergeObject: anOutlet]; } [self touch]; } - (void) replaceAction: (NSString *)oldAction withAction: (NSString *)aNewAction forClassNamed: (NSString *)className { NSMutableDictionary *info = [classInformation objectForKey: className]; NSMutableArray *extraActions = [info objectForKey: @"ExtraActions"]; NSMutableArray *actions = [info objectForKey: @"Actions"]; NSMutableArray *allActions = [info objectForKey: @"AllActions"]; NSString *newAction = AUTORELEASE([aNewAction copy]); NSEnumerator *en = [[self subClassesOf: className] objectEnumerator]; NSString *subclassName = nil; if ([allActions containsObject: newAction] || [extraActions containsObject: newAction]) { return; } // replace the action in the appropriate places. if ([extraActions containsObject: oldAction]) { NSInteger extra_index = [extraActions indexOfObject: oldAction]; [extraActions replaceObjectAtIndex: extra_index withObject: newAction]; } if ([actions containsObject: oldAction]) { NSInteger actions_index = [actions indexOfObject: oldAction]; [actions replaceObjectAtIndex: actions_index withObject: newAction]; } if ([allActions containsObject: oldAction]) { NSInteger all_index = [allActions indexOfObject: oldAction]; [allActions replaceObjectAtIndex: all_index withObject: newAction]; } [self touch]; // add the action to all of the subclasses, in the "AllActions" section... while((subclassName = [en nextObject]) != nil) { [self replaceAction: oldAction withAction: newAction forClassNamed: subclassName]; } if(![className isEqualToString: @"FirstResponder"]) { [self replaceAction: oldAction withAction: newAction forClassNamed: @"FirstResponder"]; } } - (void) replaceOutlet: (NSString *)oldOutlet withOutlet: (NSString *)aNewOutlet forClassNamed: (NSString *)className { NSMutableDictionary *info = [classInformation objectForKey: className]; NSMutableArray *extraOutlets = [info objectForKey: @"ExtraOutlets"]; NSMutableArray *outlets = [info objectForKey: @"Outlets"]; NSMutableArray *allOutlets = [info objectForKey: @"AllOutlets"]; NSString *newOutlet = AUTORELEASE([aNewOutlet copy]); NSEnumerator *en = [[self subClassesOf: className] objectEnumerator]; NSString *subclassName = nil; if ([allOutlets containsObject: newOutlet] || [extraOutlets containsObject: newOutlet]) { return; } // replace outlets in appropriate places... if ([extraOutlets containsObject: oldOutlet]) { NSInteger extraIndex = [extraOutlets indexOfObject: oldOutlet]; [extraOutlets replaceObjectAtIndex: extraIndex withObject: newOutlet]; } if ([outlets containsObject: oldOutlet]) { NSInteger outletsIndex = [outlets indexOfObject: oldOutlet]; [outlets replaceObjectAtIndex: outletsIndex withObject: newOutlet]; } if ([allOutlets containsObject: oldOutlet]) { NSInteger allIndex = [allOutlets indexOfObject: oldOutlet]; [allOutlets replaceObjectAtIndex: allIndex withObject: newOutlet]; } [self touch]; // add the action to all of the subclasses, in the "AllActions" section... while((subclassName = [en nextObject]) != nil) { [self replaceOutlet: oldOutlet withOutlet: newOutlet forClassNamed: subclassName]; } } - (void) removeAction: (NSString *)anAction forObject: (id)anObject { [self removeAction: anAction fromClassNamed: [anObject className]]; } - (void) removeAction: (NSString *)anAction fromClassNamed: (NSString *)className { NSMutableDictionary *info = [classInformation objectForKey: className]; NSMutableArray *extraActions = [info objectForKey: @"ExtraActions"]; NSMutableArray *allActions = [info objectForKey: @"AllActions"]; NSEnumerator *en = [[self subClassesOf: className] objectEnumerator]; NSString *subclassName = nil; if ([extraActions containsObject: anAction] == YES || [allActions containsObject: anAction] == YES) { NSString *superName = [info objectForKey: @"Super"]; if (superName != nil) { NSArray *superActions; /* * If this action is new in this class (ie not overriding an * action in a parent) then we remove it from the list of all * actions that the object responds to. */ superActions = [self allActionsForClassNamed: superName]; if ([superActions containsObject: anAction] == NO) { NSMutableArray *array = [info objectForKey: @"AllActions"]; NSMutableArray *actions = [info objectForKey: @"Actions"]; [array removeObject: anAction]; [actions removeObject: anAction]; } } else { NSMutableArray *array = [info objectForKey: @"AllActions"]; NSMutableArray *actions = [info objectForKey: @"Actions"]; [array removeObject: anAction]; [actions removeObject: anAction]; } [extraActions removeObject: anAction]; [self touch]; } if([categoryClasses containsObject: className] && [extraActions count] == 0) { [categoryClasses removeObject: className]; } if(![className isEqualToString: @"FirstResponder"]) { [self removeAction: anAction fromClassNamed: @"FirstResponder"]; } while((subclassName = [en nextObject]) != nil) { [self removeAction: anAction fromClassNamed: subclassName]; } } - (void) removeOutlet: (NSString *)anOutlet forObject: (id)anObject { [self removeOutlet: anOutlet fromClassNamed: [anObject className]]; } - (void) removeOutlet: (NSString *)anOutlet fromClassNamed: (NSString *)className { NSMutableDictionary *info = [classInformation objectForKey: className]; NSMutableArray *extraOutlets = [info objectForKey: @"ExtraOutlets"]; NSMutableArray *allOutlets = [info objectForKey: @"AllOutlets"]; NSEnumerator *en = [[self subClassesOf: className] objectEnumerator]; NSString *subclassName = nil; if ([extraOutlets containsObject: anOutlet] == YES || [allOutlets containsObject: anOutlet] == YES) { NSString *superName = [info objectForKey: @"Super"]; if (superName != nil) { NSArray *superOutlets; // remove the outlet from the other arrays... superOutlets = [self allOutletsForClassNamed: superName]; if ([superOutlets containsObject: anOutlet] == NO) { NSMutableArray *array = [info objectForKey: @"AllOutlets"]; NSMutableArray *actions = [info objectForKey: @"Outlets"]; [array removeObject: anOutlet]; [actions removeObject: anOutlet]; } } else { NSMutableArray *array = [info objectForKey: @"AllOutlets"]; NSMutableArray *actions = [info objectForKey: @"Outlets"]; [array removeObject: anOutlet]; [actions removeObject: anOutlet]; } [extraOutlets removeObject: anOutlet]; [self touch]; } while((subclassName = [en nextObject]) != nil) { [self removeOutlet: anOutlet fromClassNamed: subclassName]; } } - (NSArray *) allActionsForObject: (id)obj { NSString *className; NSArray *actions; Class theClass = [obj class]; NSString *customClassName = [self customClassForObject: obj]; NSDebugLog(@"** ACTIONS"); NSDebugLog(@"Object: %@",obj); NSDebugLog(@"Custom class: %@",customClassName); if (customClassName != nil) { // if the object has been mapped to a custom class, then // get the information for it. className = customClassName; } else if (theClass == [GormFirstResponder class]) { className = @"FirstResponder"; } else if (theClass == [GormFilesOwner class]) { className = [(GormFilesOwner*)obj className]; } else if ([obj isKindOfClass: [GSNibItem class]] == YES) { // this adds support for custom objects className = [obj className]; } else if ([obj isKindOfClass: [GormClassProxy class]] == YES) { // this adds support for class proxies className = [obj className]; } else if ([obj isKindOfClass: [GormCustomView class]] == YES) { // this adds support for custom views className = [obj className]; } else { className = NSStringFromClass(theClass); } if (className == nil) { // NSLog(@"attempt to get actions for non-existent class (%@)", // [obj class]); return nil; } actions = [self allActionsForClassNamed: className]; while (actions == nil && (theClass = class_getSuperclass(theClass)) != nil && theClass != [NSObject class]) { className = NSStringFromClass(theClass); actions = [self allActionsForClassNamed: className]; } NSDebugLog(@"class=%@ actions=%@",className,actions); return actions; } - (NSArray *) allActionsForClassNamed: (NSString *)className { NSMutableDictionary *info = [classInformation objectForKey: className]; if (info != nil) { NSMutableArray *allActions = [info objectForKey: @"AllActions"]; if (allActions == nil) { NSString *superName = [info objectForKey: @"Super"]; NSArray *actions = [info objectForKey: @"Actions"]; NSArray *extraActions = [info objectForKey: @"ExtraActions"]; NSArray *superActions; if (superName == nil || [className isEqual: @"FirstResponder"]) { superActions = nil; } else { superActions = [self allActionsForClassNamed: superName]; } if (superActions == nil) { if (actions == nil) { allActions = [[NSMutableArray alloc] init]; } else { allActions = [actions mutableCopy]; } [allActions mergeObjectsFromArray: extraActions]; } else { allActions = [superActions mutableCopy]; [allActions mergeObjectsFromArray: actions]; [allActions mergeObjectsFromArray: extraActions]; } [info setObject: allActions forKey: @"AllActions"]; RELEASE(allActions); } return AUTORELEASE([allActions copy]); } return nil; } - (NSArray *) allCustomClassNames { // return [customClassMap allKeys]; return customClasses; } - (NSArray *) allClassNames { return [[classInformation allKeys] sortedArrayUsingSelector: @selector(compare:)]; } - (NSArray *) allOutletsForObject: (id)obj { NSString *className; NSArray *outlets; Class theClass = [obj class]; NSString *customClassName = [self customClassForObject: obj]; if (customClassName != nil) { // if the object has been mapped to a custom class, then // get the information for it. className = customClassName; } else if (theClass == [GormFirstResponder class]) { return nil; } else if (theClass == [GormFilesOwner class]) { className = [(GormFilesOwner*)obj className]; } else if ([obj isKindOfClass: [GSNibItem class]] == YES) { // this adds support for custom objects className = [(id)obj className]; } else if ([obj isKindOfClass: [GormClassProxy class]] == YES) { // this adds support for class proxies className = [(id)obj className]; } else if ([obj isKindOfClass: [GormCustomView class]] == YES) { // this adds support for custom views className = [(id)obj className]; } else { className = NSStringFromClass(theClass); } if (className == nil) { NSLog(@"attempt to get outlets for non-existent class (%@)", [obj class]); return nil; } outlets = [self allOutletsForClassNamed: className]; while (outlets == nil && (theClass = class_getSuperclass(theClass)) != nil && theClass != [NSObject class]) { className = NSStringFromClass(theClass); outlets = [self allOutletsForClassNamed: className]; } return outlets; } - (NSArray *) allOutletsForClassNamed: (NSString *)className; { NSMutableDictionary *info = [classInformation objectForKey: className]; if (info != nil) { NSMutableArray *allOutlets = [info objectForKey: @"AllOutlets"]; if (allOutlets == nil) { NSString *superName = [info objectForKey: @"Super"]; NSArray *outlets = [info objectForKey: @"Outlets"]; NSArray *extraOutlets = [info objectForKey: @"ExtraOutlets"]; NSArray *superOutlets; if (superName == nil) { superOutlets = nil; } else { superOutlets = [self allOutletsForClassNamed: superName]; } if (superOutlets == nil) { if (outlets == nil) { allOutlets = [[NSMutableArray alloc] init]; } else { allOutlets = [outlets mutableCopy]; } [allOutlets mergeObjectsFromArray: extraOutlets]; } else { allOutlets = [superOutlets mutableCopy]; [allOutlets mergeObjectsFromArray: outlets]; [allOutlets mergeObjectsFromArray: extraOutlets]; } [info setObject: allOutlets forKey: @"AllOutlets"]; RELEASE(allOutlets); } return AUTORELEASE([allOutlets copy]); } return nil; } - (NSMutableDictionary*) classInfoForClassName: (NSString *)className { NSMutableDictionary *info; info = [classInformation objectForKey: className]; if (info == nil) { Class theClass = NSClassFromString(className); if (theClass != nil) { theClass = class_getSuperclass(theClass); if (theClass != nil && theClass != [NSObject class]) { NSString *name; NSMutableDictionary *dict; name = NSStringFromClass(theClass); dict = [self classInfoForClassName: name]; if (dict != nil) { id o; info = [[NSMutableDictionary alloc] initWithCapacity: 3]; [info setObject: name forKey: @"Super"]; o = [[self allActionsForClassNamed: name] mutableCopy]; [info setObject: o forKey: @"AllActions"]; o = [[self allOutletsForClassNamed: name] mutableCopy]; [info setObject: o forKey: @"AllOutlets"]; [classInformation setObject: info forKey: className]; } } } } return info; } - (NSMutableDictionary*) classInfoForObject: (id)obj { NSString *className; Class theClass = [obj class]; if (theClass == [GormFilesOwner class]) { className = [(GormFilesOwner*)obj className]; } else if ([obj isKindOfClass: [GSNibItem class]] == YES) { // this adds support for custom objects className = [(id)obj className]; } else if ([obj isKindOfClass: [GormClassProxy class]] == YES) { // this adds support for class proxies className = [(id)obj className]; } else if ([obj isKindOfClass: [GormCustomView class]] == YES) { // this adds support for custom views className = [(id)obj className]; } else { className = NSStringFromClass(theClass); } if (className == nil) { NSLog(@"attempt to get outlets for non-existent class (%@)", [obj class]); return nil; } return [self classInfoForClassName: className]; } - (BOOL) actionExists: (NSString *)action onClassNamed: (NSString *)className { NSArray *actions = [self allActionsForClassNamed: className]; return [actions containsObject: action]; } - (BOOL) outletExists: (NSString *)outlet onClassNamed: (NSString *)className { NSArray *outlets = [self allOutletsForClassNamed: className]; return [outlets containsObject: outlet]; } - (void) dealloc { RELEASE(classInformation); RELEASE(customClassMap); [super dealloc]; } - (NSArray *) extraActionsForObject: (id)anObject { NSMutableDictionary *info = [self classInfoForObject: anObject]; return [info objectForKey: @"ExtraActions"]; } - (NSArray *) extraOutletsForObject: (id)anObject { NSMutableDictionary *info = [self classInfoForObject: anObject]; return [info objectForKey: @"ExtraOutlets"]; } - (void) allSubclassesOf: (NSString *)superclass referenceClassList: (NSArray *)classList intoArray: (NSMutableArray *)array { NSEnumerator *cen = [classList objectEnumerator]; id object = nil; while ((object = [cen nextObject])) { NSDictionary *dictForClass = [classInformation objectForKey: object]; NSString *superClassName = [dictForClass objectForKey: @"Super"]; if ([superClassName isEqual: superclass] || (superClassName == nil && superclass == nil)) { [array addObject: object]; [self allSubclassesOf: object referenceClassList: classList intoArray: array]; } } } - (NSArray *) allSubclassesOf: (NSString *)superClass { NSMutableArray *array = [NSMutableArray array]; [self allSubclassesOf: superClass referenceClassList: [classInformation allKeys] intoArray: array]; return [array sortedArrayUsingSelector: @selector(caseInsensitiveCompare:)]; } - (NSArray *) allCustomSubclassesOf: (NSString *)superClass { NSMutableArray *array = [NSMutableArray array]; [self allSubclassesOf: superClass referenceClassList: customClasses intoArray: array]; return [array sortedArrayUsingSelector: @selector(caseInsensitiveCompare:)]; } - (NSArray *) customSubClassesOf: (NSString *)superclass { NSEnumerator *cen = [customClasses objectEnumerator]; id object = nil; NSMutableArray *subclasses = [NSMutableArray array]; while ((object = [cen nextObject])) { NSDictionary *dictForClass = [classInformation objectForKey: object]; if ([[dictForClass objectForKey: @"Super"] isEqual: superclass]) { [subclasses addObject: object]; } } return subclasses; } - (NSArray *) subClassesOf: (NSString *)superclass { NSArray *allClasses = [classInformation allKeys]; NSEnumerator *cen = [allClasses objectEnumerator]; id object = nil; NSMutableArray *subclasses = [NSMutableArray array]; while ((object = [cen nextObject])) { NSDictionary *dictForClass = [classInformation objectForKey: object]; NSString *superClassName = [dictForClass objectForKey: @"Super"]; if ([superClassName isEqual: superclass] || (superClassName == nil && superclass == nil)) { [subclasses addObject: object]; } } return [subclasses sortedArrayUsingSelector: @selector(caseInsensitiveCompare:)]; } - (void) removeClassNamed: (NSString *)className { if ([customClasses containsObject: className]) { NSEnumerator *en = [customClassMap keyEnumerator]; id object = nil; id owner = nil; [customClasses removeObject: className]; while((object = [en nextObject]) != nil) { id customClassName = [customClassMap objectForKey: object]; if(customClassName != nil) { if([className isEqualToString: customClassName]) { NSDebugLog(@"Deleting object -> customClass association %@ -> %@",object,customClassName); [customClassMap removeObjectForKey: object]; } } } // get the owner and reset the class name to NSApplication. owner = [document objectForName: @"NSOwner"]; if([className isEqual: [owner className]]) { [owner setClassName: @"NSApplication"]; } } [classInformation removeObjectForKey: className]; [self touch]; [[NSNotificationCenter defaultCenter] postNotificationName: GormDidDeleteClassNotification object: self]; } - (BOOL) renameClassNamed: (NSString *)oldName newName: (NSString *)newName { id classInfo = [classInformation objectForKey: oldName]; NSNotificationCenter *nc = [NSNotificationCenter defaultCenter]; NSString *name = [newName copy]; NSDebugLog(@"Old name %@, new name %@",oldName,name); if (classInfo != nil && [classInformation objectForKey: name] == nil) { NSUInteger index = 0; NSArray *subclasses = [self subClassesOf: oldName]; RETAIN(classInfo); // prevent loss of the information... [classInformation removeObjectForKey: oldName]; [classInformation setObject: classInfo forKey: name]; RELEASE(classInfo); // release our hold on it. if ((index = [customClasses indexOfObject: oldName]) != NSNotFound) { NSEnumerator *en = [customClassMap keyEnumerator]; NSEnumerator *cen = [subclasses objectEnumerator]; id sc = nil; id object = nil; NSDebugLog(@"replacing object with %@, %@",name, customClasses); [customClasses replaceObjectAtIndex: index withObject: name]; NSDebugLog(@"replaced object with %@, %@",name, customClasses); // show the class map before... NSDebugLog(@"customClassMap = %@",customClassMap); while((object = [en nextObject]) != nil) { id customClassName = [customClassMap objectForKey: object]; if(customClassName != nil) { if([oldName isEqualToString: customClassName]) { NSDebugLog(@"Replacing object -> customClass association %@ -> %@",object,customClassName); [customClassMap setObject: name forKey: object]; } } } NSDebugLog(@"New customClassMap = %@",customClassMap); // and after // Iterate over the list of subclasses and replace their referece with the new // name. while((sc = [cen nextObject]) != nil) { [self setSuperClassNamed: name forClassNamed: sc]; } [self touch]; } else NSLog(@"customClass not found %@",oldName); [nc postNotificationName: IBClassNameChangedNotification object: self]; return YES; } else return NO; } - (NSString *)parentOfClass: (NSString *)aClass { NSDictionary *dictForClass = [classInformation objectForKey: aClass]; return [dictForClass objectForKey: @"Super"]; } - (NSData *) nibData { NSMutableDictionary *dict = nil; NSMutableArray *classes = nil; NSEnumerator *enumerator = nil; NSMutableArray *cats = [NSMutableArray arrayWithArray: categoryClasses]; id name = nil; // save all custom classes.... dict = [NSMutableDictionary dictionary]; [dict setObject: @"1" forKey: @"IBVersion"]; classes = [NSMutableArray array]; // build IBClasses... enumerator = [customClasses objectEnumerator]; while ((name = [enumerator nextObject]) != nil) { NSDictionary *classInfo; NSMutableDictionary *newInfo; id obj; id extraObj; // get the info... classInfo = [classInformation objectForKey: name]; newInfo = [[NSMutableDictionary alloc] init]; [newInfo setObject: name forKey: @"CLASS"]; // superclass... obj = [classInfo objectForKey: @"Super"]; if (obj != nil) { [newInfo setObject: obj forKey: @"SUPERCLASS"]; } // outlets... obj = [classInfo objectForKey: @"Outlets"]; extraObj = [classInfo objectForKey: @"ExtraOutlets"]; if (obj && extraObj) { obj = [obj arrayByAddingObjectsFromArray: extraObj]; } else if (extraObj) { obj = extraObj; } if (obj != nil && [obj count] > 0) { NSMutableDictionary *outletDict = [NSMutableDictionary dictionary]; NSEnumerator *oen = [obj objectEnumerator]; id outlet = nil; while((outlet = [oen nextObject]) != nil) { [outletDict setObject: @"id" forKey: outlet]; } [newInfo setObject: outletDict forKey: @"OUTLETS"]; } // actions... obj = [classInfo objectForKey: @"Actions"]; extraObj = [classInfo objectForKey: @"ExtraActions"]; if (obj && extraObj) { obj = [obj arrayByAddingObjectsFromArray: extraObj]; } else if (extraObj) { obj = extraObj; } if (obj != nil && [obj count] > 0) { NSMutableDictionary *actionDict = [NSMutableDictionary dictionary]; NSEnumerator *aen = [obj objectEnumerator]; id action = nil; while((action = [aen nextObject]) != nil) { NSString *actionName = nil; NSScanner *scanner = [NSScanner scannerWithString: action]; if ([scanner scanUpToString: @":" intoString: &actionName]) [actionDict setObject: @"id" forKey: actionName]; } [newInfo setObject: actionDict forKey: @"ACTIONS"]; } [newInfo setObject: @"ObjC" forKey: @"LANGUAGE"]; [classes addObject: newInfo]; } // Save all categories on existing, non-custom classes.... // Always save the FirstResponder.... if([cats containsObject: @"FirstResponder"] == NO) { [cats addObject: @"FirstResponder"]; } enumerator = [cats objectEnumerator]; while((name = [enumerator nextObject]) != nil) { NSDictionary *classInfo; NSMutableDictionary *newInfo; id obj; // get the info... classInfo = [classInformation objectForKey: name]; newInfo = [NSMutableDictionary dictionary]; [newInfo setObject: name forKey: @"CLASS"]; // superclass... obj = [classInfo objectForKey: @"Super"]; if (obj != nil) { [newInfo setObject: obj forKey: @"SUPERCLASS"]; } // actions... obj = [classInfo objectForKey: @"ExtraActions"]; if (obj != nil && [obj count] > 0) { NSMutableDictionary *actionDict = [NSMutableDictionary dictionary]; NSEnumerator *aen = [obj objectEnumerator]; id action = nil; while((action = [aen nextObject]) != nil) { NSString *actionName = nil; NSScanner *scanner = [NSScanner scannerWithString: action]; if ([scanner scanUpToString: @":" intoString: &actionName]) [actionDict setObject: @"id" forKey: actionName]; } [newInfo setObject: actionDict forKey: @"ACTIONS"]; } [newInfo setObject: @"ObjC" forKey: @"LANGUAGE"]; [classes addObject: newInfo]; } [dict setObject: classes forKey: @"IBClasses"]; return [NSPropertyListSerialization dataFromPropertyList: dict format: NSPropertyListOpenStepFormat errorDescription: NULL]; } - (NSData *) data { NSMutableDictionary *ci = nil; NSEnumerator *enumerator = nil; id key = nil; // save all custom classes.... ci = [NSMutableDictionary dictionary]; enumerator = [customClasses objectEnumerator]; while ((key = [enumerator nextObject]) != nil) { NSDictionary *classInfo; NSMutableDictionary *newInfo; id obj; id extraObj; // get the info... classInfo = [classInformation objectForKey: key]; newInfo = [[NSMutableDictionary alloc] init]; [ci setObject: newInfo forKey: key]; // superclass... obj = [classInfo objectForKey: @"Super"]; if (obj != nil) { [newInfo setObject: obj forKey: @"Super"]; } // outlets... obj = [classInfo objectForKey: @"Outlets"]; extraObj = [classInfo objectForKey: @"ExtraOutlets"]; if (obj && extraObj) { obj = [obj arrayByAddingObjectsFromArray: extraObj]; } else if (extraObj) { obj = extraObj; } if (obj != nil) { [newInfo setObject: obj forKey: @"Outlets"]; } // actions... obj = [classInfo objectForKey: @"Actions"]; extraObj = [classInfo objectForKey: @"ExtraActions"]; if (obj && extraObj) { obj = [obj arrayByAddingObjectsFromArray: extraObj]; } else if (extraObj) { obj = extraObj; } if (obj != nil) { [newInfo setObject: obj forKey: @"Actions"]; } } // save all categories on existing, non-custom classes.... enumerator = [categoryClasses objectEnumerator]; while((key = [enumerator nextObject]) != nil) { NSDictionary *classInfo; NSMutableDictionary *newInfo; id obj; // get the info... classInfo = [classInformation objectForKey: key]; newInfo = [NSMutableDictionary dictionary]; [ci setObject: newInfo forKey: key]; // superclass... obj = [classInfo objectForKey: @"Super"]; if (obj != nil) { [newInfo setObject: obj forKey: @"Super"]; } // actions... obj = [classInfo objectForKey: @"ExtraActions"]; if (obj != nil) { [newInfo setObject: obj forKey: @"Actions"]; } } // add the extras... [ci setObject: @"Do NOT change this file, Gorm maintains it" forKey: @"## Comment"]; return [NSPropertyListSerialization dataFromPropertyList: ci format: NSPropertyListOpenStepFormat errorDescription: NULL]; } - (BOOL) saveToFile: (NSString *)path { return [[self data] writeToFile: path atomically: YES]; } - (BOOL) loadFromFile: (NSString *)path { NSDictionary *dict; NSEnumerator *enumerator; NSString *key; NSDebugLog(@"Load from file %@",path); dict = [NSDictionary dictionaryWithContentsOfFile: path]; if (dict == nil) { NSLog(@"Could not load classes dictionary"); return NO; } /* * Convert property-list data into a mutable structure. */ ASSIGN(classInformation, [[NSMutableDictionary alloc] init]); // iterate over all entries.. enumerator = [dict keyEnumerator]; while ((key = [enumerator nextObject]) != nil) { NSDictionary *classInfo = [dict objectForKey: key]; NSMutableDictionary *newInfo; id obj; newInfo = [[NSMutableDictionary alloc] init]; [classInformation setObject: newInfo forKey: key]; // superclass obj = [classInfo objectForKey: @"Super"]; if (obj != nil) { [newInfo setObject: obj forKey: @"Super"]; } // outlets obj = [classInfo objectForKey: @"Outlets"]; if (obj != nil) { obj = [obj mutableCopy]; [obj sortUsingSelector: @selector(compare:)]; [newInfo setObject: obj forKey: @"Outlets"]; RELEASE(obj); } // actions obj = [classInfo objectForKey: @"Actions"]; if (obj != nil) { obj = [obj mutableCopy]; [obj sortUsingSelector: @selector(compare:)]; [newInfo setObject: obj forKey: @"Actions"]; RELEASE(obj); } } return YES; } - (BOOL) loadNibFormatCustomClassesWithDict: (NSDictionary *)dict { NSArray *classes = [dict objectForKey: @"IBClasses"]; NSEnumerator *en = [classes objectEnumerator]; BOOL result = NO; id cls = nil; // If there are no classes to add, return gracefully. if([classes count] == 0) { return YES; } while((cls = [en nextObject]) != nil) { NSString *className = [cls objectForKey: @"CLASS"]; NSString *superClass = [cls objectForKey: @"SUPERCLASS"]; NSDictionary *actionDict = [cls objectForKey: @"ACTIONS"]; NSDictionary *outletDict = [cls objectForKey: @"OUTLETS"]; NSMutableArray *actions = [NSMutableArray array]; NSArray *outlets = [outletDict allKeys]; NSEnumerator *aen = [actionDict keyEnumerator]; id action = nil; // // Convert action format. // while((action = [aen nextObject]) != nil) { NSString *aname = [action stringByAppendingString: @":"]; [actions addObject: aname]; } // // If the class is known, add the actions/outlets, if it's // not, then add all of the information. // if([self isKnownClass: className]) { [self addActions: actions forClassNamed: className]; [self addOutlets: outlets forClassNamed: className]; result = YES; } else { result = [self addClassNamed: className withSuperClassNamed: superClass withActions: actions withOutlets: outlets]; } } return result; } - (BOOL) loadNibFormatCustomClassesWithData: (NSData *)data { NSString *dictString = AUTORELEASE([[NSString alloc] initWithData: data encoding: NSASCIIStringEncoding]); NSDictionary *dict = [dictString propertyList]; return [self loadNibFormatCustomClassesWithDict: dict]; } // this method will load the custom classes and merge them with the // Class information loaded at initialization time. - (BOOL) loadCustomClasses: (NSString *)path { NSMutableDictionary *dict; BOOL result = NO; NSDebugLog(@"Load custom classes from file %@",path); dict = [NSMutableDictionary dictionaryWithContentsOfFile: path]; if (dict == nil) { NSLog(@"Could not load custom classes dictionary"); return NO; } if (classInformation == nil) { NSLog(@"Default classes file not loaded"); return NO; } if([path isEqualToString: @"data.classes"]) { result = [self loadCustomClassesWithDict: dict]; } else if([path isEqualToString: @"classes.nib"]) { result = [self loadNibFormatCustomClassesWithDict: dict]; } return result; } - (BOOL) loadCustomClassesWithData: (NSData *)data { NSString *dictString = AUTORELEASE([[NSString alloc] initWithData: data encoding: NSASCIIStringEncoding]); NSDictionary *dict = [dictString propertyList]; return [self loadCustomClassesWithDict: dict]; } - (BOOL) loadCustomClassesWithDict: (NSDictionary *)dict { NSEnumerator *en = nil; id key = nil; // Iterate over the set of classes, if it's in the classInformation // list, it's a category, if it's not it's a custom class. en = [dict keyEnumerator]; while((key = [en nextObject]) != nil) { id class_dict = [dict objectForKey: key]; // Class information is always a dictionary, other information, such as // comments or version numbers, will appear as strings. if([class_dict isKindOfClass: [NSDictionary class]]) { NSMutableDictionary *classDict = (NSMutableDictionary *)class_dict; NSMutableDictionary *info = [classInformation objectForKey: key]; if(info == nil) { [customClasses addObject: key]; [classInformation setObject: classDict forKey: key]; } else { NSMutableArray *actions = [classDict objectForKey: @"Actions"]; NSMutableArray *origActions = [info objectForKey: @"Actions"]; NSMutableArray *allActions = nil; // remove any duplicate actions... if(origActions != nil) { allActions = [NSMutableArray arrayWithArray: origActions]; [actions removeObjectsInArray: origActions]; [allActions addObjectsFromArray: actions]; [info setObject: allActions forKey: @"AllActions"]; } // if there are any action methods left after the process above, // add it, otherwise don't. if([actions count] > 0) { [categoryClasses addObject: key]; [info setObject: actions forKey: @"ExtraActions"]; } } } } return YES; } - (BOOL) isCustomClass: (NSString *)className { return ([customClasses indexOfObject: className] != NSNotFound); } - (BOOL) isNonCustomClass: (NSString *)className { return !([self isCustomClass: className]); } - (BOOL) isCategoryForClass: (NSString *)className { return ([categoryClasses indexOfObject: className] != NSNotFound); } - (BOOL) isAction: (NSString *)actionName onCategoryForClassNamed: (NSString *)className { NSDictionary *info = [classInformation objectForKey: className]; BOOL result = NO; if([self isCategoryForClass: className]) { if(info != nil) { NSArray *extra = [info objectForKey: @"ExtraActions"]; if(extra != nil) { result = [extra containsObject: actionName]; } } } return result; } - (BOOL) isKnownClass: (NSString *)className { return ([classInformation objectForKey: className] != nil); } - (BOOL) setSuperClassNamed: (NSString *)superclass forClassNamed: (NSString *)subclass { NSArray *cn = [self allClassNames]; if (superclass != nil && subclass != nil && [cn containsObject: subclass] && ([cn containsObject: superclass] || [self isRootClass: superclass]) && [self isSuperclass: subclass linkedToClass: superclass] == NO) { NSMutableDictionary *info; info = [classInformation objectForKey: subclass]; if (info != nil) { // remove actions/outlets inherited from superclasses... [info removeObjectForKey: @"AllActions"]; [info removeObjectForKey: @"AllOutlets"]; // change the parent of the class... [info setObject: superclass forKey: @"Super"]; // recalculate the actions/outlets... [self allActionsForClassNamed: subclass]; [self allOutletsForClassNamed: subclass]; // return success. return YES; } else { return NO; } } return NO; } - (NSString *) superClassNameForClassNamed: (NSString *)className { NSMutableDictionary *info = [classInformation objectForKey: className]; NSString *superName = nil; if (info != nil) { superName = [info objectForKey: @"Super"]; } return superName; } - (BOOL) isSuperclass: (NSString *)superclass linkedToClass: (NSString *)subclass { NSString *ssclass; if (superclass == nil || subclass == nil) { return NO; } ssclass = [self superClassNameForClassNamed: subclass]; if ([superclass isEqualToString: ssclass]) { return YES; } return [self isSuperclass: superclass linkedToClass: ssclass]; } - (NSDictionary *) dictionaryForClassNamed: (NSString *)className { NSMutableDictionary *info = [NSMutableDictionary dictionaryWithDictionary: [classInformation objectForKey: className]]; if(info != nil) { [info removeObjectForKey: @"AllActions"]; [info removeObjectForKey: @"AllOutlets"]; } return info; } /* * create .m & .h files for a class */ - (BOOL) makeSourceAndHeaderFilesForClass: (NSString *)className withName: (NSString *)sourcePath and: (NSString *)headerPath { NSMutableString *headerFile; NSMutableString *sourceFile; NSData *headerData; NSData *sourceData; NSMutableArray *outlets; NSMutableArray *actions; NSString *actionName; int i; int n; NSDictionary *classInfo = [classInformation objectForKey: className]; headerFile = [NSMutableString stringWithCapacity: 200]; sourceFile = [NSMutableString stringWithCapacity: 200]; // add all outlets and actions for the current class to the list... outlets = [[classInfo objectForKey: @"Outlets"] mutableCopy]; [outlets addObjectsFromArray: [classInfo objectForKey: @"ExtraOutlets"]]; actions = [[classInfo objectForKey: @"Actions"] mutableCopy]; [actions addObjectsFromArray: [classInfo objectForKey: @"ExtraActions"]]; // header file comments... [headerFile appendString: @"/* All Rights reserved */\n\n"]; [sourceFile appendString: @"/* All Rights reserved */\n\n"]; [headerFile appendString: @"#include \n\n"]; [sourceFile appendString: @"#include \n"]; if ([[headerPath stringByDeletingLastPathComponent] isEqualToString: [sourcePath stringByDeletingLastPathComponent]]) { [sourceFile appendFormat: @"#include \"%@\"\n\n", [headerPath lastPathComponent]]; } else { [sourceFile appendFormat: @"#include \"%@\"\n\n", headerPath]; } [headerFile appendFormat: @"@interface %@ : %@\n{\n", className, [self superClassNameForClassNamed: className]]; [sourceFile appendFormat: @"@implementation %@\n\n", className]; n = [outlets count]; for (i = 0; i < n; i++) { [headerFile appendFormat: @" id %@;\n", [outlets objectAtIndex: i]]; } [headerFile appendFormat: @"}\n"]; n = [actions count]; for (i = 0; i < n; i++) { actionName = [actions objectAtIndex: i]; [headerFile appendFormat: @"- (void) %@ (id)sender;\n", actionName]; [sourceFile appendFormat: @"\n" @"- (void) %@ (id)sender\n" @"{\n" @" /* insert your code here */\n" @"}\n" @"\n" , [actions objectAtIndex: i]]; } [headerFile appendFormat: @"@end\n"]; [sourceFile appendFormat: @"@end\n"]; headerData = [headerFile dataUsingEncoding: [NSString defaultCStringEncoding]]; sourceData = [sourceFile dataUsingEncoding: [NSString defaultCStringEncoding]]; [headerData writeToFile: headerPath atomically: NO]; [[NSDistributedNotificationCenter defaultCenter] postNotificationName: @"GormCreateFileNotification" object: headerPath]; [sourceData writeToFile: sourcePath atomically: NO]; [[NSDistributedNotificationCenter defaultCenter] postNotificationName: @"GormCreateFileNotification" object: sourcePath]; return YES; } - (BOOL) parseHeader: (NSString *)headerPath { OCHeaderParser *ochp = AUTORELEASE([[OCHeaderParser alloc] initWithContentsOfFile: headerPath]); BOOL result = NO; if(ochp != nil) { result = [ochp parse]; if(result) { NSArray *classes = [ochp classes]; NSEnumerator *en = [classes objectEnumerator]; OCClass *cls = nil; while((cls = (OCClass *)[en nextObject]) != nil) { NSArray *methods = [cls methods]; NSArray *ivars = [cls ivars]; NSString *superClass = [cls superClassName]; NSString *className = [cls className]; NSEnumerator *ien = [ivars objectEnumerator]; NSEnumerator *men = [methods objectEnumerator]; OCMethod *method = nil; OCIVar *ivar = nil; NSMutableArray *actions = [NSMutableArray array]; NSMutableArray *outlets = [NSMutableArray array]; // skip it, if it's category... for now. TODO: make categories work... while((method = (OCMethod *)[men nextObject]) != nil) { if([method isAction]) { [actions addObject: [method name]]; } } while((ivar = (OCIVar *)[ien nextObject]) != nil) { if([ivar isOutlet]) { [outlets addObject: [ivar name]]; } } if(([self isKnownClass: superClass] || superClass == nil) && [cls isCategory] == NO) { if([self isKnownClass: className]) { NSString *title = [NSString stringWithFormat: _(@"Reparsing Class")]; NSString *msg = [NSString stringWithFormat: _(@"This may break connections to " @"actions/outlets to instances of class '%@' " @"and it's subclasses. Continue?"), className]; NSInteger retval = NSRunAlertPanel(title, msg,_(@"OK"),_(@"Cancel"), nil, nil); if (retval == NSAlertDefaultReturn) { // get the owner and reset the class name to NSApplication. GormFilesOwner *owner = [document objectForName: @"NSOwner"]; NSString *ownerClassName = [owner className]; // Retain this, in case we're dealing with the NSOwner... RETAIN(ownerClassName); // delete the class.. [self removeClassNamed: className]; // re-add it. [self addClassNamed: className withSuperClassNamed: superClass withActions: actions withOutlets: outlets]; // Set the owner back to the class name, if needed. if([className isEqualToString: ownerClassName]) { [owner setClassName: className]; } // refresh the connections. [document refreshConnectionsForClassNamed: className]; // Release the owner classname... RELEASE(ownerClassName); } } else { [self addClassNamed: className withSuperClassNamed: superClass withActions: actions withOutlets: outlets]; } } else if([cls isCategory] && [self isKnownClass: className]) { [self addActions: actions forClassNamed: className]; } else if(superClass != nil && [self isKnownClass: superClass] == NO) { result = NO; [NSException raise: NSGenericException format: @"The superclass %@ of class %@ is not known, please parse it.", superClass, className]; } } } } return result; } - (BOOL) isAction: (NSString *)name ofClass: (NSString *)className { BOOL result = NO; NSDictionary *classInfo = [classInformation objectForKey: className]; if (classInfo != nil) { NSArray *array = [classInfo objectForKey: @"Actions"]; NSArray *extra_array = [classInfo objectForKey: @"ExtraActions"]; NSMutableArray *combined = [NSMutableArray array]; [combined addObjectsFromArray: array]; [combined addObjectsFromArray: extra_array]; result = ([combined indexOfObject: name] != NSNotFound); } return result; } - (BOOL) isOutlet: (NSString *)name ofClass: (NSString *)className { BOOL result = NO; NSDictionary *classInfo = [classInformation objectForKey: className]; if (classInfo != nil) { NSArray *array = [classInfo objectForKey: @"Outlets"]; NSArray *extra_array = [classInfo objectForKey: @"ExtraOutlets"]; NSMutableArray *combined = [NSMutableArray array]; [combined addObjectsFromArray: array]; [combined addObjectsFromArray: extra_array]; result = ([combined indexOfObject: name] != NSNotFound); } return result; } // custom class support... - (NSString *) customClassForName: (NSString *)name { NSString *result = [customClassMap objectForKey: name]; return result; } - (NSString *) customClassForObject: (id)object { NSString *name = [document nameForObject: object]; NSString *result = [self customClassForName: name]; NSDebugLog(@"in customClassForObject: object = %@, name = %@, result = %@, customClassMap = %@", object, name, result, customClassMap); return result; } - (NSString *) classNameForObject: (id)object { NSString *className = [self customClassForObject: object]; if(className == nil) { className = [object className]; } return className; } - (void) setCustomClass: (NSString *)className forName: (NSString *)name { [customClassMap setObject: className forKey: name]; } - (void) removeCustomClassForName: (NSString *)name { [customClassMap removeObjectForKey: name]; } - (NSMutableDictionary *) customClassMap { return customClassMap; } - (void) setCustomClassMap: (NSMutableDictionary *)dict { // copy the dictionary.. NSDebugLog(@"dictionary = %@",dict); ASSIGN(customClassMap, [dict mutableCopy]); RETAIN(customClassMap); // released in dealloc } - (BOOL) isCustomClassMapEmpty { return ([customClassMap count] == 0); } - (BOOL) isRootClass: (NSString *)className { return ([self superClassNameForClassNamed: className] == nil); } - (NSString *) nonCustomSuperClassOf: (NSString *)className { NSString *result = className; if(![self isCustomClass: className] && ![self isRootClass: className]) { result = [self superClassNameForClassNamed: result]; } else { // iterate up the chain until a non-custom superclass is found... while ([self isCustomClass: result]) { NSDebugLog(@"result = %@",result); result = [self superClassNameForClassNamed: result]; } } return result; } - (NSArray *) allSuperClassesOf: (NSString *)className { NSMutableArray *classes = [NSMutableArray array]; while (![self isRootClass: className] && className != nil) { NSDictionary *dict = [self classInfoForClassName: className]; if(dict != nil) { className = [dict objectForKey: @"Super"]; if(className != nil) { [classes insertObject: className atIndex: 0]; } } else { NSLog(@"Unable to find class named (%@), check that all palettes properly export classes to Gorm.",className); break; } } return classes; } - (void) addActions: (NSArray *)actions forClassNamed: (NSString *)className { id action = nil; NSEnumerator *e = [actions objectEnumerator]; while((action = [e nextObject])) { [self addAction: action forClassNamed: className]; } } - (void) addOutlets: (NSArray *)outlets forClassNamed: (NSString *)className { id action = nil; NSEnumerator *e = [outlets objectEnumerator]; while((action = [e nextObject])) { [self addOutlet: action forClassNamed: className]; } } // There are some classes which can't be instantiated directly // in Gorm. These are they.. (GJC) - (BOOL) canInstantiateClassNamed: (NSString *)className { if([self isSuperclass: @"NSApplication" linkedToClass: className] || [className isEqualToString: @"NSApplication"]) { return NO; } else if([self isSuperclass: @"NSCell" linkedToClass: className] || [className isEqualToString: @"NSCell"]) { return NO; } else if([className isEqualToString: @"NSDocument"]) { return NO; } else if([className isEqualToString: @"NSDocumentController"]) { return NO; } else if([className isEqualToString: @"NSFontManager"]) { return NO; } else if([className isEqualToString: @"NSHelpManager"]) { return NO; } else if([className isEqualToString: @"NSImage"]) { return NO; } else if([self isSuperclass: @"NSMenuItem" linkedToClass: className] || [className isEqualToString: @"NSMenuItem"]) { return NO; } else if([className isEqualToString: @"NSResponder"]) { return NO; } else if([self isSuperclass: @"NSSound" linkedToClass: className] || [className isEqualToString: @"NSSound"]) { return NO; } else if([self isSuperclass: @"NSTableColumn" linkedToClass: className] || [className isEqualToString: @"NSTableColumn"]) { return NO; } else if([self isSuperclass: @"NSTableViewItem" linkedToClass: className] || [className isEqualToString: @"NSTableViewItem"]) { return NO; } else if([self isSuperclass: @"NSView" linkedToClass: className] || [className isEqualToString: @"NSView"]) { return NO; } else if([self isSuperclass: @"NSWindow" linkedToClass: className] || [className isEqualToString: @"NSWindow"]) { return NO; } else if([self isSuperclass: @"FirstResponder" linkedToClass: className] || [className isEqualToString: @"FirstResponder"]) { // special case, FirstResponder. return NO; } return YES; } - (NSString *) findClassByName: (NSString *)name { NSArray *classNames = [self allClassNames]; NSEnumerator *en = [classNames objectEnumerator]; NSString *className = nil; NSInteger namelen = [name length]; while((className = [en nextObject]) != nil) { NSInteger classlen = [className length]; if(namelen < classlen) { NSComparisonResult result = [className compare: name options: NSCaseInsensitiveSearch range: ((NSRange){0, namelen})]; if(result == NSOrderedSame) { break; } } else if(namelen == classlen) { if([className caseInsensitiveCompare: name] == NSOrderedSame) { break; } } } return className; } - (NSString *) description { return [NSString stringWithFormat: @"<%s: %lx> = %@", GSClassNameFromObject(self), (unsigned long)self, customClassMap]; } /** Helpful for debugging */ - (NSString *) dumpClassInformation { return [classInformation description]; } @end gorm-1.2.24/GormCore/GormSoundEditor.h0000644000000000000000000000222213410616261016212 0ustar rootroot/* GormSoundEditor.h * * Copyright (C) 1999, 2003 Free Software Foundation, Inc. * * Author: Gregory John Casamento * Date: 1999, 2003, 2004 * * This file is part of GNUstep. * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 3 of the License, or * (at your option) any later version. * * This program 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 General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02111 USA. */ #ifndef INCLUDED_GormSoundEditor_h #define INCLUDED_GormSoundEditor_h #include "GormResourceEditor.h" @interface GormSoundEditor : GormResourceEditor // + (GormSoundEditor*) editorForDocument: (id)aDocument; @end #endif gorm-1.2.24/GormCore/GormPlugin.h0000644000000000000000000000221213410616261015210 0ustar rootroot/* GormNibModule.m * * Copyright (C) 2007 Free Software Foundation, Inc. * * Author: Gregory John Casamento * Date: 2007 * * This file is part of GNUstep. * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 3 of the License, or * (at your option) any later version. * * This program 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 General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software */ #ifndef GORM_GORMPLUGIN #define GORM_GORMPLUGIN #include @class NSString, NSArray; @interface GormPlugin : IBPlugin - (void) registerDocumentTypeName: (NSString *)name humanReadableName: (NSString *)hrName forExtensions: (NSArray *)extensions; @end #endif gorm-1.2.24/GormCore/GormResourceManager.m0000644000000000000000000001232313410616261017045 0ustar rootroot/* GormViewResourceManager.m * * Copyright (C) 2005 Free Software Foundation, Inc. * * Author: Gregory John Casamento * Date: 2005 * * This file is part of GNUstep. * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 3 of the License, or * (at your option) any later version. * * This program 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 General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02111 USA. */ #include #include #include #include #include #include #include "GormSound.h" #include "GormImage.h" #include "GormClassManager.h" #include "GormResourceManager.h" #include "GormGenericEditor.h" #include "GormDocument.h" #include "GormObjectEditor.h" @implementation GormResourceManager - (NSArray *) resourcePasteboardTypes { return [NSArray arrayWithObjects: IBWindowPboardType, IBViewPboardType, IBMenuPboardType, NSFilenamesPboardType, GormLinkPboardType, nil]; } - (BOOL) acceptsResourcesFromPasteboard:(NSPasteboard *)pb { NSArray *types = [pb types]; NSArray *acceptedTypes = [self resourcePasteboardTypes]; BOOL flag = YES; NSInteger i; NSInteger c = [types count]; if (c == 0) return NO; flag = ([acceptedTypes firstObjectCommonWithArray:types] != nil); for (i = 0; flag && i < c; i++) { id type = [types objectAtIndex:i]; if ([type isEqual:NSFilenamesPboardType]) { NSArray *files = [pb propertyListForType:type]; NSArray *acceptedFiles = [self resourceFileTypes]; NSInteger j, d; if (!files) { files = [NSUnarchiver unarchiveObjectWithData: [pb dataForType: NSFilenamesPboardType]]; } for (j = 0, d = [files count]; j < d; j++) { NSString *ext = [[files objectAtIndex:j] pathExtension]; flag = [acceptedFiles containsObject:ext]; } } else if ([type isEqual:GormLinkPboardType]) { [(GormDocument *)document changeToViewWithTag:0]; return NO; } } return flag; } - (void) addResourcesFromPasteboard:(NSPasteboard *)pb { NSArray *types = [pb types]; NSArray *soundTypes = [NSSound soundUnfilteredFileTypes]; NSArray *imageTypes = [NSImage imageFileTypes]; NSInteger i; NSInteger c = [types count]; BOOL found = NO; for (i = 0; i < c; i++) { id type = [types objectAtIndex:i]; if ([type isEqual:NSFilenamesPboardType]) { NSInteger j, d; NSArray *files = [pb propertyListForType:type]; found = YES; if (!files) { files = [NSUnarchiver unarchiveObjectWithData: [pb dataForType: NSFilenamesPboardType]]; } for (j = 0, d = [files count]; j < d; j++) { NSString *file = [files objectAtIndex:j]; NSString *ext = [file pathExtension]; if ([ext isEqual:@"h"]) { GormDocument *doc = (GormDocument *)document; GormClassManager *classManager = [doc classManager]; NS_DURING { if (![classManager parseHeader: file]) { NSString *fileName = [file lastPathComponent]; NSString *message; message = [NSString stringWithFormat: _(@"Unable to parse class in %@"), fileName]; NSRunAlertPanel(_(@"Problem parsing class"), message, nil, nil, nil); } [doc changeToViewWithTag:3]; } NS_HANDLER { NSString *message = [localException reason]; NSRunAlertPanel(_(@"Problem parsing class"), message, nil, nil, nil); } NS_ENDHANDLER; } else if ([imageTypes containsObject:ext]) { GormDocument *doc = (GormDocument *)document; [(GormGenericEditor *)[doc viewWithTag:1] addObject:[GormImage imageForPath:file]]; [doc changeToViewWithTag:1]; } else if ([soundTypes containsObject:ext]) { GormDocument *doc = (GormDocument *)document; [(GormGenericEditor *)[doc viewWithTag:2] addObject:[GormSound soundForPath:file]]; [doc changeToViewWithTag:2]; } } } } if (!found) { [super addResourcesFromPasteboard:pb]; } } - (NSArray *) resourceFileTypes { NSArray *types = [NSSound soundUnfilteredFileTypes]; types = [types arrayByAddingObjectsFromArray:[NSImage imageFileTypes]]; types = [types arrayByAddingObject:@"h"]; return types; } @end gorm-1.2.24/GormCore/GormImageEditor.h0000644000000000000000000000222213410616261016144 0ustar rootroot/* GormImageEditor.h * * Copyright (C) 1999, 2003 Free Software Foundation, Inc. * * Author: Gregory John Casamento * Date: 1999, 2003, 2004 * * This file is part of GNUstep. * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 3 of the License, or * (at your option) any later version. * * This program 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 General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02111 USA. */ #ifndef INCLUDED_GormImageEditor_h #define INCLUDED_GormImageEditor_h #include "GormResourceEditor.h" @interface GormImageEditor : GormResourceEditor // + (GormImageEditor*) editorForDocument: (id)aDocument; @end #endif gorm-1.2.24/GormCore/GormNSSplitViewInspector.m0000644000000000000000000000313513410616261020042 0ustar rootroot/* All Rights reserved */ #include #include "GormNSSplitViewInspector.h" @implementation NSSplitView (IBObjectAdditions) - (NSString *) inspectorClassName { return @"GormNSSplitViewInspector"; } - (NSString*) editorClassName { return @"GormSplitViewEditor"; } @end @implementation GormNSSplitViewInspector - init { self = [super init]; if (self != nil) { if ([NSBundle loadNibNamed: @"GormNSSplitViewInspector" owner: self] == NO) { NSDictionary *table; NSBundle *bundle; table = [NSDictionary dictionaryWithObject: self forKey: @"NSOwner"]; bundle = [NSBundle mainBundle]; if ([bundle loadNibFile: @"GormNSSplitViewInspector" externalNameTable: table withZone: [self zone]] == NO) { NSLog(@"Could not open gorm GormNSSplitViewInspector"); NSLog(@"self %@", self); return nil; } } } return self; } - (void) _getValuesFromObject { BOOL state = [(NSSplitView *)object isVertical]; // get the values from the object if(state == NO) { [orientation selectCellAtRow: 0 column: 0]; } else { [orientation selectCellAtRow: 1 column: 0]; } } - (void) setObject: (id)anObject { [super setObject: anObject]; [self _getValuesFromObject]; } - (void) ok: (id)sender { id cell = nil; BOOL state = NO; // horizontal switch.. if it's active/inactive we // know what the selection is. [super ok: sender]; cell = [orientation cellAtRow: 0 column: 0]; state = ([cell state] == NSOnState)?NO:YES; [object setVertical: state]; [object adjustSubviews]; } @end gorm-1.2.24/GormCore/GormViewSizeInspector.h0000644000000000000000000000256413410616261017420 0ustar rootroot/* GormViewSizeInspector.m * * Copyright (C) 1999 Free Software Foundation, Inc. * * Author: Richard Frith-Macdonald * Date: 1999 * Author: Gregory John Casamento * Separated out into header. * Date: 2005 * * This file is part of GNUstep. * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 3 of the License, or * (at your option) any later version. * * This program 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 General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02111 USA. */ #ifndef INCLUDED_GormViewSizeInspector_h #define INCLUDED_GormViewSizeInspector_h #include @class NSButton, NSForm; @interface GormViewSizeInspector : IBInspector { NSButton *top; NSButton *bottom; NSButton *left; NSButton *right; NSButton *width; NSButton *height; NSForm *sizeForm; } @end #endif gorm-1.2.24/GormCore/GormDocumentController.h0000644000000000000000000000300313410616261017573 0ustar rootroot/* GormDocumentController.m * * This class contains Gorm specific implementation of the IBDocuments * protocol plus additional methods which are useful for managing the * contents of the document. * * Copyright (C) 2006 Free Software Foundation, Inc. * * Author: Gregory John Casamento * Date: 2006 * * This file is part of GNUstep. * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 3 of the License, or * (at your option) any later version. * * This program 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 General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02111 USA. */ #ifndef INCLUDED_GormDocumentController_h #define INCLUDED_GormDocumentController_h #include typedef enum { GormApplication = 0, GormEmpty = 1, GormInspector = 2, GormPalette = 3 } GormDocumentType; @interface GormDocumentController : NSDocumentController { } - (void) buildDocumentForType: (GormDocumentType)documentType; - (id) openDocumentWithContentsOfURL:(NSURL *)url; @end #endif gorm-1.2.24/GormCore/GormObjectInspector.h0000644000000000000000000000310413410616261017050 0ustar rootroot/* GormObjectInspector.m * * Copyright (C) 1999 Free Software Foundation, Inc. * * Author: Richard Frith-Macdonald * Date: 1999 * * This file is part of GNUstep. * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 3 of the License, or * (at your option) any later version. * * This program 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 General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02111 USA. */ #ifndef INCLUDED_GormObjectInspector_h #define INCLUDED_GormObjectInspector_h #include "GormPrivate.h" static NSString *typeId = @"Object"; static NSString *typeChar = @"Character or Boolean"; static NSString *typeUChar = @"Unsigned character/bool"; static NSString *typeInt = @"Integer"; static NSString *typeUInt = @"Unsigned integer"; static NSString *typeFloat = @"Float"; static NSString *typeDouble = @"Double"; @interface GormObjectInspector : IBInspector { NSBrowser *browser; NSMutableArray *sets; NSMutableDictionary *gets; NSMutableDictionary *types; NSButton *label; NSTextField *value; BOOL isString; } - (void) update: (id)sender; @end #endif gorm-1.2.24/GormCore/GNUmakefile.preamble0000644000000000000000000000255013410616261016621 0ustar rootroot# GNUmakefile: main makefile for GNUstep Object Relationship Modeller # # Copyright (C) 2003 Free Software Foundation, Inc. # # Author: Gregory John Casamento # Date: 2003 # # This file is part of GNUstep. # # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 2 of the License, or # (at your option) any later version. # # This program 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 General Public License for more details. # # You should have received a copy of the GNU General Public License # along with this program; if not, write to the Free Software # Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA # # ADDITIONAL_OBJCFLAGS += -Wall -Werror ADDITIONAL_GUI_LIBS += \ -lGorm \ -lGormObjCHeaderParser ifeq ($(GNUSTEP_TARGET_OS),mingw32) ADDITIONAL_LIB_DIRS += \ -L../GormLib/$(GNUSTEP_OBJ_DIR) \ -L../GormObjCHeaderParser/$(GNUSTEP_OBJ_DIR) else ADDITIONAL_LIB_DIRS += \ -L../GormLib/$(GNUSTEP_OBJ_DIR) \ -L../GormObjCHeaderParser/$(GNUSTEP_OBJ_DIR) endif GormCore_LIBRARIES_DEPEND_UPON += -lGormObjCHeaderParser gorm-1.2.24/GormCore/GormConnectionInspector.m0000644000000000000000000003510713410616261017756 0ustar rootroot/* GormInspectorsManager.m * * Copyright (C) 1999 Free Software Foundation, Inc. * * Author: Richard Frith-Macdonald * Date: 1999 * Author: Gregory John Casamento * Date: 2003,2005 * * This file is part of GNUstep. * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 3 of the License, or * (at your option) any later version. * * This program 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 General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02111 USA. */ #include #include #include "GormPrivate.h" #include "GormConnectionInspector.h" @implementation GormConnectionInspector - (id) init { if ((self = [super init]) != nil) { if([NSBundle loadNibNamed: @"GormConnectionInspector" owner: self] == NO) { NSLog(@"Couldn't load GormConnectionInsector"); return nil; } // Create the okay and revert buttons, programmatically, since we shouldn't // add them to the view. The wantsButtons handling code will do that. okButton = [[NSButton alloc] initWithFrame: NSMakeRect(0,0,80,20)]; [okButton setAutoresizingMask: NSViewMinXMargin]; [okButton setAction: @selector(ok:)]; [okButton setTarget: self]; [okButton setTitle: _(@"Connect")]; [okButton setEnabled: NO]; revertButton = [[NSButton alloc] initWithFrame: NSMakeRect(0,0,80,20)]; [revertButton setAutoresizingMask: NSViewMaxXMargin]; [revertButton setAction: @selector(revert:)]; [revertButton setTarget: self]; [revertButton setTitle: _(@"Revert")]; [revertButton setEnabled: NO]; } return self; } - (void) awakeFromNib { [newBrowser setDoubleAction: @selector(ok:)]; } - (NSInteger) browser: (NSBrowser*)sender numberOfRowsInColumn: (NSInteger)column { NSInteger rows = 0; if (sender == newBrowser) { if (column == 0) { rows = [outlets count]; } else { NSString *name = [[sender selectedCellInColumn: 0] stringValue]; if ([name isEqual: @"target"]) { rows = [actions count]; } } } else { rows = [connectors count]; } return rows; } - (NSString*) browser: (NSBrowser*)sender titleOfColumn: (NSInteger)column { if (sender == newBrowser) { if (column == 0) { return @"Outlets"; } else { NSString *name = [[sender selectedCellInColumn: 0] stringValue]; if ([name isEqual: @"target"]) { return @"Actions"; } else { return @""; } } } else { return @"Connections"; } } - (void) _selectAction: (NSString *)action { /* * Ensure that the actions are displayed in column one, * and select the action for the current connection (if any). */ [newBrowser reloadColumn: 1]; if (action != nil) { [newBrowser selectRow: [actions indexOfObject: action] inColumn: 1]; } } - (void) _internalCall: (NSBrowser*)sender { unsigned numConnectors = [connectors count]; unsigned index; NSBrowserCell *cell = [sender selectedCell]; NSString *title = [cell stringValue]; NSInteger col = [sender selectedColumn]; if (sender == newBrowser) { if (col == 0) { if ([title isEqual: @"target"]) { id con = nil; for (index = 0; index < numConnectors; index++) { con = [connectors objectAtIndex: index]; if ([con isKindOfClass: [NSNibControlConnector class]] == YES) { RELEASE(actions); actions = RETAIN([[(id)NSApp classManager] allActionsForObject: [con destination]]); break; } else { con = nil; } } if (con == nil) // && [actions containsObject: [currentConnector label]] == NO) { RELEASE(actions); actions = RETAIN([[(id)NSApp classManager] allActionsForObject: [NSApp connectDestination]]); if ([actions count] > 0) { con = [[NSNibControlConnector alloc] init]; [con setSource: object]; [con setDestination: [NSApp connectDestination]]; [con setLabel: [actions objectAtIndex: 0]]; AUTORELEASE(con); } } // if we changed the current connector, update to the new one... if (currentConnector != con) { ASSIGN(currentConnector, con); } /* * Ensure that the actions are displayed in column one, * and select the action for the current connection (if any). */ [self _selectAction: [con label]]; } else { BOOL found = NO; /* * See if there already exists a connector for this outlet. */ for (index = 0; index < numConnectors; index++) { id con = [connectors objectAtIndex: index]; if ([con label] == nil || [[con label] isEqual: title] == YES) { ASSIGN(currentConnector, con); found = YES; break; } } /* * if there was no connector, make one. */ if (found == NO) { RELEASE(currentConnector); currentConnector = [[NSNibOutletConnector alloc] init]; [currentConnector setSource: object]; [currentConnector setDestination: [NSApp connectDestination]]; [currentConnector setLabel: title]; } } /* * Update the bottom browser. */ [oldBrowser loadColumnZero]; [oldBrowser selectRow: index inColumn: 0]; [NSApp displayConnectionBetween: object and: [currentConnector destination]]; } else { BOOL found = NO; for (index = 0; index < numConnectors; index++) { id con = [connectors objectAtIndex: index]; if ([con isKindOfClass: [NSNibControlConnector class]] == YES) { NSString *action = [con label]; if ([action isEqual: title] == YES) { ASSIGN(currentConnector, con); found = YES; break; } } } if (found == NO) { RELEASE(currentConnector); currentConnector = [[NSNibControlConnector alloc] init]; [currentConnector setSource: object]; [currentConnector setDestination: [NSApp connectDestination]]; [currentConnector setLabel: title]; [oldBrowser loadColumnZero]; } [oldBrowser selectRow: index inColumn: 0]; } } else { for (index = 0; index < numConnectors; index++) { id con = [connectors objectAtIndex: index]; NSString *label = [con label]; if ([title hasPrefix: label] == YES) { NSString *name; id dest = [NSApp connectDestination]; dest = [con destination]; name = [[(id)NSApp activeDocument] nameForObject: dest]; name = [label stringByAppendingFormat: @" (%@)", name]; if ([title isEqual: name] == YES) { NSString *path = label; ASSIGN(currentConnector, con); /* * Update the main browser to reflect selected connection */ path = [@"/" stringByAppendingString: label]; if ([con isKindOfClass: [NSNibControlConnector class]] == YES) { path = [@"/target" stringByAppendingString: path]; } [newBrowser setPath: path]; [NSApp displayConnectionBetween: object and: [con destination]]; break; } } } } // if it's a control connection select target, if not, don't // if([currentConnector isKindOfClass: [NSNib [self updateButtons]; } - (BOOL) browser: (NSBrowser*)sender selectCellWithString: (NSString*)title inColumn: (NSInteger)col { NSMatrix *matrix = [sender matrixInColumn: col]; NSInteger rows = [matrix numberOfRows]; NSInteger i; for (i = 0; i < rows; i++) { NSBrowserCell *cell = [matrix cellAtRow: i column: 0]; if ([[cell stringValue] isEqual: title] == YES) { [matrix selectCellAtRow: i column: 0]; return YES; } } return NO; } - (void) browser: (NSBrowser*)sender willDisplayCell: (id)aCell atRow: (NSInteger)row column: (NSInteger)col { if (sender == newBrowser) { NSString *name; if (col == 0) { if (row >= 0 && row < [outlets count]) { name = [outlets objectAtIndex: row]; [aCell setStringValue: name]; if ([name isEqual: @"target"]) { [aCell setLeaf: NO]; } else { [aCell setLeaf: YES]; } [aCell setEnabled: YES]; } else { [aCell setStringValue: @""]; [aCell setLeaf: YES]; [aCell setEnabled: NO]; } } else { name = [[sender selectedCellInColumn: 0] stringValue]; if ([name isEqual: @"target"] == NO) { NSDebugLog(@"cell selected in actions column without target"); } if (row >= 0 && row < [actions count]) { [aCell setStringValue: [actions objectAtIndex: row]]; [aCell setEnabled: YES]; } else { [aCell setStringValue: @""]; [aCell setEnabled: NO]; } [aCell setLeaf: YES]; } } else { if (row >= 0 && row < [connectors count]) { NSString *label; NSString *name; id dest = [NSApp connectDestination]; label = [[connectors objectAtIndex: row] label]; dest = [[connectors objectAtIndex: row] destination]; name = [[(id)NSApp activeDocument] nameForObject: dest]; name = [label stringByAppendingFormat: @" (%@)", name]; [aCell setStringValue: name]; [aCell setEnabled: YES]; } else { [aCell setStringValue: @""]; [aCell setEnabled: NO]; } [aCell setLeaf: YES]; } } - (void) dealloc { RELEASE(currentConnector); RELEASE(connectors); RELEASE(actions); RELEASE(outlets); RELEASE(okButton); RELEASE(revertButton); [super dealloc]; } - (void) handleNotification: (NSNotification *)notification { // got the notification... since we only subscribe to one, just do what // needs to be done. [self setObject: object]; // resets the browser... } - (void) ok: (id)sender { if([currentConnector destination] == nil || [currentConnector source] == nil) { NSRunAlertPanel(_(@"Problem making connection"), _(@"Please select a valid destination."), _(@"OK"), nil, nil, nil); } else if ([connectors containsObject: currentConnector] == YES) { id con = currentConnector; [[(id)NSApp activeDocument] removeConnector: con]; [connectors removeObject: con]; [oldBrowser loadColumnZero]; } else { NSString *path; id dest; /* * Establishing a target/action type connection will automatically * remove any previous target/action connection. */ if ([currentConnector isKindOfClass: [NSNibControlConnector class]]) { NSEnumerator *enumerator = [connectors objectEnumerator]; id con; while ((con = [enumerator nextObject]) != nil) { if ([con isKindOfClass: [NSNibControlConnector class]]) { [[(id)NSApp activeDocument] removeConnector: con]; [connectors removeObjectIdenticalTo: con]; break; } } // select the new action from the list... [self _selectAction: [currentConnector label]]; } [connectors addObject: currentConnector]; [[(id)NSApp activeDocument] addConnector: currentConnector]; /* * When we establish a connection, we want to highlight it in * the browser so the user can see it has been done. */ dest = [currentConnector destination]; path = [[(id)NSApp activeDocument] nameForObject: dest]; path = [[currentConnector label] stringByAppendingFormat: @" (%@)", path]; path = [@"/" stringByAppendingString: path]; [oldBrowser loadColumnZero]; [oldBrowser setPath: path]; } // mark as edited. [super ok: sender]; [self updateButtons]; } - (void) setObject: (id)anObject { if (anObject != nil) { NSArray *array; [super setObject: anObject]; RELEASE(connectors); /* * Create list of existing connections for selected object. */ connectors = [[NSMutableArray alloc] init]; array = [[(id)NSApp activeDocument] connectorsForSource: object ofClass: [NSNibControlConnector class]]; [connectors addObjectsFromArray: array]; array = [[(id)NSApp activeDocument] connectorsForSource: object ofClass: [NSNibOutletConnector class]]; [connectors addObjectsFromArray: array]; RELEASE(outlets); outlets = RETAIN([[(id)NSApp classManager] allOutletsForObject: object]); DESTROY(actions); [oldBrowser loadColumnZero]; /* * See if we can do initial selection based on pre-existing connections. */ if ([NSApp isConnecting] == YES) { id dest = [currentConnector destination]; unsigned row; for (row = 0; row < [connectors count]; row++) { id con = [connectors objectAtIndex: row]; if ([con destination] == dest) { ASSIGN(currentConnector, con); [oldBrowser selectRow: row inColumn: 0]; break; } } } [newBrowser loadColumnZero]; if (currentConnector == nil) { if ([connectors count] > 0) { currentConnector = RETAIN([connectors objectAtIndex: 0]); } else if ([outlets count] == 1) { [newBrowser selectRow: 0 inColumn: 0]; [newBrowser sendAction]; } } if ([currentConnector isKindOfClass: [NSNibControlConnector class]] == YES && [NSApp isConnecting] == NO) { [newBrowser setPath: @"/target"]; [newBrowser sendAction]; } [self updateButtons]; } } - (void) updateButtons { if (currentConnector == nil) { [okButton setEnabled: NO]; } else { GormDocument *active = (GormDocument *)[(id)NSApp activeDocument]; id src = [currentConnector source]; id dest = [currentConnector destination]; // highlight or unhiglight the connection depending on // the object being connected to. if((src == nil || src == [active firstResponder]) || ((dest == nil || dest == [active firstResponder]) && [currentConnector isKindOfClass: [NSNibOutletConnector class]] == YES)) { [okButton setEnabled: NO]; } else { [okButton setEnabled: YES]; if ([connectors containsObject: currentConnector] == YES) { [okButton setTitle: _(@"Disconnect")]; } else { [okButton setTitle: _(@"Connect")]; } } } } - (BOOL) wantsButtons { return YES; } @end gorm-1.2.24/GormCore/GormSplitViewEditor.m0000644000000000000000000002143013410616261017057 0ustar rootroot/* GormSplitViewEditor.m * * Copyright (C) 2002 Free Software Foundation, Inc. * * Author: Pierre-Yves Rivaille * Date: 2002 * * This file is part of GNUstep. * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 3 of the License, or * (at your option) any later version. * * This program 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 General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02111 USA. */ #include #include #include "GormPrivate.h" #include "GormSplitViewEditor.h" #include "GormInternalViewEditor.h" #include "GormBoxEditor.h" #include "GormViewKnobs.h" #define _EO ((NSSplitView *)_editedObject) @implementation GormSplitViewEditor - (id) initWithObject: (id) anObject inDocument: (id) aDocument { opened = NO; _displaySelection = YES; self = [super initWithObject: anObject inDocument: aDocument]; [self registerForDraggedTypes: [NSArray arrayWithObjects: IBViewPboardType, GormLinkPboardType, IBFormatterPboardType, nil]]; return self; } - (BOOL) activate { if ([super activate]) { NSEnumerator *enumerator; NSView *sub; NSDebugLog(@"activating %@ GormSplitViewEditor %@", self, _EO); [[NSNotificationCenter defaultCenter] addObserver: self selector: @selector(splitViewDidResizeSubviews:) name: NSSplitViewDidResizeSubviewsNotification object: _EO]; enumerator = [[NSArray arrayWithArray: [_EO subviews]] objectEnumerator]; while ((sub = [enumerator nextObject]) != nil) { NSDebugLog(@"ac %@ editorForObject: %@", self, sub); if ([sub isKindOfClass: [GormViewEditor class]] == NO) { NSDebugLog(@"ac %@ yes", self); [document editorForObject: sub inEditor: self create: YES]; } } return YES; } return NO; } - (void) deactivate { if (activated == YES) { [self deactivateSubeditors]; openedSubeditor = nil; [[NSNotificationCenter defaultCenter] removeObserver: self]; [super deactivate]; } } - (void) validateFrame: (NSRect) frame withEvent: (NSEvent *) theEvent andPlacementInfo: (GormPlacementInfo *) gpi { [super validateFrame: frame withEvent: theEvent andPlacementInfo: gpi]; [_EO adjustSubviews]; } - (BOOL) acceptsTypeFromArray: (NSArray*)types { if ([super acceptsTypeFromArray: types]) { return YES; } else { return [types containsObject: IBViewPboardType]; } } - (NSDragOperation) draggingEntered: (id)sender { NSPasteboard *dragPb; NSArray *types; dragPb = [sender draggingPasteboard]; types = [dragPb types]; if ([types containsObject: GormLinkPboardType] == YES) { [NSApp displayConnectionBetween: [NSApp connectSource] and: _EO]; return NSDragOperationLink; } else if ([types containsObject: IBViewPboardType] == YES) { return NSDragOperationCopy; } else { return NSDragOperationNone; } } - (BOOL) prepareForDragOperation: (id)sender { NSPasteboard *dragPb; NSArray *types; dragPb = [sender draggingPasteboard]; types = [dragPb types]; if ([types containsObject: GormLinkPboardType] == YES) { return YES; } else if ([types containsObject: IBViewPboardType] == YES) { return YES; } else { return NO; } } - (NSDragOperation) draggingUpdated: (id)sender { NSPasteboard *dragPb; NSArray *types; dragPb = [sender draggingPasteboard]; types = [dragPb types]; if ([types containsObject: GormLinkPboardType] == YES) { [NSApp displayConnectionBetween: [NSApp connectSource] and: _EO]; return NSDragOperationLink; } else if ([types containsObject: IBViewPboardType] == YES) { return NSDragOperationCopy; } else { return NSDragOperationNone; } } - (BOOL) performDragOperation: (id)sender { NSPasteboard *dragPb; NSArray *types; dragPb = [sender draggingPasteboard]; types = [dragPb types]; if ([types containsObject: GormLinkPboardType]) { [NSApp displayConnectionBetween: [NSApp connectSource] and: _EO]; [NSApp startConnecting]; } else if ([types containsObject: IBViewPboardType] == YES) { NSArray *views; NSEnumerator *enumerator; NSView *sub; views = [document pasteType: IBViewPboardType fromPasteboard: dragPb parent: _EO]; enumerator = [views objectEnumerator]; while ((sub = [enumerator nextObject]) != nil) { [_EO addSubview: sub]; [document editorForObject: sub inEditor: self create: YES]; } [_EO adjustSubviews]; [_EO setNeedsDisplay: YES]; } return YES; } - (void) mouseDown: (NSEvent *) theEvent { BOOL onKnob = NO; NSView *clickedSubview; { if ([parent respondsToSelector: @selector(selection)] && [[parent selection] containsObject: _EO]) { IBKnobPosition knob = IBNoneKnobPosition; NSPoint mouseDownPoint = [self convertPoint: [theEvent locationInWindow] fromView: nil]; knob = GormKnobHitInRect([self bounds], mouseDownPoint); if (knob != IBNoneKnobPosition) onKnob = YES; } if (onKnob == YES) { if (parent) return [parent mouseDown: theEvent]; else return [self noResponderFor: @selector(mouseDown:)]; } } if (opened == NO) { [super mouseDown: theEvent]; return; } { NSInteger i; NSArray *subs = [_EO subviews]; NSInteger count = [subs count]; NSPoint mouseDownPoint = [self convertPoint: [theEvent locationInWindow] fromView: nil]; clickedSubview = [_EO hitTest: mouseDownPoint]; for ( i = 0; i < count; i++ ) { if ([clickedSubview isDescendantOf: [subs objectAtIndex: i]]) { break; } } if (i < count) clickedSubview = [subs objectAtIndex: i]; else { clickedSubview = nil; } } if (clickedSubview == nil) { if (openedSubeditor) [openedSubeditor deactivate]; [_EO mouseDown: theEvent]; } else { [self selectObjects: [NSArray arrayWithObject: clickedSubview]]; [self setNeedsDisplay: YES]; if ([theEvent clickCount] == 2 && [clickedSubview isKindOfClass: [GormViewWithSubviewsEditor class]] && ([(GormViewWithSubviewsEditor *) clickedSubview canBeOpened] == YES) && (clickedSubview != self)) { if ((openedSubeditor != (GormViewWithSubviewsEditor *)clickedSubview) && openedSubeditor) [openedSubeditor deactivate]; [self setOpenedSubeditor: (GormViewWithSubviewsEditor *)clickedSubview]; if ([(GormViewWithSubviewsEditor *) clickedSubview isOpened] == NO) [(GormViewWithSubviewsEditor *)clickedSubview setOpened: YES]; [clickedSubview mouseDown: theEvent]; } } } - (void) splitViewDidResizeSubviews: (NSNotification *)aNotification { [self setNeedsDisplay: YES]; } - (void) ungroup { NSView *toUngroup; if ([selection count] != 1) return; toUngroup = [selection objectAtIndex: 0]; if ([toUngroup isKindOfClass: [GormBoxEditor class]] || [toUngroup isKindOfClass: [GormSplitViewEditor class]]) { id contentView = toUngroup; NSMutableArray *newSelection = [NSMutableArray array]; NSArray *views; NSInteger i; views = [contentView destroyAndListSubviews]; for (i = 0; i < [views count]; i++) { [_editedObject addSubview: [views objectAtIndex: i]]; [newSelection addObject: [document editorForObject: [views objectAtIndex: i] inEditor: self create: YES]]; } [[contentView editedObject] removeFromSuperview]; [_EO adjustSubviews]; [self setNeedsDisplay: YES]; } } - (NSArray *)destroyAndListSubviews { NSEnumerator *enumerator = [[_EO subviews] objectEnumerator]; GormViewEditor *subview; NSMutableArray *newSelection = [NSMutableArray array]; [parent makeSubeditorResign]; while ((subview = [enumerator nextObject]) != nil) { id v; NSRect frame; v = [subview editedObject]; frame = [v frame]; frame = [parent convertRect: frame fromView: _EO]; [subview deactivate]; [v setFrame: frame]; [newSelection addObject: v]; } [self close]; [document detachObject: self]; return newSelection; } @end gorm-1.2.24/GormCore/GormServer.h0000644000000000000000000000205313410616261015223 0ustar rootroot/* GormServer.h * * Copyright (C) 2010 Free Software Foundation, Inc. * * Author: Gregory Casamento * This file is part of GNUstep. * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 3 of the License, or * (at your option) any later version. * * This program 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 General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02111 USA. */ #ifndef INCLUDED_GormServer_h #define INCLUDED_GormServer_h @protocol GormServer - (void) addClass: (NSDictionary *)dict; - (void) deleteClass: (NSString *)className; @end #endif gorm-1.2.24/GormCore/GormViewKnobs.m0000644000000000000000000002430713410616261015677 0ustar rootroot/* GormViewKnobs.m Copyright (C) 1999 Free Software Foundation, Inc. Author: Gerrit van Dyk Date: 1999 Modified and extended by: Richard Frith-Macdonald This file is part of the GNUstep Interface Modeller Application. 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 3 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, 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ #include "GormViewKnobs.h" #include static NSInteger KNOB_WIDTH = 0.0; static NSInteger KNOB_HEIGHT = 0.0; #define MINSIZE 5.0 static NSRect *blackRectList = NULL; static int blackRectSize = 0; static int blackRectCount = 0; static NSRect *fgcolorRectList= NULL; static int fgcolorRectSize = 0; static int fgcolorRectCount= 0; static void _fastKnobFill(NSRect aRect,BOOL isBlack); static void _drawKnobsForRect(NSRect aRect,BOOL isBlack); static void calcKnobSize(void) { NSString *value; float w = 2.0; float h = 2.0; value = [[NSUserDefaults standardUserDefaults] objectForKey: @"KnobWidth"]; if (value != nil) { w = floor([value floatValue] / 2.0); } value = [[NSUserDefaults standardUserDefaults] objectForKey: @"KnobHeight"]; if (value != nil) { h = floor([value floatValue] / 2.0); } w = MAX(w, 1.0); h = MAX(h, 1.0); KNOB_WIDTH = w * 2.0 + 1.0; // Size must be odd */ KNOB_HEIGHT = h * 2.0 + 1.0; } void GormShowFastKnobFills(void) { if (blackRectCount) { [[NSColor blackColor] set]; NSRectFillList(blackRectList, blackRectCount); } if (fgcolorRectCount) { [[NSColor redColor] set]; NSRectFillList(fgcolorRectList, fgcolorRectCount); } blackRectCount = 0; fgcolorRectCount = 0; } static void _showLitKnobForRect(NSRect frame, IBKnobPosition aKnob) { float dx, dy; BOOL oddx, oddy; NSRect r; if (!KNOB_WIDTH) { calcKnobSize(); } dx = NSWidth(frame) / 2.0; dy = NSHeight(frame) / 2.0; oddx = (floor(dx) != dx); oddy = (floor(dy) != dy); frame.size.width = KNOB_WIDTH; frame.size.height = KNOB_HEIGHT; frame.origin.x -= ((KNOB_WIDTH - 1.0) / 2.0); frame.origin.y -= ((KNOB_HEIGHT - 1.0) / 2.0); // Initialize r to keep the compiler happy r = frame; if (aKnob == IBBottomLeftKnobPosition) r = frame; frame.origin.y += dy; if (oddy) frame.origin.y -= 0.5; if (aKnob == IBMiddleLeftKnobPosition) r = frame; frame.origin.y += dy; if (oddy) frame.origin.y += 0.5; if (aKnob == IBTopLeftKnobPosition) r = frame; frame.origin.x += dx; if (oddx) frame.origin.x -= 0.5; if (aKnob == IBTopMiddleKnobPosition) r = frame; frame.origin.x += dx; if (oddx) frame.origin.x += 0.5; if (aKnob == IBTopRightKnobPosition) r = frame; frame.origin.y -= dy; if (oddy) frame.origin.y -= 0.5; if (aKnob == IBMiddleRightKnobPosition) r = frame; frame.origin.y -= dy; if (oddy) frame.origin.y += 0.5; if (aKnob == IBBottomRightKnobPosition) r = frame; frame.origin.x -= dx; if (oddx) frame.origin.x += 0.5; if (aKnob == IBBottomMiddleKnobPosition) r = frame; r.origin.x += 1.0; r.origin.y -= 1.0; [[NSColor blackColor] set]; [NSBezierPath fillRect: r]; r.origin.x -= 1.0; r.origin.y += 1.0; [[NSColor whiteColor] set]; [NSBezierPath fillRect: r]; } void GormShowFrameWithKnob(NSRect aRect, IBKnobPosition aKnob) { NSRect r = aRect; /* * We draw a wire-frame around the rectangle. */ r.origin.x -= 0.5; r.origin.y -= 0.5; r.size.width += 1.0; r.size.height += 1.0; [[NSColor blackColor] set]; [NSBezierPath strokeRect: r]; if (aKnob != IBNoneKnobPosition) { /* * NB. we use the internal rectangle for calculating the knob position. */ _showLitKnobForRect(aRect, aKnob); } } void GormDrawKnobsForRect(NSRect aRect) { NSRect r; r.origin.x = floor(NSMinX(aRect)); r.origin.y = floor(NSMinY(aRect)); r.size.width = floor(NSMaxX(aRect) + 0.99) - NSMinX(r); r.size.height = floor(NSMaxY(aRect) + 0.99) - NSMinY(r); r.origin.x += 1.0; r.origin.y -= 1.0; _drawKnobsForRect(r, YES); r.origin.x = floor(NSMinX(aRect)); r.origin.y = floor(NSMinY(aRect)); r.size.width = floor(NSMaxX(aRect) + 0.99) - NSMinX(r); r.size.height = floor(NSMaxY(aRect) + 0.99) - NSMinY(r); _drawKnobsForRect(r, NO); } /* Draw these around an NSBox whose contents are being edited. */ void GormDrawOpenKnobsForRect(NSRect aRect) { NSRect r; r.origin.x = floor(NSMinX(aRect)); r.origin.y = floor(NSMinY(aRect)); r.size.width = floor(NSMaxX(aRect) + 0.99) - NSMinX(r); r.size.height = floor(NSMaxY(aRect) + 0.99) - NSMinY(r); _drawKnobsForRect(r, YES); } IBKnobPosition GormKnobHitInRect(NSRect aFrame, NSPoint p) { NSRect eb; NSRect knob; float dx, dy; BOOL oddx, oddy; eb = GormExtBoundsForRect(aFrame); if (!NSMouseInRect(p, eb, NO)) { return IBNoneKnobPosition; } knob = aFrame; dx = NSWidth(knob) / 2.0; dy = NSHeight(knob) / 2.0; oddx = (floor(dx) != dx); oddy = (floor(dy) != dy); knob.size.width = KNOB_WIDTH; knob.size.height = KNOB_HEIGHT; knob.origin.x -= ((KNOB_WIDTH - 1.0) / 2.0); knob.origin.y -= ((KNOB_HEIGHT - 1.0) / 2.0); if (NSMouseInRect(p, knob, NO)) { return(IBBottomLeftKnobPosition); } knob.origin.y += dy; if (oddy) { knob.origin.y -= 0.5; } if (NSMouseInRect(p, knob, NO)) { return(IBMiddleLeftKnobPosition); } knob.origin.y += dy; if (oddy) { knob.origin.y += 0.5; } if (NSMouseInRect(p, knob, NO)) { return(IBTopLeftKnobPosition); } knob.origin.x += dx; if (oddx) { knob.origin.x -= 0.5; } if (NSMouseInRect(p, knob, NO)) { return(IBTopMiddleKnobPosition); } knob.origin.x += dx; if (oddx) { knob.origin.x += 0.5; } if (NSMouseInRect(p, knob, NO)) { return(IBTopRightKnobPosition); } knob.origin.y -= dy; if (oddy) { knob.origin.y -= 0.5; } if (NSMouseInRect(p, knob, NO)) { return(IBMiddleRightKnobPosition); } knob.origin.y -= dy; if (oddy) { knob.origin.y += 0.5; } if (NSMouseInRect(p, knob, NO)) { return(IBBottomRightKnobPosition); } knob.origin.x -= dx; if (oddx) { knob.origin.x += 0.5; } if (NSMouseInRect(p, knob, NO)) { return(IBBottomMiddleKnobPosition); } return IBNoneKnobPosition; } NSRect GormExtBoundsForRect(NSRect aRect) { NSRect returnRect; if (NSWidth(aRect) < 0.0) { returnRect.origin.x = NSMaxX(aRect); returnRect.size.width = - NSWidth(aRect); } else { returnRect.origin.x = NSMinX(aRect); returnRect.size.width = NSWidth(aRect); } if (aRect.size.height < 0.0) { returnRect.origin.y = NSMaxY(aRect); returnRect.size.height = - NSHeight(aRect); } else { returnRect.origin.y = NSMinY(aRect); returnRect.size.height = NSHeight(aRect); } returnRect.size.width = MAX(1.0, NSWidth(returnRect)); returnRect.size.height = MAX(1.0, NSHeight(returnRect)); returnRect = NSInsetRect(returnRect, - ((KNOB_WIDTH - 1.0) + 1.0), - ((KNOB_HEIGHT - 1.0) + 1.0)); return NSIntegralRect(returnRect); } static void _fastKnobFill(NSRect aRect, BOOL isBlack) { if (isBlack) { if (!blackRectList) { blackRectSize = 16; blackRectList = NSZoneMalloc(NSDefaultMallocZone(), blackRectSize * sizeof(NSRect)); } else { if (blackRectCount >= blackRectSize) { while (blackRectCount >= blackRectSize) { blackRectSize <<= 1; } blackRectList = NSZoneRealloc(NSDefaultMallocZone(), blackRectList, blackRectSize * sizeof(NSRect)); } } blackRectList[blackRectCount++] = aRect; } else { if (!fgcolorRectList) { fgcolorRectSize = 16; fgcolorRectList = NSZoneMalloc(NSDefaultMallocZone(), fgcolorRectSize * sizeof(NSRect)); } else { if (fgcolorRectCount >= fgcolorRectSize) { while (fgcolorRectCount >= fgcolorRectSize) { fgcolorRectSize <<= 1; } fgcolorRectList = NSZoneRealloc(NSDefaultMallocZone(), fgcolorRectList, fgcolorRectSize * sizeof(NSRect)); } } fgcolorRectList[fgcolorRectCount++] = aRect; } } static void _drawKnobsForRect(NSRect knob, BOOL isBlack) { float dx, dy; BOOL oddx, oddy; if (!KNOB_WIDTH) { calcKnobSize(); } dx = NSWidth(knob) / 2.0; dy = NSHeight(knob) / 2.0; oddx = (floor(dx) != dx); oddy = (floor(dy) != dy); knob.size.width = KNOB_WIDTH; knob.size.height = KNOB_HEIGHT; knob.origin.x -= ((KNOB_WIDTH - 1.0) / 2.0); knob.origin.y -= ((KNOB_HEIGHT - 1.0) / 2.0); _fastKnobFill(knob, isBlack); knob.origin.y += dy; if (oddy) { knob.origin.y -= 0.5; } _fastKnobFill(knob, isBlack); knob.origin.y += dy; if (oddy) { knob.origin.y += 0.5; } _fastKnobFill(knob, isBlack); knob.origin.x += dx; if (oddx) { knob.origin.x -= 0.5; } _fastKnobFill(knob, isBlack); knob.origin.x += dx; if (oddx) { knob.origin.x += 0.5; } _fastKnobFill(knob, isBlack); knob.origin.y -= dy; if (oddy) { knob.origin.y -= 0.5; } _fastKnobFill(knob, isBlack); knob.origin.y -= dy; if (oddy) { knob.origin.y += 0.5; } _fastKnobFill(knob, isBlack); knob.origin.x -= dx; if (oddx) { knob.origin.x += 0.5; } _fastKnobFill(knob, isBlack); } gorm-1.2.24/GormCore/GormViewWithSubviewsEditor.m0000644000000000000000000006472413410616261020444 0ustar rootroot/* GormViewWithSubviewsEditor.m * * Copyright (C) 2002 Free Software Foundation, Inc. * * Author: Pierre-Yves Rivaille * Date: 2002 * * This file is part of GNUstep. * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 3 of the License, or * (at your option) any later version. * * This program 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 General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02111 USA. */ #include #include #include #include #include @class GormEditorToParent; @interface GormViewEditor (Private) - (NSRect) _displayMovingFrameWithHint: (NSRect) frame andPlacementInfo: (GormPlacementInfo *)gpi; @end @implementation GormViewWithSubviewsEditor - (id) initWithObject: (id)anObject inDocument: (id)aDocument { opened = NO; openedSubeditor = nil; if ((self = [super initWithObject: anObject inDocument: aDocument]) == nil) { return nil; } selection = [[NSMutableArray alloc] initWithCapacity: 5]; [self registerForDraggedTypes: [NSArray arrayWithObjects: IBViewPboardType, GormLinkPboardType, IBFormatterPboardType, nil]]; return self; } - (void) close { if (closed == NO) { [self deactivate]; [self closeSubeditors]; [document editor: self didCloseForObject: _editedObject]; closed = YES; } else { NSDebugLog(@"%@ close but already closed", self); } } - (void) deactivateSubeditors { NSArray *subeditorConnections = [NSArray arrayWithArray: [document connectorsForDestination: self ofClass: [GormEditorToParent class]]]; NSInteger count = [subeditorConnections count]; NSInteger i = 0; for ( i = 0; i < count; i ++ ) { [[[subeditorConnections objectAtIndex: i] source] deactivate]; } } - (void) closeSubeditors { NSArray *subeditorConnections = [NSArray arrayWithArray: [document connectorsForDestination: self ofClass: [GormEditorToParent class]]]; NSInteger count = [subeditorConnections count]; NSInteger i = 0; for ( i = 0; i < count; i ++ ) { [[[subeditorConnections objectAtIndex: i] source] close]; } } - (BOOL) canBeOpened { return YES; } - (BOOL) isOpened { return opened; } - (void) setOpened: (BOOL) value { opened = value; if (value == YES) { [self silentlyResetSelection]; // [document setSelectionFromEditor: self]; } else { if (openedSubeditor != nil) { [self makeSubeditorResign]; [self silentlyResetSelection]; } else { [self silentlyResetSelection]; } [self setNeedsDisplay: YES]; } } /* * */ - (void) openParentEditor { if ([parent respondsToSelector: @selector(setOpenedSubeditor:)]) { [parent setOpenedSubeditor: self]; } } - (void) setOpenedSubeditor: (GormViewWithSubviewsEditor *) newEditor { [self silentlyResetSelection]; if (opened == NO) { [self openParentEditor]; } opened = YES; if (newEditor != openedSubeditor) { [self makeSubeditorResign]; } openedSubeditor = newEditor; [self setNeedsDisplay: YES]; } /* * take the selection from the subeditors */ - (void) makeSubeditorResign { if (openedSubeditor != nil) { [openedSubeditor makeSubeditorResign]; [openedSubeditor setOpened: NO]; openedSubeditor = nil; } } - (void) makeSelectionVisible: (BOOL) value { } - (void) changeFont: (id)sender { NSEnumerator *enumerator = [[self selection] objectEnumerator]; id anObject; NSFont *newFont; while ((anObject = [enumerator nextObject])) { if ([anObject respondsToSelector: @selector(font)] && [anObject respondsToSelector: @selector(setFont:)]) { newFont = [sender convertFont: [anObject font]]; newFont = [[GormFontViewController sharedGormFontViewController] convertFont: newFont]; [anObject setFont: newFont]; } } return; } - (NSArray*) selection { NSInteger i; NSInteger count = [selection count]; NSMutableArray *result = [NSMutableArray arrayWithCapacity: count]; if (count != 0) { for (i = 0; i < count; i++) { if ([[selection objectAtIndex: i] respondsToSelector: @selector(editedObject)]) [result addObject: [[selection objectAtIndex: i] editedObject]]; else [result addObject: [selection objectAtIndex: i]]; } } else { if ([self respondsToSelector: @selector(editedObject)]) [result addObject: [self editedObject]]; else [result addObject: self]; } return result; } - (void) selectObjects: (NSArray *) objects { NSInteger i; NSInteger count = [objects count]; TEST_RELEASE(selection); selection = [[NSMutableArray alloc] initWithCapacity: [objects count]]; for (i = 0; i < count; i++) { [selection addObject: [objects objectAtIndex: i]]; } [self makeSubeditorResign]; opened = YES; [self openParentEditor]; [document setSelectionFromEditor: self]; [self setNeedsDisplay: YES]; } - (void) silentlyResetSelection { TEST_RELEASE(selection); selection = [[NSMutableArray alloc] initWithCapacity: 5]; } - (void) copySelection { if ([selection count] > 0) { [document copyObjects: [self selection] type: IBViewPboardType toPasteboard: [NSPasteboard generalPasteboard]]; } } - (BOOL) acceptsFirstResponder { return YES; } - (void) drawSelection { // doesn nothing. } - (NSUInteger) selectionCount { return [selection count]; } - (NSDragOperation) draggingEntered: (id)sender { NSRect rect = [_editedObject bounds]; NSPoint loc = [sender draggingLocation]; NSPasteboard *dragPb; NSArray *types; dragPb = [sender draggingPasteboard]; types = [dragPb types]; loc = [_editedObject convertPoint: loc fromView: nil]; if ([types containsObject: GormLinkPboardType] == YES) { return [super draggingEntered: sender]; } if (NSMouseInRect(loc, [_editedObject bounds], NO) == NO) { return NSDragOperationNone; } else { rect.origin.x += 3; rect.origin.y += 2; rect.size.width -= 5; rect.size.height -= 5; [_editedObject lockFocus]; [[NSColor darkGrayColor] set]; NSFrameRectWithWidth(rect, 2); [_editedObject unlockFocus]; [[self window] flushWindow]; return NSDragOperationCopy; } } - (void) draggingExited: (id)sender { NSPasteboard *dragPb; NSArray *types; NSRect rect; dragPb = [sender draggingPasteboard]; types = [dragPb types]; if ([types containsObject: GormLinkPboardType] == YES) { [super draggingExited: sender]; return; } rect = [_editedObject bounds]; rect.origin.x += 3; rect.origin.y += 2; rect.size.width -= 5; rect.size.height -= 5; rect.origin.x --; rect.size.width ++; rect.size.height ++; [[self window] disableFlushWindow]; [self displayRect: [_editedObject convertRect: rect toView: self]]; [[self window] enableFlushWindow]; [[self window] flushWindow]; } - (NSDragOperation) draggingUpdated: (id)sender { NSPoint loc = [sender draggingLocation]; NSRect rect = [_editedObject bounds]; NSPasteboard *dragPb; NSArray *types; dragPb = [sender draggingPasteboard]; types = [dragPb types]; loc = [_editedObject convertPoint: loc fromView: nil]; if ([types containsObject: GormLinkPboardType] == YES) { return [super draggingUpdated: sender]; } rect.origin.x += 3; rect.origin.y += 2; rect.size.width -= 5; rect.size.height -= 5; if (NSMouseInRect(loc, [_editedObject bounds], NO) == NO) { [[self window] disableFlushWindow]; rect.origin.x --; rect.size.width ++; rect.size.height ++; [self displayRect: [_editedObject convertRect: rect toView: self]]; [[self window] enableFlushWindow]; [[self window] flushWindow]; return NSDragOperationNone; } else { [_editedObject lockFocus]; [[NSColor darkGrayColor] set]; NSFrameRectWithWidth(rect, 2); [_editedObject unlockFocus]; [[self window] flushWindow]; return NSDragOperationCopy; } } - (BOOL) prepareForDragOperation: (id)sender { NSString *dragType; NSArray *types; NSPasteboard *dragPb; dragPb = [sender draggingPasteboard]; types = [dragPb types]; if ([types containsObject: IBViewPboardType] == YES) { dragType = IBViewPboardType; } else if ([types containsObject: GormLinkPboardType] == YES) { dragType = GormLinkPboardType; return [super prepareForDragOperation: sender]; } else { dragType = nil; } if (dragType == IBViewPboardType) { /* * We can accept views dropped anywhere. */ NSPoint loc = [sender draggingLocation]; loc = [_editedObject convertPoint: loc fromView: nil]; if (NSMouseInRect(loc, [_editedObject bounds], NO) == NO) { return NO; } return YES; } return NO; } - (BOOL) performDragOperation: (id)sender { NSString *dragType; NSPasteboard *dragPb; NSArray *types; dragPb = [sender draggingPasteboard]; types = [dragPb types]; if ([types containsObject: IBViewPboardType] == YES) { dragType = IBViewPboardType; } else if ([types containsObject: GormLinkPboardType] == YES) { dragType = GormLinkPboardType; } else { dragType = nil; } if (dragType == IBViewPboardType) { NSPoint loc = [sender draggingLocation]; NSArray *views; NSEnumerator *enumerator; NSView *sub; /* * Ask the document to get the dragged views from the pasteboard and add * them to it's collection of known objects. */ views = [document pasteType: IBViewPboardType fromPasteboard: dragPb parent: _editedObject]; /* * Now make all the views subviews of ourself, setting their origin to * be the point at which they were dropped (converted from window * coordinates to our own coordinates). */ loc = [_editedObject convertPoint: loc fromView: nil]; if (NSMouseInRect(loc, [_editedObject bounds], NO) == NO) { // Dropped outside our view frame NSLog(@"Dropped outside current edit view"); dragType = nil; return NO; } enumerator = [views objectEnumerator]; while ((sub = [enumerator nextObject]) != nil) { NSRect rect = [sub frame]; rect.origin = [_editedObject convertPoint: [sender draggedImageLocation] fromView: nil]; rect.origin.x = (int) rect.origin.x; rect.origin.y = (int) rect.origin.y; rect.size.width = (int) rect.size.width; rect.size.height = (int) rect.size.height; [sub setFrame: rect]; [_editedObject addSubview: sub]; { id editor; editor = [document editorForObject: sub inEditor: self create: YES]; [self selectObjects: [NSArray arrayWithObject: editor]]; } } } return YES; } - (void) handleMouseOnKnob: (IBKnobPosition) knob ofView: (GormViewEditor *) view withEvent: (NSEvent *) theEvent { NSPoint mouseDownPoint = [[view superview] convertPoint: [theEvent locationInWindow] fromView: nil]; NSDate *future = [NSDate distantFuture]; BOOL acceptsMouseMoved; unsigned eventMask; NSEvent *e; NSEventType eType; NSRect r = [view frame]; NSPoint maxMouse; NSPoint minMouse; NSRect firstRect = [view frame]; NSRect lastRect = [view frame]; NSPoint lastPoint = mouseDownPoint; NSPoint point = mouseDownPoint; NSView *superview; GormPlacementInfo *gpi; eventMask = NSLeftMouseUpMask | NSLeftMouseDraggedMask | NSMouseMovedMask | NSPeriodicMask; // Save window state info. acceptsMouseMoved = [[self window] acceptsMouseMovedEvents]; [[self window] setAcceptsMouseMovedEvents: YES]; superview = [view superview]; [superview lockFocus]; _displaySelection = NO; /* * Get size limits for resizing or moving and calculate maximum * and minimum mouse positions that won't cause us to exceed * those limits. */ { NSSize max = [view maximumSizeFromKnobPosition: knob]; NSSize min = [view minimumSizeFromKnobPosition: knob]; r = [superview frame]; minMouse = NSMakePoint(NSMinX(r), NSMinY(r)); maxMouse = NSMakePoint(NSMaxX(r), NSMaxY(r)); r = [view frame]; switch (knob) { case IBBottomLeftKnobPosition: maxMouse.x = NSMaxX(r) - min.width; minMouse.x = NSMaxX(r) - max.width; maxMouse.y = NSMaxY(r) - min.height; minMouse.y = NSMaxY(r) - max.height; break; case IBMiddleLeftKnobPosition: maxMouse.x = NSMaxX(r) - min.width; minMouse.x = NSMaxX(r) - max.width; break; case IBTopLeftKnobPosition: maxMouse.x = NSMaxX(r) - min.width; minMouse.x = NSMaxX(r) - max.width; maxMouse.y = NSMinY(r) + max.height; minMouse.y = NSMinY(r) + min.height; break; case IBTopMiddleKnobPosition: maxMouse.y = NSMinY(r) + max.height; minMouse.y = NSMinY(r) + min.height; break; case IBTopRightKnobPosition: maxMouse.x = NSMinX(r) + max.width; minMouse.x = NSMinX(r) + min.width; maxMouse.y = NSMinY(r) + max.height; minMouse.y = NSMinY(r) + min.height; break; case IBMiddleRightKnobPosition: maxMouse.x = NSMinX(r) + max.width; minMouse.x = NSMinX(r) + min.width; break; case IBBottomRightKnobPosition: maxMouse.x = NSMinX(r) + max.width; minMouse.x = NSMinX(r) + min.width; maxMouse.y = NSMaxY(r) - min.height; minMouse.y = NSMaxY(r) - max.height; break; case IBBottomMiddleKnobPosition: maxMouse.y = NSMaxY(r) - min.height; minMouse.y = NSMaxY(r) - max.height; break; case IBNoneKnobPosition: break; /* NOT REACHED */ } } /* Set the arrows cursor in case it might be something else */ [[NSCursor arrowCursor] push]; /* * Track mouse movements until left mouse up. * While we keep track of all mouse movements, we only act on a * movement when a periodic event arives (every 20th of a second) * in order to avoid excessive amounts of drawing. */ [NSEvent startPeriodicEventsAfterDelay: 0.1 withPeriod: 0.05]; e = [NSApp nextEventMatchingMask: eventMask untilDate: future inMode: NSEventTrackingRunLoopMode dequeue: YES]; eType = [e type]; if ([view respondsToSelector: @selector(initializeResizingInFrame:withKnob:)]) { gpi = [(id)view initializeResizingInFrame: superview withKnob: knob]; } else { gpi = nil; } while (eType != NSLeftMouseUp) { if (eType != NSPeriodic) { point = [superview convertPoint: [e locationInWindow] fromView: nil]; /* if (edit_view != self) point = _constrainPointToBounds(point, [edit_view bounds]); */ } else if (NSEqualPoints(point, lastPoint) == NO) { [[self window] disableFlushWindow]; { float xDiff; float yDiff; if (point.x < minMouse.x) point.x = minMouse.x; if (point.y < minMouse.y) point.y = minMouse.y; if (point.x > maxMouse.x) point.x = maxMouse.x; if (point.y > maxMouse.y) point.y = maxMouse.y; xDiff = point.x - lastPoint.x; yDiff = point.y - lastPoint.y; lastPoint = point; { r = GormExtBoundsForRect(r/*constrainRect*/); r.origin.x--; r.origin.y--; r.size.width += 2; r.size.height += 2; // [superview displayRect: r]; r = lastRect; switch (knob) { case IBBottomLeftKnobPosition: r.origin.x += xDiff; r.origin.y += yDiff; r.size.width -= xDiff; r.size.height -= yDiff; break; case IBMiddleLeftKnobPosition: r.origin.x += xDiff; r.size.width -= xDiff; break; case IBTopLeftKnobPosition: r.origin.x += xDiff; r.size.width -= xDiff; r.size.height += yDiff; break; case IBTopMiddleKnobPosition: r.size.height += yDiff; break; case IBTopRightKnobPosition: r.size.width += xDiff; r.size.height += yDiff; break; case IBMiddleRightKnobPosition: r.size.width += xDiff; break; case IBBottomRightKnobPosition: r.origin.y += yDiff; r.size.width += xDiff; r.size.height -= yDiff; break; case IBBottomMiddleKnobPosition: r.origin.y += yDiff; r.size.height -= yDiff; break; case IBNoneKnobPosition: break; /* NOT REACHED */ } lastRect = r; if ([view respondsToSelector: @selector(updateResizingWithFrame:andEvent:andPlacementInfo:)]) { [view updateResizingWithFrame: r andEvent: theEvent andPlacementInfo: gpi]; } } /* * Flush any drawing performed for this event. */ [[self window] enableFlushWindow]; [[self window] flushWindow]; } } e = [NSApp nextEventMatchingMask: eventMask untilDate: future inMode: NSEventTrackingRunLoopMode dequeue: YES]; eType = [e type]; } [NSEvent stopPeriodicEvents]; [NSCursor pop]; /* Typically after a view has been dragged in a window, NSWindow sends a spurious moustEntered event. Sending the mouseUp event back to the NSWindow resets the NSWindow's idea of the last mouse point so it doesn't think that the mouse has entered the view (since it was always there, it's just that the view moved). */ [[self window] postEvent: e atStart: NO]; { NSRect redrawRect; /* * This was a subview resize, so we must clean up by removing * the highlighted knob and the wireframe around the view. */ [view updateResizingWithFrame: r andEvent: theEvent andPlacementInfo: gpi]; [view validateFrame: r withEvent: theEvent andPlacementInfo: gpi]; r = GormExtBoundsForRect(lastRect); r.origin.x--; r.origin.y--; r.size.width += 2; r.size.height += 2; /* * If this was a simple resize, we must redraw the union of * the original frame, and the final frame, and the area * where we were drawing the wireframe and handles. */ redrawRect = NSUnionRect(r, redrawRect); redrawRect = NSUnionRect(firstRect, redrawRect); } if (NSEqualPoints(point, mouseDownPoint) == NO) { /* * A subview was moved or resized, so we must mark the * doucment as edited. */ [document touch]; } [superview unlockFocus]; _displaySelection = YES; [self setNeedsDisplay: YES]; /* * Restore state to what it was on entry. */ [[self window] setAcceptsMouseMovedEvents: acceptsMouseMoved]; } - (void) handleMouseOnView: (GormViewEditor *) view withEvent: (NSEvent *) theEvent { NSPoint mouseDownPoint = [[view superview] convertPoint: [theEvent locationInWindow] fromView: nil]; NSDate *future = [NSDate distantFuture]; NSView *subview; BOOL acceptsMouseMoved; BOOL dragStarted = NO; unsigned eventMask; NSEvent *e; NSEventType eType; NSRect r; NSPoint maxMouse; NSPoint minMouse; NSPoint lastPoint = mouseDownPoint; NSPoint point = mouseDownPoint; NSView *superview; NSEnumerator *enumerator; NSRect oldMovingFrame; NSRect suggestedFrame; GormPlacementInfo *gpi = nil; BOOL shouldUpdateSelection = YES; BOOL mouseDidMove = NO; eventMask = NSLeftMouseUpMask | NSLeftMouseDraggedMask | NSMouseMovedMask | NSPeriodicMask; // Save window state info. acceptsMouseMoved = [[self window] acceptsMouseMovedEvents]; [[self window] setAcceptsMouseMovedEvents: YES]; if (view == nil) { return; } if ([theEvent modifierFlags] & NSShiftKeyMask) { if ([selection containsObject: view]) { NSMutableArray *newSelection = [selection mutableCopy]; [newSelection removeObjectIdenticalTo: view]; [self selectObjects: newSelection]; RELEASE(newSelection); return; } else { NSArray *newSelection; newSelection = [selection arrayByAddingObject: view]; [self selectObjects: newSelection]; } shouldUpdateSelection = NO; } else { if ([selection containsObject: view]) { if ([selection count] == 1) shouldUpdateSelection = NO; } else { shouldUpdateSelection = NO; [self selectObjects: [NSArray arrayWithObject: view]]; } } superview = [view superview]; [superview lockFocus]; { NSRect vf = [view frame]; NSRect sf = [superview bounds]; NSPoint tr = NSMakePoint(NSMaxX(vf), NSMaxY(vf)); NSPoint bl = NSMakePoint(NSMinX(vf), NSMinY(vf)); enumerator = [selection objectEnumerator]; while ((subview = [enumerator nextObject]) != nil) { if (subview != view) { float tmp; vf = [subview frame]; tmp = NSMaxX(vf); if (tmp > tr.x) tr.x = tmp; tmp = NSMaxY(vf); if (tmp > tr.y) tr.y = tmp; tmp = NSMinX(vf); if (tmp < bl.x) bl.x = tmp; tmp = NSMinY(vf); if (tmp < bl.y) bl.y = tmp; } } minMouse.x = point.x - bl.x; minMouse.y = point.y - bl.y; maxMouse.x = NSMaxX(sf) - tr.x + point.x; maxMouse.y = NSMaxY(sf) - tr.y + point.y; } if ([selection count] == 1) { oldMovingFrame = [[selection objectAtIndex: 0] frame]; gpi = [[selection objectAtIndex: 0] initializeResizingInFrame: [self superview] withKnob: IBNoneKnobPosition]; suggestedFrame = oldMovingFrame; } // Set the arrows cursor in case it might be something else [[NSCursor arrowCursor] push]; // Track mouse movements until left mouse up. // While we keep track of all mouse movements, we only act on a // movement when a periodic event arives (every 20th of a second) // in order to avoid excessive amounts of drawing. [NSEvent startPeriodicEventsAfterDelay: 0.1 withPeriod: 0.05]; e = [NSApp nextEventMatchingMask: eventMask untilDate: future inMode: NSEventTrackingRunLoopMode dequeue: YES]; eType = [e type]; { while ((eType != NSLeftMouseUp) && !mouseDidMove) { if (eType != NSPeriodic) { point = [superview convertPoint: [e locationInWindow] fromView: nil]; if (NSEqualPoints(mouseDownPoint, point) == NO) mouseDidMove = YES; } e = [NSApp nextEventMatchingMask: eventMask untilDate: future inMode: NSEventTrackingRunLoopMode dequeue: YES]; eType = [e type]; } } while (eType != NSLeftMouseUp) { if (eType != NSPeriodic) { point = [superview convertPoint: [e locationInWindow] fromView: nil]; } else if (NSEqualPoints(point, lastPoint) == NO) { [[self window] disableFlushWindow]; { float xDiff; float yDiff; if (point.x < minMouse.x) point.x = minMouse.x; if (point.y < minMouse.y) point.y = minMouse.y; if (point.x > maxMouse.x) point.x = maxMouse.x; if (point.y > maxMouse.y) point.y = maxMouse.y; xDiff = point.x - lastPoint.x; yDiff = point.y - lastPoint.y; lastPoint = point; if (dragStarted == NO) { // Remove selection knobs before moving selection. dragStarted = YES; _displaySelection = NO; [self setNeedsDisplay: YES]; } if ([selection count] == 1) { id obj = [selection objectAtIndex: 0]; if([obj isKindOfClass: [NSView class]]) { [[selection objectAtIndex: 0] setFrameOrigin: NSMakePoint(NSMaxX([self bounds]), NSMaxY([self bounds]))]; [superview display]; r = oldMovingFrame; r.origin.x += xDiff; r.origin.y += yDiff; r.origin.x = (int) r.origin.x; r.origin.y = (int) r.origin.y; r.size.width = (int) r.size.width; r.size.height = (int) r.size.height; oldMovingFrame = r; //case guideLine if ( _followGuideLine ) { suggestedFrame = [obj _displayMovingFrameWithHint: r andPlacementInfo: gpi]; } else { suggestedFrame = NSMakeRect (NSMinX(r), NSMinY(r), NSMaxX(r) - NSMinX(r), NSMaxY(r) - NSMinY(r)); } [obj setFrame: suggestedFrame]; [obj setNeedsDisplay: YES]; } } else { enumerator = [selection objectEnumerator]; while ((subview = [enumerator nextObject]) != nil) { NSRect oldFrame = [subview frame]; r = oldFrame; r.origin.x += xDiff; r.origin.y += yDiff; r.origin.x = (int) r.origin.x; r.origin.y = (int) r.origin.y; r.size.width = (int) r.size.width; r.size.height = (int) r.size.height; [subview setFrame: r]; [superview setNeedsDisplayInRect: oldFrame]; [subview setNeedsDisplay: YES]; } } /* * Flush any drawing performed for this event. */ [[self window] displayIfNeeded]; [[self window] enableFlushWindow]; [[self window] flushWindow]; } } e = [NSApp nextEventMatchingMask: eventMask untilDate: future inMode: NSEventTrackingRunLoopMode dequeue: YES]; eType = [e type]; } _displaySelection = YES; if ([selection count] == 1) [[selection objectAtIndex: 0] setFrame: suggestedFrame]; if (mouseDidMove == NO && shouldUpdateSelection == YES) { [self selectObjects: [NSArray arrayWithObject: view]]; } [self setNeedsDisplay: YES]; [NSEvent stopPeriodicEvents]; [NSCursor pop]; /* Typically after a view has been dragged in a window, NSWindow sends a spurious mouseEntered event. Sending the mouseUp event back to the NSWindow resets the NSWindow's idea of the last mouse point so it doesn't think that the mouse has entered the view (since it was always there, it's just that the view moved). */ [[self window] postEvent: e atStart: NO]; if (NSEqualPoints(point, mouseDownPoint) == NO) { // A subview was moved or resized, so we must mark the doucment as edited. [document touch]; } [superview unlockFocus]; // Restore window state to what it was when entering the method. [[self window] setAcceptsMouseMovedEvents: acceptsMouseMoved]; } @end gorm-1.2.24/GormCore/GormPalettesManager.m0000644000000000000000000005527313410616261017052 0ustar rootroot/* GormPalettesManager.m * * Copyright (C) 1999 Free Software Foundation, Inc. * * Author: Richard Frith-Macdonald * Author: Gregory John Casamento * Date: 1999, 2004 * * This file is part of GNUstep. * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 3 of the License, or * (at your option) any later version. * * This program 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 General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02111 USA. */ #include "GormPrivate.h" #include #include #include #include #include #include "GormFunctions.h" #define BUILTIN_PALETTES @"BuiltinPalettes" #define USER_PALETTES @"UserPalettes" @interface GormPalettePanel : NSPanel @end @implementation GormPalettePanel /* - (BOOL) canBecomeKeyWindow { return NO; } - (BOOL) canBecomeMainWindow { return YES; } */ @end @interface GormPaletteView : NSView { NSPasteboard *dragPb; } - (void) draggedImage: (NSImage*)i endedAt: (NSPoint)p deposited: (BOOL)f; - (NSDragOperation) draggingSourceOperationMaskForLocal: (BOOL)flag; @end @implementation GormPaletteView static NSImage *dragImage = nil; + (void) initialize { if (self == [GormPaletteView class]) { // nothing to do... } } - (BOOL) acceptsFirstMouse: (NSEvent*)theEvent { return YES; /* Ensure we get initial mouse down event. */ } /* * Initialisation - register to receive DnD with our own types. */ - (id) initWithFrame: (NSRect)aFrame { self = [super initWithFrame: aFrame]; if (self != nil) { [self registerForDraggedTypes: [NSArray arrayWithObjects: IBCellPboardType, IBMenuPboardType, IBMenuCellPboardType, IBObjectPboardType, IBViewPboardType, IBWindowPboardType, IBFormatterPboardType,nil]]; [self setAutoresizingMask: NSViewMinXMargin|NSViewMinYMargin|NSViewMaxXMargin|NSViewMaxYMargin]; } return self; } - (void) dealloc { DESTROY(dragPb); [super dealloc]; } /* * Dragging source protocol implementation */ - (void) draggedImage: (NSImage*)i endedAt: (NSPoint)p deposited: (BOOL)f { NSString *type = [[dragPb types] lastObject]; /* * Windows and Menus are an exception to the normal DnD mechanism - * we create them if they are dropped anywhere except back in the \ * pallettes view ie. if they are dragged, but the drop fails. */ if (f == NO && ([type isEqual: IBWindowPboardType] == YES || [type isEqual: IBMenuPboardType] == YES)) { id active = [(id)NSApp activeDocument]; if (active != nil) { /* if([active objectForName: @"NSMenu"] != nil && [type isEqual: IBMenuPboardType] == YES) return; */ [active pasteType: type fromPasteboard: dragPb parent: nil]; } } } - (NSDragOperation) draggingSourceOperationMaskForLocal: (BOOL)flag { return NSDragOperationCopy; } /* * Dragging destination protocol implementation * * We actually don't handle anything being dropped on the palette, * but we pretend to accept drops from ourself, so that the drag * session quietly terminates - and it looks like the drop has * been successful - this stops windows being created when they are * dropped back on the palette (a window is normally created if the * dnd drop is refused). */ - (NSDragOperation) draggingEntered: (id)sender { return NSDragOperationCopy;; } - (BOOL) performDragOperation: (id)sender { return YES; } - (BOOL) prepareForDragOperation: (id)sender { return YES; } /* * Intercepting events in the view and handling them */ - (NSView*) hitTest: (NSPoint)loc { /* * Stop the subviews receiving events - we grab them all. */ if ([super hitTest: loc] != nil) return self; return nil; } - (void) mouseDown: (NSEvent*)theEvent { NSPoint dragPoint = [theEvent locationInWindow]; NSWindow *w = [self window]; NSView *view; GormDocument *active = (GormDocument *)[(id)NSApp activeDocument]; NSRect rect; NSString *type; id obj; NSPasteboard *pb; NSImageRep *rep; NSMenu *menu; if ([self superview] != nil) { dragPoint = [[self superview] convertPoint: dragPoint fromView: nil]; } view = [super hitTest: dragPoint]; if (view == self || view == nil) { return; // No subview to drag. } /* Make sure we're dragging the proper control and not a subview of a control (like the contentView of an NSBox) */ while (view != nil && [view superview] != self) view = [view superview]; // this will always get the correct coordinates... rect = [[view superview] convertRect: [view frame] toView: nil]; if (active == nil) { NSRunAlertPanel (nil, _(@"No document is currently active"), _(@"OK"), nil, nil); return; } RELEASE(dragImage); dragImage = [[NSImage alloc] init]; [dragImage setSize: rect.size]; rep = [[NSCachedImageRep alloc] initWithSize: rect.size depth: [w depthLimit] separate: YES alpha: [w alphaValue]>0.0 ? YES : NO]; [dragImage addRepresentation: rep]; RELEASE(rep); /* Copy the contents of the clicked view from our window into the * cached image representation. * NB. We use lockFocusOnRepresentation: for this because it sets * up cached image representation information in the image, and if * that's not done before our copy, the image will overwrite our * copied data when asked to draw the representation. */ [dragImage lockFocusOnRepresentation: rep]; NSCopyBits([w gState], rect, NSZeroPoint); [dragImage unlockFocus]; type = [IBPalette typeForView: view]; obj = [IBPalette objectForView: view]; pb = [NSPasteboard pasteboardWithName: NSDragPboard]; ASSIGN(dragPb, pb); [active copyObject: obj type: type toPasteboard: pb]; NSDebugLog(@"type: %@, obj: %@,", type, obj); menu = [active objectForName: @"NSMenu"]; [self dragImage: dragImage at: [view frame].origin offset: NSMakeSize(0,0) event: theEvent pasteboard: pb source: self slideBack: ([type isEqual: IBWindowPboardType] || ([type isEqual: IBMenuPboardType] && menu == nil)) ? NO : YES]; // Temporary fix for the art backend. This is harmless, and // shouldn't effect users of xlib, but it's necessary for now // so that users can work. [self setNeedsDisplay: YES]; } @end @implementation GormPalettesManager - (void) dealloc { [[NSNotificationCenter defaultCenter] removeObserver: self]; RELEASE(panel); RELEASE(bundles); RELEASE(palettes); RELEASE(importedClasses); RELEASE(importedImages); RELEASE(importedSounds); RELEASE(substituteClasses); [super dealloc]; } - (void) handleNotification: (NSNotification*)aNotification { NSString *name = [aNotification name]; if ([name isEqual: IBWillBeginTestingInterfaceNotification] == YES) { if ([panel isVisible] == YES) { hiddenDuringTest = YES; [panel orderOut: self]; } } else if ([name isEqual: IBWillEndTestingInterfaceNotification] == YES) { if (hiddenDuringTest == YES) { hiddenDuringTest = NO; [panel orderFront: self]; } } } - (id) init { NSNotificationCenter *nc = [NSNotificationCenter defaultCenter]; NSScrollView *scrollView; NSArray *array; NSRect contentRect = {{0, 0}, {272, 266}}; NSRect selectionRect = {{0, 0}, {52, 52}}; NSRect scrollRect = {{0, 192}, {272, 74}}; NSRect dragRect = {{0, 0}, {272, 192}}; unsigned int style = NSTitledWindowMask | NSClosableWindowMask | NSResizableWindowMask; NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults]; NSArray *userPalettes = [defaults arrayForKey: USER_PALETTES]; panel = [[GormPalettePanel alloc] initWithContentRect: contentRect styleMask: style backing: NSBackingStoreRetained defer: NO]; [panel setTitle: _(@"Palettes")]; [panel setMinSize: [panel frame].size]; // allocate arrays and dictionaries. bundles = [[NSMutableArray alloc] init]; palettes = [[NSMutableArray alloc] init]; importedClasses = [[NSMutableDictionary alloc] init]; importedImages = [[NSMutableArray alloc] init]; importedSounds = [[NSMutableArray alloc] init]; substituteClasses = [[NSMutableDictionary alloc] init]; scrollView = [[NSScrollView alloc] initWithFrame: scrollRect]; [scrollView setHasHorizontalScroller: YES]; [scrollView setHasVerticalScroller: NO]; [scrollView setAutoresizingMask: NSViewMinYMargin | NSViewWidthSizable]; [scrollView setBorderType: NSBezelBorder]; selectionView = [[NSMatrix alloc] initWithFrame: selectionRect mode: NSRadioModeMatrix cellClass: [NSImageCell class] numberOfRows: 1 numberOfColumns: 0]; [selectionView setTarget: self]; [selectionView setAction: @selector(setCurrentPalette:)]; [selectionView setCellSize: NSMakeSize(52,52)]; [selectionView setIntercellSpacing: NSMakeSize(0,0)]; [scrollView setDocumentView: selectionView]; RELEASE(selectionView); [[panel contentView] addSubview: scrollView]; RELEASE(scrollView); dragView = [[GormPaletteView alloc] initWithFrame: dragRect]; [dragView setAutoresizingMask: NSViewHeightSizable | NSViewWidthSizable]; [[panel contentView] addSubview: dragView]; RELEASE(dragView); [panel setFrameUsingName: @"Palettes"]; [panel setFrameAutosaveName: @"Palettes"]; current = -1; array = [[NSBundle mainBundle] pathsForResourcesOfType: @"palette" inDirectory: nil]; if ([array count] > 0) { unsigned index; array = [array sortedArrayUsingSelector: @selector(compare:)]; for (index = 0; index < [array count]; index++) { [self loadPalette: [array objectAtIndex: index]]; } } // if we have any user palettes load them as well. if(userPalettes != nil) { NSEnumerator *en = [userPalettes objectEnumerator]; id paletteName = nil; while((paletteName = [en nextObject]) != nil) { [self loadPalette: paletteName]; } } /* * Select initial palette - this should be the standard controls palette. */ [selectionView selectCellAtRow: 0 column: 2]; [self setCurrentPalette: selectionView]; [nc addObserver: self selector: @selector(handleNotification:) name: IBWillBeginTestingInterfaceNotification object: nil]; [nc addObserver: self selector: @selector(handleNotification:) name: IBWillEndTestingInterfaceNotification object: nil]; return self; } - (BOOL) bundlePathIsLoaded: (NSString *)path { int col = 0; NSBundle *bundle; for (col = 0; col < [bundles count]; col++) { bundle = [bundles objectAtIndex: col]; if ([path isEqualToString: [bundle bundlePath]] == YES) { return YES; } } return NO; } - (BOOL) loadPalette: (NSString*)path { NSBundle *bundle; NSWindow *window; Class paletteClass; NSDictionary *paletteInfo; NSString *className; NSArray *exportClasses; NSArray *exportSounds; NSArray *exportImages; NSDictionary *subClasses; IBPalette *palette; NSImageCell *cell; int col; if([self bundlePathIsLoaded: path]) { NSRunAlertPanel (nil, _(@"Palette has already been loaded"), _(@"OK"), nil, nil); return NO; } bundle = [NSBundle bundleWithPath: path]; if (bundle == nil) { NSRunAlertPanel(nil, _(@"Could not load Palette"), _(@"OK"), nil, nil); return NO; } path = [bundle pathForResource: @"palette" ofType: @"table"]; if (path == nil) { NSRunAlertPanel(nil, _(@"File 'palette.table' missing"), _(@"OK"), nil, nil); return NO; } // attempt to load the palette table in either the strings or plist format. NS_DURING { paletteInfo = [[NSString stringWithContentsOfFile: path] propertyList]; if (paletteInfo == nil) { paletteInfo = [[NSString stringWithContentsOfFile: path] propertyListFromStringsFileFormat]; if(paletteInfo == nil) { NSRunAlertPanel(_(@"Problem Loading Palette"), _(@"Failed to load 'palette.table' using strings or property list format."), _(@"OK"), nil, nil); return NO; } } } NS_HANDLER { NSString *message = [NSString stringWithFormat: _(@"Encountered exception %@ attempting to load 'palette.table'."), [localException reason]]; NSRunAlertPanel(_(@"Problem Loading Palette"), message, _(@"OK"), nil, nil); return NO; } NS_ENDHANDLER className = [paletteInfo objectForKey: @"Class"]; if (className == nil) { NSRunAlertPanel(nil, _(@"No palette class in 'palette.table'"), _(@"OK"), nil, nil); return NO; } paletteClass = [bundle classNamed: className]; if (paletteClass == 0) { NSRunAlertPanel (nil, _(@"Could not load palette class"), _(@"OK"), nil, nil); return NO; } palette = [[paletteClass alloc] init]; if ([palette isKindOfClass: [IBPalette class]] == NO) { NSRunAlertPanel (nil, _(@"Palette contains wrong type of class"), _(@"OK"), nil, nil); RELEASE(palette); return NO; } // add to the bundles list... [bundles addObject: bundle]; exportClasses = [paletteInfo objectForKey: @"ExportClasses"]; if(exportClasses != nil) { [self importClasses: exportClasses withDictionary: nil]; } exportImages = [paletteInfo objectForKey: @"ExportImages"]; if(exportImages != nil) { [self importImages: exportImages withBundle: bundle]; } exportSounds = [paletteInfo objectForKey: @"ExportSounds"]; if(exportSounds != nil) { [self importSounds: exportSounds withBundle: bundle]; } subClasses = [paletteInfo objectForKey: @"SubstituteClasses"]; if(subClasses != nil) { [substituteClasses addEntriesFromDictionary: subClasses]; } [palette finishInstantiate]; window = [palette originalWindow]; [window setExcludedFromWindowsMenu: YES]; // Resize the window appropriately so that we don't have issues // with scrolling. if([window styleMask] & NSBorderlessWindowMask) { [window setFrame: NSMakeRect(0,0,272,160) display: NO]; } else { [window setFrame: NSMakeRect(0,0,272,192) display: NO]; } [palettes addObject: palette]; [selectionView addColumn]; [[palette paletteIcon] setBackgroundColor: [selectionView backgroundColor]]; col = [selectionView numberOfColumns] - 1; cell = [selectionView cellAtRow: 0 column: col]; [cell setImageFrameStyle: NSImageFrameButton]; [cell setImage: [palette paletteIcon]]; [selectionView sizeToCells]; [selectionView selectCellAtRow: 0 column: col]; [self setCurrentPalette: selectionView]; RELEASE(palette); return YES; } - (id) openPalette: (id) sender { NSArray *fileTypes = [NSArray arrayWithObject: @"palette"]; NSOpenPanel *oPanel = [NSOpenPanel openPanel]; int result; NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults]; NSArray *userPalettes = [defaults arrayForKey: USER_PALETTES]; NSMutableArray *newUserPalettes = (userPalettes == nil)?[NSMutableArray array]:[NSMutableArray arrayWithArray: userPalettes]; [oPanel setAllowsMultipleSelection: YES]; [oPanel setCanChooseFiles: YES]; [oPanel setCanChooseDirectories: NO]; result = [oPanel runModalForDirectory: NSHomeDirectory() file: nil types: fileTypes]; if (result == NSOKButton) { NSArray *filesToOpen = [oPanel filenames]; unsigned count = [filesToOpen count]; unsigned i; for (i = 0; i < count; i++) { NSString *aFile = [filesToOpen objectAtIndex: i]; if([self bundlePathIsLoaded: aFile] == YES && [userPalettes containsObject: aFile] == NO) { // This is done here so that, if we try to reload a palette // that has previously been deleted during this session that // the palette manager won't fail, but it will simply add // the palette back in. If this returns NO, then we should // flag a problem otherwise it's successful if the palette is // already in the bundles array. This is to address bug#15989. [newUserPalettes addObject: aFile]; } else if([self loadPalette: aFile] == NO) { return nil; } else { [newUserPalettes addObject: aFile]; } } // reset the defaults to include the new palette. [defaults setObject: newUserPalettes forKey: USER_PALETTES]; return self; } return nil; } - (NSPanel*) panel { return panel; } - (void) setCurrentPalette: (id)anObj { NSView *wv; NSView *sv; NSEnumerator *enumerator; if (current >= 0) { /* * Move the views in the drag view back to the content view of the * window they originally came from. */ wv = [[[palettes objectAtIndex: current] originalWindow] contentView]; enumerator = [[dragView subviews] objectEnumerator]; while ((sv = [enumerator nextObject]) != nil) { RETAIN(sv); [sv removeFromSuperview]; [wv addSubview: sv]; RELEASE(sv); } } current = [anObj selectedColumn]; if (current >= 0 && current < [palettes count]) { id palette = [palettes objectAtIndex: current]; /* * Set the window title to reflect the palette selection. */ [panel setTitle: [NSString stringWithFormat: @"Palettes (%@)", [palette className]]]; /* * Move the views from their original window into our drag view. * Resize our drag view to the right size fitrst. */ wv = [[palette originalWindow] contentView]; if (wv) [dragView setFrameSize: [wv frame].size]; enumerator = [[wv subviews] objectEnumerator]; while ((sv = [enumerator nextObject]) != nil) { RETAIN(sv); [sv removeFromSuperview]; [dragView addSubview: sv]; RELEASE(sv); } } else { NSLog(@"Bad palette selection - %d", (int)[anObj selectedColumn]); current = -1; } [dragView setNeedsDisplay: YES]; } - (NSMutableArray *) actionsForClass: (Class) cls { NSArray *methodArray = _GSObjCMethodNamesForClass(cls, NO); NSEnumerator *en = [methodArray objectEnumerator]; NSMethodSignature *actionSig = [NSMethodSignature signatureWithObjCTypes: "v12@0:4@8"]; NSMutableArray *actionsArray = [NSMutableArray array]; NSString *methodName = nil; NSRange setRange = NSMakeRange(0,3); while((methodName = [en nextObject]) != nil) { SEL sel = NSSelectorFromString(methodName); NSMethodSignature *signature = [cls instanceMethodSignatureForSelector: sel]; if([signature numberOfArguments] == 3) { if([actionSig isEqual: signature] && NSEqualRanges([methodName rangeOfString: @"set"], setRange) == NO && [methodName isEqual: @"encodeWithCoder:"] == NO && [methodName isEqual: @"mouseDown:"] == NO) { [actionsArray addObject: methodName]; } } } return actionsArray; } - (NSMutableArray *) outletsForClass: (Class) cls { NSArray *methodArray = _GSObjCMethodNamesForClass(cls, NO); NSEnumerator *en = [methodArray objectEnumerator]; NSMethodSignature *outletSig = [NSMethodSignature signatureWithObjCTypes: "v12@0:4@8"]; NSMutableArray *outletsArray = [NSMutableArray array]; NSString *methodName = nil; NSRange setRange = NSMakeRange(0,3); while((methodName = [en nextObject]) != nil) { SEL sel = NSSelectorFromString(methodName); NSMethodSignature *signature = [cls instanceMethodSignatureForSelector: sel]; if([signature numberOfArguments] == 3) { if([outletSig isEqual: signature] && NSEqualRanges([methodName rangeOfString: @"set"], setRange) == YES && [methodName isEqual: @"encodeWithCoder:"] == NO && [methodName isEqual: @"mouseDown:"] == NO) { NSRange range = NSMakeRange(3,([methodName length] - 4)); NSString *outletMethod = [[methodName substringWithRange: range] lowercaseString]; if([methodArray containsObject: outletMethod]) { [outletsArray addObject: outletMethod]; } } } } return outletsArray; } - (void) importClasses: (NSArray *)classes withDictionary: (NSDictionary *)dict { NSEnumerator *en = [classes objectEnumerator]; id className = nil; NSMutableDictionary *masterDict = [NSMutableDictionary dictionary]; // import the classes. while((className = [en nextObject]) != nil) { NSMutableDictionary *classDict = [NSMutableDictionary dictionary]; Class cls = NSClassFromString(className); Class supercls = [cls superclass]; NSString *superClassName = NSStringFromClass(supercls); NSMutableArray *actions = [self actionsForClass: cls]; NSMutableArray *outlets = [self outletsForClass: cls]; // if the superclass is defined, set it. if not, don't since // this might be a palette which adds a root class. if(superClassName != nil) { [classDict setObject: superClassName forKey: @"Super"]; } // set the action/outlet keys if(actions != nil) { [classDict setObject: actions forKey: @"Actions"]; } if(outlets != nil) { [classDict setObject: outlets forKey: @"Outlets"]; } [masterDict setObject: classDict forKey: className]; } // override any elements needed, if it's present. if(dict != nil) { [masterDict addEntriesFromDictionary: dict]; } // add the classes to the dictionary... [importedClasses addEntriesFromDictionary: masterDict]; } - (NSDictionary *) importedClasses { return importedClasses; } - (void) importImages: (NSArray *)images withBundle: (NSBundle *) bundle { NSEnumerator *en = [images objectEnumerator]; id name = nil; NSMutableArray *paths = [NSMutableArray array]; while((name = [en nextObject]) != nil) { NSString *path = [bundle pathForImageResource: name]; [paths addObject: path]; } [importedImages addObjectsFromArray: paths]; } - (NSArray *) importedImages { return importedImages; } - (void) importSounds: (NSArray *)sounds withBundle: (NSBundle *) bundle { NSEnumerator *en = [sounds objectEnumerator]; id name = nil; NSMutableArray *paths = [NSMutableArray array]; while((name = [en nextObject]) != nil) { NSString *path = [bundle pathForSoundResource: name]; [paths addObject: path]; } [importedSounds addObjectsFromArray: paths]; } - (NSArray *) importedSounds { return importedSounds; } - (NSDictionary *) substituteClasses { return substituteClasses; } @end gorm-1.2.24/GormCore/GormSplitViewEditor.h0000644000000000000000000000221113410616261017046 0ustar rootroot/* GormSplitViewEditor.h - Editor for splitviews. * * Copyright (C) 2002 Free Software Foundation, Inc. * * Author: Pierre-Yves Rivaille * Date: Aug 2002 * * This file is part of GNUstep. * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 3 of the License, or * (at your option) any later version. * * This program 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 General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02111 USA. */ #ifndef INCLUDED_GormSplitViewEditor_h #define INCLUDED_GormSplitViewEditor_h #include @interface GormSplitViewEditor : GormViewWithSubviewsEditor { } - (NSArray *)destroyAndListSubviews; @end #endif gorm-1.2.24/GormCore/GormFilePrefsManager.h0000644000000000000000000000402113410616261017124 0ustar rootroot/* All Rights reserved */ #include @interface GormFilePrefsManager : NSObject { id showIncompatibilities; id targetVersion; id gormAppVersion; id archiveType; id iwindow; id itable; id fileType; // encoded ivars... NSInteger version; NSString *targetVersionName; NSString *archiveTypeName; // version profiles... NSDictionary *versionProfiles; NSDictionary *currentProfile; } /** * Show incompatibilities in the panel. */ - (void) showIncompatibilities: (id)sender; /** * Action called when the target version pulldown is selected. */ - (void) selectTargetVersion: (id)sender; /** * Action called when the archive type pulldown is selected. */ - (void) selectArchiveType: (id)sender; /** * Loads the encoded file info. */ - (BOOL) loadFromData: (NSData *)data; /** * Loads the encoded file info. */ - (BOOL) loadFromFile: (NSString *)path; /** * Saves the encoded file info. */ - (NSData *) data; /** * Saves the encoded file info. */ - (NSData *) nibDataWithOpenItems: (NSArray *)openItems; /** * Saves the encoded file info. */ - (BOOL) saveToFile: (NSString *)path; /** * Loads the profile. */ - (void) loadProfile: (NSString *)version; // accessors... /** * Gorm Version of the current archive. */ - (int) version; /** * Which version of the gui library, by name. */ - (NSString *)targetVersionName; /** * Which achive type, by name. */ - (NSString *)archiveTypeName; /** * Are we set to the latest version? Returns YES, if so. */ - (BOOL) isLatest; // set class versions /** * Sets the version of the classes. */ - (void) setClassVersions; /** * Restores the versions to the most current. */ - (void) restoreClassVersions; /** * Returns the version of the class in the current profile. */ - (int) versionOfClass: (NSString *)className; // file type... /** * File type name... */ - (void) setFileTypeName: (NSString *)ft; /** * return file type. */ - (NSString *) fileTypeName; /** * The current Gorm version. */ + (int) currentVersion; @end gorm-1.2.24/GormCore/GormDocument.h0000644000000000000000000002456413410616261015546 0ustar rootroot/* GormDocument.h * * Copyright (C) 1999, 2003 Free Software Foundation, Inc. * * Author: Richard Frith-Macdonald * Author: Gregory John Casamento * Date: 1999, 2003 * * This file is part of GNUstep. * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 3 of the License, or * (at your option) any later version. * * This program 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 General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02111 USA. */ #ifndef INCLUDED_GormDocument_h #define INCLUDED_GormDocument_h #include #include #include #include @class GormClassManager, GormClassEditor, GormObjectProxy, GormFilesOwner, GormFilePrefsManager, GormDocumentWindow; /* * Trivial classes for connections from objects to their editors, and from * child editors to their parents. This does nothing special, but we can * use the fact that it's a different class to search for it in the connections * array. */ @interface GormObjectToEditor : NSNibConnector @end @interface GormEditorToParent : NSNibConnector @end /* * Each document has a GormFirstResponder object that is used as a placeholder * for the first responder at any instant. */ @interface GormFirstResponder : NSObject { } @end @interface GormDocument : NSDocument { GormClassManager *classManager; GormFilesOwner *filesOwner; GormFirstResponder *firstResponder; GormObjectProxy *fontManager; NSMapTable *objToName; GormDocumentWindow *window; NSBox *selectionBox; NSScrollView *scrollView; NSScrollView *classesScrollView; NSScrollView *soundsScrollView; NSScrollView *imagesScrollView; id classesView; id objectsView; id soundsView; id imagesView; BOOL isActive; BOOL isDocumentOpen; NSMenu *savedMenu; NSMenuItem *quitItem; /* Replaced during test-mode */ NSMutableArray *savedEditors; NSMutableArray *hidden; NSMutableArray *openEditors; NSToolbar *toolbar; id lastEditor; BOOL isOlderArchive; id filePrefsView; GormFilePrefsManager *filePrefsManager; NSWindow *filePrefsWindow; NSMutableArray *resourceManagers; NSData *infoData; /* data.info contents */ NSMutableArray *images; /* temporary storage for images. */ NSMutableArray *sounds; /* temporary storage for sounds. */ NSFileWrapper *scmWrapper; // container data structures NSMutableDictionary *nameTable; NSMutableArray *connections; NSMutableSet *topLevelObjects; NSMutableSet *visibleWindows; NSMutableSet *deferredWindows; } /* Handle notifications */ /** * Handle all notifications. Checks the value of [aNotification name] * against the set of notifications this class responds to and takes * appropriate action. */ - (void) handleNotification: (NSNotification*)aNotification; /* Document management */ /** * Returns YES, if document is active. */ - (BOOL) isActive; /** * Return YES, if anObject is visible at launch time. */ - (BOOL) objectIsVisibleAtLaunch: (id)anObject; /** * Return YES, if anObject is deferred. */ - (BOOL) objectIsDeferred: (id)anObject; /** * Retrieve all objects which have parent as thier parent. If flag is YES, * then retrieve the entire graph of objects starting with the parent. */ - (NSArray *) retrieveObjectsForParent: (id)parent recursively: (BOOL)flag; /** * Marks this document as the currently active document. The active document is * the one being edited by the user. */ - (void) setDocumentActive: (BOOL)flag; /** * Add object to the visible at launch list. */ - (void) setObject: (id)anObject isVisibleAtLaunch: (BOOL)flag; /** * Add object to the defferred list. */ - (void) setObject: (id)anObject isDeferred: (BOOL)flag; /** * The document window. */ - (NSWindow*) window; /** * Returns YES, if obj is a top level object. */ - (BOOL) isTopLevelObject: (id)obj; /** * Forces the closing of all editors in the document. */ - (void) closeAllEditors; /** * Create resource manager instances for all registered classes. */ - (void) createResourceManagers; /** * The list of all resource managers. */ - (NSArray *) resourceManagers; /** * Get the resource manager which handles the content on pboard. */ - (IBResourceManager *) resourceManagerForPasteboard: (NSPasteboard *)pboard; /** * Switch to the top level editor responsible for a given type. This allows the * document in the view to switch to the view which is appropriate for the resource * being dragged in. */ - (void) changeToTopLevelEditorAcceptingTypes: (NSArray *)types andFileType: (NSString *)fileType; /** * Switches to the view using the specified tag. * They are 0=objects, 1=images, 2=sounds, 3=classes, 4=file prefs. */ - (void) changeToViewWithTag: (int)tag; /** * returns the view using the specified tag. * They are 0=objects, 1=images, 2=sounds, 3=classes, 4=file prefs. */ - (NSView *)viewWithTag:(int)tag; /** * Returns all pasteboard types registered for with the IBResourceManager. */ - (NSArray *) allManagedPboardTypes; /* Language translation */ - (void) translate: (id)sender; - (void) exportStrings: (id)sender; /* Managing classes */ - (GormClassManager*) classManager; - (id) createSubclass: (id)sender; - (id) instantiateClass: (id)sender; - (id) createClassFiles: (id)sender; - (id) addAttributeToClass: (id)sender; - (id) remove: (id)sender; - (void) selectClass: (NSString *)className; - (void) selectClass: (NSString *)className editClass: (BOOL)flag; - (BOOL) classIsSelected; - (void) removeAllInstancesOfClass: (NSString *)classNamed; /* Sound & Image support */ /** * Open a sound and load it into the document. */ - (id) openSound: (id)sender; /** * Open an image and copy it into the document. */ - (id) openImage: (id)sender; /* Connections */ /** * Build our reverse mapping information and other initialisation */ - (void) rebuildObjToNameMapping; /** * Removes all connections given action or outlet with the specified label * (paramter name) class name (parameter className). */ - (BOOL) removeConnectionsWithLabel: (NSString *)name forClassNamed: (NSString *)className isAction: (BOOL)action; /** * Remove all connections to any and all instances of className. */ - (BOOL) removeConnectionsForClassNamed: (NSString *)name; /** * Rename connections connected to an instance of on class to another. */ - (BOOL) renameConnectionsForClassNamed: (NSString *)name toName: (NSString *)newName; /** * Refresh all connections to any and all instances of className. Checks if * the class has the action/outlet present and deletes it, if it doesn't. */ - (void) refreshConnectionsForClassNamed: (NSString *)className; /* class loading */ /** * Load a class into the document. */ - (id) loadClass: (id)sender; /*** services/windows menus... ***/ /** * Set the services menu. */ - (void) setServicesMenu: (NSMenu *)menu; /** * Returns the services menu for the document. */ - (NSMenu *) servicesMenu; /** * Sets the windows menu. */ - (void) setWindowsMenu: (NSMenu *)menu; /** * Returns the menu which will be the windows menu for the document. */ - (NSMenu *) windowsMenu; /** * Sets the recent documents menu. */ - (void) setRecentDocumentsMenu: (NSMenu *)menu; /** * Returns the menu which will be the recent documents menu for the document. */ - (NSMenu *) recentDocumentsMenu; /*** first responder/font manager ***/ /** * Returns stand-in object for fontManager. */ - (id) fontManager; /** * Returns stand-in object for firstResponder */ - (id) firstResponder; /* Layout */ /** * Arrages selected objects based on the either in front of or in * back of the view stack. */ - (void) arrangeSelectedObjects: (id)sender; /** * Aligns selected objects on a given axis. */ - (void) alignSelectedObjects: (id)sender; /** * WindowAndRect:forObject: is called by Gorm to determine where it should * draw selection markup */ - (NSWindow*) windowAndRect: (NSRect*)r forObject: (id)object; /** * Save the SCM directory. */ - (void) setSCMWrapper: (NSFileWrapper *) wrapper; /** * Save the SCM directory. */ - (NSFileWrapper *) scmWrapper; /** * Images */ - (NSArray *) images; /** * Sounds */ - (NSArray *) sounds; /** * Images */ - (void) setImages: (NSArray *) imgs; /** * Sounds */ - (void) setSounds: (NSArray *) snds; /** * File's Owner */ - (GormFilesOwner *) filesOwner; /** * File preferences. */ - (GormFilePrefsManager *) filePrefsManager; /** * Windows visible at launch... */ - (NSSet *) visibleWindows; /** * Windows deferred. */ - (NSSet *) deferredWindows; /** * Set the document open flag. */ - (void) setDocumentOpen: (BOOL) flag; /** * Return the document open flag. */ - (BOOL) isDocumentOpen; /** * Set the file info for this document. */ - (void) setInfoData: (NSData *)data; /** * return the file info. */ - (NSData *) infoData; /** * Set the "older archive" flag. */ - (void) setOlderArchive: (BOOL)flag; /** * Return YES if this is an older archive. */ - (BOOL) isOlderArchive; /** * Deactivate the editors for archiving.. */ - (void) deactivateEditors; /** * Reactivate all of the editors... */ - (void) reactivateEditors; @end @interface GormDocument (MenuValidation) /** * Returns YES if the document is editing instance/objects. */ - (BOOL) isEditingObjects; /** * Returns YES if the document is editing images. */ - (BOOL) isEditingImages; /** * Returns YES if the document is editing sounds. */ - (BOOL) isEditingSounds; /** * Returns YES if the document is editing classes. */ - (BOOL) isEditingClasses; @end #endif gorm-1.2.24/GormCore/GormControlEditor.h0000644000000000000000000000207313410616261016546 0ustar rootroot/* GormControlEditor.h * * Copyright (C) 2002 Free Software Foundation, Inc. * * Author: Pierre-Yves Rivaille * Date: 2002 * * This file is part of GNUstep. * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 3 of the License, or * (at your option) any later version. * * This program 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 General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02111 USA. */ #ifndef INCLUDED_GormControlEditor_h #define INCLUDED_GormControlEditor_h #include @interface GormControlEditor : GormViewEditor @end #endif gorm-1.2.24/GormCore/GormNSWindow.m0000644000000000000000000000750613410616261015502 0ustar rootroot/* GormWindow.m Copyright (C) 2001 Free Software Foundation, Inc. Author: Pierre-Yves Rivaille Date: 2001 This file is part of GNUstep. This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 3 of the License, or (at your option) any later version. This program 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 General Public License for more details. You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02111 USA. */ #include #include #include #include "GormNSWindow.h" // the default style mask we start with. static NSUInteger defaultStyleMask = NSTitledWindowMask | NSClosableWindowMask | NSResizableWindowMask | NSMiniaturizableWindowMask; @implementation GormNSWindow - (void) encodeWithCoder: (NSCoder*)aCoder { unsigned oldStyleMask; // save the old values... oldStyleMask = _styleMask; // set the values we wish to save.. after save restore. _styleMask = _gormStyleMask; [self setReleasedWhenClosed: _gormReleasedWhenClosed]; [super encodeWithCoder: aCoder]; _styleMask = oldStyleMask; [self setReleasedWhenClosed: NO]; } - (id) initWithCoder: (NSCoder *)coder { self = [super initWithCoder: coder]; if (self == nil) { return nil; } // preserve the setting and set the actual window to NO. _gormReleasedWhenClosed = [self isReleasedWhenClosed]; [self setReleasedWhenClosed: NO]; return self; } - (id) initWithContentRect: (NSRect)contentRect styleMask: (NSUInteger)aStyle backing: (NSBackingStoreType)bufferingType defer: (BOOL)flag { _gormStyleMask = aStyle; self = [super initWithContentRect: contentRect styleMask: defaultStyleMask backing: bufferingType defer: NO]; // always no, because this isn't recorded here... if(self != nil) { // Don't release when the window is closed, a window being edited may // be periodically opened and closed. [self setReleasedWhenClosed: NO]; // remove the default icon... [self setMiniwindowImage: nil]; // set the default position mask; autoPositionMask = GSWindowMaxXMargin | GSWindowMinYMargin; } return self; } - (void) _setStyleMask: (unsigned int)newStyleMask { _gormStyleMask = newStyleMask; } - (unsigned int) _styleMask { return _gormStyleMask; } - (BOOL) canBecomeMainWindow { return NO; } - (BOOL) canBecomeKeyWindow { return YES; } - (NSString *) className { return @"NSWindow"; } - (void) _setReleasedWhenClosed: (BOOL) flag { _gormReleasedWhenClosed = flag; } - (BOOL) _isReleasedWhenClosed { return _gormReleasedWhenClosed; } - (unsigned int) autoPositionMask { return autoPositionMask; } - (void) setAutoPositionMask: (unsigned int)mask { autoPositionMask = mask; } - (void) orderWindow: (NSWindowOrderingMode)place relativeTo: (NSInteger)otherWin { id document = [(id)NSApp documentForObject: self]; [super orderWindow: place relativeTo: otherWin]; if([NSApp isConnecting] == NO) { id editor = [document editorForObject: self create: NO]; // select myself. if([editor respondsToSelector: @selector(selectObjects:)]) { [editor selectObjects: [NSArray arrayWithObject: self]]; } [document setSelectionFromEditor: editor]; [editor makeSelectionVisible: YES]; } } - (void) saveFrameUsingName: (NSString*)name { // do nothing... } @end gorm-1.2.24/GormCore/GormObjectEditor.h0000644000000000000000000000274613410616261016343 0ustar rootroot/* GormObjectEditor.h * * Copyright (C) 1999, 2003 Free Software Foundation, Inc. * * Author: Richard Frith-Macdonald * Author: Gregory John Casamento * Date: 1999, 2003, 2004 * * This file is part of GNUstep. * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 3 of the License, or * (at your option) any later version. * * This program 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 General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02111 USA. */ #ifndef INCLUDED_GormObjectEditor_h #define INCLUDED_GormObjectEditor_h #include "GormGenericEditor.h" @interface GormObjectEditor : GormGenericEditor { } + (void) setEditor: (id)editor forDocument: (id)aDocument; - (void) draggedImage: (NSImage*)i endedAt: (NSPoint)p deposited: (BOOL)f; - (NSDragOperation) draggingSourceOperationMaskForLocal: (BOOL)flag; - (BOOL) acceptsTypeFromArray: (NSArray*)types; - (void) makeSelectionVisible: (BOOL)flag; - (void) resetObject: (id)anObject; @end #endif gorm-1.2.24/GormCore/GormViewWithContentViewEditor.m0000644000000000000000000004222013410616261021065 0ustar rootroot/* GormViewWithContentViewEditor.m * * Copyright (C) 2002 Free Software Foundation, Inc. * * Author: Pierre-Yves Rivaille * Date: 2002 * * This file is part of GNUstep. * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 3 of the License, or * (at your option) any later version. * * This program 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 General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02111 USA. */ #include #include "GormPrivate.h" #include "GormViewWithContentViewEditor.h" #include "GormPlacementInfo.h" #include "GormSplitViewEditor.h" #include "GormViewKnobs.h" #include "GormInternalViewEditor.h" @interface GormViewEditor (Private) - (NSRect) _displayMovingFrameWithHint: (NSRect) frame andPlacementInfo: (GormPlacementInfo *)gpi; @end @implementation GormViewWithContentViewEditor - (id) initWithObject: (id) anObject inDocument: (id)aDocument { _displaySelection = YES; //GuideLine [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(guideline:) name: GormToggleGuidelineNotification object:nil]; _followGuideLine = YES; self = [super initWithObject: anObject inDocument: aDocument]; return self; } -(void) guideline:(NSNotification *)notification { if ( _followGuideLine ) _followGuideLine = NO; else _followGuideLine = YES; } - (void) moveSelectionByX: (float)x andY: (float)y { NSInteger i; NSInteger count = [selection count]; for (i = 0; i < count; i++) { id v = [selection objectAtIndex: i]; NSRect f = [v frame]; f.origin.x += x; f.origin.y += y; [v setFrameOrigin: f.origin]; } } - (void) resizeSelectionByX: (float)x andY: (float)y { NSInteger i; NSInteger count = [selection count]; for (i = 0; i < count; i++) { id v = [selection objectAtIndex: i]; NSRect f = [v frame]; f.size.width += x; f.size.height += y; [v setFrameSize: f.size]; } } - (void) keyDown: (NSEvent *)theEvent { NSString *characters = [theEvent characters]; unichar character = 0; float moveBy = 1.0; if ([characters length] > 0) { character = [characters characterAtIndex: 0]; } if (([theEvent modifierFlags] & NSShiftKeyMask) == NSShiftKeyMask) { if (([theEvent modifierFlags] & NSAlternateKeyMask) == NSAlternateKeyMask) { moveBy = 10.0; } if ([selection count] == 1) { switch (character) { case NSUpArrowFunctionKey: [self resizeSelectionByX: 0 andY: 1*moveBy]; [self setNeedsDisplay: YES]; return; case NSDownArrowFunctionKey: [self resizeSelectionByX: 0 andY: -1*moveBy]; [self setNeedsDisplay: YES]; return; case NSLeftArrowFunctionKey: [self resizeSelectionByX: -1*moveBy andY: 0]; [self setNeedsDisplay: YES]; return; case NSRightArrowFunctionKey: [self resizeSelectionByX: 1*moveBy andY: 0]; [self setNeedsDisplay: YES]; return; } } } else { if (([theEvent modifierFlags] & NSAlternateKeyMask) == NSAlternateKeyMask) { moveBy = 10.0; } if ([selection count] > 0) { switch (character) { case NSUpArrowFunctionKey: [self moveSelectionByX: 0 andY: 1*moveBy]; [self setNeedsDisplay: YES]; return; case NSDownArrowFunctionKey: [self moveSelectionByX: 0 andY: -1*moveBy]; [self setNeedsDisplay: YES]; return; case NSLeftArrowFunctionKey: [self moveSelectionByX: -1*moveBy andY: 0]; [self setNeedsDisplay: YES]; return; case NSRightArrowFunctionKey: [self moveSelectionByX: 1*moveBy andY: 0]; [self setNeedsDisplay: YES]; return; } } } [super keyDown: theEvent]; } - (BOOL) acceptsTypeFromArray: (NSArray*)types { if ([super acceptsTypeFromArray: types]) { return YES; } else { return [types containsObject: IBViewPboardType]; } } - (void) postDrawForView: (GormViewEditor *) viewEditor { if (_displaySelection == NO) { return; } if (((id)openedSubeditor == (id)viewEditor) && (openedSubeditor != nil) && ![openedSubeditor isKindOfClass: [GormInternalViewEditor class]]) { GormDrawOpenKnobsForRect([viewEditor bounds]); GormShowFastKnobFills(); } else if ([selection containsObject: viewEditor]) { GormDrawKnobsForRect([viewEditor bounds]); GormShowFastKnobFills(); } } - (void) postDraw: (NSRect) rect { [super postDraw: rect]; if (openedSubeditor && ![openedSubeditor isKindOfClass: [GormInternalViewEditor class]]) { GormDrawOpenKnobsForRect( [self convertRect: [openedSubeditor bounds] fromView: openedSubeditor]); GormShowFastKnobFills(); } else if (_displaySelection) { NSInteger i; NSInteger count = [selection count]; for ( i = 0; i < count ; i++ ) { GormDrawKnobsForRect([self convertRect: [[selection objectAtIndex: i] bounds] fromView: [selection objectAtIndex: i]]); GormShowFastKnobFills(); } } } #undef MAX #undef MIN #define MAX(A,B) ((A)>(B)?(A):(B)) #define MIN(A,B) ((A)<(B)?(A):(B)) int _sortViews(id view1, id view2, void *context) { BOOL isVertical = *((BOOL *)context); NSInteger order = NSOrderedSame; NSRect rect1 = [[view1 editedObject] frame]; NSRect rect2 = [[view2 editedObject] frame]; if(!isVertical) { float y1 = rect1.origin.y; float y2 = rect2.origin.y; if(y1 == y2) order = NSOrderedSame; else order = (y1 > y2)?NSOrderedAscending:NSOrderedDescending; } else { float x1 = rect1.origin.x; float x2 = rect2.origin.x; if(x1 == x2) order = NSOrderedSame; else order = (x1 < x2)?NSOrderedAscending:NSOrderedDescending; } return order; } - (NSArray *) _sortByPosition: (NSArray *)subviews isVertical: (BOOL)isVertical { NSMutableArray *array = [subviews mutableCopy]; NSArray *result = [array sortedArrayUsingFunction: _sortViews context: &isVertical]; return result; } - (BOOL) _shouldBeVertical: (NSArray *)subviews { BOOL vertical = NO; NSEnumerator *enumerator = [subviews objectEnumerator]; GormViewEditor *editor = nil; NSRect prevRect = NSZeroRect; NSRect currRect = NSZeroRect; NSInteger count = 0; // iterate over the list of views... while((editor = [enumerator nextObject]) != nil) { NSView *subview = [editor editedObject]; currRect = [subview frame]; if(!NSEqualRects(prevRect,NSZeroRect)) { float x1 = prevRect.origin.x, // pull these for convenience. x2 = currRect.origin.x, y1 = prevRect.origin.y, y2 = currRect.origin.y, h1 = prevRect.size.height, w1 = prevRect.size.width; if((x1 < x2 || x1 > x2) && ((y2 >= y1 && y2 <= (y1 + h1)) || (y2 <= y1 && y2 >= (y1 - h1)))) { count++; } if((y1 < y2 || y1 > y2) && ((x2 >= x1 && x2 <= (x1 + w1)) || (x2 <= x1 && x2 >= (x1 - w1)))) { count--; } } prevRect = currRect; } NSDebugLog(@"The vote is %ld",(long int)count); if(count >= 0) vertical = YES; else vertical = NO; // return the result... return vertical; } - (void) groupSelectionInSplitView { NSEnumerator *enumerator = nil; GormViewEditor *subview = nil; NSSplitView *splitView = nil; NSRect rect = NSZeroRect; GormViewEditor *editor = nil; NSView *superview = nil; NSArray *sortedviews = nil; BOOL vertical = NO; if ([selection count] < 2) { return; } enumerator = [selection objectEnumerator]; while ((subview = [enumerator nextObject]) != nil) { superview = [subview superview]; rect = NSUnionRect(rect, [subview frame]); [subview deactivate]; } splitView = [[NSSplitView alloc] initWithFrame: rect]; [document attachObject: splitView toParent: _editedObject]; [superview addSubview: splitView]; // positionally determine orientation vertical = [self _shouldBeVertical: selection]; sortedviews = [self _sortByPosition: selection isVertical: vertical]; [splitView setVertical: vertical]; enumerator = [sortedviews objectEnumerator]; editor = (GormViewEditor *)[document editorForObject: splitView inEditor: self create: YES]; while ((subview = [enumerator nextObject]) != nil) { id eO = [subview editedObject]; [splitView addSubview: [subview editedObject]]; [document attachObject: [subview editedObject] toParent: splitView]; [subview close]; [document editorForObject: eO inEditor: editor create: YES]; } [self selectObjects: [NSArray arrayWithObject: editor]]; } - (void) groupSelectionInBox { NSEnumerator *enumerator = nil; GormViewEditor *subview = nil; NSBox *box = nil; NSRect rect = NSZeroRect; GormViewEditor *editor = nil; NSView *superview = nil; if ([selection count] < 1) { return; } enumerator = [selection objectEnumerator]; while ((subview = [enumerator nextObject]) != nil) { superview = [subview superview]; rect = NSUnionRect(rect, [subview frame]); [subview deactivate]; } box = [[NSBox alloc] initWithFrame: NSZeroRect]; [box setFrameFromContentFrame: rect]; [document attachObject: box toParent: _editedObject]; [superview addSubview: box]; enumerator = [selection objectEnumerator]; while ((subview = [enumerator nextObject]) != nil) { NSPoint frameOrigin; [box addSubview: [subview editedObject]]; frameOrigin = [[subview editedObject] frame].origin; frameOrigin.x -= rect.origin.x; frameOrigin.y -= rect.origin.y; [[subview editedObject] setFrameOrigin: frameOrigin]; [document attachObject: [subview editedObject] toParent: box]; [subview close]; } editor = (GormViewEditor *)[document editorForObject: box inEditor: self create: YES]; [self selectObjects: [NSArray arrayWithObject: editor]]; } - (void) groupSelectionInView { NSEnumerator *enumerator = nil; GormViewEditor *subview = nil; NSView *view = nil; NSRect rect = NSZeroRect; GormViewEditor *editor = nil; NSView *superview = nil; if ([selection count] < 1) { return; } enumerator = [selection objectEnumerator]; while ((subview = [enumerator nextObject]) != nil) { superview = [subview superview]; rect = NSUnionRect(rect, [subview frame]); [subview deactivate]; } view = [[NSView alloc] initWithFrame: NSZeroRect]; [view setFrame: rect]; [superview addSubview: view]; [document attachObject: view toParent: _editedObject]; enumerator = [selection objectEnumerator]; while ((subview = [enumerator nextObject]) != nil) { NSPoint frameOrigin; [view addSubview: [subview editedObject]]; frameOrigin = [[subview editedObject] frame].origin; frameOrigin.x -= rect.origin.x; frameOrigin.y -= rect.origin.y; [[subview editedObject] setFrameOrigin: frameOrigin]; [document attachObject: [subview editedObject] toParent: view]; [subview close]; } editor = (GormViewEditor *)[document editorForObject: view inEditor: self create: YES]; [self selectObjects: [NSArray arrayWithObject: editor]]; } - (void) groupSelectionInScrollView { NSEnumerator *enumerator = nil; GormViewEditor *subview = nil; NSView *view = nil; NSScrollView *scrollView = nil; NSRect rect = NSZeroRect; GormViewEditor *editor = nil; NSView *superview = nil; if ([selection count] < 1) { return; } // if there is more than one view we must join them together. if([selection count] > 1) { // deactivate the editor for each subview. enumerator = [selection objectEnumerator]; while ((subview = [enumerator nextObject]) != nil) { superview = [subview superview]; rect = NSUnionRect(rect, [subview frame]); [subview deactivate]; } // create the containing view. view = [[NSView alloc] initWithFrame: NSMakeRect(0, 0, rect.size.width, rect.size.height)]; // create scroll view now. scrollView = [[NSScrollView alloc] initWithFrame: rect]; [scrollView setHasHorizontalScroller: YES]; [scrollView setHasVerticalScroller: YES]; [scrollView setBorderType: NSBezelBorder]; // attach the scroll view... [document attachObject: scrollView toParent: _editedObject]; [superview addSubview: scrollView]; [scrollView setDocumentView: view]; // add the views. enumerator = [selection objectEnumerator]; while ((subview = [enumerator nextObject]) != nil) { NSPoint frameOrigin; [view addSubview: [subview editedObject]]; frameOrigin = [[subview editedObject] frame].origin; frameOrigin.x -= rect.origin.x; frameOrigin.y -= rect.origin.y; [[subview editedObject] setFrameOrigin: frameOrigin]; [document attachObject: [subview editedObject] toParent: scrollView]; [subview close]; } } else if([selection count] == 1) { NSPoint frameOrigin; id v = nil; // since we have one view, it will be used as the document view. subview = [selection objectAtIndex: 0]; superview = [subview superview]; rect = NSUnionRect(rect, [subview frame]); [subview deactivate]; // create scroll view now. scrollView = [[NSScrollView alloc] initWithFrame: rect]; [scrollView setHasHorizontalScroller: YES]; [scrollView setHasVerticalScroller: YES]; [scrollView setBorderType: NSBezelBorder]; // attach the scroll view... [document attachObject: scrollView toParent: _editedObject]; [superview addSubview: scrollView]; // add the view v = [subview editedObject]; [scrollView setDocumentView: v]; // set the origin.. frameOrigin = [v frame].origin; frameOrigin.x -= rect.origin.x; frameOrigin.y -= rect.origin.y; [v setFrameOrigin: frameOrigin]; [subview close]; } editor = (GormViewEditor *)[document editorForObject: scrollView inEditor: self create: YES]; [self selectObjects: [NSArray arrayWithObject: editor]]; } @class GormBoxEditor; @class GormSplitViewEditor; @class GormScrollViewEditor; - (void) _addViewToDocument: (NSView *)view { NSView *par = [view superview]; if([par isKindOfClass: [GormViewEditor class]]) { par = [(GormViewEditor *)par editedObject]; } [document attachObject: view toParent: par]; } - (void) ungroup { NSView *toUngroup; if ([selection count] != 1) return; NSDebugLog(@"ungroup called"); toUngroup = [selection objectAtIndex: 0]; NSDebugLog(@"toUngroup = %@",[toUngroup description]); if ([toUngroup respondsToSelector: @selector(destroyAndListSubviews)]) { id contentView = toUngroup; id eo = [contentView editedObject]; NSMutableArray *newSelection = [NSMutableArray array]; NSArray *views; NSInteger i; views = [contentView destroyAndListSubviews]; for (i = 0; i < [views count]; i++) { id v = [views objectAtIndex: i]; [_editedObject addSubview: v]; [self _addViewToDocument: v]; [newSelection addObject: [document editorForObject: v inEditor: self create: YES]]; } [contentView close]; [self selectObjects: newSelection]; [document detachObject: eo]; [eo removeFromSuperview]; } } - (void) pasteInView: (NSView *)view { NSPasteboard *pb = [NSPasteboard generalPasteboard]; NSMutableArray *array = [NSMutableArray array]; NSArray *views; NSEnumerator *enumerator; NSView *sub; /* * Ask the document to get the copied views from the pasteboard and add * them to it's collection of known objects. */ views = [document pasteType: IBViewPboardType fromPasteboard: pb parent: _editedObject]; /* * Now make all the views subviews of ourself. */ enumerator = [views objectEnumerator]; while ((sub = [enumerator nextObject]) != nil) { if ([sub isKindOfClass: [NSView class]] == YES) { // // Correct the frame if it is outside of the containing view. // this prevents issues where the subview is placed outside the // viewable region of the superview. // if(NSContainsRect([view frame], [sub frame]) == NO) { NSRect newFrame = [sub frame]; newFrame.origin.x = 0; newFrame.origin.y = 0; [sub setFrame: newFrame]; } [view addSubview: sub]; [self _addViewToDocument: sub]; [array addObject: [document editorForObject: sub inEditor: self create: YES]]; } } [self selectObjects: array]; } @end gorm-1.2.24/GormCore/GormImageInspector.m0000644000000000000000000000246213410616261016677 0ustar rootroot/* All Rights reserved */ #include #include "GormImageInspector.h" #include "GormPrivate.h" #include "GormImage.h" @implementation GormImageInspector + (void) initialize { if (self == [GormImageInspector class]) { } } - (id) init { self = [super init]; if (self != nil) { // load the gui... if (![NSBundle loadNibNamed: @"GormImageInspector" owner: self]) { NSLog(@"Could not open gorm GormImageInspector"); return nil; } else { [[NSNotificationCenter defaultCenter] addObserver: self selector: @selector(handleNotification:) name: IBSelectionChangedNotification object: nil]; } } return self; } - (void) dealloc { [[NSNotificationCenter defaultCenter] removeObserver: self]; [super dealloc]; } - (void) handleNotification: (NSNotification*)aNotification { } - (void) setObject: (id)anObject { NSImage *image = [anObject normalImage]; NSSize size = [image size]; [super setObject: anObject]; [imageView setImageAlignment: NSImageAlignCenter]; [imageView setImageFrameStyle: NSImageFrameGrayBezel]; [imageView setImageScaling: NSScaleNone]; [imageView setImage: [anObject image]]; [name setStringValue: [image name]]; [width setDoubleValue: size.width]; [height setDoubleValue: size.height]; } @end gorm-1.2.24/GormCore/GormControlEditor.m0000644000000000000000000004166113410616261016561 0ustar rootroot/* GormControlEditor.m * * Copyright (C) 2002 Free Software Foundation, Inc. * * Author: Pierre-Yves Rivaille * Date: 2002 * * This file is part of GNUstep. * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 3 of the License, or * (at your option) any later version. * * This program 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 General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02111 USA. */ #include #include #include #include "GormPrivate.h" #include "GormViewWithSubviewsEditor.h" #include "GormControlEditor.h" #include "GormPlacementInfo.h" #include "GormViewKnobs.h" #define _EO ((NSControl *)_editedObject) @class GormWindowEditor; @implementation NSControl (IBObjectAdditions) - (NSString*) editorClassName { return @"GormControlEditor"; } @end @interface GormViewEditor (Private) - (void) _displayFrameWithHint: (NSRect) frame withPlacementInfo: (GormPlacementInfo*)gpi; - (void) _initializeHintWithInfo: (GormPlacementInfo*) gpi; @end @interface GormControlEditor (IntelligentPlacement) - (void) _altDisplayFrame: (NSRect) frame withPlacementInfo: (GormPlacementInfo*)gpi; - (void) _displayFrame: (NSRect) frame withPlacementInfo: (GormPlacementInfo*) gpi; @end @implementation GormControlEditor - (void) _altDisplayFrame: (NSRect) frame withPlacementInfo: (GormPlacementInfo*)gpi { NSSize size = [self frame].size; NSSize constrainedSize; NSInteger col; NSInteger row; if (gpi->firstPass == NO) [gpi->resizingIn displayRect: gpi->oldRect]; else gpi->firstPass = NO; col = frame.size.width / size.width; row = frame.size.height / size.height; if (col < 1) col = 1; if (row < 1) row = 1; constrainedSize.width = col * size.width; constrainedSize.height = row * size.height; switch (gpi->knob) { case IBBottomLeftKnobPosition: case IBMiddleLeftKnobPosition: case IBTopLeftKnobPosition: frame.origin.x = NSMaxX(frame) - constrainedSize.width; frame.size.width = constrainedSize.width; break; case IBTopRightKnobPosition: case IBMiddleRightKnobPosition: case IBBottomRightKnobPosition: frame.size.width = constrainedSize.width; break; case IBTopMiddleKnobPosition: case IBBottomMiddleKnobPosition: case IBNoneKnobPosition: break; } switch (gpi->knob) { case IBBottomLeftKnobPosition: case IBBottomRightKnobPosition: case IBBottomMiddleKnobPosition: frame.origin.y = NSMaxY(frame) - constrainedSize.height; frame.size.height = constrainedSize.height; break; case IBTopMiddleKnobPosition: case IBTopRightKnobPosition: case IBTopLeftKnobPosition: frame.size.height = constrainedSize.height; break; case IBMiddleLeftKnobPosition: case IBMiddleRightKnobPosition: case IBNoneKnobPosition: break; } GormShowFrameWithKnob(frame, gpi->knob); gpi->lastFrame = frame; gpi->oldRect = GormExtBoundsForRect(frame); gpi->oldRect.origin.x--; gpi->oldRect.origin.y--; gpi->oldRect.size.width += 2; gpi->oldRect.size.height += 2; } - (void) _displayFrame: (NSRect) frame withPlacementInfo: (GormPlacementInfo*) gpi { NSSize minSize; if (gpi->firstPass == NO) [gpi->resizingIn displayRect: gpi->oldRect]; else gpi->firstPass = NO; minSize = [[_EO cell] cellSize]; if (frame.size.width < minSize.width) { switch (gpi->knob) { case IBBottomLeftKnobPosition: case IBMiddleLeftKnobPosition: case IBTopLeftKnobPosition: frame.origin.x = NSMaxX([self frame]) - minSize.width; frame.size.width = minSize.width; break; case IBTopRightKnobPosition: case IBMiddleRightKnobPosition: case IBBottomRightKnobPosition: frame.size.width = minSize.width; break; case IBTopMiddleKnobPosition: case IBBottomMiddleKnobPosition: case IBNoneKnobPosition: break; } } if (frame.size.height < minSize.height) { switch (gpi->knob) { case IBBottomLeftKnobPosition: case IBBottomRightKnobPosition: case IBBottomMiddleKnobPosition: frame.origin.y = NSMaxY([self frame]) - minSize.height; frame.size.height = minSize.height; break; case IBTopMiddleKnobPosition: case IBTopRightKnobPosition: case IBTopLeftKnobPosition: frame.size.height = minSize.height; break; case IBMiddleLeftKnobPosition: case IBMiddleRightKnobPosition: case IBNoneKnobPosition: break; } } GormShowFrameWithKnob(frame, gpi->knob); gpi->lastFrame = frame; gpi->oldRect = GormExtBoundsForRect(frame); gpi->oldRect.origin.x--; gpi->oldRect.origin.y--; gpi->oldRect.size.width += 2; gpi->oldRect.size.height += 2; } #undef MIN #undef MAX #define MIN(a,b) (a>b?b:a) #define MAX(a,b) (a>b?a:b) - (void) _displayFrameWithHint: (NSRect) frame withPlacementInfo: (GormPlacementInfo*)gpi { float leftOfFrame; float rightOfFrame; float topOfFrame; float bottomOfFrame; NSInteger i; NSInteger count; NSInteger lastDistance; NSInteger minimum = 10; BOOL leftEmpty = YES; BOOL rightEmpty = YES; BOOL topEmpty = YES; BOOL bottomEmpty = YES; float bestLeftPosition = 0; float bestRightPosition = 0; float bestTopPosition = 0; float bestBottomPosition = 0; float leftStart = 0; float rightStart = 0; float topStart = 0; float bottomStart = 0; float leftEnd = 0; float rightEnd = 0; float topEnd = 0; float bottomEnd = 0; NSSize minSize; NSMutableArray *bests; minSize = [[_EO cell] cellSize]; if (gpi->hintInitialized == NO) { [self _initializeHintWithInfo: gpi]; } { if (gpi->firstPass == NO) [gpi->resizingIn displayRect: gpi->oldRect]; else gpi->firstPass = NO; } { [gpi->resizingIn setNeedsDisplayInRect: gpi->lastLeftRect]; [[self window] displayIfNeeded]; gpi->lastLeftRect = NSZeroRect; } { [gpi->resizingIn setNeedsDisplayInRect: gpi->lastRightRect]; [[self window] displayIfNeeded]; gpi->lastRightRect = NSZeroRect; } { [gpi->resizingIn setNeedsDisplayInRect: gpi->lastTopRect]; [[self window] displayIfNeeded]; gpi->lastTopRect = NSZeroRect; } { [gpi->resizingIn setNeedsDisplayInRect: gpi->lastBottomRect]; [[self window] displayIfNeeded]; gpi->lastBottomRect = NSZeroRect; } if (frame.size.width < minSize.width) { switch (gpi->knob) { case IBBottomLeftKnobPosition: case IBMiddleLeftKnobPosition: case IBTopLeftKnobPosition: frame.origin.x = NSMaxX([self frame]) - minSize.width; frame.size.width = minSize.width; break; case IBTopRightKnobPosition: case IBMiddleRightKnobPosition: case IBBottomRightKnobPosition: frame.size.width = minSize.width; break; case IBTopMiddleKnobPosition: case IBBottomMiddleKnobPosition: case IBNoneKnobPosition: break; } } if (frame.size.height < minSize.height) { switch (gpi->knob) { case IBBottomLeftKnobPosition: case IBBottomRightKnobPosition: case IBBottomMiddleKnobPosition: frame.origin.y = NSMaxY([self frame]) - minSize.height; frame.size.height = minSize.height; break; case IBTopMiddleKnobPosition: case IBTopRightKnobPosition: case IBTopLeftKnobPosition: frame.size.height = minSize.height; break; case IBMiddleLeftKnobPosition: case IBMiddleRightKnobPosition: case IBNoneKnobPosition: break; } } leftOfFrame = NSMinX(frame); rightOfFrame = NSMaxX(frame); topOfFrame = NSMaxY(frame); bottomOfFrame = NSMinY(frame); if (gpi->knob == IBTopLeftKnobPosition || gpi->knob == IBMiddleLeftKnobPosition || gpi->knob == IBBottomLeftKnobPosition) { bests = [NSMutableArray arrayWithCapacity: 4]; minimum = 6; count = [gpi->leftHints count]; for ( i = 0; i < count; i++ ) { lastDistance = [[gpi->leftHints objectAtIndex: i] distanceToFrame: frame]; if ((lastDistance < minimum) && (rightOfFrame - [[gpi->leftHints objectAtIndex: i] position] >= minSize.width)) { bests = [NSMutableArray arrayWithCapacity: 4]; [bests addObject: [gpi->leftHints objectAtIndex: i]]; minimum = lastDistance; bestLeftPosition = [[gpi->leftHints objectAtIndex: i] position]; leftEmpty = NO; } else if ((lastDistance == minimum) && (leftEmpty == NO) && ([[gpi->leftHints objectAtIndex: i] position] == bestLeftPosition)) [bests addObject: [gpi->leftHints objectAtIndex: i]]; } count = [bests count]; if (count >= 1) { leftStart = NSMinY([[bests objectAtIndex: 0] frame]); leftEnd = NSMaxY([[bests objectAtIndex: 0] frame]); for ( i = 1; i < count; i++ ) { leftStart = MIN(NSMinY([[bests objectAtIndex: i] frame]), leftStart); leftEnd = MAX(NSMaxY([[bests objectAtIndex: i] frame]), leftEnd); } leftOfFrame = bestLeftPosition; } } if (gpi->knob == IBTopRightKnobPosition || gpi->knob == IBMiddleRightKnobPosition || gpi->knob == IBBottomRightKnobPosition) { bests = [NSMutableArray arrayWithCapacity: 4]; minimum = 6; count = [gpi->rightHints count]; for ( i = 0; i < count; i++ ) { lastDistance = [[gpi->rightHints objectAtIndex: i] distanceToFrame: frame]; if (lastDistance < minimum && ([[gpi->rightHints objectAtIndex: i] position] - leftOfFrame >= minSize.width)) { bests = [NSMutableArray arrayWithCapacity: 4]; [bests addObject: [gpi->rightHints objectAtIndex: i]]; minimum = lastDistance; bestRightPosition = [[gpi->rightHints objectAtIndex: i] position]; rightEmpty = NO; } else if ((lastDistance == minimum) && (rightEmpty == NO) && ([[gpi->rightHints objectAtIndex: i] position] == bestRightPosition)) [bests addObject: [gpi->rightHints objectAtIndex: i]]; } count = [bests count]; if (count >= 1) { rightStart = NSMinY([[bests objectAtIndex: 0] frame]); rightEnd = NSMaxY([[bests objectAtIndex: 0] frame]); for ( i = 1; i < count; i++ ) { rightStart = MIN(NSMinY([[bests objectAtIndex: i] frame]), rightStart); rightEnd = MAX(NSMaxY([[bests objectAtIndex: i] frame]), rightEnd); } rightOfFrame = bestRightPosition; } } if (gpi->knob == IBTopRightKnobPosition || gpi->knob == IBTopLeftKnobPosition || gpi->knob == IBTopMiddleKnobPosition) { bests = [NSMutableArray arrayWithCapacity: 4]; minimum = 6; count = [gpi->topHints count]; for ( i = 0; i < count; i++ ) { lastDistance = [[gpi->topHints objectAtIndex: i] distanceToFrame: frame]; if (lastDistance < minimum && ([[gpi->topHints objectAtIndex: i] position] - bottomOfFrame >= minSize.height)) { bests = [NSMutableArray arrayWithCapacity: 4]; [bests addObject: [gpi->topHints objectAtIndex: i]]; minimum = lastDistance; bestTopPosition = [[gpi->topHints objectAtIndex: i] position]; topEmpty = NO; } else if ((lastDistance == minimum) && (topEmpty == NO) && ([[gpi->topHints objectAtIndex: i] position] == bestTopPosition)) [bests addObject: [gpi->topHints objectAtIndex: i]]; } count = [bests count]; if (count >= 1) { topStart = NSMinX([[bests objectAtIndex: 0] frame]); topEnd = NSMaxX([[bests objectAtIndex: 0] frame]); for ( i = 1; i < count; i++ ) { topStart = MIN(NSMinX([[bests objectAtIndex: i] frame]), topStart); topEnd = MAX(NSMaxX([[bests objectAtIndex: i] frame]), topEnd); } topOfFrame = bestTopPosition; } } if (gpi->knob == IBBottomRightKnobPosition || gpi->knob == IBBottomLeftKnobPosition || gpi->knob == IBBottomMiddleKnobPosition) { bests = [NSMutableArray arrayWithCapacity: 4]; minimum = 6; count = [gpi->bottomHints count]; for ( i = 0; i < count; i++ ) { lastDistance = [[gpi->bottomHints objectAtIndex: i] distanceToFrame: frame]; if (lastDistance < minimum && (topOfFrame - [[gpi->bottomHints objectAtIndex: i] position] >= minSize.height)) { bests = [NSMutableArray arrayWithCapacity: 4]; [bests addObject: [gpi->bottomHints objectAtIndex: i]]; minimum = lastDistance; bestBottomPosition = [[gpi->bottomHints objectAtIndex: i] position]; bottomEmpty = NO; } else if ((lastDistance == minimum) && (bottomEmpty == NO) && ([[gpi->bottomHints objectAtIndex: i] position] == bestBottomPosition)) [bests addObject: [gpi->bottomHints objectAtIndex: i]]; } count = [bests count]; if (count >= 1) { bottomStart = NSMinX([[bests objectAtIndex: 0] frame]); bottomEnd = NSMaxX([[bests objectAtIndex: 0] frame]); for ( i = 1; i < count; i++ ) { bottomStart = MIN(NSMinX([[bests objectAtIndex: i] frame]), bottomStart); bottomEnd = MAX(NSMaxX([[bests objectAtIndex: i] frame]), bottomEnd); } bottomOfFrame = bestBottomPosition; } } gpi->hintFrame = NSMakeRect (leftOfFrame, bottomOfFrame, rightOfFrame - leftOfFrame, topOfFrame - bottomOfFrame); { [[NSColor redColor] set]; if (!leftEmpty) { leftStart = MIN(NSMinY(gpi->hintFrame), leftStart); leftEnd = MAX(NSMaxY(gpi->hintFrame), leftEnd); gpi->lastLeftRect = NSMakeRect(bestLeftPosition - 1, leftStart, 2, leftEnd - leftStart); NSRectFill(gpi->lastLeftRect); } if (!rightEmpty) { rightStart = MIN(NSMinY(gpi->hintFrame), rightStart); rightEnd = MAX(NSMaxY(gpi->hintFrame), rightEnd); gpi->lastRightRect = NSMakeRect(bestRightPosition - 1, rightStart, 2, rightEnd - rightStart); NSRectFill(gpi->lastRightRect); } if (!topEmpty) { topStart = MIN(NSMinX(gpi->hintFrame), topStart); topEnd = MAX(NSMaxX(gpi->hintFrame), topEnd); gpi->lastTopRect = NSMakeRect(topStart, bestTopPosition - 1, topEnd - topStart, 2); NSRectFill(gpi->lastTopRect); } if (!bottomEmpty) { bottomStart = MIN(NSMinX(gpi->hintFrame), bottomStart); bottomEnd = MAX(NSMaxX(gpi->hintFrame), bottomEnd); gpi->lastBottomRect = NSMakeRect(bottomStart, bestBottomPosition - 1, bottomEnd - bottomStart, 2); NSRectFill(gpi->lastBottomRect); } } GormShowFrameWithKnob(gpi->hintFrame, gpi->knob); gpi->oldRect = GormExtBoundsForRect(gpi->hintFrame); gpi->oldRect.origin.x--; gpi->oldRect.origin.y--; gpi->oldRect.size.width += 2; gpi->oldRect.size.height += 2; } - (void) updateResizingWithFrame: (NSRect) frame andEvent: (NSEvent *)theEvent andPlacementInfo: (GormPlacementInfo*) gpi { if ([theEvent modifierFlags] & NSAlternateKeyMask) [self _altDisplayFrame: frame withPlacementInfo: gpi]; else if ([theEvent modifierFlags] & NSShiftKeyMask) [self _displayFrame: frame withPlacementInfo: gpi]; else [self _displayFrameWithHint: frame withPlacementInfo: gpi]; } - (void) validateFrame: (NSRect) frame withEvent: (NSEvent *) theEvent andPlacementInfo: (GormPlacementInfo*)gpi { frame = gpi->lastFrame; if ([theEvent modifierFlags] & NSAlternateKeyMask) { NSSize cellSize = [self frame].size; id editor; NSInteger col; NSInteger row; NSMatrix *matrix; col = gpi->lastFrame.size.width / cellSize.width; row = gpi->lastFrame.size.height / cellSize.height; // let's morph into a matrix matrix = [[NSMatrix alloc] initWithFrame: gpi->lastFrame mode: NSRadioModeMatrix prototype: [_EO cell] numberOfRows: row numberOfColumns: col]; [matrix setIntercellSpacing: NSMakeSize(0, 0)]; [matrix setFrame: gpi->lastFrame]; RETAIN(self); [[self superview] addSubview: matrix]; [parent selectObjects: [NSArray arrayWithObject: self]]; [parent deleteSelection]; [document attachObject: matrix toParent: _EO]; editor = [document editorForObject: matrix inEditor: parent create: YES]; [parent selectObjects: [NSArray arrayWithObject: editor]]; RELEASE(self); } else if ([theEvent modifierFlags] & NSShiftKeyMask) { [self setFrame: frame]; } else { [super validateFrame: frame withEvent: theEvent andPlacementInfo: gpi]; } } @end @implementation NSTextField (IBObjectAdditions) - (NSString*) editorClassName { return @"GormTextFieldEditor"; } @end @interface GormTextFieldEditor : GormControlEditor @end @implementation GormTextFieldEditor - (void) mouseDown: (NSEvent*)theEvent { // double-clicked -> let's edit if (([theEvent clickCount] == 2) && [parent isOpened]) { [self editTextField: _editedObject withEvent: theEvent]; [[NSNotificationCenter defaultCenter] postNotificationName: IBSelectionChangedNotification object: parent]; } else { [super mouseDown: theEvent]; } } @end gorm-1.2.24/GormCore/GormFunctions.m0000644000000000000000000002364413410616261015743 0ustar rootroot/* GormFunctions.m * * Copyright (C) 2004 Free Software Foundation, Inc. * * Author: Gregory John Casamento * Date: 2004 * * This file is part of GNUstep. * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 3 of the License, or * (at your option) any later version. * * This program 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 General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02111 USA. */ #include "GormFunctions.h" #include "GormViewEditor.h" #include #include #include #include #include #include #include "GormClassPanelController.h" // find all subitems for the given items... void findAllWithArray(id item, NSMutableArray *array) { [array addObject: item]; if([item isKindOfClass: [NSMenuItem class]]) { if([item hasSubmenu]) { NSMenu *submenu = [item submenu]; NSArray *items = [submenu itemArray]; NSEnumerator *e = [items objectEnumerator]; id i = nil; [array addObject: submenu]; while((i = [e nextObject]) != nil) { findAllWithArray(i, array); } } } } // find all sub items for the selections... NSArray* findAllSubmenus(NSArray *array) { NSEnumerator *e = [array objectEnumerator]; id i = nil; NSMutableArray *results = [[NSMutableArray alloc] init]; while((i = [e nextObject]) != nil) { findAllWithArray(i, results); } return results; } NSArray* findAll(NSMenu *menu) { NSArray *items = [menu itemArray]; return findAllSubmenus(items); } void subviewsForView(NSView *view, NSMutableArray *array) { if(view != nil) { NSArray *subviews = [view subviews]; NSEnumerator *en = [subviews objectEnumerator]; NSView *aView = nil; // if it's not me and it's not and editor, include it in the list of // things to be deleted from the document. if(![view isKindOfClass: [GormViewEditor class]]) { [array addObject: view]; } while((aView = [en nextObject]) != nil) { subviewsForView( aView, array ); } } } NSArray *allSubviews(NSView *view) { NSMutableArray *views = [NSMutableArray array]; subviewsForView( view, views ); [views removeObject: view]; return views; } // cut the text... code taken from GWorkspace, by Enrico Sersale static inline NSString *cutText(NSString *filename, id label, NSInteger lenght) { NSString *cutname = nil; NSString *reststr = nil; NSString *dots; NSFont *labfont; NSDictionary *attr; float w, cw, dotslenght; NSInteger i; cw = 0; labfont = [label font]; attr = [NSDictionary dictionaryWithObjectsAndKeys: labfont, NSFontAttributeName, nil]; dots = @"..."; dotslenght = [dots sizeWithAttributes: attr].width; w = [filename sizeWithAttributes: attr].width; if (w > lenght) { i = 0; while (cw <= (lenght - dotslenght)) { if (i == [filename cStringLength]) { break; } cutname = [filename substringToIndex: i]; reststr = [filename substringFromIndex: i]; cw = [cutname sizeWithAttributes: attr].width; i++; } if ([cutname isEqual: filename] == NO) { if ([reststr cStringLength] <= 3) { return filename; } else { cutname = [cutname stringByAppendingString: dots]; } } else { return filename; } } else { return filename; } return cutname; } NSString *cutFileLabelText(NSString *filename, id label, NSInteger length) { if (length > 0) { return cutText(filename, label, length); } return filename; } NSSize defaultCellSize() { NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults]; NSInteger width = [defaults integerForKey: @"CellSizeWidth"]; NSSize size = NSMakeSize(width, 72); return size; } NSColor *colorFromDict(NSDictionary *dict) { if(dict != nil) { return [NSColor colorWithCalibratedRed: [[dict objectForKey: @"red"] floatValue] green: [[dict objectForKey: @"green"] floatValue] blue: [[dict objectForKey: @"blue"] floatValue] alpha: [[dict objectForKey: @"alpha"] floatValue]]; } return nil; } NSDictionary *colorToDict(NSColor *color) { if(color != nil) { NSMutableDictionary *dict = [NSMutableDictionary dictionary]; CGFloat red, green, blue, alpha; NSNumber *fred = nil; NSNumber *fgreen = nil; NSNumber *fblue = nil; NSNumber *falpha = nil; [color getRed: &red green: &green blue: &blue alpha: &alpha]; fred = [NSNumber numberWithFloat: red]; fgreen = [NSNumber numberWithFloat: green]; fblue = [NSNumber numberWithFloat: blue]; falpha = [NSNumber numberWithFloat: alpha]; [dict setObject: fred forKey: @"red"]; [dict setObject: fgreen forKey: @"green"]; [dict setObject: fblue forKey: @"blue"]; [dict setObject: falpha forKey: @"alpha"]; return dict; } return nil; } NSArray *systemImagesList() { NSString *lib = [NSSearchPathForDirectoriesInDomains(NSLibraryDirectory, NSSystemDomainMask, YES) lastObject]; NSString *path = [lib stringByAppendingPathComponent: @"Images"]; NSArray *contents = [[NSFileManager defaultManager] directoryContentsAtPath: path]; NSEnumerator *en = [contents objectEnumerator]; NSMutableArray *result = [NSMutableArray array]; id obj; NSArray *fileTypes = [NSImage imageFileTypes]; while((obj = [en nextObject]) != nil) { if([fileTypes containsObject: [obj pathExtension]]) { NSString *pathString = [path stringByAppendingPathComponent: obj]; [result addObject: pathString]; } } return result; } NSArray *systemSoundsList() { NSString *lib = [NSSearchPathForDirectoriesInDomains(NSLibraryDirectory, NSSystemDomainMask, YES) lastObject]; NSString *path = [lib stringByAppendingPathComponent: @"Sounds"]; NSArray *contents = [[NSFileManager defaultManager] directoryContentsAtPath: path]; NSEnumerator *en = [contents objectEnumerator]; NSMutableArray *result = [NSMutableArray array]; id obj; NSArray *fileTypes = [NSSound soundUnfilteredFileTypes]; while((obj = [en nextObject]) != nil) { if([fileTypes containsObject: [obj pathExtension]]) { NSString *pathString = [path stringByAppendingPathComponent: obj]; [result addObject: pathString]; } } return result; } int appVersion(long a, long b, long c) { return (((a) << 16)+((b) << 8) + (c)); } NSString *promptForClassName(NSString *title, NSArray *classes) { GormClassPanelController *cpc = AUTORELEASE([[GormClassPanelController alloc] initWithTitle: title classList: classes]); return [cpc runModal]; } NSString *identifierString(NSString *str) { NSCharacterSet *illegal = [[NSCharacterSet characterSetWithCharactersInString: @"_0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz"] invertedSet]; NSCharacterSet *numeric = [NSCharacterSet characterSetWithCharactersInString: @"0123456789"]; NSCharacterSet *white = [NSCharacterSet whitespaceAndNewlineCharacterSet]; NSRange r; NSMutableString *result; if (str == nil) { return nil; } result = [NSMutableString stringWithString: str]; r = [result rangeOfCharacterFromSet: illegal]; while (r.length > 0) { [result deleteCharactersInRange: r]; r = [result rangeOfCharacterFromSet: illegal]; } r = [result rangeOfCharacterFromSet: numeric]; while (r.length > 0 && r.location == 0) { [result deleteCharactersInRange: r]; r = [result rangeOfCharacterFromSet: numeric]; } r = [result rangeOfCharacterFromSet: white]; while (r.length > 0 && r.location == 0) { [result deleteCharactersInRange: r]; r = [result rangeOfCharacterFromSet: white]; } // check the result's length. if([result length] == 0) { result = [@"dummyIdentifier" mutableCopy]; } return result; } NSString *formatAction(NSString *action) { NSString *temp = identifierString(action); NSString *identifier = [temp stringByAppendingString: @":"]; return identifier; } NSString *formatOutlet(NSString *outlet) { NSString *identifier = identifierString(outlet); return identifier; } /** * This method returns an array listing the names of all the * instance methods available to obj, whether they * belong to the class of obj or one of its superclasses.
* If obj is a class, this returns the class methods.
* Returns nil if obj is nil. */ NSArray *_GSObjCMethodNamesForClass(Class class, BOOL collect) { if (class == nil) { return nil; } return GSObjCMethodNames((id)&class, collect); } /** * This method returns an array listing the names of all the * instance variables present in the instance obj, whether they * belong to the class of obj or one of its superclasses.
* Returns nil if obj is nil. */ NSArray *_GSObjCVariableNames(Class class, BOOL collect) { if (class == nil) { return nil; } return GSObjCVariableNames((id)&class, collect); } NSRect minimalContainerFrame(NSArray *views) { NSEnumerator *en = [views objectEnumerator]; id o = nil; float w = 0.0; float h = 0.0; while((o = [en nextObject]) != nil) { NSRect frame = [o frame]; float nw = frame.origin.x + frame.size.width; float nh = frame.origin.y + frame.size.height; if(nw > w) w = nw; if(nh > h) h = nh; } return NSMakeRect(0,0,w,h); } gorm-1.2.24/GormCore/NSFontManager+GormExtensions.h0000644000000000000000000000255113410616261020555 0ustar rootroot/* NSFontManager+GormExtensions.h * * Copyright (C) 2005 Free Software Foundation, Inc. * * Author: Gregory John Casamento * Date: 2005 * * This file is part of GNUstep. * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 3 of the License, or * (at your option) any later version. * * This program 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 General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02111 USA. */ #ifndef INCLUDED_NSFontManager_GormExtensions_h #define INCLUDED_NSFontManager_GormExtensions_h #include @interface NSFontManager (GormExtensions) /** * Override for sendAction in NSFontManager. This method calls the action on the * last edited object if the attempt to send the action to the first responder is * unsuccessful. This allows the font to be more easily set. */ - (BOOL) sendAction; @end #endif gorm-1.2.24/GormCore/GormFilePrefsManager.m0000644000000000000000000002235613426745022017151 0ustar rootroot/** GormFilePrefsManager Sets the information about the .gorm file's version. This allows a file to be saved as an older version of the .gorm format so that older releases can still use .gorm files created by people who have the latest GNUstep and Gorm version. Copyright (C) 2003 Free Software Foundation, Inc. Author: Gregory John Casamento Date: July 2003. 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 3 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; If not, write to the Free Software Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ /* All Rights reserved */ #include #include #include "GormFilePrefsManager.h" #include "GormFunctions.h" #include "GormDocument.h" #include #include #include #include NSString *formatVersion(NSInteger version) { NSInteger bit16 = 65536; NSInteger bit8 = 256; NSInteger maj = 0; NSInteger min = 0; NSInteger pch = 0; NSInteger v = version; // pull the version fromt the number maj = (int)((float)v / (float)bit16); v -= (bit16 * maj); min = (int)((float)v / (float)bit8); v -= (bit8 * min); pch = v; return [NSString stringWithFormat: @"%ld.%ld.%ld / %ld",(long)maj,(long)min,(long)pch,(long)version]; } @implementation GormFilePrefsManager // initializers... - (id) init { if((self = [super init]) != nil) { NSBundle *bundle = [NSBundle mainBundle]; NSString *path = [bundle pathForResource: @"VersionProfiles" ofType: @"plist"]; versionProfiles = RETAIN([[NSString stringWithContentsOfFile: path] propertyList]); } return self; } - (void) dealloc { NSDebugLog(@"Deallocating..."); [iwindow performClose: self]; RELEASE(iwindow); RELEASE(versionProfiles); [super dealloc]; } + (int) currentVersion { return appVersion(1,2,24); } - (void) awakeFromNib { version = [GormFilePrefsManager currentVersion]; [gormAppVersion setStringValue: formatVersion(version)]; ASSIGN(targetVersionName, [[targetVersion selectedItem] title]); ASSIGN(archiveTypeName, [[archiveType selectedItem] title]); [self selectTargetVersion: targetVersion]; } // set class versions - (void) setClassVersions { NSEnumerator *en = [currentProfile keyEnumerator]; id className = nil; NSDebugLog(@"set the class versions to the profile selected... %@",targetVersionName); while((className = [en nextObject]) != nil) { Class cls = NSClassFromString(className); NSDictionary *info = [currentProfile objectForKey: className]; NSInteger v = [[info objectForKey: @"version"] intValue]; NSDebugLog(@"Setting version %ld for class %@",(long)v,className); [cls setVersion: v]; } } - (void) restoreClassVersions { NSDictionary *latestVersion = [versionProfiles objectForKey: @"Latest Version"]; NSEnumerator *en = [latestVersion keyEnumerator]; id className = nil; // The "Latest Version" key must always exist. NSDebugLog(@"restore the class versions to the latest version..."); while((className = [en nextObject]) != nil) { Class cls = NSClassFromString(className); NSDictionary *info = [latestVersion objectForKey: className]; NSInteger v = [[info objectForKey: @"version"] intValue]; NSDebugLog(@"Setting version %ld for class %@",(long)v,className); [cls setVersion: v]; } } // class profile - (void) loadProfile: (NSString *)profileName { NSDebugLog(@"Loading profile %@",profileName); currentProfile = [versionProfiles objectForKey: targetVersionName]; } // actions... - (void) showIncompatibilities: (id)sender { [itable reloadData]; [iwindow orderFront: self]; [iwindow center]; } - (void) selectTargetVersion: (id)sender { ASSIGN(targetVersionName, [[sender selectedItem] title]); [self loadProfile: targetVersionName]; [itable reloadData]; } - (void) selectArchiveType: (id)sender { ASSIGN(archiveTypeName, [[sender selectedItem] title]); NSDebugLog(@"Set Archive type... %@",sender); } // Loading and saving the file. - (BOOL) saveToFile: (NSString *)path { return [[self data] writeToFile: path atomically: YES]; } // Loading and saving the file. - (NSData *) data { // upon saving, update to the latest. version = [GormFilePrefsManager currentVersion]; [gormAppVersion setStringValue: formatVersion(version)]; // return the data... return [NSArchiver archivedDataWithRootObject: self]; } - (NSData *) nibDataWithOpenItems: (NSArray *)openItems { NSMutableDictionary *dict = [NSMutableDictionary dictionary]; NSRect docLocation = [[(GormDocument *)[(id)NSApp activeDocument] window] frame]; NSRect screenRect = [[NSScreen mainScreen] frame]; NSString *stringRect = [NSString stringWithFormat: @"%d %d %d %d %d %d %d %d", (int)docLocation.origin.x, (int)docLocation.origin.y, (int)docLocation.size.width, (int)docLocation.size.height, (int)screenRect.origin.x, (int)screenRect.origin.y, (int)screenRect.size.width, (int)screenRect.size.height]; // upon saving, update to the latest. version = [GormFilePrefsManager currentVersion]; [gormAppVersion setStringValue: formatVersion(version)]; [dict setObject: stringRect forKey: @"IBDocumentLocation"]; [dict setObject: @"437.0" forKey: @"IBFramework Version"]; [dict setObject: @"8I127" forKey: @"IBSystem Version"]; [dict setObject: [NSNumber numberWithBool: YES] forKey: @"IBUsesTextArchiving"]; // for now. [dict setObject: openItems forKey: @"IBOpenItems"]; return [NSPropertyListSerialization dataFromPropertyList: dict format: NSPropertyListXMLFormat_v1_0 errorDescription: NULL]; } - (int) versionOfClass: (NSString *)className { NSInteger result = -1; NSDictionary *clsProfile = [currentProfile objectForKey: className]; if(clsProfile != nil) { NSString *versionString = [clsProfile objectForKey: @"version"]; if(versionString != nil) { result = [versionString intValue]; } } return result; } - (BOOL) loadFromFile: (NSString *)path { return [self loadFromData: [NSData dataWithContentsOfFile: path]]; } - (BOOL) loadFromData: (NSData *)data { BOOL result = YES; NS_DURING { GormFilePrefsManager *object = (GormFilePrefsManager *) [NSUnarchiver unarchiveObjectWithData: data]; [gormAppVersion setStringValue: formatVersion([object version])]; version = [object version]; [targetVersion selectItemWithTitle: [object targetVersionName]]; ASSIGN(targetVersionName,[object targetVersionName]); [archiveType selectItemWithTitle: [object archiveTypeName]]; ASSIGN(archiveTypeName, [object archiveTypeName]); [self selectTargetVersion: targetVersion]; result = YES; } NS_HANDLER { NSLog(@"Problem loading info file: %@",[localException reason]); result = NO; } NS_ENDHANDLER; return result; } // encoding... - (void) encodeWithCoder: (NSCoder *)coder { [coder encodeValueOfObjCType: @encode(int) at: &version]; [coder encodeObject: targetVersionName]; [coder encodeObject: archiveTypeName]; } - (id) initWithCoder: (NSCoder *)coder { if((self = [super init]) != nil) { [coder decodeValueOfObjCType: @encode(int) at: &version]; targetVersionName = [coder decodeObject]; archiveTypeName = [coder decodeObject]; } return self; } // accessors - (int) version { return version; } - (NSString *)targetVersionName { return targetVersionName; } - (NSString *)archiveTypeName { return archiveTypeName; } - (BOOL) isLatest { return ([targetVersionName isEqual: @"Latest Version"]); } - (void) setFileTypeName: (NSString *)ft { [fileType setStringValue: ft]; } - (NSString *) fileTypeName { return [fileType stringValue]; } // Data Source - (NSInteger) numberOfRowsInTableView: (NSTableView *)aTableView { return [currentProfile count]; } - (id) tableView: (NSTableView *)aTableView objectValueForTableColumn: (NSTableColumn *)aTableColumn row: (NSInteger)rowIndex { id obj = nil; if([[aTableColumn identifier] isEqual: @"item"]) { obj = [NSString stringWithFormat: @"#%ld",(long int)rowIndex+1]; } else if([[aTableColumn identifier] isEqual: @"description"]) { NSArray *keys = [currentProfile allKeys]; NSString *key = [keys objectAtIndex: rowIndex]; NSDictionary *info = [currentProfile objectForKey: key]; obj = [info objectForKey: @"comment"]; } return obj; } - (void) tableView: (NSTableView *)aTableView setObjectValue: (id)anObject forTableColumn: (NSTableColumn *)aTableColumn row: (NSInteger)rowIndex { } @end gorm-1.2.24/GormCore/GormOutlineView.h0000644000000000000000000000636513410616261016241 0ustar rootroot/* GormOutlineView.h The outline class. Copyright (C) 2001 Free Software Foundation, Inc. Author: Gregory John Casamento Date: July 2002 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 3 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, 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ #ifndef INCLUDED_GormOutlineView_h #define INCLUDED_GormOutlineView_h #include #include @class NSTableColumn; @class NSMenuItem; typedef enum {None, Outlets, Actions} GSAttributeType; @interface GormOutlineView : NSOutlineView { float _attributeOffset; BOOL _isEditing; id _itemBeingEdited; NSTableColumn *_actionColumn; NSTableColumn *_outletColumn; GSAttributeType _edittype; NSMenuItem *_menuItem; } // Instance methods - (float)attributeOffset; - (void)setAttributeOffset: (float)offset; - (id) itemBeingEdited; - (void) setItemBeingEdited: (id)item; - (BOOL) isEditing; - (void) setIsEditing: (BOOL)flag; - (NSTableColumn *)actionColumn; - (void) setActionColumn: (NSTableColumn *)ac; - (NSTableColumn *)outletColumn; - (void) setOutletColumn: (NSTableColumn *)oc; - (NSMenuItem *)menuItem; - (void) setMenuItem: (NSMenuItem *)item; - (GSAttributeType)editType; - (void) removeItemAtRow: (int)row; - (void) reset; - (void) selectRow: (int)rowIndex; @end /* interface of GormOutlineView */ // informal protocol to define necessary methods on // GormOutlineView's data source to make information // about the class which was selected... @interface NSObject (GormOutlineViewDataSource) - (NSArray *) outlineView: (GormOutlineView *)ov actionsForItem: (id)item; - (NSArray *) outlineView: (GormOutlineView *)ov outletsForItem: (id)item; - (void)outlineView: (NSOutlineView *)anOutlineView addAction: (NSString *)action forClass: (id)item; - (void)outlineView: (NSOutlineView *)anOutlineView addOutlet: (NSString *)outlet forClass: (id)item; - (NSString *)outlineView: (NSOutlineView *)anOutlineView addNewActionForClass: (id)item; - (NSString *)outlineView: (NSOutlineView *)anOutlineView addNewOutletForClass: (id)item; @end @interface NSObject (GormOutlineViewDelegate) - (BOOL) outlineView: (GormOutlineView *)ov shouldDeleteItem: (id)item; @end // a class to hold the outlet/actions so that the // draw row method will know how to render them on // the display... @interface GormOutletActionHolder : NSObject { NSString *_name; } - initWithName: (NSString *)name; - (NSString *)getName; - (void)setName: (NSString *)name; @end #endif /* _GNUstep_H_GormOutlineView */ gorm-1.2.24/GormCore/GormViewWindow.h0000644000000000000000000000226113410616261016060 0ustar rootroot/* GormViewWindow.h * * Copyright (C) 2004 Free Software Foundation, Inc. * * Author: Gregory John Casamento * Date: 2004 * * This file is part of GNUstep. * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 3 of the License, or * (at your option) any later version. * * This program 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 General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02111 USA. */ #ifndef INCLUDED_GormViewWindow_h #define INCLUDED_GormViewWindow_h #include #include @interface GormViewWindow : NSWindow { NSView *_view; } - (id) initWithView: (NSView *)view; - (NSView *)view; - (void) setView: (NSView *)view; @end #endif gorm-1.2.24/GormCore/GormSetNameController.h0000644000000000000000000000102013410616261017346 0ustar rootroot// Author: Andrew E. Ruder // Copyright (C) 2003 by Free Software Foundation, Inc @class GormSetNameController; #ifndef GORM_SET_NAME_CONTROLLER_H #define GORM_SET_NAME_CONTROLLER_H #include @class NSButton, NSPanel, NSTextField; @interface GormSetNameController : NSObject { NSPanel *window; NSTextField *textField; NSButton *okButton; NSButton *cancelButton; } - (NSInteger)runAsModal; - (NSTextField *) textField; - (void) cancelHit: (id)sender; - (void) okHit: (id)sender; @end #endif gorm-1.2.24/GormCore/GormClassEditor.m0000644000000000000000000010457513410616261016212 0ustar rootroot/* GormClassEditor.m * * Copyright (C) 1999, 2003 Free Software Foundation, Inc. * * Author: Richard Frith-Macdonald * Author: Gregory John Casamento * Date: 1999, 2003 * * This file is part of GNUstep. * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 3 of the License, or * (at your option) any later version. * * This program 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 General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02111 USA. */ #include #include #include "GormClassEditor.h" #include "GormClassManager.h" #include "GormFunctions.h" #include "GormDocument.h" #include "GormProtocol.h" #include "GormPrivate.h" NSString *GormClassPboardType = @"GormClassPboardType"; NSString *GormSwitchViewPreferencesNotification = @"GormSwitchViewPreferencesNotification"; NSImage *outlineImage = nil; NSImage *browserImage = nil; @interface GormOutlineView (PrivateMethods) - (void) _addNewActionToObject: (id)item; - (void) _addNewOutletToObject: (id)item; @end @interface GormClassEditor (PrivateMethods) - (void) browserClick: (id)sender; - (void) toggleView: (id) sender; - (void) switchViewToDefault; - (void) handleNotification: (NSNotification *)notification; @end @implementation GormClassEditor + (void) initialize { if(self == [GormClassEditor class]) { outlineImage = [NSImage imageNamed: @"outlineView"]; browserImage = [NSImage imageNamed: @"browserView"]; } } - (GormClassEditor*) initWithDocument: (GormDocument*)doc { self = [super init]; if (self != nil) { if([NSBundle loadNibNamed: @"GormClassEditor" owner: self]) { NSNotificationCenter *nc = [NSNotificationCenter defaultCenter]; NSRect scrollRect = [classesView frame]; // = {{0, 0}, {340, 188}}; NSRect mainRect = NSMakeRect(20,0,scrollRect.size.width-20, scrollRect.size.height); NSColor *color = [NSColor colorWithCalibratedRed: 0.850980 green: 0.737255 blue: 0.576471 alpha: 1.0 ]; NSTableColumn *tableColumn; // setup the view... [self setAutoresizingMask: NSViewHeightSizable|NSViewWidthSizable]; [self setFrame: [mainView frame]]; [self addSubview: mainView]; // set up the scroll view. scrollView = [[NSScrollView alloc] initWithFrame: scrollRect]; [scrollView setHasVerticalScroller: YES]; [scrollView setHasHorizontalScroller: NO]; [scrollView setAutoresizingMask: NSViewHeightSizable|NSViewWidthSizable]; [scrollView setBorderType: NSBezelBorder]; // allocate the outline view. outlineView = [[GormOutlineView alloc] init]; [outlineView setFrame: scrollRect]; [outlineView setAutoresizingMask: NSViewHeightSizable|NSViewWidthSizable]; [scrollView setDocumentView: outlineView]; // [outlineView sizeToFit]; RELEASE(outlineView); // weak connections... document = doc; classManager = [doc classManager]; // set up the outline view... [outlineView setDataSource: self]; [outlineView setDelegate: self]; [outlineView setAutoresizesAllColumnsToFit: YES]; [outlineView setAllowsColumnResizing: NO]; [outlineView setDrawsGrid: NO]; [outlineView setIndentationMarkerFollowsCell: YES]; [outlineView setAutoresizesOutlineColumn: YES]; [outlineView setIndentationPerLevel: 10]; [outlineView setAttributeOffset: 30]; [outlineView setRowHeight: 18]; [outlineView setMenu: [(id)NSApp classMenu]]; [outlineView setBackgroundColor: color]; // add the table columns... tableColumn = [(NSTableColumn *)[NSTableColumn alloc] initWithIdentifier: @"classes"]; [[tableColumn headerCell] setStringValue: _(@"Classes")]; [tableColumn setMinWidth: 190]; [tableColumn setResizable: YES]; [tableColumn setEditable: YES]; [outlineView addTableColumn: tableColumn]; [outlineView setOutlineTableColumn: tableColumn]; RELEASE(tableColumn); tableColumn = [(NSTableColumn *)[NSTableColumn alloc] initWithIdentifier: @"outlets"]; [[tableColumn headerCell] setStringValue: _(@"Outlet")]; [tableColumn setWidth: 50]; [tableColumn setResizable: NO]; [tableColumn setEditable: NO]; [outlineView addTableColumn: tableColumn]; [outlineView setOutletColumn: tableColumn]; RELEASE(tableColumn); tableColumn = [(NSTableColumn *)[NSTableColumn alloc] initWithIdentifier: @"actions"]; [[tableColumn headerCell] setStringValue: _(@"Action")]; [tableColumn setWidth: 50]; [tableColumn setResizable: NO]; [tableColumn setEditable: NO]; [outlineView addTableColumn: tableColumn]; [outlineView setActionColumn: tableColumn]; RELEASE(tableColumn); // expand all of the items in the classesView... [outlineView expandItem: @"NSObject"]; [outlineView setFrame: scrollRect]; // allocate the NSBrowser view. browserView = [[NSBrowser alloc] initWithFrame: mainRect]; [browserView setRefusesFirstResponder:YES]; [browserView setAutoresizingMask: NSViewWidthSizable | NSViewMinYMargin]; [browserView setTitled:NO]; [browserView setMaxVisibleColumns:3]; [browserView setSeparatesColumns:NO]; [browserView setAllowsMultipleSelection:YES]; [browserView setDelegate:self]; [browserView setTarget:self]; [browserView setAction: @selector(browserClick:)]; // [browserView setDoubleAction: nil]; // @selector(doubleClick:)]; [browserView setRefusesFirstResponder:YES]; [browserView loadColumnZero]; // observe certain notifications... [nc addObserver: self selector: @selector(handleNotification:) name: GormSwitchViewPreferencesNotification object: nil]; [nc addObserver: self selector: @selector(handleNotification:) name: GormDidAddClassNotification object: nil]; // kludge to prevent it from having resize issues. [classesView setContentView: scrollView]; [classesView sizeToFit]; // switch... [self switchViewToDefault]; } else { return nil; } } return self; } + (GormClassEditor*) classEditorForDocument: (GormDocument*)doc { return AUTORELEASE([(GormClassEditor *)[self alloc] initWithDocument: doc]); } - (void) toggleView: (id) sender { id contentView = [classesView contentView]; if(contentView == browserView) { NSRect rect = [classesView frame]; [classesView setContentView: scrollView]; [outlineView setFrame: rect]; [outlineView sizeToFit]; [viewToggle setImage: browserImage]; } else if(contentView == scrollView) { [classesView setContentView: browserView]; [viewToggle setImage: outlineImage]; } [self setSelectedClassName: selectedClass]; } - (void) switchViewToDefault { NSUserDefaults *ud = [NSUserDefaults standardUserDefaults]; NSString *viewType = [ud stringForKey: @"ClassViewType"]; if([viewType isEqual: @"Outline"] || viewType == nil) { NSRect rect = [classesView frame]; [classesView setContentView: scrollView]; [outlineView setFrame: rect]; [outlineView sizeToFit]; [viewToggle setImage: browserImage]; } else if([viewType isEqual: @"Browser"]) { [classesView setContentView: browserView]; [viewToggle setImage: outlineImage]; } [self setSelectedClassName: selectedClass]; } - (void) handleNotification: (NSNotification *)notification { if([[notification name] isEqualToString: GormSwitchViewPreferencesNotification]) { [self switchViewToDefault]; } } - (void) browserClick: (id)sender { NSString *className = [[sender selectedCell] stringValue]; ASSIGN(selectedClass, className); [document setSelectionFromEditor: (id)self]; } - (void) dealloc { NSNotificationCenter *nc = [NSNotificationCenter defaultCenter]; [nc removeObserver: self]; RELEASE(scrollView); RELEASE(browserView); RELEASE(selectedClass); [super dealloc]; } - (void) setSelectedClassName: (NSString*)cn { [self selectClass: cn]; } - (NSString *)selectedClassName { id className = nil; NS_DURING { if([classesView contentView] == scrollView) { NSInteger row = [outlineView selectedRow]; if ( row == -1 ) { row = 0; } className = [outlineView itemAtRow: row]; if ([className isKindOfClass: [GormOutletActionHolder class]]) { className = [outlineView itemBeingEdited]; } } else if([classesView contentView] == browserView) { className = [[browserView selectedCell] stringValue]; } } NS_HANDLER { NSLog(@"%@",[localException reason]); } NS_ENDHANDLER; return className; } - (void) selectClass: (NSString *)className { [self selectClass: className editClass: YES]; } // class selection... - (void) selectClass: (NSString *)className editClass: (BOOL)flag { NS_DURING { NSString *currentClass = nil; NSArray *classes, *subclasses; NSMutableArray *subClassesArray = [NSMutableArray array]; NSEnumerator *en; int row = 0; NSInteger col = 0; if ( ( className != nil ) && ( [className isEqual: @"CustomView"] == NO ) && ( [className isEqual: @"GormSound"] == NO ) && ( [className isEqual: @"GormImage"] == NO ) && ( [outlineView isEditing] == NO ) ) { classes = [classManager allSuperClassesOf: className]; en = [classes objectEnumerator]; // open the items... while ((currentClass = [en nextObject]) != nil) { [outlineView expandItem: currentClass]; } // select the item in the outline view... row = [outlineView rowForItem: className]; if (row != -1) { [outlineView selectRow: row byExtendingSelection: NO]; [outlineView scrollRowToVisible: row]; } // select class in browser... subClassesArray = [NSMutableArray arrayWithArray: [classManager allSuperClassesOf: className]]; if ((subClassesArray != nil && [subClassesArray count] != 0) || [classManager isRootClass: className] == YES) { [subClassesArray addObject: className]; // include in the list. // Get the super class position in the browser. Passing "nil" to subClassesOf causes it // to get all of the root classes. col = 0; row = [[classManager subClassesOf: nil] indexOfObject: [subClassesArray objectAtIndex: 0]]; // reset the enumerator... currentClass = nil; [browserView reloadColumn:col]; // if row is not NSNotFound, then we found something. if(row != -1) { [browserView selectRow: row inColumn: col]; en = [subClassesArray objectEnumerator]; [en nextObject]; // skip the first one. while((currentClass = [en nextObject]) != nil) { NSString *prevClass = [[browserView selectedCellInColumn: col] stringValue]; subclasses = [classManager subClassesOf: prevClass]; row = [subclasses indexOfObject: currentClass]; col++; [browserView selectRow:row inColumn:col]; } } ASSIGN(selectedClass, className); if(flag) { // set the editor... [document setSelectionFromEditor: (id)self]; } } } } NS_HANDLER { NSDebugLog(@"%@",[localException reason]); } NS_ENDHANDLER; } - (void) selectClassWithObject: (id)obj { [self selectClassWithObject: obj editClass: YES]; } - (void) selectClassWithObject: (id)object editClass: (BOOL)flag { id obj = object; NSString *customClass = nil; // if it's a scrollview focus on it's contents. if([obj isKindOfClass: [NSScrollView class]]) { id newobj = nil; newobj = [obj documentView]; if(newobj != nil) { obj = newobj; } } // check for a custom class. customClass = [classManager customClassForObject: obj]; if(customClass != nil) { [self selectClass: customClass editClass: flag]; } else if ([obj respondsToSelector: @selector(className)]) { [self selectClass: [obj className] editClass: flag]; } } - (BOOL) currentSelectionIsClass { BOOL result = NO; if([classesView contentView] == scrollView) { NSInteger i = [outlineView selectedRow]; if (i >= 0 && i <= ([outlineView numberOfRows] - 1)) { NS_DURING { id object = [outlineView itemAtRow: i]; if([object isKindOfClass: [NSString class]]) { result = YES; } } NS_HANDLER { NSLog(@"%@",[localException reason]); } NS_ENDHANDLER; } } else if([classesView contentView] == browserView) { result = YES; } return result; } - (void) editClass { int row = [outlineView selectedRow]; if (row >= 0) { ASSIGN(selectedClass, [self selectedClassName]); [document setSelectionFromEditor: (id)self]; } } //--- IBSelectionOwners protocol --- - (NSUInteger) selectionCount { return ([outlineView selectedRow] == -1)?0:1; } - (NSArray*) selection { // when asked for a selection, it returns a class proxy if (selectedClass != nil) { NSArray *array; GormClassProxy *classProxy; NSString *sc = [NSString stringWithString: selectedClass]; classProxy = [[GormClassProxy alloc] initWithClassName: sc]; array = [NSArray arrayWithObject: classProxy]; RELEASE(classProxy); return array; } else { return [NSArray array]; } } - (void) drawSelection { } - (void) makeSelectionVisible: (BOOL)flag { } - (void) selectObjects: (NSArray*)objects { id obj = [objects objectAtIndex: 0]; [self selectClassWithObject: obj]; } - (void) deleteSelection { id anitem; NSInteger i = [outlineView selectedRow]; NSNotificationCenter *nc = [NSNotificationCenter defaultCenter]; // if no selection, then return. if (i == -1) { return; } // get the item, and catch the exception, if there's a problem. if([classesView contentView] == outlineView) { NS_DURING { anitem = [outlineView itemAtRow: i]; } NS_HANDLER { anitem = nil; } NS_ENDHANDLER; } else { anitem = [[browserView selectedCell] stringValue]; } if(anitem == nil) return; if ([anitem isKindOfClass: [GormOutletActionHolder class]]) { id itemBeingEdited = [outlineView itemBeingEdited]; NSString *name = [anitem getName]; // if the class being edited is a custom class or a category, // then allow the deletion... if ([classManager isCustomClass: itemBeingEdited] || [classManager isAction: name onCategoryForClassNamed: itemBeingEdited]) { if ([outlineView editType] == Actions) { // if this action is an action on the class, not it's superclass // allow the deletion... if ([classManager isAction: name ofClass: itemBeingEdited]) { BOOL removed = [document removeConnectionsWithLabel: name forClassNamed: itemBeingEdited isAction: YES]; if (removed) { [classManager removeAction: name fromClassNamed: itemBeingEdited]; [outlineView removeItemAtRow: i]; [nc postNotificationName: GormDidModifyClassNotification object: classManager]; } } } else if ([outlineView editType] == Outlets) { // if this outlet is an outlet on the class, not it's superclass // allow the deletion... if ([classManager isOutlet: name ofClass: itemBeingEdited]) { BOOL removed = [document removeConnectionsWithLabel: name forClassNamed: itemBeingEdited isAction: NO]; if (removed) { [classManager removeOutlet: name fromClassNamed: itemBeingEdited]; [outlineView removeItemAtRow: i]; [nc postNotificationName: GormDidModifyClassNotification object: classManager]; } } } } } else { NSArray *subclasses = [classManager subClassesOf: anitem]; // if the class has no subclasses, then delete. if ([subclasses count] == 0) { // if the class being edited is a custom class, then allow the deletion... if ([classManager isCustomClass: anitem]) { BOOL removed = [document removeConnectionsForClassNamed: anitem]; if (removed) { [self copySelection]; [document removeAllInstancesOfClass: anitem]; [classManager removeClassNamed: anitem]; [self reloadData]; [nc postNotificationName: GormDidModifyClassNotification object: classManager]; ASSIGN(selectedClass, nil); // don't keep the class we're pointing to. } } } else { NSString *message = [NSString stringWithFormat: _(@"The class %@ has subclasses which must be removed"), anitem]; NSRunAlertPanel(_(@"Problem removing class"), message, nil, nil, nil); } } } - (void) copySelection { if(selectedClass != nil) { if([selectedClass isEqual: @"FirstResponder"] == NO) { NSPasteboard *pb = [NSPasteboard generalPasteboard]; NSMutableDictionary *dict = [NSMutableDictionary dictionaryWithObjectsAndKeys: [classManager dictionaryForClassNamed: selectedClass], selectedClass, nil]; id classPlist = [[dict description] propertyList]; if(classPlist != nil) { [pb declareTypes: [NSArray arrayWithObject: GormClassPboardType] owner: self]; [pb setPropertyList: classPlist forType: GormClassPboardType]; } } } } - (void) pasteInSelection { if(selectedClass != nil) { if([selectedClass isEqual: @"FirstResponder"] == NO) { NSPasteboard *pb = [NSPasteboard generalPasteboard]; NSArray *types = [pb types]; if([types containsObject: GormClassPboardType]) { id classPlist = [pb propertyListForType: GormClassPboardType]; NSDictionary *classesDict = [NSDictionary dictionaryWithDictionary: classPlist]; id name = nil; NSEnumerator *en = [classesDict keyEnumerator]; while((name = [en nextObject]) != nil) { NSDictionary *classDict = [classesDict objectForKey: name]; NSString *className = [classManager uniqueClassNameFrom: name]; BOOL added = [classManager addClassNamed: className withSuperClassNamed: selectedClass withActions: [classDict objectForKey: @"Actions"] withOutlets: [classDict objectForKey: @"Outlets"]]; if(!added) { NSString *message = [NSString stringWithFormat: @"Addition of %@ with superclass %@ failed.", className, selectedClass]; NSRunAlertPanel(_(@"Problem pasting class"), message, nil, nil, nil); } } } } else { NSRunAlertPanel(_(@"Problem pasting class"), _(@"FirstResponder cannot have subclasses."), nil, nil, nil); } } } - (void) addAttributeToClass { id edited = [outlineView itemBeingEdited]; if ([outlineView isEditing] == YES) { if ([outlineView editType] == Actions) { [outlineView _addNewActionToObject: edited]; } if ([outlineView editType] == Outlets) { if([classManager isCustomClass: edited]) { [outlineView _addNewOutletToObject: edited]; } } } } - (void) reloadData { [outlineView reloadData]; [browserView loadColumnZero]; } - (BOOL) isEditing { return [outlineView isEditing]; } /* * Dragging source protocol implementation */ - (void) draggedImage: (NSImage*)i endedAt: (NSPoint)p deposited: (BOOL)f { // no image. } // IBEditor protocol - (BOOL) acceptsTypeFromArray: (NSArray*)types { return [types containsObject: NSFilenamesPboardType]; } - (BOOL) activate { return YES; } - (id) initWithObject: (id)anObject inDocument: (id/**/)aDocument { return [self initWithDocument: aDocument]; } - (void) close { // does nothing. } - (void) closeSubeditors { // does nothing. } - (void) deactivate { // does nothing. } - (id /**/) document { return document; } - (id) editedObject { return selectedClass; } - (void) orderFront { [[self window] orderFront: self]; } - (id) openSubeditorForObject: (id)object { return nil; } - (void) resetObject: (id)anObject { [outlineView reset]; [outlineView expandItem: anObject]; [outlineView collapseItem: anObject collapseChildren: YES]; } - (BOOL) wantsSelection { return NO; } - (void) validateEditing { // does nothing. } - (NSWindow *) window { return [super window]; } - (NSArray *) fileTypes { return [NSArray arrayWithObject: @"h"]; } /** * Create a subclass from the selected subclass... */ - (id) createSubclass: (id)sender { if (![outlineView isEditing]) { NSString *itemSelected = [self selectedClassName]; if(itemSelected != nil) { NSString *newClassName; newClassName = [classManager addClassWithSuperClassName: itemSelected]; if(newClassName != nil) { NSInteger i = 0; if([classesView contentView] == scrollView) { [outlineView reloadData]; [outlineView expandItem: itemSelected]; i = [outlineView rowForItem: newClassName]; [outlineView selectRow: i byExtendingSelection: NO]; [outlineView scrollRowToVisible: i]; } else if([classesView contentView] == browserView) { [self selectClass: newClassName editClass: NO]; } } else { // inform the user of this error. NSRunAlertPanel(_(@"Cannot instantiate"), _(@"FirstResponder cannot be instantiated."), nil, nil, nil); } } } return self; } /** * Create an instance of a given class. */ - (id) instantiateClass: (id)sender { NSString *object = [self selectedClassName]; GSNibItem *item = nil; if([object isEqualToString: @"FirstResponder"]) { return nil; } if([classManager canInstantiateClassNamed: object] == NO) { return nil; } if([classManager isSuperclass: @"NSView" linkedToClass: object] || [object isEqual: @"NSView"]) { Class cls; NSString *className = object; BOOL isCustom = [classManager isCustomClass: object]; id instance; if(isCustom) { className = [classManager nonCustomSuperClassOf: object]; } // instantiate the object or it's substitute... cls = NSClassFromString(className); if([cls respondsToSelector: @selector(allocSubstitute)]) { instance = [cls allocSubstitute]; } else { instance = [cls alloc]; } // give it some initial dimensions... if([instance respondsToSelector: @selector(initWithFrame:)]) { instance = [instance initWithFrame: NSMakeRect(10,10,380,280)]; } else { instance = [instance init]; } // add it to the top level objects... [document setName: nil forObject: instance]; [document attachObject: instance toParent: nil]; // we want to record if it's custom or not and act appropriately... if(isCustom) { NSString *name = [document nameForObject: instance]; [classManager setCustomClass: object forName: name]; } [document changeToViewWithTag: 0]; NSLog(@"Instantiate NSView subclass %@",object); } else { item = [[GormObjectProxy alloc] initWithClassName: object]; [document setName: nil forObject: item]; [document attachObject: item toParent: nil]; [document changeToViewWithTag: 0]; } return self; } /** * Remove a class from the classes view */ - (id) removeClass: (id)sender { [self deleteSelection]; return self; } /** * Parse a header into the classes view. */ - (id) loadClass: (id)sender { NSArray *fileTypes = [NSArray arrayWithObjects: @"h", @"H", nil]; NSOpenPanel *oPanel = [NSOpenPanel openPanel]; int result; [oPanel setAllowsMultipleSelection: NO]; [oPanel setCanChooseFiles: YES]; [oPanel setCanChooseDirectories: NO]; result = [oPanel runModalForDirectory: nil file: nil types: fileTypes]; if (result == NSOKButton) { NSString *filename = [oPanel filename]; NS_DURING { if(![classManager parseHeader: filename]) { NSString *file = [filename lastPathComponent]; NSString *message = [NSString stringWithFormat: _(@"Unable to parse class in %@"),file]; NSRunAlertPanel(_(@"Problem parsing class"), message, nil, nil, nil); } else { return self; } } NS_HANDLER { NSString *message = [localException reason]; NSRunAlertPanel(_(@"Problem parsing class"), message, nil, nil, nil); } NS_ENDHANDLER } return nil; } /** * Create the class files for the selected class. */ - (id) createClassFiles: (id)sender { NSSavePanel *sp; NSString *className = [self selectedClassName]; int result; sp = [NSSavePanel savePanel]; [sp setRequiredFileType: @"m"]; [sp setTitle: _(@"Save source file as...")]; if ([document fileName] == nil) { result = [sp runModalForDirectory: NSHomeDirectory() file: [className stringByAppendingPathExtension: @"m"]]; } else { result = [sp runModalForDirectory: [[document fileName] stringByDeletingLastPathComponent] file: [className stringByAppendingPathExtension: @"m"]]; } if (result == NSOKButton) { NSString *sourceName = [sp filename]; NSString *headerName; [sp setRequiredFileType: @"h"]; [sp setTitle: _(@"Save header file as...")]; result = [sp runModalForDirectory: [sourceName stringByDeletingLastPathComponent] file: [[[sourceName lastPathComponent] stringByDeletingPathExtension] stringByAppendingString: @".h"]]; if (result == NSOKButton) { headerName = [sp filename]; NSDebugLog(@"Saving %@", className); if (![classManager makeSourceAndHeaderFilesForClass: className withName: sourceName and: headerName]) { NSRunAlertPanel(_(@"Alert"), _(@"Could not create the class's file"), nil, nil, nil); } return self; } } return nil; } - (void)controlTextDidChange:(NSNotification *)aNotification { id object = [aNotification object]; NSString *className = [classManager findClassByName: [object stringValue]]; [self selectClass: className]; } @end @implementation GormClassEditor (NSOutlineViewDataSource) // --- NSOutlineView dataSource --- - (id) outlineView: (NSOutlineView *)anOutlineView objectValueForTableColumn: (NSTableColumn *)aTableColumn byItem: item { id identifier = [aTableColumn identifier]; id className = item; if([item isKindOfClass: [GormOutletActionHolder class]]) return item; if ([identifier isEqualToString: @"classes"]) { return className; } else if ([identifier isEqualToString: @"outlets"]) { return [NSString stringWithFormat: @"%"PRIuPTR, [[classManager allOutletsForClassNamed: className] count]]; } else if ([identifier isEqualToString: @"actions"]) { return [NSString stringWithFormat: @"%"PRIuPTR, [[classManager allActionsForClassNamed: className] count]]; } return @""; } - (void) outlineView: (NSOutlineView *)anOutlineView setObjectValue: (id)anObject forTableColumn: (NSTableColumn *)aTableColumn byItem: (id)item { GormOutlineView *gov = (GormOutlineView *)anOutlineView; // ignore object values which come in as nil... if(anObject == nil) return; if ([item isKindOfClass: [GormOutletActionHolder class]]) { if (![anObject isEqualToString: @""] && ![anObject isEqualToString: [item getName]]) { NSString *name = [item getName]; // retain the name and add the action/outlet... if ([gov editType] == Actions) { NSString *formattedAction = formatAction( (NSString *)anObject ); if (![classManager isAction: formattedAction ofClass: [gov itemBeingEdited]]) { BOOL removed; removed = [document removeConnectionsWithLabel: name forClassNamed: [gov itemBeingEdited] isAction: YES]; if (removed) { [classManager replaceAction: name withAction: formattedAction forClassNamed: [gov itemBeingEdited]]; [(GormOutletActionHolder *)item setName: formattedAction]; } } else { NSString *message; message = [NSString stringWithFormat: _(@"The class %@ already has an action named %@"), [gov itemBeingEdited], formattedAction]; NSRunAlertPanel(_(@"Problem Adding Action"), message, nil, nil, nil); } } else if ([gov editType] == Outlets) { NSString *formattedOutlet = formatOutlet( (NSString *)anObject ); if (![classManager isOutlet: formattedOutlet ofClass: [gov itemBeingEdited]]) { BOOL removed; removed = [document removeConnectionsWithLabel: name forClassNamed: [gov itemBeingEdited] isAction: NO]; if (removed) { [classManager replaceOutlet: name withOutlet: formattedOutlet forClassNamed: [gov itemBeingEdited]]; [(GormOutletActionHolder *)item setName: formattedOutlet]; } } else { NSString *message; message = [NSString stringWithFormat: _(@"The class %@ already has an outlet named %@"), [gov itemBeingEdited], formattedOutlet]; NSRunAlertPanel(_(@"Problem Adding Outlet"), message, nil, nil, nil); } } } } else { if((![anObject isEqualToString: @""]) && (![anObject isEqualToString:item])) { BOOL rename; rename = [document renameConnectionsForClassNamed: item toName: anObject]; if (rename) { NSInteger row = 0; [classManager renameClassNamed: item newName: anObject]; [gov reloadData]; row = [gov rowForItem: anObject]; // make sure that item is collapsed... [gov expandItem: anObject]; [gov collapseItem: anObject]; // scroll to the item.. [gov scrollRowToVisible: row]; [gov selectRow: row]; } } } [gov setNeedsDisplay: YES]; } - (NSInteger) outlineView: (NSOutlineView *)anOutlineView numberOfChildrenOfItem: (id)item { NSArray *subclasses = [classManager subClassesOf: item]; return [subclasses count]; } - (BOOL) outlineView: (NSOutlineView *)anOutlineView isItemExpandable: (id)item { NSArray *subclasses = nil; if (item == nil) return YES; subclasses = [classManager subClassesOf: item]; if ([subclasses count] > 0) return YES; return NO; } - (id) outlineView: (NSOutlineView *)anOutlineView child: (NSInteger)index ofItem: (id)item { NSArray *subclasses = [classManager subClassesOf: item]; return [subclasses objectAtIndex: index]; } // GormOutlineView data source methods... - (NSArray *)outlineView: (NSOutlineView *)anOutlineView actionsForItem: (id)item { NSArray *actions = [classManager allActionsForClassNamed: item]; return actions; } - (NSArray *)outlineView: (NSOutlineView *)anOutlineView outletsForItem: (id)item { NSArray *outlets = [classManager allOutletsForClassNamed: item]; return outlets; } - (NSString *)outlineView: (NSOutlineView *)anOutlineView addNewActionForClass: (id)item { // removed the restriction, since it's now possible to add // actions for kit classes. return [classManager addNewActionToClassNamed: item]; } - (NSString *)outlineView: (NSOutlineView *)anOutlineView addNewOutletForClass: (id)item { GormOutlineView *gov = (GormOutlineView *)anOutlineView; if (![classManager isCustomClass: [gov itemBeingEdited]]) { return nil; } if([item isEqualToString: @"FirstResponder"]) return nil; return [classManager addNewOutletToClassNamed: item]; } // Delegate methods - (BOOL) outlineView: (NSOutlineView *)outline shouldEditTableColumn: (NSTableColumn *)tableColumn item: (id)item { BOOL result = NO; GormOutlineView *gov = (GormOutlineView *)outline; NSDebugLog(@"in the delegate %@", [tableColumn identifier]); if (tableColumn == [gov outlineTableColumn]) { NSDebugLog(@"outline table col"); if (![item isKindOfClass: [GormOutletActionHolder class]] && ![item isEqualToString: @"FirstResponder"]) { result = [classManager isCustomClass: item]; [self editClass]; } else { id itemBeingEdited = [gov itemBeingEdited]; if ([classManager isCustomClass: itemBeingEdited]) { if ([gov editType] == Actions) { result = [classManager isAction: [item getName] ofClass: itemBeingEdited]; } else if ([gov editType] == Outlets) { result = [classManager isOutlet: [item getName] ofClass: itemBeingEdited]; } } else if ([classManager isCategoryForClass: itemBeingEdited]) { if ([gov editType] == Actions) { result = [classManager isAction: [item getName] ofClass: itemBeingEdited]; } } } } return result; } - (void) outlineViewSelectionDidChange: (NSNotification *)notification { id object = [notification object]; NSInteger row = [object selectedRow]; if(row != -1) { NS_DURING { id item = [object itemAtRow: [object selectedRow]]; if ([item isKindOfClass: [GormOutletActionHolder class]] == NO && [classesView contentView] == scrollView) { [self editClass]; } } NS_HANDLER { NSLog(@"%@",[localException reason]); } NS_ENDHANDLER; } } @end // end of data source @implementation GormClassEditor (NSBrowserDelegate) - (void)browser:(NSBrowser *)sender createRowsForColumn:(NSInteger)column inMatrix:(NSMatrix *)matrix { NSArray *classes = nil; NSEnumerator *en = nil; NSString *className = nil; NSInteger i = 0; if (sender != browserView || !matrix || ![matrix isKindOfClass:[NSMatrix class]]) { return; } if(column == 0) { classes = [classManager subClassesOf: nil]; } else { className = [[sender selectedCellInColumn: column - 1] stringValue]; classes = [classManager subClassesOf: className]; } en = [classes objectEnumerator]; for(i = 0; ((className = [en nextObject]) != nil); i++) { id cell; NSArray *sub = [classManager subClassesOf: className]; [matrix insertRow:i]; cell = [matrix cellAtRow:i column:0]; [cell setStringValue: className]; [cell setLeaf: ([sub count] == 0)]; } } @end gorm-1.2.24/GormCore/GormSoundEditor.m0000644000000000000000000000620413410616261016223 0ustar rootroot/* GormSoundEditor.m * * Copyright (C) 2002 Free Software Foundation, Inc. * * Author: Gregory John Casamento * Date: 2002 * * This file is part of GNUstep. * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 3 of the License, or * (at your option) any later version. * * This program 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 General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02111 USA. */ #include "GormSoundEditor.h" #include "GormProtocol.h" #include "GormFunctions.h" #include "GormPalettesManager.h" #include #include "GormSound.h" @implementation GormSoundEditor static NSMapTable *docMap = 0; + (void) initialize { if (self == [GormSoundEditor class]) { docMap = NSCreateMapTable(NSNonRetainedObjectMapKeyCallBacks, NSNonRetainedObjectMapValueCallBacks, 2); } } + (GormSoundEditor*) editorForDocument: (id)aDocument { id editor = NSMapGet(docMap, (void*)aDocument); if (editor == nil) { editor = [[self alloc] initWithObject: nil inDocument: aDocument]; AUTORELEASE(editor); } return editor; } - (NSArray *) fileTypes { return [NSSound soundUnfilteredFileTypes]; } - (NSArray *)pbTypes { return [NSArray arrayWithObject: GormSoundPboardType]; } - (NSString *) resourceType { return @"sound"; } - (id) placeHolderWithPath: (NSString *)string { return [GormSound soundForPath: string]; } - (void) addSystemResources { NSMutableArray *list = [NSMutableArray array]; NSEnumerator *en; id obj; GormPalettesManager *palettesManager = [(id)NSApp palettesManager]; // add all of the system objects... [list addObjectsFromArray: systemSoundsList()]; [list addObjectsFromArray: [palettesManager importedSounds]]; en = [list objectEnumerator]; while((obj = [en nextObject]) != nil) { GormSound *sound = [GormSound soundForPath: obj]; [sound setSystemResource: YES]; [self addObject: sound]; } } /* * Initialisation - register to receive DnD with our own types. */ - (id) initWithObject: (id)anObject inDocument: (id)aDocument { id old = NSMapGet(docMap, (void*)aDocument); if (old != nil) { RELEASE(self); self = RETAIN(old); [self addObject: anObject]; return self; } if ((self = [super initWithObject: anObject inDocument: aDocument]) != nil) { NSMapInsert(docMap, (void*)aDocument, (void*)self); } return self; } - (void) willCloseDocument: (NSNotification *)aNotification { NSMapRemove(docMap,document); [super willCloseDocument: aNotification]; } - (void) close { [super close]; NSMapRemove(docMap,document); } @end gorm-1.2.24/GormCore/GormInspectorsManager.h0000644000000000000000000000345613410616261017411 0ustar rootroot/* GormInspectorsManager.h * * Copyright (C) 1999, 2003 Free Software Foundation, Inc. * * Author: Richard Frith-Macdonald * Author: Gregory John Casamento * Date: 1999, 2003 * * This file is part of GNUstep. * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 3 of the License, or * (at your option) any later version. * * This program 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 General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02111 USA. */ #ifndef INCLUDED_GormInspectorsManager_h #define INCLUDED_GormInspectorsManager_h #include #include #include @class NSPanel; @class NSMutableDictionary; @class NSPopUpButton; @class NSView; @class NSBox; @class IBInspector; @interface GormInspectorsManager : IBInspectorManager { IBOutlet NSPanel *panel; NSMutableDictionary *cache; IBOutlet NSPopUpButton *popup; IBOutlet NSBox *selectionView; IBOutlet NSBox *inspectorView; NSView *buttonView; NSString *oldInspector; IBOutlet IBInspector *inspector; int current; BOOL hiddenDuringTest; NSRect origFrame; } - (NSPanel*) panel; - (void) setClassInspector; - (void) setCurrentInspector: (id)anObject; - (void) updateSelection; @end #endif gorm-1.2.24/GormCore/GormCustomView.m0000644000000000000000000001725413410616261016100 0ustar rootroot/* GormCustomView - Visual representation of a custom view placeholder * * Copyright (C) 2001 Free Software Foundation, Inc. * * Author: Adam Fedor * Date: 2001 * * This file is part of GNUstep. * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 3 of the License, or * (at your option) any later version. * * This program 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 General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02111 USA. */ #include #include #include #include #include #include #include #include #include @class GSCustomView; @interface CustomView : NSView @end @implementation CustomView - (id) initWithFrame: (NSRect)frame { if((self = [super initWithFrame: frame]) != nil) { // Replace the CustomView with an NSView of the same dimensions. self = (id)[[NSView alloc] initWithFrame: frame]; } return self; } @end @implementation GormCustomView - (id)initWithFrame:(NSRect)frameRect { self = [super initWithFrame: frameRect]; if(self != nil) { [self setBackgroundColor: [NSColor darkGrayColor]]; [self setTextColor: [NSColor whiteColor]]; [self setDrawsBackground: YES]; [self setAlignment: NSCenterTextAlignment]; [self setFont: [NSFont boldSystemFontOfSize: 0]]; [self setEditable: NO]; [self setSelectable: NO]; [self setClassName: @"CustomView"]; } return self; } - (void) dealloc { RELEASE(className); [super dealloc]; } - (NSString*) inspectorClassName { return @"GormFilesOwnerInspector"; } - (NSString*) classInspectorClassName { return @"GormFilesOwnerInspector"; } - (void) setClassName: (NSString *)aName { ASSIGN(className, aName); [self setStringValue: aName]; } - (NSString *) className { return className; } - (Class) bestPossibleSuperClass { Class cls = [NSView class]; GormClassManager *classManager = [(id)NSApp classManager]; if([classManager isSuperclass: @"NSView" linkedToClass: className]) { NSString *superClass = [classManager nonCustomSuperClassOf: className]; // get the superclass if one exists... if(superClass != nil) { cls = NSClassFromString(superClass); if(cls == nil) { cls = [NSView class]; } } } return cls; } /* * This needs to be coded like a GSNibItem. How do we make sure this * tracks changes in GSNibItem coding? */ - (void) encodeWithCoder: (NSCoder*)aCoder { if([aCoder allowsKeyedCoding]) { GormClassManager *classManager = [(id)NSApp classManager]; NSString *extension = nil; ASSIGNCOPY(extension,[classManager nonCustomSuperClassOf: className]); [aCoder encodeObject: className forKey: @"NSClassName"]; [aCoder encodeRect: [self frame] forKey: @"NSFrame"]; if(extension != nil) { [aCoder encodeObject: extension forKey: @"NSExtension"]; } if([self nextResponder] != nil) { [aCoder encodeObject: [self nextResponder] forKey: @"NSNextResponder"]; } if([self superview] != nil) { [aCoder encodeObject: [self superview] forKey: @"NSSuperview"]; } RELEASE(extension); } else { [aCoder encodeObject: [self stringValue]]; [aCoder encodeRect: _frame]; [aCoder encodeValueOfObjCType: @encode(unsigned int) at: &_autoresizingMask]; } } - (id) initWithCoder: (NSCoder*)aCoder { if([aCoder allowsKeyedCoding]) { NSCustomView *customView = [[NSCustomView alloc] initWithCoder: aCoder]; NSArray *subviews = [customView subviews]; // if the custom view has subviews.... if(subviews != nil && [subviews count] > 0) { Class cls = [self bestPossibleSuperClass]; id replacementView = [[cls alloc] initWithFrame: [customView frame]]; NSEnumerator *en = [[customView subviews] objectEnumerator]; id v = nil; [replacementView setAutoresizingMask: [customView autoresizingMask]]; while((v = [en nextObject]) != nil) { [replacementView addSubview: v]; } return replacementView; } else { [self initWithFrame: [customView frame]]; _autoresizingMask = [customView autoresizingMask]; } // get the classname... [self setClassName: [customView className]]; // _super_view = [customView superview]; // _window = [customView window]; RELEASE(customView); return self; } else { NSInteger version = [aCoder versionForClassName: NSStringFromClass([GSCustomView class])]; if (version == 1) { NSString *string; // do not decode super. We need to maintain mapping to NibItems string = [aCoder decodeObject]; _frame = [aCoder decodeRect]; [self initWithFrame: _frame]; [aCoder decodeValueOfObjCType: @encode(unsigned int) at: &_autoresizingMask]; [self setClassName: string]; return self; } else if (version == 0) { NSString *string; // do not decode super. We need to maintain mapping to NibItems string = [aCoder decodeObject]; _frame = [aCoder decodeRect]; [self initWithFrame: _frame]; [self setClassName: string]; return self; } else { NSLog(@"no initWithCoder for version"); RELEASE(self); return nil; } } return nil; } @end @interface GormTestCustomView : GSNibItem { } @end @implementation GormTestCustomView - (Class) bestPossibleSuperClass { Class cls = [NSView class]; GormClassManager *classManager = [(id)NSApp classManager]; if([classManager isSuperclass: @"NSOpenGLView" linkedToClass: theClass] || [theClass isEqual: @"NSOpenGLView"]) { cls = [GormOpenGLView class]; } else if([classManager isSuperclass: @"NSView" linkedToClass: theClass]) { NSString *superClass = [classManager nonCustomSuperClassOf: theClass]; // get the superclass if one exists... if(superClass != nil) { cls = NSClassFromString(superClass); if(cls == nil) { cls = [NSView class]; } } } return cls; } - (id) initWithCoder: (NSCoder*)aCoder { id obj; Class cls; NSUInteger mask; GormClassManager *classManager = [(id)NSApp classManager]; [aCoder decodeValueOfObjCType: @encode(id) at: &theClass]; theFrame = [aCoder decodeRect]; [aCoder decodeValueOfObjCType: @encode(NSUInteger) at: &mask]; cls = NSClassFromString(theClass); if([classManager isSuperclass: @"NSOpenGLView" linkedToClass: theClass] || [theClass isEqual: @"NSOpenGLView"] || cls == nil) { cls = [self bestPossibleSuperClass]; } obj = [cls allocWithZone: [self zone]]; if (theFrame.size.height > 0 && theFrame.size.width > 0) obj = [obj initWithFrame: theFrame]; else obj = [obj init]; if ([obj respondsToSelector: @selector(setAutoresizingMask:)]) { [obj setAutoresizingMask: mask]; } /* if (![self isKindOfClass: [GSCustomView class]]) { RETAIN(obj); } */ RELEASE(self); return obj; } - (void) encodeWithCoder: (NSCoder *)coder { // nothing to do. This is a class for testing custom views only. GJC } @end gorm-1.2.24/GormCore/NSView+GormExtensions.h0000644000000000000000000000330013410616261017257 0ustar rootroot/* NSView+GormExtensions.h * * Copyright (C) 2004 Free Software Foundation, Inc. * * Author: Gregory John Casamento * Date: 2004 * * This file is part of GNUstep. * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 3 of the License, or * (at your option) any later version. * * This program 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 General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02111 USA. */ #ifndef INCLUDED_NSView_GormExtensions_h #define INCLUDED_NSView_GormExtensions_h #include @class NSArray; @interface NSView (GormExtensions) /** * All superviews of the receiver. */ - (NSArray *) superviews; /** * Returns YES if the receiver has an instance of the Class cls * as a superview. */ - (BOOL) hasSuperviewKindOfClass: (Class)cls; /** * Move the subview sv in reciever to the end of the reciever's * display list. This has the effect of making it appear in front * of the other views. */ - (void) moveViewToFront: (NSView *)sv; /** * Move the subview sv in reciever to the beginning of the reciever's * display list. This has the effect of making it appear in back * of the other views. */ - (void) moveViewToBack: (NSView *)sv; @end #endif gorm-1.2.24/GormCore/GormImage.m0000644000000000000000000001020313410616261015000 0ustar rootroot/* GormImageEditor.m * * Copyright (C) 2002 Free Software Foundation, Inc. * * Author: Gregory John Casamento * Date: 2002 * * This file is part of GNUstep. * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 3 of the License, or * (at your option) any later version. * * This program 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 General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02111 USA. */ #include #include #include "GormImage.h" // implementation of category on NSImage. @implementation NSImage (GormNSImageAddition) - (void) setArchiveByName: (BOOL) archiveByName { _flags.archiveByName = archiveByName; } - (BOOL) archiveByName { return _flags.archiveByName; } @end // image proxy object... @implementation GormImage + (GormImage*)imageForPath: (NSString *)aPath { return [GormImage imageForPath: aPath inWrapper: NO]; } + (GormImage*)imageForPath: (NSString *)aPath inWrapper: (BOOL)flag { return AUTORELEASE([[GormImage alloc] initWithPath: aPath inWrapper: flag]); } + (GormImage*)imageForData: (NSData *)aData withFileName: (NSString *)aName inWrapper: (BOOL)flag { return AUTORELEASE([[GormImage alloc] initWithData: aData withFileName: aName inWrapper: flag]); } - (void) _resizeSmallImage { NSSize originalSize; CGFloat ratioH; CGFloat ratioW; originalSize = [smallImage size]; ratioW = originalSize.width / 70; ratioH = originalSize.height / 55; if (ratioH > 1 || ratioW > 1) { [smallImage setScalesWhenResized: YES]; if (ratioH > ratioW) { [smallImage setSize: NSMakeSize(originalSize.width / ratioH, 55)]; } else { [smallImage setSize: NSMakeSize(70, originalSize.height / ratioW)]; } } } - (id) initWithData: (NSData *)aData withFileName: (NSString *)aName inWrapper: (BOOL)flag { if ((self = [super initWithData: aData withFileName: aName inWrapper: flag]) != nil) { // FIXME: Why not make one a copy of the other? image = [[NSImage alloc] initWithData: aData]; smallImage = [[NSImage alloc] initWithData: aData]; if (smallImage == nil) { RELEASE(self); return nil; } [image setName: aName]; // FIXME: Not needed [image setArchiveByName: NO]; [smallImage setArchiveByName: NO]; [self _resizeSmallImage]; } return self; } - (id) initWithName: (NSString *)aName path: (NSString *)aPath inWrapper: (BOOL)flag { if ((self = [super initWithName: aName path: aPath inWrapper: flag]) != nil) { image = [[NSImage alloc] initByReferencingFile: aPath]; smallImage = [[NSImage alloc] initWithContentsOfFile: aPath]; if (smallImage == nil) { RELEASE(self); return nil; } [image setName: aName]; [image setArchiveByName: NO]; [smallImage setArchiveByName: NO]; [self _resizeSmallImage]; } return self; } - (void) dealloc { RELEASE(image); RELEASE(smallImage); [super dealloc]; } - (NSImage *) normalImage { return image; } - (NSImage *) image { return smallImage; } - (void) setSystemResource: (BOOL)flag { [super setSystemResource: flag]; [image setArchiveByName: flag]; [smallImage setArchiveByName: flag]; } @end @implementation GormImage (IBObjectAdditions) - (NSString *)inspectorClassName { return @"GormImageInspector"; } - (NSString *) classInspectorClassName { return @"GormNotApplicableInspector"; } - (NSString *) connectInspectorClassName { return @"GormNotApplicableInspector"; } - (NSString *) objectNameForInspectorTitle { return @"Image"; } - (NSImage *) imageForViewer { return [self image]; } @end gorm-1.2.24/GormCore/GormSound.h0000644000000000000000000000315213410616261015046 0ustar rootroot/** GormSound A place holder for a sound. Copyright (C) 2001 Free Software Foundation, Inc. Author: Gregory John Casamento Date: Dec 2004 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 3 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, 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ #ifndef INCLUDED_GormSound_h #define INCLUDED_GormSound_h #include #include @class NSString; @interface GormSound : GormResource /** * Creates a GormSound object using the file at path. */ + (GormSound*) soundForPath: (NSString *)path; /** * Creates a GormSound object using the file at path, and marks it as * inside or outside of the .gorm/.nib wrapper. */ + (GormSound*) soundForPath: (NSString *)path inWrapper: (BOOL)flag; + (GormSound*) soundForData: (NSData *)aData withFileName: (NSString *)aName inWrapper: (BOOL)flag; @end #endif gorm-1.2.24/GormCore/GormViewWindow.m0000644000000000000000000001213113412644602016064 0ustar rootroot/* GormViewWindow.m * * Copyright (C) 2004 Free Software Foundation, Inc. * * Author: Gregory John Casamento * Date: 2004 * * This file is part of GNUstep. * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 3 of the License, or * (at your option) any later version. * * This program 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 General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02111 USA. */ #include "GormViewWindow.h" #include #include #include #include #include #include #include "GormFunctions.h" @interface GormViewWindowDelegate : NSObject { NSView *_view; } - (id) initWithView: (NSView *)view; - (void) initialResize; @end @implementation GormViewWindowDelegate - (id) initWithView: (NSView *)view; { if((self = [super init]) != nil) { _view = view; [self initialResize]; } return self; } - (void) initialResize { NSWindow *window = [_view window]; NSRect windowFrame = [window frame]; // if the view is uninitialized, // it's new... give it size. if(NSIsEmptyRect([_view frame])) { NSArray *subs = [_view subviews]; NSRect newFrame; if([subs count] > 0) { newFrame = minimalContainerFrame(subs); newFrame.size.height += 70; newFrame.size.width += 40; [window setFrame: newFrame display: YES]; [_view setPostsFrameChangedNotifications: YES]; } else { newFrame = windowFrame; newFrame.origin.x = 10; newFrame.origin.y = 20; newFrame.size.height -= 70; newFrame.size.width -= 20; } [_view setPostsFrameChangedNotifications: NO]; [_view setFrame: newFrame]; [_view setPostsFrameChangedNotifications: YES]; } else // otherwise take size from it. { NSRect newFrame = [_view frame]; newFrame.origin.x = windowFrame.origin.x+10; newFrame.origin.y = windowFrame.origin.y+20; newFrame.size.height += 100; newFrame.size.width += 20; [_view setPostsFrameChangedNotifications: NO]; [_view setFrame: newFrame]; [_view setPostsFrameChangedNotifications: YES]; [window setFrame: newFrame display: YES]; } [window center]; } - (void) windowDidResize: (NSNotification *)notification { NSWindow *window = [_view window]; NSRect windowFrame = [window frame]; NSRect newFrame = windowFrame; NSRect viewFrame = [_view frame]; newFrame.origin.x = 10; newFrame.origin.y = 20; newFrame.size.height -= 70; newFrame.size.width -= 20; if(NSIsEmptyRect(viewFrame)) { [_view setPostsFrameChangedNotifications: NO]; [_view setFrame: newFrame]; [_view setPostsFrameChangedNotifications: YES]; } else { [_view setFrame: newFrame]; [_view setNeedsDisplay: YES]; } } @end @implementation GormViewWindow - (id) initWithView: (NSView *)view { if((self = [super init]) != nil) { NSString *className = NSStringFromClass([view class]); NSString *objectName = [[(id)NSApp activeDocument] nameForObject: view]; NSString *title = [NSString stringWithFormat: @"Standalone View Window: (%@, %@)", className, objectName]; NSColor *color = [NSColor lightGrayColor]; [self setTitle: title]; [self setFrame: NSMakeRect(0,0,400,300) display: YES]; [self setBackgroundColor: color]; [self setReleasedWhenClosed: NO]; [self setView: view]; } return self; } - (void) setView: (NSView *)view { if(_view != nil) { [_view removeFromSuperviewWithoutNeedingDisplay]; } _view = view; [[self contentView] addSubview: _view]; RELEASE([self delegate]); [self setDelegate: [[GormViewWindowDelegate alloc] initWithView: _view]]; } - (NSView *) view { return _view; } - (void) activateEditorForView { id editor = [[(id)NSApp activeDocument] editorForObject: _view create: YES]; // NSArray *subviews = [_view subviews]; // NSEnumerator *en = [subviews objectEnumerator]; // id sub = nil; // activate the parent and all subview editors... [editor activate]; /* while((sub = [en nextObject]) != nil) { editor = [[(id)NSApp activeDocument] editorForObject: sub create: YES]; [editor activate]; } */ } - (void) encodeWithCoder: (NSCoder *)coder { [NSException raise: NSInternalInconsistencyException format: @"Cannot encode a GormViewWindow"]; } - (void) orderFront: (id)sender { [super orderFront: sender]; [self activateEditorForView]; } - (void) dealloc { RELEASE([self delegate]); [self setDelegate: nil]; [super dealloc]; } @end gorm-1.2.24/GormCore/GormOutlineView.m0000644000000000000000000005011613410616261016237 0ustar rootroot/** GormOutlineView The NSOutlineView subclass in gorm which handles outlet/action editing Copyright (C) 2001 Free Software Foundation, Inc. Author: Gregory John Casamento Date: July 2002 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 3 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, 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ #include "GormOutlineView.h" #include #include #include #include #include #include #include #include #include #include #include #include static NSNotificationCenter *nc = nil; static const NSInteger current_version = 1; // Cache the arrow images... static NSImage *collapsed = nil; static NSImage *expanded = nil; static NSImage *unexpandable = nil; static NSImage *action = nil; static NSImage *outlet = nil; static NSImage *actionSelected = nil; static NSImage *outletSelected = nil; // some common colors which will be used to indicate state in the outline // view. static NSColor *salmonColor = nil; static NSColor *darkSalmonColor = nil; static NSColor *lightGreyBlueColor = nil; static NSColor *darkGreyBlueColor = nil; @implementation GormOutletActionHolder - init { [super init]; _name = nil; return self; } - initWithName: (NSString *)name { [self init]; ASSIGN(_name,name); return self; } - (NSString *)getName { return _name; } - (void)setName: (NSString *)name { ASSIGN(_name,name); } @end @implementation GormOutlineView // Initialize the class when it is loaded + (void) initialize { if (self == [GormOutlineView class]) { // initialize images [self setVersion: current_version]; nc = [NSNotificationCenter defaultCenter]; collapsed = [NSImage imageNamed: @"common_outlineCollapsed"]; expanded = [NSImage imageNamed: @"common_outlineExpanded"]; unexpandable = [NSImage imageNamed: @"common_outlineUnexpandable"]; action = [NSImage imageNamed: @"GormAction"]; outlet = [NSImage imageNamed: @"GormOutlet"]; actionSelected = [NSImage imageNamed: @"GormActionSelected"]; outletSelected = [NSImage imageNamed: @"GormOutletSelected"]; // initialize colors salmonColor = RETAIN([NSColor colorWithCalibratedRed: 0.850980 green: 0.737255 blue: 0.576471 alpha: 1.0 ]); darkSalmonColor = RETAIN([NSColor colorWithCalibratedRed: 0.568627 green: 0.494118 blue: 0.384314 alpha: 1.0 ]); lightGreyBlueColor = RETAIN([NSColor colorWithCalibratedRed: 0.450980 green: 0.450980 blue: 0.521569 alpha: 1.0 ]); darkGreyBlueColor = RETAIN([NSColor colorWithCalibratedRed: 0.333333 green: 0.333333 blue: 0.384314 alpha: 1.0 ]); } } - (void) _handleDoubleClick: (id)sender { NSDebugLog(@"Double clicked"); } - init { if((self = [super init]) != nil) { _actionColumn = nil; _outletColumn = nil; _isEditing = NO; _attributeOffset = 0.0; _edittype = None; _menuItem = nil; [self setDoubleAction: @selector(_handleDoubleClick:)]; [self setTarget: self]; } return self; } - (void) collapseItem: (id)item collapseChildren: (BOOL)collapseChildren; { if (!_isEditing) { // [self deselectAll: self]; [super collapseItem: item collapseChildren: collapseChildren]; } } - (void) expandItem: (id)item expandChildren: (BOOL)expandChildren { if (!_isEditing) { // [self deselectAll: self]; [super expandItem: item expandChildren: expandChildren]; } } - (BOOL) _isOutletOrActionOfItemBeingEdited: (NSString *)name { NSArray *array = nil; array = [_dataSource outlineView: self actionsForItem: _itemBeingEdited]; if ([array containsObject: name]) return YES; array = [_dataSource outlineView: self outletsForItem: _itemBeingEdited]; if ([array containsObject: name]) return YES; return NO; } - (void) _addNewActionToObject: (id)item { NSUInteger insertionPoint = 0; NSString *name = nil; GormOutletActionHolder *holder = [[GormOutletActionHolder alloc] init]; name = [_dataSource outlineView: self addNewActionForClass: _itemBeingEdited]; if (name != nil) { _numberOfRows += 1; [holder setName: name]; insertionPoint = [_items indexOfObject: item]; [_items insertObject: holder atIndex: insertionPoint + 1]; [self setNeedsDisplay: YES]; [self noteNumberOfRowsChanged]; } } - (void) _addNewOutletToObject: (id)item { NSUInteger insertionPoint = 0; GormOutletActionHolder *holder = [[GormOutletActionHolder alloc] init]; NSString *name = nil; _numberOfRows += 1; name = [_dataSource outlineView: self addNewOutletForClass: _itemBeingEdited]; if (name != nil) { [holder setName: name]; insertionPoint = [_items indexOfObject: item]; [_items insertObject: holder atIndex: insertionPoint + 1]; [self setNeedsDisplay: YES]; [self noteNumberOfRowsChanged]; } } - (void) removeItemAtRow: (int)row { [_items removeObjectAtIndex: row]; _numberOfRows -= 1; [self setNeedsDisplay: YES]; [self noteNumberOfRowsChanged]; } - (void)_openActions: (id)item { NSInteger numchildren = 0; NSInteger i = 0; NSUInteger insertionPoint = 0; id object = nil; id sitem = (item == nil)?((id)[NSNull null]):((id)item); object = [_dataSource outlineView: self actionsForItem: sitem]; numchildren = [object count]; _numberOfRows += numchildren; // open the item... if (item != nil) { [self setItemBeingEdited: item]; [self setIsEditing: YES]; } insertionPoint = [_items indexOfObject: item]; if (insertionPoint == NSNotFound) { insertionPoint = 0; } else { insertionPoint++; } [self setNeedsDisplay: YES]; for (i = numchildren - 1; i >= 0; i--) { id child = [object objectAtIndex: i]; // Add all of the children... GormOutletActionHolder *holder; holder = [[GormOutletActionHolder alloc] initWithName: child]; [_items insertObject: holder atIndex: insertionPoint]; } [self noteNumberOfRowsChanged]; } - (void) _openOutlets: (id)item { NSInteger numchildren = 0; NSInteger i = 0; NSInteger insertionPoint = 0; id object = nil; id sitem = (item == nil)?((id)[NSNull null]):((id)item); object = [_dataSource outlineView: self outletsForItem: sitem]; numchildren = [object count]; _numberOfRows += numchildren; // open the item... if (item != nil) { [self setItemBeingEdited: item]; [self setIsEditing: YES]; } insertionPoint = [_items indexOfObject: item]; if (insertionPoint == NSNotFound) { insertionPoint = 0; } else { insertionPoint++; } [self setNeedsDisplay: YES]; for (i = numchildren - 1; i >= 0; i--) { id child = [object objectAtIndex: i]; // Add all of the children... GormOutletActionHolder *holder; holder = [[GormOutletActionHolder alloc] initWithName: child]; [_items insertObject: holder atIndex: insertionPoint]; } [self noteNumberOfRowsChanged]; } - (void) drawRow: (NSInteger)rowIndex clipRect: (NSRect)aRect { NSInteger startingColumn; NSInteger endingColumn; NSTableColumn *tb; NSRect drawingRect; NSCell *cell; NSCell *imageCell = nil; NSRect imageRect; NSInteger i; float x_pos; if (_dataSource == nil) { return; } /* Using columnAtPoint: here would make it called twice per row per drawn rect - so we avoid it and do it natively */ if (rowIndex >= _numberOfRows) { return; } /* Determine starting column as fast as possible */ x_pos = NSMinX (aRect); i = 0; while ((x_pos > _columnOrigins[i]) && (i < _numberOfColumns)) { i++; } startingColumn = (i - 1); if (startingColumn == -1) startingColumn = 0; /* Determine ending column as fast as possible */ x_pos = NSMaxX (aRect); // Nota Bene: we do *not* reset i while ((x_pos > _columnOrigins[i]) && (i < _numberOfColumns)) { i++; } endingColumn = (i - 1); if (endingColumn == -1) endingColumn = _numberOfColumns - 1; /* Draw the row between startingColumn and endingColumn */ for (i = startingColumn; i <= endingColumn; i++) { if (i != _editedColumn || rowIndex != _editedRow) { id item = [self itemAtRow: rowIndex]; id value = nil, valueforcell = nil; BOOL isOutletAction = NO; tb = [_tableColumns objectAtIndex: i]; cell = [tb dataCellForRow: rowIndex]; value = [_dataSource outlineView: self objectValueForTableColumn: tb byItem: item]; if ([value isKindOfClass: [GormOutletActionHolder class]]) { valueforcell = [value getName]; isOutletAction = YES; } else { valueforcell = value; isOutletAction = NO; } if ([_delegate respondsToSelector: @selector(outlineView:willDisplayCell:forTableColumn:item:)]) { [_delegate outlineView: self willDisplayCell: cell forTableColumn: tb item: item]; } [cell setObjectValue: valueforcell]; drawingRect = [self frameOfCellAtColumn: i row: rowIndex]; if (isOutletAction) { drawingRect.origin.x += _attributeOffset; drawingRect.size.width -= _attributeOffset; } if (tb == _outlineTableColumn && !isOutletAction) { NSImage *image = nil; NSInteger level = 0; float indentationFactor = 0.0; // display the correct arrow... if ([self isItemExpanded: item]) { image = expanded; } else { image = collapsed; } if (![self isExpandable: item]) { image = unexpandable; } level = [self levelForItem: item]; indentationFactor = _indentationPerLevel * level; imageCell = [[NSCell alloc] initImageCell: image]; if (_indentationMarkerFollowsCell) { imageRect.origin.x = drawingRect.origin.x + indentationFactor; imageRect.origin.y = drawingRect.origin.y; } else { imageRect.origin.x = drawingRect.origin.x; imageRect.origin.y = drawingRect.origin.y; } imageRect.size.width = [image size].width; imageRect.size.height = [image size].height; [imageCell drawWithFrame: imageRect inView: self]; drawingRect.origin.x += indentationFactor + [image size].width + 5; drawingRect.size.width -= indentationFactor + [image size].width + 5; // [cell drawWithFrame: drawingRect inView: self]; } else if ((tb == _actionColumn || tb == _outletColumn) && isOutletAction == NO) { NSImage *image = nil; if (item == _itemBeingEdited && tb == _actionColumn && _edittype == Actions) image = actionSelected; else if (item == _itemBeingEdited && tb == _outletColumn && _edittype == Outlets) image = outletSelected; else image = (tb == _actionColumn)?action:outlet; // Prepare image cell... imageCell = [[NSCell alloc] initImageCell: image]; imageRect.origin.x = drawingRect.origin.x; imageRect.origin.y = drawingRect.origin.y; imageRect.size.width = [image size].width; imageRect.size.height = [image size].height; [imageCell drawWithFrame: imageRect inView: self]; // Adjust drawing rect of cell being displayed... drawingRect.origin.x += [image size].width + 5; drawingRect.size.width -= [image size].width + 5; // [cell drawWithFrame: drawingRect inView: self]; } if (((tb != _outletColumn || tb != _actionColumn) && !isOutletAction) || (tb == _outlineTableColumn)) { [cell drawWithFrame: drawingRect inView: self]; } } } } - (void) reset { [self setItemBeingEdited: nil]; [self setIsEditing: NO]; [self setBackgroundColor: salmonColor]; [self reloadData]; } - (void) mouseDown: (NSEvent *)theEvent { NSPoint location = [theEvent locationInWindow]; NSTableColumn *tb; NSImage *image = nil; id _clickedItem = nil; BOOL isActionOrOutlet = NO; location = [self convertPoint: location fromView: nil]; _clickedRow = [self rowAtPoint: location]; _clickedColumn = [self columnAtPoint: location]; _clickedItem = [self itemAtRow: _clickedRow]; isActionOrOutlet = [_clickedItem isKindOfClass: [GormOutletActionHolder class]]; tb = [_tableColumns objectAtIndex: _clickedColumn]; if (tb == _actionColumn) { image = action; } else if (tb == _outletColumn) { image = outlet; } if ((tb == _actionColumn || tb == _outletColumn) && !_isEditing) { NSInteger position = 0; position += _columnOrigins[_clickedColumn] + 5; if (location.x >= position && location.x <= position + [image size].width + 5) { [self setItemBeingEdited: _clickedItem]; [self setIsEditing: YES]; // [self setBackgroundColor: darkSalmonColor]; // for later if (tb == _actionColumn) { _edittype = Actions; [self _openActions: _clickedItem]; } else if (tb == _outletColumn) { _edittype = Outlets; [self _openOutlets: _clickedItem]; } } [super mouseDown: theEvent]; } else if (_isEditing && !isActionOrOutlet) { if (_clickedItem != [self itemBeingEdited] && !isActionOrOutlet) { [self reset]; } else if (tb == _actionColumn) { if (_edittype != Actions) { [self reset]; _edittype = Actions; [self _openActions: _clickedItem]; } } else /* tb == _outletColumn */ { if (_edittype != Outlets) { [self reset]; _edittype = Outlets; [self _openOutlets: _clickedItem]; } } } else { [super mouseDown: theEvent]; } } // additional methods for subclass - (void) setAttributeOffset: (float)offset { _attributeOffset = offset; } - (float) attributeOffset { return _attributeOffset; } - (void) setItemBeingEdited: (id)item { _itemBeingEdited = item; } - (id) itemBeingEdited { return _itemBeingEdited; } - (void) setIsEditing: (BOOL)flag { _isEditing = flag; } - (BOOL) isEditing { return _isEditing; } - (void)setActionColumn: (NSTableColumn *)ac { ASSIGN(_actionColumn,ac); } - (NSTableColumn *)actionColumn { return _actionColumn; } - (void)setOutletColumn: (NSTableColumn *)oc { ASSIGN(_outletColumn,oc); } - (NSTableColumn *)outletColumn { return _outletColumn; } - (void)setMenuItem: (NSMenuItem *)item { ASSIGN(_menuItem, item); } - (NSMenuItem *)menuItem { return _menuItem; } - (GSAttributeType)editType { return _edittype; } - (void) editColumn: (NSInteger) columnIndex row: (NSInteger) rowIndex withEvent: (NSEvent *) theEvent select: (BOOL) flag { NSText *t; NSTableColumn *tb; NSRect drawingRect, imageRect; unsigned length = 0; id item = nil; NSInteger level = 0; float indentationFactor = 0.0; NSImage *image = nil; NSCell *imageCell = nil; id value = nil; BOOL isOutletOrAction = NO; // We refuse to edit cells if the delegate can not accept results // of editing. if (_dataSource_editable == NO) { return; } [self scrollRowToVisible: rowIndex]; [self scrollColumnToVisible: columnIndex]; if (rowIndex < 0 || rowIndex >= _numberOfRows || columnIndex < 0 || columnIndex >= _numberOfColumns) { [NSException raise: NSInvalidArgumentException format: @"Row/column out of index in edit"]; } if (_textObject != nil) { [self validateEditing]; [self abortEditing]; } // Now (_textObject == nil) t = [_window fieldEditor: YES forObject: self]; if ([t superview] != nil) { if ([t resignFirstResponder] == NO) { return; } } _editedRow = rowIndex; _editedColumn = columnIndex; item = [self itemAtRow: _editedRow]; // Prepare the cell tb = [_tableColumns objectAtIndex: columnIndex]; // NB: need to be released when no longer used _editedCell = [[tb dataCellForRow: rowIndex] copy]; value = [_dataSource outlineView: self objectValueForTableColumn: tb byItem: item]; if ([value isKindOfClass: [GormOutletActionHolder class]]) { isOutletOrAction = YES; value = [value getName]; } [_editedCell setEditable: YES]; [_editedCell setObjectValue: value]; // We really want the correct background color! if ([_editedCell respondsToSelector: @selector(setBackgroundColor:)]) { [(NSTextFieldCell *)_editedCell setBackgroundColor: _backgroundColor]; } else { [t setBackgroundColor: _backgroundColor]; } // But of course the delegate can mess it up if it wants if (_del_responds) { [_delegate outlineView: self willDisplayCell: _editedCell forTableColumn: tb item: [self itemAtRow: rowIndex]]; } /* Please note the important point - calling stringValue normally causes the _editedCell to call the validateEditing method of its control view ... which happens to be this object :-) but we don't want any spurious validateEditing to be performed before the actual editing is started (otherwise you easily end up with the table view picking up the string stored in the field editor, which is likely to be the string resulting from the last edit somewhere else ... getting into the bug that when you TAB from one cell to another one, the string is copied!), so we must call stringValue when _textObject is still nil. */ if (flag) { length = [[_editedCell stringValue] length]; } _textObject = [_editedCell setUpFieldEditorAttributes: t]; // determine which image to use... if ([self isItemExpanded: item]) { image = expanded; } else { image = collapsed; } if (![self isExpandable: item]) { image = unexpandable; } // move the drawing rect over like in the drawRow routine... level = [self levelForItem: item]; indentationFactor = _indentationPerLevel * level; drawingRect = [self frameOfCellAtColumn: columnIndex row: rowIndex]; if (isOutletOrAction) { drawingRect.origin.x += _attributeOffset; drawingRect.size.width -= _attributeOffset; } else { drawingRect.origin.x += indentationFactor + 5 + [image size].width; drawingRect.size.width -= indentationFactor + 5 + [image size].width; } // create the image cell.. imageCell = [[NSCell alloc] initImageCell: image]; if (_indentationMarkerFollowsCell) { imageRect.origin.x = drawingRect.origin.x + indentationFactor; imageRect.origin.y = drawingRect.origin.y; } else { imageRect.origin.x = drawingRect.origin.x; imageRect.origin.y = drawingRect.origin.y; } // draw... imageRect.size.width = [image size].width; imageRect.size.height = [image size].height; [imageCell drawWithFrame: imageRect inView: self]; if (flag) { [_editedCell selectWithFrame: drawingRect inView: self editor: _textObject delegate: self start: 0 length: length]; } else { [_editedCell editWithFrame: drawingRect inView: self editor: _textObject delegate: self event: theEvent]; } return; } - (void) selectRow: (int)rowIndex { [self setNeedsDisplayInRect: [self rectOfRow: rowIndex]]; [_selectedRows addIndex: rowIndex]; _selectedRow = rowIndex; } @end /* implementation of GormOutlineView */ gorm-1.2.24/GormCore/GormClassPanelController.h0000644000000000000000000000247413410616261020055 0ustar rootroot/* GormClassPanelController.h * * Copyright (C) 2004 Free Software Foundation, Inc. * * Author: Gregory John Casamento * Date: 2004 * * This file is part of GNUstep. * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 3 of the License, or * (at your option) any later version. * * This program 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 General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02111 USA. */ /* All Rights reserved */ #include @class NSMutableArray; @interface GormClassPanelController : NSObject { id okButton; id classBrowser; id panel; id classNameForm; NSString *className; NSMutableArray *allClasses; } - (id) initWithTitle: (NSString *)title classList: (NSArray *)classes; - (void) okButton: (id)sender; - (void) browserAction: (id)sender; - (NSString *)runModal; @end gorm-1.2.24/GormCore/NSColorWell+GormExtensions.m0000644000000000000000000000261213410616261020261 0ustar rootroot/* NSColor+GormExtensions.m * * Copyright (C) 2005 Free Software Foundation, Inc. * * Author: Gregory John Casamento * Date: 2005 * * This file is part of GNUstep. * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 3 of the License, or * (at your option) any later version. * * This program 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 General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02111 USA. */ #include #include #include "NSColorWell+GormExtensions.h" @implementation NSColorWell (GormExtensions) /** * Changes the color without sending the action associated with it. */ - (void) setColorWithoutAction: (NSColor *)color { ASSIGN(_the_color, color); if ([self isActive]) { NSColorPanel *colorPanel = [NSColorPanel sharedColorPanel]; [colorPanel setColor: _the_color]; } [self setNeedsDisplay: YES]; } @end gorm-1.2.24/GormCore/GormWindowTemplate.m0000644000000000000000000000320513410616261016725 0ustar rootroot/* GormWindowTemplate * * Copyright (C) 2009 Free Software Foundation, Inc. * * Author: Gregory John Casamento * Date: 2009 * * This file is part of GNUstep. * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 3 of the License, or * (at your option) any later version. * * This program 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 General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02111 USA. */ #include "GormWindowTemplate.h" #include "GormNSWindow.h" #include "GormNSPanel.h" // @class GormNSWindow; // @class GormNSPanel; @interface NSWindow (Private) - (void) _setReleasedWhenClosed: (BOOL)flags; @end @implementation NSWindowTemplate (Private) - (void) setBaseWindowClass: (Class) clz { _baseWindowClass = clz; } @end @implementation GormWindowTemplate - (id) nibInstantiate { id object = [super nibInstantiate]; BOOL flag = [object isReleasedWhenClosed]; [object setReleasedWhenClosed: NO]; [object _setReleasedWhenClosed: flag]; return object; } - (Class) baseWindowClass { if([_windowClass isEqualToString:@"NSPanel"]) { return [GormNSPanel class]; } return [GormNSWindow class]; } @end gorm-1.2.24/GormCore/GormResource.m0000644000000000000000000000762013410616261015556 0ustar rootroot/* GormResource.m * * Copyright (C) 2005 Free Software Foundation, Inc. * * Author: Gregory John Casamento * Date: 2005 * * This file is part of GNUstep. * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 3 of the License, or * (at your option) any later version. * * This program 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 General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02111 USA. */ #include #include #include #include "GormResource.h" // resource proxy object... @implementation GormResource + (GormResource*)resourceForPath: (NSString *)aPath { return [GormResource resourceForPath: aPath inWrapper: NO]; } + (GormResource*)resourceForPath: (NSString *)aPath inWrapper: (BOOL)flag { return AUTORELEASE([[GormResource alloc] initWithPath: aPath inWrapper: flag]); } - (id) initWithPath: (NSString *)aPath { return [self initWithPath: aPath inWrapper: NO]; } - (id) initWithPath: (NSString *)aPath inWrapper: (BOOL)flag { NSString *aName = [[aPath lastPathComponent] stringByDeletingPathExtension]; return [self initWithName: aName path: aPath inWrapper: flag]; } - (id) initWithData: (NSData *)aData withFileName: (NSString *)aFileName inWrapper: (BOOL)flag { if((self = [self init])) { ASSIGN(path, nil); ASSIGN(fileName, aFileName); ASSIGN(name, [fileName stringByDeletingPathExtension]); ASSIGN(fileType, [fileName pathExtension]); ASSIGN(data, aData); language = nil; isLocalized = NO; isSystemResource = NO; isInWrapper = flag; project = nil; } return self; } - (id) initWithName: (NSString *)aName path: (NSString *)aPath { return [self initWithName: aName path: aPath inWrapper: NO]; } /** * Designated initializer. */ - (id) initWithName: (NSString *)aName path: (NSString *)aPath inWrapper: (BOOL)flag { if((self = [super init])) { ASSIGN(path, aPath); ASSIGN(name, aName); ASSIGN(fileName, [aPath lastPathComponent]); ASSIGN(fileType, [fileName pathExtension]); language = nil; isLocalized = NO; isSystemResource = NO; isInWrapper = flag; project = nil; } return self; } - (void) dealloc { RELEASE(name); RELEASE(path); RELEASE(fileName); RELEASE(fileType); RELEASE(data); [super dealloc]; } - (void) setName: (NSString *)aName { ASSIGN(name, aName); } - (NSString *) name { return name; } - (void) setPath: (NSString *)aPath { ASSIGN(path, aPath); } - (void) setSystemResource: (BOOL)flag { isSystemResource = flag; } - (BOOL) isSystemResource { return isSystemResource; } - (void) setInWrapper: (BOOL)flag { isInWrapper = flag; } - (BOOL) isInWrapper { return isInWrapper; } - (void) setData: (NSData *)aData { ASSIGN(data, aData); } - (NSData *) data { return data; } - (BOOL) isEqual: (id)object { BOOL result = NO; if(object == self) result = YES; else if([object isKindOfClass: [self class]] == NO) result = NO; else if([[self name] isEqual: [(GormResource *)object name]]) result = YES; return result; } // IBProjectFiles methods. - (NSString *) fileName { return fileName; } - (NSString *) fileType { return fileType; } - (BOOL) isLocalized { return isLocalized; } - (NSString *) language { return language; } - (NSString *) path { return path; } - (id) project { return project; } @end gorm-1.2.24/GormCore/GormObjectInspector.m0000644000000000000000000002400513410616261017060 0ustar rootroot/* GormObjectInspector.m * * Copyright (C) 1999 Free Software Foundation, Inc. * * Author: Richard Frith-Macdonald * Date: 1999 * * This file is part of GNUstep. * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 3 of the License, or * (at your option) any later version. * * This program 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 General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02111 USA. */ #include "GormObjectInspector.h" @implementation GormObjectInspector - (id) init { self = [super init]; if (self != nil) { if([NSBundle loadNibNamed: @"GormObjectInspector" owner: self] == NO) { NSLog(@"Couldn't load GormObjectInsector"); return nil; } else { sets = [[NSMutableArray alloc] init]; gets = [[NSMutableDictionary alloc] init]; types = [[NSMutableDictionary alloc] init]; okButton = [[NSButton alloc] initWithFrame: NSMakeRect(0,0,90,20)]; [okButton setAutoresizingMask: NSViewMaxYMargin | NSViewMinXMargin]; [okButton setAction: @selector(ok:)]; [okButton setTarget: self]; [okButton setTitle: _(@"OK")]; [okButton setEnabled: NO]; revertButton = nil; } } return self; } - (NSInteger) browser: (NSBrowser*)sender numberOfRowsInColumn: (NSInteger)column { return [sets count]; } - (BOOL) browser: (NSBrowser*)sender selectCellWithString: (NSString*)title inColumn: (NSInteger)col { [self update: self]; return YES; } - (NSString*) browser: (NSBrowser*)sender titleOfColumn: (NSInteger)col { return @"Attribute setters"; } - (void) browser: (NSBrowser*)sender willDisplayCell: (id)aCell atRow: (NSInteger)row column: (NSInteger)col { if (row >= 0 && row < [sets count]) { [aCell setStringValue: [sets objectAtIndex: row]]; [aCell setEnabled: YES]; } else { [aCell setStringValue: @""]; [aCell setEnabled: NO]; } [aCell setLeaf: YES]; } - (void) dealloc { RELEASE(gets); RELEASE(sets); RELEASE(types); RELEASE(okButton); [super dealloc]; } - (void) ok: (id)sender { NSString *name = [[browser selectedCell] stringValue]; NSUInteger pos; if (name == nil || (pos = [sets indexOfObject: name]) == NSNotFound) { [label setTitle: _(@"No Type")]; [value setStringValue: @""]; [okButton setEnabled: NO]; } else { SEL set = NSSelectorFromString(name); NSString *type = [types objectForKey: name]; [super ok: sender]; if (type == typeChar) { char v = [value intValue]; void (*imp)(id,SEL,char); imp = (void (*)(id,SEL,char))[object methodForSelector: set]; (*imp)(object, set, v); } else if (type == typeUChar) { unsigned char v = [value intValue]; void (*imp)(id,SEL,unsigned char); imp = (void (*)(id,SEL,unsigned char))[object methodForSelector: set]; (*imp)(object, set, v); } else if (type == typeInt) { int v = [value intValue]; void (*imp)(id,SEL,int); imp = (void (*)(id,SEL,int))[object methodForSelector: set]; (*imp)(object, set, v); } else if (type == typeUInt) { unsigned int v = [value intValue]; void (*imp)(id,SEL,unsigned int); imp = (void (*)(id,SEL,unsigned int))[object methodForSelector: set]; (*imp)(object, set, v); } else if (type == typeFloat) { float v = [value floatValue]; void (*imp)(id,SEL,float); imp = (void (*)(id,SEL,float))[object methodForSelector: set]; (*imp)(object, set, v); } else if (type == typeDouble) { float v = [value doubleValue]; void (*imp)(id,SEL,double); imp = (void (*)(id,SEL,double))[object methodForSelector: set]; (*imp)(object, set, v); } else { id v = [value stringValue]; IMP imp = [object methodForSelector: set]; if (isString == YES) { (*imp)(object, set, v); } else { int result; v = [v stringByTrimmingSpaces]; result = NSRunAlertPanel(_(@"Settings"), [NSString stringWithFormat: _(@"Set object using '%@' as"), v], _(@"Object name"),_( @"String"), _(@"Class name")); if (result == NSAlertAlternateReturn) { (*imp)(object, set, v); } else if (result == NSAlertOtherReturn) { Class c = NSClassFromString(v); if (c != 0) { (*imp)(object, set, [[c alloc] init]); } } else { id o = [[(id)NSApp activeDocument] objectForName: v]; if (o != nil) { (*imp)(object, set, o); } } } } [self update: self]; } } - (void) setObject: (id)anObject { if (anObject != nil && anObject != object) { Class c = [anObject class]; ASSIGN(object, anObject); [sets removeAllObjects]; [gets removeAllObjects]; [types removeAllObjects]; while (c != nil && c != [NSObject class]) { unsigned int count; Method *methods = class_copyMethodList(c, &count); int i; for (i = 0; i < count; i++) { SEL sSel = method_getName(methods[i]); NSString *set = NSStringFromSelector(sSel); /* * We are interested in methods that set values - they have * a 'set' prefic and a colon as the last character. * we ignore duplicates from superclasses. */ if ([set hasPrefix: @"set"] == YES && [set rangeOfString: @":"].location == [set length] - 1 && [sets containsObject: set] == NO) { char tmp[[set cStringLength]+1]; const char *tInfo = method_getTypeEncoding(methods[i]); NSString *type = nil; NSString *get; SEL gSel; /* * see if we can find an appropriate method to get the * current value for an attribute we want to set. */ [set getCString: tmp]; tmp[3] = tolower(tmp[3]); tmp[strlen(tmp)-1] = '\0'; get = [NSString stringWithCString: &tmp[3]]; gSel = NSSelectorFromString(get); if (gSel == 0 || [object respondsToSelector: gSel] == NO) { get = nil; } /* * Skip the return type and the receiver and * selector specifications to the first (only) arg. */ tInfo = objc_skip_typespec(tInfo); if (*tInfo == '+') { tInfo++; } while (isdigit(*tInfo)) { tInfo++; } tInfo = objc_skip_argspec(tInfo); tInfo = objc_skip_argspec(tInfo); /* * Now find arguments whose types we can reasonably * deal with. */ switch (*tInfo) { case _C_ID: type = typeId; break; case _C_CHR: type = typeChar; break; case _C_UCHR: type = typeUChar; break; case _C_INT: type = typeInt; break; case _C_UINT: type = typeUInt; break; case _C_FLT: type = typeFloat; break; case _C_DBL: type = typeDouble; break; default: type = nil; break; } if (type != nil) { [sets addObject: set]; if (get != nil) { [gets setObject: get forKey: set]; } [types setObject: type forKey: set]; } } } free(methods); c = [c superclass]; } [sets sortUsingSelector: @selector(compare:)]; [browser loadColumnZero]; [self update: self]; } } - (void) update: (id)sender { NSString *name = [[browser selectedCell] stringValue]; NSUInteger pos; isString = NO; if (name == nil || (pos = [sets indexOfObject: name]) == NSNotFound) { [label setTitle: _(@"No Type")]; [value setStringValue: @""]; [okButton setEnabled: NO]; } else if ([gets objectForKey: name] != nil) { SEL get = NSSelectorFromString([gets objectForKey: name]); NSString *type = [types objectForKey: name]; [label setTitle: type]; if (type == typeChar) { char v; char (*imp)(); imp = (char (*)())[object methodForSelector: get]; v = (*imp)(object, get); [value setStringValue: [NSString stringWithFormat: @"%d", v]]; } else if (type == typeUChar) { unsigned char v; unsigned char (*imp)(); imp = (unsigned char (*)())[object methodForSelector: get]; v = (*imp)(object, get); [value setStringValue: [NSString stringWithFormat: @"%d", v]]; } else if (type == typeInt) { int v; int (*imp)(); imp = (int (*)())[object methodForSelector: get]; v = (*imp)(object, get); [value setStringValue: [NSString stringWithFormat: @"%d", v]]; } else if (type == typeUInt) { unsigned v; unsigned (*imp)(); imp = (unsigned (*)()) [object methodForSelector: get]; v = (*imp)(object, get); [value setStringValue: [NSString stringWithFormat: @"%u", v]]; } else if (type == typeFloat) { float v; float (*imp)(); imp = (float (*)())[object methodForSelector: get]; v = (*imp)(object, get); [value setStringValue: [NSString stringWithFormat: @"%f", v]]; } else if (type == typeDouble) { double v; double (*imp)(); imp = (double (*)())[object methodForSelector: get]; v = (*imp)(object, get); [value setStringValue: [NSString stringWithFormat: @"%g", v]]; } else { id v; IMP imp = [object methodForSelector: get]; v = (*imp)(object, get); if (v != nil && [v isKindOfClass: [NSString class]] == YES) { isString = YES; /* Existing value is a string. */ } [value setStringValue: [v description]]; } [okButton setEnabled: YES]; } else { [label setTitle: [NSString stringWithFormat: _(@"%@ - value unknown"), [types objectForKey: name]]]; [value setStringValue: @""]; [okButton setEnabled: YES]; } } - (BOOL) wantsButtons { return YES; } @end gorm-1.2.24/GormCore/GormPluginManager.h0000644000000000000000000000277113410616261016515 0ustar rootroot/* GormPluginManager.h * * Copyright (C) 1999, 2003 Free Software Foundation, Inc. * * Author: Gregory John Casamento * Author: Richard Frith-Macdonald * Date: 1999, 2003 * * This file is part of GNUstep. * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 3 of the License, or * (at your option) any later version. * * This program 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 General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02111 USA. */ #ifndef INCLUDED_GormPluginManager_h #define INCLUDED_GormPluginManager_h #include @class NSMutableArray, NSMutableDictionary, NSDictionary, NSArray, NSBundle; @class NSPanel, NSMatrix, NSView; @interface GormPluginManager : NSObject { NSMutableArray *bundles; NSMutableDictionary *pluginsDict; NSMutableArray *plugins; NSMutableArray *pluginNames; } // methods for loading and display the palette panels - (BOOL) loadPlugin: (NSString*)path; - (id) openPlugin: (id) sender; @end #endif gorm-1.2.24/GormCore/GormViewKnobs.h0000644000000000000000000000264113410616261015667 0ustar rootroot/* GormViewKnobs.h Copyright (C) 1999 Free Software Foundation, Inc. Author: Gregory John Casamento Date: 2004 This file is part of the GNUstep Interface Modeller Application. 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 3 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, 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ #ifndef INCLUDED_GormViewKnobs_h #define INCLUDED_GormViewKnobs_h #include #include #include void GormShowFastKnobFills(void); void GormShowFrameWithKnob(NSRect aRect, IBKnobPosition aKnob); void GormDrawKnobsForRect(NSRect aRect); void GormDrawOpenKnobsForRect(NSRect aRect); IBKnobPosition GormKnobHitInRect(NSRect aFrame, NSPoint p); NSRect GormExtBoundsForRect(NSRect aRect); #endif gorm-1.2.24/GormCore/GormClassEditor.h0000644000000000000000000000471113410616261016174 0ustar rootroot/* GormClassEditor.h * * Copyright (C) 1999, 2003, 2005 Free Software Foundation, Inc. * * Author: Gregory John Casamento * Date: 1999, 2003, 2005 * * This file is part of GNUstep. * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 3 of the License, or * (at your option) any later version. * * This program 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 General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02111 USA. */ #ifndef INCLUDED_GormClassEditor_h #define INCLUDED_GormClassEditor_h #include #include #include @class NSString, NSArray, GormDocument, GormClassManager, NSBrowser; extern NSString *GormClassPboardType; extern NSString *GormSwitchViewPreferencesNotification; @interface GormClassEditor : NSView { GormDocument *document; GormClassManager *classManager; NSString *selectedClass; NSScrollView *scrollView; GormOutlineView *outlineView; NSBrowser *browserView; id classesView; id mainView; id viewToggle; } - (GormClassEditor*) initWithDocument: (GormDocument*)doc; + (GormClassEditor*) classEditorForDocument: (GormDocument*)doc; - (void) setSelectedClassName: (NSString*)cn; - (NSString *) selectedClassName; - (void) selectClassWithObject: (id)obj editClass: (BOOL)flag; - (void) selectClassWithObject: (id)obj; - (void) selectClass: (NSString *)className editClass: (BOOL)flag; - (void) selectClass: (NSString *)className; - (BOOL) currentSelectionIsClass; - (void) editClass; // - (void) createSubclass; - (void) addAttributeToClass; - (void) deleteSelection; - (NSArray *) fileTypes; - (void) reloadData; - (BOOL) isEditing; - (id) instantiateClass: (id)sender; - (id) createSubclass: (id)sender; - (id) loadClass: (id)sender; - (id) createClassFiles: (id)sender; - (id) removeClass: (id)sender; @end #endif gorm-1.2.24/GormCore/GormSoundInspector.m0000644000000000000000000000473413410616261016751 0ustar rootroot/** GormSoundInspector allow user to select custom classes Copyright (C) 2002 Free Software Foundation, Inc. Author: Gregory John Casamento Date: September 2002 This file is part of GNUstep. 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 3 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, 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ /* All Rights reserved */ #include #include "GormSoundInspector.h" #include "GormPrivate.h" #include "GormClassManager.h" #include "GormDocument.h" #include "GormPrivate.h" #include "GormSoundView.h" #include "GormSound.h" @implementation GormSoundInspector + (void) initialize { if (self == [GormSoundInspector class]) { // TBD } } - (id) init { self = [super init]; if (self != nil) { // load the gui... if (![NSBundle loadNibNamed: @"GormSoundInspector" owner: self]) { NSLog(@"Could not open gorm GormSoundInspector"); return nil; } } return self; } - (void) dealloc { [[NSNotificationCenter defaultCenter] removeObserver: self]; [super dealloc]; } - (void) setObject: (id)anObject { // if its not nil, load it... if(anObject != nil) { if([anObject isKindOfClass: [GormSound class]]) { id snd; NSDebugLog(@"Sound inspector notified: %@",anObject); snd = AUTORELEASE([[NSSound alloc] initWithContentsOfFile: [anObject path] byReference: YES]); [super setObject: snd]; [soundView setSound: snd]; NSDebugLog(@"Loaded sound"); } } } - (void) stop: (id)sender { NSDebugLog(@"Stop"); [(NSSound *)object stop]; } - (void) play: (id)sender { NSDebugLog(@"Play"); [(NSSound *)object play]; } - (void) pause: (id)sender { NSDebugLog(@"Pause"); [object pause]; } - (void) record: (id)sender { NSDebugLog(@"Record"); // [object record]; } @end gorm-1.2.24/GormCore/GormNSPanel.h0000644000000000000000000000260413410616261015257 0ustar rootroot/* GormNSPanel.h Copyright (C) 2003 Free Software Foundation, Inc. Author: Gregory John Casamento Date: 2003 Adapted from GormNSWindow.h This file is part of GNUstep. This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 3 of the License, or (at your option) any later version. This program 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 General Public License for more details. You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02111 USA. */ #ifndef INCLUDED_GormNSPanel_h #define INCLUDED_GormNSPanel_h #include @interface GormNSPanel : NSPanel { unsigned _gormStyleMask; BOOL _gormReleasedWhenClosed; NSUInteger autoPositionMask; } - (void) _setStyleMask: (unsigned int)newStyleMask; - (unsigned int) _styleMask; - (void) _setReleasedWhenClosed: (BOOL) flag; - (BOOL) _isReleasedWhenClosed; - (unsigned int) autoPositionMask; - (void) setAutoPositionMask: (unsigned int)mask; @end #endif gorm-1.2.24/GormCore/GormInspectorsManager.m0000644000000000000000000003037513410616261017416 0ustar rootroot/* GormInspectorsManager.m * * Copyright (C) 1999 Free Software Foundation, Inc. * * Author: Richard Frith-Macdonald * Date: 1999 * * This file is part of GNUstep. * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 3 of the License, or * (at your option) any later version. * * This program 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 General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02111 USA. */ #include #include #include #include #include #include #include #include "GormPrivate.h" #include "GormImage.h" #include "GormSound.h" #define NUM_DEFAULT_INSPECTORS 5 @interface GormDummyInspector : IBInspector { NSButton *button; } - (NSString *)title; @end @implementation GormDummyInspector - (id) init { self = [super init]; if (self != nil) { if([NSBundle loadNibNamed: @"GormDummyInspector" owner: self]) { [button setStringValue: [self title]]; } } return self; } - (NSString *)title { return nil; } @end; /* * The GormEmptyInspector is a placeholder for an empty selection. */ @interface GormEmptyInspector : GormDummyInspector @end @implementation GormEmptyInspector - (NSString *)title { return _(@"Empty Selection"); } @end /* * The GormMultipleInspector is a placeholder for a multiple selection. */ @interface GormMultipleInspector : GormDummyInspector @end @implementation GormMultipleInspector - (NSString *)title { return _(@"Multiple Selection"); } @end /* * The GormNotApplicableInspector is a uitility for odd objects. */ @interface GormNotApplicableInspector : GormDummyInspector @end @implementation GormNotApplicableInspector - (NSString *)title { return _(@"Not Applicable"); } @end @implementation GormInspectorsManager - (void) dealloc { [[NSNotificationCenter defaultCenter] removeObserver: self]; RELEASE(oldInspector); RELEASE(cache); RELEASE(panel); [super dealloc]; } - (void) handleNotification: (NSNotification*)aNotification { NSString *name = [aNotification name]; if ([name isEqual: IBWillBeginTestingInterfaceNotification] == YES) { if ([panel isVisible] == YES) { hiddenDuringTest = YES; [panel orderOut: self]; } } else if ([name isEqual: IBWillEndTestingInterfaceNotification] == YES) { if (hiddenDuringTest == YES) { hiddenDuringTest = NO; [panel orderFront: self]; } } } - (id) init { if((self = [super init]) != nil) { NSNotificationCenter *nc = [NSNotificationCenter defaultCenter]; if([NSBundle loadNibNamed: @"GormInspectorPanel" owner: self]) { // initialized the cache... cache = [[NSMutableDictionary alloc] init]; // set the name under which this panel saves it's dimensions. [panel setFrameUsingName: @"Inspector"]; [panel setFrameAutosaveName: @"Inspector"]; // reset current tag indicator. current = -1; inspector = [[GormEmptyInspector alloc] init]; [cache setObject: inspector forKey: @"GormEmptyInspector"]; RELEASE(inspector); inspector = [[GormMultipleInspector alloc] init]; [cache setObject: inspector forKey: @"GormMultipleInspector"]; DESTROY(inspector); [self setCurrentInspector: 0]; [nc addObserver: self selector: @selector(handleNotification:) name: IBWillBeginTestingInterfaceNotification object: nil]; [nc addObserver: self selector: @selector(handleNotification:) name: IBWillEndTestingInterfaceNotification object: nil]; } } return self; } - (NSPanel*) panel { return panel; } - (void) updateSelection { if ([NSApp isConnecting] == YES) { [popup selectItemAtIndex: 1]; [popup setNeedsDisplay: YES]; [panel makeKeyAndOrderFront: self]; current = 1; } else if (current >= [popup numberOfItems]) { current = 1; } [self setCurrentInspector: self]; } - (void) setClassInspector { current = 4; [self setCurrentInspector: self]; } - (void) _addDefaultModes { // remove all items... clear out current state [modes removeAllObjects]; currentMode = nil; // Attributes inspector... [self addInspectorModeWithIdentifier: @"AttributesInspector" forObject: selectedObject localizedLabel: _(@"Attributes") inspectorClassName: [selectedObject inspectorClassName] ordering: 0.0]; // Connection inspector... [self addInspectorModeWithIdentifier: @"ConnectionInspector" forObject: selectedObject localizedLabel: _(@"Connections") inspectorClassName: [selectedObject connectInspectorClassName] ordering: 1.0]; // Size inspector... [self addInspectorModeWithIdentifier: @"SizeInspector" forObject: selectedObject localizedLabel: _(@"Size") inspectorClassName: [selectedObject sizeInspectorClassName] ordering: 2.0]; // Help inspector... [self addInspectorModeWithIdentifier: @"HelpInspector" forObject: selectedObject localizedLabel: _(@"Help") inspectorClassName: [selectedObject helpInspectorClassName] ordering: 3.0]; // Custom class inspector... [self addInspectorModeWithIdentifier: @"CustomClassInspector" forObject: selectedObject localizedLabel: _(@"Custom Class") inspectorClassName: [selectedObject classInspectorClassName] ordering: 4.0]; } - (void) _refreshPopUp { NSEnumerator *en = [modes objectEnumerator]; NSInteger index = 0; id obj = nil; [popup removeAllItems]; while((obj = [en nextObject]) != nil) { NSInteger tag = index + 1; NSMenuItem *item; [popup addItemWithTitle: [obj localizedLabel]]; item = (NSMenuItem *)[popup itemAtIndex: index]; [item setTarget: self]; [item setAction: @selector(setCurrentInspector:)]; [item setKeyEquivalent: [NSString stringWithFormat: @"%ld",(long)tag]]; [item setTag: tag]; index++; } } - (void) setCurrentInspector: (id)anObj { NSNotificationCenter *nc = [NSNotificationCenter defaultCenter]; NSArray *selection = [[(id)NSApp selectionOwner] selection]; unsigned count = [selection count]; id obj = [selection lastObject]; id document = [(id)NSApp activeDocument]; NSView *newView = nil; NSView *oldView = nil; NSString *newInspector = nil; NSInteger tag = 0; if (anObj != self) { tag = [anObj tag]; current = ((tag > 0)?(tag - 1):tag); } // reset current under certain conditions. if(current < 0) { current = 0; } NSDebugLog(@"current %i",current); // refresh object. selectedObject = obj; // remove any items beyond the original items on the list.. [self _addDefaultModes]; // inform the world that the object is about to be inspected. [nc postNotificationName: IBWillInspectObjectNotification object: obj]; // set key equivalent [self _refreshPopUp]; if([modes count] == NUM_DEFAULT_INSPECTORS) { if(current > (NUM_DEFAULT_INSPECTORS - 1)) { current = 0; } } if (count == 0) { newInspector = @"GormEmptyInspector"; } else if (count > 1) { newInspector = @"GormMultipleInspector"; } else { currentMode = [modes objectAtIndex: current]; newInspector = [currentMode inspectorClassName]; } /* * Set panel title for the type of object being inspected. */ if (selectedObject == nil) { [panel setTitle: _(@"Inspector")]; } else if([selectedObject isKindOfClass: [GormClassProxy class]]) { [panel setTitle: [NSString stringWithFormat: @"Class Edit Inspector:%@", [selectedObject className]]]; } else { NSString *newTitle = [selectedObject objectNameForInspectorTitle]; NSString *objName = [document nameForObject: selectedObject]; [panel setTitle: [NSString stringWithFormat:_(@"%@ (%@) Inspector"), newTitle,objName]]; } if (newInspector == nil) { newInspector = @"GormNotApplicableInspector"; } if ([oldInspector isEqual: newInspector] == NO) { id prevInspector = nil; /* * Return the inspector view to its original window and release the old * inspector. */ if(inspector != nil) { [[inspector okButton] removeFromSuperview]; [[inspector revertButton] removeFromSuperview]; } ASSIGN(oldInspector, newInspector); prevInspector = inspector; inspector = [cache objectForKey: newInspector]; if (inspector == nil) { Class c = NSClassFromString(newInspector); inspector = [[c alloc] init]; /* Try to gracefully handle an inspector creation error */ while (inspector == nil && (obj = [obj superclass]) && current == 0) { NSDebugLog(@"Error loading %@ inspector", newInspector); newInspector = [obj inspectorClassName]; inspector = [[NSClassFromString(newInspector) alloc] init]; } [cache setObject: inspector forKey: newInspector]; RELEASE(inspector); } oldView = [inspectorView contentView]; newView = [[inspector window] contentView]; if (newView != nil && newView != oldView) { id initialResponder = [[inspector window] initialFirstResponder]; NSView *outer = [panel contentView]; NSRect rect = [panel frame]; /* We should compute the delta between the heights of the old inspector view and the new one. The delta will be used to compute the size of the inspector panel. Is is needed because subsequent changes of object selection lead to the cluttered inspector's UI otherwise. */ CGFloat delta = [newView frame].size.height - [oldView frame].size.height; rect.size.height = rect.size.height + delta; rect.origin.y = [panel frame].origin.y - delta; // [panel setContentSize: rect.size]; [panel setFrame: rect display: YES]; rect = [outer bounds]; /* Set initialFirstResponder */ if (buttonView != nil) { [buttonView removeFromSuperview]; buttonView = nil; } rect.size.height = [newView frame].size.height; if ([inspector wantsButtons] == YES) { NSRect buttonsRect; NSRect bRect = NSMakeRect(0, 0, 60, 20); NSButton *ok; NSButton *revert; rect.size.height = [selectionView frame].origin.y; buttonsRect = NSMakeRect(0,0,rect.size.width,IVB); rect.origin.y += IVB; rect.size.height -= (IVB + 3); buttonView = [[NSView alloc] initWithFrame: buttonsRect]; [buttonView setAutoresizingMask: NSViewWidthSizable]; [outer addSubview: buttonView]; RELEASE(buttonView); ok = [inspector okButton]; if (ok != nil) { bRect = [ok frame]; bRect.origin.y = 10; bRect.origin.x = buttonsRect.size.width-10-bRect.size.width; [ok setFrame: bRect]; [buttonView addSubview: ok]; } revert = [inspector revertButton]; if (revert != nil) { bRect = [revert frame]; bRect.origin.y = 10; bRect.origin.x = 10; [revert setFrame: bRect]; [buttonView addSubview: revert]; } } else { rect.size.height = [newView frame].size.height; [buttonView removeFromSuperview]; } /* * Make the inspector view the correct size for the viewable panel, * and set the frame size for the new contents before adding them. */ [inspectorView setFrame: rect]; rect.origin = NSZeroPoint; [newView setFrame: rect]; RETAIN(oldView); [inspectorView setContentView: newView]; [[prevInspector window] setContentView: oldView]; [outer setNeedsDisplay: YES]; // RELEASE(oldView); /* Set the default First responder to the new View */ if ( initialResponder ) { [panel setInitialFirstResponder:initialResponder]; } } } // reset the popup.. [popup selectItemAtIndex: current]; // inspect the object. [inspector setObject: [currentMode object]]; } @end gorm-1.2.24/GormCore/GormCustomClassInspector.h0000644000000000000000000000271413410616261020110 0ustar rootroot/** GormCustomClassInspector allow user to select custom classes Copyright (C) 2002 Free Software Foundation, Inc. Author: Gregory John Casamento Date: September 2002 This file is part of GNUstep. 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 3 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, 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ #ifndef INCLUDED_GormCustomClassInspector_h #define INCLUDED_GormCustomClassInspector_h #include #include @class GormClassManager; @interface GormCustomClassInspector : IBInspector { id browser; id _document; GormClassManager *_classManager; NSString *_currentSelectionClassName; NSString *_parentClassName; NSUInteger _rowToSelect; } - (void) select: (id)sender; @end #endif gorm-1.2.24/GormCore/GormResourceEditor.h0000644000000000000000000000254513410616261016721 0ustar rootroot/* GormResourceEditor.h * * Copyright (C) 2005 Free Software Foundation, Inc. * * Author: Gregory John Casamento * Date: 2005 * * This file is part of GNUstep. * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 3 of the License, or * (at your option) any later version. * * This program 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 General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02111 USA. */ #ifndef INCLUDED_GormResourceEditor_h #define INCLUDED_GormResourceEditor_h #include "GormGenericEditor.h" @interface GormResourceEditor : GormGenericEditor - (void) draggedImage: (NSImage*)i endedAt: (NSPoint)p deposited: (BOOL)f; - (unsigned int) draggingSourceOperationMaskForLocal: (BOOL)flag; - (void) refreshCells; - (id) placeHolderWithPath: (NSString *)path; - (NSArray *) pbTypes; - (NSString *) resourceType; - (void) addSystemResources; @end #endif gorm-1.2.24/GormCore/GormNSWindow.h0000644000000000000000000000254513410616261015473 0ustar rootroot/* GormWindow.h Copyright (C) 2001 Free Software Foundation, Inc. Author: Pierre-Yves Rivaille Date: 2001 This file is part of GNUstep. This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 3 of the License, or (at your option) any later version. This program 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 General Public License for more details. You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02111 USA. */ #ifndef INCLUDED_GormNSWindow_h #define INCLUDED_GormNSWindow_h #include @interface GormNSWindow : NSWindow { unsigned _gormStyleMask; BOOL _gormReleasedWhenClosed; NSUInteger autoPositionMask; } - (void) _setStyleMask: (unsigned int)newStyleMask; - (unsigned int) _styleMask; - (void) _setReleasedWhenClosed: (BOOL) flag; - (BOOL) _isReleasedWhenClosed; - (unsigned int) autoPositionMask; - (void) setAutoPositionMask: (unsigned int)mask; @end #endif gorm-1.2.24/GormCore/GormPluginManager.m0000644000000000000000000002120413410616261016512 0ustar rootroot/* GormPluginManager.m * * Copyright (C) 1999 Free Software Foundation, Inc. * * Author: Richard Frith-Macdonald * Author: Gregory John Casamento * Date: 1999, 2004, 2008 * * This file is part of GNUstep. * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 3 of the License, or * (at your option) any later version. * * This program 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 General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02111 USA. */ #include "GormPrivate.h" #include #include #include #include #include #include "GormFunctions.h" #include "GormPluginManager.h" #define BUILTIN_PLUGINS @"BuiltinPlugins" #define USER_PLUGINS @"UserPlugins" @implementation GormPluginManager - (void) dealloc { [[NSNotificationCenter defaultCenter] removeObserver: self]; RELEASE(bundles); RELEASE(plugins); RELEASE(pluginsDict); [super dealloc]; } /* - (void) handleNotification: (NSNotification*)aNotification { NSString *name = [aNotification name]; if ([name isEqual: IBWillBeginTestingInterfaceNotification] == YES) { if ([panel isVisible] == YES) { hiddenDuringTest = YES; [panel orderOut: self]; } } else if ([name isEqual: IBWillEndTestingInterfaceNotification] == YES) { if (hiddenDuringTest == YES) { hiddenDuringTest = NO; [panel orderFront: self]; } } } */ - (id) init { NSArray *array; NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults]; NSArray *userPlugins = [defaults arrayForKey: USER_PLUGINS]; // NSNotificationCenter *nc = [NSNotificationCenter defaultCenter]; self = [super init]; if(self != nil) { /* if([NSBundle loadNibNamed: @"GormPluginPanel" owner: self] == NO) { return nil; } */ } else { return nil; } // // Initialize dictionary // pluginsDict = [[NSMutableDictionary alloc] init]; plugins = [[NSMutableArray alloc] init]; pluginNames = [[NSMutableArray alloc] init]; // // Set frame name // // [panel setFrameUsingName: @"Plugins"]; // [panel setFrameAutosaveName: @"Plugins"]; array = [[NSBundle mainBundle] pathsForResourcesOfType: @"plugin" inDirectory: nil]; if ([array count] > 0) { unsigned index; array = [array sortedArrayUsingSelector: @selector(compare:)]; for (index = 0; index < [array count]; index++) { [self loadPlugin: [array objectAtIndex: index]]; } } // if we have any user plugins load them as well. if(userPlugins != nil) { NSEnumerator *en = [userPlugins objectEnumerator]; id pluginName = nil; while((pluginName = [en nextObject]) != nil) { [self loadPlugin: pluginName]; } } /* [nc addObserver: self selector: @selector(handleNotification:) name: IBWillBeginTestingInterfaceNotification object: nil]; [nc addObserver: self selector: @selector(handleNotification:) name: IBWillEndTestingInterfaceNotification object: nil]; */ return self; } - (BOOL) bundlePathIsLoaded: (NSString *)path { int col = 0; NSBundle *bundle; for (col = 0; col < [bundles count]; col++) { bundle = [bundles objectAtIndex: col]; if ([path isEqualToString: [bundle bundlePath]] == YES) { return YES; } } return NO; } - (BOOL) loadPlugin: (NSString*)path { NSBundle *bundle; NSString *className; IBPlugin *plugin; Class pluginClass; //NSDictionary *pluginInfo; //NSWindow *window; //NSArray *exportClasses; //NSArray *exportSounds; //NSArray *exportImages; //NSDictionary *subClasses; if([self bundlePathIsLoaded: path]) { NSRunAlertPanel (nil, _(@"Plugin has already been loaded"), _(@"OK"), nil, nil); return NO; } bundle = [NSBundle bundleWithPath: path]; if (bundle == nil) { NSRunAlertPanel(nil, _(@"Could not load Plugin"), _(@"OK"), nil, nil); return NO; } /* May use this later for class description path = [bundle pathForResource: @"plugin" ofType: @"table"]; if (path == nil) { NSRunAlertPanel(nil, _(@"File 'palette.table' missing"), _(@"OK"), nil, nil); return NO; } // attempt to load the palette table in either the strings or plist format. NS_DURING { paletteInfo = [[NSString stringWithContentsOfFile: path] propertyList]; if (paletteInfo == nil) { paletteInfo = [[NSString stringWithContentsOfFile: path] propertyListFromStringsFileFormat]; if(paletteInfo == nil) { NSRunAlertPanel(_(@"Problem Loading Palette"), _(@"Failed to load 'palette.table' using strings or property list format."), _(@"OK"), nil, nil); return NO; } } } NS_HANDLER { NSString *message = [NSString stringWithFormat: _(@"Encountered exception %@ attempting to load 'palette.table'."), [localException reason]]; NSRunAlertPanel(_(@"Problem Loading Palette"), message, _(@"OK"), nil, nil); return NO; } NS_ENDHANDLER */ className = [[bundle infoDictionary] objectForKey: @"NSPrincipalClass"]; if (className == nil) { NSRunAlertPanel(nil, _(@"No plugin class in plist"), _(@"OK"), nil, nil); return NO; } pluginClass = [bundle classNamed: className]; if (pluginClass == 0) { NSRunAlertPanel (nil, _(@"Could not load plugin class"), _(@"OK"), nil, nil); return NO; } plugin = [[pluginClass alloc] init]; if ([plugin isKindOfClass: [IBPlugin class]] == NO) { NSRunAlertPanel (nil, _(@"Plugin contains wrong type of class"), _(@"OK"), nil, nil); RELEASE(plugin); return NO; } // add to the bundles list... [bundles addObject: bundle]; /* exportClasses = [paletteInfo objectForKey: @"ExportClasses"]; if(exportClasses != nil) { [self importClasses: exportClasses withDictionary: nil]; } exportImages = [paletteInfo objectForKey: @"ExportImages"]; if(exportImages != nil) { [self importImages: exportImages withBundle: bundle]; } exportSounds = [paletteInfo objectForKey: @"ExportSounds"]; if(exportSounds != nil) { [self importSounds: exportSounds withBundle: bundle]; } subClasses = [paletteInfo objectForKey: @"SubstituteClasses"]; if(subClasses != nil) { [substituteClasses addEntriesFromDictionary: subClasses]; } */ [plugin didLoad]; // manage plugin data. [pluginsDict setObject: plugin forKey: className]; [plugins addObject: plugin]; [pluginNames addObject: className]; RELEASE(plugin); return YES; } - (id) openPlugin: (id) sender { NSArray *fileTypes = [NSArray arrayWithObject: @"plugin"]; NSOpenPanel *oPanel = [NSOpenPanel openPanel]; int result; NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults]; NSArray *userPlugins = [defaults arrayForKey: USER_PLUGINS]; NSMutableArray *newUserPlugins = (userPlugins == nil)?[NSMutableArray array]:[NSMutableArray arrayWithArray: userPlugins]; [oPanel setAllowsMultipleSelection: YES]; [oPanel setCanChooseFiles: YES]; [oPanel setCanChooseDirectories: NO]; result = [oPanel runModalForDirectory: NSHomeDirectory() file: nil types: fileTypes]; if (result == NSOKButton) { NSArray *filesToOpen = [oPanel filenames]; unsigned count = [filesToOpen count]; unsigned i; for (i = 0; i < count; i++) { NSString *aFile = [filesToOpen objectAtIndex: i]; if([self bundlePathIsLoaded: aFile] == YES && [userPlugins containsObject: aFile] == NO) { [newUserPlugins addObject: aFile]; } else if([self loadPlugin: aFile] == NO) { return nil; } else { [newUserPlugins addObject: aFile]; } } // reset the defaults to include the new plugin. [defaults setObject: newUserPlugins forKey: USER_PLUGINS]; return self; } return nil; } /* - (NSPanel*) panel { return panel; } */ @end gorm-1.2.24/GormCore/GormScrollViewEditor.m0000644000000000000000000001257013410616261017227 0ustar rootroot/* GormScrollViewEditor.m * * Copyright (C) 2002 Free Software Foundation, Inc. * * Author: Pierre-Yves Rivaille * Author: Gregory John Casamento * Date: 2002 * * This file is part of GNUstep. * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 3 of the License, or * (at your option) any later version. * * This program 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 General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02111 USA. */ #include #include #include "GormPrivate.h" #include "GormBoxEditor.h" #include "GormViewKnobs.h" @implementation NSScrollView (IBObjectAdditions) - (NSString *) inspectorClassName { return @"GormScrollViewAttributesInspector"; } - (NSString*) editorClassName { return @"GormScrollViewEditor"; } @end #define _EO ((NSScrollView *)_editedObject) @interface GormScrollViewEditor : GormViewWithSubviewsEditor { GormInternalViewEditor *documentViewEditor; } @end @implementation GormScrollViewEditor - (void) setOpened: (BOOL) flag { [super setOpened: flag]; if (flag == YES) { [document setSelectionFromEditor: documentViewEditor]; } } - (BOOL) activate { if ([super activate]) { NSView *documentView = [_EO documentView]; NSDebugLog(@"documentView %@", documentView); documentViewEditor = (GormInternalViewEditor *)[document editorForObject: documentView inEditor: self create: YES]; return YES; } return NO; } - (void) deactivate { if (activated == YES) { [self deactivateSubeditors]; [super deactivate]; } } - (void) mouseDown: (NSEvent *) theEvent { BOOL onKnob = NO; if ([parent respondsToSelector: @selector(selection)] && [[parent selection] containsObject: _EO]) { IBKnobPosition knob = IBNoneKnobPosition; NSPoint mouseDownPoint = [self convertPoint: [theEvent locationInWindow] fromView: nil]; knob = GormKnobHitInRect([self bounds], mouseDownPoint); if (knob != IBNoneKnobPosition) { onKnob = YES; } } if (onKnob == YES) { if (parent) { return [parent mouseDown: theEvent]; } else { return [self noResponderFor: @selector(mouseDown:)]; } } if (opened == NO) { [super mouseDown: theEvent]; return; } if ([[_EO hitTest: [theEvent locationInWindow]] isDescendantOf: documentViewEditor]) { if (([self isOpened] == YES) && ([documentViewEditor isOpened] == NO)) { [documentViewEditor setOpened: YES]; } if ([documentViewEditor isOpened]) { [documentViewEditor mouseDown: theEvent]; } } else { NSView *v = [_EO hitTest: [theEvent locationInWindow]]; id r = [v nextResponder]; if([v respondsToSelector: @selector(setNextResponder:)]) { // this is done to prevent a responder loop. [v setNextResponder: nil]; [v mouseDown: theEvent]; [v setNextResponder: r]; } else { [v mouseDown: theEvent]; } } } - (void) dealloc { RELEASE(selection); [super dealloc]; } - (id) initWithObject: (id)anObject inDocument: (id)aDocument { opened = NO; openedSubeditor = nil; if ((self = [super initWithObject: anObject inDocument: aDocument]) == nil) { return nil; } selection = [[NSMutableArray alloc] initWithCapacity: 5]; [self registerForDraggedTypes: [NSArray arrayWithObjects: IBViewPboardType, GormLinkPboardType, IBFormatterPboardType, nil]]; return self; } - (NSArray *)destroyAndListSubviews { id documentView = [_EO documentView]; NSArray *subviews = [documentView subviews]; NSMutableArray *newSelection = [NSMutableArray array]; if([documentView conformsToProtocol: @protocol(IBEditors)] == YES) { id internalView = [subviews objectAtIndex: 0]; NSEnumerator *enumerator = [[internalView subviews] objectEnumerator]; GormViewEditor *subview; if([[documentView editedObject] isKindOfClass: [NSTextView class]]) return newSelection; [parent makeSubeditorResign]; while ((subview = [enumerator nextObject]) != nil) { id v; NSRect frame; v = [subview editedObject]; frame = [v frame]; frame = [parent convertRect: frame fromView: _EO]; [subview deactivate]; [v setFrame: frame]; [newSelection addObject: v]; } } else { NSRect frame = [documentView frame]; if([documentView isKindOfClass: [NSTextView class]]) return newSelection; // In this case the view editor is the documentView and // we need to add the internal view back into the superview frame = [parent convertRect: frame fromView: _EO]; [documentView setFrame: frame]; [newSelection addObject: documentView]; [_EO setDocumentView: nil]; } [self close]; return newSelection; } @end gorm-1.2.24/GormCore/GormPrivate.h0000644000000000000000000000772513410616261015402 0ustar rootroot/* GormPrivate.h * * Copyright (C) 1999, 2003 Free Software Foundation, Inc. * * Author: Richard Frith-Macdonald * Author: Gregory John Casamento * Date: 1999, 2003 * * This file is part of GNUstep. * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 3 of the License, or * (at your option) any later version. * * This program 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 General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02111 USA. */ #ifndef INCLUDED_GormPrivate_h #define INCLUDED_GormPrivate_h #include #include #include #include #include #include #include #include #include #include #include #include extern NSString *GormLinkPboardType; extern NSString *GormToggleGuidelineNotification; extern NSString *GormDidModifyClassNotification; extern NSString *GormDidAddClassNotification; extern NSString *GormDidDeleteClassNotification; extern NSString *GormWillDetachObjectFromDocumentNotification; extern NSString *GormResizeCellNotification; @class GormDocument; @class GormInspectorsManager; @class GormPalettesManager; // templates @interface GSNibItem (GormAdditions) - (id) initWithClassName: (NSString*)className; - (id) initWithClassName: (NSString*)className frame: (NSRect)frame; - (NSString*) className; @end @interface GSClassSwapper (GormCustomClassAdditions) + (void) setIsInInterfaceBuilder: (BOOL)flag; - (BOOL) isInInterfaceBuilder; @end @interface NSClassSwapper (GormCustomClassAdditions) + (void) setIsInInterfaceBuilder: (BOOL)flag; - (BOOL) isInInterfaceBuilder; @end @interface GormObjectProxy : GSNibItem /* * Use a GormObjectProxy in Gorm, but encode a GSNibItem in the archive. * This is done so that we can provide our own decoding method * (GSNibItem tries to morph into the actual class) */ - (void) setClassName: (NSString *)className; @end @interface GormClassProxy : NSObject { NSString *name; NSInteger t; } - initWithClassName: (NSString*)n; - (NSString*) className; - (NSString*) inspectorClassName; - (NSString*) connectInspectorClassName; - (NSString*) sizeInspectorClassName; @end /* * NSDateFormatter and NSNumberFormatter extensions * for Gorm Formatters used in the Data Palette */ @interface NSDateFormatter (GormAdditions) + (int) formatCount; + (NSString *) formatAtIndex: (int)index; + (NSInteger) indexOfFormat: (NSString *) format; + (NSString *) defaultFormat; + (id) defaultFormatValue; @end @interface NSNumberFormatter (GormAdditions) + (int) formatCount; + (NSString *) formatAtIndex: (int)index; + (NSString *) positiveFormatAtIndex: (int)index; + (NSString *) zeroFormatAtIndex: (int)index; + (NSString *) negativeFormatAtIndex: (int)index; + (NSDecimalNumber *) positiveValueAtIndex: (int)index; + (NSDecimalNumber *) negativeValueAtIndex: (int)index; + (NSInteger) indexOfFormat: (NSString *)format; + (NSString *) defaultFormat; + (id) defaultFormatValue; - (NSString *) zeroFormat; @end @interface NSObject (GormAdditions) - (id) allocSubstitute; - (NSImage *) imageForViewer; @end @interface IBResourceManager (GormAdditions) + (void) registerForAllPboardTypes: (id)editor inDocument: (id)document; @end #endif gorm-1.2.24/GormCore/GormGenericEditor.m0000644000000000000000000001751713410616261016520 0ustar rootroot/* GormGenericEditor.m * * Copyright (C) 1999, 2003 Free Software Foundation, Inc. * * Author: Pierre-Yves Rivaille * Author: Gregory John Casamento * Date: 1999, 2003 * * This file is part of GNUstep. * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 3 of the License, or * (at your option) any later version. * * This program 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 General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02111 USA. */ #include "GormGenericEditor.h" @implementation GormGenericEditor + (id) editorForDocument: (id)aDocument { // does nothing here, the subclass must define this. return nil; } - (id) editorForDocument: (id)aDocument { return [[self class] editorForDocument: aDocument]; } + (void) setEditor: (id)editor forDocument: (id)aDocument { // does nothing, defined by subclass. } - (void) setEditor: (id)editor forDocument: (id)aDocument { [[self class] setEditor: editor forDocument: aDocument]; } - (BOOL) acceptsFirstMouse: (NSEvent*)theEvent { return YES; /* Ensure we get initial mouse down event. */ } - (BOOL) activate { activated = YES; [[self window] makeKeyAndOrderFront: self]; return YES; } - (void) addObject: (id)anObject { if (anObject != nil && [objects indexOfObjectIdenticalTo: anObject] == NSNotFound) { [objects addObject: anObject]; [self refreshCells]; } } - (void) mouseDown: (NSEvent*)theEvent { if ([theEvent modifierFlags] & NSControlKeyMask) { NSPoint loc = [theEvent locationInWindow]; NSInteger r = 0, c = 0; int pos = 0; id obj = nil; loc = [self convertPoint: loc fromView: nil]; [self getRow: &r column: &c forPoint: loc]; pos = r * [self numberOfColumns] + c; if (pos >= 0 && pos < [objects count]) { obj = [objects objectAtIndex: pos]; } if (obj != nil && obj != selected) { [self selectObjects: [NSArray arrayWithObject: obj]]; [self makeSelectionVisible: YES]; } } [super mouseDown: theEvent]; } - (id) changeSelection: (id)sender { int row = [self selectedRow]; int col = [self selectedColumn]; int index = row * [self numberOfColumns] + col; id obj = nil; if (index >= 0 && index < [objects count]) { obj = [objects objectAtIndex: index]; [self selectObjects: [NSArray arrayWithObject: obj]]; } return obj; } - (BOOL) containsObject: (id)object { if ([objects indexOfObjectIdenticalTo: object] == NSNotFound) return NO; return YES; } - (void) willCloseDocument: (NSNotification *)aNotification { document = nil; } - (void) close { if(closed == NO) { closed = YES; [document editor: self didCloseForObject: [self editedObject]]; [self deactivate]; [self closeSubeditors]; } } // Stubbed out methods... Since this is an abstract class, some methods need to be // provided so that compilation will occur cleanly and to give a warning if called. - (void) closeSubeditors { } - (void) resetObject: (id)object { } - (id) initWithObject: (id)anObject inDocument: (id)aDocument { if((self = [super init]) != nil) { /* don't retain the document... */ document = aDocument; closed = NO; activated = NO; resourceManager = nil; /* since we don't retain the document handle its close notifications */ [[NSNotificationCenter defaultCenter] addObserver: self selector: @selector(willCloseDocument:) name: IBWillCloseDocumentNotification object: document]; } return self; } - (BOOL) acceptsTypeFromArray: (NSArray*)types { return NO; } - (void) makeSelectionVisible: (BOOL)flag { } - (void) deactivate { activated = NO; } - (void) copySelection { } - (void) pasteInSelection { } // end of stubbed methods... - (void) dealloc { if(closed == NO) [self close]; // The resource manager is a weak connection and is not retained, // no need to release it here. RELEASE(objects); // Remove self from any and all notifications. [[NSNotificationCenter defaultCenter] removeObserver: self]; [super dealloc]; } - (void) deleteSelection { if (selected != nil) { [document detachObject: selected]; [objects removeObjectIdenticalTo: selected]; [self selectObjects: [NSArray array]]; [self refreshCells]; } } - (id) document { return document; } - (id) editedObject { return selected; } - (id) openSubeditorForObject: (id)anObject { return nil; } - (void) orderFront { [[self window] orderFront: self]; } /* * Return the rectangle in which an objects image will be displayed. * (use window coordinates) */ - (NSRect) rectForObject: (id)anObject { NSUInteger pos = [objects indexOfObjectIdenticalTo: anObject]; NSRect rect; int r; int c; if (pos == NSNotFound) return NSZeroRect; r = pos / [self numberOfColumns]; c = pos % [self numberOfColumns]; rect = [self cellFrameAtRow: r column: c]; /* * Adjust to image area. */ rect.size.height -= 15; rect = [self convertRect: rect toView: nil]; return rect; } - (void) refreshCells { NSUInteger count = [objects count]; NSUInteger index = 0; int cols = 0; int rows = 0; int width = 0; if ([self superview]) width = [[self superview] bounds].size.width; while (width >= 72) { width -= (72 + 8); cols++; } if (cols == 0) { cols = 1; } rows = count / cols; if (rows == 0 || rows * cols != count) { rows++; } [self renewRows: rows columns: cols]; for (index = 0; index < count; index++) { id obj = [objects objectAtIndex: index]; NSButtonCell *but = [self cellAtRow: index/cols column: index%cols]; [but setImage: [obj imageForViewer]]; [but setTitle: [document nameForObject: obj]]; [but setShowsStateBy: NSChangeGrayCellMask]; [but setHighlightsBy: NSChangeGrayCellMask]; } while (index < rows * cols) { NSButtonCell *but = [self cellAtRow: index/cols column: index%cols]; [but setImage: nil]; [but setTitle: @""]; [but setShowsStateBy: NSNoCellMask]; [but setHighlightsBy: NSNoCellMask]; index++; } [self setIntercellSpacing: NSMakeSize(8,8)]; [self sizeToCells]; [self setNeedsDisplay: YES]; } - (void) removeObject: (id)anObject { NSUInteger pos; pos = [objects indexOfObjectIdenticalTo: anObject]; if (pos == NSNotFound) { return; } [objects removeObjectAtIndex: pos]; [self refreshCells]; } - (void) resizeWithOldSuperviewSize: (NSSize)oldSize { [self refreshCells]; } - (NSArray*) selection { if (selected == nil) return [NSArray array]; else return [NSArray arrayWithObject: selected]; } - (NSUInteger) selectionCount { return (selected == nil) ? 0 : 1; } - (BOOL) wantsSelection { return NO; } - (NSWindow*) window { return [super window]; } - (void) selectObjects: (NSArray*)anArray { id obj = [anArray lastObject]; selected = obj; [document setSelectionFromEditor: self]; [self makeSelectionVisible: YES]; } - (NSArray *) objects { return objects; } - (BOOL) isOpened { return (closed == NO); } // stubs for protocol methods not implemented in this editor. - (void) validateEditing { // does nothing. } - (void) drawSelection { // does nothing. } - (NSArray *)fileTypes { return nil; } @end gorm-1.2.24/GormCore/GormHelpInspector.h0000644000000000000000000000025013410616261016531 0ustar rootroot/* All Rights reserved */ #include #include @interface GormHelpInspector : IBInspector { id toolTip; } @end gorm-1.2.24/GormCore/GormScrollViewAttributesInspector.m0000644000000000000000000000634513410616261022021 0ustar rootroot/** GormScrollViewAttributesInspector allow user to edit attributes of a scroll view Copyright (C) 2003 Free Software Foundation, Inc. Author: Gregory John Casamento Date: June 2003 This file is part of GNUstep. 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 3 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, 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ /* All Rights reserved */ #include #include "GormScrollViewAttributesInspector.h" @implementation GormScrollViewAttributesInspector - init { self = [super init]; if (self != nil) { if ([NSBundle loadNibNamed: @"GormScrollViewAttributesInspector" owner: self] == NO) { NSDictionary *table; NSBundle *bundle; table = [NSDictionary dictionaryWithObject: self forKey: @"NSOwner"]; bundle = [NSBundle mainBundle]; if ([bundle loadNibFile: @"GormScrollViewAttributesInspector" externalNameTable: table withZone: [self zone]] == NO) { NSLog(@"Could not open gorm GormScrollViewAttributesInspector"); NSLog(@"self %@", self); return nil; } } } return self; } - (void) _getValuesFromObject { [color setColor: [object backgroundColor]]; [horizontalScroll setState: [object hasHorizontalScroller]?NSOnState:NSOffState]; [verticalScroll setState: [object hasVerticalScroller]?NSOnState:NSOffState]; [horizontalRuler setState: [object hasHorizontalRuler]?NSOnState:NSOffState]; [verticalRuler setState: [object hasVerticalRuler]?NSOnState:NSOffState]; } - (void) setObject: (id)anObject { [super setObject: anObject]; [self _getValuesFromObject]; } - (void) colorSelected: (id)sender { /* insert your code here */ [super ok: sender]; [object setBackgroundColor: [color color]]; } - (void) verticalSelected: (id)sender { /* insert your code here */ [super ok: sender]; [object setHasVerticalScroller: ([verticalScroll state] == NSOnState)]; } - (void) horizontalSelected: (id)sender { /* insert your code here */ [super ok: sender]; [object setHasHorizontalScroller: ([horizontalScroll state] == NSOnState)]; } - (void) verticalRuler: (id)sender { /* insert your code here */ [super ok: sender]; [object setHasVerticalRuler: ([verticalRuler state] == NSOnState)]; } - (void) horizontalRuler: (id)sender { /* insert your code here */ [super ok: sender]; [object setHasHorizontalRuler: ([horizontalRuler state] == NSOnState)]; } - (void) borderSelected: (id)sender { /* insert your code here */ [super ok: sender]; [object setBorderType: [[borderMatrix selectedCell] tag]]; } @end gorm-1.2.24/GormCore/GormResource.h0000644000000000000000000000477713410616261015563 0ustar rootroot/** GormResource This class is a placeholder for a real resource. Copyright (C) 2005 Free Software Foundation, Inc. Author: Gregory John Casamento Date: Mar 2005 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 3 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, 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ #ifndef INCLUDED_GormResource_h #define INCLUDED_GormResource_h #include #include #include #include @class NSString, NSData; @interface GormResource : NSObject { NSString *name; NSString *fileName; NSString *fileType; BOOL isLocalized; NSString *language; NSString *path; id project; BOOL isSystemResource; BOOL isInWrapper; NSData *data; } // factory methods + (GormResource *) resourceForPath: (NSString *)path; + (GormResource *) resourceForPath: (NSString *)path inWrapper: (BOOL)flag; // initialization methods - (id) initWithPath: (NSString *)aPath; - (id) initWithPath: (NSString *)aPath inWrapper: (BOOL)flag; - (id) initWithName: (NSString *)aName path: (NSString *)aPath; - (id) initWithName: (NSString *)aName path: (NSString *)aPath inWrapper: (BOOL)flag; - (id) initWithData: (NSData *)aData withFileName: (NSString *)aFileName inWrapper: (BOOL)flag; // instances methods - (void) setName: (NSString *)aName; - (NSString *) name; - (void) setSystemResource: (BOOL)flag; - (BOOL) isSystemResource; - (void) setInWrapper: (BOOL)flag; - (BOOL) isInWrapper; - (void) setData: (NSData *)data; - (NSData *) data; - (BOOL) isEqual: (id)object; @end #endif gorm-1.2.24/GormCore/GormImageEditor.m0000644000000000000000000000675713410616261016172 0ustar rootroot/* GormImageEditor.m * * Copyright (C) 2002 Free Software Foundation, Inc. * * Author: Gregory John Casamento * Date: 2002 * * This file is part of GNUstep. * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 3 of the License, or * (at your option) any later version. * * This program 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 General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02111 USA. */ #include "GormImageEditor.h" #include "GormProtocol.h" #include "GormFunctions.h" #include "GormPalettesManager.h" #include #include "GormImage.h" @implementation GormImageEditor static NSMapTable *docMap = 0; + (void) initialize { if (self == [GormImageEditor class]) { docMap = NSCreateMapTable(NSNonRetainedObjectMapKeyCallBacks, NSNonRetainedObjectMapValueCallBacks, 2); } } + (GormImageEditor*) editorForDocument: (id)aDocument { id editor = NSMapGet(docMap, (void*)aDocument); if (editor == nil) { editor = [[self alloc] initWithObject: nil inDocument: aDocument]; AUTORELEASE(editor); } return editor; } - (NSArray *) fileTypes { return [NSImage imageFileTypes]; } - (NSArray *)pbTypes { return [NSArray arrayWithObject: GormImagePboardType]; } - (NSString *) resourceType { return @"image"; } - (id) placeHolderWithPath: (NSString *)string { return [GormImage imageForPath: string]; } - (void) addSystemResources { NSMutableArray *list = [NSMutableArray array]; NSEnumerator *en; id obj; GormPalettesManager *palettesManager = [(id)NSApp palettesManager]; // add all of the system objects... [list addObjectsFromArray: systemImagesList()]; [list addObjectsFromArray: [palettesManager importedImages]]; en = [list objectEnumerator]; while((obj = [en nextObject]) != nil) { GormImage *image = [GormImage imageForPath: obj]; [image setSystemResource: YES]; [self addObject: image]; } } /* * Initialisation - register to receive DnD with our own types. */ - (id) initWithObject: (id)anObject inDocument: (id)aDocument { id old = NSMapGet(docMap, (void*)aDocument); if (old != nil) { RELEASE(self); self = RETAIN(old); [self addObject: anObject]; return self; } if ((self = [super initWithObject: anObject inDocument: aDocument]) != nil) { NSMapInsert(docMap, (void*)aDocument, (void*)self); } return self; } - (void) dealloc { if(closed == NO) [self close]; // It is not necessary to call super dealloc here. // images are cached throughout the lifetime of the app. // Once loaded, they are in the cache permanently and // are release on app termination. // RELEASE(objects); NSDebugLog(@"Released image editor..."); // GSNOSUPERDEALLOC; [super dealloc]; } - (void) willCloseDocument: (NSNotification *)aNotification { NSMapRemove(docMap,document); [super willCloseDocument: aNotification]; } - (void) close { [super close]; NSMapRemove(docMap,document); } @end gorm-1.2.24/GormCore/GormViewWithContentViewEditor.h0000644000000000000000000000264613410616261021070 0ustar rootroot/* GormViewWithContentViewEditor.h * * Copyright (C) 2002 Free Software Foundation, Inc. * * Author: Pierre-Yves Rivaille * Date: 2002 * * This file is part of GNUstep. * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 3 of the License, or * (at your option) any later version. * * This program 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 General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02111 USA. */ #ifndef INCLUDED_GormViewWithContentViewEditor_h #define INCLUDED_GormViewWithContentViewEditor_h #include @class GormInternalViewEditor; @interface GormViewWithContentViewEditor : GormViewWithSubviewsEditor { GormInternalViewEditor *contentViewEditor; } - (void) postDrawForView: (GormViewEditor *) viewEditor; - (void) groupSelectionInSplitView; - (void) groupSelectionInBox; - (void) groupSelectionInView; - (void) ungroup; - (void) pasteInView: (NSView *)view; @end #endif gorm-1.2.24/GormCore/GormWrapperLoader.h0000644000000000000000000000322413410616261016525 0ustar rootroot/* GormWrapperLoader * * This class is a subclass of the NSDocumentController * * Copyright (C) 2006 Free Software Foundation, Inc. * * Author: Gregory John Casamento * Date: 2006 * * This file is part of GNUstep. * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 3 of the License, or * (at your option) any later version. * * This program 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 General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02111 USA. */ #ifndef INCLUDED_GormWrapperLoader_h #define INCLUDED_GormWrapperLoader_h #include @class NSFileWrapper, GormDocument, NSString; @protocol GormWrapperLoader - (BOOL) loadFileWrapper: (NSFileWrapper *)wrapper withDocument: (GormDocument *)document; @end @interface GormWrapperLoader : NSObject { GormDocument *document; } + (NSString *) fileType; - (void) saveSCMDirectory: (NSDictionary *) fileWrappers; @end @interface GormWrapperLoaderFactory : NSObject + (GormWrapperLoaderFactory *) sharedWrapperLoaderFactory; + (void) registerWrapperLoaderClass: (Class) aClass; - (id) wrapperLoaderForType: (NSString *) type; @end #endif gorm-1.2.24/GormCore/GormFontViewController.h0000644000000000000000000000053013410616261017560 0ustar rootroot/* All Rights reserved */ #include @interface GormFontViewController : NSObject { id fontSelector; id view; id encodeButton; } + (GormFontViewController *) sharedGormFontViewController; - (NSFont *) convertFont: (NSFont *)oldFont; - (void) selectFont: (id)sender; - (id) view; // - (void) changeFont: (id)sender; @end gorm-1.2.24/GormCore/GormStandaloneViewEditor.m0000644000000000000000000002313513410616261020060 0ustar rootroot/* GormStandaloneViewEditor.m * * Copyright (C) 2009 Free Software Foundation, Inc. * * Author: Gregory Casamento * Date: 2009 * * This file is part of GNUstep. * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 3 of the License, or * (at your option) any later version. * * This program 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 General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02111 USA. */ #include #include #include #include #include static NSImage *verticalImage; static NSImage *horizontalImage; @class GormEditorToParent; @implementation GormStandaloneViewEditor - (void) mouseDown: (NSEvent *) theEvent { BOOL onKnob = NO; if ([parent respondsToSelector: @selector(selection)] && [[parent selection] containsObject: _editedObject]) { IBKnobPosition knob = IBNoneKnobPosition; NSPoint mouseDownPoint = [self convertPoint: [theEvent locationInWindow] fromView: nil]; knob = GormKnobHitInRect([self bounds], mouseDownPoint); if (knob != IBNoneKnobPosition) onKnob = YES; } if (onKnob == YES) { if (parent) return [parent mouseDown: theEvent]; else return [self noResponderFor: @selector(mouseDown:)]; } if ([parent isOpened] == NO) { NSDebugLog(@"md %@ calling my parent %@", self, parent); [parent mouseDown: theEvent]; return; } // are we on the knob of a selected view ? { NSInteger count = [selection count]; NSInteger i; GormViewEditor *knobView = nil; IBKnobPosition knob = IBNoneKnobPosition; NSPoint mouseDownPoint; for ( i = 0; i < count; i++ ) { mouseDownPoint = [[[selection objectAtIndex: i] superview] convertPoint: [theEvent locationInWindow] fromView: nil]; knob = GormKnobHitInRect([[selection objectAtIndex: i] frame], mouseDownPoint); if (knob != IBNoneKnobPosition) { knobView = [selection objectAtIndex: i]; [self selectObjects: [NSMutableArray arrayWithObject: knobView]]; // we should set knobView as the only view selected break; } } if ( openedSubeditor != nil ) { mouseDownPoint = [[openedSubeditor superview] convertPoint: [theEvent locationInWindow] fromView: nil]; knob = GormKnobHitInRect([openedSubeditor frame], mouseDownPoint); if (knob != IBNoneKnobPosition) { knobView = openedSubeditor; // we should take back the selection // we should select openedSubeditor only [self selectObjects: [NSMutableArray arrayWithObject: knobView]]; [[self window] disableFlushWindow]; [self display]; [[self window] enableFlushWindow]; [[self window] flushWindow]; } } if (knobView != nil) { [self handleMouseOnKnob: knob ofView: knobView withEvent: theEvent]; [self setNeedsDisplay: YES]; return; } } // get the view we are on { GormViewEditor *editorView; { NSPoint mouseDownPoint; NSView *result = nil; GormViewEditor *theParent = nil; mouseDownPoint = [self convertPoint: [theEvent locationInWindow] fromView: nil]; result = [_editedObject hitTest: mouseDownPoint]; // we should get a result which is a direct subeditor { id temp = result; if ([temp isKindOfClass: [GormViewEditor class]]) theParent = [(GormViewEditor *)temp parent]; while ((temp != nil) && (theParent != self) && (temp != self)) { temp = [temp superview]; while (![temp isKindOfClass: [GormViewEditor class]]) { temp = [temp superview]; } theParent = [(GormViewEditor *)temp parent]; } if (temp != nil) { result = temp; } else { NSDebugLog(@"WARNING -- strange case"); result = self; } } if ([result isKindOfClass: [GormViewEditor class]]) { } else { result = nil; } // this is the direct subeditor the mouse was clicked on // (or self) editorView = (GormViewEditor *)result; } if (([theEvent clickCount] == 2) && [editorView isKindOfClass: [GormViewWithSubviewsEditor class]] && ([(id)editorView canBeOpened] == YES) && (editorView != self)) // Let's open a subeditor { [(GormViewWithSubviewsEditor *) editorView setOpened: YES]; [self silentlyResetSelection]; openedSubeditor = (GormViewWithSubviewsEditor *) editorView; [self setNeedsDisplay: YES]; return; } if (editorView != self) { [self handleMouseOnView: editorView withEvent: theEvent]; } else // editorView == self { NSEvent *e; unsigned eventMask; NSDate *future = [NSDate distantFuture]; NSRect oldRect = NSZeroRect; NSPoint p, oldp; NSRect r = NSZeroRect; float x, y, w, h; oldp = [self convertPoint: [theEvent locationInWindow] fromView: nil]; eventMask = NSLeftMouseUpMask | NSLeftMouseDraggedMask; if (!([theEvent modifierFlags] & NSShiftKeyMask)) [self selectObjects: [NSMutableArray array]]; [[self window] disableFlushWindow]; [self setNeedsDisplay: YES]; [self displayIfNeeded]; [[self window] enableFlushWindow]; [[self window] flushWindowIfNeeded]; e = [NSApp nextEventMatchingMask: eventMask untilDate: future inMode: NSEventTrackingRunLoopMode dequeue: YES]; [self lockFocus]; while ([e type] != NSLeftMouseUp) { p = [self convertPoint: [e locationInWindow] fromView: nil]; x = (p.x >= oldp.x) ? oldp.x : p.x; y = (p.y >= oldp.y) ? oldp.y : p.y; w = max(p.x, oldp.x) - min(p.x, oldp.x); w = (w == 0) ? 1 : w; h = max(p.y, oldp.y) - min(p.y, oldp.y); h = (h == 0) ? 1 : h; r = NSMakeRect(x, y, w, h); if (NSEqualRects(oldRect, NSZeroRect) == NO) { [verticalImage compositeToPoint: NSMakePoint(NSMinX(oldRect), NSMinY(oldRect)) fromRect: NSMakeRect(0.0, 0.0, 1.0, oldRect.size.height) operation: NSCompositeCopy]; [verticalImage compositeToPoint: NSMakePoint(NSMaxX(oldRect)-1, NSMinY(oldRect)) fromRect: NSMakeRect(1.0, 0.0, 1.0, oldRect.size.height) operation: NSCompositeCopy]; [horizontalImage compositeToPoint: NSMakePoint(NSMinX(oldRect), NSMinY(oldRect)) fromRect: NSMakeRect(0.0, 0.0, oldRect.size.width, 1.0) operation: NSCompositeCopy]; [horizontalImage compositeToPoint: NSMakePoint(NSMinX(oldRect), NSMaxY(oldRect)-1) fromRect: NSMakeRect(0.0, 1.0, oldRect.size.width, 1.0) operation: NSCompositeCopy]; } { NSRect wr; wr = [self convertRect: r toView: nil]; [verticalImage lockFocus]; NSCopyBits([[self window] gState], NSMakeRect(NSMinX(wr), NSMinY(wr), 1.0, r.size.height), NSMakePoint(0.0, 0.0)); NSCopyBits([[self window] gState], NSMakeRect(NSMaxX(wr)-1, NSMinY(wr), 1.0, r.size.height), NSMakePoint(1.0, 0.0)); [verticalImage unlockFocus]; [horizontalImage lockFocus]; NSCopyBits([[self window] gState], NSMakeRect(NSMinX(wr), NSMinY(wr), r.size.width, 1.0), NSMakePoint(0.0, 0.0)); NSCopyBits([[self window] gState], NSMakeRect(NSMinX(wr), NSMaxY(wr)-1, r.size.width, 1.0), NSMakePoint(0.0, 1.0)); [horizontalImage unlockFocus]; } [[NSColor darkGrayColor] set]; NSFrameRect(r); oldRect = r; [[self window] enableFlushWindow]; [[self window] flushWindow]; [[self window] disableFlushWindow]; e = [NSApp nextEventMatchingMask: eventMask untilDate: future inMode: NSEventTrackingRunLoopMode dequeue: YES]; } if (NSEqualRects(r, NSZeroRect) == NO) { [verticalImage compositeToPoint: NSMakePoint(NSMinX(r), NSMinY(r)) fromRect: NSMakeRect(0.0, 0.0, 1.0, r.size.height) operation: NSCompositeCopy]; [verticalImage compositeToPoint: NSMakePoint(NSMaxX(r)-1, NSMinY(r)) fromRect: NSMakeRect(1.0, 0.0, 1.0, r.size.height) operation: NSCompositeCopy]; [horizontalImage compositeToPoint: NSMakePoint(NSMinX(r), NSMinY(r)) fromRect: NSMakeRect(0.0, 0.0, r.size.width, 1.0) operation: NSCompositeCopy]; [horizontalImage compositeToPoint: NSMakePoint(NSMinX(r), NSMaxY(r)-1) fromRect: NSMakeRect(0.0, 1.0, r.size.width, 1.0) operation: NSCompositeCopy]; } { NSMutableArray *array; NSEnumerator *enumerator; NSView *subview; if ([theEvent modifierFlags] & NSShiftKeyMask) array = [NSMutableArray arrayWithArray: selection]; else array = [NSMutableArray arrayWithCapacity: 8]; enumerator = [[_editedObject subviews] objectEnumerator]; while ((subview = [enumerator nextObject]) != nil) { if ((NSIntersectsRect(r, [subview frame]) == YES) && [subview isKindOfClass: [GormViewEditor class]]) { [array addObject: subview]; } } if ([array count] > 0) { [self selectObjects: array]; } [self displayIfNeeded]; [self unlockFocus]; [[self window] enableFlushWindow]; [[self window] flushWindow]; } } } } @end gorm-1.2.24/GormCore/GormPlugin.m0000644000000000000000000000510113412644602015217 0ustar rootroot/* GormNibModule.m * * Copyright (C) 2007 Free Software Foundation, Inc. * * Author: Gregory John Casamento * Date: 2007 * * This file is part of GNUstep. * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 3 of the License, or * (at your option) any later version. * * This program 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 General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software */ #include #include #include @interface NSDocumentController (GormPrivate) - (NSArray *) types; - (void) setTypes: (NSArray *)types; - (BOOL) containsDocumentTypeName: (NSString *)tname; @end static Ivar types_ivar(void) { static Ivar iv; if (iv == NULL) { iv = class_getInstanceVariable([NSDocumentController class], "_types"); NSCAssert(iv, @"Unable to find _types instance variable of NSDocumentController"); } return iv; } @implementation NSDocumentController (GormPrivate) - (NSArray *) types { return object_getIvar(self, types_ivar()); } - (void) setTypes: (NSArray *)types { object_setIvar(self, types_ivar(), types); } - (BOOL) containsDocumentTypeName: (NSString *)tname { NSEnumerator *en = [object_getIvar(self, types_ivar()) objectEnumerator]; id obj = nil; while ((obj = [en nextObject]) != nil) { NSString *name = [obj objectForKey: @"NSName"]; if([tname isEqualToString: name]) { return YES; } } return NO; } @end @implementation GormPlugin - (void) registerDocumentTypeName: (NSString *)name humanReadableName: (NSString *)hrName forExtensions: (NSArray *)extensions { NSDocumentController *controller = [NSDocumentController sharedDocumentController]; NSMutableArray *types = [[controller types] mutableCopy]; if([controller containsDocumentTypeName: name] == NO) { NSMutableDictionary *dict = [NSMutableDictionary dictionaryWithObjectsAndKeys: name, @"NSName", hrName, @"NSHumanReadableName", extensions, @"NSUnixExtensions", nil]; [types addObject: dict]; [controller setTypes: types]; } } @end gorm-1.2.24/GormCore/GormOpenGLView.h0000644000000000000000000000226713410616261015743 0ustar rootroot/* GormOpenGLView.h - Demo view for show when displaying a NSOpenGLView during * testing only. * * Copyright (C) 2005 Free Software Foundation, Inc. * * Author: Gregory John Casamento * Date: 2005 * * This file is part of GNUstep. * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 3 of the License, or * (at your option) any later version. * * This program 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 General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02111 USA. */ #ifndef INCLUDED_GormOpenGLView_h #define INCLUDED_GormOpenGLView_h #include @class NSTimer; @interface GormOpenGLView : NSView { float rtri; NSTimer *timer; } @end #endif gorm-1.2.24/GormCore/GormImage.h0000644000000000000000000000442213410616261015001 0ustar rootroot/** GormImage This class is a placeholder for a real image. Copyright (C) 2001 Free Software Foundation, Inc. Author: Gregory John Casamento Date: Dec 2004 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 3 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, 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ #ifndef INCLUDED_GormImage_h #define INCLUDED_GormImage_h #include #include @class NSString, NSImage; @interface GormImage : GormResource { NSImage *image; NSImage *smallImage; } /** * Initialize with image data located at path. */ + (GormImage *) imageForPath: (NSString *)path; /** * Initialize with image data located at path. Mark it as in the * wrapper depending on the value of flag. */ + (GormImage *) imageForPath: (NSString *)path inWrapper: (BOOL)flag; /** * Initialize with image data. Mark it as in the * wrapper depending on the value of flag. */ + (GormImage*)imageForData: (NSData *)aData withFileName: (NSString *)aName inWrapper: (BOOL)flag; /** * A thumbnail of the image. */ - (NSImage *)image; /** * The full sized image. */ - (NSImage *)normalImage; @end /* * A category which will allow us to set whether or not * an image is archived by reference, or directly. */ @interface NSImage (GormNSImageAddition) /** * Set to YES, if the image should be archived by name only, NO otherwise. */ - (void) setArchiveByName: (BOOL) archiveByName; /** * Returns YES, if the image should be archived by name only, NO otherwise. */ - (BOOL) archiveByName; @end #endif gorm-1.2.24/GormCore/GormClassManager.h0000644000000000000000000001463113410616261016322 0ustar rootroot/* GormClassManager.h * * Copyright (C) 1999 Free Software Foundation, Inc. * * Author: Richard Frith-Macdonald * Author: Gregory John Casamento * Date: 1999, 2002 * * This file is part of GNUstep. * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 3 of the License, or * (at your option) any later version. * * This program 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 General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02111 USA. */ #include #ifndef INCLUDED_GormClassManager_h #define INCLUDED_GormClassManager_h // The custom classes and category arrays will hold only those things which // will be persisted to the .classes file. Since the overall list of classes will // not change it seems that the only thing that we should save is the "delta" // that being the custom classes. Once loaded they can be "merged" in with the // list of base classes, in gui, to form the full list of classes. @interface GormClassManager : NSObject { NSMutableDictionary *classInformation; NSMutableArray *customClasses; NSMutableDictionary *customClassMap; NSMutableArray *categoryClasses; id document; } - (id) initWithDocument: (id)aDocument; /* Managing actions and outlets */ - (void) addAction: (NSString *)anAction forObject: (id)anObject; - (void) addOutlet: (NSString *)anOutlet forObject: (id)anObject; - (NSArray *) allActionsForClassNamed: (NSString *)className; - (NSArray *) allActionsForObject: (id)anObject; - (NSArray *) extraActionsForObject: (id)anObject; - (NSArray *) allOutletsForClassNamed: (NSString *)className; - (NSArray *) allOutletsForObject: (id)anObject; - (NSArray *) extraOutletsForObject: (id)anObject; - (NSArray *) allClassNames; - (void) removeAction: (NSString *)anAction forObject: (id)anObject; - (void) removeOutlet: (NSString *)anOutlet forObject: (id)anObject; - (void) removeAction: (NSString *)anAction fromClassNamed: (NSString *)anObject; - (void) removeOutlet: (NSString *)anOutlet fromClassNamed: (NSString *)anObject; - (void) addOutlet: (NSString *)anOutlet forClassNamed: (NSString *)className; - (void) addAction: (NSString *)anAction forClassNamed: (NSString *)className; - (void) addActions: (NSArray *)actions forClassNamed: (NSString *)className; - (void) addOutlets: (NSArray *)outlets forClassNamed: (NSString *)className; - (NSString *) addNewActionToClassNamed: (NSString *)name; - (NSString *) addNewOutletToClassNamed: (NSString *)name; - (void) replaceAction: (NSString *)oldAction withAction: (NSString *)newAction forClassNamed: (NSString *)className; - (void) replaceOutlet: (NSString *)oldOutlet withOutlet: (NSString *)newOutlet forClassNamed: (NSString *)className; /* Managing classes and subclasses */ - (BOOL) renameClassNamed: (NSString *)oldName newName: (NSString *)name; - (void) removeClassNamed: (NSString *)className; - (NSString *) addClassWithSuperClassName: (NSString *)name; - (NSArray *) subClassesOf: (NSString *)superclass; - (NSArray *) allSubclassesOf: (NSString *)superClass; - (NSArray *) customSubClassesOf: (NSString *)superclass; - (NSArray *) allCustomSubclassesOf: (NSString *)superclass; - (NSArray *) allCustomClassNames; - (BOOL) addClassNamed: (NSString *)className withSuperClassNamed: (NSString *)superClassName withActions: (NSArray *)actions withOutlets: (NSArray *)outlets; - (BOOL) addClassNamed: (NSString *)class_name withSuperClassNamed: (NSString *)super_class_name withActions: (NSArray *)_actions withOutlets: (NSArray *)_outlets isCustom: (BOOL) isCustom; - (BOOL) setSuperClassNamed: (NSString *)superclass forClassNamed: (NSString *)subclass; - (NSString *)parentOfClass: (NSString *)aClass; - (NSString *) superClassNameForClassNamed: (NSString *)className; - (BOOL) isSuperclass: (NSString *)superclass linkedToClass: (NSString *)subclass; - (NSDictionary *) dictionaryForClassNamed: (NSString *)className; - (NSString *) uniqueClassNameFrom: (NSString *)name; - (BOOL) isRootClass: (NSString *)className; - (BOOL) outletExists: (NSString *)outlet onClassNamed: (NSString *)className; - (BOOL) actionExists: (NSString *)action onClassNamed: (NSString *)className; /* Managing custom classes */ - (BOOL) isCustomClass: (NSString *)className; - (BOOL) isNonCustomClass: (NSString *)className; - (BOOL) isCategoryForClass: (NSString *)className; - (BOOL) isKnownClass: (NSString *)className; - (BOOL) isAction: (NSString *)actionName ofClass: (NSString *)className; - (BOOL) isOutlet: (NSString *)outletName ofClass: (NSString *)className; - (NSArray *) allSuperClassesOf: (NSString *)className; - (BOOL) canInstantiateClassNamed: (NSString *)className; - (NSString *) customClassForObject: (id)object; - (NSString *) customClassForName: (NSString *)name; - (void) setCustomClass: (NSString *)className forName: (NSString *)name; - (void) removeCustomClassForName: (NSString *)name; - (NSMutableDictionary *) customClassMap; - (void) setCustomClassMap: (NSMutableDictionary *)dict; - (BOOL) isCustomClassMapEmpty; - (NSString *) nonCustomSuperClassOf: (NSString *)className; - (BOOL) isAction: (NSString *)actionName onCategoryForClassNamed: (NSString *)className; - (NSString *) classNameForObject: (id)object; - (NSString *) findClassByName: (NSString *)name; /* Parsing and creating classes */ - (BOOL) makeSourceAndHeaderFilesForClass: (NSString *)className withName: (NSString *)sourcePath and: (NSString *)headerPath; - (BOOL) parseHeader: (NSString *)headerPath; /* Loading and saving */ - (BOOL) saveToFile: (NSString *)path; - (NSData *) data; - (NSData *) nibData; - (BOOL) loadFromFile: (NSString *)path; - (BOOL) loadCustomClasses: (NSString *)path; - (BOOL) loadCustomClassesWithData: (NSData *)data; - (BOOL) loadCustomClassesWithDict: (NSDictionary *)dict; - (BOOL) loadNibFormatCustomClassesWithData: (NSData *)data; - (BOOL) loadNibFormatCustomClassesWithDict: (NSDictionary *)dict; @end #endif gorm-1.2.24/GormCore/GormConnectionInspector.h0000644000000000000000000000265113410616261017747 0ustar rootroot/* GormConnectionInspector.m * * Copyright (C) 1999 Free Software Foundation, Inc. * * Author: Richard Frith-Macdonald * Date: 1999 * Author: Gregory John Casamento * Date: 2003,2005 * * This file is part of GNUstep. * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 3 of the License, or * (at your option) any later version. * * This program 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 General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02111 USA. */ #ifndef INCLUDED_GormConnectionInspector_h #define INCLUDED_GormConnectionInspector_h #include #include @class NSBrowser, NSArray, NSMutableArray; @interface GormConnectionInspector : IBInspector { id currentConnector; NSMutableArray *connectors; NSArray *actions; NSArray *outlets; NSBrowser *newBrowser; NSBrowser *oldBrowser; } - (void) updateButtons; @end #endif gorm-1.2.24/GormCore/GormDefines.h0000644000000000000000000000212713410616261015334 0ustar rootroot/* GormDefines.h * * Copyright (C) 2009 Free Software Foundation, Inc. * * Author: Gregory Casamento * Date: 2009 * * This file is part of GNUstep. * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 3 of the License, or * (at your option) any later version. * * This program 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 General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02111 USA. */ #ifndef INCLUDED_GormDefines_h #define INCLUDED_GormDefines_h #ifndef max #define max(a,b) ((a) >= (b) ? (a):(b)) #endif #ifndef min #define min(a,b) ((a) <= (b) ? (a):(b)) #endif #endif // GormDefines gorm-1.2.24/GormCore/GormScrollViewAttributesInspector.h0000644000000000000000000000310013410616261021776 0ustar rootroot/** GormScrollViewAttributesInspector allow user to edit attributes of a scroll view Copyright (C) 2003 Free Software Foundation, Inc. Author: Gregory John Casamento Date: June 2003 This file is part of GNUstep. 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 3 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, 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ /* All Rights reserved */ #include #include @interface GormScrollViewAttributesInspector : IBInspector { id pageContext; id lineAmount; id color; id verticalScroll; id horizontalScroll; id verticalRuler; id horizontalRuler; id borderMatrix; } - (void) colorSelected: (id)sender; - (void) verticalSelected: (id)sender; - (void) horizontalSelected: (id)sender; - (void) verticalRuler: (id)sender; - (void) horizontalRuler: (id)sender; - (void) borderSelected: (id)sender; @end gorm-1.2.24/GormCore/GormInternalViewEditor.m0000644000000000000000000004427713410616261017556 0ustar rootroot/* GormInternalViewEditor.m * * Copyright (C) 2002 Free Software Foundation, Inc. * * Author: Pierre-Yves Rivaille * Date: 2002 * * This file is part of GNUstep. * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 3 of the License, or * (at your option) any later version. * * This program 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 General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02111 USA. */ #include #include #include "GormPrivate.h" #include "GormInternalViewEditor.h" #include "GormFontViewController.h" #include "GormViewKnobs.h" #include "GormDefines.h" @class GormEditorToParent; static NSImage *verticalImage; static NSImage *horizontalImage; @implementation NSView (IBObjectAdditions) - (NSString*) editorClassName { // using NSBox gets rid of compiler warning, should be safe for all classes. if ([self superview] && (([[self superview] respondsToSelector: @selector(contentView)] && [(NSBox *)[self superview] contentView] == self) || [[self superview] isKindOfClass: [NSTabView class]] || [[[self superview] window] contentView] == self || [[self superview] isKindOfClass: [NSClipView class]])) { return @"GormInternalViewEditor"; } else if ([self class] == [NSView class]) { return @"GormStandaloneViewEditor"; } else { return @"GormViewWithSubviewsEditor"; } } - (NSImage*) imageForViewer { static NSImage *image = nil; if (image == nil) { NSBundle *bundle = [NSBundle mainBundle]; NSString *path = [bundle pathForImageResource: @"GormView"]; image = [[NSImage alloc] initWithContentsOfFile: path]; } return image; } - (NSString*) sizeInspectorClassName { return @"GormViewSizeInspector"; } - (NSString*) customClassInspector { return @"GormCustomClassInspector"; } @end @implementation GormInternalViewEditor + (void)initialize { horizontalImage = nil; verticalImage = nil; } - (void) dealloc { RELEASE(selection); [super dealloc]; } - (BOOL) activate { if (activated == NO) { NSEnumerator *enumerator; NSView *sub; id superview = [_editedObject superview]; [self setFrame: [_editedObject frame]]; [self setBounds: [self frame]]; if ([superview isKindOfClass: [NSBox class]]) { NSBox *boxSuperview = (NSBox *) superview; [boxSuperview setContentView: self]; } else if ([superview isKindOfClass: [NSTabView class]]) { NSTabView *tabSuperview = (NSTabView *) superview; [tabSuperview removeSubview: [[tabSuperview selectedTabViewItem] view]]; [[tabSuperview selectedTabViewItem] setView: self]; [tabSuperview addSubview: self]; [self setFrame: [tabSuperview contentRect]]; [self setAutoresizingMask: NSViewWidthSizable | NSViewHeightSizable]; } else if ([[superview window] contentView] == _editedObject) { [[superview window] setContentView: self]; } else if ([superview isKindOfClass: [NSClipView class]]) { [superview setDocumentView: self]; } [self addSubview: _editedObject]; [_editedObject setPostsFrameChangedNotifications: YES]; [[NSNotificationCenter defaultCenter] addObserver: self selector: @selector(editedObjectFrameDidChange:) name: NSViewFrameDidChangeNotification object: _editedObject]; [self setPostsFrameChangedNotifications: YES]; [[NSNotificationCenter defaultCenter] addObserver: self selector: @selector(frameDidChange:) name: NSViewFrameDidChangeNotification object: self]; parent = (GormViewWithSubviewsEditor *)[document parentEditorForEditor: self]; if ([parent isKindOfClass: [GormViewEditor class]]) [parent setNeedsDisplay: YES]; else [self setNeedsDisplay: YES]; activated = YES; enumerator = [[NSArray arrayWithArray: [_editedObject subviews]] objectEnumerator]; while ((sub = [enumerator nextObject]) != nil) { if ([sub isKindOfClass: [GormViewEditor class]] == NO) { [document editorForObject: sub inEditor: self create: YES]; } } return YES; } return NO; } - (void) deactivate { if (activated == YES) { id superview = [self superview]; // NSView *superview = [self superview]; [self deactivateSubeditors]; if ([superview isKindOfClass: [NSBox class]]) { NSBox *boxSuperview = (NSBox *) superview; [self removeSubview: _editedObject]; [boxSuperview setContentView: _editedObject]; } else if ([superview isKindOfClass: [NSTabView class]]) { NSTabView *tabSuperview = (NSTabView *) superview; [tabSuperview removeSubview: self]; [[tabSuperview selectedTabViewItem] setView: _editedObject]; [tabSuperview addSubview: [[tabSuperview selectedTabViewItem] view]]; [[[tabSuperview selectedTabViewItem] view] setFrame: [tabSuperview contentRect]]; } else if ([[superview window] contentView] == self) { [self removeSubview: _editedObject]; [[superview window] setContentView: _editedObject]; } else if ([superview isKindOfClass: [NSClipView class]]) { [superview setDocumentView: _editedObject]; } [[NSNotificationCenter defaultCenter] removeObserver: self]; } activated = NO; } - (id) initWithObject: (id)anObject inDocument: (id)aDocument { NSMutableArray *types = [NSMutableArray arrayWithObjects: IBViewPboardType, GormLinkPboardType, nil]; opened = NO; openedSubeditor = nil; if ((self = [super initWithObject: anObject inDocument: aDocument]) == nil) return nil; selection = [[NSMutableArray alloc] initWithCapacity: 5]; [self registerForDraggedTypes: types]; if (horizontalImage == nil) { NSCachedImageRep *rep; horizontalImage = [[NSImage allocWithZone:(NSZone *)[(NSObject *)self zone]] initWithSize: NSMakeSize(3000, 2)]; rep = [[NSCachedImageRep allocWithZone: (NSZone *)[(NSObject *)self zone]] initWithSize:NSMakeSize(3000, 2) depth:[NSWindow defaultDepthLimit] separate:YES alpha:YES]; [horizontalImage addRepresentation: rep]; RELEASE(rep); verticalImage = [[NSImage allocWithZone:(NSZone *)[(NSObject *)self zone]] initWithSize: NSMakeSize(2, 3000)]; rep = [[NSCachedImageRep allocWithZone: (NSZone *)[(NSObject *)self zone]] initWithSize:NSMakeSize(2, 3000) depth:[NSWindow defaultDepthLimit] separate:YES alpha:YES]; [verticalImage addRepresentation: rep]; RELEASE(rep); } return self; } - (void) makeSelectionVisible: (BOOL) value { } - (NSArray*) selection { NSInteger i; NSInteger count = [selection count]; NSMutableArray *result = [NSMutableArray arrayWithCapacity: count]; if (count != 0) { for (i = 0; i < count; i++) { [result addObject: [[selection objectAtIndex: i] editedObject]]; } } else { return [parent selection]; } return result; } - (void) deleteSelection { NSInteger i; NSArray *sel = [selection copy]; NSInteger count = [sel count]; for (i = count - 1; i >= 0; i--) { id ed = [sel objectAtIndex: i]; id temp = [ed editedObject]; [ed detachSubviews]; [document detachObject: temp]; } } - (void) mouseDown: (NSEvent *) theEvent { BOOL onKnob = NO; if ([parent respondsToSelector: @selector(selection)] && [[parent selection] containsObject: _editedObject]) { IBKnobPosition knob = IBNoneKnobPosition; NSPoint mouseDownPoint = [self convertPoint: [theEvent locationInWindow] fromView: nil]; knob = GormKnobHitInRect([self bounds], mouseDownPoint); if (knob != IBNoneKnobPosition) onKnob = YES; } if (onKnob == YES) { if (parent) return [parent mouseDown: theEvent]; else return [self noResponderFor: @selector(mouseDown:)]; } if ([parent isOpened] == NO) { NSDebugLog(@"md %@ calling my parent %@", self, parent); [parent mouseDown: theEvent]; return; } // are we on the knob of a selected view ? { NSInteger count = [selection count]; NSInteger i; GormViewEditor *knobView = nil; IBKnobPosition knob = IBNoneKnobPosition; NSPoint mouseDownPoint; for ( i = 0; i < count; i++ ) { mouseDownPoint = [[[selection objectAtIndex: i] superview] convertPoint: [theEvent locationInWindow] fromView: nil]; knob = GormKnobHitInRect([[selection objectAtIndex: i] frame], mouseDownPoint); if (knob != IBNoneKnobPosition) { knobView = [selection objectAtIndex: i]; [self selectObjects: [NSMutableArray arrayWithObject: knobView]]; // we should set knobView as the only view selected break; } } if ( openedSubeditor != nil ) { mouseDownPoint = [[openedSubeditor superview] convertPoint: [theEvent locationInWindow] fromView: nil]; knob = GormKnobHitInRect([openedSubeditor frame], mouseDownPoint); if (knob != IBNoneKnobPosition) { knobView = openedSubeditor; // we should take back the selection // we should select openedSubeditor only [self selectObjects: [NSMutableArray arrayWithObject: knobView]]; [[self window] disableFlushWindow]; [self display]; [[self window] enableFlushWindow]; [[self window] flushWindow]; } } if (knobView != nil) { [self handleMouseOnKnob: knob ofView: knobView withEvent: theEvent]; [self setNeedsDisplay: YES]; return; } } { GormViewEditor *editorView; // get the view we are on { NSPoint mouseDownPoint; NSView *result = nil; GormViewEditor *theParent = nil; mouseDownPoint = [self convertPoint: [theEvent locationInWindow] fromView: nil]; result = [_editedObject hitTest: mouseDownPoint]; // we should get a result which is a direct subeditor { id temp = result; if ([temp isKindOfClass: [GormViewEditor class]]) theParent = [(GormViewEditor *)temp parent]; while ((temp != nil) && (theParent != self) && (temp != self)) { temp = [temp superview]; while (![temp isKindOfClass: [GormViewEditor class]]) { temp = [temp superview]; } theParent = [(GormViewEditor *)temp parent]; } if (temp != nil) { result = temp; } else { NSDebugLog(@"WARNING -- strange case"); result = self; } } if ([result isKindOfClass: [GormViewEditor class]]) { } else { result = nil; } // this is the direct subeditor the mouse was clicked on // (or self) editorView = (GormViewEditor *)result; } if (([theEvent clickCount] == 2) && [editorView isKindOfClass: [GormViewWithSubviewsEditor class]] && ([(id)editorView canBeOpened] == YES) && (editorView != self)) // Let's open a subeditor { [(GormViewWithSubviewsEditor *) editorView setOpened: YES]; [self silentlyResetSelection]; openedSubeditor = (GormViewWithSubviewsEditor *) editorView; [self setNeedsDisplay: YES]; return; } if (editorView != self) { [self handleMouseOnView: editorView withEvent: theEvent]; } else // editorView == self { NSEvent *e; unsigned eventMask; NSDate *future = [NSDate distantFuture]; NSRect oldRect = NSZeroRect; NSPoint p, oldp; NSRect r = NSZeroRect; float x, y, w, h; oldp = [self convertPoint: [theEvent locationInWindow] fromView: nil]; eventMask = NSLeftMouseUpMask | NSLeftMouseDraggedMask; if (!([theEvent modifierFlags] & NSShiftKeyMask)) [self selectObjects: [NSMutableArray array]]; [[self window] disableFlushWindow]; [self setNeedsDisplay: YES]; [self displayIfNeeded]; [[self window] enableFlushWindow]; [[self window] flushWindowIfNeeded]; e = [NSApp nextEventMatchingMask: eventMask untilDate: future inMode: NSEventTrackingRunLoopMode dequeue: YES]; [self lockFocus]; while ([e type] != NSLeftMouseUp) { p = [self convertPoint: [e locationInWindow] fromView: nil]; x = (p.x >= oldp.x) ? oldp.x : p.x; y = (p.y >= oldp.y) ? oldp.y : p.y; w = max(p.x, oldp.x) - min(p.x, oldp.x); w = (w == 0) ? 1 : w; h = max(p.y, oldp.y) - min(p.y, oldp.y); h = (h == 0) ? 1 : h; r = NSMakeRect(x, y, w, h); if (NSEqualRects(oldRect, NSZeroRect) == NO) { [verticalImage compositeToPoint: NSMakePoint(NSMinX(oldRect), NSMinY(oldRect)) fromRect: NSMakeRect(0.0, 0.0, 1.0, oldRect.size.height) operation: NSCompositeCopy]; [verticalImage compositeToPoint: NSMakePoint(NSMaxX(oldRect)-1, NSMinY(oldRect)) fromRect: NSMakeRect(1.0, 0.0, 1.0, oldRect.size.height) operation: NSCompositeCopy]; [horizontalImage compositeToPoint: NSMakePoint(NSMinX(oldRect), NSMinY(oldRect)) fromRect: NSMakeRect(0.0, 0.0, oldRect.size.width, 1.0) operation: NSCompositeCopy]; [horizontalImage compositeToPoint: NSMakePoint(NSMinX(oldRect), NSMaxY(oldRect)-1) fromRect: NSMakeRect(0.0, 1.0, oldRect.size.width, 1.0) operation: NSCompositeCopy]; } { NSRect wr; wr = [self convertRect: r toView: nil]; [verticalImage lockFocus]; NSCopyBits([[self window] gState], NSMakeRect(NSMinX(wr), NSMinY(wr), 1.0, r.size.height), NSMakePoint(0.0, 0.0)); NSCopyBits([[self window] gState], NSMakeRect(NSMaxX(wr)-1, NSMinY(wr), 1.0, r.size.height), NSMakePoint(1.0, 0.0)); [verticalImage unlockFocus]; [horizontalImage lockFocus]; NSCopyBits([[self window] gState], NSMakeRect(NSMinX(wr), NSMinY(wr), r.size.width, 1.0), NSMakePoint(0.0, 0.0)); NSCopyBits([[self window] gState], NSMakeRect(NSMinX(wr), NSMaxY(wr)-1, r.size.width, 1.0), NSMakePoint(0.0, 1.0)); [horizontalImage unlockFocus]; } [[NSColor darkGrayColor] set]; NSFrameRect(r); oldRect = r; [[self window] enableFlushWindow]; [[self window] flushWindow]; [[self window] disableFlushWindow]; e = [NSApp nextEventMatchingMask: eventMask untilDate: future inMode: NSEventTrackingRunLoopMode dequeue: YES]; } if (NSEqualRects(r, NSZeroRect) == NO) { [verticalImage compositeToPoint: NSMakePoint(NSMinX(r), NSMinY(r)) fromRect: NSMakeRect(0.0, 0.0, 1.0, r.size.height) operation: NSCompositeCopy]; [verticalImage compositeToPoint: NSMakePoint(NSMaxX(r)-1, NSMinY(r)) fromRect: NSMakeRect(1.0, 0.0, 1.0, r.size.height) operation: NSCompositeCopy]; [horizontalImage compositeToPoint: NSMakePoint(NSMinX(r), NSMinY(r)) fromRect: NSMakeRect(0.0, 0.0, r.size.width, 1.0) operation: NSCompositeCopy]; [horizontalImage compositeToPoint: NSMakePoint(NSMinX(r), NSMaxY(r)-1) fromRect: NSMakeRect(0.0, 1.0, r.size.width, 1.0) operation: NSCompositeCopy]; } { NSMutableArray *array; NSEnumerator *enumerator; NSView *subview; if ([theEvent modifierFlags] & NSShiftKeyMask) array = [NSMutableArray arrayWithArray: selection]; else array = [NSMutableArray arrayWithCapacity: 8]; enumerator = [[_editedObject subviews] objectEnumerator]; while ((subview = [enumerator nextObject]) != nil) { if ((NSIntersectsRect(r, [subview frame]) == YES) && [subview isKindOfClass: [GormViewEditor class]]) { [array addObject: subview]; } } if ([array count] > 0) { [self selectObjects: array]; } [self displayIfNeeded]; [self unlockFocus]; [[self window] enableFlushWindow]; [[self window] flushWindow]; } } } } - (void) pasteInSelection { [self pasteInView: _editedObject]; } @class GormBoxEditor; @class GormSplitViewEditor; - (NSArray *)destroyAndListSubviews { NSEnumerator *enumerator = [[_editedObject subviews] objectEnumerator]; GormViewEditor *subview; NSMutableArray *newSelection = [NSMutableArray array]; [[parent parent] makeSubeditorResign]; while ((subview = [enumerator nextObject]) != nil) { id v; NSRect frame; v = [subview editedObject]; frame = [v frame]; frame = [[parent parent] convertRect: frame fromView: _editedObject]; [subview deactivate]; [v setFrame: frame]; [newSelection addObject: v]; } [parent close]; return newSelection; } - (void) deleteSelection: (id) sender { [self deleteSelection]; } - (void) changeFont: (id)sender { NSEnumerator *enumerator = [[self selection] objectEnumerator]; id anObject; NSFont *newFont; NSUInteger count = 0; NSDebugLog(@"In %@ changing font for %@",[self className],[self selection]); while ((anObject = [enumerator nextObject])) { if([anObject respondsToSelector: @selector(setTitleFont:)] && [anObject respondsToSelector: @selector(setTextFont:)]) { count++; newFont = [sender convertFont: [anObject font]]; newFont = [[GormFontViewController sharedGormFontViewController] convertFont: newFont]; [anObject setTitleFont: newFont]; [anObject setTextFont: newFont]; } else if ([anObject respondsToSelector: @selector(font)] && [anObject respondsToSelector: @selector(setFont:)]) { count++; newFont = [sender convertFont: [anObject font]]; newFont = [[GormFontViewController sharedGormFontViewController] convertFont: newFont]; [anObject setFont: newFont]; } } // if the font was changed, mark us as altered... if(count > 0) { [[self document] touch]; } return; } @end gorm-1.2.24/GormCore/GormWrapperLoader.m0000644000000000000000000001102213410616261016525 0ustar rootroot/* GormWrapperLoader * * These classes handle loading different formats into the * document's data structures. * * Copyright (C) 2006 Free Software Foundation, Inc. * * Author: Gregory John Casamento * Date: 2006 * * This file is part of GNUstep. * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 3 of the License, or * (at your option) any later version. * * This program 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 General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02111 USA. */ #include #include #include #include #include #include #include static NSMutableDictionary *_wrapperLoaderMap = nil; static GormWrapperLoaderFactory *_sharedWrapperLoaderFactory = nil; @implementation GormWrapperLoader + (NSString *) fileType { [self subclassResponsibility: _cmd]; return nil; } - (void) saveSCMDirectory: (NSDictionary *) fileWrappers { [document setSCMWrapper: [fileWrappers objectForKey: @".svn"]]; if([document scmWrapper] == nil) { [document setSCMWrapper: [fileWrappers objectForKey: @"CVS"]]; } } - (BOOL) loadFileWrapper: (NSFileWrapper *)wrapper withDocument: (GormDocument *)doc { NS_DURING { NSMutableArray *images = [NSMutableArray array]; NSMutableArray *sounds = [NSMutableArray array]; document = doc; // don't retain... if ([wrapper isDirectory]) { NSDictionary *fileWrappers = nil; NSString *key = nil; NSArray *imageFileTypes = [NSImage imageFileTypes]; NSArray *soundFileTypes = [NSSound soundUnfilteredFileTypes]; NSEnumerator *enumerator = nil; key = nil; fileWrappers = [wrapper fileWrappers]; [self saveSCMDirectory: fileWrappers]; enumerator = [fileWrappers keyEnumerator]; while((key = [enumerator nextObject]) != nil) { NSFileWrapper *fw = [fileWrappers objectForKey: key]; // // Images with .info can be loaded, but we have a file // called data.info which is metadata for Gorm. Don't load it. // if ( [key isEqualToString: @"data.info"] == YES ) { continue; } if([fw isRegularFile]) { NSData *fileData = [fw regularFileContents]; if ([imageFileTypes containsObject: [key pathExtension]]) { [images addObject: [GormImage imageForData: fileData withFileName: key inWrapper: YES]]; } else if ([soundFileTypes containsObject: [key pathExtension]]) { [sounds addObject: [GormSound soundForData: fileData withFileName: key inWrapper: YES]]; } } } } // fill in the images and sounds arrays... [document setSounds: sounds]; [document setImages: images]; } NS_HANDLER { return NO; } NS_ENDHANDLER; return YES; } @end @implementation GormWrapperLoaderFactory + (void) initialize { NSArray *classes = GSObjCAllSubclassesOfClass([GormWrapperLoader class]); NSEnumerator *en = [classes objectEnumerator]; Class cls = nil; while((cls = [en nextObject]) != nil) { [self registerWrapperLoaderClass: cls]; } } + (void) registerWrapperLoaderClass: (Class)aClass { if(_wrapperLoaderMap == nil) { _wrapperLoaderMap = [[NSMutableDictionary alloc] initWithCapacity: 5]; } [_wrapperLoaderMap setObject: aClass forKey: (NSString *)[aClass fileType]]; } + (GormWrapperLoaderFactory *) sharedWrapperLoaderFactory { if(_sharedWrapperLoaderFactory == nil) { _sharedWrapperLoaderFactory = [[self alloc] init]; } return _sharedWrapperLoaderFactory; } - (id) init { if((self = [super init]) != nil) { if(_sharedWrapperLoaderFactory == nil) { _sharedWrapperLoaderFactory = self; } } return self; } - (id) wrapperLoaderForType: (NSString *) type { Class cls = [_wrapperLoaderMap objectForKey: type]; id obj = AUTORELEASE([[cls alloc] init]); return obj; } @end gorm-1.2.24/GormCore/GormSetNameController.m0000644000000000000000000000171113410616261017362 0ustar rootroot// Author: Andrew E. Ruder // Copyright (C) 2003 by Free Software Foundation, Inc #include "GormSetNameController.h" #include #include #include #include #include #include @implementation GormSetNameController : NSObject - (NSInteger)runAsModal { NSInteger result; if (!window) { if (![NSBundle loadNibNamed: @"GormSetName" owner: self]) { return NSAlertAlternateReturn; } } [window makeKeyAndOrderFront: nil]; [window makeFirstResponder: textField]; result = [NSApp runModalForWindow: window]; return result; } - (NSTextField *) textField { return textField; } - (void) cancelHit: (id)sender { [window close]; [NSApp stopModalWithCode: NSAlertAlternateReturn]; } - (void) okHit: (id)sender { [window close]; [NSApp stopModalWithCode: NSAlertDefaultReturn]; } @end gorm-1.2.24/GormCore/GormFunctions.h0000644000000000000000000000470213410616261015730 0ustar rootroot/* GormFunctions.h * * Copyright (C) 2004 Free Software Foundation, Inc. * * Author: Gregory John Casamento * Date: 2004 * * This file is part of GNUstep. * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 3 of the License, or * (at your option) any later version. * * This program 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 General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02111 USA. */ #ifndef INCLUDED_GormFunctions_h #define INCLUDED_GormFunctions_h #include #include // find all subitems for the given items... void findAllWithArray(id item, NSMutableArray *array); // find all sub items for the selections... NSArray* findAllSubmenus(NSArray *array); // find all items in the menu... NSArray* findAll(NSMenu *menu); // all subviews for the view provided void subviewsForView(NSView *view, NSMutableArray *array); // all subviews NSArray *allSubviews(NSView *view); // cut the file label to the appropriate length... NSString *cutFileLabelText(NSString *filename, id label, NSInteger length); // get the cell size for all editors NSSize defaultCellSize(); // color from string NSColor *colorFromDict(NSDictionary *colorString); // color to string NSDictionary *colorToDict(NSColor *color); // get the list of images... NSArray *systemImagesList(); // get the list of images... NSArray *systemSoundsList(); // compute the gorm version int appVersion(long a, long b, long c); // prompt for a class name. Used mainly for gmodel loading... NSString *promptForClassName(NSString *title, NSArray *classes); // format an identifier.. NSString *identifierString(NSString *str); // format an action.. NSString *formatAction(NSString *action); // format an outlet NSString *formatOutlet(NSString *outlet); // get information about class. NSArray *_GSObjCMethodNamesForClass(Class class, BOOL collect); NSArray *_GSObjCVariableNames(Class class, BOOL collect); NSRect minimalContainerFrame(NSArray *views); #endif gorm-1.2.24/GormCore/GNUmakefile0000644000000000000000000001061513410616261015034 0ustar rootroot# GNUmakefile: main makefile for GNUstep Object Relationship Modeller # # Copyright (C) 1999,2002,2003 Free Software Foundation, Inc. # # Author: Gregory John Casamento # Date: 2003 # Author: Richard Frith-Macdonald # Date: 1999 # # This file is part of GNUstep. # # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 2 of the License, or # (at your option) any later version. # # This program 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 General Public License for more details. # # You should have received a copy of the GNU General Public License # along with this program; if not, write to the Free Software # Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA # PACKAGE_NAME = gorm include $(GNUSTEP_MAKEFILES)/common.make PACKAGE_NAME=GormCore LIBRARY_VAR=GORMCORE LIBRARY_NAME=GormCore GormCore_HEADER_FILES_DIR=. GormCore_HEADER_FILES_INSTALL_DIR=/GormCore ADDITIONAL_INCLUDE_DIRS = -I.. srcdir = . include ../Version GormCore_HEADER_FILES = \ GormBoxEditor.h \ GormClassEditor.h \ GormClassInspector.h \ GormClassManager.h \ GormClassPanelController.h \ GormConnectionInspector.h \ GormControlEditor.h \ GormCustomClassInspector.h \ GormCustomView.h \ GormDocument.h \ GormDocumentController.h \ GormDocumentWindow.h \ GormFilePrefsManager.h \ GormFilesOwner.h \ GormFontViewController.h \ GormFunctions.h \ GormGenericEditor.h \ GormHelpInspector.h \ GormImage.h \ GormImageEditor.h \ GormImageInspector.h \ GormInspectorsManager.h \ GormInternalViewEditor.h \ GormMatrixEditor.h \ GormNSPanel.h \ GormNSSplitViewInspector.h \ GormNSWindow.h \ GormObjectEditor.h \ GormObjectInspector.h \ GormOpenGLView.h \ GormOutlineView.h \ GormPalettesManager.h \ GormPlacementInfo.h \ GormPlugin.h \ GormPluginManager.h \ GormPrivate.h \ GormProtocol.h \ GormResource.h \ GormResourceEditor.h \ GormResourceManager.h \ GormScrollViewAttributesInspector.h \ GormServer.h \ GormSetNameController.h \ GormSound.h \ GormSoundEditor.h \ GormSoundInspector.h \ GormSoundView.h \ GormSplitViewEditor.h \ GormStandaloneViewEditor.h \ GormViewEditor.h \ GormViewKnobs.h \ GormViewSizeInspector.h \ GormViewWindow.h \ GormViewWithContentViewEditor.h \ GormViewWithSubviewsEditor.h \ GormWindowEditor.h \ GormWindowTemplate.h \ GormWrapperBuilder.h \ GormWrapperLoader.h \ NSCell+GormAdditions.h \ NSColorWell+GormExtensions.h \ NSFontManager+GormExtensions.h \ NSView+GormExtensions.h GormCore_OBJC_FILES = \ GormBoxEditor.m \ GormClassEditor.m \ GormClassInspector.m \ GormClassManager.m \ GormClassPanelController.m \ GormConnectionInspector.m \ GormControlEditor.m \ GormCustomClassInspector.m \ GormCustomView.m \ GormDocument.m \ GormDocumentController.m \ GormDocumentWindow.m \ GormFilePrefsManager.m \ GormFilesOwner.m \ GormFontViewController.m \ GormFunctions.m \ GormGenericEditor.m \ GormHelpInspector.m \ GormImage.m \ GormImageEditor.m \ GormImageInspector.m \ GormInspectorsManager.m \ GormInternalViewEditor.m \ GormMatrixEditor.m \ GormNSPanel.m \ GormNSSplitViewInspector.m \ GormNSWindow.m \ GormObjectEditor.m \ GormObjectInspector.m \ GormOpenGLView.m \ GormOutlineView.m \ GormPalettesManager.m \ GormPlugin.m \ GormPluginManager.m \ GormResource.m \ GormResourceEditor.m \ GormResourceManager.m \ GormScrollViewAttributesInspector.m \ GormScrollViewEditor.m \ GormSetNameController.m \ GormSound.m \ GormSoundEditor.m \ GormSoundInspector.m \ GormSoundView.m \ GormSplitViewEditor.m \ GormStandaloneViewEditor.m \ GormViewEditor.m \ GormViewKnobs.m \ GormViewSizeInspector.m \ GormViewWindow.m \ GormViewWithContentViewEditor.m \ GormViewWithSubviewsEditor.m \ GormWindowEditor.m \ GormWindowTemplate.m \ GormWrapperBuilder.m \ GormWrapperLoader.m \ NSCell+GormAdditions.m \ NSColorWell+GormExtensions.m \ NSFontManager+GormExtensions.m \ NSView+GormExtensions.m \ GormPrivate.m -include GNUmakefile.preamble -include GNUmakefile.local include $(GNUSTEP_MAKEFILES)/aggregate.make include $(GNUSTEP_MAKEFILES)/library.make -include GNUmakefile.postamble gorm-1.2.24/GormCore/GormProtocol.h0000644000000000000000000000437213410616261015564 0ustar rootroot/* GormProtocol.h * * Copyright (C) 1999, 2005 Free Software Foundation, Inc. * * Author: Gregory John Casamento * Date: 2005 * * This file is part of GNUstep. * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 3 of the License, or * (at your option) any later version. * * This program 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 General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02111 USA. */ #ifndef INCLUDED_GormProtocol_h #define INCLUDED_GormProtocol_h #include @class GormClassManager, GormPalettesManager, GormInspectorsManager, NSString, NSMenu, GormPluginManager; @protocol Gorm // Connections - (id) connectSource; - (id) connectDestination; - (void) displayConnectionBetween: (id)source and: (id)destination; - (BOOL) isConnecting; - (void) stopConnecting; // preferences - (void) preferencesPanel: (id) sender; // Cut/Paste operations - (void) copy: (id)sender; - (void) cut: (id)sender; - (void) paste: (id)sender; - (void) delete: (id)sender; - (void) selectAllItems: (id)sender; - (void) setName: (id)sender; // palettes/inspectors. - (void) inspector: (id) sender; - (void) palettes: (id) sender; - (void) loadPalette: (id) sender; - (GormPalettesManager*) palettesManager; - (GormInspectorsManager*) inspectorsManager; - (GormPluginManager*) pluginManager; // testing the interface - (void) testInterface: (id)sender; - (id) endTesting: (id)sender; // sound & images - (void) loadSound: (id) sender; - (void) loadImage: (id) sender; // grouping/layout - (void) groupSelectionInSplitView: (id)sender; - (void) groupSelectionInBox: (id)sender; - (void) groupSelectionInScrollView: (id)sender; - (void) ungroup: (id)sender; // added for classes support - (GormClassManager*) classManager; - (NSMenu*) classMenu; @end #endif gorm-1.2.24/GormCore/GormFontViewController.m0000644000000000000000000000544313410616261017575 0ustar rootroot/* All Rights reserved */ #include #include "GormFontViewController.h" static GormFontViewController *gorm_font_cont = nil; @implementation GormFontViewController + (GormFontViewController *) sharedGormFontViewController { if (gorm_font_cont == nil) { gorm_font_cont = [[self alloc] init]; } return gorm_font_cont; } - (id) init { self = [super init]; if (self != nil) { // load the gui... if (![NSBundle loadNibNamed: @"GormFontView" owner: self]) { NSLog(@"Could not open gorm GormFontView"); return nil; } [[NSFontManager sharedFontManager] setDelegate: self]; } return self; } - (NSFont *) convertFont: (NSFont *)aFont { float size; NSFont *font; // If aFont isn't nil and the button is off then set the size // to the size of the passed in font. size = (aFont && [encodeButton state] == NSOffState) ? [aFont pointSize] : 0.0; switch([fontSelector indexOfSelectedItem]) { default: case 0: // selected font font = (aFont) ? aFont : [[NSFontManager sharedFontManager] selectedFont]; if (!font) font = [NSFont userFontOfSize: size]; break; case 1: // bold system font font = [NSFont boldSystemFontOfSize: size]; break; case 2: // system font font = [NSFont systemFontOfSize: size]; break; case 3: // user fixed font font = [NSFont userFixedPitchFontOfSize: size]; break; case 4: // user font font = [NSFont userFontOfSize: size]; break; case 5: // title bar font font = [NSFont titleBarFontOfSize: size]; break; case 6: // menu font font = [NSFont menuFontOfSize: size]; break; case 7: // message font font = [NSFont messageFontOfSize: size]; break; case 8: // palette font font = [NSFont paletteFontOfSize: size]; break; case 9: // tooltops font font = [NSFont toolTipsFontOfSize: size]; break; case 10: // control content font font = [NSFont controlContentFontOfSize: size]; break; case 11: font = [NSFont labelFontOfSize: size]; break; } return font; } - (void) selectFont: (id)sender { NSFontManager *fontManager = [NSFontManager sharedFontManager]; NSFont *font; font = [self convertFont: nil]; [fontManager setSelectedFont: font isMultiple: NO]; if ([fontSelector indexOfSelectedItem] == 0) { [encodeButton setEnabled: NO]; [encodeButton setState: NSOffState]; } else { [encodeButton setEnabled: YES]; [encodeButton setState: NSOffState]; } } - (id) view { return view; } - (void) mouseDragged: (NSEvent *)event { // here to make certain we don't crash.. } - (void) flagsChanged: (NSEvent *)event { // here to make certain we don't crash.. } @end gorm-1.2.24/GormCore/GormBoxEditor.m0000644000000000000000000001164613410616261015671 0ustar rootroot/* GormBoxEditor.m * * Copyright (C) 2002 Free Software Foundation, Inc. * * Author: Pierre-Yves Rivaille * Date: 2002 * * This file is part of GNUstep. * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 3 of the License, or * (at your option) any later version. * * This program 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 General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02111 USA. */ #include #include #include "GormPrivate.h" #include "GormBoxEditor.h" #include "GormInternalViewEditor.h" #include "GormViewKnobs.h" #define _EO ((NSBox *)_editedObject) @class GormWindowEditor; @implementation NSBox (IBObjectAdditions) - (NSString*) editorClassName { return @"GormBoxEditor"; } - (NSFont *) font { return [self titleFont]; } - (void) setFont: (NSFont *)aFont { [self setTitleFont: aFont]; } @end @implementation GormBoxEditor - (void) setOpened: (BOOL) flag { [super setOpened: flag]; if (flag == YES) { [document setSelectionFromEditor: contentViewEditor]; } } - (void) dealloc { RELEASE(selection); [super dealloc]; } - (BOOL) activate { if ([super activate]) { NSView *contentView = [_EO contentView]; contentViewEditor = (GormInternalViewEditor *)[document editorForObject: contentView inEditor: self create: YES]; return YES; } return NO; } - (void) deactivate { if (activated == YES) { [self deactivateSubeditors]; [super deactivate]; } } - (void) makeSelectionVisible: (BOOL) value { // not implemented here. } - (void) deleteSelection { NSInteger i = 0; NSInteger count = [selection count]; id temp = nil; for (i = count - 1; i >= 0; i--) { temp = [[selection objectAtIndex: i] editedObject]; [[selection objectAtIndex: i] detachSubviews]; [document detachObject: temp]; [[selection objectAtIndex: i] close]; [temp removeFromSuperview]; [selection removeObjectAtIndex: i]; } [self selectObjects: [NSArray array]]; } - (void) mouseDown: (NSEvent *) theEvent { BOOL onKnob = NO; // if we are on one of our own knob, then this event should be processed // by our parent (cause this is a resizing event) if ([parent respondsToSelector: @selector(selection)] && [[parent selection] containsObject: _EO]) { IBKnobPosition knob = IBNoneKnobPosition; NSPoint mouseDownPoint = [self convertPoint: [theEvent locationInWindow] fromView: nil]; knob = GormKnobHitInRect([self bounds], mouseDownPoint); if (knob != IBNoneKnobPosition) onKnob = YES; } if (onKnob == YES) { if (parent) return [parent mouseDown: theEvent]; else return [self noResponderFor: @selector(mouseDown:)]; } if (opened == NO) { [super mouseDown: theEvent]; return; } if ([[_EO hitTest: [theEvent locationInWindow]] isDescendantOf: contentViewEditor]) { if ([contentViewEditor isOpened] == NO) { [contentViewEditor setOpened: YES]; } [contentViewEditor mouseDown: theEvent]; } else { if ([contentViewEditor isOpened] == YES) { [contentViewEditor setOpened: NO]; } if ((NSMouseInRect([_EO convertPoint: [theEvent locationInWindow] fromView: nil], [_EO titleRect], NO) == YES) && ([theEvent clickCount] == 2)) { NSTextField *tf = [[NSTextField alloc] initWithFrame: [self convertRect: [_EO titleRect] fromView: _EO]]; NSRect frame = [tf frame]; frame.origin.x = [self bounds].origin.x + 3; frame.size.width = [self bounds].size.width - 6; frame.origin.y -= 3; frame.size.height += 4; [tf setBordered: YES]; [tf setEditable: YES]; [tf setBezeled: NO]; [tf setAlignment: NSCenterTextAlignment]; [tf setFrame: frame]; [self addSubview: tf]; [tf setStringValue: [_EO title]]; [self editTextField: tf withEvent: theEvent]; [_EO setTitle: [tf stringValue]]; [tf removeFromSuperview]; RELEASE(tf); [[NSNotificationCenter defaultCenter] postNotificationName: IBSelectionChangedNotification object: self]; } } } - (NSArray *)destroyAndListSubviews { if (contentViewEditor) { if([contentViewEditor respondsToSelector: @selector(destroyAndListSubviews)]) { return [contentViewEditor destroyAndListSubviews]; } else { return nil; } } else { return nil; } } @end gorm-1.2.24/GormCore/GormCustomView.h0000644000000000000000000000225313410616261016064 0ustar rootroot/* GormCustomView.h - Visual representation of a custom view placeholder * * Copyright (C) 2001 Free Software Foundation, Inc. * * Author: Adam Fedor * Date: 2001 * * This file is part of GNUstep. * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 3 of the License, or * (at your option) any later version. * * This program 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 General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02111 USA. */ #ifndef INCLUDED_GormCustomView_h #define INCLUDED_GormCustomView_h #include @interface GormCustomView : NSTextField { NSString *className; } - (void) setClassName: (NSString *)aName; - (NSString *) className; @end #endif gorm-1.2.24/GormCore/GormBoxEditor.h0000644000000000000000000000231013410616261015650 0ustar rootroot/* GormBoxEditor.h * * Copyright (C) 2002 Free Software Foundation, Inc. * * Author: Pierre-Yves Rivaille * Date: 2002 * * This file is part of GNUstep. * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 3 of the License, or * (at your option) any later version. * * This program 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 General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02111 USA. */ #ifndef INCLUDED_GormBoxEditor_h #define INCLUDED_GormBoxEditor_h #include #include @interface GormBoxEditor : GormViewWithSubviewsEditor { GormInternalViewEditor *contentViewEditor; } - (NSArray *)destroyAndListSubviews; @end #endif gorm-1.2.24/GormCore/NSView+GormExtensions.m0000644000000000000000000001173313412644602017277 0ustar rootroot/* NSView+GormExtensions.m * * Copyright (C) 2004 Free Software Foundation, Inc. * * Author: Gregory John Casamento * Date: 2004 * * This file is part of GNUstep. * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 3 of the License, or * (at your option) any later version. * * This program 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 General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02111 USA. */ #include #include #include #include #include "NSView+GormExtensions.h" #include static Ivar subviews_ivar(void) { static Ivar iv; if (iv == NULL) { iv = class_getInstanceVariable([NSView class], "_sub_views"); NSCAssert(iv, @"Unable to get NSView's _sub_views instance variable"); } return iv; } @implementation NSView (GormExtensions) /** * All superviews of this view */ - (NSArray *) superviews { NSMutableArray *result = [NSMutableArray array]; NSView *currentView = nil; for(currentView = self; currentView != nil; currentView = [currentView superview]) { [result addObject: currentView]; } return result; } /** * Checks for a superview of a give class. */ - (BOOL) hasSuperviewKindOfClass: (Class)cls { NSEnumerator *en = [[self superviews] objectEnumerator]; NSView *v = nil; BOOL result = NO; while(((v = [en nextObject]) != nil) && result == NO) { result = [v isKindOfClass: cls]; } return result; } /** * Moves the specified subview to the end of the list, so it's displayed * in front of the other views. */ - (void) moveViewToFront: (NSView *)sv { NSDebugLog(@"move to front %@", sv); NSMutableArray *sub_views = object_getIvar(self, subviews_ivar()); if([sub_views containsObject: sv]) { RETAIN(sv); // make sure it doesn't deallocate the view. [sub_views removeObject: sv]; [sub_views addObject: sv]; // add it to the end. RELEASE(sv); } } /** * Moves the specified subview to the beginning of the list, so it's * displayed behind all of the other views. */ - (void) moveViewToBack: (NSView *)sv { NSDebugLog(@"move to back %@", sv); NSMutableArray *sub_views = object_getIvar(self, subviews_ivar()); if([sub_views containsObject: sv]) { RETAIN(sv); // make sure it doesn't deallocate the view. [sub_views removeObject: sv]; if([sub_views count] > 0) { [sub_views insertObject: sv atIndex: 0]; // add it to the end. } else { [sub_views addObject: sv]; } RELEASE(sv); } } @end /** * Registry of delegates. This allows the implementation of the protocol * to select from the list of delegates to determine which one should be called. */ static NSMutableArray *_registeredViewResourceDraggingDelegates = nil; /** * IBViewResourceDraggingDelegates implementation. These methods * make it possible to declare types in palettes and dynamically select the * appropriate delegate to handle the addition of an object to the document. */ @implementation NSView (IBViewResourceDraggingDelegates) /** * Types accepted by the view. */ + (NSArray *) acceptedViewResourcePasteboardTypes { NSMutableArray *result = nil; if([_registeredViewResourceDraggingDelegates count] > 0) { NSEnumerator *en = [_registeredViewResourceDraggingDelegates objectEnumerator]; id delegate = nil; result = [NSMutableArray array]; while((delegate = [en nextObject]) != nil) { if([delegate respondsToSelector: @selector(viewResourcePasteboardTypes)]) { [result addObjectsFromArray: [delegate viewResourcePasteboardTypes]]; } } } return result; } /** * Return the list of registered delegates. */ + (NSArray *) registeredViewResourceDraggingDelegates { return _registeredViewResourceDraggingDelegates; } /** * Register a delegate. */ + (void) registerViewResourceDraggingDelegate: (id)delegate { if(_registeredViewResourceDraggingDelegates == nil) { _registeredViewResourceDraggingDelegates = [[NSMutableArray alloc] init]; } [_registeredViewResourceDraggingDelegates addObject: delegate]; } /** * Remove a previously registered delegate. */ + (void) unregisterViewResourceDraggingDelegate: (id)delegate { if(_registeredViewResourceDraggingDelegates != nil) { [_registeredViewResourceDraggingDelegates removeObject: delegate]; } } @end gorm-1.2.24/GormCore/GormGenericEditor.h0000644000000000000000000000546713410616261016514 0ustar rootroot/* GormGenericEditor.h * * Copyright (C) 1999, 2003 Free Software Foundation, Inc. * * Author: Richard Frith-Macdonald * Author: Gregory John Casamento * Date: 1999, 2003, 2004 * * This file is part of GNUstep. * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 3 of the License, or * (at your option) any later version. * * This program 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 General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02111 USA. */ #ifndef INCLUDED_GormGenericEditor_h #define INCLUDED_GormGenericEditor_h #include #include #include @interface GormGenericEditor : NSMatrix { NSMutableArray *objects; id document; id selected; NSPasteboard *dragPb; NSString *dragType; BOOL closed; BOOL activated; IBResourceManager *resourceManager; } // class methods... + (id) editorForDocument: (id)aDocument; + (void) setEditor: (id)editor forDocument: (id)aDocument; // selection methods... - (void) selectObjects: (NSArray*)objects; - (BOOL) wantsSelection; - (void) copySelection; - (void) deleteSelection; - (void) pasteInSelection; - (void) refreshCells; - (void) closeSubeditors; - (NSWindow*) window; - (void) addObject: (id)anObject; - (void) refreshCells; - (void) removeObject: (id)anObject; - (BOOL) activate; - (id) initWithObject: (id)anObject inDocument: (id)aDocument; - (void) close; - (void) closeSubeditors; - (BOOL) containsObject: (id)anObject; - (void) copySelection; - (void) deleteSelection; - (id) document; - (id) editedObject; - (id) openSubeditorForObject: (id)anObject; - (void) orderFront; - (void) pasteInSelection; - (NSRect) rectForObject: (id)anObject; - (NSArray *) objects; - (BOOL) isOpened; - (NSArray *) fileTypes; @end // private methods... @interface GormGenericEditor (PrivateMethods) - (void) willCloseDocument: (NSNotification *) aNotification; - (void) groupSelectionInScrollView; - (void) groupSelectionInSplitView; - (void) groupSelectionInBox; - (void) groupSelectionInView; - (void) ungroup; - (void) setEditor: (id)anEditor forDocument: (id)doc; - (id) changeSelection: (id)sender; @end #endif gorm-1.2.24/GormCore/GormStandaloneViewEditor.h0000644000000000000000000000221113410616261020043 0ustar rootroot/* GormStandaloneViewEditor.h * * Copyright (C) 2009 Free Software Foundation, Inc. * * Author: Gregory Casamento * Date: 2009 * * This file is part of GNUstep. * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 3 of the License, or * (at your option) any later version. * * This program 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 General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02111 USA. */ #ifndef INCLUDED_GormStandaloneViewEditor_h #define INCLUDED_GormStandaloneViewEditor_h #include @interface GormStandaloneViewEditor : GormViewWithContentViewEditor @end #endif gorm-1.2.24/GormCore/GormPalettesManager.h0000644000000000000000000000424213410616261017033 0ustar rootroot/* GormPalettesManager.h * * Copyright (C) 1999, 2003 Free Software Foundation, Inc. * * Author: Gregory John Casamento * Author: Richard Frith-Macdonald * Date: 1999, 2003 * * This file is part of GNUstep. * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 3 of the License, or * (at your option) any later version. * * This program 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 General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02111 USA. */ #ifndef INCLUDED_GormPalettesManager_h #define INCLUDED_GormPalettesManager_h #include @class NSMutableArray, NSMutableDictionary, NSDictionary, NSArray, NSBundle; @class NSPanel, NSMatrix, NSView; @interface GormPalettesManager : NSObject { NSPanel *panel; NSMatrix *selectionView; NSView *dragView; NSMutableArray *bundles; NSMutableArray *palettes; int current; BOOL hiddenDuringTest; NSMutableDictionary *importedClasses; NSMutableArray *importedImages; NSMutableArray *importedSounds; NSMutableDictionary *substituteClasses; } // methods for loading and display the palette panels - (BOOL) loadPalette: (NSString*)path; - (id) openPalette: (id) sender; - (NSPanel*) panel; - (void) setCurrentPalette: (id)anObject; // methods for importing stuff from palettes - (void) importClasses: (NSArray *)classes withDictionary: (NSDictionary *)dict; - (NSDictionary *) importedClasses; - (void) importImages: (NSArray *)images withBundle: (NSBundle *) bundle; - (NSArray *) importedImages; - (void) importSounds: (NSArray *)sounds withBundle: (NSBundle *) bundle; - (NSArray *) importedSounds; - (NSDictionary *) substituteClasses; @end #endif gorm-1.2.24/GormCore/GormWrapperBuilder.h0000644000000000000000000000331013410616261016701 0ustar rootroot/* GormWrapperBuilder * * This class is a subclass of the NSDocumentController * * Copyright (C) 2006 Free Software Foundation, Inc. * * Author: Gregory John Casamento * Date: 2006 * * This file is part of GNUstep. * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 3 of the License, or * (at your option) any later version. * * This program 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 General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02111 USA. */ #ifndef INCLUDED_GormWrapperBuilder_h #define INCLUDED_GormWrapperBuilder_h #include @class NSFileWrapper, GormDocument, NSString, NSMutableDictionary; @protocol GormWrapperBuilder - (NSMutableDictionary *) buildFileWrapperDictionaryWithDocument: (GormDocument *)document; - (NSFileWrapper *) buildFileWrapperWithDocument: (GormDocument *)document; @end @interface GormWrapperBuilder : NSObject { GormDocument *document; } + (NSString *) fileType; @end @interface GormWrapperBuilderFactory : NSObject + (GormWrapperBuilderFactory *) sharedWrapperBuilderFactory; + (void) registerWrapperBuilderClass: (Class) aClass; - (id) wrapperBuilderForType: (NSString *) type; @end #endif gorm-1.2.24/GormCore/GormWindowTemplate.h0000644000000000000000000000225013410616261016717 0ustar rootroot/* GormWindowTemplate * * Copyright (C) 2009 Free Software Foundation, Inc. * * Author: Gregory John Casamento * Date: 2009 * * This file is part of GNUstep. * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 3 of the License, or * (at your option) any later version. * * This program 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 General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02111 USA. */ #include #include #include @interface NSWindowTemplate (Private) - (void) setBaseWindowClass: (Class) clz; @end @interface GormWindowTemplate : NSWindowTemplate { BOOL _tempFlag; } @end gorm-1.2.24/GormCore/GormResourceManager.h0000644000000000000000000000214313410616261017037 0ustar rootroot/* GormViewResourceManager.h * * Copyright (C) 2005 Free Software Foundation, Inc. * * Author: Gregory John Casamento * Date: 2005 * * This file is part of GNUstep. * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 3 of the License, or * (at your option) any later version. * * This program 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 General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02111 USA. */ #ifndef INCLUDED_GORMVIEWRESOURCEMANAGER_H #define INCLUDED_GORMVIEWRESOURCEMANAGER_H #include @interface GormResourceManager : IBResourceManager @end #endif gorm-1.2.24/GormCore/GormClassInspector.h0000644000000000000000000000401213410616261016706 0ustar rootroot/** GormClassInspector allow user to select custom classes Copyright (C) 2002 Free Software Foundation, Inc. Author: Gregory John Casamento Date: September 2002 This file is part of GNUstep. 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 3 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, 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ /* All Rights reserved */ #include #include @class GormClassManager; @interface GormClassInspector : IBInspector { // outlets id actionTable; id addAction; id addOutlet; id classField; id outletTable; id parentClass; id removeAction; id removeOutlet; id selectClass; id search; id searchText; id tabView; // internal vars NSString *currentClass; id theobject; id actionData; id outletData; id parentClassData; // class manager.. GormClassManager *classManager; } - (void) addAction: (id)sender; - (void) removeAction: (id)sender; - (void) addOutlet: (id)sender; - (void) removeOutlet: (id)sender; - (void) select: (id)sender; - (void) searchForClass: (id)sender; - (void) selectClass: (id)sender; - (NSString *) _currentClass; - (void) _refreshView; - (void) handleNotification: (NSNotification *)notification; - (void) changeClassName: (id)sender; - (void) selectAction: (id)sender; - (void) selectOutlet: (id)sender; @end gorm-1.2.24/GormCore/GormDocument.m0000644000000000000000000027174213426736552015572 0ustar rootroot/* GormDocument.m * * This class contains Gorm specific implementation of the IBDocuments * protocol plus additional methods which are useful for managing the * contents of the document. * * Copyright (C) 1999,2002,2003,2004,2005 Free Software Foundation, Inc. * * Author: Gregory John Casamento * Date: 2002,2003,2004,2005 * Author: Richard Frith-Macdonald * Date: 1999 * * This file is part of GNUstep. * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 3 of the License, or * (at your option) any later version. * * This program 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 General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02111 USA. */ #include "GormPrivate.h" #include "GormClassManager.h" #include "GormCustomView.h" #include "GormOutlineView.h" #include "GormFunctions.h" #include "GormFilePrefsManager.h" #include "GormViewWindow.h" #include #include #include #include #include #include #include #include #include "NSView+GormExtensions.h" #include "GormSound.h" #include "GormImage.h" #include "GormResourceManager.h" #include "GormClassEditor.h" #include "GormSoundEditor.h" #include "GormImageEditor.h" #include "GormObjectEditor.h" #include "GormWrapperBuilder.h" #include "GormWrapperLoader.h" #include "GormDocumentWindow.h" #include "GormDocumentController.h" @interface GormDisplayCell : NSButtonCell @end @implementation GormDisplayCell - (void) setShowsFirstResponder: (BOOL)flag { [super setShowsFirstResponder: NO]; // Never show ugly frame round button } @end @interface NSNibConnector (GormExtension) - (BOOL) isEqual: (id)object; @end @implementation NSNibConnector (GormExtension) - (BOOL) isEqual: (id)object { BOOL result = NO; if([object isKindOfClass: [NSNibConnector class]] == NO) { return NO; } if(self == object) { result = YES; } else if([[self source] isEqual: [object source]] && [[self destination] isEqual: [object destination]] && [[self label] isEqual: [object label]] && ([self class] == [object class])) { result = YES; } return result; } @end @interface NSDocument (GormPrivate) - (NSWindow *) _docWindow; @end @implementation NSDocument (GormPrivate) - (NSWindow *) _docWindow { static Ivar iv; if (!iv) { iv = class_getInstanceVariable([NSDocument class], "_window"); NSAssert(iv, @"Unable to find _window ivar in NSDocument class"); } return object_getIvar(self, iv); } @end @implementation GormFirstResponder - (NSImage*) imageForViewer { static NSImage *image = nil; if (image == nil) { NSBundle *bundle = [NSBundle mainBundle]; NSString *path = [bundle pathForImageResource: @"GormFirstResponder"]; image = [[NSImage alloc] initWithContentsOfFile: path]; } return image; } - (NSString*) inspectorClassName { return @"GormNotApplicableInspector"; } - (NSString*) connectInspectorClassName { return @"GormNotApplicableInspector"; } - (NSString*) sizeInspectorClassName { return @"GormNotApplicableInspector"; } - (NSString*) classInspectorClassName { return @"GormNotApplicableInspector"; } - (NSString*) className { return @"FirstResponder"; } @end // // Implementation of trivial classes. // @implementation GormObjectToEditor @end @implementation GormEditorToParent @end @implementation GormDocument static NSImage *objectsImage = nil; static NSImage *imagesImage = nil; static NSImage *soundsImage = nil; static NSImage *classesImage = nil; static NSImage *fileImage = nil; /** * Initialize the class. */ + (void) initialize { if (self == [GormDocument class]) { NSBundle *bundle; NSString *path; bundle = [NSBundle mainBundle]; path = [bundle pathForImageResource: @"GormObject"]; if (path != nil) { objectsImage = [[NSImage alloc] initWithContentsOfFile: path]; } path = [bundle pathForImageResource: @"GormImage"]; if (path != nil) { imagesImage = [[NSImage alloc] initWithContentsOfFile: path]; } path = [bundle pathForImageResource: @"GormSound"]; if (path != nil) { soundsImage = [[NSImage alloc] initWithContentsOfFile: path]; } path = [bundle pathForImageResource: @"GormClass"]; if (path != nil) { classesImage = [[NSImage alloc] initWithContentsOfFile: path]; } path = [bundle pathForImageResource: @"Gorm"]; if (path != nil) { fileImage = [[NSImage alloc] initWithContentsOfFile: path]; } // register the resource managers... [IBResourceManager registerResourceManagerClass: [IBResourceManager class]]; [IBResourceManager registerResourceManagerClass: [GormResourceManager class]]; [self setVersion: GNUSTEP_NIB_VERSION]; } } /** * Initialize the new GormDocument object. */ - (id) init { self = [super init]; if (self != nil) { NSNotificationCenter *nc = [NSNotificationCenter defaultCenter]; NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults]; // initialize... openEditors = [[NSMutableArray alloc] init]; classManager = [(GormClassManager *)[GormClassManager alloc] initWithDocument: self]; /* * NB. We must retain the map values (object names) as the nameTable * may not hold identical name objects, but merely equal strings. */ objToName = NSCreateMapTableWithZone(NSObjectMapKeyCallBacks, NSObjectMapValueCallBacks, 128, [self zone]); // for saving the editors when the gorm file is persisted. savedEditors = [[NSMutableArray alloc] init]; // observe certain notifications... [nc addObserver: self selector: @selector(handleNotification:) name: IBClassNameChangedNotification object: classManager]; [nc addObserver: self selector: @selector(handleNotification:) name: IBInspectorDidModifyObjectNotification object: classManager]; [nc addObserver: self selector: @selector(handleNotification:) name: GormDidModifyClassNotification object: classManager]; [nc addObserver: self selector: @selector(handleNotification:) name: GormDidAddClassNotification object: classManager]; [nc addObserver: self selector: @selector(handleNotification:) name: IBWillBeginTestingInterfaceNotification object: nil]; [nc addObserver: self selector: @selector(handleNotification:) name: IBWillEndTestingInterfaceNotification object: nil]; [nc addObserver: self selector: @selector(handleNotification:) name: IBResourceManagerRegistryDidChangeNotification object: nil]; // load resource managers [self createResourceManagers]; /* * Set up container data.... */ nameTable = [[NSMutableDictionary alloc] init]; connections = [[NSMutableArray alloc] init]; topLevelObjects = [[NSMutableSet alloc] init]; visibleWindows = [[NSMutableSet alloc] init]; deferredWindows = [[NSMutableSet alloc] init]; filesOwner = [[GormFilesOwner alloc] init]; [self setName: @"NSOwner" forObject: filesOwner]; firstResponder = [[GormFirstResponder alloc] init]; [self setName: @"NSFirst" forObject: firstResponder]; // preload headers... if ([defaults boolForKey: @"PreloadHeaders"]) { NSArray *headerList = [defaults arrayForKey: @"HeaderList"]; NSEnumerator *en = [headerList objectEnumerator]; id obj = nil; while ((obj = [en nextObject]) != nil) { NSString *header = (NSString *)obj; NSDebugLog(@"Preloading %@", header); NS_DURING { if(![classManager parseHeader: header]) { NSString *file = [header lastPathComponent]; NSString *message = [NSString stringWithFormat: _(@"Unable to parse class in %@"),file]; NSRunAlertPanel(_(@"Problem parsing class"), message, nil, nil, nil); } } NS_HANDLER { NSString *message = [localException reason]; NSRunAlertPanel(_(@"Problem parsing class"), message, nil, nil, nil); } NS_ENDHANDLER; } } // are we upgrading an archive? isOlderArchive = NO; // document is open... isDocumentOpen = YES; } return self; } /** * Perform any additional setup which needs to happen. */ - (void) awakeFromNib { NSRect scrollRect = {{0, 0}, {340, 188}}; NSRect mainRect = {{20, 0}, {320, 188}}; NSNotificationCenter *nc = [NSNotificationCenter defaultCenter]; NSMenu *mainMenu = nil; NSEnumerator *en = nil; id o = nil; // get the window and cache it... window = (GormDocumentWindow *)[self _docWindow]; [IBResourceManager registerForAllPboardTypes:window inDocument:self]; [window setDocument: self]; // set up the toolbar... toolbar = [(NSToolbar *)[NSToolbar alloc] initWithIdentifier: @"GormToolbar"]; [toolbar setAllowsUserCustomization: NO]; // [toolbar setSizeMode: NSToolbarSizeModeSmall]; [toolbar setDelegate: self]; [window setToolbar: toolbar]; RELEASE(toolbar); [toolbar setSelectedItemIdentifier: @"ObjectsItem"]; // set initial selection. // set up notifications for window. [nc addObserver: self selector: @selector(handleNotification:) name: NSWindowWillCloseNotification object: window]; [nc addObserver: self selector: @selector(handleNotification:) name: NSWindowDidBecomeKeyNotification object: window]; [nc addObserver: self selector: @selector(handleNotification:) name: NSWindowWillMiniaturizeNotification object: window]; [nc addObserver: self selector: @selector(handleNotification:) name: NSWindowDidDeminiaturizeNotification object: window]; // objects... mainRect.origin = NSMakePoint(0,0); scrollView = [[NSScrollView alloc] initWithFrame: scrollRect]; [scrollView setHasVerticalScroller: YES]; [scrollView setHasHorizontalScroller: YES]; [scrollView setAutoresizingMask: NSViewHeightSizable|NSViewWidthSizable]; [scrollView setBorderType: NSBezelBorder]; objectsView = [[GormObjectEditor alloc] initWithObject: nil inDocument: self]; [objectsView setFrame: mainRect]; [objectsView setAutoresizingMask: NSViewHeightSizable|NSViewWidthSizable]; [scrollView setDocumentView: objectsView]; RELEASE(objectsView); // images... mainRect.origin = NSMakePoint(0,0); imagesScrollView = [[NSScrollView alloc] initWithFrame: scrollRect]; [imagesScrollView setHasVerticalScroller: YES]; [imagesScrollView setHasHorizontalScroller: YES]; [imagesScrollView setAutoresizingMask: NSViewHeightSizable|NSViewWidthSizable]; [imagesScrollView setBorderType: NSBezelBorder]; imagesView = [[GormImageEditor alloc] initWithObject: nil inDocument: self]; [imagesView setFrame: mainRect]; [imagesView setAutoresizingMask: NSViewHeightSizable|NSViewWidthSizable]; [imagesScrollView setDocumentView: imagesView]; RELEASE(imagesView); // sounds... mainRect.origin = NSMakePoint(0,0); soundsScrollView = [[NSScrollView alloc] initWithFrame: scrollRect]; [soundsScrollView setHasVerticalScroller: YES]; [soundsScrollView setHasHorizontalScroller: YES]; [soundsScrollView setAutoresizingMask: NSViewHeightSizable|NSViewWidthSizable]; [soundsScrollView setBorderType: NSBezelBorder]; soundsView = [[GormSoundEditor alloc] initWithObject: nil inDocument: self]; [soundsView setFrame: mainRect]; [soundsView setAutoresizingMask: NSViewHeightSizable|NSViewWidthSizable]; [soundsScrollView setDocumentView: soundsView]; RELEASE(soundsView); /* classes view */ mainRect.origin = NSMakePoint(0,0); classesView = [(GormClassEditor *)[GormClassEditor alloc] initWithDocument: self]; // [classesView setFrame: mainRect]; /* * Set the objects view as the initial view the user's see on startup. */ [selectionBox setContentView: scrollView]; // add to the objects view... [objectsView addObject: filesOwner]; [objectsView addObject: firstResponder]; /* * Set image for this miniwindow. */ [window setMiniwindowImage: [(id)filesOwner imageForViewer]]; hidden = [[NSMutableArray alloc] init]; // reposition the loaded menu appropriately... mainMenu = [nameTable objectForKey: @"NSMenu"]; if(mainMenu != nil) { NSRect frame = [window frame]; NSPoint origin = frame.origin; NSRect screen = [[NSScreen mainScreen] frame]; // account for the height of the menu we're loading. origin.y = (screen.size.height - 100); // place the main menu appropriately... [[mainMenu window] setFrameTopLeftPoint: origin]; } // load the file preferences.... if(infoData != nil) { if([filePrefsManager loadFromData: infoData]) { NSInteger version = [filePrefsManager version]; NSInteger currentVersion = [GormFilePrefsManager currentVersion]; if(version > currentVersion) { NSInteger retval = NSRunAlertPanel(_(@"Gorm Build Mismatch"), _(@"The file being loaded was created with a newer build, continue?"), _(@"OK"), _(@"Cancel"), nil, nil); if(retval != NSAlertDefaultReturn) { // close the document, if the user says "NO." [self close]; } } DESTROY(infoData); } else { NSLog(@"Loading gorm without data.info file. Default settings will be assumed."); } } // load the images and sounds... en = [images objectEnumerator]; while((o = [en nextObject]) != nil) { [imagesView addObject: o]; } DESTROY(images); en = [images objectEnumerator]; while((o = [en nextObject]) != nil) { [soundsView addObject: o]; } DESTROY(sounds); // // Retain the file prefs view... // RETAIN(filePrefsView); // // All of the entries in the items array are "top level items" // which should be visible in the object's view. // en = [topLevelObjects objectEnumerator]; while((o = [en nextObject]) != nil) { [objectsView addObject: o]; } // set the file type in the prefs manager... [filePrefsManager setFileTypeName: [self fileType]]; } /** * Add aConnector to the set of connectors in this document. */ - (void) addConnector: (id)aConnector { if ([connections indexOfObjectIdenticalTo: aConnector] == NSNotFound) { NSNotificationCenter *nc = [NSNotificationCenter defaultCenter]; [nc postNotificationName: IBWillAddConnectorNotification object: aConnector]; [connections addObject: aConnector]; [nc postNotificationName: IBDidAddConnectorNotification object: aConnector]; } } /** * Returns all connectors. */ - (NSArray*) allConnectors { return [NSArray arrayWithArray: connections]; } /** * Creates the proxy font manager. */ - (void) _instantiateFontManager { GSNibItem *item = nil; item = [[GormObjectProxy alloc] initWithClassName: @"NSFontManager"]; [self setName: @"NSFont" forObject: item]; [self attachObject: item toParent: nil]; RELEASE(item); // set the holder in the document. fontManager = (GormObjectProxy *)item; [self changeToViewWithTag: 0]; } /** * Attach anObject to the document with aParent. */ - (void) attachObject: (id)anObject toParent: (id)aParent { NSArray *old; BOOL newObject = NO; // Modify the document whenever something is added... [self touch]; /* * Create a connector that links this object to its parent. * A nil parent is the root of the hierarchy so we use a dummy object for it. */ if (aParent == nil) { aParent = filesOwner; } old = [self connectorsForSource: anObject ofClass: [NSNibConnector class]]; if ([old count] > 0) { [[old objectAtIndex: 0] setDestination: aParent]; } else { NSNibConnector *con = [[NSNibConnector alloc] init]; [con setSource: anObject]; [con setDestination: aParent]; [self addConnector: (id)con]; RELEASE(con); } /* * Make sure that there is a name for this object. */ if ([self nameForObject: anObject] == nil) { newObject = YES; [self setName: nil forObject: anObject]; } /* * Add top-level objects to objectsView and open their editors. */ if ([anObject isKindOfClass: [NSWindow class]] || [anObject isKindOfClass: [GSNibItem class]]) { [objectsView addObject: anObject]; [topLevelObjects addObject: anObject]; if ([anObject isKindOfClass: [NSWindow class]]) { NSWindow *win = (NSWindow *)anObject; NSView *contentView = [win contentView]; NSArray *subviews = [contentView subviews]; NSEnumerator *en = [subviews objectEnumerator]; NSView *view = nil; // Turn off the release when closed flag, add the content view. [anObject setReleasedWhenClosed: NO]; [self attachObject: contentView toParent: anObject]; // Add all subviews from the window, if any. while((view = [en nextObject]) != nil) { [self attachObject: view toParent: win]; } } [[self openEditorForObject: anObject] activate]; } /* * Determine what should be a top level object. */ else if((aParent == filesOwner || aParent == nil) && [anObject isKindOfClass: [NSMenu class]] == NO) { if([anObject isKindOfClass: [NSObject class]] && [anObject isKindOfClass: [NSView class]] == NO) { [objectsView addObject: anObject]; [topLevelObjects addObject: anObject]; } else if([anObject isKindOfClass: [NSView class]] && [anObject superview] == nil) { [objectsView addObject: anObject]; [topLevelObjects addObject: anObject]; } } /* * Check if it's a font manager. */ else if([anObject isKindOfClass: [NSFontManager class]]) { // If someone tries to attach a font manager, we must attach // the proxy instead. [self _instantiateFontManager]; } /* * Add the menu items from the popup. */ else if([anObject isKindOfClass: [NSPopUpButton class]]) { NSPopUpButton *button = (NSPopUpButton *)anObject; NSEnumerator *en = [[button itemArray] objectEnumerator]; id item = nil; // add all of the items in the popup.. while((item = [en nextObject]) != nil) { [self attachObject: item toParent: button]; } } /* * Add the menu item. */ else if([anObject isKindOfClass: [NSMenuItem class]]) { NSMenu *menu = [(NSMenuItem *)anObject submenu]; if(menu != nil) { [self attachObject: menu toParent: anObject]; } } /* * Add the current menu and any submenus. */ else if ([anObject isKindOfClass: [NSMenu class]]) { BOOL isMainMenu = NO; NSMenu *menu = (NSMenu *)anObject; NSEnumerator *en = [[menu itemArray] objectEnumerator]; id item = nil; // If there is no main menu and a menu gets added, it // will become the main menu. if([self objectForName: @"NSMenu"] == nil) { [self setName: @"NSMenu" forObject: menu]; [objectsView addObject: menu]; [topLevelObjects addObject: menu]; isMainMenu = YES; } else { if([[menu title] isEqual: @"Services"] && [self servicesMenu] == nil) { [self setServicesMenu: menu]; } else if([[menu title] isEqual: @"Windows"] && [self windowsMenu] == nil) { [self setWindowsMenu: menu]; } else if([[menu title] isEqual: @"Open Recent"] && [self recentDocumentsMenu] == nil) { [self setRecentDocumentsMenu: menu]; } // if it doesn't have a supermenu and it's owned by the file's owner, then it's a top level menu.... else if([menu supermenu] == nil && aParent == filesOwner) { [objectsView addObject: menu]; [topLevelObjects addObject: menu]; isMainMenu = NO; } } // add all of the items in the menu. while((item = [en nextObject]) != nil) { [self attachObject: item toParent: menu]; } // activate the editor... [[self openEditorForObject: menu] activate]; // If it's the main menu... locate it appropriately... if(isMainMenu && [self isActive]) { NSRect frame = [[self window] frame]; NSPoint origin = frame.origin; NSRect screen = [[NSScreen mainScreen] frame]; origin.y = (screen.size.height - 100); // Place the main menu appropriately... [[menu window] setFrameTopLeftPoint: origin]; } } /* * If this a scrollview, it is interesting to add its contentview. */ else if (([anObject isKindOfClass: [NSScrollView class]]) && ([(NSScrollView *)anObject documentView] != nil)) { if ([[anObject documentView] isKindOfClass: [NSTableView class]]) { NSInteger i; NSInteger count; NSArray *tc; id tv = [anObject documentView]; tc = [tv tableColumns]; count = [tc count]; [self attachObject: tv toParent: anObject]; for (i = 0; i < count; i++) { [self attachObject: [tc objectAtIndex: i] toParent: tv]; } } else // if ([[anObject documentView] isKindOfClass: [NSTextView class]]) { [self attachObject: [anObject documentView] toParent: anObject]; } } /* * If it's a tab view, then we want the tab items. */ else if ([anObject isKindOfClass: [NSTabView class]]) { NSEnumerator *tie = [[anObject tabViewItems] objectEnumerator]; NSTabViewItem *ti = nil; while((ti = [tie nextObject]) != nil) { [self attachObject: ti toParent: anObject]; } } /* * If it's a tab view item, then we attach the view. */ else if ([anObject isKindOfClass: [NSTabViewItem class]]) { NSTabViewItem *ti = (NSTabViewItem *)anObject; id v = [ti view]; [self attachObject: v toParent: ti]; } /* * If it's a matrix, add the elements of the matrix. */ else if ([anObject isKindOfClass: [NSMatrix class]]) { NSCell *cell = nil; NSEnumerator *en = [[anObject cells] objectEnumerator]; // add all of the cells.... while((cell = [en nextObject]) != nil) { [self attachObject: cell toParent: anObject]; } } /* * If it's a simple NSView, add it and all of it's subviews. */ else if ([anObject isKindOfClass: [NSView class]]) { NSView *view = (NSView *)anObject, *sv = nil; NSEnumerator *en = [[view subviews] objectEnumerator]; // Add all subviews from the window, if any. while((sv = [en nextObject]) != nil) { [self attachObject: sv toParent: view]; } } // Attach the cell of an item to the document so that it has a name and // can be addressed. if([anObject respondsToSelector: @selector(cell)]) { [self attachObject: [anObject cell] toParent: anObject]; } // Detect and add any connection the object might have. // This is done so that any palette items which have predefined connections will be // shown in the connections list. if([anObject respondsToSelector: @selector(action)] && [anObject respondsToSelector: @selector(target)] && newObject) { SEL sel = [anObject action]; if(sel != NULL) { NSString *label = NSStringFromSelector(sel); id source = anObject; NSNibControlConnector *con = [[NSNibControlConnector alloc] init]; id destination = [(NSControl *)anObject target]; NSArray *sourceConnections = [self connectorsForSource: source]; // if it's a menu item we want to connect it to it's parent... if([anObject isKindOfClass: [NSMenuItem class]] && [label isEqual: @"submenuAction:"]) { destination = aParent; } // if the connection needs to be made with the font manager, replace // it with our proxy object and proceed with creating the connection. if((destination == nil || destination == [NSFontManager sharedFontManager]) && [classManager isAction: label ofClass: @"NSFontManager"]) { if(!fontManager) { // initialize font manager... [self _instantiateFontManager]; } // set the destination... destination = fontManager; } // if the destination is still nil, back off to the first responder. if(destination == nil) { destination = firstResponder; } // build the connection [con setSource: source]; [con setDestination: destination]; [con setLabel: label]; // don't duplicate the connection if it already exists. // if([sourceConnections indexOfObjectIdenticalTo: con] == NSNotFound) if([sourceConnections containsObject: con] == NO) { // add it to our connections set. [self addConnector: (id)con]; } // destroy the connection in the object to // prevent any conflict. The connections are restored when the // .gorm is loaded, so there's no need for it anymore. [anObject setTarget: nil]; [anObject setAction: NULL]; // release the connection. RELEASE(con); } } } /** * Attach all objects in anArray to the document with aParent. */ - (void) attachObjects: (NSArray*)anArray toParent: (id)aParent { NSEnumerator *enumerator = [anArray objectEnumerator]; NSObject *obj; while ((obj = [enumerator nextObject]) != nil) { [self attachObject: obj toParent: aParent]; } } - (void) changeToViewWithTag: (int)tag { switch (tag) { case 0: // objects { [selectionBox setContentView: scrollView]; [toolbar setSelectedItemIdentifier: @"ObjectsItem"]; if (![NSApp isConnecting]) [self setSelectionFromEditor: objectsView]; } break; case 1: // images { [selectionBox setContentView: imagesScrollView]; [toolbar setSelectedItemIdentifier: @"ImagesItem"]; [self setSelectionFromEditor: imagesView]; } break; case 2: // sounds { [selectionBox setContentView: soundsScrollView]; [toolbar setSelectedItemIdentifier: @"SoundsItem"]; [self setSelectionFromEditor: soundsView]; } break; case 3: // classes { NSArray *selection = [[(id)NSApp selectionOwner] selection]; [selectionBox setContentView: classesView]; // if something is selected, in the object view. // show the equivalent class in the classes view. if ([selection count] > 0) { id obj = [selection objectAtIndex: 0]; [classesView selectClassWithObject: obj]; } [toolbar setSelectedItemIdentifier: @"ClassesItem"]; [self setSelectionFromEditor: classesView]; } break; case 4: // file prefs { [toolbar setSelectedItemIdentifier: @"FileItem"]; [selectionBox setContentView: filePrefsView]; } break; } } - (NSView *) viewWithTag:(int)tag { switch (tag) { case 0: // objects return objectsView; case 1: // images return imagesView; case 2: // sounds return soundsView; case 3: // classes return classesView; case 4: // file prefs return filePrefsView; default: return nil; } } - (void) changeToTopLevelEditorAcceptingTypes: (NSArray *)types andFileType: (NSString *)fileType { // NSToolbar *toolbar = [_window toolbar]; if([objectsView acceptsTypeFromArray: types] && fileType == nil) { [self changeToViewWithTag: 0]; } else if([imagesView acceptsTypeFromArray: types] && [[imagesView fileTypes] containsObject: fileType]) { [self changeToViewWithTag: 1]; } else if([soundsView acceptsTypeFromArray: types] && [[soundsView fileTypes] containsObject: fileType]) { [self changeToViewWithTag: 2]; } else if([classesView acceptsTypeFromArray: types] && [[classesView fileTypes] containsObject: fileType]) { [self changeToViewWithTag: 3]; } } /** * Change the view in the document window. */ - (void) changeView: (id)sender { [self changeToViewWithTag: [sender tag]]; } /** * The class manager. */ - (GormClassManager*) classManager { return classManager; } /** * Returns all connectors to destination. */ - (NSArray*) connectorsForDestination: (id)destination { return [self connectorsForDestination: destination ofClass: 0]; } /** * Returns all connectors to destination of class aConnectorClass. */ - (NSArray*) connectorsForDestination: (id)destination ofClass: (Class)aConnectorClass { NSMutableArray *array = [NSMutableArray arrayWithCapacity: 16]; NSEnumerator *enumerator = [connections objectEnumerator]; id c; while ((c = [enumerator nextObject]) != nil) { if ([c destination] == destination && (aConnectorClass == 0 || aConnectorClass == [c class])) { [array addObject: c]; } } return array; } /** * Returns all connectors to source. */ - (NSArray*) connectorsForSource: (id)source { return [self connectorsForSource: source ofClass: 0]; } /** * Returns all connectors to a given source where the * connectors are of aConnectorClass. */ - (NSArray*) connectorsForSource: (id)source ofClass: (Class)aConnectorClass { NSMutableArray *array = [NSMutableArray arrayWithCapacity: 16]; NSEnumerator *enumerator = [connections objectEnumerator]; id c; while ((c = [enumerator nextObject]) != nil) { if ([c source] == source && (aConnectorClass == 0 || aConnectorClass == [c class])) { [array addObject: c]; } } return array; } /** * Returns YES, if the document contains anObject. */ - (BOOL) containsObject: (id)anObject { if ([self nameForObject: anObject] == nil) { return NO; } return YES; } /** * Returns YES, if the document contains an object with aName and * parent. */ - (BOOL) containsObjectWithName: (NSString*)aName forParent: (id)parent { id obj = [nameTable objectForKey: aName]; if (obj == nil) { return NO; } return YES; } /** * Copy anObject to aPasteboard using aType. Returns YES, if * successful. */ - (BOOL) copyObject: (id)anObject type: (NSString*)aType toPasteboard: (NSPasteboard*)aPasteboard { return [self copyObjects: [NSArray arrayWithObject: anObject] type: aType toPasteboard: aPasteboard]; } /** * Copy all objects in anArray to aPasteboard using aType. Returns YES, * if successful. */ - (BOOL) copyObjects: (NSArray*)anArray type: (NSString*)aType toPasteboard: (NSPasteboard*)aPasteboard { NSEnumerator *enumerator; NSMutableSet *editorSet; id obj; NSMutableData *data; NSArchiver *archiver; /* * Remove all editors from the selected objects before archiving * and restore them afterwards. */ editorSet = [[NSMutableSet alloc] init]; enumerator = [anArray objectEnumerator]; while ((obj = [enumerator nextObject]) != nil) { id editor = [self editorForObject: obj create: NO]; if (editor != nil) { [editorSet addObject: editor]; [editor deactivate]; } // Windows are a special case. Check the content view and see if it's an active editor. /** if([obj isKindOfClass: [NSWindow class]]) { id contentView = [obj contentView]; if([contentView conformsToProtocol: @protocol(IBEditors)]) { [contentView deactivate]; [editorSet addObject: contentView]; } } */ } // encode the data data = [NSMutableData dataWithCapacity: 0]; archiver = [[NSArchiver alloc] initForWritingWithMutableData: data]; [archiver encodeClassName: @"GormCustomView" intoClassName: @"GSCustomView"]; [archiver encodeRootObject: anArray]; // reactivate enumerator = [editorSet objectEnumerator]; while ((obj = [enumerator nextObject]) != nil) { [obj activate]; } RELEASE(editorSet); [aPasteboard declareTypes: [NSArray arrayWithObject: aType] owner: self]; return [aPasteboard setData: data forType: aType]; } /** * The given pasteboard chaned ownership. */ - (void) pasteboardChangedOwner: (NSPasteboard *)sender { NSDebugLog(@"Owner changed for %@", sender); } /* - (id) release { return [super release]; } */ - (id) retain { [super retain]; NSDebugLog(@"Retaining document, retain count %d", (int)[self retainCount]); return self; } /** * Dealloc all things owned by a GormDocument object. */ - (void) dealloc { [[NSNotificationCenter defaultCenter] removeObserver: self]; ASSIGN(lastEditor, nil); // [filePrefsWindow close]; // Get rid of the selection box. // [selectionBox removeFromSuperviewWithoutNeedingDisplay]; RELEASE(classManager); RELEASE(filePrefsManager); RELEASE(filePrefsView); RELEASE(hidden); if (objToName != 0) { NSFreeMapTable(objToName); } RELEASE(scrollView); RELEASE(classesView); RELEASE(soundsScrollView); RELEASE(imagesScrollView); // RELEASE(filePrefsWindow); // FIXME: Causes NIB to crash... RELEASE(resourceManagers); RELEASE(nameTable); RELEASE(connections); RELEASE(topLevelObjects); RELEASE(visibleWindows); RELEASE(deferredWindows); DESTROY(savedEditors); DESTROY(openEditors); TEST_RELEASE(scmWrapper); [super dealloc]; } /** * Pull all objects which are under the given parent, into array. */ - (void) _retrieveObjectsForParent: (id)parent intoArray: (NSMutableArray *)array recursively: (BOOL)flag { NSArray *cons = [self connectorsForDestination: parent ofClass: [NSNibConnector class]]; NSEnumerator *en = [cons objectEnumerator]; id con = nil; while((con = [en nextObject]) != nil) { id obj = [con source]; if(obj != nil) { [array addObject: obj]; if(flag) { [self _retrieveObjectsForParent: obj intoArray: array recursively: flag]; } } } } /** * Pull all of the objects which are under a given parent. Returns an * autoreleased array. */ - (NSArray *) retrieveObjectsForParent: (id)parent recursively: (BOOL)flag { NSMutableArray *result = [NSMutableArray array]; // If parent is nil, use file's owner. if(parent == nil) { parent = filesOwner; } [self _retrieveObjectsForParent: parent intoArray: result recursively: flag]; return result; } /** * Deteach anObject from the document. */ - (void) detachObject: (id)anObject { if([self containsObject: anObject]) { NSString *name = RETAIN([self nameForObject: anObject]); // released at end of method... unsigned count; NSArray *objs = [self retrieveObjectsForParent: anObject recursively: NO]; id obj = nil; NSEnumerator *en = [objs objectEnumerator]; id editor = [self editorForObject: anObject create: NO]; id parent = [self parentEditorForEditor: editor]; // close the editor... [editor close]; if([parent respondsToSelector: @selector(selectObjects:)]) { [parent selectObjects: [NSArray array]]; } count = [connections count]; while (count-- > 0) { id con = [connections objectAtIndex: count]; if ([con destination] == anObject || [con source] == anObject) { [connections removeObjectAtIndex: count]; } } // if the font manager is being reset, zero out the instance variable. if([name isEqual: @"NSFont"]) { fontManager = nil; } if ([anObject isKindOfClass: [NSWindow class]] || [anObject isKindOfClass: [NSMenu class]] || [topLevelObjects containsObject: anObject]) { [objectsView removeObject: anObject]; } // if it's in the top level items array, remove it. if([topLevelObjects containsObject: anObject]) { [topLevelObjects removeObject: anObject]; } // eliminate it from being the windows/services menu, if it's being detached. if ([anObject isKindOfClass: [NSMenu class]]) { if([self windowsMenu] == anObject) { [self setWindowsMenu: nil]; } else if([self servicesMenu] == anObject) { [self setServicesMenu: nil]; } else if([self recentDocumentsMenu] == anObject) { [self setRecentDocumentsMenu: nil]; } } /* * Make sure this window isn't in the list of objects to be made visible * on nib loading. */ if([anObject isKindOfClass: [NSWindow class]]) { [self setObject: anObject isVisibleAtLaunch: NO]; } // some objects are given a name, some are not. The only ones we need // to worry about are those that have names. if(name != nil) { // remove from custom class map... NSDebugLog(@"Delete from custom class map -> %@",name); [classManager removeCustomClassForName: name]; if([anObject isKindOfClass: [NSScrollView class]]) { NSView *subview = [anObject documentView]; NSString *objName = [self nameForObject: subview]; NSDebugLog(@"Delete from custom class map -> %@",objName); [classManager removeCustomClassForName: objName]; } else if([anObject isKindOfClass: [NSWindow class]]) { [anObject setReleasedWhenClosed: YES]; [anObject close]; } // make certain it's not displayed, if it's being detached. if([anObject isKindOfClass: [NSView class]]) { [anObject removeFromSuperview]; } [nameTable removeObjectForKey: name]; // free... NSMapRemove(objToName, (void*)anObject); } // iterate over the list and remove any subordinate objects. if(en != nil) { while((obj = [en nextObject]) != nil) { [self detachObject: obj]; } } [self setSelectionFromEditor: nil]; // clear the selection. RELEASE(name); // retained at beginning of method... [self touch]; // set the document as modified } } /** * Detach every object in anArray from the document. */ - (void) detachObjects: (NSArray*)anArray { NSEnumerator *enumerator = [anArray objectEnumerator]; NSObject *obj; while ((obj = [enumerator nextObject]) != nil) { [self detachObject: obj]; } } /** * The path to where the .gorm file is saved. */ - (NSString*) documentPath { return [self fileName]; } /** * Create a subclass of the currently selected class in the classes view. */ - (id) createSubclass: (id)sender { return [classesView createSubclass: sender]; } /** * Add an outlet/action to the classes view. */ - (id) addAttributeToClass: (id)sender { [classesView addAttributeToClass]; return self; } /** * Create an instance of a given class. */ - (id) instantiateClass: (id)sender { return [classesView instantiateClass: sender]; } /** * Remove a class from the classes view */ - (id) remove: (id)sender { return [classesView removeClass: sender]; } /** * Parse a header into the classes view. */ - (id) loadClass: (id)sender { return [classesView loadClass: sender]; } /** * Create the class files for the selected class. */ - (id) createClassFiles: (id)sender { return [classesView createClassFiles: sender]; } /** * Close anEditor for anObject. */ - (void) editor: (id)anEditor didCloseForObject: (id)anObject { NSArray *links; /* * If there is a link from this editor to a parent, remove it. */ links = [self connectorsForSource: anEditor ofClass: [GormEditorToParent class]]; NSAssert([links count] < 2, NSInternalInconsistencyException); if ([links count] == 1) { [connections removeObjectIdenticalTo: [links objectAtIndex: 0]]; } /* * Remove the connection linking the object to this editor */ links = [self connectorsForSource: anObject ofClass: [GormObjectToEditor class]]; NSAssert([links count] < 2, NSInternalInconsistencyException); if ([links count] == 1) { [connections removeObjectIdenticalTo: [links objectAtIndex: 0]]; } /* * Add to the master list of editors for this document */ [openEditors removeObjectIdenticalTo: anEditor]; /* * Make sure that this editor is not the selection owner. */ if ([(id)NSApp selectionOwner] == (id)anEditor) { [self resignSelectionForEditor: anEditor]; } } /** * Returns an editor for anObject, if flag is YES, it creates a new * editor, if one doesn't currently exist. */ - (id) editorForObject: (id)anObject create: (BOOL)flag { return [self editorForObject: anObject inEditor: nil create: flag]; } /** * Returns the editor for anObject, in the editor anEditor. If flag is * YES, an editor is created if one doesn't already exist. */ - (id) editorForObject: (id)anObject inEditor: (id)anEditor create: (BOOL)flag { NSArray *links; /* * Look up the editor links for the object to see if it already has an * editor. If it does return it, otherwise create a new editor and a * link to it if the flag is set. */ links = [self connectorsForSource: anObject ofClass: [GormObjectToEditor class]]; if ([links count] == 0 && flag) { Class eClass = NSClassFromString([anObject editorClassName]); id editor; id link; editor = [[eClass alloc] initWithObject: anObject inDocument: self]; link = AUTORELEASE([[GormObjectToEditor alloc] init]); [link setSource: anObject]; [link setDestination: editor]; [connections addObject: link]; if(![openEditors containsObject: editor] && editor != nil) { [openEditors addObject: editor]; } if (anEditor == nil) { /* * By default all editors are owned by the top-level editor of * the document. */ anEditor = objectsView; } if (anEditor != editor) { /* * Link to the parent of the editor. */ link = AUTORELEASE([[GormEditorToParent alloc] init]); [link setSource: editor]; [link setDestination: anEditor]; [connections addObject: link]; } else { NSDebugLog(@"WARNING anEditor = editor"); } [editor activate]; RELEASE((NSObject *)editor); return editor; } else if ([links count] == 0) { return nil; } else { [[[links lastObject] destination] activate]; return [[links lastObject] destination]; } } /** * Forces the closing of all editors in the document. */ - (void) closeAllEditors { NSEnumerator *enumerator; id con; NSMutableArray *editors = [NSMutableArray array]; // remove the editor connections from the connection array... enumerator = [connections objectEnumerator]; while ((con = [enumerator nextObject]) != nil) { if ([con isKindOfClass: [GormObjectToEditor class]]) { [editors addObject: con]; } else if ([con isKindOfClass: [GormEditorToParent class]]) { [editors addObject: con]; } } [connections removeObjectsInArray: editors]; [editors removeAllObjects]; // Close all of the editors & get all of the objects out. // copy the array, since the close method calls editor:didCloseForObject: // and would effect the array during the execution of // makeObjectsPerformSelector:. [editors addObjectsFromArray: openEditors]; [editors makeObjectsPerformSelector: @selector(close)]; [openEditors removeAllObjects]; [editors removeAllObjects]; } static void _real_close(GormDocument *self, NSEnumerator *enumerator) { id obj; NSNotificationCenter *nc = [NSNotificationCenter defaultCenter]; while ((obj = [enumerator nextObject]) != nil) { if ([obj isKindOfClass: [NSWindow class]]) { [obj setReleasedWhenClosed: YES]; [obj close]; } } // deactivate the document... [self setDocumentActive: NO]; [self closeAllEditors]; // shut down all of the editors.. [nc postNotificationName: IBWillCloseDocumentNotification object: self]; [nc removeObserver: self]; // stop listening to all notifications. } /** * Close the document and all windows associated. Mark this document as closed. */ - (void) close { isDocumentOpen = NO; _real_close(self, [nameTable objectEnumerator]); [super close]; } /** * Handle all notifications. Checks the value of [aNotification name] * against the set of notifications this class responds to and takes * appropriate action. */ - (void) handleNotification: (NSNotification*)aNotification { NSString *name = [aNotification name]; if ([name isEqual: NSWindowWillCloseNotification] && isDocumentOpen) { _real_close(self, [nameTable objectEnumerator]); isDocumentOpen = NO; } else if ([name isEqual: NSWindowDidBecomeKeyNotification] && isDocumentOpen) { [self setDocumentActive: YES]; } else if ([name isEqual: NSWindowWillMiniaturizeNotification] && isDocumentOpen) { [self setDocumentActive: NO]; } else if ([name isEqual: NSWindowDidDeminiaturizeNotification] && isDocumentOpen) { [self setDocumentActive: YES]; } else if ([name isEqual: IBWillBeginTestingInterfaceNotification] && isDocumentOpen) { if ([(id)NSApp activeDocument] == self) { NSEnumerator *enumerator; id obj; if ([[self window] isVisible]) { [hidden addObject: [self window]]; [[self window] setExcludedFromWindowsMenu: YES]; [[self window] orderOut: self]; } enumerator = [nameTable objectEnumerator]; while ((obj = [enumerator nextObject]) != nil) { if ([obj isKindOfClass: [NSMenu class]]) { if ([[obj window] isVisible]) { [hidden addObject: obj]; [obj close]; } } else if ([obj isKindOfClass: [NSWindow class]]) { if ([obj isVisible]) { [hidden addObject: obj]; [obj orderOut: self]; } } } } } else if ([name isEqual: IBWillEndTestingInterfaceNotification] && isDocumentOpen) { if ([hidden count] > 0) { NSEnumerator *enumerator; id obj; enumerator = [hidden objectEnumerator]; while ((obj = [enumerator nextObject]) != nil) { if ([obj isKindOfClass: [NSMenu class]]) { [obj display]; } else if ([obj isKindOfClass: [NSWindow class]]) { [obj orderFront: self]; } } [hidden removeAllObjects]; [[self window] setExcludedFromWindowsMenu: NO]; } } else if ([name isEqual: IBClassNameChangedNotification] && isDocumentOpen) { [classesView reloadData]; [self setSelectionFromEditor: nil]; [self touch]; } else if ([name isEqual: IBInspectorDidModifyObjectNotification] && isDocumentOpen) { [classesView reloadData]; [self touch]; } else if (([name isEqual: GormDidModifyClassNotification] || [name isEqual: GormDidDeleteClassNotification]) && isDocumentOpen) { if ([classesView isEditing] == NO) { [classesView reloadData]; [self touch]; } } else if ([name isEqual: GormDidAddClassNotification] && isDocumentOpen) { NSArray *customClasses = [classManager allCustomClassNames]; NSString *newClass = [customClasses lastObject]; // go to the class which was just loaded in the classes view... [classesView reloadData]; [self changeToViewWithTag: 3]; if(newClass != nil) { [classesView selectClass: newClass]; } } else if([name isEqual: IBResourceManagerRegistryDidChangeNotification] && isDocumentOpen) { if(resourceManagers != nil) { Class cls = [aNotification object]; id mgr = [(IBResourceManager *)[cls alloc] initWithDocument: self]; [resourceManagers addObject: mgr]; [IBResourceManager registerForAllPboardTypes:window inDocument:self]; } } } /** * Returns YES, if document is active. */ - (BOOL) isActive { return isActive; } /** * Returns the name for anObject. */ - (NSString*) nameForObject: (id)anObject { return (NSString*)NSMapGet(objToName, (void*)anObject); } /** * Returns the object for name. */ - (id) objectForName: (NSString*)name { return [nameTable objectForKey: name]; } /** * Returns all objects in the document. */ - (NSArray*) objects { return [nameTable allValues]; } /** * Returns YES, if the current select on the classes view is a class. */ - (BOOL) classIsSelected { return [classesView currentSelectionIsClass]; } /** * Remove all instances of a given class. */ - (void) removeAllInstancesOfClass: (NSString *)className { NSMutableArray *removedObjects = [NSMutableArray array]; NSEnumerator *en = [[self objects] objectEnumerator]; id object = nil; // locate objects for removal while((object = [en nextObject]) != nil) { NSString *clsForObj = [classManager classNameForObject: object]; if([className isEqual: clsForObj]) { [removedObjects addObject: object]; } } // remove the objects [self detachObjects: removedObjects]; } /** * Select a class in the classes view */ - (void) selectClass: (NSString *)className { [classesView selectClass: className]; } /** * Select a class in the classes view */ - (void) selectClass: (NSString *)className editClass: (BOOL)flag { [classesView selectClass: className editClass: flag]; } /** * Build our reverse mapping information and other initialisation */ - (void) rebuildObjToNameMapping { NSEnumerator *enumerator; NSString *name; NSDebugLog(@"------ Rebuilding object to name mapping..."); NSResetMapTable(objToName); NSMapInsert(objToName, (void*)filesOwner, (void*)@"NSOwner"); NSMapInsert(objToName, (void*)firstResponder, (void*)@"NSFirst"); enumerator = [[nameTable allKeys] objectEnumerator]; while ((name = [enumerator nextObject]) != nil) { id obj = [nameTable objectForKey: name]; NSDebugLog(@"%@ --> %@",name, obj); NSMapInsert(objToName, (void*)obj, (void*)name); if (([obj isKindOfClass: [NSMenu class]] && [name isEqual: @"NSMenu"]) || [obj isKindOfClass: [NSWindow class]]) { [[self openEditorForObject: obj] activate]; } } } /** * Open the editor for anObject. */ - (id) openEditorForObject: (id)anObject { id e = [self editorForObject: anObject create: YES]; id p = [self parentEditorForEditor: e]; if (p != nil && p != objectsView) { [self openEditorForObject: [p editedObject]]; } // prevent bringing front of menus before they've been properly sized. if([anObject isKindOfClass: [NSMenu class]] == NO) { [e orderFront]; [[e window] makeKeyAndOrderFront: self]; } return e; } /** * Return the parent editor for anEditor. */ - (id) parentEditorForEditor: (id)anEditor { NSArray *links; GormObjectToEditor *con; links = [self connectorsForSource: anEditor ofClass: [GormEditorToParent class]]; con = [links lastObject]; return [con destination]; } /** * Return the parent of anObject. The File's Owner is the root object in the * hierarchy, if anObject's parent is the Files's Owner, this method should return * nil. */ - (id) parentOfObject: (id)anObject { NSArray *old; id con; old = [self connectorsForSource: anObject ofClass: [NSNibConnector class]]; con = [old lastObject]; if ([con destination] != filesOwner && [con destination] != firstResponder) { return [con destination]; } return nil; } /** * Paste objects of aType into the document from aPasteboard * with parent as the parent of the objects. */ - (NSArray*) pasteType: (NSString*)aType fromPasteboard: (NSPasteboard*)aPasteboard parent: (id)parent { NSData *data; NSArray *objects; NSEnumerator *enumerator; NSPoint filePoint; NSPoint screenPoint; NSUnarchiver *u; data = [aPasteboard dataForType: aType]; if (data == nil) { NSDebugLog(@"Pasteboard %@ doesn't contain data of %@", aPasteboard, aType); return nil; } u = AUTORELEASE([[NSUnarchiver alloc] initForReadingWithData: data]); [u decodeClassName: @"GSCustomView" asClassName: @"GormCustomView"]; objects = [u decodeObject]; enumerator = [objects objectEnumerator]; filePoint = [[self window] mouseLocationOutsideOfEventStream]; screenPoint = [[self window] convertBaseToScreen: filePoint]; /* * Windows and panels are a special case - for a multiple window paste, * the windows need to be positioned so they are not on top of each other. */ if ([aType isEqualToString: IBWindowPboardType]) { NSWindow *win; while ((win = [enumerator nextObject]) != nil) { [win setFrameTopLeftPoint: screenPoint]; screenPoint.x += 10; screenPoint.y -= 10; } } else if([aType isEqualToString: IBViewPboardType]) { NSEnumerator *enumerator = [objects objectEnumerator]; NSRect frame; id obj; while ((obj = [enumerator nextObject]) != nil) { // check to see if the object has a frame. If so, then // modify it. If not, simply iterate to the next object if([obj respondsToSelector: @selector(frame)] && [obj respondsToSelector: @selector(setFrame:)]) { frame = [obj frame]; frame.origin.x -= 6; frame.origin.y -= 6; [obj setFrame: frame]; RETAIN(obj); } } } // attach the objects to the parent and touch the document. [self attachObjects: objects toParent: parent]; [self touch]; return objects; } /** * Remove aConnector from the connections array and send the * notifications. */ - (void) removeConnector: (id)aConnector { NSNotificationCenter *nc = [NSNotificationCenter defaultCenter]; RETAIN(aConnector); // prevent it from being dealloc'd until the notification is done. // issue pre notification.. [nc postNotificationName: IBWillRemoveConnectorNotification object: aConnector]; // mark the document as changed. [self touch]; // issue post notification.. [connections removeObjectIdenticalTo: aConnector]; [nc postNotificationName: IBDidRemoveConnectorNotification object: aConnector]; RELEASE(aConnector); // NOW we can dealloc it. } /** * The editor wants to give up the selection. Go through all the known * editors (with links in the connections array) and try to find one * that wants to take over the selection. Activate whatever editor we * find (if any). */ - (void) resignSelectionForEditor: (id)editor { NSEnumerator *enumerator = [connections objectEnumerator]; Class editClass = [GormObjectToEditor class]; id c; while ((c = [enumerator nextObject]) != nil) { if ([c class] == editClass) { id e = [c destination]; if (e != editor && [e wantsSelection]) { [e activate]; [self setSelectionFromEditor: e]; return; } } } /* * No editor available to take the selection - set a nil owner. */ [self setSelectionFromEditor: nil]; } /** * Set aName for object in the document. If aName is nil, * a name is automatically created for object. */ - (void) setName: (NSString*)aName forObject: (id)object { id oldObject = nil; NSString *oldName = nil; NSMutableDictionary *cc = [classManager customClassMap]; NSString *className = nil; if (object == nil) { NSDebugLog(@"Attempt to set name for nil object"); return; } if (aName == nil) { /* * No name given - so we must generate one unless we already have one. */ oldName = [self nameForObject: object]; if (oldName == nil) { NSString *base; unsigned i = 0; /* * Generate a sensible name for the object based on its class. */ if ([object isKindOfClass: [GSNibItem class]]) { // use the actual class name for proxies base = [(id)object className]; } else { base = NSStringFromClass([object class]); } // pare down the name, if we're generating it. if ([base hasPrefix: @"Gorm"]) { base = [base substringFromIndex: 4]; } if ([base hasPrefix: @"NS"] || [base hasPrefix: @"GS"]) { base = [base substringFromIndex: 2]; } aName = [base stringByAppendingFormat: @"(%u)", i]; while ([nameTable objectForKey: aName] != nil) { aName = [base stringByAppendingFormat: @"(%u)", ++i]; } } else { return; /* Already named ... nothing to do */ } } else // user supplied a name... { oldObject = [nameTable objectForKey: aName]; if (oldObject != nil) { NSDebugLog(@"Attempt to re-use name '%@'", aName); return; } oldName = [self nameForObject: object]; if (oldName != nil) { if ([oldName isEqual: aName]) { return; /* Already have this name ... nothing to do */ } [nameTable removeObjectForKey: oldName]; NSMapRemove(objToName, (void*)object); } } // add it to the dictionary. [nameTable setObject: object forKey: aName]; NSMapInsert(objToName, (void*)object, (void*)aName); if (oldName != nil) { RETAIN(oldName); // hold on to this temporarily... [nameTable removeObjectForKey: oldName]; } if ([objectsView containsObject: object]) { [objectsView refreshCells]; } // check the custom classes map and replace the appropriate // object, if a mapping exists. if (cc != nil) { className = [cc objectForKey: oldName]; if (className != nil) { RETAIN(className); [cc removeObjectForKey: oldName]; [cc setObject: className forKey: aName]; RELEASE(className); } } // release oldName, if we get to this point. if(oldName != nil) { RELEASE(oldName); } // touch the document... [self touch]; } /** * Add object to the visible at launch list. */ - (void) setObject: (id)anObject isVisibleAtLaunch: (BOOL)flag { if (flag) { [visibleWindows addObject: anObject]; } else { [visibleWindows removeObject: anObject]; } } /** * Return YES, if anObject is visible at launch time. */ - (BOOL) objectIsVisibleAtLaunch: (id)anObject { return [visibleWindows containsObject: anObject]; } /** * Add anObject to the deferred list. */ - (void) setObject: (id)anObject isDeferred: (BOOL)flag { if (flag) { [deferredWindows addObject: anObject]; } else { [deferredWindows removeObject: anObject]; } } /** * Return YES, if the anObject is in the deferred list. */ - (BOOL) objectIsDeferred: (id)anObject { return [deferredWindows containsObject: anObject]; } // windows / services menus... /** * Set the windows menu. */ - (void) setWindowsMenu: (NSMenu *)anObject { if(anObject != nil) { [nameTable setObject: anObject forKey: @"NSWindowsMenu"]; } else { [nameTable removeObjectForKey: @"NSWindowsMenu"]; } } /** * return the windows menu. */ - (NSMenu *) windowsMenu { return [nameTable objectForKey: @"NSWindowsMenu"]; } /** * Set the object that will be the services menu in the app. */ - (void) setServicesMenu: (NSMenu *)anObject { if(anObject != nil) { [nameTable setObject: anObject forKey: @"NSServicesMenu"]; } else { [nameTable removeObjectForKey: @"NSServicesMenu"]; } } /** * Return the object that will be the services menu. */ - (NSMenu *) servicesMenu { return [nameTable objectForKey: @"NSServicesMenu"]; } /** * Set the menu that will be the recent documents menu in the app. */ - (void) setRecentDocumentsMenu: (NSMenu *)anObject { if(anObject != nil) { [nameTable setObject: anObject forKey: @"NSRecentDocumentsMenu"]; } else { [nameTable removeObjectForKey: @"NSRecentDocumentsMenu"]; } } /** * Return the object that will be the receent documents menu. */ - (NSMenu *) recentDocumentsMenu { return [nameTable objectForKey: @"NSRecentDocumentsMenu"]; } /** * Marks this document as the currently active document. The active document is * the one being edited by the user. */ - (void) setDocumentActive: (BOOL)flag { if (flag != isActive && isDocumentOpen) { NSEnumerator *enumerator; id obj; // stop all connection activities. [(id)NSApp stopConnecting]; enumerator = [nameTable objectEnumerator]; if (flag) { GormDocument *document = (GormDocument*)[(id)NSApp activeDocument]; // set the current document active and unset the old one. [document setDocumentActive: NO]; isActive = YES; // display everything. while ((obj = [enumerator nextObject]) != nil) { NSString *name = [document nameForObject: obj]; if ([obj isKindOfClass: [NSWindow class]]) { [obj orderFront: self]; } else if ([obj isKindOfClass: [NSMenu class]] && [name isEqual: @"NSMenu"]) { [obj display]; } } // // Reset the selection to the current selection held by the current // selection owner of this document when the document becomes active. // This allows the app to switch to the correct inspector when the new // document is selected. // [self setSelectionFromEditor: lastEditor]; } else { isActive = NO; while ((obj = [enumerator nextObject]) != nil) { if ([obj isKindOfClass: [NSWindow class]]) { [obj orderOut: self]; } else if ([obj isKindOfClass: [NSMenu class]] && [[self nameForObject: obj] isEqual: @"NSMenu"]) { [obj close]; } } [self setSelectionFromEditor: nil]; } } } /** * Sets the current selection from the given editor. This method * causes the inspector to refresh with the proper object. */ - (void) setSelectionFromEditor: (id)anEditor { NSNotificationCenter *nc = [NSNotificationCenter defaultCenter]; NSDebugLog(@"setSelectionFromEditor %@", anEditor); ASSIGN(lastEditor, anEditor); [(id)NSApp stopConnecting]; // cease any connection if ([(NSObject *)anEditor respondsToSelector: @selector(window)]) { [[anEditor window] makeKeyWindow]; [[anEditor window] makeFirstResponder: (id)anEditor]; } [nc postNotificationName: IBSelectionChangedNotification object: anEditor]; } /** * Mark the document as modified. */ - (void) touch { [self updateChangeCount: NSChangeDone]; } /** * Returns the window and the rect r for object. */ - (NSWindow*) windowAndRect: (NSRect*)r forObject: (id)object { /* * Get the window and rectangle for which link markup should be drawn. */ if ([objectsView containsObject: object]) { /* * objects that exist in the document objects view must have their link * markup drawn there, so we ask the view for the required rectangle. */ *r = [objectsView rectForObject: object]; return [objectsView window]; } else if ([object isKindOfClass: [NSMenuItem class]]) { NSArray *links; NSMenu *menu; id editor; /* * Menu items must have their markup drawn in the window of the * editor of the parent menu. */ links = [self connectorsForSource: object ofClass: [NSNibConnector class]]; menu = [[links lastObject] destination]; editor = [self editorForObject: menu create: NO]; *r = [editor rectForObject: object]; return [editor window]; } else if ([object isKindOfClass: [NSView class]]) { /* * Normal view objects just get link markup drawn on them. */ id temp = object; id editor = [self editorForObject: temp create: NO]; while ((temp != nil) && (editor == nil)) { temp = [temp superview]; editor = [self editorForObject: temp create: NO]; } if (temp == nil) { *r = [object convertRect: [object bounds] toView: nil]; } else if ([editor respondsToSelector: @selector(windowAndRect:forObject:)]) { return [editor windowAndRect: r forObject: object]; } } else if ([object isKindOfClass: [NSTableColumn class]]) { NSTableView *tv = (NSTableView *)[[(NSTableColumn*)object dataCell] controlView]; NSTableHeaderView *th = [tv headerView]; NSUInteger index; if (th == nil || tv == nil) { NSDebugLog(@"fail 1 %@ %@ %@", [(NSTableColumn*)object headerCell], th, tv); *r = NSZeroRect; return nil; } index = [[tv tableColumns] indexOfObject: object]; if (index == NSNotFound) { NSDebugLog(@"fail 2"); *r = NSZeroRect; return nil; } *r = [th convertRect: [th headerRectOfColumn: index] toView: nil]; return [th window]; } else if([object isKindOfClass: [NSCell class]]) { NSCell *cell = object; NSView *control = [cell controlView]; if ([control isKindOfClass: [NSMatrix class]]) { NSInteger row, col; NSMatrix *matrix = (NSMatrix *)control; if ([matrix getRow: &row column: &col ofCell: cell]) { NSRect cellFrame = [matrix cellFrameAtRow: row column: col]; *r = [control convertRect: cellFrame toView: nil]; return [control window]; } } } // if we get here, then it wasn't any of the above. *r = NSZeroRect; return nil; } /** * The document window. */ - (NSWindow*) window { NSWindowController *winController = [[self windowControllers] objectAtIndex: 0]; return [winController window]; } /** * Removes all connections given action or outlet with the specified label * (paramter name) class name (parameter className). */ - (BOOL) removeConnectionsWithLabel: (NSString *)name forClassNamed: (NSString *)className isAction: (BOOL)action { NSEnumerator *en = [connections objectEnumerator]; NSMutableArray *removedConnections = [NSMutableArray array]; id c = nil; BOOL removed = YES; BOOL prompted = NO; // find connectors to be removed. while ((c = [en nextObject]) != nil) { id proxy = nil; NSString *proxyClass = nil; NSString *label = [c label]; if(label == nil) continue; if (action) { if (![label hasSuffix: @":"]) continue; if (![classManager isAction: label ofClass: className]) continue; proxy = [c destination]; } else { if ([label hasSuffix: @":"]) continue; if (![classManager isOutlet: label ofClass: className]) continue; proxy = [c source]; } // get the class for the current connectors object proxyClass = [proxy className]; if ([label isEqualToString: name] && ([proxyClass isEqualToString: className] || [classManager isSuperclass: className linkedToClass: proxyClass])) { NSString *title; NSString *msg; NSInteger retval; if(prompted == NO) { title = [NSString stringWithFormat: @"Modifying %@",(action==YES?@"Action":@"Outlet")]; msg = [NSString stringWithFormat: _(@"This will break all connections to '%@'. Continue?"), name]; retval = NSRunAlertPanel(title, msg,_(@"OK"),_(@"Cancel"), nil, nil); prompted = YES; } else { removed = NO; break; } if (retval == NSAlertDefaultReturn) { removed = YES; [removedConnections addObject: c]; } else { removed = NO; break; } } } // actually remove the connections. if(removed) { en = [removedConnections objectEnumerator]; while((c = [en nextObject]) != nil) { [self removeConnector: c]; } } // done... NSDebugLog(@"Removed references to %@ on %@", name, className); return removed; } /** * Remove all connections to any and all instances of className. */ - (BOOL) removeConnectionsForClassNamed: (NSString *)className { NSEnumerator *en = nil; id c = nil; BOOL removed = YES; NSInteger retval = -1; NSString *title = [NSString stringWithFormat: _(@"Modifying Class")]; NSString *msg; msg = [NSString stringWithFormat: _(@"This will break all connections to " @"actions/outlets to instances of class '%@' and it's subclasses. Continue?"), className]; // ask the user if he/she wants to continue... retval = NSRunAlertPanel(title, msg,_(@"OK"),_(@"Cancel"), nil, nil); if (retval == NSAlertDefaultReturn) { removed = YES; } else { removed = NO; } // remove all. if(removed) { NSMutableArray *removedConnections = [NSMutableArray array]; // first find all of the connections... en = [connections objectEnumerator]; while ((c = [en nextObject]) != nil) { NSString *srcClass = [[c source] className]; NSString *dstClass = [[c destination] className]; if ([srcClass isEqualToString: className] || [classManager isSuperclass: className linkedToClass: srcClass] || [dstClass isEqualToString: className] || [classManager isSuperclass: className linkedToClass: dstClass]) { [removedConnections addObject: c]; } } // then remove them. en = [removedConnections objectEnumerator]; while((c = [en nextObject]) != nil) { [self removeConnector: c]; } } // done... NSDebugLog(@"Removed references to actions/outlets for objects of %@", className); return removed; } /** * Refresh all connections to any and all instances of className. Checks if * the class has the action/outlet present and deletes it, if it doesn't. */ - (void) refreshConnectionsForClassNamed: (NSString *)className { NSEnumerator *en = [connections objectEnumerator]; NSMutableArray *removedConnections = [NSMutableArray array]; id c = nil; // first find all of the connections... while ((c = [en nextObject]) != nil) { NSString *srcClass = [[c source] className]; NSString *dstClass = [[c destination] className]; NSString *label = [c label]; if ([srcClass isEqualToString: className] || [classManager isSuperclass: className linkedToClass: srcClass]) { if([c isKindOfClass: [NSNibOutletConnector class]]) { if([classManager outletExists: label onClassNamed: className] == NO) { [removedConnections addObject: c]; } } } else if([dstClass isEqualToString: className] || [classManager isSuperclass: className linkedToClass: dstClass]) { if([c isKindOfClass: [NSNibControlConnector class]]) { if([classManager actionExists: label onClassNamed: className] == NO) { [removedConnections addObject: c]; } } } } // then remove them. en = [removedConnections objectEnumerator]; while((c = [en nextObject]) != nil) { [self removeConnector: c]; } } /** * Rename connections connected to an instance of on class to another. */ - (BOOL) renameConnectionsForClassNamed: (NSString *)className toName: (NSString *)newName { NSEnumerator *en = [connections objectEnumerator]; id c = nil; BOOL renamed = YES; NSInteger retval = -1; NSString *title = [NSString stringWithFormat: _(@"Modifying Class")]; NSString *msg = [NSString stringWithFormat: _(@"Change class name '%@' to '%@'. Continue?"), className, newName]; // ask the user if he/she wants to continue... retval = NSRunAlertPanel(title, msg,_(@"OK"),_(@"Cancel"), nil, nil); if (retval == NSAlertDefaultReturn) { renamed = YES; } else { renamed = NO; } // remove all. if(renamed) { while ((c = [en nextObject]) != nil) { id source = [c source]; id destination = [c destination]; // check both... if ([[[c source] className] isEqualToString: className]) { [source setClassName: newName]; NSDebugLog(@"Found matching source"); } else if ([[[c destination] className] isEqualToString: className]) { [destination setClassName: newName]; NSDebugLog(@"Found matching destination"); } } } // done... NSDebugLog(@"Changed references to actions/outlets for objects of %@", className); return renamed; } /** * Print out all editors for debugging purposes. */ - (void) printAllEditors { NSMutableSet *set = [NSMutableSet setWithCapacity: 16]; NSEnumerator *enumerator = [connections objectEnumerator]; id c; while ((c = [enumerator nextObject]) != nil) { if ([GormObjectToEditor class] == [c class]) { [set addObject: [c destination]]; } } NSLog(@"all editors %@", set); } /** * Open a sound and load it into the document. */ - (id) openSound: (id)sender { NSArray *fileTypes = [NSSound soundUnfilteredFileTypes]; NSArray *filenames; NSString *filename; NSOpenPanel *oPanel = [NSOpenPanel openPanel]; int result; int i; [oPanel setAllowsMultipleSelection: YES]; [oPanel setCanChooseFiles: YES]; [oPanel setCanChooseDirectories: NO]; result = [oPanel runModalForDirectory: nil file: nil types: fileTypes]; if (result == NSOKButton) { filenames = [oPanel filenames]; for (i=0; i<[filenames count]; i++) { filename = [filenames objectAtIndex:i]; NSDebugLog(@"Loading sound file: %@",filenames); [soundsView addObject: [GormSound soundForPath: filename]]; } return self; } return nil; } /** * Open an image and copy it into the document. */ - (id) openImage: (id)sender { NSArray *fileTypes = [NSImage imageFileTypes]; NSArray *filenames; NSOpenPanel *oPanel = [NSOpenPanel openPanel]; NSString *filename; int result; int i; [oPanel setAllowsMultipleSelection: YES]; [oPanel setCanChooseFiles: YES]; [oPanel setCanChooseDirectories: NO]; result = [oPanel runModalForDirectory: nil file: nil types: fileTypes]; if (result == NSOKButton) { filenames = [oPanel filenames]; for (i=0; i<[filenames count]; i++) { filename = [filenames objectAtIndex:i]; NSDebugLog(@"Loading image file: %@",filename); [imagesView addObject: [GormImage imageForPath: filename]]; } return self; } return nil; } /** * Return a text description of the document. */ - (NSString *) description { return [NSString stringWithFormat: @"<%s: %lx> = <>", GSClassNameFromObject(self), (unsigned long)self, nameTable, connections]; } /** * Returns YES, if obj is a top level object. */ - (BOOL) isTopLevelObject: (id)obj { return [topLevelObjects containsObject: obj]; } /** * Return first responder stand in. */ - (id) firstResponder { return firstResponder; } /** * Return font manager stand in. */ - (id) fontManager { return fontManager; } /** * Create resource manager instances for all registered classes. */ - (void) createResourceManagers { NSArray *resourceClasses = [IBResourceManager registeredResourceManagerClassesForFramework: nil]; NSEnumerator *en = [resourceClasses objectEnumerator]; Class cls = nil; if(resourceManagers != nil) { // refresh... DESTROY(resourceManagers); } resourceManagers = [[NSMutableArray alloc] init]; while((cls = [en nextObject]) != nil) { id mgr = AUTORELEASE([(IBResourceManager *)[cls alloc] initWithDocument: self]); [resourceManagers addObject: mgr]; } } /** * The list of all resource managers. */ - (NSArray *) resourceManagers { return resourceManagers; } /** * Get the resource manager which handles the content on pboard. */ - (IBResourceManager *) resourceManagerForPasteboard: (NSPasteboard *)pboard { NSEnumerator *en = [resourceManagers objectEnumerator]; IBResourceManager *mgr = nil, *result = nil; while((mgr = [en nextObject]) != nil) { if([mgr acceptsResourcesFromPasteboard: pboard]) { result = mgr; break; } } return result; } /** * Get all pasteboard types managed by the resource manager. */ - (NSArray *) allManagedPboardTypes { NSMutableArray *allTypes = [[NSMutableArray alloc] initWithObjects: NSFilenamesPboardType, GormLinkPboardType, nil]; NSArray *mgrs = [self resourceManagers]; NSEnumerator *en = [mgrs objectEnumerator]; IBResourceManager *mgr = nil; AUTORELEASE(allTypes); while((mgr = [en nextObject]) != nil) { NSArray *pbTypes = [mgr resourcePasteboardTypes]; [allTypes addObjectsFromArray: pbTypes]; } return allTypes; } /** * This method collects all of the objects in the document. */ - (NSMutableArray *) _collectAllObjects { NSMutableArray *allObjects = [NSMutableArray arrayWithArray: [topLevelObjects allObjects]]; NSEnumerator *en = [topLevelObjects objectEnumerator]; NSMutableArray *removeObjects = [NSMutableArray array]; id obj = nil; // collect all subviews/menus/etc. while((obj = [en nextObject]) != nil) { if([obj isKindOfClass: [NSWindow class]]) { NSMutableArray *views = [NSMutableArray array]; NSEnumerator *ven = [views objectEnumerator]; id vobj = nil; subviewsForView([(NSWindow *)obj contentView], views); [allObjects addObjectsFromArray: views]; while((vobj = [ven nextObject])) { if([vobj isKindOfClass: [GormCustomView class]]) { [removeObjects addObject: vobj]; } else if([vobj isKindOfClass: [NSMatrix class]]) { [allObjects addObjectsFromArray: [vobj cells]]; } else if([vobj isKindOfClass: [NSPopUpButton class]]) { [allObjects addObjectsFromArray: [vobj itemArray]]; } else if([vobj isKindOfClass: [NSTabView class]]) { [allObjects addObjectsFromArray: [vobj tabViewItems]]; } } } else if([obj isKindOfClass: [NSMenu class]]) { [allObjects addObjectsFromArray: findAll(obj)]; } } // take out objects which shouldn't be considered. [allObjects removeObjectsInArray: removeObjects]; return allObjects; } /** * This method is used to translate all of the strings in the file from one language * into another. This is helpful when attempting to translate an application for use * in different locales. */ - (void) translate: (id)sender { NSArray *fileTypes = [NSArray arrayWithObjects: @"strings", nil]; NSOpenPanel *oPanel = [NSOpenPanel openPanel]; int result; [oPanel setAllowsMultipleSelection: NO]; [oPanel setCanChooseFiles: YES]; [oPanel setCanChooseDirectories: NO]; result = [oPanel runModalForDirectory: nil file: nil types: fileTypes]; if (result == NSOKButton) { NSMutableArray *allObjects = [self _collectAllObjects]; NSString *filename = [oPanel filename]; NSDictionary *dictionary = nil; NSEnumerator *en = nil; id obj = nil; NS_DURING { dictionary = [[NSString stringWithContentsOfFile: filename] propertyListFromStringsFileFormat]; } NS_HANDLER { NSString *message = [localException reason]; NSRunAlertPanel(_(@"Problem loading strings"), message, nil, nil, nil); } NS_ENDHANDLER // change to translated values. en = [allObjects objectEnumerator]; while((obj = [en nextObject]) != nil) { NSString *translation = nil; if([obj respondsToSelector: @selector(setTitle:)] && [obj respondsToSelector: @selector(title)]) { translation = [dictionary objectForKey: [obj title]]; if(translation != nil) { [obj setTitle: translation]; } } else if([obj respondsToSelector: @selector(setStringValue:)] && [obj respondsToSelector: @selector(stringValue)]) { translation = [dictionary objectForKey: [obj stringValue]]; if(translation != nil) { [obj setStringValue: translation]; } } else if([obj respondsToSelector: @selector(setLabel:)] && [obj respondsToSelector: @selector(label)]) { translation = [dictionary objectForKey: [obj label]]; if(translation != nil) { [obj setLabel: translation]; } } if(translation != nil) { if([obj isKindOfClass: [NSView class]]) { [obj setNeedsDisplay: YES]; } [self touch]; } // redisplay/flush, if the object is a window. if([obj isKindOfClass: [NSWindow class]]) { NSWindow *w = (NSWindow *)obj; [w setViewsNeedDisplay: YES]; [w disableFlushWindow]; [[w contentView] setNeedsDisplay: YES]; [[w contentView] displayIfNeeded]; [w enableFlushWindow]; [w flushWindowIfNeeded]; } } } } /** * This method is used to export all strings in a document to a file for Language * translation. This allows the user to see all of the strings which can be translated * and allows the user to provide a translateion for each of them. */ - (void) exportStrings: (id)sender { NSSavePanel *sp = [NSSavePanel savePanel]; int result; [sp setRequiredFileType: @"strings"]; [sp setTitle: _(@"Save strings file as...")]; result = [sp runModalForDirectory: NSHomeDirectory() file: nil]; if (result == NSOKButton) { NSMutableArray *allObjects = [self _collectAllObjects]; NSString *filename = [sp filename]; NSMutableDictionary *dictionary = [NSMutableDictionary dictionary]; NSEnumerator *en = [allObjects objectEnumerator]; id obj = nil; BOOL touched = NO; // change to translated values. while((obj = [en nextObject]) != nil) { NSString *string = nil; if([obj respondsToSelector: @selector(setTitle:)] && [obj respondsToSelector: @selector(title)]) { string = [obj title]; } else if([obj respondsToSelector: @selector(setStringValue:)] && [obj respondsToSelector: @selector(stringValue)]) { string = [obj stringValue]; } else if([obj respondsToSelector: @selector(setLabel:)] && [obj respondsToSelector: @selector(label)]) { string = [obj label]; } if(string != nil) { [dictionary setObject: string forKey: string]; touched = YES; } } if(touched) { NSString *stringToWrite = @"/* TRANSLATORS: Make sure to quote all translated strings if\n" @" they contain spaces or non-ASCII characters. */\n\n"; stringToWrite = [stringToWrite stringByAppendingString: [dictionary descriptionInStringsFileFormat]]; [stringToWrite writeToFile: filename atomically: YES]; } } } /** * Arrange views in front or in back of one another. */ - (void) arrangeSelectedObjects: (id)sender { NSArray *selection = [[(id)NSApp selectionOwner] selection]; NSInteger tag = [sender tag]; NSEnumerator *en = [selection objectEnumerator]; id v = nil; while((v = [en nextObject]) != nil) { if([v isKindOfClass: [NSView class]]) { id editor = [self editorForObject: v create: NO]; if([editor respondsToSelector: @selector(superview)]) { id superview = [editor superview]; if(tag == 0) // bring to front... { [superview moveViewToFront: editor]; } else if(tag == 1) // send to back { [superview moveViewToBack: editor]; } [superview setNeedsDisplay: YES]; } } } } /** * Align objects to center, left, right, top, bottom. */ - (void) alignSelectedObjects: (id)sender { NSArray *selection = [[(id)NSApp selectionOwner] selection]; NSInteger tag = [sender tag]; NSEnumerator *en = [selection objectEnumerator]; id v = nil; id prev = nil; // Mark the document modified. [self touch]; // Iterate over all in the selection and align them... while((v = [en nextObject]) != nil) { if([v isKindOfClass: [NSView class]]) { id editor = [self editorForObject: v create: NO]; if(prev != nil) { NSRect r = [prev frame]; NSRect e = [editor frame]; if(tag == 0) // center vertically { float center = (r.origin.x + (r.size.width / 2)); e.origin.x = (center - (e.size.width / 2)); } else if(tag == 1) // center horizontally { float center = (r.origin.y + (r.size.height / 2)); e.origin.y = (center - (e.size.height / 2)); } else if(tag == 2) // align left { e.origin.x = r.origin.x; } else if(tag == 3) // align right { float right = (r.origin.x + r.size.width); e.origin.x = (right - e.size.width); } else if(tag == 4) // align top { float top = (r.origin.y + r.size.height); e.origin.y = (top - e.size.height); } else if(tag == 5) // align bottom { e.origin.y = r.origin.y; } [editor setFrame: e]; [[editor superview] setNeedsDisplay: YES]; } prev = editor; } } } /** * The window nib for the document class... */ - (NSString *) windowNibName { return @"GormDocument"; } /** * Call the builder and create the file wrapper to save the appropriate format. */ - (NSFileWrapper *)fileWrapperRepresentationOfType: (NSString *)type { id builder = [[GormWrapperBuilderFactory sharedWrapperBuilderFactory] wrapperBuilderForType: type]; NSFileWrapper *result = nil; /* * Warn the user, if we are about to upgrade the package. */ if(isOlderArchive && [filePrefsManager isLatest]) { NSInteger retval = NSRunAlertPanel(_(@"Compatibility Warning"), _(@"Saving will update this gorm to the latest version \n" @"which may not be compatible with some previous versions \n" @"of GNUstep."), _(@"Save"), _(@"Don't Save"), nil, nil); if (retval != NSAlertDefaultReturn) { return nil; } else { // we're saving anyway... set to new value. isOlderArchive = NO; } } /* * Notify the world that we are saving... */ [[NSNotificationCenter defaultCenter] postNotificationName: IBWillSaveDocumentNotification object: self]; // build the archive... [self deactivateEditors]; result = [builder buildFileWrapperWithDocument: self]; [self reactivateEditors]; if(result) { /* * This is the last thing we should do... */ [[NSNotificationCenter defaultCenter] postNotificationName: IBDidSaveDocumentNotification object: self]; } return result; } - (BOOL)loadFileWrapperRepresentation: (NSFileWrapper *)wrapper ofType: (NSString *)type { id loader = [[GormWrapperLoaderFactory sharedWrapperLoaderFactory] wrapperLoaderForType: type]; BOOL result = [loader loadFileWrapper: wrapper withDocument: self]; if(result) { // this is the last thing we should do... [[NSNotificationCenter defaultCenter] postNotificationName: IBDidOpenDocumentNotification object: self]; // make sure that the newly loaded document does not // mark itself as modified. [self updateChangeCount: NSChangeCleared]; } return result; } - (BOOL) keepBackupFile { return ([[NSUserDefaults standardUserDefaults] integerForKey: @"BackupFile"] == 1); } - (NSString *)displayName { if ([self fileName] != nil) { return [[self fileName] lastPathComponent]; } else { return [super displayName]; } } /** * All of the objects and corresponding names. */ - (NSMutableDictionary *) nameTable { return nameTable; } /** * All of the connections... */ - (NSMutableArray *) connections { return connections; } /** * All top level objects. */ - (NSMutableSet *) topLevelObjects { return topLevelObjects; } /** * All windows marked, visible at launch. */ - (NSSet *) visibleWindows { return visibleWindows; } /** * All windows marked, deferred. */ - (NSSet *) deferredWindows { return deferredWindows; } - (NSFileWrapper *) scmWrapper { return scmWrapper; } - (void) setSCMWrapper: (NSFileWrapper *)wrapper { ASSIGN(scmWrapper, wrapper); } /** * Images */ - (NSArray *) images { return [imagesView objects]; } /** * Sounds */ - (NSArray *) sounds { return [soundsView objects]; } /** * Sounds */ - (void) setSounds: (NSArray *)snds { ASSIGN(sounds,[snds mutableCopy]); } /** * Images */ - (void) setImages: (NSArray *)imgs { ASSIGN(images,[imgs mutableCopy]); } /** * File's owner... */ - (GormFilesOwner *) filesOwner { return filesOwner; } /** * Gorm file prefs manager. */ - (GormFilePrefsManager *) filePrefsManager { return filePrefsManager; } - (void) setDocumentOpen: (BOOL) flag { isDocumentOpen = flag; } - (BOOL) isDocumentOpen { return isDocumentOpen; } - (void) setInfoData: (NSData *)data { ASSIGN(infoData, data); } - (NSData *) infoData { return infoData; } - (void) setOlderArchive: (BOOL)flag { isOlderArchive = flag; } - (BOOL) isOlderArchive { return isOlderArchive; } - (void) encodeWithCoder: (NSCoder *)coder { [coder encodeObject: topLevelObjects]; [coder encodeObject: nameTable]; [coder encodeObject: visibleWindows]; [coder encodeObject: connections]; } - (id) initWithCoder: (NSCoder *)coder { ASSIGN(topLevelObjects, [coder decodeObject]); ASSIGN(nameTable, [coder decodeObject]); ASSIGN(visibleWindows, [coder decodeObject]); ASSIGN(connections, [coder decodeObject]); return self; } - (void) awakeWithContext: (NSDictionary *)context { NSEnumerator *en = [connections objectEnumerator]; id o = nil; while((o = [en nextObject]) != nil) { [o establishConnection]; } en = [visibleWindows objectEnumerator]; o = nil; while((o = [en nextObject]) != nil) { [o orderFront: self]; } } /** * Deactivate the editors for archiving.. */ - (void) deactivateEditors { NSEnumerator *enumerator; id con; /* * Map all connector sources and destinations to their name strings. * Deactivate editors so they won't be archived. */ enumerator = [connections objectEnumerator]; while ((con = [enumerator nextObject]) != nil) { if ([con isKindOfClass: [GormObjectToEditor class]]) { [savedEditors addObject: con]; [[con destination] deactivate]; } else if ([con isKindOfClass: [GormEditorToParent class]]) { [savedEditors addObject: con]; } } [connections removeObjectsInArray: savedEditors]; } /** * Reactivate all of the editors... */ - (void) reactivateEditors { NSEnumerator *enumerator; id con; /* * Restore editor links and reactivate the editors. */ [connections addObjectsFromArray: savedEditors]; enumerator = [savedEditors objectEnumerator]; while ((con = [enumerator nextObject]) != nil) { if ([[con source] isKindOfClass: [NSView class]] == NO) [[con destination] activate]; } [savedEditors removeAllObjects]; } - (void) setFileType: (NSString *)type { [super setFileType: type]; [filePrefsManager setFileTypeName: type]; } - (BOOL) revertToContentsOfURL: (NSURL *)url ofType: (NSString *)type error: (NSError **)error { GormDocumentController *dc = [NSDocumentController sharedDocumentController]; // [dc performSelector:@selector(openDocumentWithContentsOfURL:) withObject:url afterDelay:2]; [self close]; [dc openDocumentWithContentsOfURL:url]; return YES; } //// PRIVATE METHODS... - (NSString *) classForObject: (id)obj { return [classManager classNameForObject: obj]; } - (NSArray *) actionsOfClass: (NSString *)className { return [classManager allActionsForClassNamed: className]; } - (NSArray *) outletsOfClass: (NSString *)className { return [classManager allOutletsForClassNamed: className]; } @end @implementation GormDocument (MenuValidation) - (BOOL) isEditingObjects { return ([selectionBox contentView] == scrollView); } - (BOOL) isEditingImages { return ([selectionBox contentView] == imagesScrollView); } - (BOOL) isEditingSounds { return ([selectionBox contentView] == soundsScrollView); } - (BOOL) isEditingClasses { return ([selectionBox contentView] == classesView); } @end @implementation GormDocument (NSToolbarDelegate) - (NSToolbarItem*)toolbar: (NSToolbar*)toolbar itemForItemIdentifier: (NSString*)itemIdentifier willBeInsertedIntoToolbar: (BOOL)flag { NSToolbarItem *toolbarItem = AUTORELEASE([[NSToolbarItem alloc] initWithItemIdentifier: itemIdentifier]); if([itemIdentifier isEqual: @"ObjectsItem"]) { [toolbarItem setLabel: @"Objects"]; [toolbarItem setImage: objectsImage]; [toolbarItem setTarget: self]; [toolbarItem setAction: @selector(changeView:)]; [toolbarItem setTag: 0]; } else if([itemIdentifier isEqual: @"ImagesItem"]) { [toolbarItem setLabel: @"Images"]; [toolbarItem setImage: imagesImage]; [toolbarItem setTarget: self]; [toolbarItem setAction: @selector(changeView:)]; [toolbarItem setTag: 1]; } else if([itemIdentifier isEqual: @"SoundsItem"]) { [toolbarItem setLabel: @"Sounds"]; [toolbarItem setImage: soundsImage]; [toolbarItem setTarget: self]; [toolbarItem setAction: @selector(changeView:)]; [toolbarItem setTag: 2]; } else if([itemIdentifier isEqual: @"ClassesItem"]) { [toolbarItem setLabel: @"Classes"]; [toolbarItem setImage: classesImage]; [toolbarItem setTarget: self]; [toolbarItem setAction: @selector(changeView:)]; [toolbarItem setTag: 3]; } else if([itemIdentifier isEqual: @"FileItem"]) { [toolbarItem setLabel: @"File"]; [toolbarItem setImage: fileImage]; [toolbarItem setTarget: self]; [toolbarItem setAction: @selector(changeView:)]; [toolbarItem setTag: 4]; } return toolbarItem; } - (NSArray*) toolbarAllowedItemIdentifiers: (NSToolbar*)toolbar { return [NSArray arrayWithObjects: @"ObjectsItem", @"ImagesItem", @"SoundsItem", @"ClassesItem", @"FileItem", nil]; } - (NSArray*) toolbarDefaultItemIdentifiers: (NSToolbar*)toolbar { return [NSArray arrayWithObjects: @"ObjectsItem", @"ImagesItem", @"SoundsItem", @"ClassesItem", @"FileItem", nil]; } - (NSArray*) toolbarSelectableItemIdentifiers: (NSToolbar*)toolbar { return [NSArray arrayWithObjects: @"ObjectsItem", @"ImagesItem", @"SoundsItem", @"ClassesItem", @"FileItem", nil]; } @end gorm-1.2.24/GormCore/GormMatrixEditor.m0000644000000000000000000005013013410616261016374 0ustar rootroot/* GormMatrixEditor.m - Editor for matrices. * * Copyright (C) 2001 Free Software Foundation, Inc. * * Authors: Adam Fedor * Pierre-Yves Rivaille * Date: Sep 2001 * Aug 2002 * * This file is part of GNUstep. * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 3 of the License, or * (at your option) any later version. * * This program 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 General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02111 USA. */ #include #include #include "GormPrivate.h" #include "GormImage.h" #include "GormViewEditor.h" #include "GormMatrixEditor.h" #include "GormViewWithSubviewsEditor.h" #include "GormPlacementInfo.h" #include "GormFontViewController.h" #include "GormViewKnobs.h" #define _EO ((NSMatrix*)_editedObject) @interface GormViewEditor (Private) - (void) _displayFrame: (NSRect) frame withPlacementInfo: (GormPlacementInfo*)gpi; @end @implementation NSMatrix (IBObjectAdditions) - (NSString*) editorClassName { return @"GormMatrixEditor"; } @end @interface NSForm (GormAdditions) - (CGFloat) titleWidth; @end @implementation NSForm (GormAdditions) - (CGFloat)titleWidth { NSInteger i, count = [self numberOfRows]; float new_title_width = 0; float candidate_title_width = 0; // Compute max of title width in the cells for (i = 0; i < count; i++) { candidate_title_width = [_cells[i][0] titleWidth]; if (candidate_title_width > new_title_width) new_title_width = candidate_title_width; } return new_title_width; } @end @implementation GormMatrixEditor - (void) copySelection { if (selected != nil) { [document copyObjects: [self selection] type: IBViewPboardType toPasteboard: [NSPasteboard generalPasteboard]]; } } - (void) deleteSelection { NSDebugLog(@"Cannot delete Matrix cell\n"); } static BOOL done_editing; - (void) handleNotification: (NSNotification*)aNotification { NSString *name = [aNotification name]; if ([name isEqual: NSControlTextDidEndEditingNotification] == YES) { done_editing = YES; } else NSLog(@"GormMatrixEditor got unhandled notification %@", name); } /* * Initialisation */ - (id) initWithObject: (id)anObject inDocument: (id)aDocument { NSMutableArray *draggedTypes = [NSMutableArray array]; opened = NO; selected = nil; selectedCol = -1; selectedRow = -1; _displaySelection = YES; self = [super initWithObject: anObject inDocument: aDocument]; // dragged types... [draggedTypes addObject: GormImagePboardType]; [draggedTypes addObject: GormLinkPboardType]; [draggedTypes addObject: GormSoundPboardType]; // register... [self registerForDraggedTypes: draggedTypes]; return self; } /* Called when we double-click on a text/editable cell or form. Overlay a text field so the user can edit the title. */ - (void) editTitleWithEvent: (NSEvent *)theEvent { NSInteger row, col; unsigned eventMask; id edit_view; BOOL isForm; NSRect frame; NSTextField *editField; NSDate *future = [NSDate distantFuture]; NSNotificationCenter *nc = [NSNotificationCenter defaultCenter]; isForm = [_EO isKindOfClass: [NSForm class]]; if (isForm == NO && [selected type] != NSTextCellType) return; // get the superview we are to edit from. edit_view = [_EO superview]; [_EO getRow: &row column: &col ofCell: selected]; frame = [_EO cellFrameAtRow: row column: col]; frame.origin.x += NSMinX([_EO frame]); if (isForm) frame.size.width = [(NSForm *)_EO titleWidth]; else frame = [selected titleRectForBounds: frame]; if ([_EO isFlipped]) { frame.origin.y = NSMaxY([_EO frame]) - NSMaxY(frame); } else { frame.origin.y = NSMinY([_EO frame]) + NSMinY(frame); } /* Now create an edit field and allow the user to edit the text */ editField = [[NSTextField alloc] initWithFrame: frame]; [editField setEditable: YES]; [editField setSelectable: YES]; [editField setBezeled: NO]; [editField setEnabled: YES]; if (isForm) [editField setStringValue: [(NSFormCell *)selected title]]; else [editField setStringValue: [selected stringValue]]; [edit_view addSubview: editField]; // [edit_view displayRect: frame]; [edit_view display]; [[edit_view window] flushWindow]; [nc addObserver: self selector: @selector(handleNotification:) name: NSControlTextDidEndEditingNotification object: nil]; /* Do some modal editing */ [editField selectText: self]; eventMask = NSLeftMouseDownMask | NSLeftMouseUpMask | NSKeyDownMask | NSKeyUpMask | NSFlagsChangedMask; done_editing = NO; while (!done_editing) { NSEvent *e; NSEventType eType; e = [NSApp nextEventMatchingMask: eventMask untilDate: future inMode: NSEventTrackingRunLoopMode dequeue: YES]; eType = [e type]; switch (eType) { case NSLeftMouseDown: { NSPoint dp = [edit_view convertPoint: [e locationInWindow] fromView: nil]; if (NSMouseInRect(dp, frame, NO) == NO) { done_editing = YES; break; } } [[editField currentEditor] mouseDown: e]; break; case NSLeftMouseUp: [[editField currentEditor] mouseUp: e]; break; case NSLeftMouseDragged: [[editField currentEditor] mouseDragged: e]; break; case NSKeyDown: [[editField currentEditor] keyDown: e]; break; case NSKeyUp: [[editField currentEditor] keyUp: e]; break; case NSFlagsChanged: [[editField currentEditor] flagsChanged: e]; break; default: NSLog(@"Internal Error: Unhandled event during editing: %@", e); break; } } [nc removeObserver: self name: NSControlTextDidEndEditingNotification object: nil]; [self makeSelectionVisible: NO]; if (isForm) { /* Set the new title and resize the form to match the titles */ CGFloat oldTitleWidth, titleWidth; NSRect oldFrame; oldTitleWidth = [(NSForm *)_EO titleWidth]; [(NSFormCell *)selected setTitle: [editField stringValue]]; [(NSForm *)_EO calcSize]; titleWidth = [(NSForm *)_EO titleWidth]; oldFrame = frame = [_EO frame]; frame.origin.x -= (titleWidth - oldTitleWidth); frame.size.width += (titleWidth - oldTitleWidth); [(NSForm *)_EO setEntryWidth: NSWidth(frame)]; [(NSForm *)_EO setFrame: frame]; frame = NSUnionRect(frame, oldFrame); } else [selected setStringValue: [editField stringValue]]; [edit_view removeSubview: editField]; [edit_view displayRect: frame]; [self makeSelectionVisible: YES]; RELEASE(editField); } - (BOOL) canBeOpened { return YES; } - (void) setOpened: (BOOL) value { if (value) { opened = YES; } else { opened = NO; selected = nil; selectedCol = -1; selectedRow = -1; } } - (void) mouseDown: (NSEvent *)theEvent { BOOL onKnob = NO; { if ([[parent selection] containsObject: _EO]) { IBKnobPosition knob = IBNoneKnobPosition; NSPoint mouseDownPoint = [self convertPoint: [theEvent locationInWindow] fromView: nil]; knob = GormKnobHitInRect([self bounds], mouseDownPoint); if (knob != IBNoneKnobPosition) onKnob = YES; } if (onKnob == YES) { if (_next_responder) return [_next_responder mouseDown: theEvent]; else return [self noResponderFor: @selector(mouseDown:)]; } } if (opened == NO) { [super mouseDown: theEvent]; return; } { NSInteger row, col; NSPoint mouseDownPoint = [_EO convertPoint: [theEvent locationInWindow] fromView: nil]; if ([_EO getRow: &row column: &col forPoint: mouseDownPoint] == YES) { selectedRow = row; selectedCol = col; selected = [_EO cellAtRow: row column: col]; [document setSelectionFromEditor: self]; if (selected != nil && ([theEvent clickCount] == 2) ) { [self editTitleWithEvent: theEvent]; return; } [self setNeedsDisplay: YES]; } else { selected = nil; selectedRow = -1; selectedCol = -1; [document setSelectionFromEditor: self]; } } } - (void) makeSelectionVisible: (BOOL)flag { if (selected != nil) { NSInteger row, col; if ([_EO getRow: &row column: &col ofCell: selected]) { NSRect frame = [_EO cellFrameAtRow: row column: col]; if (flag == YES) [_EO selectCellAtRow: row column: col]; [_EO lockFocus]; [[NSColor controlShadowColor] set]; NSHighlightRect(frame); [_EO unlockFocus]; } } else { [_EO deselectAllCells]; } [_EO display]; [[_EO window] flushWindow]; } - (void) selectObjects: (NSArray*)anArray { id obj = [anArray lastObject]; [self makeSelectionVisible: NO]; selected = obj; [document setSelectionFromEditor: self]; [self makeSelectionVisible: YES]; } - (NSArray*) selection { if (selected == nil) return [NSArray arrayWithObject: _EO]; else return [NSArray arrayWithObject: selected]; } - (BOOL) acceptsTypeFromArray: (NSArray*)types { return ([types containsObject: IBObjectPboardType] || [types containsObject: GormImagePboardType]); } - (void) postDraw: (NSRect) rect { if (_displaySelection) { if ((selectedRow != -1) && (selectedCol != -1)) { NSDebugLog(@"highlighting %@", NSStringFromRect([_EO cellFrameAtRow: selectedRow column: selectedCol])); [[NSColor blackColor] set]; NSHighlightRect([_EO convertRect: [_EO cellFrameAtRow: selectedRow column: selectedCol] toView: self]); } } } - (NSRect) _constrainedFrame: (NSRect) frame withEvent: (NSEvent *)theEvent andKnob: (IBKnobPosition) knob { NSInteger width; NSInteger height; if ([theEvent modifierFlags] & NSAlternateKeyMask) { NSInteger rows = [_EO numberOfRows]; NSInteger cols = [_EO numberOfColumns]; NSSize interSize = [_EO intercellSpacing]; NSInteger colWidth = ([_EO frame].size.width - (cols - 1) * interSize.width) / cols; NSInteger rowHeight = ([_EO frame].size.height - (rows - 1) * interSize.height) / rows; NSInteger widthIncrement = colWidth + interSize.width; NSInteger heightIncrement = rowHeight + interSize.height; if (frame.size.width < colWidth) { width = colWidth; rows = 1; } else { width = frame.size.width - [_EO frame].size.width; rows = width / widthIncrement; width = rows * widthIncrement + [_EO frame].size.width; } if (frame.size.height < rowHeight) { height = rowHeight; cols = 1; } else { height = frame.size.height - [_EO frame].size.height; cols = height / heightIncrement; height = cols * heightIncrement + [_EO frame].size.height; } } else if ([theEvent modifierFlags] & NSControlKeyMask) { NSInteger rows = [_EO numberOfRows]; NSInteger cols = [_EO numberOfColumns]; NSSize cellSize = [_EO cellSize]; height = width = 0; if (cols > 1) width = ( frame.size.width - cellSize.width * cols) / (cols - 1); if (rows > 1) height = ( frame.size.height - cellSize.height * rows ) / (rows - 1); width *= (cols - 1); width += cellSize.width * cols; height *= (rows - 1); height += cellSize.height * rows; } else { NSInteger rows = [_EO numberOfRows]; NSInteger cols = [_EO numberOfColumns]; NSSize interSize = [_EO intercellSpacing]; width = ( frame.size.width - interSize.width * (cols - 1) ) / cols; width *= cols; width += (interSize.width * (cols - 1)); height = ( frame.size.height - interSize.height * (rows - 1) ) / rows; height *= rows; height += (interSize.height * (rows - 1)); } switch (knob) { case IBBottomLeftKnobPosition: case IBMiddleLeftKnobPosition: case IBTopLeftKnobPosition: frame.origin.x = NSMaxX(frame) - width; frame.size.width = width; break; case IBTopRightKnobPosition: case IBMiddleRightKnobPosition: case IBBottomRightKnobPosition: frame.size.width = width; break; case IBTopMiddleKnobPosition: case IBBottomMiddleKnobPosition: case IBNoneKnobPosition: break; } switch (knob) { case IBBottomLeftKnobPosition: case IBBottomRightKnobPosition: case IBBottomMiddleKnobPosition: frame.origin.y = NSMaxY(frame) - height; frame.size.height = height; break; case IBTopMiddleKnobPosition: case IBTopRightKnobPosition: case IBTopLeftKnobPosition: frame.size.height = height; break; case IBMiddleLeftKnobPosition: case IBMiddleRightKnobPosition: case IBNoneKnobPosition: break; } return frame; } - (void) updateResizingWithFrame: (NSRect) frame andEvent: (NSEvent *)theEvent andPlacementInfo: (GormPlacementInfo*) gpi { gpi->lastFrame = [self _constrainedFrame: frame withEvent: theEvent andKnob: gpi->knob]; [self _displayFrame: gpi->lastFrame withPlacementInfo: gpi]; } - (void) validateFrame: (NSRect) frame withEvent: (NSEvent *) theEvent andPlacementInfo: (GormPlacementInfo*)gpi { frame = gpi->lastFrame; if ([theEvent modifierFlags] & (NSControlKeyMask | NSShiftKeyMask)) { NSInteger rows = [_EO numberOfRows]; NSInteger cols = [_EO numberOfColumns]; NSSize interSize = [_EO intercellSpacing]; NSInteger colWidth = ([_EO frame].size.width - (cols - 1) * interSize.width) / cols; NSInteger rowHeight = ([_EO frame].size.height - (rows - 1) * interSize.height) / rows; NSInteger widthIncrement = colWidth + interSize.width; NSInteger heightIncrement = rowHeight + interSize.height; NSInteger newCols = (frame.size.width - [_EO frame].size.width) / widthIncrement; NSInteger newRows = (frame.size.height - [_EO frame].size.height) / heightIncrement; NSInteger i, j; if (newCols > 0) { for (j = cols; j < cols + newCols; j++) { [_EO addColumn]; for (i = 0; i < rows; i++) { [document attachObject: [_EO cellAtRow: i column: j] toParent: _EO]; } } } else if (newCols < 0) { for (j = cols - 1; j >= cols - newCols; j--) { for (i = 0; i < rows; i++) { [document detachObject: [_EO cellAtRow: i column: j]]; } [_EO removeColumn: j]; } } if (newRows > 0) { for (i = rows; i < rows + newRows; i++) { [_EO addRow]; for (j = 0; j < cols + newCols; j++) { [document attachObject: [_EO cellAtRow: i column: j] toParent: _EO]; } } } else if (newRows < 0) { for (i = rows - 1; i >= rows + newRows; i--) { for (j = 0; j < cols + newCols; j++) { [document detachObject: [_EO cellAtRow: i column: j]]; } [_EO removeRow: i]; } } [_EO setFrame: frame]; } else if ([theEvent modifierFlags] & NSControlKeyMask) { NSInteger width; NSInteger height; NSInteger rows = [_EO numberOfRows]; NSInteger cols = [_EO numberOfColumns]; NSSize cellSize = [_EO cellSize]; [self setFrame: frame]; height = width = 0; if (cols > 1) width = ( frame.size.width - cellSize.width * cols) / (cols - 1); if (rows > 1) height = ( frame.size.height - cellSize.height * rows ) / (rows - 1); [_EO setIntercellSpacing: NSMakeSize(width, height)]; } else { NSInteger width; NSInteger height; NSInteger rows = [_EO numberOfRows]; NSInteger cols = [_EO numberOfColumns]; NSSize interSize = [_EO intercellSpacing]; [self setFrame: frame]; width = ( frame.size.width - interSize.width * (cols - 1) ) / cols; height = ( frame.size.height - interSize.height * (rows - 1) ) / rows; [_EO setCellSize: NSMakeSize(width, height)]; } } - (void) changeFont: (id)sender { NSEnumerator *enumerator = [[self selection] objectEnumerator]; id anObject; NSFont *newFont; NSDebugLog(@"In %@ changing font for %@",[self className],[self selection]); while ((anObject = [enumerator nextObject])) { if([anObject respondsToSelector: @selector(setTitleFont:)] && [anObject respondsToSelector: @selector(setTextFont:)]) { newFont = [sender convertFont: [anObject font]]; newFont = [[GormFontViewController sharedGormFontViewController] convertFont: newFont]; [anObject setTitleFont: newFont]; [anObject setTextFont: newFont]; } else if ([anObject respondsToSelector: @selector(font)] && [anObject respondsToSelector: @selector(setFont:)]) { newFont = [sender convertFont: [anObject font]]; newFont = [[GormFontViewController sharedGormFontViewController] convertFont: newFont]; [anObject setFont: newFont]; } } return; } - (id) connectTargetAtPoint: (NSPoint)mouseLoc { NSInteger row, col; if ([_EO getRow: &row column: &col forPoint: mouseLoc] == YES) { /* If a matrix has small intercell spacing (less than 1 pixel), it becomes impossible to make connections to the whole matrix, since -getRow:column:forPoint: returns YES for every location within the matrix's bounds. Therefore, we accept connection to matrix cells only if the mouse is strictly inside the cell. */ NSRect cellFrame = [_EO cellFrameAtRow: row column: col]; if (mouseLoc.x != NSMinX(cellFrame) && mouseLoc.x != NSMaxX(cellFrame) && mouseLoc.y != NSMinY(cellFrame) && mouseLoc.y != NSMaxY(cellFrame)) { return [_EO cellAtRow: row column: col]; } } return _EO; } - (NSDragOperation) draggingEntered: (id)sender { NSPasteboard *dragPb; NSArray *types; dragPb = [sender draggingPasteboard]; types = [dragPb types]; if ([types containsObject: GormLinkPboardType] == YES) { NSPoint loc = [sender draggingLocation]; NSPoint mouseDownPoint = [_EO convertPoint: loc fromView: nil]; [NSApp displayConnectionBetween: [NSApp connectSource] and: [self connectTargetAtPoint: mouseDownPoint]]; return NSDragOperationLink; } return [super draggingEntered: sender]; } - (BOOL) performDragOperation: (id)sender { NSPasteboard *dragPb; NSArray *types; NSPoint dropPoint = [sender draggedImageLocation]; NSPoint mouseDownPoint = [_EO convertPoint: dropPoint fromView: nil]; dragPb = [sender draggingPasteboard]; types = [dragPb types]; if ([types containsObject: GormLinkPboardType]) { [NSApp displayConnectionBetween: [NSApp connectSource] and: [self connectTargetAtPoint: mouseDownPoint]]; [NSApp startConnecting]; } else if ([types containsObject: GormImagePboardType] == YES || [types containsObject: GormSoundPboardType] == YES) { NSInteger row, col; if ([_EO getRow: &row column: &col forPoint: mouseDownPoint] == YES) { id object = [_EO cellAtRow: row column: col]; if ([types containsObject: GormImagePboardType] == YES) { NSString *name = [dragPb stringForType: GormImagePboardType]; NSImage *image = [NSImage imageNamed: name]; [image setArchiveByName: NO]; if ([object respondsToSelector: @selector(setSound:)]) { [object setImage: image]; } else { return NO; } return YES; } else if ([types containsObject: GormSoundPboardType] == YES) { NSString *name; name = [dragPb stringForType: GormSoundPboardType]; if ([object respondsToSelector: @selector(setSound:)]) { [object setSound: [NSSound soundNamed: name]]; } else { return NO; } return YES; } } } return NO; } @end gorm-1.2.24/GormCore/GormMatrixEditor.h0000644000000000000000000000223413410616261016371 0ustar rootroot/* GormMatrixEditor.h - Editor for matrices. * * Copyright (C) 2002 Free Software Foundation, Inc. * * Author: Pierre-Yves Rivaille * Date: Aug 2002 * * This file is part of GNUstep. * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 3 of the License, or * (at your option) any later version. * * This program 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 General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02111 USA. */ #ifndef INCLUDED_GormMatrixEditor_h #define INCLUDED_GormMatrixEditor_h #include @interface GormMatrixEditor : GormViewWithSubviewsEditor { NSCell* selected; NSInteger selectedRow; NSInteger selectedCol; } @end #endif gorm-1.2.24/GormCore/NSFontManager+GormExtensions.m0000644000000000000000000000435313410616261020564 0ustar rootroot/* NSFontManager+GormExtensions.m * * Copyright (C) 2004 Free Software Foundation, Inc. * * Author: Gregory John Casamento * Date: 2004 * * This file is part of GNUstep. * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 3 of the License, or * (at your option) any later version. * * This program 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 General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02111 USA. */ #include #include #include #include "NSFontManager+GormExtensions.h" #include "GormDocument.h" @interface GormDocument (FontManagerMethod) - (id) lastEditor; @end @implementation GormDocument (FontManagerMethod) /** * Get the last editor selected by the document. */ - (id) lastEditor { return lastEditor; } @end @implementation NSFontManager (GormExtensions) /** * Override for sendAction in NSFontManager. This method calls the action on the * last edited object if the attempt to send the action to the first responder is * unsuccessful. This allows the font to be more easily set. */ - (BOOL) sendAction { NSApplication *theApp = [NSApplication sharedApplication]; BOOL result = NO; if (_action) result = [theApp sendAction: _action to: nil from: self]; if(result == NO) { id object = [(GormDocument *)[(id)NSApp activeDocument] lastEditor]; NS_DURING { if(object != nil) { if([object respondsToSelector: _action]) { [object performSelector: _action withObject: self]; result = YES; } } } NS_HANDLER { NSDebugLog(@"Couldn't set font on %@: %@", object, [localException reason]); result = NO; // just to be sure. } NS_ENDHANDLER } return result; } @end gorm-1.2.24/GormCore/GormViewEditor.m0000644000000000000000000012667713410616261016066 0ustar rootroot/* GormViewEditor.m * * Copyright (C) 2002 Free Software Foundation, Inc. * * Author: Pierre-Yves Rivaille * Date: 2002 * * This file is part of GNUstep. * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 3 of the License, or * (at your option) any later version. * * This program 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 General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02111 USA. */ #include #include #include #include "GormGenericEditor.h" #include "GormViewEditor.h" #include "GormViewWithSubviewsEditor.h" #include "GormPlacementInfo.h" #include "GormFunctions.h" #include "GormViewWindow.h" #include "GormViewKnobs.h" #include "GormClassManager.h" #include "GormDocument.h" #include #include @implementation GormPlacementInfo @end @implementation GormPlacementHint - (float) position { return _position; } - (float) start { return _start; } - (float) end { return _end; } - (NSRect) frame { return _frame; } - (GormHintBorder) border { return _border; } - (NSString *) description { switch (_border) { case Left: return [NSString stringWithFormat: @"Left %f (%f-%f)", _position, _start, _end]; case Right: return [NSString stringWithFormat: @"Right %f (%f-%f)", _position, _start, _end]; case Top: return [NSString stringWithFormat: @"Top %f (%f-%f)", _position, _start, _end]; default: return [NSString stringWithFormat: @"Bottom %f (%f-%f)", _position, _start, _end]; } } - (id) initWithBorder: (GormHintBorder) border position: (float) position validityStart: (float) start validityEnd: (float) end frame: (NSRect) frame { _border = border; _start = start; _end = end; _position = position; _frame = frame; return self; } - (NSRect) rectWithHalfDistance: (int) halfHeight { switch (_border) { case Top: case Bottom: return NSMakeRect(_start, _position - halfHeight, _end - _start, 2 * halfHeight); case Left: case Right: return NSMakeRect(_position - halfHeight, _start, 2 * halfHeight, _end - _start); default: return NSZeroRect; } } - (int) distanceToFrame: (NSRect) frame { NSUserDefaults *userDefaults = [NSUserDefaults standardUserDefaults]; NSInteger guideSpacing = [userDefaults integerForKey: @"GuideSpacing"]; NSInteger halfSpacing = guideSpacing / 2; NSRect rect = [self rectWithHalfDistance: (halfSpacing + 1)]; if (NSIntersectsRect(frame, rect) == NO) return guideSpacing; switch (_border) { case Top: return (int) fabs (_position - NSMaxY(frame)); case Bottom: return (int) fabs (_position - NSMinY(frame)); case Left: return (int) fabs (_position - NSMinX(frame)); case Right: return (int) fabs (_position - NSMaxX(frame)); default: return guideSpacing; } } @end static BOOL currently_displaying = NO; @implementation GormViewEditor - (void) encodeWithCoder: (NSCoder*)aCoder { [NSException raise: NSInternalInconsistencyException format: @"Cannot encode a GormViewEditor."]; } - (id) initWithCoder: (NSCoder*)aCoder { [NSException raise: NSInternalInconsistencyException format: @"Cannot decode a GormViewEditor."]; return nil; } - (id) document { return document; } - (id) editedObject { return _editedObject; } - (BOOL) activate { if (activated == NO) { NSView *superview; NSString *name = [document nameForObject: _editedObject]; GormClassManager *cm = [(GormDocument *)document classManager]; // if the view window is not nil, it's a standalone view... if(viewWindow != nil) { if([viewWindow view] != _editedObject) { [viewWindow setView: _editedObject]; } } superview = [_editedObject superview]; [self setFrame: [_editedObject frame]]; [self setBounds: [self frame]]; [superview replaceSubview: _editedObject with: self]; [self setAutoresizingMask: NSViewMaxXMargin | NSViewMinYMargin]; // we want autoresizing for standalone views... if(viewWindow == nil) { [self setAutoresizesSubviews: NO]; [_editedObject setPostsFrameChangedNotifications: YES]; } else { [self setAutoresizesSubviews: YES]; } [self addSubview: _editedObject]; [self setToolTip: [NSString stringWithFormat: @"%@,%@", name, [cm classNameForObject: _editedObject]]]; [[NSNotificationCenter defaultCenter] addObserver: self selector: @selector(editedObjectFrameDidChange:) name: NSViewFrameDidChangeNotification object: _editedObject]; [self setPostsFrameChangedNotifications: YES]; [[NSNotificationCenter defaultCenter] addObserver: self selector: @selector(frameDidChange:) name: NSViewFrameDidChangeNotification object: self]; parent = (GormViewWithSubviewsEditor *)[document parentEditorForEditor: self]; if ([parent isKindOfClass: [GormViewEditor class]]) { [parent setNeedsDisplay: YES]; } else { [self setNeedsDisplay: YES]; } activated = YES; return activated; } return NO; } - (id) parent { return parent; } - (void) detachSubviews { NSArray *subviews = allSubviews([self editedObject]); [document detachObjects: subviews]; } - (void) close { if (closed == NO) { [self deactivate]; if(viewWindow != nil) { [viewWindow close]; } [document editor: self didCloseForObject: _editedObject]; closed = YES; } else { NSDebugLog(@"%@ close but already closed", self); } } - (void) deactivate { if (activated == YES) { NSView *superview = [self superview]; [self removeSubview: _editedObject]; [superview replaceSubview: self with: _editedObject]; [[NSNotificationCenter defaultCenter] removeObserver: self]; // make sure the view isn't in the window after deactivation. if(viewWindow != nil) { [_editedObject removeFromSuperview]; // WithoutNeedingDisplay]; [viewWindow orderOut: self]; } activated = NO; } } - (void) dealloc { if (closed == NO) [self close]; [super dealloc]; } - (id) initWithObject: (id)anObject inDocument: (id)aDocument { NSMutableArray *draggedTypes; ASSIGN(_editedObject, (NSView*)anObject); if ((self = [super initWithFrame: [_editedObject frame]]) != nil) { // we do not retain the document... document = aDocument; draggedTypes = [NSMutableArray arrayWithObject: GormLinkPboardType]; // in addition to the link, any other types accepted by dragging delegates. [draggedTypes addObjectsFromArray: [NSView acceptedViewResourcePasteboardTypes]]; [self registerForDraggedTypes: draggedTypes]; activated = NO; closed = NO; // if this window is nil when the editor is created, we know it's a // standalone view. if([anObject window] == nil && [anObject superview] == nil) { NSDebugLog(@"#### Stand alone view: %@",_editedObject); [document attachObject: _editedObject toParent: nil]; // [document openEditorForObject: _editedObject]; viewWindow = [[GormViewWindow alloc] initWithView: _editedObject]; } } return self; } - (void) editedObjectFrameDidChange: (id) sender { NSArray *allViews = allSubviews(self); NSEnumerator *en = [allViews objectEnumerator]; id v = nil; // Set all views under this view to not post changes... while((v = [en nextObject]) != nil) { [v setPostsFrameChangedNotifications:NO]; [v setPostsBoundsChangedNotifications:NO]; } // Set the frame and the bounds... [self setFrame: [_editedObject frame]]; [self setBounds: [_editedObject frame]]; // Reset all views to post changes as expected... en = [allViews objectEnumerator]; while((v = [en nextObject]) != nil) { [v setPostsFrameChangedNotifications:YES]; [v setPostsBoundsChangedNotifications:YES]; } } - (void) frameDidChange: (id) sender { [self setBounds: [self frame]]; [_editedObject setFrame: [self frame]]; } - (GormPlacementInfo *) initializeResizingInFrame: (NSView *)view withKnob: (IBKnobPosition) knob { GormPlacementInfo *gip; gip = [[GormPlacementInfo alloc] init]; gip->resizingIn = view; gip->firstPass = YES; gip->hintInitialized = NO; gip->leftHints = nil; gip->rightHints = nil; gip->topHints = nil; gip->bottomHints = nil; gip->knob = knob; return gip; } - (void) _displayFrame: (NSRect) frame withPlacementInfo: (GormPlacementInfo*) gpi { if (gpi->firstPass == NO) [gpi->resizingIn displayRect: gpi->oldRect]; else gpi->firstPass = NO; GormShowFrameWithKnob(frame, gpi->knob); gpi->oldRect = GormExtBoundsForRect(frame); gpi->oldRect.origin.x--; gpi->oldRect.origin.y--; gpi->oldRect.size.width += 2; gpi->oldRect.size.height += 2; } - (void) _initializeHintWithInfo: (GormPlacementInfo*) gpi { NSInteger i; NSArray *subviews = [[self superview] subviews]; NSInteger count = [subviews count]; NSView *v; NSUserDefaults *userDefaults = [NSUserDefaults standardUserDefaults]; NSInteger guideSpacing = [userDefaults integerForKey: @"GuideSpacing"]; NSInteger halfSpacing = guideSpacing / 2; gpi->lastLeftRect = NSZeroRect; gpi->lastRightRect = NSZeroRect; gpi->lastTopRect = NSZeroRect; gpi->lastBottomRect = NSZeroRect; gpi->hintInitialized = YES; gpi->leftHints = [[NSMutableArray alloc] initWithCapacity: 2 * count]; gpi->rightHints = [[NSMutableArray alloc] initWithCapacity: 2 * count]; gpi->topHints = [[NSMutableArray alloc] initWithCapacity: 2 * count]; gpi->bottomHints = [[NSMutableArray alloc] initWithCapacity: 2 * count]; [gpi->leftHints addObject: [[GormPlacementHint alloc] initWithBorder: Left position: NSMinX([[self superview] bounds]) validityStart: NSMinY([[self superview] bounds]) validityEnd: NSMaxY([[self superview] bounds]) frame: [[self superview] bounds]]]; [gpi->leftHints addObject: [[GormPlacementHint alloc] initWithBorder: Left position: NSMinX([[self superview] bounds]) + guideSpacing validityStart: NSMinY([[self superview] bounds]) validityEnd: NSMaxY([[self superview] bounds]) frame: [[self superview] bounds]]]; [gpi->rightHints addObject: [[GormPlacementHint alloc] initWithBorder: Right position: NSMaxX([[self superview] bounds]) validityStart: NSMinY([[self superview] bounds]) validityEnd: NSMaxY([[self superview] bounds]) frame: [[self superview] bounds]]]; [gpi->rightHints addObject: [[GormPlacementHint alloc] initWithBorder: Right position: NSMaxX([[self superview] bounds]) - guideSpacing validityStart: NSMinY([[self superview] bounds]) validityEnd: NSMaxY([[self superview] bounds]) frame: [[self superview] bounds]]]; [gpi->topHints addObject: [[GormPlacementHint alloc] initWithBorder: Top position: NSMaxY([[self superview] bounds]) validityStart: NSMinX([[self superview] bounds]) validityEnd: NSMaxX([[self superview] bounds]) frame: [[self superview] bounds]]]; [gpi->topHints addObject: [[GormPlacementHint alloc] initWithBorder: Top position: NSMaxY([[self superview] bounds]) - guideSpacing validityStart: NSMinX([[self superview] bounds]) validityEnd: NSMaxX([[self superview] bounds]) frame: [[self superview] bounds]]]; [gpi->bottomHints addObject: [[GormPlacementHint alloc] initWithBorder: Bottom position: NSMinY([[self superview] bounds]) validityStart: NSMinX([[self superview] bounds]) validityEnd: NSMaxX([[self superview] bounds]) frame: [[self superview] bounds]]]; [gpi->bottomHints addObject: [[GormPlacementHint alloc] initWithBorder: Bottom position: NSMinY([[self superview] bounds]) + guideSpacing validityStart: NSMinX([[self superview] bounds]) validityEnd: NSMaxX([[self superview] bounds]) frame: [[self superview] bounds]]]; for ( i = 0; i < count; i++ ) { v = [subviews objectAtIndex: i]; if (v == self) continue; [gpi->leftHints addObject: [[GormPlacementHint alloc] initWithBorder: Left position: NSMinX([v frame]) validityStart: NSMinY([[self superview] bounds]) validityEnd: NSMaxY([[self superview] bounds]) frame: [v frame]]]; [gpi->leftHints addObject: [[GormPlacementHint alloc] initWithBorder: Left position: NSMaxX([v frame]) validityStart: NSMinY([v frame]) validityEnd: NSMaxY([v frame]) frame: [v frame]]]; [gpi->leftHints addObject: [[GormPlacementHint alloc] initWithBorder: Left position: NSMaxX([v frame]) + halfSpacing validityStart: NSMinY([v frame]) - guideSpacing validityEnd: NSMaxY([v frame]) + guideSpacing frame: [v frame]]]; [gpi->rightHints addObject: [[GormPlacementHint alloc] initWithBorder: Right position: NSMaxX([v frame]) validityStart: NSMinY([[self superview] bounds]) validityEnd: NSMaxY([[self superview] bounds]) frame: [v frame]]]; [gpi->rightHints addObject: [[GormPlacementHint alloc] initWithBorder: Right position: NSMinX([v frame]) validityStart: NSMinY([v frame]) validityEnd: NSMaxY([v frame]) frame: [v frame]]]; [gpi->rightHints addObject: [[GormPlacementHint alloc] initWithBorder: Right position: NSMinX([v frame]) - halfSpacing validityStart: NSMinY([v frame]) - guideSpacing validityEnd: NSMaxY([v frame]) + guideSpacing frame: [v frame]]]; [gpi->topHints addObject: [[GormPlacementHint alloc] initWithBorder: Top position: NSMaxY([v frame]) validityStart: NSMinX([[self superview] bounds]) validityEnd: NSMaxX([[self superview] bounds]) frame: [v frame]]]; [gpi->topHints addObject: [[GormPlacementHint alloc] initWithBorder: Top position: NSMinY([v frame]) validityStart: NSMinX([v frame]) validityEnd: NSMaxX([v frame]) frame: [v frame]]]; [gpi->topHints addObject: [[GormPlacementHint alloc] initWithBorder: Top position: NSMinY([v frame]) - halfSpacing validityStart: NSMinX([v frame]) - guideSpacing validityEnd: NSMaxX([v frame]) + guideSpacing frame: [v frame]]]; [gpi->bottomHints addObject: [[GormPlacementHint alloc] initWithBorder: Bottom position: NSMinY([v frame]) validityStart: NSMinX([[self superview] bounds]) validityEnd: NSMaxX([[self superview] bounds]) frame: [v frame]]]; [gpi->bottomHints addObject: [[GormPlacementHint alloc] initWithBorder: Bottom position: NSMaxY([v frame]) validityStart: NSMinX([v frame]) validityEnd: NSMaxX([v frame]) frame: [v frame]]]; [gpi->bottomHints addObject: [[GormPlacementHint alloc] initWithBorder: Bottom position: NSMaxY([v frame]) + halfSpacing validityStart: NSMinX([v frame]) - guideSpacing validityEnd: NSMaxX([v frame]) + guideSpacing frame: [v frame]]]; } } #undef MIN #undef MAX #define MIN(a,b) (a>b?b:a) #define MAX(a,b) (a>b?a:b) - (void) _displayFrameWithHint: (NSRect) frame withPlacementInfo: (GormPlacementInfo*)gpi { NSUserDefaults *userDefaults = [NSUserDefaults standardUserDefaults]; NSInteger guideSpacing = [userDefaults integerForKey: @"GuideSpacing"]; NSInteger halfSpacing = guideSpacing / 2; float leftOfFrame = NSMinX(frame); float rightOfFrame = NSMaxX(frame); float topOfFrame = NSMaxY(frame); float bottomOfFrame = NSMinY(frame); NSInteger i; NSInteger count; NSInteger lastDistance; NSInteger minimum = guideSpacing; BOOL leftEmpty = YES; BOOL rightEmpty = YES; BOOL topEmpty = YES; BOOL bottomEmpty = YES; float bestLeftPosition = 0; float bestRightPosition = 0; float bestTopPosition = 0; float bestBottomPosition = 0; float leftStart = 0; float rightStart = 0; float topStart = 0; float bottomStart = 0; float leftEnd = 0; float rightEnd = 0; float topEnd = 0; float bottomEnd = 0; NSMutableArray *bests; if (gpi->hintInitialized == NO) { [self _initializeHintWithInfo: gpi]; } { if (gpi->firstPass == NO) [gpi->resizingIn displayRect: gpi->oldRect]; else gpi->firstPass = NO; } { [gpi->resizingIn setNeedsDisplayInRect: gpi->lastLeftRect]; [[self window] displayIfNeeded]; gpi->lastLeftRect = NSZeroRect; } { [gpi->resizingIn setNeedsDisplayInRect: gpi->lastRightRect]; [[self window] displayIfNeeded]; gpi->lastRightRect = NSZeroRect; } { [gpi->resizingIn setNeedsDisplayInRect: gpi->lastTopRect]; [[self window] displayIfNeeded]; gpi->lastTopRect = NSZeroRect; } { [gpi->resizingIn setNeedsDisplayInRect: gpi->lastBottomRect]; [[self window] displayIfNeeded]; gpi->lastBottomRect = NSZeroRect; } if (gpi->knob == IBTopLeftKnobPosition || gpi->knob == IBMiddleLeftKnobPosition || gpi->knob == IBBottomLeftKnobPosition) { bests = [NSMutableArray arrayWithCapacity: 4]; minimum = (halfSpacing + 1); count = [gpi->leftHints count]; for ( i = 0; i < count; i++ ) { lastDistance = [[gpi->leftHints objectAtIndex: i] distanceToFrame: frame]; if (lastDistance < minimum) { bests = [NSMutableArray arrayWithCapacity: 4]; [bests addObject: [gpi->leftHints objectAtIndex: i]]; minimum = lastDistance; bestLeftPosition = [[gpi->leftHints objectAtIndex: i] position]; leftEmpty = NO; } else if ((lastDistance == minimum) && (leftEmpty == NO) && ([[gpi->leftHints objectAtIndex: i] position] == bestLeftPosition)) [bests addObject: [gpi->leftHints objectAtIndex: i]]; } count = [bests count]; if (count >= 1) { leftStart = NSMinY([[bests objectAtIndex: 0] frame]); leftEnd = NSMaxY([[bests objectAtIndex: 0] frame]); for ( i = 1; i < count; i++ ) { leftStart = MIN(NSMinY([[bests objectAtIndex: i] frame]), leftStart); leftEnd = MAX(NSMaxY([[bests objectAtIndex: i] frame]), leftEnd); } leftOfFrame = bestLeftPosition; } } if (gpi->knob == IBTopRightKnobPosition || gpi->knob == IBMiddleRightKnobPosition || gpi->knob == IBBottomRightKnobPosition) { bests = [NSMutableArray arrayWithCapacity: 4]; minimum = (halfSpacing + 1); count = [gpi->rightHints count]; for ( i = 0; i < count; i++ ) { lastDistance = [[gpi->rightHints objectAtIndex: i] distanceToFrame: frame]; if (lastDistance < minimum) { bests = [NSMutableArray arrayWithCapacity: 4]; [bests addObject: [gpi->rightHints objectAtIndex: i]]; minimum = lastDistance; bestRightPosition = [[gpi->rightHints objectAtIndex: i] position]; rightEmpty = NO; } else if ((lastDistance == minimum) && (rightEmpty == NO) && ([[gpi->rightHints objectAtIndex: i] position] == bestRightPosition)) [bests addObject: [gpi->rightHints objectAtIndex: i]]; } count = [bests count]; if (count >= 1) { rightStart = NSMinY([[bests objectAtIndex: 0] frame]); rightEnd = NSMaxY([[bests objectAtIndex: 0] frame]); for ( i = 1; i < count; i++ ) { rightStart = MIN(NSMinY([[bests objectAtIndex: i] frame]), rightStart); rightEnd = MAX(NSMaxY([[bests objectAtIndex: i] frame]), rightEnd); } rightOfFrame = bestRightPosition; } } if (gpi->knob == IBTopRightKnobPosition || gpi->knob == IBTopLeftKnobPosition || gpi->knob == IBTopMiddleKnobPosition) { bests = [NSMutableArray arrayWithCapacity: 4]; minimum = (halfSpacing + 1); count = [gpi->topHints count]; for ( i = 0; i < count; i++ ) { lastDistance = [[gpi->topHints objectAtIndex: i] distanceToFrame: frame]; if (lastDistance < minimum) { bests = [NSMutableArray arrayWithCapacity: 4]; [bests addObject: [gpi->topHints objectAtIndex: i]]; minimum = lastDistance; bestTopPosition = [[gpi->topHints objectAtIndex: i] position]; topEmpty = NO; } else if ((lastDistance == minimum) && (topEmpty == NO) && ([[gpi->topHints objectAtIndex: i] position] == bestTopPosition)) [bests addObject: [gpi->topHints objectAtIndex: i]]; } count = [bests count]; if (count >= 1) { topStart = NSMinX([[bests objectAtIndex: 0] frame]); topEnd = NSMaxX([[bests objectAtIndex: 0] frame]); for ( i = 1; i < count; i++ ) { topStart = MIN(NSMinX([[bests objectAtIndex: i] frame]), topStart); topEnd = MAX(NSMaxX([[bests objectAtIndex: i] frame]), topEnd); } topOfFrame = bestTopPosition; } } if (gpi->knob == IBBottomRightKnobPosition || gpi->knob == IBBottomLeftKnobPosition || gpi->knob == IBBottomMiddleKnobPosition) { bests = [NSMutableArray arrayWithCapacity: 4]; minimum = (halfSpacing + 1); count = [gpi->bottomHints count]; for ( i = 0; i < count; i++ ) { lastDistance = [[gpi->bottomHints objectAtIndex: i] distanceToFrame: frame]; if (lastDistance < minimum) { bests = [NSMutableArray arrayWithCapacity: 4]; [bests addObject: [gpi->bottomHints objectAtIndex: i]]; minimum = lastDistance; bestBottomPosition = [[gpi->bottomHints objectAtIndex: i] position]; bottomEmpty = NO; } else if ((lastDistance == minimum) && (bottomEmpty == NO) && ([[gpi->bottomHints objectAtIndex: i] position] == bestBottomPosition)) [bests addObject: [gpi->bottomHints objectAtIndex: i]]; } count = [bests count]; if (count >= 1) { bottomStart = NSMinX([[bests objectAtIndex: 0] frame]); bottomEnd = NSMaxX([[bests objectAtIndex: 0] frame]); for ( i = 1; i < count; i++ ) { bottomStart = MIN(NSMinX([[bests objectAtIndex: i] frame]), bottomStart); bottomEnd = MAX(NSMaxX([[bests objectAtIndex: i] frame]), bottomEnd); } bottomOfFrame = bestBottomPosition; } } gpi->hintFrame = NSMakeRect (leftOfFrame, bottomOfFrame, rightOfFrame - leftOfFrame, topOfFrame - bottomOfFrame); { NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults]; NSColor *aColor = colorFromDict([defaults objectForKey: @"GuideColor"]); // default to the right color... if(aColor == nil) { aColor = [NSColor redColor]; } [aColor set]; if (!leftEmpty) { leftStart = MIN(NSMinY(gpi->hintFrame), leftStart); leftEnd = MAX(NSMaxY(gpi->hintFrame), leftEnd); gpi->lastLeftRect = NSMakeRect(bestLeftPosition - 1, leftStart, 2, leftEnd - leftStart); NSRectFill(gpi->lastLeftRect); } if (!rightEmpty) { rightStart = MIN(NSMinY(gpi->hintFrame), rightStart); rightEnd = MAX(NSMaxY(gpi->hintFrame), rightEnd); gpi->lastRightRect = NSMakeRect(bestRightPosition - 1, rightStart, 2, rightEnd - rightStart); NSRectFill(gpi->lastRightRect); } if (!topEmpty) { topStart = MIN(NSMinX(gpi->hintFrame), topStart); topEnd = MAX(NSMaxX(gpi->hintFrame), topEnd); gpi->lastTopRect = NSMakeRect(topStart, bestTopPosition - 1, topEnd - topStart, 2); NSRectFill(gpi->lastTopRect); } if (!bottomEmpty) { bottomStart = MIN(NSMinX(gpi->hintFrame), bottomStart); bottomEnd = MAX(NSMaxX(gpi->hintFrame), bottomEnd); gpi->lastBottomRect = NSMakeRect(bottomStart, bestBottomPosition - 1, bottomEnd - bottomStart, 2); NSRectFill(gpi->lastBottomRect); } } GormShowFrameWithKnob(gpi->hintFrame, gpi->knob); gpi->oldRect = GormExtBoundsForRect(gpi->hintFrame); gpi->oldRect.origin.x--; gpi->oldRect.origin.y--; gpi->oldRect.size.width += 2; gpi->oldRect.size.height += 2; } - (void) updateResizingWithFrame: (NSRect) frame andEvent: (NSEvent *)theEvent andPlacementInfo: (GormPlacementInfo*) gpi { if ([theEvent modifierFlags] & NSShiftKeyMask) { [self _displayFrame: frame withPlacementInfo: gpi]; } else [self _displayFrameWithHint: frame withPlacementInfo: gpi]; } - (void) validateFrame: (NSRect) frame withEvent: (NSEvent *) theEvent andPlacementInfo: (GormPlacementInfo*)gpi { if (gpi->leftHints) { RELEASE(gpi->leftHints); RELEASE(gpi->rightHints); [self setFrame: gpi->hintFrame]; } else { [self setFrame: frame]; } } - (NSRect) _displayMovingFrameWithHint: (NSRect) frame andPlacementInfo: (GormPlacementInfo*)gpi { NSUserDefaults *userDefaults = [NSUserDefaults standardUserDefaults]; NSInteger guideSpacing = [userDefaults integerForKey: @"GuideSpacing"]; NSInteger halfSpacing = guideSpacing / 2; float leftOfFrame = NSMinX(frame); float rightOfFrame = NSMaxX(frame); float topOfFrame = NSMaxY(frame); float bottomOfFrame = NSMinY(frame); float widthOfFrame = frame.size.width; float heightOfFrame = frame.size.height; NSInteger i; NSInteger count; NSInteger lastDistance; NSInteger minimum = guideSpacing; BOOL leftEmpty = YES; BOOL rightEmpty = YES; BOOL topEmpty = YES; BOOL bottomEmpty = YES; float leftStart = 0; float rightStart = 0; float topStart = 0; float bottomStart = 0; float leftEnd = 0; float rightEnd = 0; float topEnd = 0; float bottomEnd = 0; if (gpi->hintInitialized == NO) { [self _initializeHintWithInfo: gpi]; } { [gpi->resizingIn setNeedsDisplayInRect: gpi->lastLeftRect]; [[self window] displayIfNeeded]; gpi->lastLeftRect = NSZeroRect; } { [gpi->resizingIn setNeedsDisplayInRect: gpi->lastRightRect]; [[self window] displayIfNeeded]; gpi->lastRightRect = NSZeroRect; } { [gpi->resizingIn setNeedsDisplayInRect: gpi->lastTopRect]; [[self window] displayIfNeeded]; gpi->lastTopRect = NSZeroRect; } { [gpi->resizingIn setNeedsDisplayInRect: gpi->lastBottomRect]; [[self window] displayIfNeeded]; gpi->lastBottomRect = NSZeroRect; } { BOOL empty = YES; float bestPosition = 0; NSMutableArray *leftBests; NSMutableArray *rightBests; minimum = (halfSpacing + 1); count = [gpi->leftHints count]; leftBests = [NSMutableArray arrayWithCapacity: 4]; for ( i = 0; i < count; i++ ) { lastDistance = [[gpi->leftHints objectAtIndex: i] distanceToFrame: frame]; if (lastDistance < minimum) { leftBests = [NSMutableArray arrayWithCapacity: 4]; [leftBests addObject: [gpi->leftHints objectAtIndex: i]]; minimum = lastDistance; bestPosition = [[gpi->leftHints objectAtIndex: i] position]; empty = NO; } else if ((lastDistance == minimum) && (empty == NO) && ([[gpi->leftHints objectAtIndex: i] position] == bestPosition)) [leftBests addObject: [gpi->leftHints objectAtIndex: i]]; } count = [gpi->rightHints count]; rightBests = [NSMutableArray arrayWithCapacity: 4]; for ( i = 0; i < count; i++ ) { lastDistance = [[gpi->rightHints objectAtIndex: i] distanceToFrame: frame]; if (lastDistance < minimum) { rightBests = [NSMutableArray arrayWithCapacity: 4]; leftBests = [NSMutableArray arrayWithCapacity: 4]; [rightBests addObject: [gpi->rightHints objectAtIndex: i]]; minimum = lastDistance; bestPosition = [[gpi->rightHints objectAtIndex: i] position] - widthOfFrame; empty = NO; } else if ((lastDistance == minimum) && (empty == NO) && ([[gpi->rightHints objectAtIndex: i] position] - bestPosition == widthOfFrame)) [rightBests addObject: [gpi->rightHints objectAtIndex: i]]; } count = [leftBests count]; if (count >= 1) { float position; leftEmpty = NO; position = [[leftBests objectAtIndex: 0] position]; leftStart = NSMinY([[leftBests objectAtIndex: 0] frame]); leftEnd = NSMaxY([[leftBests objectAtIndex: 0] frame]); for ( i = 1; i < count; i++ ) { leftStart = MIN(NSMinY([[leftBests objectAtIndex: i] frame]), leftStart); leftEnd = MAX(NSMaxY([[leftBests objectAtIndex: i] frame]), leftEnd); } leftOfFrame = position; rightOfFrame = position + widthOfFrame; } count = [rightBests count]; if (count >= 1) { float position; rightEmpty = NO; position = [[rightBests objectAtIndex: 0] position]; rightStart = NSMinY([[rightBests objectAtIndex: 0] frame]); rightEnd = NSMaxY([[rightBests objectAtIndex: 0] frame]); for ( i = 1; i < count; i++ ) { rightStart = MIN(NSMinY([[rightBests objectAtIndex: i] frame]), rightStart); rightEnd = MAX(NSMaxY([[rightBests objectAtIndex: i] frame]), rightEnd); } rightOfFrame = position; leftOfFrame = position - widthOfFrame; } } { BOOL empty = YES; float bestPosition = 0; NSMutableArray *bottomBests; NSMutableArray *topBests; minimum = (halfSpacing + 1); count = [gpi->bottomHints count]; bottomBests = [NSMutableArray arrayWithCapacity: 4]; for ( i = 0; i < count; i++ ) { lastDistance = [[gpi->bottomHints objectAtIndex: i] distanceToFrame: frame]; if (lastDistance < minimum) { bottomBests = [NSMutableArray arrayWithCapacity: 4]; [bottomBests addObject: [gpi->bottomHints objectAtIndex: i]]; minimum = lastDistance; bestPosition = [[gpi->bottomHints objectAtIndex: i] position]; empty = NO; } else if ((lastDistance == minimum) && (empty == NO) && ([[gpi->bottomHints objectAtIndex: i] position] == bestPosition)) [bottomBests addObject: [gpi->bottomHints objectAtIndex: i]]; } count = [gpi->topHints count]; topBests = [NSMutableArray arrayWithCapacity: 4]; for ( i = 0; i < count; i++ ) { lastDistance = [[gpi->topHints objectAtIndex: i] distanceToFrame: frame]; if (lastDistance < minimum) { topBests = [NSMutableArray arrayWithCapacity: 4]; bottomBests = [NSMutableArray arrayWithCapacity: 4]; [topBests addObject: [gpi->topHints objectAtIndex: i]]; minimum = lastDistance; bestPosition = [[gpi->topHints objectAtIndex: i] position] - heightOfFrame; empty = NO; } else if (lastDistance == minimum && (empty == NO) && ([[gpi->topHints objectAtIndex: i] position] - bestPosition == heightOfFrame)) [topBests addObject: [gpi->topHints objectAtIndex: i]]; } count = [bottomBests count]; if (count >= 1) { float position; bottomEmpty = NO; position = [[bottomBests objectAtIndex: 0] position]; bottomStart = NSMinX([[bottomBests objectAtIndex: 0] frame]); bottomEnd = NSMaxX([[bottomBests objectAtIndex: 0] frame]); for ( i = 1; i < count; i++ ) { bottomStart = MIN(NSMinX([[bottomBests objectAtIndex: i] frame]), bottomStart); bottomEnd = MAX(NSMaxX([[bottomBests objectAtIndex: i] frame]), bottomEnd); } bottomOfFrame = position; topOfFrame = position + heightOfFrame; } count = [topBests count]; if (count >= 1) { float position; topEmpty = NO; position = [[topBests objectAtIndex: 0] position]; topStart = NSMinX([[topBests objectAtIndex: 0] frame]); topEnd = NSMaxX([[topBests objectAtIndex: 0] frame]); for ( i = 1; i < count; i++ ) { topStart = MIN(NSMinX([[topBests objectAtIndex: i] frame]), topStart); topEnd = MAX(NSMaxX([[topBests objectAtIndex: i] frame]), topEnd); } topOfFrame = position; bottomOfFrame = position - heightOfFrame; } } gpi->hintFrame = NSMakeRect (leftOfFrame, bottomOfFrame, rightOfFrame - leftOfFrame, topOfFrame - bottomOfFrame); { NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults]; NSColor *aColor = colorFromDict([defaults objectForKey: @"GuideColor"]); // default to the right color... if(aColor == nil) { aColor = [NSColor redColor]; } [aColor set]; if (!leftEmpty) { leftStart = MIN(NSMinY(gpi->hintFrame), leftStart); leftEnd = MAX(NSMaxY(gpi->hintFrame), leftEnd); gpi->lastLeftRect = NSMakeRect(leftOfFrame - 1, leftStart, 2, leftEnd - leftStart); NSRectFill(gpi->lastLeftRect); } if (!rightEmpty) { rightStart = MIN(NSMinY(gpi->hintFrame), rightStart); rightEnd = MAX(NSMaxY(gpi->hintFrame), rightEnd); gpi->lastRightRect = NSMakeRect(rightOfFrame - 1, rightStart, 2, rightEnd - rightStart); NSRectFill(gpi->lastRightRect); } if (!topEmpty) { topStart = MIN(NSMinX(gpi->hintFrame), topStart); topEnd = MAX(NSMaxX(gpi->hintFrame), topEnd); gpi->lastTopRect = NSMakeRect(topStart, topOfFrame - 1, topEnd - topStart, 2); NSRectFill(gpi->lastTopRect); } if (!bottomEmpty) { bottomStart = MIN(NSMinX(gpi->hintFrame), bottomStart); bottomEnd = MAX(NSMaxX(gpi->hintFrame), bottomEnd); gpi->lastBottomRect = NSMakeRect(bottomStart, bottomOfFrame - 1, bottomEnd - bottomStart, 2); NSRectFill(gpi->lastBottomRect); } } return gpi->hintFrame; } - (NSView *)hitTest: (NSPoint)loc { id result; result = [super hitTest: loc]; if ((result != nil) && [result isKindOfClass: [GormViewEditor class]]) { return result; } else if (result != nil) { return self; } return nil; } - (NSWindow*) windowAndRect: (NSRect *)rect forObject: (id) anObject { if (anObject != _editedObject) { return nil; } else { *rect = [_editedObject convertRect:[_editedObject visibleRect] toView: nil]; return _window; } } - (void) startConnectingObject: (id) anObject withEvent: (NSEvent *)theEvent { NSPasteboard *pb; NSString *name = [document nameForObject: anObject]; NSPoint dragPoint = [theEvent locationInWindow]; if(name != nil) { pb = [NSPasteboard pasteboardWithName: NSDragPboard]; [pb declareTypes: [NSArray arrayWithObject: GormLinkPboardType] owner: self]; [pb setString: name forType: GormLinkPboardType]; [NSApp displayConnectionBetween: anObject and: nil]; [NSApp startConnecting]; [self dragImage: [NSApp linkImage] at: dragPoint offset: NSZeroSize event: theEvent pasteboard: pb source: self slideBack: YES]; } } - (NSDragOperation) draggingEntered: (id)sender { NSPasteboard *dragPb; NSArray *types; dragPb = [sender draggingPasteboard]; types = [dragPb types]; if ([types containsObject: GormLinkPboardType] == YES) { [NSApp displayConnectionBetween: [NSApp connectSource] and: _editedObject]; return NSDragOperationLink; } else if ([types firstObjectCommonWithArray: [NSView acceptedViewResourcePasteboardTypes]] != nil) { return NSDragOperationCopy; } else { return NSDragOperationNone; } } - (NSDragOperation) draggingUpdated: (id)sender { return [self draggingEntered: sender]; } - (void) draggingExited: (id)sender { NSPasteboard *dragPb; NSArray *types; dragPb = [sender draggingPasteboard]; types = [dragPb types]; if ([types containsObject: GormLinkPboardType] == YES) { [NSApp displayConnectionBetween: [NSApp connectSource] and: nil]; } } - (void) mouseDown: (NSEvent*)theEvent { if ([theEvent modifierFlags] & NSControlKeyMask) // start a action/outlet connection { // first we need to select ourself // to do so we need to find our first ancestor that can handle a selection NSView *view = [self superview]; while ((view != nil) && ([view respondsToSelector: @selector(selectObjects:)] == NO)) { view = [view superview]; } if (view != nil) [(id)view selectObjects: [NSArray arrayWithObject: self]]; // now we can start the connection process [self startConnectingObject: _editedObject withEvent: theEvent]; } else // just send the event to our parent { if (parent) { // TODO: We should find a better test than this, but it will do // for now... if([parent isKindOfClass: [GormGenericEditor class]] == NO) { [parent mouseDown: theEvent]; } } else return [self noResponderFor: @selector(mouseDown:)]; } } - (id) _selectDelegate: (id)sender { NSEnumerator *en = [[NSView registeredViewResourceDraggingDelegates] objectEnumerator]; id delegate = nil; id selectedDelegate = nil; NSPasteboard *pb = [sender draggingPasteboard]; NSPoint point = [sender draggingLocation]; while((delegate = [en nextObject]) != nil) { if([delegate respondsToSelector: @selector(acceptsViewResourceFromPasteboard:forObject:atPoint:)]) { if([delegate acceptsViewResourceFromPasteboard: pb forObject: _editedObject atPoint: point]) { selectedDelegate = delegate; break; } } } return selectedDelegate; } - (BOOL) prepareForDragOperation: (id)sender { NSPasteboard *dragPb; NSArray *types; dragPb = [sender draggingPasteboard]; types = [dragPb types]; if ([types containsObject: GormLinkPboardType] == YES) { return YES; } else if ([types firstObjectCommonWithArray: [NSView acceptedViewResourcePasteboardTypes]] != nil) { return YES; } else { return NO; } } - (BOOL) performDragOperation: (id)sender { NSPasteboard *dragPb; NSArray *types; id delegate = nil; NSPoint point = [sender draggingLocation]; dragPb = [sender draggingPasteboard]; types = [dragPb types]; if ([types containsObject: GormLinkPboardType]) { [NSApp displayConnectionBetween: [NSApp connectSource] and: _editedObject]; [NSApp startConnecting]; } else if ((delegate = [self _selectDelegate: sender]) != nil) { if([delegate respondsToSelector: @selector(shouldDrawConnectionFrame)]) { if([delegate shouldDrawConnectionFrame]) { [NSApp displayConnectionBetween: [NSApp connectSource] and: _editedObject]; } } if([delegate respondsToSelector: @selector(depositViewResourceFromPasteboard:onObject:atPoint:)]) { [delegate depositViewResourceFromPasteboard: dragPb onObject: _editedObject atPoint: point]; // refresh the selection... [document setSelectionFromEditor: self]; // return success. return YES; } } return NO; } - (NSDragOperation) draggingSourceOperationMaskForLocal: (BOOL) flag { return NSDragOperationLink; } - (BOOL) wantsSelection { return YES; } - (void) resetObject: (id)anObject { NS_DURING { // display the view, if it's standalone. if(viewWindow != nil) { [viewWindow orderFront: self]; } } NS_HANDLER { NSLog(@"Exception while trying to display standalone view: %@",[localException reason]); } NS_ENDHANDLER } - (void) orderFront { [[self window] orderFront: self]; } - (NSWindow *) window { return [super window]; } /* * Drawing additions */ - (void) postDraw: (NSRect) rect { if ([parent respondsToSelector: @selector(postDrawForView:)]) [parent performSelector: @selector(postDrawForView:) withObject: self]; } - (void) drawRect: (NSRect) rect { if (currently_displaying == NO) { [[self window] disableFlushWindow]; currently_displaying = YES; [super drawRect: rect]; [self lockFocus]; [self postDraw: rect]; [self unlockFocus]; [[self window] enableFlushWindow]; [[self window] flushWindow]; currently_displaying = NO; } else { [super drawRect: rect]; [self lockFocus]; [self postDraw: rect]; [self unlockFocus]; } } - (BOOL) acceptsTypeFromArray: (NSArray*)types { return NO; } - (NSArray*) selection { NSMutableArray *result = [NSMutableArray arrayWithCapacity: 1]; // add self to the result... if ([self respondsToSelector: @selector(editedObject)]) [result addObject: [self editedObject]]; else [result addObject: self]; return result; } - (void) makeSelectionVisible: (BOOL) value { } - (BOOL) canBeOpened { return NO; } - (BOOL) isOpened { return NO; } - (void) setOpened: (BOOL) value { if (value == YES) { [document setSelectionFromEditor: self]; } else { [self setNeedsDisplay: YES]; } } // stubs for the remainder of the IBEditors protocol not implemented in this class. - (void) deleteSelection { // NSLog(@"deleteSelection should be defined in a subclass"); } - (void) validateEditing { // NSLog(@"validateEditing should be defined in a subclass"); } - (void) pasteInSelection { // NSLog(@"deleteSelection should be defined in a subclass"); } - (id) openSubeditorForObject: (id) object { return nil; } - (void) closeSubeditors { // NSLog(@"closeSubeditors should be defined in a subclass"); } @end @implementation GormViewEditor (ResponderAdditions) - (BOOL) acceptsFirstMouse: (NSEvent*)theEvent { return YES; } - (BOOL) acceptsFirstResponder { return NO; } @end static BOOL done_editing; @implementation GormViewEditor (EditingAdditions) - (void) handleNotification: (NSNotification*)aNotification { NSString *name = [aNotification name]; if ([name isEqual: NSControlTextDidEndEditingNotification] == YES) { done_editing = YES; [[self document] touch]; } } /* Edit a textfield. If it's not already editable, make it so, then edit it */ - (NSEvent *) editTextField: view withEvent: (NSEvent *)theEvent { unsigned eventMask; BOOL wasEditable; BOOL didDrawBackground; NSTextField *editField; NSRect frame; NSNotificationCenter *nc = [NSNotificationCenter defaultCenter]; NSDate *future = [NSDate distantFuture]; NSEvent *e; editField = view; frame = [editField frame]; wasEditable = [editField isEditable]; [editField setEditable: YES]; didDrawBackground = [editField drawsBackground]; [editField setDrawsBackground: YES]; [nc addObserver: self selector: @selector(handleNotification:) name: NSControlTextDidEndEditingNotification object: nil]; /* Do some modal editing */ [editField selectText: self]; eventMask = NSLeftMouseDownMask | NSLeftMouseUpMask | NSKeyDownMask | NSKeyUpMask | NSFlagsChangedMask; done_editing = NO; while (!done_editing) { NSEventType eType; e = [NSApp nextEventMatchingMask: eventMask untilDate: future inMode: NSEventTrackingRunLoopMode dequeue: YES]; eType = [e type]; switch (eType) { case NSLeftMouseDown: { NSPoint dp = [self convertPoint: [e locationInWindow] fromView: nil]; if (NSMouseInRect(dp, frame, NO) == NO) { done_editing = YES; break; } } [[editField currentEditor] mouseDown: e]; break; case NSLeftMouseUp: [[editField currentEditor] mouseUp: e]; break; case NSLeftMouseDragged: [[editField currentEditor] mouseDragged: e]; break; case NSKeyDown: [[editField currentEditor] keyDown: e]; break; case NSKeyUp: [[editField currentEditor] keyUp: e]; break; case NSFlagsChanged: [[editField currentEditor] flagsChanged: e]; break; default: NSLog(@"Internal Error: Unhandled event during editing: %@", e); break; } } [editField setEditable: wasEditable]; [editField setDrawsBackground: didDrawBackground]; [nc removeObserver: self name: NSControlTextDidEndEditingNotification object: nil]; [[editField currentEditor] resignFirstResponder]; [self setNeedsDisplay: YES]; return e; } @end gorm-1.2.24/GormCore/GormInternalViewEditor.h0000644000000000000000000000226513410616261017540 0ustar rootroot/* GormInternalViewEditor.h * * Copyright (C) 2002 Free Software Foundation, Inc. * * Author: Pierre-Yves Rivaille * Date: 2002 * * This file is part of GNUstep. * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 3 of the License, or * (at your option) any later version. * * This program 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 General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02111 USA. */ #ifndef INCLUDED_GormInternalViewEditor_h #define INCLUDED_GormInternalViewEditor_h #include @interface GormInternalViewEditor: GormViewWithContentViewEditor { } - (NSArray*) destroyAndListSubviews; - (void) changeFont: (id)sender; @end #endif gorm-1.2.24/GormCore/GormViewEditor.h0000644000000000000000000000505313410616261016041 0ustar rootroot/* GormViewEditor.h * * Copyright (C) 2002 Free Software Foundation, Inc. * * Author: Pierre-Yves Rivaille * Date: 2002 * * This file is part of GNUstep. * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 3 of the License, or * (at your option) any later version. * * This program 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 General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02111 USA. */ #include #ifndef INCLUDED_GormViewEditor_h #define INCLUDED_GormViewEditor_h @class GormViewWithSubviewsEditor; @class GormPlacementInfo; @class GormViewWindow; @interface GormViewEditor : NSView { id document; id _editedObject; BOOL activated; BOOL closed; GormViewWithSubviewsEditor *parent; GormViewWindow *viewWindow; } - (BOOL) activate; - (id) initWithObject: (id)anObject inDocument: (id)aDocument; - (void) close; - (void) deactivate; - (id) document; - (id) editedObject; - (void) detachSubviews; - (void) postDraw: (NSRect) rect; - (id) parent; - (NSArray *) selection; - (void) makeSelectionVisible: (BOOL) value; - (BOOL) isOpened; - (BOOL) canBeOpened; - (void) setOpened: (BOOL) value; - (void) frameDidChange: (id) sender; @end @interface GormViewEditor (EditingAdditions) - (NSEvent *) editTextField: view withEvent: (NSEvent *)theEvent; @end @interface GormViewEditor (IntelligentPlacement) - (GormPlacementInfo *) initializeResizingInFrame: (NSView *)view withKnob: (IBKnobPosition) knob; - (void) updateResizingWithFrame: (NSRect) frame andEvent: (NSEvent *)theEvent andPlacementInfo: (GormPlacementInfo*) gpi; - (void) validateFrame: (NSRect) frame withEvent: (NSEvent *) theEvent andPlacementInfo: (GormPlacementInfo*)gpi; @end @interface GormViewEditor (WindowAndRect) /* * Pull the window object and it's rect. */ - (NSWindow *)windowAndRect: (NSRect *)prect forObject: (id) object; @end #endif gorm-1.2.24/GormCore/GormDocumentWindow.m0000644000000000000000000000475113410616261016737 0ustar rootroot/* GormDocumentWindow.m * * Copyright (C) 2006 Free Software Foundation, Inc. * * Author: Matt Rice * * This file is part of GNUstep. * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 3 of the License, or * (at your option) any later version. * * This program 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 General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02111 USA. */ #include "GormDocumentWindow.h" #include "GormPrivate.h" #include #include #include @implementation GormDocumentWindow /* - (BOOL) canBecomeMainWindow { return NO; } */ - (void) setDocument:(id)document { _document = document; } - (NSDragOperation)draggingEntered:(id )sender; { NSPasteboard *pb = [sender draggingPasteboard]; NSUInteger mask = [sender draggingSourceOperationMask]; NSUInteger oper = NSDragOperationNone; dragMgr = [_document resourceManagerForPasteboard:pb]; if (dragMgr) { if (mask & NSDragOperationCopy) { oper = NSDragOperationCopy; } else if (mask & NSDragOperationLink) { oper = NSDragOperationLink; } else if (mask & NSDragOperationMove) { oper = NSDragOperationMove; } else if (mask & NSDragOperationGeneric) { oper = NSDragOperationGeneric; } else if (mask & NSDragOperationPrivate) { oper = NSDragOperationPrivate; } } return oper; } - (void)draggingExited:(id )sender; { dragMgr = nil; } - (BOOL)prepareForDragOperation:(id )sender; { return !(dragMgr == nil); } - (BOOL)performDragOperation:(id )sender; { [dragMgr addResourcesFromPasteboard:[sender draggingPasteboard]]; return !(dragMgr == nil); } - (void)concludeDragOperation:(id )sender; { dragMgr = nil; } - (void)draggingEnded: (id )sender; { dragMgr = nil; } - (void) awakeFromNib { [self setAcceptsMouseMovedEvents: YES]; } @end gorm-1.2.24/GormCore/GormViewSizeInspector.m0000644000000000000000000002015013410616261017414 0ustar rootroot/* GormViewSizeInspector.m * * Copyright (C) 1999 Free Software Foundation, Inc. * * Author: Richard Frith-Macdonald * Date: 1999 * * This file is part of GNUstep. * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 3 of the License, or * (at your option) any later version. * * This program 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 General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02111 USA. */ #include "GormPrivate.h" #include "GormViewKnobs.h" #include "GormViewSizeInspector.h" #include "GormViewWindow.h" #include @implementation GormViewSizeInspector NSImage *eHCoil = nil; NSImage *eVCoil = nil; NSImage *eHLine = nil; NSImage *eVLine = nil; NSImage *mHCoil = nil; NSImage *mVCoil = nil; NSImage *mHLine = nil; NSImage *mVLine = nil; + (void) initialize { if (self == [GormViewSizeInspector class]) { NSBundle *bundle = [NSBundle mainBundle]; NSString *path; path = [bundle pathForImageResource: @"GormEHCoil"]; eHCoil = [[NSImage alloc] initWithContentsOfFile: path]; path = [bundle pathForImageResource: @"GormEVCoil"]; eVCoil = [[NSImage alloc] initWithContentsOfFile: path]; path = [bundle pathForImageResource: @"GormEHLine"]; eHLine = [[NSImage alloc] initWithContentsOfFile: path]; path = [bundle pathForImageResource: @"GormEVLine"]; eVLine = [[NSImage alloc] initWithContentsOfFile: path]; path = [bundle pathForImageResource: @"GormMHCoil"]; mHCoil = [[NSImage alloc] initWithContentsOfFile: path]; path = [bundle pathForImageResource: @"GormMVCoil"]; mVCoil = [[NSImage alloc] initWithContentsOfFile: path]; path = [bundle pathForImageResource: @"GormMHLine"]; mHLine = [[NSImage alloc] initWithContentsOfFile: path]; path = [bundle pathForImageResource: @"GormMVLine"]; mVLine = [[NSImage alloc] initWithContentsOfFile: path]; } } - (void) dealloc { [[NSNotificationCenter defaultCenter] removeObserver: self]; RELEASE(window); [super dealloc]; } - (id) init { self = [super init]; if (self != nil) { if ([NSBundle loadNibNamed: @"GormViewSizeInspector" owner: self] == NO) { NSDictionary *table; NSBundle *bundle; table = [NSDictionary dictionaryWithObject: self forKey: @"NSOwner"]; bundle = [NSBundle mainBundle]; if ( [bundle loadNibFile: @"GormViewSizeInspector" externalNameTable: table withZone: [self zone]] == NO) { NSLog(@"Could not open gorm GormViewSizeInspector"); NSLog(@"self %@", self); return nil; } } // set the tags... [top setTag: NSViewMaxYMargin]; [bottom setTag: NSViewMinYMargin]; [right setTag: NSViewMaxXMargin]; [left setTag: NSViewMinXMargin]; [width setTag: NSViewWidthSizable]; [height setTag: NSViewHeightSizable]; [[NSNotificationCenter defaultCenter] addObserver: self selector: @selector(viewFrameChangeNotification:) name: NSViewFrameDidChangeNotification object: nil]; [[NSNotificationCenter defaultCenter] addObserver: self selector: @selector(controlTextDidEndEditing:) name: NSControlTextDidEndEditingNotification object: nil]; } return self; } - (void) _setValuesFromControl: control { if (control == sizeForm) { id document = [(id)NSApp activeDocument]; NSRect rect; // Update the document as edited... [document touch]; rect = NSMakeRect([[control cellAtIndex: 0] floatValue], [[control cellAtIndex: 1] floatValue], [[control cellAtIndex: 2] floatValue], [[control cellAtIndex: 3] floatValue]); if (NSEqualRects(rect, [object frame]) == NO) { NSRect oldFrame = [object frame]; [object setFrame: rect]; [object display]; if ([object superview]) [[object superview] displayRect: GormExtBoundsForRect(oldFrame)]; [[object superview] lockFocus]; GormDrawKnobsForRect([object frame]); GormShowFastKnobFills(); [[object superview] unlockFocus]; [[object window] flushWindow]; } } } - (void) _getValuesFromObject: anObject { NSRect frame; if (anObject != object) return; /* if([[anObject window] isKindOfClass: [GormViewWindow class]]) { [sizeForm setEnabled: NO]; } else */ { [sizeForm setEnabled: YES]; } // stop editing so that the new values can be populated. [sizeForm abortEditing]; frame = [anObject frame]; [[sizeForm cellAtIndex: 0] setFloatValue: NSMinX(frame)]; [[sizeForm cellAtIndex: 1] setFloatValue: NSMinY(frame)]; [[sizeForm cellAtIndex: 2] setFloatValue: NSWidth(frame)]; [[sizeForm cellAtIndex: 3] setFloatValue: NSHeight(frame)]; } - (void) controlTextDidEndEditing: (NSNotification*)aNotification { id notifier = [aNotification object]; [super ok: notifier]; [self _setValuesFromControl: notifier]; } - (void) viewFrameChangeNotification: (NSNotification*)aNotification { id notifier = [aNotification object]; [self _getValuesFromObject: notifier]; } - (void) setAutosize: (id)sender { unsigned mask = [sender tag]; id document = [(id)NSApp activeDocument]; [document touch]; if ([sender state] == NSOnState) { mask = [object autoresizingMask] | mask; } else { mask = [object autoresizingMask] & ~mask; } [object setAutoresizingMask: mask]; } - (void) setObject: (id)anObject { if ((object != nil) && (anObject != object)) [object setPostsFrameChangedNotifications: NO]; if (anObject != nil && anObject != object) { NSRect frame; unsigned mask = [anObject autoresizingMask]; ASSIGN(object, anObject); if (mask & NSViewMaxYMargin) [top setState: NSOnState]; else [top setState: NSOffState]; if (mask & NSViewMinYMargin) [bottom setState: NSOnState]; else [bottom setState: NSOffState]; if (mask & NSViewMaxXMargin) [right setState: NSOnState]; else [right setState: NSOffState]; if (mask & NSViewMinXMargin) [left setState: NSOnState]; else [left setState: NSOffState]; if (mask & NSViewWidthSizable) [width setState: NSOnState]; else [width setState: NSOffState]; if (mask & NSViewHeightSizable) [height setState: NSOnState]; else [height setState: NSOffState]; frame = [anObject frame]; [[sizeForm cellAtIndex: 0] setFloatValue: NSMinX(frame)]; [[sizeForm cellAtIndex: 1] setFloatValue: NSMinY(frame)]; [[sizeForm cellAtIndex: 2] setFloatValue: NSWidth(frame)]; [[sizeForm cellAtIndex: 3] setFloatValue: NSHeight(frame)]; [anObject setPostsFrameChangedNotifications: YES]; /* if([[anObject window] isKindOfClass: [GormViewWindow class]] || [anObject window] == nil) { [[sizeForm cellAtIndex: 0] setEnabled: NO]; [[sizeForm cellAtIndex: 1] setEnabled: NO]; [[sizeForm cellAtIndex: 2] setEnabled: NO]; [[sizeForm cellAtIndex: 3] setEnabled: NO]; [[sizeForm cellAtIndex: 0] setEditable: NO]; [[sizeForm cellAtIndex: 1] setEditable: NO]; [[sizeForm cellAtIndex: 2] setEditable: NO]; [[sizeForm cellAtIndex: 3] setEditable: NO]; } else */ { [[sizeForm cellAtIndex: 0] setEnabled: YES]; [[sizeForm cellAtIndex: 1] setEnabled: YES]; [[sizeForm cellAtIndex: 2] setEnabled: YES]; [[sizeForm cellAtIndex: 3] setEnabled: YES]; [[sizeForm cellAtIndex: 0] setEditable: YES]; [[sizeForm cellAtIndex: 1] setEditable: YES]; [[sizeForm cellAtIndex: 2] setEditable: YES]; [[sizeForm cellAtIndex: 3] setEditable: YES]; } } } @end gorm-1.2.24/GormCore/NSColorWell+GormExtensions.h0000644000000000000000000000236213410616261020256 0ustar rootroot/* NSColor+GormExtensions.h * * Copyright (C) 2005 Free Software Foundation, Inc. * * Author: Gregory John Casamento * Date: 2005 * * This file is part of GNUstep. * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 3 of the License, or * (at your option) any later version. * * This program 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 General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02111 USA. */ #ifndef INCLUDED_NSColorWell_GormExtensions_h #define INCLUDED_NSColorWell_GormExtensions_h #include #include @interface NSColorWell (GormExtensions) /** * Changes the color without sending the action associated with it. */ - (void) setColorWithoutAction: (NSColor *)color; @end #endif gorm-1.2.24/GormCore/GormWrapperBuilder.m0000644000000000000000000001136413410616261016716 0ustar rootroot/* GormWrapperBuilder * * These classes handle loading different formats into the * document's data structures. * * Copyright (C) 2006 Free Software Foundation, Inc. * * Author: Gregory John Casamento * Date: 2006 * * This file is part of GNUstep. * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 3 of the License, or * (at your option) any later version. * * This program 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 General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02111 USA. */ #include #include #include #include #include #include #include #include static NSMutableDictionary *_wrapperBuilderMap = nil; static GormWrapperBuilderFactory *_sharedWrapperBuilderFactory = nil; @implementation GormWrapperBuilder + (NSString *) fileType { [self subclassResponsibility: _cmd]; return nil; } - (NSFileWrapper *) buildFileWrapperWithDocument: (GormDocument *)doc { NSFileWrapper *result = nil; NSDictionary *wrappers = [self buildFileWrapperDictionaryWithDocument: doc]; if(wrappers != nil) { result = [[NSFileWrapper alloc] initDirectoryWithFileWrappers: wrappers]; } return result; } - (NSMutableDictionary *) buildFileWrapperDictionaryWithDocument: (GormDocument *)doc { NSMutableDictionary *fileWrappers = [NSMutableDictionary dictionary]; NSFileWrapper *scmDirWrapper = nil; NSArray *resources; id object; NSEnumerator *en; // Assign document and don't retain... document = doc; // // Add the SCM wrapper to the wrapper, if it's present. // scmDirWrapper = [document scmWrapper]; if(scmDirWrapper != nil) { NSString *name = [[scmDirWrapper filename] lastPathComponent]; [fileWrappers setObject: scmDirWrapper forKey: name]; } // // Copy resources into the new folder... // Gorm doesn't copy these into the folder right away since the folder may // not yet exist. This allows the user to add/delete resources as they see fit // but only those which they end up with will actually be put into the wrapper // when the model/document is saved. // resources = [[document sounds] arrayByAddingObjectsFromArray: [document images]]; object = nil; en = [resources objectEnumerator]; while ((object = [en nextObject]) != nil) { if([object isSystemResource] == NO) { NSString *path = [object path]; NSString *resName = nil; NSData *resData = nil; NSFileWrapper *fileWrapper = nil; if([object isInWrapper]) { resName = [object fileName]; resData = [object data]; } else { resName = [path lastPathComponent]; resData = [NSData dataWithContentsOfFile: path]; [object setData: resData]; [object setInWrapper: YES]; } fileWrapper = [[NSFileWrapper alloc] initRegularFileWithContents: resData]; [fileWrappers setObject: fileWrapper forKey: resName]; RELEASE(fileWrapper); } } return fileWrappers; } @end @implementation GormWrapperBuilderFactory + (void) initialize { NSArray *classes = GSObjCAllSubclassesOfClass([GormWrapperBuilder class]); NSEnumerator *en = [classes objectEnumerator]; Class cls = nil; while((cls = [en nextObject]) != nil) { [self registerWrapperBuilderClass: cls]; } } + (void) registerWrapperBuilderClass: (Class)aClass { if(_wrapperBuilderMap == nil) { _wrapperBuilderMap = [[NSMutableDictionary alloc] initWithCapacity: 5]; } [_wrapperBuilderMap setObject: aClass forKey: (NSString *)[aClass fileType]]; } + (GormWrapperBuilderFactory *) sharedWrapperBuilderFactory { if(_sharedWrapperBuilderFactory == nil) { _sharedWrapperBuilderFactory = [[self alloc] init]; } return _sharedWrapperBuilderFactory; } - (id) init { if((self = [super init]) != nil) { if(_sharedWrapperBuilderFactory == nil) { _sharedWrapperBuilderFactory = self; } } return self; } - (id) wrapperBuilderForType: (NSString *) type { Class cls = [_wrapperBuilderMap objectForKey: type]; id obj = AUTORELEASE([[cls alloc] init]); return obj; } @end gorm-1.2.24/GormCore/GormImageInspector.h0000644000000000000000000000033613410616261016670 0ustar rootroot/* All Rights reserved */ #include #include @interface GormImageInspector : IBInspector { id name; id imageView; id width; id height; id _currentImage; } @end gorm-1.2.24/TODO0000644000000000000000000000254313410616261011736 0ustar rootrootTO DO: This is a DO list based on feature requests that are being made by users of Gorm. Currently a number of requests are on the table which seem intersting: * Look into automatic "localization" of .gorm files for applications. * Create an xml output format for Gorm files so that they can be used on both MOSX and on GNUstep. This will be done w/ an extension library. (Working on this) * Add a way for the user to edit the spacing used by the guidelines. Also make it so that we can save the settings and retrieve them from external files so that users can distribute thier own preferred spacing for different frameworks. (Done, added a way to do this. Sets a preference with the value.) * Add an autosave feature to Gorm which will save the document at regular intervals. * We should able to edit Window name directly * Add Feature to allow to create its own Palettes (Template) * Add Feature for creating more inteligent [mh] file (for ex. delegate/dataSource method if needs ...) Usability features: 1) Add outlet/action editing feature to advance the cursor to the next outlet/action automatically after the user finishes editing the current one. 2) Fix gmodel issue in bug tracker. Project Center Integration: 1) image sharing between project and gorm/nib files so that images from the project can be loaded into Gorm's interfaces.gorm-1.2.24/.cvsignore0000644000000000000000000000006013410616261013236 0ustar rootroot*.app *.debug *.profile *.palette *obj .gdbinit