Add some more bindings

This commit is contained in:
fredkiefer 2020-01-10 20:53:53 +01:00
parent 668ae592f5
commit 97cb13a5ff
6 changed files with 36 additions and 14 deletions

View file

@ -1,3 +1,11 @@
2020-01-10 Fred Kiefer <FredKiefer@gmx.de>
* Headers/AppKit/NSKeyValueBinding.h,
* Source/externs.m: Add some more bindings.
* Source/NSPopUpButton.m,
* Source/NSPopUpButtonCell.m,
* Source/NSTableView.m: Use the new bindings.
2020-01-01 Fred Kiefer <FredKiefer@gmx.de>
* Source/GSXib5KeyedUnarchiver.m,

View file

@ -118,7 +118,9 @@ APPKIT_EXPORT NSString *NSHiddenBinding;
APPKIT_EXPORT NSString *NSSelectedIndexBinding;
APPKIT_EXPORT NSString *NSSelectedObjectBinding;
APPKIT_EXPORT NSString *NSSelectedTagBinding;
APPKIT_EXPORT NSString *NSSelectedValueBinding;
APPKIT_EXPORT NSString *NSSelectionIndexesBinding;
APPKIT_EXPORT NSString *NSSortDescriptorsBinding;
APPKIT_EXPORT NSString *NSTextColorBinding;
APPKIT_EXPORT NSString *NSTitleBinding;
APPKIT_EXPORT NSString *NSToolTipBinding;

View file

@ -67,6 +67,7 @@ Class _nspopupbuttonCellClass = 0;
[self exposeBinding: NSSelectedIndexBinding];
[self exposeBinding: NSSelectedObjectBinding];
[self exposeBinding: NSSelectedTagBinding];
[self exposeBinding: NSSelectedValueBinding];
[self exposeBinding: NSContentValuesBinding];
}
}
@ -571,8 +572,13 @@ this to return nil to indicate that we have no context menu.
}
else if ([aKey isEqual: NSSelectedObjectBinding])
{
// FIXME: This looks wrong to me
[self selectItemWithTag: [anObject intValue]];
}
else if ([aKey isEqual: NSSelectedValueBinding])
{
[self selectItemWithTitle: anObject];
}
else if ([aKey isEqual: NSContentValuesBinding])
{
[self removeAllItems];
@ -596,8 +602,13 @@ this to return nil to indicate that we have no context menu.
}
else if ([aKey isEqual: NSSelectedObjectBinding])
{
// FIXME
return [NSNumber numberWithInt: [self selectedTag]];
}
else if ([aKey isEqual: NSSelectedValueBinding])
{
return [self titleOfSelectedItem];
}
else if ([aKey isEqual: NSContentValuesBinding])
{
return [self itemTitles];

View file

@ -1385,22 +1385,20 @@ static NSImage *_pbc_image[5];
if (_control_view)
{
GSKeyValueBinding *theBinding;
NSString *bindings[] = {NSSelectedIndexBinding, NSSelectedTagBinding,
NSSelectedObjectBinding, NSSelectedValueBinding};
int i;
theBinding = [GSKeyValueBinding getBinding: NSSelectedIndexBinding
forObject: _control_view];
if (theBinding != nil)
[theBinding reverseSetValueFor: NSSelectedIndexBinding];
for (i = 0; i < 4; i++)
{
NSString *binding = bindings[i];
GSKeyValueBinding *theBinding;
theBinding = [GSKeyValueBinding getBinding: NSSelectedTagBinding
forObject: _control_view];
if (theBinding != nil)
[theBinding reverseSetValueFor: NSSelectedTagBinding];
theBinding = [GSKeyValueBinding getBinding: NSSelectedObjectBinding
forObject: _control_view];
if (theBinding != nil)
[theBinding reverseSetValueFor: NSSelectedObjectBinding];
theBinding = [GSKeyValueBinding getBinding: binding
forObject: _control_view];
if (theBinding != nil)
[theBinding reverseSetValueFor: binding];
}
}
[NSApp sendAction: [self action] to: [self target] from: _control_view];

View file

@ -2000,6 +2000,7 @@ static void computeNewSelection
// FIXME
[self exposeBinding: NSContentBinding];
[self exposeBinding: NSSelectionIndexesBinding];
[self exposeBinding: NSSortDescriptorsBinding];
}
}

View file

@ -760,7 +760,9 @@ NSString *NSHiddenBinding = @"hidden";
NSString *NSSelectedIndexBinding = @"selectedIndex";
NSString *NSSelectedObjectBinding = @"selectedObject";
NSString *NSSelectedTagBinding = @"selectedTag";
NSString *NSSelectedValueBinding = @"selectedValue";
NSString *NSSelectionIndexesBinding = @"selectionIndexes";
NSString *NSSortDescriptorsBinding = @"sortDescriptors";
NSString *NSTextColorBinding = @"textColor";
NSString *NSTitleBinding = @"title";
NSString *NSToolTipBinding = @"toolTip";