Documentation and prevention of a leak in case of exception.

git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/gui/trunk@18302 72102866-910b-0410-8b05-ffd578937521
This commit is contained in:
Gregory John Casamento 2004-01-02 04:19:32 +00:00
parent 821f7018a7
commit 0f64c6ffed
4 changed files with 118 additions and 10 deletions

View file

@ -1,3 +1,11 @@
2003-01-01 23:22 Gregory John Casamento <greg_casamento@yahoo.com>
* Source/NSBundleAdditions.m: Moved the declaration of
nibitems in loadNibFile:externalNameTable:withZone: so
that it can be released if there is an exception.
* Source/NSActionCell.m: Documentation.
* Source/NSScreen.m: Documentation.
2003-12-31 01:07 Alexander Malmberg <alexander@malmberg.org> 2003-12-31 01:07 Alexander Malmberg <alexander@malmberg.org>
* KeyBindings/DefaultKeyBindings.dict: Uncomment the * KeyBindings/DefaultKeyBindings.dict: Uncomment the
@ -27,7 +35,6 @@
NSDrawLightBezel(). NSDrawLightBezel().
* Source/NSTableHeaderView.m (-drawRect:) Use NSDrawTiledRects() * Source/NSTableHeaderView.m (-drawRect:) Use NSDrawTiledRects()
instead of DPS operations. instead of DPS operations.
2003-12-30 00:48 Gregory John Casamento <greg_casamento@yahoo.com> 2003-12-30 00:48 Gregory John Casamento <greg_casamento@yahoo.com>

View file

