* EOInterface/EOComboBoxAssociation.h/m: New files.

* EOInterface/EOControlAssociation.h/m: Ditto.
        * EOInterface/EOGenericControlAssociation.m: Ditto.
        * EOInterface/EOActionCellAssociation.m: Ditto.
        * EOInterface/NSImage+Additions.m: Ditto.
        * EOInterface/EOInterface.h: Added new headers.
        * EOInterface/GNUmakefile: Use new files.  Remove superfluous
        header files directory variable.


git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/gdl2/trunk@20232 72102866-910b-0410-8b05-ffd578937521
This commit is contained in:
David Ayers 2004-10-17 20:27:26 +00:00
parent 59d8cea7d7
commit 2854281dc9
10 changed files with 678 additions and 3 deletions

View file

@ -1,3 +1,10 @@
2004-10-17 David Ayers <d.ayers@inode.at>
*
* EOInterface/EOInterface.h: Added new headers.
* EOInterface/GNUmakefile: Use new files. Remove superfluous
header files directory variable.
2004-10-16 David Ayers <d.ayers@inode.at>
* EOInterface/EOActionAssociation.h/m: New files.

View file

@ -0,0 +1,67 @@
/**
EOActionCellAssociation.m
Copyright (C) 2004 Free Software Foundation, Inc.
Author: David Ayers <d.ayers@inode.at>
This file is part of the GNUstep Database Library
The GNUstep Database Library is free software; you can redistribute it
and/or modify it under the terms of the GNU Lesser General Public License
as published by the Free Software Foundation; either version 2,
or (at your option) any later version.
The GNUstep Database Library is distributed in the hope that it will be
useful, but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
Lesser General Public License for more details.
You should have received a copy of the GNU Lesser General Public License
along with the GNUstep Database Library; see the file COPYING. If not,
write to the Free Software Foundation, Inc.,
59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
*/
#ifdef GNUSTEP
#include <Foundation/NSString.h>
#include <Foundation/NSArray.h>
#include <AppKit/NSActionCell.h>
#else
#include <Foundation/Foundation.h>
#include <AppKit/AppKit.h>
#endif
#include "EOControlAssociation.h"
@implementation EOActionCellAssociation : EOGenericControlAssociation
+ (BOOL)isUsableWithObject: (id)object
{
return [object isKindOfClass: [NSActionCell class]];
}
+ (NSString *)displayName
{
return @"EOCellAssoc";
}
- (void)establishConnection
{
}
- (void)breakConnection
{
}
- (NSControl *)control
{
return [self object];
}
- (EOGenericControlAssociation *)editingAssociation
{
return nil;
}
@end

View file

@ -0,0 +1,85 @@
/** -*-ObjC-*-
EOComboBoxAssociation.h
Copyright (C) 2004 Free Software Foundation, Inc.
Author: David Ayers <d.ayers@inode.at>
This file is part of the GNUstep Database Library
The GNUstep Database Library is free software; you can redistribute it
and/or modify it under the terms of the GNU Lesser General Public License
as published by the Free Software Foundation; either version 2,
or (at your option) any later version.
The GNUstep Database Library is distributed in the hope that it will be
useful, but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
Lesser General Public License for more details.
You should have received a copy of the GNU Lesser General Public License
along with the GNUstep Database Library; see the file COPYING. If not,
write to the Free Software Foundation, Inc.,
59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
*/
#ifndef __EOInterface_EOComboBoxAssociation_h__
#define __EOInterface_EOComboBoxAssociation_h__
#ifdef GNUSTEP
#include <Foundation/NSObject.h>
#else
#include <Foundation/Foundation.h>
#endif
#include <EOInterface/EOAssociation.h>
@class NSString;
@class NSArray;
@class NSNotification;
@class NSComboBox;
@interface EOComboBoxAssociation : EOAssociation
{
}
/* Defining capabilities of concete class. */
+ (NSArray *)aspects;
+ (NSArray *)aspectSignatures;
+ (NSArray *)objectKeysTaken;
+ (BOOL)isUsableWithObject: (id)object;
+ (NSArray *)associationClassesSuperseded;
+ (NSString *)displayName;
+ (NSString *)primaryAspect;
/* Creation and configuration. */
- (void)establishConnection;
- (void)breakConnection;
/* Display object value manipulation. */
- (void)subjectChanged;
- (BOOL)endEditing;
/* NSComboBox data source. */
- (int)numberOfItemsInComboBox: (NSComboBox *)comboBox;
- (id)comboBox: (NSComboBox *)comboBox objectValueForItemAtIndex: (int)index;
- (unsigned int)comboBox: (NSComboBox *)comboBox
indexOfItemWithStringValue: (NSString *)stringValue;
- (NSString *)comboBox: (NSComboBox *)comboBox
completedString: (NSString *)string;
/* NSComboBox delegate methods. */
- (void)comboBoxWillPopUp: (NSNotification *)notification;
- (void)comboBoxWillDismiss: (NSNotification *)notification;
- (void)comboBoxSelectionDidChange: (NSNotification *)notification;
- (void)comboBoxSelectionIsChanging: (NSNotification *)notification;
@end
#endif

