Revision: 26014
          http://sourceforge.net/p/bibdesk/svn/26014
Author:   hofman
Date:     2021-05-20 16:00:21 +0000 (Thu, 20 May 2021)
Log Message:
-----------
Add class for array to use in IB

Modified Paths:
--------------
    trunk/bibdesk/Bibdesk.xcodeproj/project.pbxproj

Added Paths:
-----------
    trunk/bibdesk/BDSKIBArray.h
    trunk/bibdesk/BDSKIBArray.m

Added: trunk/bibdesk/BDSKIBArray.h
===================================================================
--- trunk/bibdesk/BDSKIBArray.h                         (rev 0)
+++ trunk/bibdesk/BDSKIBArray.h 2021-05-20 16:00:21 UTC (rev 26014)
@@ -0,0 +1,48 @@
+//
+//  BDSKIBArray.h
+//  BibDesk
+//
+
+/*
+ This software is Copyright (c) 2021
+ Christiaan Hofman. All rights reserved.
+ 
+ Redistribution and use in source and binary forms, with or without
+ modification, are permitted provided that the following conditions
+ are met:
+ 
+ - Redistributions of source code must retain the above copyright
+ notice, this list of conditions and the following disclaimer.
+ 
+ - Redistributions in binary form must reproduce the above copyright
+ notice, this list of conditions and the following disclaimer in
+ the documentation and/or other materials provided with the
+ distribution.
+ 
+ - Neither the name of Christiaan Hofman nor the names of any
+ contributors may be used to endorse or promote products derived
+ from this software without specific prior written permission.
+ 
+ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+ "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+ LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+ A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+ OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+ SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+ LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+ DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+ THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+ OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#import <Cocoa/Cocoa.h>
+
+ 
+@interface BDSKIBArray : NSArray {
+    id object[9];
+    unsigned long mutations;
+    
+}
+@property (nonatomic, retain) IBOutlet id object1, object2, object3, object4, 
object5, object6, object7, object8, object9;
+@end

Added: trunk/bibdesk/BDSKIBArray.m
===================================================================
--- trunk/bibdesk/BDSKIBArray.m                         (rev 0)
+++ trunk/bibdesk/BDSKIBArray.m 2021-05-20 16:00:21 UTC (rev 26014)
@@ -0,0 +1,94 @@
+//
+//  BDSKIBArray.m
+//  BibDesk
+//
+//  Created by Christiaan Hofman on 20/05/2021.
+/*
+ This software is Copyright (c) 2021
+ Christiaan Hofman. All rights reserved.
+ 
+ Redistribution and use in source and binary forms, with or without
+ modification, are permitted provided that the following conditions
+ are met:
+ 
+ - Redistributions of source code must retain the above copyright
+ notice, this list of conditions and the following disclaimer.
+ 
+ - Redistributions in binary form must reproduce the above copyright
+ notice, this list of conditions and the following disclaimer in
+ the documentation and/or other materials provided with the
+ distribution.
+ 
+ - Neither the name of Christiaan Hofman nor the names of any
+ contributors may be used to endorse or promote products derived
+ from this software without specific prior written permission.
+ 
+ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+ "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+ LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+ A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+ OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+ SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+ LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+ DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+ THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+ OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#import "BDSKIBArray.h"
+
+@implementation BDSKIBArray
+
+static void setObjectAtIndex(id *object, id obj, NSUInteger i, unsigned long 
*mutationsPtr) {
+    if (object[i] != obj) {
+        [object[i] release];
+        object[i] = [obj retain];
+        (*mutationsPtr)++;
+    }
+}
+
+#define SYNTHESIZE_OBJECT_ACCESSORS(i) \
+@dynamic object##i; \
+- (id)object##i { return object[i-1]; } \
+- (void)setObject##i:(id)obj { setObjectAtIndex(object, obj, i-1, &mutations); 
}
+
+SYNTHESIZE_OBJECT_ACCESSORS(1)
+SYNTHESIZE_OBJECT_ACCESSORS(2)
+SYNTHESIZE_OBJECT_ACCESSORS(3)
+SYNTHESIZE_OBJECT_ACCESSORS(4)
+SYNTHESIZE_OBJECT_ACCESSORS(5)
+SYNTHESIZE_OBJECT_ACCESSORS(6)
+SYNTHESIZE_OBJECT_ACCESSORS(7)
+SYNTHESIZE_OBJECT_ACCESSORS(8)
+SYNTHESIZE_OBJECT_ACCESSORS(9)
+
+- (void)dealloc {
+    NSUInteger i;
+    for (i = 0; i < 9; i++)
+        setObjectAtIndex(object, nil, i, &mutations);
+    [super dealloc];
+}
+
+- (NSUInteger)count {
+    NSUInteger i;
+    for (i = 0; i < 9; i++)
+        if (object[i] == nil) break;
+    return i;
+}
+
+- (id)objectAtIndex:(NSUInteger)anIndex {
+    return object[anIndex];
+}
+
+- (NSUInteger)countByEnumeratingWithState:(NSFastEnumerationState *)state 
objects:(id *)stackbuf count:(NSUInteger)len {
+    if (state->state == 0) {
+        state->state = 1;
+        state->itemsPtr = object;
+        state->mutationsPtr = &mutations;
+        return [self count];
+    }
+    return 0;
+}
+
+@end

Modified: trunk/bibdesk/Bibdesk.xcodeproj/project.pbxproj
===================================================================
--- trunk/bibdesk/Bibdesk.xcodeproj/project.pbxproj     2021-05-20 06:31:20 UTC 
(rev 26013)
+++ trunk/bibdesk/Bibdesk.xcodeproj/project.pbxproj     2021-05-20 16:00:21 UTC 
(rev 26014)
@@ -88,6 +88,8 @@
                CE0D24C9215A84F3001A3F47 /* NSScriptCommand_BDSKExtensions.m in 
Sources */ = {isa = PBXBuildFile; fileRef = CE0D24C7215A84F3001A3F47 /* 
NSScriptCommand_BDSKExtensions.m */; };
                CE0EB4440DCFDE8A0034DF92 /* NSInvocation_BDSKExtensions.m in 
Sources */ = {isa = PBXBuildFile; fileRef = CE0EB4420DCFDE8A0034DF92 /* 
NSInvocation_BDSKExtensions.m */; };
                CE0ECDAB0DE78619006EEDDB /* BDSKInspireParser.m in Sources */ = 
{isa = PBXBuildFile; fileRef = CE0ECDA90DE78619006EEDDB /* BDSKInspireParser.m 
*/; };
+               CE0F91592656BE0800057A98 /* BDSKIBArray.h in Headers */ = {isa 
= PBXBuildFile; fileRef = CE0F91572656BE0800057A98 /* BDSKIBArray.h */; };
+               CE0F915A2656BE0800057A98 /* BDSKIBArray.m in Sources */ = {isa 
= PBXBuildFile; fileRef = CE0F91582656BE0800057A98 /* BDSKIBArray.m */; };
                CE11A2B40AE662EB008C47AC /* BDSKTextViewCompletionController.m 
in Sources */ = {isa = PBXBuildFile; fileRef = F98AA6800971E3F400184BD8 /* 
BDSKTextViewCompletionController.m */; };
                CE11AC0B0AE7E0DC008C47AC /* BDSKScriptGroup.m in Sources */ = 
{isa = PBXBuildFile; fileRef = CE11AC090AE7E0DC008C47AC /* BDSKScriptGroup.m 
*/; };
                CE11B0060AE8FD53008C47AC /* scriptGroup.tiff in Resources */ = 
{isa = PBXBuildFile; fileRef = CE11B0050AE8FD53008C47AC /* scriptGroup.tiff */; 
};
@@ -1317,6 +1319,8 @@
                CE0EB4420DCFDE8A0034DF92 /* NSInvocation_BDSKExtensions.m */ = 
{isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = 
sourcecode.c.objc; path = NSInvocation_BDSKExtensions.m; sourceTree = 
"<group>"; };
                CE0ECDA80DE78619006EEDDB /* BDSKInspireParser.h */ = {isa = 
PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = 
BDSKInspireParser.h; sourceTree = "<group>"; };
                CE0ECDA90DE78619006EEDDB /* BDSKInspireParser.m */ = {isa = 
PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path 
= BDSKInspireParser.m; sourceTree = "<group>"; };
+               CE0F91572656BE0800057A98 /* BDSKIBArray.h */ = {isa = 
PBXFileReference; lastKnownFileType = sourcecode.c.h; path = BDSKIBArray.h; 
sourceTree = "<group>"; };
+               CE0F91582656BE0800057A98 /* BDSKIBArray.m */ = {isa = 
PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = BDSKIBArray.m; 
sourceTree = "<group>"; };
                CE11AC080AE7E0DC008C47AC /* BDSKScriptGroup.h */ = {isa = 
PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = 
BDSKScriptGroup.h; sourceTree = "<group>"; };
                CE11AC090AE7E0DC008C47AC /* BDSKScriptGroup.m */ = {isa = 
PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path 
= BDSKScriptGroup.m; sourceTree = "<group>"; };
                CE11B0050AE8FD53008C47AC /* scriptGroup.tiff */ = {isa = 
PBXFileReference; lastKnownFileType = image.tiff; path = scriptGroup.tiff; 
sourceTree = "<group>"; };
@@ -2742,6 +2746,7 @@
                                F925352808FDFAE40045D563 /* 
BDSKFileSearchResult.m */,
                                CE38FB8B091D94A100BCB69D /* BDSKFilter.m */,
                                CEEFE6C00B0403E700668BB0 /* BDSKGroupsArray.m 
*/,
+                               CE0F91582656BE0800057A98 /* BDSKIBArray.m */,
                                F911D7110CFE90050009C77B /* BDSKLinkedFile.m */,
                                F94DE74A09CB46FF00B5FD51 /* 
BDSKPersistentSearch.m */,
                                CEDBDE4A0F4C863500190AF5 /* 
BDSKPreferenceRecord.m */,
@@ -3240,6 +3245,7 @@
                                CE80A8730FDAB27D0086A46C /* 
BDSKHighlightingPopUpButton.h */,
                                45DB3E8C0CAAFED5001EACDA /* BDSKHubmedParser.h 
*/,
                                CD6295331140DE03002E4751 /* BDSKIACRParser.h */,