@ -53,6 +53,10 @@ static Class controlClass;
/* /*
* Configuring an NSActionCell * Configuring an NSActionCell
*/ */
/**
* Sets the alignment of text within the receiver.
*/
- (void) setAlignment: (NSTextAlignment)mode - (void) setAlignment: (NSTextAlignment)mode
{ {
[super setAlignment: mode]; [super setAlignment: mode];
@ -61,6 +65,9 @@ static Class controlClass;
[(NSControl *)_control_view updateCell: self]; [(NSControl *)_control_view updateCell: self];
} }
/**
* If <code>YES</code> then the receiver is drawn with a bezeled border.
*/
- (void) setBezeled: (BOOL)flag - (void) setBezeled: (BOOL)flag
{ {
_cell.is_bezeled = flag; _cell.is_bezeled = flag;
@ -71,6 +78,9 @@ static Class controlClass;
[(NSControl *)_control_view updateCell: self]; [(NSControl *)_control_view updateCell: self];
} }
/**
* If <code>YES</code> then receiver is drawn with a border.
*/
- (void) setBordered: (BOOL)flag - (void) setBordered: (BOOL)flag
{ {
_cell.is_bordered = flag; _cell.is_bordered = flag;
@ -81,6 +91,9 @@ static Class controlClass;
[(NSControl *)_control_view updateCell: self]; [(NSControl *)_control_view updateCell: self];
} }
/**
* If <code>YES</code> then the receiver is capable of accepting input.
*/
- (void) setEnabled: (BOOL)flag - (void) setEnabled: (BOOL)flag
{ {
_cell.is_disabled = !flag; _cell.is_disabled = !flag;
@ -101,6 +114,9 @@ static Class controlClass;
[(NSControl *)_control_view updateCell: self]; [(NSControl *)_control_view updateCell: self];
} }
/**
* Sets the font to be used in the receiver.
*/
- (void) setFont: (NSFont*)fontObject - (void) setFont: (NSFont*)fontObject
{ {
[super setFont: fontObject]; [super setFont: fontObject];
@ -110,6 +126,9 @@ static Class controlClass;
// TODO: This should also set the font of the text object, when selected // TODO: This should also set the font of the text object, when selected
} }
/**
* Sets the image to be displayed in the receiver.
*/
- (void) setImage: (NSImage*)image - (void) setImage: (NSImage*)image
{ {
[super setImage: image]; [super setImage: image];
@ -122,6 +141,9 @@ static Class controlClass;
* Manipulating NSActionCell Values * Manipulating NSActionCell Values
*/ */
/**
* Retrieve the value of the receiver as an NSString.
*/
- (NSString *)stringValue - (NSString *)stringValue
{ {
if (_control_view) if (_control_view)
@ -130,6 +152,9 @@ static Class controlClass;
return [super stringValue]; return [super stringValue];
} }
/**
* Retrieve the value of the receiver as a double.
*/
- (double)doubleValue - (double)doubleValue
{ {
if (_control_view) if (_control_view)
@ -138,6 +163,9 @@ static Class controlClass;
return [super doubleValue]; return [super doubleValue];
} }
/**
* Retrieve the value of the receiver as a float.
*/
- (float)floatValue - (float)floatValue
{ {
if (_control_view) if (_control_view)
@ -146,6 +174,9 @@ static Class controlClass;
return [super floatValue]; return [super floatValue];
} }
/**
* Retrieve the value of the receiver as an int.
*/
- (int)intValue - (int)intValue
{ {
if (_control_view) if (_control_view)
@ -154,6 +185,9 @@ static Class controlClass;
return [super intValue]; return [super intValue];
} }
/**
* Set the value of the receiver from anObject.
*/
- (void) setObjectValue: (NSString*)anObject - (void) setObjectValue: (NSString*)anObject
{ {
[super setObjectValue: anObject]; [super setObjectValue: anObject];
@ -162,6 +196,9 @@ static Class controlClass;
[(NSControl *)_control_view updateCell: self]; [(NSControl *)_control_view updateCell: self];
} }
/**
* Set the value of the receiver from aString.
*/
- (void) setStringValue: (NSString*)aString - (void) setStringValue: (NSString*)aString
{ {
[super setStringValue: aString]; [super setStringValue: aString];
@ -170,6 +207,9 @@ static Class controlClass;
[(NSControl *)_control_view updateCell: self]; [(NSControl *)_control_view updateCell: self];
} }
/**
* Set the value of the receiver from aDouble.
*/
- (void) setDoubleValue: (double)aDouble - (void) setDoubleValue: (double)aDouble
{ {
[super setDoubleValue: aDouble]; [super setDoubleValue: aDouble];
@ -178,6 +218,9 @@ static Class controlClass;
[(NSControl *)_control_view updateCell: self]; [(NSControl *)_control_view updateCell: self];
} }
/**
* Set the value of the receiver from aFloat.
*/
- (void) setFloatValue: (float)aFloat - (void) setFloatValue: (float)aFloat
{ {
[super setFloatValue: aFloat]; [super setFloatValue: aFloat];
@ -186,6 +229,9 @@ static Class controlClass;
[(NSControl *)_control_view updateCell: self]; [(NSControl *)_control_view updateCell: self];
} }
/**
* Set the value of the receiver from anInt.
*/
- (void) setIntValue: (int)anInt - (void) setIntValue: (int)anInt
{ {
[super setIntValue: anInt]; [super setIntValue: anInt];
@ -197,40 +243,58 @@ static Class controlClass;
/* /*
* Target and Action * Target and Action
*/ */
/**
* Retrieve the action from the receiver.
*/
- (SEL) action - (SEL) action
{ {
return _action; return _action;
} }
/**
* Set the action in the receiver as the selector aSelector.
*/
- (void) setAction: (SEL)aSelector - (void) setAction: (SEL)aSelector
{ {
_action = aSelector; _action = aSelector;
} }
/* NSActionCell does not retain its target! */ /**
* Set the target in the receiver as anObject. NSActionCell does not retain its target!
*/
- (void) setTarget: (id)anObject - (void) setTarget: (id)anObject
{ {
_target = anObject; _target = anObject;
} }
/**
* Return the target of the receiver.
*/
- (id) target - (id) target
{ {
return _target; return _target;
} }
/* /**
* Assigning a Tag * Assigning a Tag.
*/ */
- (void) setTag: (int)anInt - (void) setTag: (int)anInt
{ {
_tag = anInt; _tag = anInt;
} }
/**
* Return the tag.
*/
- (int) tag - (int) tag
{ {
return _tag; return _tag;
} }
/**
* Returns the control view of the receiver.
*/
-(NSView *)controlView -(NSView *)controlView
{ {
return _control_view; return _control_view;

View file

@ -286,6 +286,7 @@ Class gmodel_class(void)
BOOL loaded = NO; BOOL loaded = NO;
NSUnarchiver *unarchiver = nil; NSUnarchiver *unarchiver = nil;
NSString *ext = [fileName pathExtension]; NSString *ext = [fileName pathExtension];
id nibitems = nil;
if ([ext isEqual: @"nib"]) if ([ext isEqual: @"nib"])
{ {
@ -344,7 +345,8 @@ Class gmodel_class(void)
if (unarchiver != nil) if (unarchiver != nil)
{ {
id obj; id obj;
id nibitems = [[_GSNibItemCollector alloc] init];
nibitems = [[_GSNibItemCollector alloc] init];
NSDebugLog(@"Invoking unarchiver"); NSDebugLog(@"Invoking unarchiver");
[unarchiver setObjectZone: zone]; [unarchiver setObjectZone: zone];
obj = [unarchiver decodeObject]; obj = [unarchiver decodeObject];
@ -363,8 +365,8 @@ Class gmodel_class(void)
{ {
NSLog(@"Nib '%@' without container object!", fileName); NSLog(@"Nib '%@' without container object!", fileName);
} }
RELEASE(nibitems);
} }
RELEASE(nibitems);
RELEASE(unarchiver); RELEASE(unarchiver);
} }
} }
@ -373,6 +375,7 @@ Class gmodel_class(void)
NS_HANDLER NS_HANDLER
{ {
NSLog(@"Exception occured while loading model: %@",[localException reason]); NSLog(@"Exception occured while loading model: %@",[localException reason]);
TEST_RELEASE(nibitems);
TEST_RELEASE(unarchiver); TEST_RELEASE(unarchiver);
} }
NS_ENDHANDLER NS_ENDHANDLER

View file

@ -54,11 +54,18 @@
static NSMutableArray *screenArray = nil; static NSMutableArray *screenArray = nil;
/**
* Resets the cached list of screens.
*/
+ (void) resetScreens + (void) resetScreens
{ {
screenArray = nil; screenArray = nil;
} }
/**
* Returns an NSArray containing NSScreen instances representing all of the
* screen devices attached to the computer.
*/
+ (NSArray*) screens + (NSArray*) screens
{ {
int count = 0, index = 0; int count = 0, index = 0;
@ -95,11 +102,17 @@ static NSMutableArray *screenArray = nil;
} }
// Creating NSScreen Instances // Creating NSScreen Instances
/**
* Gets information about the main screen.
*/
+ (NSScreen*) mainScreen + (NSScreen*) mainScreen
{ {
return [[self screens] objectAtIndex: 0]; return [[self screens] objectAtIndex: 0];
} }
/**
* Gets information about the screen with the highest depth (i.e. bits per pixel).
*/
+ (NSScreen*) deepestScreen + (NSScreen*) deepestScreen
{ {
NSArray *screenArray = [self screens]; NSArray *screenArray = [self screens];
@ -131,14 +144,18 @@ static NSMutableArray *screenArray = nil;
* Instance methods * Instance methods
*/ */
// NSScreen does not respond to the init method. /**
* NSScreen does not respond to the init method.
*/
- (id) init - (id) init
{ {
[self doesNotRecognizeSelector: _cmd]; [self doesNotRecognizeSelector: _cmd];
return nil; return nil;
} }
// Get all of the infomation for a given screen. /**
* Get all of the infomation for a given screen.
*/
- (id) _initWithScreenNumber: (int)screen - (id) _initWithScreenNumber: (int)screen
{ {
GSDisplayServer *srv; GSDisplayServer *srv;
@ -187,19 +204,30 @@ static NSMutableArray *screenArray = nil;
return NO; return NO;
} }
/* /**
* Reading Screen Information * Returns the depth of the screen in bits.
*/ */
- (NSWindowDepth) depth - (NSWindowDepth) depth
{ {
return _depth; return _depth;
} }
/**
* The full frame of the screen.
*/
- (NSRect) frame - (NSRect) frame
{ {
return _frame; return _frame;
} }
/**
* <p>
* This method generates a dictionary containing information
* about the screen device. The resulting dictionary will have the following
* entires: NSScreenNumber, NSDeviceSize, NSDeviceResolution, NSDeviceBitsPerSample,
* NSDeviceColorSpaceName.
* </p>
*/
- (NSDictionary*) deviceDescription - (NSDictionary*) deviceDescription
{ {
NSMutableDictionary *devDesc; NSMutableDictionary *devDesc;
@ -243,6 +271,9 @@ static NSMutableArray *screenArray = nil;
} }
// Mac OS X methods // Mac OS X methods
/**
* Returns the window depths this screen will support.
*/
- (const NSWindowDepth*) supportedWindowDepths - (const NSWindowDepth*) supportedWindowDepths
{ {
// If the variable isn't initialized, get the info and // If the variable isn't initialized, get the info and
@ -264,6 +295,9 @@ static NSMutableArray *screenArray = nil;
return _supportedWindowDepths; return _supportedWindowDepths;
} }
/**
* Returns the NSRect representing the visible area of the screen.
*/
- (NSRect) visibleFrame - (NSRect) visibleFrame
{ {
NSRect visFrame = _frame; NSRect visFrame = _frame;