View file

@ -0,0 +1,155 @@
/**
EOComboBoxAssociation.m
Copyright (C) 2004 Free Software Foundation, Inc.
Author: David Ayers <d.ayers@inode.at>
This file is part of the GNUstep Database Library
The GNUstep Database Library is free software; you can redistribute it
and/or modify it under the terms of the GNU Lesser General Public License
as published by the Free Software Foundation; either version 2,
or (at your option) any later version.
The GNUstep Database Library is distributed in the hope that it will be
useful, but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
Lesser General Public License for more details.
You should have received a copy of the GNU Lesser General Public License
along with the GNUstep Database Library; see the file COPYING. If not,
write to the Free Software Foundation, Inc.,
59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
*/
#ifdef GNUSTEP
#include <Foundation/NSString.h>
#include <Foundation/NSArray.h>
#include <Foundation/NSString.h>
#include <Foundation/NSNotification.h>
#include <AppKit/NSComboBox.h>
#else
#include <Foundation/Foundation.h>
#endif
#include "EOControlAssociation.h"
#include "EOComboBoxAssociation.h"
@implementation EOComboBoxAssociation
+ (NSArray *)aspects
{
static NSArray *_aspects = nil;
if (_aspects == nil)
{
NSArray *arr = [NSArray arrayWithObjects:
@"titles", @"selectedTitle", @"selectedObject",
@"enabled", nil];
_aspects = RETAIN ([[super aspects] arrayByAddingObjectsFromArray: arr]);
}
return _aspects;
}
+ (NSArray *)aspectSignatures
{
static NSArray *_signatures = nil;
if (_signatures == nil)
{
NSArray *arr = [NSArray arrayWithObjects:
@"A", @"A", @"1", @"A", nil];
arr = [[super aspectSignatures] arrayByAddingObjectsFromArray: arr];
_signatures = RETAIN(arr);
}
return _signatures;
}
+ (NSArray *)objectKeysTaken
{
static NSArray *_keys = nil;
if (_keys == nil)
{
NSArray *arr = [NSArray arrayWithObjects:
@"target", @"dataSource", @"delegate", nil];
arr = [[super objectKeysTaken] arrayByAddingObjectsFromArray: arr];
_keys = RETAIN (arr);
}
return _keys;
}
+ (BOOL)isUsableWithObject: (id)object
{
return [object isKindOfClass: [NSComboBox class]];
}
+ (NSArray *)associationClassesSuperseded
{
static NSArray *_classes = nil;
if (_classes == nil)
{
_classes
= RETAIN ([[super associationClassesSuperseded]
arrayByAddingObject: [EOControlAssociation class]]);
}
return _classes;
}
+ (NSString *)displayName
{
return @"EOComboAssoc";
}
+ (NSString *)primaryAspect
{
return @"selectedTitle";
}
- (void)establishConnection
{
}
- (void)breakConnection
{
}
- (void)subjectChanged
{
}
- (BOOL)endEditing
{
return NO;
}
- (int)numberOfItemsInComboBox: (NSComboBox *)comboBox
{
return 0;
}
- (id)comboBox: (NSComboBox *)comboBox objectValueForItemAtIndex: (int)index
{
return nil;
}
- (unsigned int)comboBox: (NSComboBox *)comboBox
indexOfItemWithStringValue: (NSString *)stringValue
{
return 0;
}
- (NSString *)comboBox: (NSComboBox *)comboBox
completedString: (NSString *)string
{
return nil;
}
- (void)comboBoxWillPopUp: (NSNotification *)notification
{
}
- (void)comboBoxWillDismiss: (NSNotification *)notification
{
}
- (void)comboBoxSelectionDidChange: (NSNotification *)notification
{
}
- (void)comboBoxSelectionIsChanging: (NSNotification *)notification
{
}
@end

View file