+                               CE0F91572656BE0800057A98 /* BDSKIBArray.h */,
                                454AC23B1086E07B00F2890A /* 
BDSKIEEEXploreParser.h */,
                                CE3B682609D1B0190017D339 /* 
BDSKImagePopUpButton.h */,
                                CE3B682809D1B0190017D339 /* 
BDSKImagePopUpButtonCell.h */,
@@ -3710,6 +3716,7 @@
                                CE2A09CA2245997A00A8F31C /* BDSKCFCallBacks.h 
in Headers */,
                                CE2A0A1C224599EF00A8F31C /* BDSKInspireParser.h 
in Headers */,
                                CE2A09F4224599E100A8F31C /* 
BDSKFieldCollection.h in Headers */,
+                               CE0F91592656BE0800057A98 /* BDSKIBArray.h in 
Headers */,
                                CE2A0AD122459A4B00A8F31C /* 
NSFont_BDSKExtensions.h in Headers */,
                                CE2A0A6722459A0A00A8F31C /* BDSKSearchGroup.h 
in Headers */,
                                CE2A09F3224599E100A8F31C /* BDSKField.h in 
Headers */,
@@ -4738,6 +4745,7 @@
                                45DB3E500CAADFC3001EACDA /* 
BDSKCiteULikeParser.m in Sources */,
                                45DB3E520CAADFC3001EACDA /* 
NSXMLNode_BDSKExtensions.m in Sources */,
                                45DB3E8F0CAAFED5001EACDA /* BDSKHubmedParser.m 
in Sources */,
+                               CE0F915A2656BE0800057A98 /* BDSKIBArray.m in 
Sources */,
                                45BB77540CAC74AE00F6299B /* 
BDSKGoogleScholarParser.m in Sources */,
                                CE89618A0CBEB59800EA2D98 /* BDSKToken.m in 
Sources */,
                                CE89618C0CBEB59800EA2D98 /* BDSKTypeTemplate.m 
in Sources */,

This was sent by the SourceForge.net collaborative development platform, the 
world's largest Open Source development site.



_______________________________________________
Bibdesk-commit mailing list
Bibdesk-commit@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/bibdesk-commit

Reply via email to