From 16183cca0991bc6b7728b61260f363716e277263 Mon Sep 17 00:00:00 2001 From: Klaas Pieter Annema Date: Wed, 1 Jun 2011 12:09:49 +0200 Subject: [PATCH] fix nib2cibbed controls enabled state --- Tools/nib2cib/NSButton.j | 2 ++ Tools/nib2cib/NSControl.j | 7 ++++--- 2 files changed, 6 insertions(+), 3 deletions(-) diff --git a/Tools/nib2cib/NSButton.j b/Tools/nib2cib/NSButton.j index 1cbda554e..79e3a5572 100644 --- a/Tools/nib2cib/NSButton.j +++ b/Tools/nib2cib/NSButton.j @@ -183,6 +183,8 @@ var NSButtonIsBorderedMask = 0x00800000, [self setImagePosition:[cell imagePosition]]; } + [self setEnabled:[cell isEnabled]]; + return self; } diff --git a/Tools/nib2cib/NSControl.j b/Tools/nib2cib/NSControl.j index abe978ec9..06afe13cd 100644 --- a/Tools/nib2cib/NSControl.j +++ b/Tools/nib2cib/NSControl.j @@ -44,9 +44,10 @@ [self setFont:[cell font]]; [self setAlignment:[cell alignment]]; - // The NSEnabled flag is never changed when changing the enabled state of a control - // Enabled state should is derived from the NSCellFlags decoded by NSCell - [self setEnabled:[cell isEnabled]]; + // Enabled state is derived from the NSEnabled flag or the control's cell. + // For example NSTableView uses the NSEnabled flag, but NSButton uses it's cell isEnabled state. + // We use the NSEnabled flag here and override the behavior in controls using different logic (NSButton). + [self setEnabled:[aCoder decodeBoolForKey:@"NSEnabled"]]; [self setContinuous:[cell isContinuous]]; [self setTarget:[aCoder decodeObjectForKey:@"NSTarget"]];