@ -0,0 +1,130 @@
/** -*-ObjC-*-
EOControlAssociation.h
Copyright (C) 2004 Free Software Foundation, Inc.
Author: David Ayers <d.ayers@inode.at>
This file is part of the GNUstep Database Library
The GNUstep Database Library is free software; you can redistribute it
and/or modify it under the terms of the GNU Lesser General Public License
as published by the Free Software Foundation; either version 2,
or (at your option) any later version.
The GNUstep Database Library is distributed in the hope that it will be
useful, but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
Lesser General Public License for more details.
You should have received a copy of the GNU Lesser General Public License
along with the GNUstep Database Library; see the file COPYING. If not,
write to the Free Software Foundation, Inc.,
59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
*/
#ifndef __EOInterface_EOControlAssociation_h__
#define __EOInterface_EOControlAssociation_h__
#ifdef GNUSTEP
#include <AppKit/NSImage.h>
#else
#include <AppKit/AppKit.h>
#endif
#include <EOInterface/EOAssociation.h>
#include <EOInterface/EOAssociation.h>
@class NSString;
@class NSArray;
@class NSControl;
@class NSText;
@interface EOGenericControlAssociation : EOAssociation
{
BOOL _didChange;
id _lastValue;
}
/* Defining capabilities of concete class. */
+ (NSArray *)aspects;
+ (NSArray *)aspectSignatures;
+ (NSArray *)objectKeysTaken;
+ (BOOL)isUsableWithObject: (id)object;
/* Creation and configuration. */
- (void)establishConnection;
- (void)breakConnection;
/* Display object value manipulation. */
- (void)subjectChanged;
- (BOOL)endEditing;
/* EOControlAssociation methods. */
- (NSControl *)control;
- (EOGenericControlAssociation *)editingAssociation;
/* NSControl delegate methods. */
- (BOOL)control: (NSControl *)control
didFailToFormatString: (NSString *)string
errorDescription: (NSString *)description;
- (BOOL)control: (NSControl *)control
isValidObject: (id)object;
- (BOOL)control: (NSControl *)control
textShouldBeginEditing: (NSText *)fieldEditor;
@end
@interface EOControlAssociation : EOGenericControlAssociation
{
}
/* Defining capabilities of concete class. */
+ (BOOL)isUsableWithObject: (id)object;
+ (NSString *)displayName;
/* Creation and configuration. */
- (void)establishConnection;
- (void)breakConnection;
/* EOControlAssociation methods */
- (NSControl *)control;
- (EOGenericControlAssociation *)editingAssociation;
@end
@interface EOActionCellAssociation : EOGenericControlAssociation
{
}
/* Defining capabilities of concete class. */
+ (BOOL)isUsableWithObject: (id)object;
+ (NSString *)displayName;
/* Creation and configuration. */
- (void)establishConnection;
- (void)breakConnection;
/* EOActionCellAssociation methods */
- (NSControl *)control;
- (EOGenericControlAssociation *)editingAssociation;
@end
@interface NSImage (EOImageFactory)
+ (id)imageWithData:(NSData *)data;
@end
#endif

View file

@ -0,0 +1,66 @@
/**
EOControlAssociation.m
Copyright (C) 2004 Free Software Foundation, Inc.
Author: David Ayers <d.ayers@inode.at>
This file is part of the GNUstep Database Library
The GNUstep Database Library is free software; you can redistribute it
and/or modify it under the terms of the GNU Lesser General Public License
as published by the Free Software Foundation; either version 2,
or (at your option) any later version.
The GNUstep Database Library is distributed in the hope that it will be
useful, but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
Lesser General Public License for more details.
You should have received a copy of the GNU Lesser General Public License
along with the GNUstep Database Library; see the file COPYING. If not,
write to the Free Software Foundation, Inc.,
59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
*/
#ifdef GNUSTEP
#include <Foundation/NSString.h>
#include <AppKit/NSControl.h>
#else
#include <Foundation/Foundation.h>
#include <AppKit/AppKit.h>
#endif
#include "EOControlAssociation.h"
@implementation EOControlAssociation : EOGenericControlAssociation
+ (BOOL)isUsableWithObject: (id)object
{
return [object isKindOfClass: [NSControl class]];
}
+ (NSString *)displayName
{
return @"EOControlAssoc";
}
- (void)establishConnection
{
}
- (void)breakConnection
{
}
- (NSControl *)control
{
return [self object];
}
- (EOGenericControlAssociation *)editingAssociation
{
return nil;
}
@end

View file

