From dc6e7aefe440f0943eb465d6276029e9870eec2c Mon Sep 17 00:00:00 2001 From: Aparajita Fishman Date: Mon, 9 Aug 2010 10:15:30 -0400 Subject: [PATCH] Fix for issue #817 (Support for alignment and line break mode in NSTextField/CPTextField) --- AppKit/CPTextField.j | 7 +++++++ Tools/nib2cib/NSCell.j | 12 +----------- Tools/nib2cib/NSTextField.j | 3 ++- 3 files changed, 10 insertions(+), 12 deletions(-) diff --git a/AppKit/CPTextField.j b/AppKit/CPTextField.j index 6440017d5..67b75b858 100644 --- a/AppKit/CPTextField.j +++ b/AppKit/CPTextField.j @@ -1145,6 +1145,7 @@ var CPTextFieldIsEditableKey = "CPTextFieldIsEditableKey", CPTextFieldBezelStyleKey = "CPTextFieldBezelStyleKey", CPTextFieldDrawsBackgroundKey = "CPTextFieldDrawsBackgroundKey", CPTextFieldLineBreakModeKey = "CPTextFieldLineBreakModeKey", + CPTextFieldAlignmentKey = "CPTextFieldAlignmentKey", CPTextFieldBackgroundColorKey = "CPTextFieldBackgroundColorKey", CPTextFieldPlaceholderStringKey = "CPTextFieldPlaceholderStringKey"; @@ -1167,6 +1168,9 @@ var CPTextFieldIsEditableKey = "CPTextFieldIsEditableKey", [self setDrawsBackground:[aCoder decodeBoolForKey:CPTextFieldDrawsBackgroundKey]]; [self setTextFieldBackgroundColor:[aCoder decodeObjectForKey:CPTextFieldBackgroundColorKey]]; + + [self setLineBreakMode:[aCoder decodeIntForKey:CPTextFieldLineBreakModeKey]]; + [self setAlignment:[aCoder decodeIntForKey:CPTextFieldAlignmentKey]]; [self setPlaceholderString:[aCoder decodeObjectForKey:CPTextFieldPlaceholderStringKey]]; } @@ -1189,6 +1193,9 @@ var CPTextFieldIsEditableKey = "CPTextFieldIsEditableKey", [aCoder encodeObject:_textFieldBackgroundColor forKey:CPTextFieldBackgroundColorKey]; + [aCoder encodeInt:[self lineBreakMode] forKey:CPTextFieldLineBreakModeKey]; + [aCoder encodeInt:[self alignment] forKey:CPTextFieldAlignmentKey]; + [aCoder encodeObject:_placeholderString forKey:CPTextFieldPlaceholderStringKey]; } diff --git a/Tools/nib2cib/NSCell.j b/Tools/nib2cib/NSCell.j index f34f754af..9d3dedb73 100644 --- a/Tools/nib2cib/NSCell.j +++ b/Tools/nib2cib/NSCell.j @@ -67,19 +67,9 @@ _isContinuous = (flags & 0x00080100) ? YES : NO; _wraps = (flags & 0x00100000) ? NO : YES; _alignment = (flags2 & 0x1c000000) >> 26; + _lineBreakMode = (flags2 & 0x0E00) >> 9; _controlSize = (flags2 & 0xE0000) >> 17; - switch ((flags2 & 0x00000F00) >> 8) - { - case 0: _lineBreakMode = CPLineBreakByWordWrapping; break; - case 2: _lineBreakMode = CPLineBreakByCharWrapping; break; - case 6: _lineBreakMode = CPLineBreakByTruncatingHead; break; - case 8: _lineBreakMode = CPLineBreakByTruncatingTail; break; - case 10: _lineBreakMode = CPLineBreakByTruncatingMiddle; break; - case 4: - default: _lineBreakMode = CPLineBreakByClipping; break; - } - _objectValue = [aCoder decodeObjectForKey:@"NSContents"]; _font = [aCoder decodeObjectForKey:@"NSSupport"]; } diff --git a/Tools/nib2cib/NSTextField.j b/Tools/nib2cib/NSTextField.j index 2ab875958..cafceba12 100644 --- a/Tools/nib2cib/NSTextField.j +++ b/Tools/nib2cib/NSTextField.j @@ -49,7 +49,8 @@ [self setBezelStyle:[cell bezelStyle]]; [self setDrawsBackground:[cell drawsBackground]]; - //[self setLineBreakMode:???]; + [self setLineBreakMode:[cell lineBreakMode]]; + [self setAlignment:[cell alignment]]; [self setTextFieldBackgroundColor:[cell backgroundColor]]; [self setPlaceholderString:[cell placeholderString]];