mirror of
https://github.com/gnustep/apps-gorm.git
synced 2025-02-24 12:01:16 +00:00
Addition of IBInspectorMode and changes to inspector manager.
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/apps/gorm/trunk@21396 72102866-910b-0410-8b05-ffd578937521
This commit is contained in:
parent
f5c1bcf9e0
commit
3c8628157c
5 changed files with 218 additions and 1 deletions
|
@ -50,6 +50,7 @@ IBDocuments.h \
|
|||
IBEditors.h \
|
||||
IBInspector.h \
|
||||
IBInspectorManager.h \
|
||||
IBInspectorMode.h \
|
||||
IBObjectAdditions.h \
|
||||
IBObjectProtocol.h \
|
||||
IBPalette.h \
|
||||
|
@ -73,6 +74,7 @@ IBDocuments.m \
|
|||
IBEditors.m \
|
||||
IBInspector.m \
|
||||
IBInspectorManager.m \
|
||||
IBInspectorMode.m \
|
||||
IBObjectAdditions.m \
|
||||
IBPalette.m \
|
||||
IBResourceManager.m
|
||||
|
|
|
@ -40,6 +40,7 @@ IB_EXTERN NSString *IBWillInspectWithModeNotification;
|
|||
{
|
||||
NSMutableArray *modes;
|
||||
id currentMode;
|
||||
id selectedObject;
|
||||
}
|
||||
|
||||
/**
|
||||
|
|
|
@ -25,7 +25,10 @@
|
|||
#include <Foundation/NSObject.h>
|
||||
#include <Foundation/NSString.h>
|
||||
#include <Foundation/NSDictionary.h>
|
||||
#include <Foundation/NSArray.h>
|
||||
#include <InterfaceBuilder/IBInspectorManager.h>
|
||||
#include <InterfaceBuilder/IBInspectorMode.h>
|
||||
#include <math.h>
|
||||
|
||||
static IBInspectorManager *_sharedInspectorManager = nil;
|
||||
|
||||
|
@ -60,6 +63,7 @@ NSString *IBWillInspectWithModeNotification =
|
|||
if((self = [super init]) != nil)
|
||||
{
|
||||
// set the shared instance...
|
||||
modes = [[NSMutableArray alloc] init];
|
||||
_sharedInspectorManager = self;
|
||||
}
|
||||
}
|
||||
|
@ -72,6 +76,12 @@ NSString *IBWillInspectWithModeNotification =
|
|||
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.
|
||||
|
@ -82,6 +92,30 @@ NSString *IBWillInspectWithModeNotification =
|
|||
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];
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -90,6 +124,19 @@ NSString *IBWillInspectWithModeNotification =
|
|||
*/
|
||||
- (unsigned int) indexOfModeWithIdentifier: (NSString *)ident
|
||||
{
|
||||
return 0;
|
||||
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
|
||||
|
|
57
GormLib/IBInspectorMode.h
Normal file
57
GormLib/IBInspectorMode.h
Normal file
|
@ -0,0 +1,57 @@
|
|||
/* IBInspectorMode
|
||||
*
|
||||
* Copyright (C) 2004 Free Software Foundation, Inc.
|
||||
*
|
||||
* Author: Gregory John Casamento <greg_casamento@yahoo.com>
|
||||
* 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 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.
|
||||
*/
|
||||
|
||||
#ifndef IBINSPECTORMODE_H
|
||||
#define IBINSPECTORMODE_H
|
||||
|
||||
#include <Foundation/NSObject.h>
|
||||
|
||||
@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
|
110
GormLib/IBInspectorMode.m
Normal file
110
GormLib/IBInspectorMode.m
Normal file
|
@ -0,0 +1,110 @@
|
|||
/* IBInspectorMode
|
||||
*
|
||||
* Copyright (C) 2004 Free Software Foundation, Inc.
|
||||
*
|
||||
* Author: Gregory John Casamento <greg_casamento@yahoo.com>
|
||||
* 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 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.
|
||||
*/
|
||||
|
||||
#include <InterfaceBuilder/IBInspectorMode.h>
|
||||
#include <Foundation/NSArray.h>
|
||||
#include <Foundation/NSString.h>
|
||||
|
||||
/**
|
||||
* 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
|
Loading…
Reference in a new issue