@ -0,0 +1,124 @@
/**
EOGenericControlAssociation.h
Copyright (C) 2004 Free Software Foundation, Inc.
Author: David Ayers <d.ayers@inode.at>
This file is part of the GNUstep Database Library
The GNUstep Database Library is free software; you can redistribute it
and/or modify it under the terms of the GNU Lesser General Public License
as published by the Free Software Foundation; either version 2,
or (at your option) any later version.
The GNUstep Database Library is distributed in the hope that it will be
useful, but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
Lesser General Public License for more details.
You should have received a copy of the GNU Lesser General Public License
along with the GNUstep Database Library; see the file COPYING. If not,
write to the Free Software Foundation, Inc.,
59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
*/
#ifdef GNUSTEP
#include <Foundation/NSString.h>
#include <Foundation/NSArray.h>
#include <AppKit/NSControl.h>
#include <AppKit/NSText.h>
#else
#include <Foundation/Foundation.h>
#include <AppKit/AppKit.h>
#endif
#include "EOControlAssociation.h"
@implementation EOGenericControlAssociation
+ (NSArray *)aspects
{
static NSArray *_aspects = nil;
if (_aspects == nil)
{
NSArray *arr = [NSArray arrayWithObjects:
@"value", @"enabled", @"URL", nil];
_aspects = RETAIN ([[super aspects] arrayByAddingObjectsFromArray: arr]);
}
return _aspects;
}
+ (NSArray *)aspectSignatures
{
static NSArray *_signatures = nil;
if (_signatures == nil)
{
NSArray *arr = [NSArray arrayWithObjects:
@"A", @"A", @"A", nil];
arr = [[super aspectSignatures] arrayByAddingObjectsFromArray: arr];
_signatures = RETAIN(arr);
}
return _signatures;
}
+ (NSArray *)objectKeysTaken
{
static NSArray *_keys = nil;
if (_keys == nil)
{
_keys = [[NSArray alloc] initWithObject: @"delegate"];
}
return _keys;
}
+ (BOOL)isUsableWithObject: (id)object
{
return NO;
}
- (void)establishConnection
{
}
- (void)breakConnection
{
}
- (void)subjectChanged
{
}
- (BOOL)endEditing
{
return NO;
}
- (NSControl *)control
{
return nil;
}
- (EOGenericControlAssociation *)editingAssociation
{
return nil;
}
- (BOOL)control: (NSControl *)control
didFailToFormatString: (NSString *)string
errorDescription: (NSString *)description
{
return NO;
}
- (BOOL)control: (NSControl *)control
isValidObject: (id)object
{
return NO;
}
- (BOOL)control: (NSControl *)control
textShouldBeginEditing: (NSText *)fieldEditor
{
return NO;
}
@end

View file

@ -31,6 +31,8 @@
#include <EOInterface/EOActionInsertionAssociation.h>
#include <EOInterface/EOAssociation.h>
#include <EOInterface/EOColumnAssociation.h>
#include <EOInterface/EOComboBoxAssociation.h>
#include <EOInterface/EOControlAssociation.h>
#include <EOInterface/EODisplayGroup.h>
#endif /* __EOInterface_h__ */

View file

@ -35,20 +35,24 @@ EOInterface_C_FILES =
# The Objective-C source files to be compiled
EOInterface_OBJC_FILES = \
EOActionAssociation.m \
EOActionCellAssociation.m \
EOActionInsertionAssociation.m \
EOAssociation.m \
EOColumnAssociation.m \
EOComboBoxAssociation.m \
EOControlAssociation.m \
EODisplayGroup.m \
EOGenericControlAssociation.m \
EOTableViewAssociation.m \
EOInterface_HEADER_FILES_DIR = .
NSImage+Additions.m
EOInterface_HEADER_FILES = \
EOActionAssociation.h \
EOActionInsertionAssociation.h \
EOAssociation.h \
EOColumnAssociation.h \
EOComboBoxAssociation.h \
EOControlAssociation.h \
EODisplayGroup.h \
EOInterface.h

View file

@ -0,0 +1,35 @@
/**
NSImage+Additions.m
Copyright (C) 2004 Free Software Foundation, Inc.
Author: David Ayers <d.ayers@inode.at>
This file is part of the GNUstep Database Library
The GNUstep Database Library is free software; you can redistribute it
and/or modify it under the terms of the GNU Lesser General Public License
as published by the Free Software Foundation; either version 2,
or (at your option) any later version.
The GNUstep Database Library is distributed in the hope that it will be
useful, but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
Lesser General Public License for more details.
You should have received a copy of the GNU Lesser General Public License
along with the GNUstep Database Library; see the file COPYING. If not,
write to the Free Software Foundation, Inc.,
59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
*/
#include "EOControlAssociation.h"
@implementation NSImage (EOImageFactory)
+ (id)imageWithData:(NSData *)data
{
return AUTORELEASE([[self alloc] initWithData: data]);
}
@end