From 367c329fe009056cb30ef81b06c4e20b886432a4 Mon Sep 17 00:00:00 2001
From: glenlow <devnull@localhost>
Date: Mon, 11 Feb 2008 12:34:07 +0000
Subject: [PATCH] Mac tweak panel for graph, default node and default edge
 attributes; objects are graph-centric instead of context-centric

---
 macosx/GVGraphArguments.h | 39 +++++++++++++++++++++++
 macosx/GVGraphArguments.m | 65 +++++++++++++++++++++++++++++++++++++++
 2 files changed, 104 insertions(+)
 create mode 100644 macosx/GVGraphArguments.h
 create mode 100644 macosx/GVGraphArguments.m

diff --git a/macosx/GVGraphArguments.h b/macosx/GVGraphArguments.h
new file mode 100644
index 000000000..269c32dc2
--- /dev/null
+++ b/macosx/GVGraphArguments.h
@@ -0,0 +1,39 @@
+/* $Id$ $Revision$ */
+/* vim:set shiftwidth=4 ts=8: */
+
+/**********************************************************
+*      This software is part of the graphviz package      *
+*                http://www.graphviz.org/                 *
+*                                                         *
+*            Copyright (c) 1994-2008 AT&T Corp.           *
+*                and is licensed under the                *
+*            Common Public License, Version 1.0           *
+*                      by AT&T Corp.                      *
+*                                                         *
+*        Information and Software Systems Research        *
+*              AT&T Research, Florham Park NJ             *
+**********************************************************/
+
+#import <Foundation/Foundation.h>
+
+@class GVGraph;
+
+@interface GVGraphArguments : NSMutableDictionary {
+	GVGraph *_graph;
+	NSMutableDictionary *_arguments;
+}
+
+- (id)initWithGraph:(GVGraph *)graph;
+
+/* dictionary primitive methods */
+- (NSUInteger)count;
+- (NSEnumerator *)keyEnumerator;
+- (id)objectForKey:(id)aKey;
+
+/* mutable dictionary primitive methods */
+- (void)setObject:(id)anObject forKey:(id)aKey;
+- (void)removeObjectForKey:(id)aKey;
+
+- (void)dealloc;
+
+@end
diff --git a/macosx/GVGraphArguments.m b/macosx/GVGraphArguments.m
new file mode 100644
index 000000000..68ef4d3f1
--- /dev/null
+++ b/macosx/GVGraphArguments.m
@@ -0,0 +1,65 @@
+/* $Id$ $Revision$ */
+/* vim:set shiftwidth=4 ts=8: */
+
+/**********************************************************
+*      This software is part of the graphviz package      *
+*                http://www.graphviz.org/                 *
+*                                                         *
+*            Copyright (c) 1994-2008 AT&T Corp.           *
+*                and is licensed under the                *
+*            Common Public License, Version 1.0           *
+*                      by AT&T Corp.                      *
+*                                                         *
+*        Information and Software Systems Research        *
+*              AT&T Research, Florham Park NJ             *
+**********************************************************/
+
+#import "GVGraphArguments.h"
+#import "GVGraph.h"
+
+@implementation GVGraphArguments
+
+- (id)initWithGraph:(GVGraph *)graph
+{
+	if (self = [super init]) {
+		_graph = graph;	/* no retain to avoid a retain cycle */
+		_arguments = [[NSMutableDictionary alloc] init];
+	}
+	return self;
+}
+
+- (NSUInteger)count
+{
+	return [_arguments count];
+}
+
+- (NSEnumerator *)keyEnumerator
+{
+	return [_arguments keyEnumerator];
+}
+
+- (id)objectForKey:(id)aKey
+{
+	return [_arguments objectForKey:aKey];
+}
+
+/* mutable dictionary primitive methods */
+- (void)setObject:(id)anObject forKey:(id)aKey
+{
+	[_arguments setObject:anObject forKey:aKey];
+	[_graph noteChanged:YES];
+}
+
+- (void)removeObjectForKey:(id)aKey
+{
+	[_arguments removeObjectForKey:aKey];
+	[_graph noteChanged:YES];
+}
+
+- (void)dealloc
+{
+	[_arguments release];
+	[super dealloc];
+}
+
+@end
-- 
2.40.0