mirror of
https://github.com/gnustep/apps-gorm.git
synced 2025-04-22 22:20:44 +00:00
A sizable number of changes to correct some bugs and add external/custom palette support and the file prefs gui which allows the user to set which version a given .gorm should be saved as.
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/apps/gorm/trunk@19719 72102866-910b-0410-8b05-ffd578937521
This commit is contained in:
parent
abb8f51e46
commit
958fdfcabb
41 changed files with 1044 additions and 135 deletions
65
ChangeLog
65
ChangeLog
|
@ -1,3 +1,68 @@
|
|||
2004-07-11 23:40 Gregory John Casamento <greg_casamento@yahoo.com>
|
||||
|
||||
* 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 <greg_casamento@yahoo.com>
|
||||
|
||||
* Palettes/3Containers/GormNSTableViewInspector.gorm: Missing
|
||||
|
|
10
GNUmakefile
10
GNUmakefile
|
@ -49,6 +49,7 @@ Gorm_APPLICATION_ICON=Gorm.tiff
|
|||
Gorm_RESOURCE_FILES = \
|
||||
GormInfo.plist \
|
||||
ClassInformation.plist \
|
||||
VersionProfiles.plist \
|
||||
Defaults.plist \
|
||||
Palettes/0Menus/0Menus.palette \
|
||||
Palettes/1Windows/1Windows.palette \
|
||||
|
@ -125,6 +126,7 @@ Gorm_RESOURCE_FILES = \
|
|||
Resources/GormPreferences.gorm \
|
||||
Resources/GormPrefHeaders.gorm \
|
||||
Resources/GormPrefGeneral.gorm \
|
||||
Resources/GormPrefPalettes.gorm \
|
||||
Resources/GormShelfPref.gorm \
|
||||
Resources/GormScrollViewAttributesInspector.gorm \
|
||||
Resources/GormNSSplitViewInspector.gorm \
|
||||
|
@ -169,7 +171,9 @@ Gorm_HEADERS = \
|
|||
GormFunctions.h \
|
||||
GormShelfPref.h \
|
||||
GormColorsPref.h \
|
||||
GormSoundView.h
|
||||
GormPalettesPref.h \
|
||||
GormSoundView.h \
|
||||
GormFilePrefsManager.h
|
||||
|
||||
Gorm_OBJC_FILES = \
|
||||
Gorm.m \
|
||||
|
@ -214,7 +218,9 @@ Gorm_OBJC_FILES = \
|
|||
GormFunctions.m \
|
||||
GormShelfPref.m \
|
||||
GormColorsPref.m \
|
||||
GormSoundView.m
|
||||
GormPalettesPref.m \
|
||||
GormSoundView.m \
|
||||
GormFilePrefsManager.m
|
||||
|
||||
-include GNUmakefile.preamble
|
||||
|
||||
|
|
1
Gorm.m
1
Gorm.m
|
@ -988,7 +988,6 @@ NSString *GormResizeCellNotification = @"GormResizeCellNotification";
|
|||
[[self palettesManager] openPalette: sender];
|
||||
}
|
||||
|
||||
|
||||
- (void) deferredEndTesting: (id) sender
|
||||
{
|
||||
[[NSRunLoop currentRunLoop]
|
||||
|
|
|
@ -1,3 +1,5 @@
|
|||
#include <InterfaceBuilder/IBPalette.h>
|
||||
|
||||
#ifndef INCLUDED_GormClassManager_h
|
||||
#define INCLUDED_GormClassManager_h
|
||||
|
||||
|
@ -42,19 +44,29 @@
|
|||
- (BOOL) renameClassNamed: (NSString *)oldName newName: (NSString*)name;
|
||||
- (void) removeClassNamed: (NSString *)className;
|
||||
- (NSString*) addClassWithSuperClassName: (NSString*)name;
|
||||
|
||||
- (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*) superClassNameForClassNamed: (NSString*)className;
|
||||
- (BOOL) isSuperclass: (NSString*)superclass
|
||||
linkedToClass: (NSString*)subclass;
|
||||
|
||||
- (BOOL) makeSourceAndHeaderFilesForClass: (NSString*)className
|
||||
withName:(NSString*)sourcePath
|
||||
and:(NSString*)headerPath;
|
||||
|
||||
- (BOOL) parseHeader: (NSString *)headerPath;
|
||||
- (BOOL) saveToFile: (NSString*)path;
|
||||
- (BOOL) loadFromFile: (NSString*)path;
|
||||
|
@ -69,15 +81,16 @@
|
|||
// custom class support...
|
||||
- (NSString *) customClassForObject: (id)object;
|
||||
- (NSString *) customClassForName: (NSString *)name;
|
||||
|
||||
- (void) setCustomClass: (NSString *)className
|
||||
forObject: (id)object;
|
||||
|
||||
- (void) removeCustomClassForObject: (id) object;
|
||||
- (NSMutableDictionary *) customClassMap;
|
||||
- (void) setCustomClassMap: (NSMutableDictionary *)dict;
|
||||
- (BOOL) isCustomClassMapEmpty;
|
||||
- (NSString *) nonCustomSuperClassOf: (NSString *)className;
|
||||
- (NSString *)parentOfClass: (NSString *)aClass;
|
||||
|
||||
@end
|
||||
|
||||
#endif
|
||||
|
|
|
@ -26,7 +26,10 @@
|
|||
#include "GormPrivate.h"
|
||||
#include "GormCustomView.h"
|
||||
#include "GormDocument.h"
|
||||
#include "GormFilesOwner.h"
|
||||
#include "GormPalettesManager.h"
|
||||
#include <InterfaceBuilder/IBEditors.h>
|
||||
#include <InterfaceBuilder/IBPalette.h>
|
||||
|
||||
@interface GormClassManager (Private)
|
||||
- (NSMutableDictionary*) classInfoForClassName: (NSString*)className;
|
||||
|
@ -127,6 +130,19 @@
|
|||
withSuperClassNamed: (NSString*)super_class_name
|
||||
withActions: (NSArray*)_actions
|
||||
withOutlets: (NSArray*)_outlets
|
||||
{
|
||||
return [self addClassNamed: class_name
|
||||
withSuperClassNamed: super_class_name
|
||||
withActions: _actions
|
||||
withOutlets: _outlets
|
||||
isCustom: YES];
|
||||
}
|
||||
|
||||
- (BOOL) addClassNamed: (NSString*)class_name
|
||||
withSuperClassNamed: (NSString*)super_class_name
|
||||
withActions: (NSArray*)_actions
|
||||
withOutlets: (NSArray*)_outlets
|
||||
isCustom: (BOOL) isCustom
|
||||
{
|
||||
BOOL result = NO;
|
||||
NSString *className = [class_name copy];
|
||||
|
@ -151,7 +167,12 @@
|
|||
[classInfo setObject: actions forKey: @"Actions"];
|
||||
[classInfo setObject: superClassName forKey: @"Super"];
|
||||
[classInformation setObject: classInfo forKey: className];
|
||||
[customClasses addObject: className];
|
||||
|
||||
// if it's a custom class add it to the list.
|
||||
if(isCustom)
|
||||
{
|
||||
[customClasses addObject: className];
|
||||
}
|
||||
|
||||
// copy all actions from the class imported to the first responder
|
||||
while((action = [e nextObject]))
|
||||
|
@ -818,6 +839,8 @@
|
|||
}
|
||||
else
|
||||
{
|
||||
GormPalettesManager *palettesManager = [(Gorm *)NSApp palettesManager];
|
||||
|
||||
// load the classes, initialize the custom class array and map..
|
||||
[self loadFromFile: path];
|
||||
customClasses = [[NSMutableArray alloc] initWithCapacity: 1];
|
||||
|
@ -825,6 +848,9 @@
|
|||
|
||||
// add first responder so that it may be edited.
|
||||
[customClasses addObject: @"FirstResponder"];
|
||||
|
||||
// add the imported classes to the class information list...
|
||||
[classInformation addEntriesFromDictionary: [palettesManager importedClasses]];
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -927,6 +953,7 @@
|
|||
{
|
||||
NSEnumerator *en = [customClassMap keyEnumerator];
|
||||
id object = nil;
|
||||
id owner = nil;
|
||||
|
||||
[customClasses removeObject: className];
|
||||
|
||||
|
@ -942,6 +969,13 @@
|
|||
}
|
||||
}
|
||||
}
|
||||
|
||||
// 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];
|
||||
|
|
|
@ -70,7 +70,9 @@
|
|||
NSMutableArray *openEditors;
|
||||
NSToolbar *toolbar;
|
||||
id lastEditor;
|
||||
BOOL willUpgradeArchive;
|
||||
BOOL isOlderArchive;
|
||||
id filePrefsView;
|
||||
id filePrefsManager;
|
||||
}
|
||||
- (void) addConnector: (id<IBConnectors>)aConnector;
|
||||
- (NSArray*) allConnectors;
|
||||
|
|
191
GormDocument.m
191
GormDocument.m
|
@ -28,13 +28,15 @@
|
|||
#include "GormClassManager.h"
|
||||
#include "GormCustomView.h"
|
||||
#include "GormOutlineView.h"
|
||||
#include "GormFunctions.h"
|
||||
#include "GormFilePrefsManager.h"
|
||||
#include <Foundation/NSUserDefaults.h>
|
||||
#include <AppKit/NSImage.h>
|
||||
#include <AppKit/NSSound.h>
|
||||
#include <Foundation/NSUserDefaults.h>
|
||||
#include <AppKit/NSNibConnector.h>
|
||||
#include <GNUstepGUI/GSNibTemplates.h>
|
||||
#include "GormFunctions.h"
|
||||
#include <AppKit/NSNibLoading.h>
|
||||
#include <GNUstepGUI/GSNibTemplates.h>
|
||||
|
||||
|
||||
@interface GormDisplayCell : NSButtonCell
|
||||
@end
|
||||
|
@ -139,6 +141,7 @@ static NSImage *objectsImage = nil;
|
|||
static NSImage *imagesImage = nil;
|
||||
static NSImage *soundsImage = nil;
|
||||
static NSImage *classesImage = nil;
|
||||
static NSImage *fileImage = nil;
|
||||
|
||||
+ (void) initialize
|
||||
{
|
||||
|
@ -168,6 +171,11 @@ static NSImage *classesImage = nil;
|
|||
{
|
||||
classesImage = [[NSImage alloc] initWithContentsOfFile: path];
|
||||
}
|
||||
path = [bundle pathForImageResource: @"Gorm"];
|
||||
if (path != nil)
|
||||
{
|
||||
fileImage = [[NSImage alloc] initWithContentsOfFile: path];
|
||||
}
|
||||
|
||||
[self setVersion: GNUSTEP_NIB_VERSION];
|
||||
}
|
||||
|
@ -379,10 +387,12 @@ static NSImage *classesImage = nil;
|
|||
/*
|
||||
* Set image for this miniwindow.
|
||||
*/
|
||||
[window setMiniwindowImage: [(id)filesOwner imageForViewer]];
|
||||
|
||||
[window setMiniwindowImage: [(id)filesOwner imageForViewer]];
|
||||
hidden = [NSMutableArray new];
|
||||
|
||||
// retain the file prefs view...
|
||||
RETAIN(filePrefsView);
|
||||
|
||||
// preload headers...
|
||||
if ([defaults boolForKey: @"PreloadHeaders"])
|
||||
{
|
||||
|
@ -398,7 +408,7 @@ static NSImage *classesImage = nil;
|
|||
}
|
||||
|
||||
// are we upgrading an archive?
|
||||
willUpgradeArchive = NO;
|
||||
isOlderArchive = NO;
|
||||
}
|
||||
else
|
||||
{
|
||||
|
@ -725,6 +735,12 @@ static NSImage *classesImage = nil;
|
|||
/* 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];
|
||||
}
|
||||
|
||||
- (void) changeCurrentClass: (id)sender
|
||||
|
@ -798,45 +814,50 @@ static NSImage *classesImage = nil;
|
|||
|
||||
switch (tag)
|
||||
{
|
||||
case 0: // objects
|
||||
{
|
||||
[selectionBox setContentView: scrollView];
|
||||
}
|
||||
break;
|
||||
case 1: // images
|
||||
{
|
||||
[selectionBox setContentView: imagesScrollView];
|
||||
}
|
||||
break;
|
||||
case 2: // sounds
|
||||
{
|
||||
[selectionBox setContentView: soundsScrollView];
|
||||
}
|
||||
break;
|
||||
case 3: // classes
|
||||
{
|
||||
NSArray *selection = [[(id<IB>)NSApp selectionOwner] selection];
|
||||
[selectionBox setContentView: classesScrollView];
|
||||
|
||||
// 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];
|
||||
// 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;
|
||||
}
|
||||
}
|
||||
[self selectClassWithObject: obj];
|
||||
}
|
||||
}
|
||||
break;
|
||||
case 0: // objects
|
||||
{
|
||||
[selectionBox setContentView: scrollView];
|
||||
}
|
||||
break;
|
||||
case 1: // images
|
||||
{
|
||||
[selectionBox setContentView: imagesScrollView];
|
||||
}
|
||||
break;
|
||||
case 2: // sounds
|
||||
{
|
||||
[selectionBox setContentView: soundsScrollView];
|
||||
}
|
||||
break;
|
||||
case 3: // classes
|
||||
{
|
||||
NSArray *selection = [[(id<IB>)NSApp selectionOwner] selection];
|
||||
[selectionBox setContentView: classesScrollView];
|
||||
|
||||
// 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];
|
||||
// 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;
|
||||
}
|
||||
}
|
||||
[self selectClassWithObject: obj];
|
||||
}
|
||||
}
|
||||
break;
|
||||
case 4: // file prefs
|
||||
{
|
||||
[selectionBox setContentView: filePrefsView];
|
||||
}
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -1008,8 +1029,8 @@ static NSImage *classesImage = nil;
|
|||
return self;
|
||||
}
|
||||
|
||||
// For debugging ONLY.
|
||||
/*
|
||||
// For debugging
|
||||
- (id) retain
|
||||
{
|
||||
NSLog(@"Document being retained... %d: %@", [self retainCount], self);
|
||||
|
@ -1021,9 +1042,9 @@ static NSImage *classesImage = nil;
|
|||
NSLog(@"Document being released... %d: %@", [self retainCount], self);
|
||||
[super release];
|
||||
}
|
||||
*/
|
||||
*/
|
||||
|
||||
- (void) pasteboardChangedOwner: (NSPasteboard*)sender
|
||||
- (void) pasteboardChangedOwner: (NSPasteboard *)sender
|
||||
{
|
||||
NSDebugLog(@"Owner changed for %@", sender);
|
||||
}
|
||||
|
@ -1032,6 +1053,7 @@ static NSImage *classesImage = nil;
|
|||
{
|
||||
[[NSNotificationCenter defaultCenter] removeObserver: self];
|
||||
[window close];
|
||||
// [toolbar setDelegate: nil];
|
||||
RELEASE(classManager);
|
||||
RELEASE(classEditor);
|
||||
RELEASE(hidden);
|
||||
|
@ -1047,6 +1069,7 @@ static NSImage *classesImage = nil;
|
|||
RELEASE(scrollView);
|
||||
RELEASE(classesScrollView);
|
||||
RELEASE(toolbar);
|
||||
RELEASE(filePrefsManager);
|
||||
RELEASE(openEditors);
|
||||
RELEASE(window);
|
||||
[super dealloc];
|
||||
|
@ -1459,6 +1482,11 @@ static NSImage *classesImage = nil;
|
|||
id<IBConnectors> con;
|
||||
id obj;
|
||||
|
||||
/*
|
||||
* Restore class versions.
|
||||
*/
|
||||
[filePrefsManager restoreClassVersions];
|
||||
|
||||
/*
|
||||
* Restore removed objects.
|
||||
*/
|
||||
|
@ -1575,6 +1603,9 @@ static NSImage *classesImage = nil;
|
|||
[nc postNotificationName: IBWillCloseDocumentNotification
|
||||
object: self];
|
||||
[nc removeObserver: self]; // stop listening to all notifications.
|
||||
// [window setToolbar: nil]; // close the toolbar
|
||||
// [toolbar setDelegate: nil]; // unset the delegate...
|
||||
// RELEASE(self);
|
||||
}
|
||||
else if ([name isEqual: NSWindowDidBecomeKeyNotification] == YES)
|
||||
{
|
||||
|
@ -1937,6 +1968,12 @@ static NSImage *classesImage = nil;
|
|||
@"You won't be able to edit connections on custom classes"),
|
||||
_(@"OK"), NULL, NULL);
|
||||
}
|
||||
|
||||
s = [aFile stringByAppendingPathComponent: @"data.info"];
|
||||
if (![filePrefsManager loadFromFile: s])
|
||||
{
|
||||
NSLog(@"Loading gorm without data.info file. Default settings will be assumed.");
|
||||
}
|
||||
}
|
||||
|
||||
[classesView reloadData];
|
||||
|
@ -1969,8 +2006,8 @@ static NSImage *classesImage = nil;
|
|||
}
|
||||
|
||||
/*
|
||||
* Now we merge the objects from the nib container into our own data
|
||||
* structures, taking care not to overwrite our NSOwner and NSFirst.
|
||||
* If the .gorm file is version 0, we need to add the top level objects
|
||||
* to the list so that they can be properly processed.
|
||||
*/
|
||||
if([u versionForClassName: NSStringFromClass([GSNibContainer class])] == 0)
|
||||
{
|
||||
|
@ -1986,10 +2023,13 @@ static NSImage *classesImage = nil;
|
|||
[topLevelObjects addObject: obj];
|
||||
}
|
||||
}
|
||||
|
||||
willUpgradeArchive = YES;
|
||||
isOlderArchive = YES;
|
||||
}
|
||||
|
||||
/*
|
||||
* Now we merge the objects from the nib container into our own data
|
||||
* structures, taking care not to overwrite our NSOwner and NSFirst.
|
||||
*/
|
||||
[nt removeObjectForKey: @"NSOwner"];
|
||||
[nt removeObjectForKey: @"NSFirst"];
|
||||
[topLevelObjects addObjectsFromArray: [[c topLevelObjects] allObjects]];
|
||||
|
@ -2306,13 +2346,13 @@ static NSImage *classesImage = nil;
|
|||
// issue pre notification..
|
||||
NSNotificationCenter *nc = [NSNotificationCenter defaultCenter];
|
||||
[nc postNotificationName: IBWillRemoveConnectorNotification
|
||||
object: aConnector];
|
||||
object: self];
|
||||
// mark the document as changed.
|
||||
[self touch];
|
||||
// issue port notification..
|
||||
[connections removeObjectIdenticalTo: aConnector];
|
||||
[nc postNotificationName: IBDidRemoveConnectorNotification
|
||||
object: aConnector];
|
||||
object: self];
|
||||
}
|
||||
|
||||
- (void) resignSelectionForEditor: (id<IBEditors>)editor
|
||||
|
@ -2751,6 +2791,7 @@ static NSImage *classesImage = nil;
|
|||
NSMutableData *archiverData;
|
||||
NSString *gormPath;
|
||||
NSString *classesPath;
|
||||
NSString *infoPath;
|
||||
NSFileManager *mgr = [NSFileManager defaultManager];
|
||||
BOOL isDir;
|
||||
BOOL fileExists;
|
||||
|
@ -2758,12 +2799,13 @@ static NSImage *classesImage = nil;
|
|||
|
||||
if (documentPath == nil)
|
||||
{
|
||||
if (! [self saveAsDocument: sender] )
|
||||
return NO;
|
||||
// if no path has been defined... define one.
|
||||
return ([self saveAsDocument: sender]);
|
||||
}
|
||||
|
||||
// Warn the user about possible incompatibility.
|
||||
if(willUpgradeArchive)
|
||||
// TODO: Remove after the next release of GUI.
|
||||
if(isOlderArchive && [filePrefsManager isLatest])
|
||||
{
|
||||
retval = NSRunAlertPanel(_(@"Compatibility Warning"),
|
||||
_(@"Saving will update this gorm to the latest version, which is not compatible with GNUstep's gui 0.9.3 Release or CVS prior to Jun 28 2004."),
|
||||
|
@ -2776,7 +2818,7 @@ static NSImage *classesImage = nil;
|
|||
else
|
||||
{
|
||||
// we're saving anyway... set to new value.
|
||||
willUpgradeArchive = NO;
|
||||
isOlderArchive = NO;
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -2788,6 +2830,7 @@ static NSImage *classesImage = nil;
|
|||
// set up the necessary paths...
|
||||
gormPath = [documentPath stringByAppendingPathComponent: @"objects.gorm"];
|
||||
classesPath = [documentPath stringByAppendingPathComponent: @"data.classes"];
|
||||
infoPath = [documentPath stringByAppendingPathComponent: @"data.info"];
|
||||
|
||||
archiverData = [NSMutableData dataWithCapacity: 0];
|
||||
archiver = [[NSArchiver alloc] initForWritingWithMutableData: archiverData];
|
||||
|
@ -2863,6 +2906,12 @@ static NSImage *classesImage = nil;
|
|||
{
|
||||
// save the custom classes.. and we're done...
|
||||
archiveResult = [classManager saveToFile: classesPath];
|
||||
|
||||
// save the file prefs metadata...
|
||||
if (archiveResult)
|
||||
{
|
||||
archiveResult = [filePrefsManager saveToFile: infoPath];
|
||||
}
|
||||
|
||||
// copy sounds into the new folder...
|
||||
if (archiveResult)
|
||||
|
@ -3829,6 +3878,14 @@ willBeInsertedIntoToolbar: (BOOL)flag
|
|||
[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;
|
||||
}
|
||||
|
@ -3838,8 +3895,9 @@ willBeInsertedIntoToolbar: (BOOL)flag
|
|||
return [NSArray arrayWithObjects: @"ObjectsItem",
|
||||
@"ImagesItem",
|
||||
@"SoundsItem",
|
||||
@"ClassesItem", nil];
|
||||
|
||||
@"ClassesItem",
|
||||
@"FileItem",
|
||||
nil];
|
||||
}
|
||||
|
||||
- (NSArray*) toolbarDefaultItemIdentifiers: (NSToolbar*)toolbar
|
||||
|
@ -3847,15 +3905,8 @@ willBeInsertedIntoToolbar: (BOOL)flag
|
|||
return [NSArray arrayWithObjects: @"ObjectsItem",
|
||||
@"ImagesItem",
|
||||
@"SoundsItem",
|
||||
@"ClassesItem", nil];
|
||||
@"ClassesItem",
|
||||
@"FileItem",
|
||||
nil];
|
||||
}
|
||||
@end
|
||||
|
||||
/*
|
||||
@implementation NSColor (Extensions)
|
||||
+ (NSColor *) toolbarBackgroundColor
|
||||
{
|
||||
return RETAIN([NSColor colorWithCalibratedRed: 0.8 green: 0.8 blue: 0.8 alpha: 1.0]);
|
||||
}
|
||||
@end
|
||||
*/
|
||||
|
|
40
GormFilePrefsManager.h
Normal file
40
GormFilePrefsManager.h
Normal file
|
@ -0,0 +1,40 @@
|
|||
/* All Rights reserved */
|
||||
|
||||
#include <AppKit/AppKit.h>
|
||||
|
||||
@interface GormFilePrefsManager : NSObject <NSCoding>
|
||||
{
|
||||
id showIncompatibilities;
|
||||
id targetVersion;
|
||||
id gormAppVersion;
|
||||
id archiveType;
|
||||
id iwindow;
|
||||
id itable;
|
||||
|
||||
// encoded ivars...
|
||||
int version;
|
||||
NSString *targetVersionName;
|
||||
NSString *archiveTypeName;
|
||||
|
||||
// version profiles...
|
||||
NSDictionary *versionProfiles;
|
||||
NSDictionary *currentProfile;
|
||||
}
|
||||
- (void) showIncompatibilities: (id)sender;
|
||||
- (void) selectTargetVersion: (id)sender;
|
||||
- (void) selectArchiveType: (id)sender;
|
||||
|
||||
- (BOOL) loadFromFile: (NSString *)path;
|
||||
- (BOOL) saveToFile: (NSString *)path;
|
||||
- (void) loadProfile: (NSString *)version;
|
||||
|
||||
// accessors...
|
||||
- (int) version;
|
||||
- (NSString *)targetVersionName;
|
||||
- (NSString *)archiveTypeName;
|
||||
- (BOOL) isLatest;
|
||||
|
||||
// set class versions
|
||||
- (void) setClassVersions;
|
||||
- (void) restoreClassVersions;
|
||||
@end
|
269
GormFilePrefsManager.m
Normal file
269
GormFilePrefsManager.m
Normal file
|
@ -0,0 +1,269 @@
|
|||
/** <title>GormFilePrefsManager</title>
|
||||
|
||||
<abstract>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.</abstract>
|
||||
|
||||
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 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;
|
||||
If not, write to the Free Software Foundation,
|
||||
59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
|
||||
*/
|
||||
|
||||
/* All Rights reserved */
|
||||
|
||||
#include <AppKit/AppKit.h>
|
||||
#include <GNUstepGUI/GSNibTemplates.h>
|
||||
#include "GormFilePrefsManager.h"
|
||||
#include "GormFunctions.h"
|
||||
#include <Foundation/NSFileManager.h>
|
||||
#include <Foundation/NSArchiver.h>
|
||||
#include <GNUstepBase/GSObjCRuntime.h>
|
||||
#include <values.h>
|
||||
#include <math.h>
|
||||
|
||||
NSString *formatVersion(int version)
|
||||
{
|
||||
int bit16 = 65536;
|
||||
int bit8 = 256;
|
||||
int maj = 0;
|
||||
int min = 0;
|
||||
int pch = 0;
|
||||
int 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: @"%d.%d.%d / %d",maj,min,pch,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];
|
||||
}
|
||||
|
||||
- (void) awakeFromNib
|
||||
{
|
||||
version = appVersion(0,7,8);
|
||||
[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;
|
||||
|
||||
NSLog(@"set the class versions to the profile selected... %@",targetVersionName);
|
||||
while((className = [en nextObject]) != nil)
|
||||
{
|
||||
Class cls = NSClassFromString(className);
|
||||
NSDictionary *info = [currentProfile objectForKey: className];
|
||||
int v = [[info objectForKey: @"version"] intValue];
|
||||
NSLog(@"Setting version %d for class %@",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.
|
||||
NSLog(@"restore the class versions to the latest version...");
|
||||
while((className = [en nextObject]) != nil)
|
||||
{
|
||||
Class cls = NSClassFromString(className);
|
||||
NSDictionary *info = [latestVersion objectForKey: className];
|
||||
int v = [[info objectForKey: @"version"] intValue];
|
||||
NSLog(@"Setting version %d for class %@",v,className);
|
||||
[cls setVersion: v];
|
||||
}
|
||||
}
|
||||
|
||||
// class profile
|
||||
- (void) loadProfile: (NSString *)profileName
|
||||
{
|
||||
NSLog(@"Loading profile %@",profileName);
|
||||
currentProfile = [versionProfiles objectForKey: targetVersionName];
|
||||
}
|
||||
|
||||
// actions...
|
||||
- (void) showIncompatibilities: (id)sender
|
||||
{
|
||||
[itable reloadData];
|
||||
[iwindow orderFront: self];
|
||||
}
|
||||
|
||||
- (void) selectTargetVersion: (id)sender
|
||||
{
|
||||
ASSIGN(targetVersionName, [[sender selectedItem] title]);
|
||||
[self loadProfile: targetVersionName];
|
||||
[itable reloadData];
|
||||
}
|
||||
|
||||
- (void) selectArchiveType: (id)sender
|
||||
{
|
||||
ASSIGN(archiveTypeName, [[sender selectedItem] title]);
|
||||
NSLog(@"Set Archive type... %@",sender);
|
||||
}
|
||||
|
||||
// Loading and saving the file.
|
||||
- (BOOL) saveToFile: (NSString *)path
|
||||
{
|
||||
return [NSArchiver archiveRootObject: self toFile: path];
|
||||
}
|
||||
|
||||
- (BOOL) loadFromFile: (NSString *)path
|
||||
{
|
||||
BOOL result = YES;
|
||||
NSFileManager *mgr = [NSFileManager defaultManager];
|
||||
|
||||
// read/load the file...
|
||||
if([mgr isReadableFileAtPath: path])
|
||||
{
|
||||
NS_DURING
|
||||
{
|
||||
id object = [NSUnarchiver unarchiveObjectWithFile: path];
|
||||
[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"]);
|
||||
}
|
||||
|
||||
// Data Source
|
||||
- (int) numberOfRowsInTableView: (NSTableView *)aTableView
|
||||
{
|
||||
return [currentProfile count];
|
||||
}
|
||||
|
||||
- (id) tableView: (NSTableView *)aTableView
|
||||
objectValueForTableColumn: (NSTableColumn *)aTableColumn
|
||||
row: (int)rowIndex
|
||||
{
|
||||
id obj = nil;
|
||||
|
||||
if([[aTableColumn identifier] isEqual: @"item"])
|
||||
{
|
||||
obj = [NSString stringWithFormat: @"#%d",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: (int)rowIndex
|
||||
{
|
||||
}
|
||||
@end
|
||||
|
|
@ -61,4 +61,7 @@ NSArray *systemImagesList();
|
|||
|
||||
// get the list of images...
|
||||
NSArray *systemSoundsList();
|
||||
|
||||
// compute the gorm version
|
||||
int appVersion(long a, long b, long c);
|
||||
#endif
|
||||
|
|
|
@ -267,3 +267,9 @@ NSArray *systemSoundsList()
|
|||
|
||||
return result;
|
||||
}
|
||||
|
||||
int appVersion(long a, long b, long c)
|
||||
{
|
||||
return (((a) << 16)+((b) << 8) + (c));
|
||||
}
|
||||
|
||||
|
|
|
@ -11,12 +11,12 @@
|
|||
NSIcon = "FileIcon_gmodel.tiff";
|
||||
}
|
||||
);
|
||||
ApplicationDescription = "[GNUstep | Graphica] Object Relationship Modeller";
|
||||
ApplicationDescription = "[GNUstep | Graphical] Object Relationship Modeller";
|
||||
ApplicationIcon = "Gorm.tiff";
|
||||
ApplicationName = "Gorm";
|
||||
ApplicationRelease = "Gorm 0.7.8 (Alpha)";
|
||||
Authors = ("Gregory John Casamento <greg_casamento@yahoo.com>","Richard Frith-Macdonald <rfm@gnu.org>","Pierre-Yves Rivaille <pyrivail@ens-lyon.fr>");
|
||||
Copyright = "Copyright (C) 1999, 2000, 2001, 2002, 2003 FSF";
|
||||
CopyrightDescription = "Released under the GNU General Public License 2.0";
|
||||
NSBuildVersion = "0.7.8 June 30 2004";
|
||||
NSBuildVersion = "0.7.8 July 10 2004";
|
||||
}
|
||||
|
|
|
@ -1060,14 +1060,6 @@ selectCellWithString: (NSString*)title
|
|||
[revertButton setTarget: self];
|
||||
[revertButton setTitle: _(@"Revert")];
|
||||
[revertButton setEnabled: NO];
|
||||
|
||||
// catch notifications concerning connection deletions...
|
||||
/*
|
||||
[nc addObserver: self
|
||||
selector: @selector(handleNotification:)
|
||||
name: IBDidRemoveConnectorNotification
|
||||
object: nil];
|
||||
*/
|
||||
}
|
||||
return self;
|
||||
}
|
||||
|
|
|
@ -59,7 +59,7 @@ extern NSString *GormLinkPboardType;
|
|||
|
||||
@interface IBPalette : NSObject
|
||||
{
|
||||
NSWindow *window;
|
||||
NSWindow *originalWindow;
|
||||
NSImage *icon;
|
||||
id<IBDocuments> document;
|
||||
}
|
||||
|
|
|
@ -106,10 +106,10 @@ static NSMapTable *viewToType = 0;
|
|||
|
||||
fileName = [bundle pathForResource: @"palette" ofType: @"table"];
|
||||
paletteInfo = [[NSString stringWithContentsOfFile: fileName]
|
||||
propertyListFromStringsFileFormat];
|
||||
propertyList];
|
||||
|
||||
fileName = [paletteInfo objectForKey: @"Icon"];
|
||||
fileName = [bundle pathForImageResource: fileName];
|
||||
fileName = [bundle pathForImageResource: fileName];
|
||||
if (fileName == nil)
|
||||
{
|
||||
NSRunAlertPanel(NULL, @"Icon for palette is missing",
|
||||
|
@ -122,7 +122,10 @@ static NSMapTable *viewToType = 0;
|
|||
fileName = [paletteInfo objectForKey: @"NibFile"];
|
||||
if (fileName != nil && [fileName isEqual: @""] == NO)
|
||||
{
|
||||
if ([NSBundle loadNibNamed: fileName owner: self] == NO)
|
||||
NSDictionary *context = [NSDictionary dictionaryWithObjectsAndKeys: self, @"NSOwner",nil];
|
||||
if ([bundle loadNibFile: fileName
|
||||
externalNameTable: context
|
||||
withZone: NSDefaultMallocZone()] == NO)
|
||||
{
|
||||
NSRunAlertPanel(NULL, @"Nib for palette would not load",
|
||||
@"OK", NULL, NULL);
|
||||
|
@ -141,7 +144,7 @@ static NSMapTable *viewToType = 0;
|
|||
|
||||
- (NSWindow*) originalWindow
|
||||
{
|
||||
return window;
|
||||
return originalWindow;
|
||||
}
|
||||
|
||||
- (id<IBDocuments>) paletteDocument
|
||||
|
|
|
@ -407,12 +407,13 @@ static NSMapTable *docMap = 0;
|
|||
* Ask the document to get the dragged objects from the pasteboard and
|
||||
* add them to it's collection of known objects.
|
||||
*/
|
||||
array = [document pasteType: IBViewPboardType
|
||||
array = [document pasteType: IBObjectPboardType
|
||||
fromPasteboard: dragPb
|
||||
parent: [objects objectAtIndex: 0]];
|
||||
enumerator = [array objectEnumerator];
|
||||
while ((obj = [enumerator nextObject]) != nil)
|
||||
{
|
||||
[[(GormDocument *)document topLevelObjects] addObject: obj];
|
||||
[self addObject: obj];
|
||||
}
|
||||
return YES;
|
||||
|
@ -488,9 +489,13 @@ static NSMapTable *docMap = 0;
|
|||
id obj = [self changeSelection: sender];
|
||||
id e;
|
||||
|
||||
e = [document editorForObject: obj create: YES];
|
||||
[e orderFront];
|
||||
[e resetObject: obj];
|
||||
if(obj != nil)
|
||||
{
|
||||
e = [document editorForObject: obj create: YES];
|
||||
[e orderFront];
|
||||
[e resetObject: obj];
|
||||
}
|
||||
|
||||
return self;
|
||||
}
|
||||
|
||||
|
|
|
@ -10,11 +10,14 @@
|
|||
NSMutableArray *palettes;
|
||||
int current;
|
||||
BOOL hiddenDuringTest;
|
||||
NSMutableDictionary *importedClasses;
|
||||
}
|
||||
- (void) loadPalette: (NSString*)path;
|
||||
- (id) openPalette: (id) sender;
|
||||
- (NSPanel*) panel;
|
||||
- (void) setCurrentPalette: (id)anObject;
|
||||
- (NSDictionary *) importClasses: (NSArray *)classes withDictionary: (NSDictionary *)dict;
|
||||
- (NSDictionary *) importedClasses;
|
||||
@end
|
||||
|
||||
#endif
|
||||
|
|
|
@ -264,10 +264,10 @@ static NSImage *dragImage = nil;
|
|||
NSRect scrollRect = {{0, 192}, {272, 74}};
|
||||
NSRect dragRect = {{0, 0}, {272, 192}};
|
||||
unsigned int style = NSTitledWindowMask | NSClosableWindowMask | NSResizableWindowMask;
|
||||
// NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults];
|
||||
NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults];
|
||||
NSArray *userPalettes = [defaults arrayForKey: USER_PALETTES];
|
||||
// NSArray *builtinPalettes = [defaults arrayForKey: BUILTIN_PALETTES];
|
||||
// NSArray *userPalettes = [defaults arrayForKey: USER_PALETTES];
|
||||
|
||||
|
||||
panel = [[GormPalettePanel alloc] initWithContentRect: contentRect
|
||||
styleMask: style
|
||||
backing: NSBackingStoreRetained
|
||||
|
@ -277,6 +277,7 @@ static NSImage *dragImage = nil;
|
|||
|
||||
bundles = [NSMutableArray new];
|
||||
palettes = [NSMutableArray new];
|
||||
importedClasses = [NSMutableDictionary new];
|
||||
|
||||
scrollView = [[NSScrollView alloc] initWithFrame: scrollRect];
|
||||
[scrollView setHasHorizontalScroller: YES];
|
||||
|
@ -315,17 +316,21 @@ static NSImage *dragImage = nil;
|
|||
|
||||
array = [array sortedArrayUsingSelector: @selector(compare:)];
|
||||
|
||||
/*
|
||||
if(userPalettes != nil)
|
||||
{
|
||||
[array addObjectFromArray: userPalettes];
|
||||
}
|
||||
*/
|
||||
|
||||
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];
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/*
|
||||
|
@ -353,6 +358,9 @@ static NSImage *dragImage = nil;
|
|||
Class paletteClass;
|
||||
NSDictionary *paletteInfo;
|
||||
NSString *className;
|
||||
NSArray *exportClasses;
|
||||
NSArray *exportSounds;
|
||||
NSArray *exportImages;
|
||||
IBPalette *palette;
|
||||
NSImageCell *cell;
|
||||
int col;
|
||||
|
@ -384,8 +392,7 @@ static NSImage *dragImage = nil;
|
|||
return;
|
||||
}
|
||||
|
||||
paletteInfo = [[NSString stringWithContentsOfFile: path]
|
||||
propertyListFromStringsFileFormat];
|
||||
paletteInfo = [[NSString stringWithContentsOfFile: path] propertyList];
|
||||
if (paletteInfo == nil)
|
||||
{
|
||||
NSRunAlertPanel(NULL, _(@"Failed to load 'palette.table'"),
|
||||
|
@ -418,6 +425,27 @@ static NSImage *dragImage = nil;
|
|||
return;
|
||||
}
|
||||
|
||||
exportClasses = [paletteInfo objectForKey: @"ExportClasses"];
|
||||
if(exportClasses != nil)
|
||||
{
|
||||
NSDictionary *classes = [self importClasses: exportClasses withDictionary: nil];
|
||||
[importedClasses addEntriesFromDictionary: classes];
|
||||
}
|
||||
|
||||
exportImages = [paletteInfo objectForKey: @"ExportImages"];
|
||||
if(exportImages != nil)
|
||||
{
|
||||
// id classManager = [(Gorm *)NSApp classManager];
|
||||
// [classManager importClasses: exportClasses fromPalette: palette];
|
||||
}
|
||||
|
||||
exportSounds = [paletteInfo objectForKey: @"ExportSounds"];
|
||||
if(exportSounds != nil)
|
||||
{
|
||||
// id classManager = [(Gorm *)NSApp classManager];
|
||||
// [classManager importClasses: exportClasses fromPalette: palette];
|
||||
}
|
||||
|
||||
[palette finishInstantiate];
|
||||
window = [palette originalWindow];
|
||||
[window setExcludedFromWindowsMenu: YES];
|
||||
|
@ -437,9 +465,13 @@ static NSImage *dragImage = nil;
|
|||
|
||||
- (id) openPalette: (id) sender
|
||||
{
|
||||
NSArray *fileTypes = [NSArray arrayWithObject: @"palette"];
|
||||
NSOpenPanel *oPanel = [NSOpenPanel openPanel];
|
||||
int result;
|
||||
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];
|
||||
|
@ -458,8 +490,12 @@ static NSImage *dragImage = nil;
|
|||
{
|
||||
NSString *aFile = [filesToOpen objectAtIndex: i];
|
||||
|
||||
[newUserPalettes addObject: aFile];
|
||||
[self loadPalette: aFile];
|
||||
}
|
||||
|
||||
// reset the defaults to include the new palette.
|
||||
[defaults setObject: newUserPalettes forKey: USER_PALETTES];
|
||||
return self;
|
||||
}
|
||||
return nil;
|
||||
|
@ -520,4 +556,35 @@ static NSImage *dragImage = nil;
|
|||
[dragView setNeedsDisplay: YES];
|
||||
}
|
||||
|
||||
- (NSDictionary *) 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);
|
||||
|
||||
[classDict setObject: superClassName forKey: @"Super"];
|
||||
[masterDict setObject: classDict forKey: className];
|
||||
}
|
||||
|
||||
// override any elements needed, if it's present.
|
||||
if(dict != nil)
|
||||
{
|
||||
[masterDict addEntriesFromDictionary: dict];
|
||||
}
|
||||
|
||||
return masterDict;
|
||||
}
|
||||
|
||||
- (NSDictionary *)importedClasses
|
||||
{
|
||||
return importedClasses;
|
||||
}
|
||||
@end
|
||||
|
|
24
GormPalettesPref.h
Normal file
24
GormPalettesPref.h
Normal file
|
@ -0,0 +1,24 @@
|
|||
#ifndef INCLUDED_GormPalettesPref_h
|
||||
#define INCLUDED_GormPalettesPref_h
|
||||
|
||||
#include <Foundation/NSObject.h>
|
||||
#include <Foundation/NSArray.h>
|
||||
|
||||
#include <AppKit/NSView.h>
|
||||
|
||||
@interface GormPalettesPref : NSObject
|
||||
{
|
||||
id table;
|
||||
id addButton;
|
||||
id removeButton;
|
||||
id window;
|
||||
id _view;
|
||||
|
||||
NSMutableArray *palettes;
|
||||
}
|
||||
- (NSView *) view;
|
||||
- (void) addAction: (id)sender;
|
||||
- (void) removeAction: (id)sender;
|
||||
@end
|
||||
|
||||
#endif
|
111
GormPalettesPref.m
Normal file
111
GormPalettesPref.m
Normal file
|
@ -0,0 +1,111 @@
|
|||
#include "GormPalettesPref.h"
|
||||
#include "GormPrivate.h"
|
||||
|
||||
#include <Foundation/NSUserDefaults.h>
|
||||
#include <AppKit/NSButton.h>
|
||||
#include <AppKit/NSTableView.h>
|
||||
#include <AppKit/NSWindow.h>
|
||||
#include <AppKit/NSNibLoading.h>
|
||||
#include <AppKit/NSOpenPanel.h>
|
||||
#include <AppKit/NSStringDrawing.h>
|
||||
|
||||
// data source...
|
||||
@interface PaletteDataSource : NSObject
|
||||
@end
|
||||
|
||||
@implementation PaletteDataSource
|
||||
- (int) numberOfRowsInTableView: (NSTableView *)tv
|
||||
{
|
||||
NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults];
|
||||
NSArray *list = [defaults objectForKey: @"UserPalettes"];
|
||||
return [list count];
|
||||
}
|
||||
|
||||
- (id) tableView: (NSTableView *)tv
|
||||
objectValueForTableColumn: (NSTableColumn *)tc
|
||||
row: (int)rowIndex
|
||||
{
|
||||
NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults];
|
||||
NSArray *list = [defaults objectForKey: @"UserPalettes"];
|
||||
id value = nil; // NSFontAttributeName
|
||||
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 = [[window contentView] retain];
|
||||
return self;
|
||||
}
|
||||
|
||||
- (void) dealloc
|
||||
{
|
||||
TEST_RELEASE(_view);
|
||||
[super dealloc];
|
||||
}
|
||||
|
||||
|
||||
-(NSView *) view
|
||||
{
|
||||
return _view;
|
||||
}
|
||||
|
||||
- (void) addAction: (id)sender
|
||||
{
|
||||
NSLog(@"Here...");
|
||||
[[(Gorm *)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: (int)rowIndex
|
||||
{
|
||||
BOOL result = NO;
|
||||
return result;
|
||||
}
|
||||
|
||||
- (BOOL) tableView: (NSTableView *)tv
|
||||
shouldSelectRow: (int)rowIndex
|
||||
{
|
||||
BOOL result = YES;
|
||||
return result;
|
||||
}
|
||||
|
||||
@end
|
|
@ -15,6 +15,7 @@
|
|||
id _headersView;
|
||||
id _shelfView;
|
||||
id _colorsView;
|
||||
id _palettesView;
|
||||
}
|
||||
|
||||
- (void) popupAction: (id)sender;
|
||||
|
|
|
@ -3,6 +3,7 @@
|
|||
#include "GormHeadersPref.h"
|
||||
#include "GormShelfPref.h"
|
||||
#include "GormColorsPref.h"
|
||||
#include "GormPalettesPref.h"
|
||||
|
||||
#include <AppKit/NSBox.h>
|
||||
#include <AppKit/NSPopUpButton.h>
|
||||
|
@ -13,17 +14,17 @@
|
|||
|
||||
- (void) awakeFromNib
|
||||
{
|
||||
_generalView = [[GormGeneralPref alloc] init];
|
||||
_headersView = [[GormHeadersPref alloc] init];
|
||||
_shelfView = [[GormShelfPref alloc] init];
|
||||
_colorsView = [[GormColorsPref alloc] init];
|
||||
_generalView = [[GormGeneralPref alloc] init];
|
||||
_headersView = [[GormHeadersPref alloc] init];
|
||||
_shelfView = [[GormShelfPref alloc] init];
|
||||
_colorsView = [[GormColorsPref alloc] init];
|
||||
_palettesView = [[GormPalettesPref alloc] init];
|
||||
[prefBox setContentView:[_generalView view]];
|
||||
|
||||
[[self window] setFrameUsingName: @"Preferences"];
|
||||
[[self window] setFrameAutosaveName: @"Preferences"];
|
||||
}
|
||||
|
||||
|
||||
- (void) popupAction: (id)sender
|
||||
{
|
||||
if ( sender != popup )
|
||||
|
@ -45,8 +46,11 @@
|
|||
case 3:
|
||||
[prefBox setContentView: [_colorsView view]];
|
||||
break;
|
||||
case 4:
|
||||
[prefBox setContentView: [_palettesView view]];
|
||||
break;
|
||||
default:
|
||||
NSLog(@"Ouch Default : - (void) popupAction: (id)sender");
|
||||
NSLog(@"Error Default (GormPrefController.m) : - (void) popupAction: (id)sender, no match for tag %d",tag);
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
@ -58,6 +62,7 @@
|
|||
RELEASE(_headersView);
|
||||
RELEASE(_shelfView);
|
||||
RELEASE(_colorsView);
|
||||
RELEASE(_palettesView);
|
||||
[super dealloc];
|
||||
}
|
||||
@end
|
||||
|
|
|
@ -74,11 +74,12 @@
|
|||
NSString *path = [bundle pathForImageResource: @"GormMenuDrag"];
|
||||
NSImage *dragImage = [[NSImage alloc] initWithContentsOfFile: path];
|
||||
|
||||
window = [[NSWindow alloc] initWithContentRect: NSMakeRect(0, 0, 272, 192)
|
||||
originalWindow = [[NSWindow alloc] initWithContentRect:
|
||||
NSMakeRect(0, 0, 272, 192)
|
||||
styleMask: NSBorderlessWindowMask
|
||||
backing: NSBackingStoreRetained
|
||||
defer: NO];
|
||||
contents = [window contentView];
|
||||
contents = [originalWindow contentView];
|
||||
|
||||
|
||||
/*
|
||||
|
|
|
@ -107,12 +107,13 @@
|
|||
NSString *path = [bundle pathForImageResource: @"WindowDrag"];
|
||||
NSImage *dragImage = [[NSImage alloc] initWithContentsOfFile: path];
|
||||
|
||||
RELEASE(window);
|
||||
window = [[NSWindow alloc] initWithContentRect: NSMakeRect(0, 0, 272, 192)
|
||||
RELEASE(originalWindow);
|
||||
originalWindow= [[NSWindow alloc] initWithContentRect:
|
||||
NSMakeRect(0, 0, 272, 192)
|
||||
styleMask: NSBorderlessWindowMask
|
||||
backing: NSBackingStoreRetained
|
||||
defer: NO];
|
||||
contents = [window contentView];
|
||||
contents = [originalWindow contentView];
|
||||
|
||||
w = [GormWindowMaker new];
|
||||
v = [[NSButton alloc] initWithFrame: NSMakeRect(35, 60, 80, 64)];
|
||||
|
|
|
@ -145,10 +145,11 @@
|
|||
Actions = (
|
||||
);
|
||||
Outlets = (
|
||||
disabledSwitch,
|
||||
autoenableSwitch,
|
||||
tagForm,
|
||||
typeMatrix,
|
||||
defaultItemForm
|
||||
defaultItemForm,
|
||||
enableSwitch
|
||||
);
|
||||
Super = IBInspector;
|
||||
};
|
||||
|
|
Binary file not shown.
|
@ -860,7 +860,8 @@
|
|||
@interface GormPopUpButtonAttributesInspector : IBInspector
|
||||
{
|
||||
id typeMatrix;
|
||||
id disabledSwitch;
|
||||
id autoenableSwitch;
|
||||
id enableSwitch;
|
||||
id tagForm;
|
||||
id defaultItemForm;
|
||||
}
|
||||
|
@ -878,9 +879,13 @@
|
|||
[object selectItem: nil];
|
||||
[object selectItem: selectedItem];
|
||||
}
|
||||
else if (control == disabledSwitch)
|
||||
else if (control == autoenableSwitch)
|
||||
{
|
||||
[object setAutoenablesItems: ([control state] == NSOffState)];
|
||||
[object setAutoenablesItems: ([control state] == NSOnState)];
|
||||
}
|
||||
else if (control == enableSwitch)
|
||||
{
|
||||
[object setEnabled: ([control state] == NSOnState)];
|
||||
}
|
||||
else if (control == tagForm)
|
||||
{
|
||||
|
@ -904,7 +909,8 @@
|
|||
return;
|
||||
}
|
||||
[typeMatrix selectCellWithTag: [anObject pullsDown]];
|
||||
[disabledSwitch setState: ![anObject autoenablesItems]];
|
||||
[autoenableSwitch setState: [anObject autoenablesItems]];
|
||||
[enableSwitch setState: [anObject isEnabled]];
|
||||
[[tagForm cellAtRow: 0 column: 0] setIntValue: [anObject tag]];
|
||||
[[defaultItemForm cellAtRow: 0 column: 0] setIntValue: [anObject indexOfSelectedItem]];
|
||||
}
|
||||
|
|
|
@ -41,11 +41,12 @@
|
|||
NSView *contents;
|
||||
id v;
|
||||
|
||||
window = [[NSWindow alloc] initWithContentRect: NSMakeRect(0, 0, 272, 192)
|
||||
originalWindow = [[NSWindow alloc] initWithContentRect:
|
||||
NSMakeRect(0, 0, 272, 192)
|
||||
styleMask: NSBorderlessWindowMask
|
||||
backing: NSBackingStoreRetained
|
||||
defer: NO];
|
||||
contents = [window contentView];
|
||||
contents = [originalWindow contentView];
|
||||
|
||||
|
||||
/*******************/
|
||||
|
|
BIN
Palettes/3Containers/GormNSTableViewInspector.gorm/data.info
Normal file
BIN
Palettes/3Containers/GormNSTableViewInspector.gorm/data.info
Normal file
Binary file not shown.
|
@ -51,11 +51,12 @@
|
|||
NSSize contentSize;
|
||||
id v;
|
||||
|
||||
window = [[NSWindow alloc] initWithContentRect: NSMakeRect(0, 0, 272, 192)
|
||||
originalWindow = [[NSWindow alloc] initWithContentRect:
|
||||
NSMakeRect(0, 0, 272, 192)
|
||||
styleMask: NSBorderlessWindowMask
|
||||
backing: NSBackingStoreRetained
|
||||
defer: NO];
|
||||
contents = [window contentView];
|
||||
contents = [originalWindow contentView];
|
||||
|
||||
/*******************/
|
||||
/* First Column... */
|
||||
|
|
|
@ -198,11 +198,12 @@ int defaultDateFormatIndex = 3;
|
|||
NSRect rect;
|
||||
|
||||
|
||||
window = [[NSWindow alloc] initWithContentRect: NSMakeRect(0, 0, 272, 192)
|
||||
originalWindow = [[NSWindow alloc] initWithContentRect:
|
||||
NSMakeRect(0, 0, 272, 192)
|
||||
styleMask: NSBorderlessWindowMask
|
||||
backing: NSBackingStoreRetained
|
||||
defer: NO];
|
||||
contents = [window contentView];
|
||||
contents = [originalWindow contentView];
|
||||
|
||||
/*******************/
|
||||
/* First Column... */
|
||||
|
|
|
@ -136,7 +136,8 @@
|
|||
"useStandardKerning:",
|
||||
"useStandardLigatures:",
|
||||
"yank:",
|
||||
"zoom:"
|
||||
"zoom:",
|
||||
"selectArchiveType:"
|
||||
);
|
||||
Super = NSObject;
|
||||
};
|
||||
|
@ -152,8 +153,26 @@
|
|||
);
|
||||
Outlets = (
|
||||
selectionBox,
|
||||
window
|
||||
window,
|
||||
filePrefsView,
|
||||
filePrefsManager
|
||||
);
|
||||
Super = GSNibContainer;
|
||||
};
|
||||
GormFilePrefsManager = {
|
||||
Actions = (
|
||||
"showIncompatibilities:",
|
||||
"selectTargetVersion:",
|
||||
"selectArchiveType:"
|
||||
);
|
||||
Outlets = (
|
||||
showIncompatibilities,
|
||||
targetVersion,
|
||||
gormAppVersion,
|
||||
archiveType,
|
||||
iwindow,
|
||||
itable
|
||||
);
|
||||
Super = NSObject;
|
||||
};
|
||||
}
|
BIN
Resources/GormDocument.gorm/data.info
Normal file
BIN
Resources/GormDocument.gorm/data.info
Normal file
Binary file not shown.
Binary file not shown.
Binary file not shown.
168
Resources/GormPrefPalettes.gorm/data.classes
Normal file
168
Resources/GormPrefPalettes.gorm/data.classes
Normal file
|
@ -0,0 +1,168 @@
|
|||
{
|
||||
FirstResponder = {
|
||||
Actions = (
|
||||
"activateContextHelpMode:",
|
||||
"alignCenter:",
|
||||
"alignJustified:",
|
||||
"alignLeft:",
|
||||
"alignRight:",
|
||||
"arrangeInFront:",
|
||||
"cancel:",
|
||||
"capitalizeWord:",
|
||||
"changeColor:",
|
||||
"changeFont:",
|
||||
"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:",
|
||||
"openDocument:",
|
||||
"orderBack:",
|
||||
"orderFront:",
|
||||
"orderFrontColorPanel:",
|
||||
"orderFrontDataLinkPanel:",
|
||||
"orderFrontFontPanel:",
|
||||
"orderFrontHelpPanel:",
|
||||
"orderFrontStandardAboutPanel:",
|
||||
"orderFrontStandardInfoPanel:",
|
||||
"orderOut:",
|
||||
"pageDown:",
|
||||
"pageUp:",
|
||||
"paste:",
|
||||
"pasteAsPlainText:",
|
||||
"pasteAsRichText:",
|
||||
"pasteFont:",
|
||||
"pasteRuler:",
|
||||
"performClose:",
|
||||
"performMiniaturize:",
|
||||
"performZoom:",
|
||||
"print:",
|
||||
"raiseBaseline:",
|
||||
"revertDocumentToSaved:",
|
||||
"runPageLayout:",
|
||||
"runToolbarCustomizationPalette:",
|
||||
"saveAllDocuments:",
|
||||
"saveDocument:",
|
||||
"saveDocumentAs:",
|
||||
"saveDocumentTo:",
|
||||
"scrollLineDown:",
|
||||
"scrollLineUp:",
|
||||
"scrollPageDown:",
|
||||
"scrollPageUp:",
|
||||
"scrollViaScroller:",
|
||||
"selectAll:",
|
||||
"selectLine:",
|
||||
"selectNextKeyView:",
|
||||
"selectParagraph:",
|
||||
"selectPreviousKeyView:",
|
||||
"selectText:",
|
||||
"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:",
|
||||
"unhide:",
|
||||
"unhideAllApplications:",
|
||||
"unscript:",
|
||||
"uppercaseWord:",
|
||||
"useAllLigatures:",
|
||||
"useStandardKerning:",
|
||||
"useStandardLigatures:",
|
||||
"yank:",
|
||||
"zoom:",
|
||||
"removeAction:",
|
||||
"addAction:"
|
||||
);
|
||||
Super = NSObject;
|
||||
};
|
||||
GormPalettesPref = {
|
||||
Actions = (
|
||||
"removeAction:",
|
||||
"addAction:"
|
||||
);
|
||||
Outlets = (
|
||||
_view,
|
||||
window,
|
||||
removeButton,
|
||||
addButton,
|
||||
table
|
||||
);
|
||||
Super = NSObject;
|
||||
};
|
||||
PaletteDataSource = {
|
||||
Actions = (
|
||||
);
|
||||
Outlets = (
|
||||
);
|
||||
Super = NSObject;
|
||||
};
|
||||
}
|
BIN
Resources/GormPrefPalettes.gorm/data.info
Normal file
BIN
Resources/GormPrefPalettes.gorm/data.info
Normal file
Binary file not shown.
BIN
Resources/GormPrefPalettes.gorm/objects.gorm
Normal file
BIN
Resources/GormPrefPalettes.gorm/objects.gorm
Normal file
Binary file not shown.
BIN
Resources/GormPreferences.gorm/data.info
Normal file
BIN
Resources/GormPreferences.gorm/data.info
Normal file
Binary file not shown.
Binary file not shown.
11
VersionProfiles.plist
Normal file
11
VersionProfiles.plist
Normal file
|
@ -0,0 +1,11 @@
|
|||
{
|
||||
"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;
|
||||
};
|
||||
};
|
||||
"Latest Version" = {
|
||||
GSNibContainer = {comment = "Not compatible with GNUstep gui-0.9.3 or earlier."; version = 1; };
|
||||
};
|
||||
}
|
Loading…
Reference in a new issue