diff --git a/ChangeLog b/ChangeLog index 2031b384b..4dc0a917e 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,10 @@ +2004-10-22 08:26 Gregory John Casamento + + * Source/NSStepperCell.m: Corrected issue with [NSStepperCell + initWithCoder:] for encoding issue with gcc 3.4. + * Header/AppKit/NSStepperCell.h: Took out defines which use + the bitfields in NSCell.h. These now are BOOL variables. + 2004-10-21 Fred Kiefer * Source/NSResponder.m (-initWithCoder:): Set missing default diff --git a/Headers/AppKit/NSStepperCell.h b/Headers/AppKit/NSStepperCell.h index 246d46fd0..7409d65ca 100644 --- a/Headers/AppKit/NSStepperCell.h +++ b/Headers/AppKit/NSStepperCell.h @@ -32,15 +32,13 @@ @interface NSStepperCell : NSActionCell { - // Think of the following ones as of two BOOL ivars -#define _autorepeat _cell.subclass_bool_one -#define _valueWraps _cell.subclass_bool_two - double _maxValue; double _minValue; double _increment; BOOL highlightUp; BOOL highlightDown; + BOOL _autorepeat; + BOOL _valueWraps; } - (double)maxValue; diff --git a/Source/NSStepperCell.m b/Source/NSStepperCell.m index 37bc4c5e5..4523e2062 100644 --- a/Source/NSStepperCell.m +++ b/Source/NSStepperCell.m @@ -341,22 +341,42 @@ static inline void HighlightDownButton(NSRect aRect) // - (void) encodeWithCoder: (NSCoder*)aCoder { - BOOL tmp1, tmp2; + int tmp1, tmp2; [super encodeWithCoder: aCoder]; - tmp1 = _autorepeat; - tmp2 = _valueWraps; - [aCoder encodeValuesOfObjCTypes: "dddii", - &_maxValue, &_minValue, &_increment, &tmp1, &tmp2]; + + tmp1 = (int)_autorepeat; + tmp2 = (int)_valueWraps; + + [aCoder encodeValueOfObjCType: @encode(double) + at: &_maxValue]; + [aCoder encodeValueOfObjCType: @encode(double) + at: &_minValue]; + [aCoder encodeValueOfObjCType: @encode(double) + at: &_increment]; + [aCoder encodeValueOfObjCType: @encode(int) + at: &tmp1]; + [aCoder encodeValueOfObjCType: @encode(int) + at: &tmp2]; } - (id) initWithCoder: (NSCoder*)aDecoder { - BOOL tmp1, tmp2; + int tmp1, tmp2; [super initWithCoder: aDecoder]; - [aDecoder decodeValuesOfObjCTypes: "dddii", - &_maxValue, &_minValue, &_increment, &tmp1, &tmp2]; - _autorepeat = tmp1; - _valueWraps = tmp2; + + [aDecoder decodeValueOfObjCType: @encode(double) + at: &_maxValue]; + [aDecoder decodeValueOfObjCType: @encode(double) + at: &_minValue]; + [aDecoder decodeValueOfObjCType: @encode(double) + at: &_increment]; + [aDecoder decodeValueOfObjCType: @encode(int) + at: &tmp1]; + [aDecoder decodeValueOfObjCType: @encode(int) + at: &tmp2]; + + _autorepeat = (BOOL)tmp1; + _valueWraps = (BOOL)tmp2; return self; }