summaryrefslogtreecommitdiff
path: root/src/common/StyleManager.m
diff options
context:
space:
mode:
Diffstat (limited to 'src/common/StyleManager.m')
-rw-r--r--src/common/StyleManager.m339
1 files changed, 0 insertions, 339 deletions
diff --git a/src/common/StyleManager.m b/src/common/StyleManager.m
deleted file mode 100644
index b5348c6..0000000
--- a/src/common/StyleManager.m
+++ /dev/null
@@ -1,339 +0,0 @@
-/*
- * Copyright 2011 Alex Merry <dev@randomguy3.me.uk>
- *
- * This program is free software; you can redistribute it and/or
- * modify it under the terms of the GNU General Public License as
- * published by the Free Software Foundation; either version 2 of
- * the License, or (at your option) any later version.
- *
- * This program 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 General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program. If not, see <http://www.gnu.org/licenses/>.
- */
-
-#import "StyleManager.h"
-
-@implementation StyleManager
-
-- (void) nodeStylePropertyChanged:(NSNotification*)n {
- if ([[[n userInfo] objectForKey:@"propertyName"] isEqual:@"name"]) {
- NSDictionary *userInfo;
- userInfo = [NSDictionary dictionaryWithObjectsAndKeys:
- [n object], @"style",
- [[n userInfo] objectForKey:@"oldValue"], @"oldName",
- nil];
- [[NSNotificationCenter defaultCenter] postNotificationName:@"NodeStyleRenamed"
- object:self
- userInfo:userInfo];
- }
-}
-
-- (void) ignoreAllNodeStyles {
- [[NSNotificationCenter defaultCenter]
- removeObserver:self
- name:@"NodeStylePropertyChanged"
- object:nil];
-}
-
-- (void) ignoreNodeStyle:(NodeStyle*)style {
- [[NSNotificationCenter defaultCenter]
- removeObserver:self
- name:@"NodeStylePropertyChanged"
- object:style];
-}
-
-- (void) listenToNodeStyle:(NodeStyle*)style {
- [[NSNotificationCenter defaultCenter]
- addObserver:self
- selector:@selector(nodeStylePropertyChanged:)
- name:@"NodeStylePropertyChanged"
- object:style];
-}
-
-- (void) edgeStylePropertyChanged:(NSNotification*)n {
- if ([[[n userInfo] objectForKey:@"propertyName"] isEqual:@"name"]) {
- NSDictionary *userInfo;
- userInfo = [NSDictionary dictionaryWithObjectsAndKeys:
- [n object], @"style",
- [[n userInfo] objectForKey:@"oldValue"], @"oldName",
- nil];
- [[NSNotificationCenter defaultCenter] postNotificationName:@"EdgeStyleRenamed"
- object:self
- userInfo:userInfo];
- }
-}
-
-- (void) ignoreAllEdgeStyles {
- [[NSNotificationCenter defaultCenter]
- removeObserver:self
- name:@"EdgeStylePropertyChanged"
- object:nil];
-}
-
-- (void) ignoreEdgeStyle:(EdgeStyle*)style {
- [[NSNotificationCenter defaultCenter]
- removeObserver:self
- name:@"EdgeStylePropertyChanged"
- object:style];
-}
-
-- (void) listenToEdgeStyle:(EdgeStyle*)style {
- [[NSNotificationCenter defaultCenter]
- addObserver:self
- selector:@selector(edgeStylePropertyChanged:)
- name:@"EdgeStylePropertyChanged"
- object:style];
-}
-
-+ (StyleManager*) manager {
- return [[[self alloc] init] autorelease];
-}
-
-- (id) init {
- self = [super init];
-
- if (self) {
- // we lazily load the default styles, since they may not be needed
- nodeStyles = nil;
- activeNodeStyle = nil;
- edgeStyles = nil;
- activeEdgeStyle = nil;
- }
-
- return self;
-}
-
-- (void) dealloc {
- [[NSNotificationCenter defaultCenter] removeObserver:self];
-
- [nodeStyles release];
- [edgeStyles release];
-
- [super dealloc];
-}
-
-- (void) loadDefaultEdgeStyles {
-}
-
-- (void) loadDefaultNodeStyles {
- [nodeStyles release];
- nodeStyles = [[NSMutableArray alloc] initWithCapacity:3];
-
- NodeStyle *rn = [NodeStyle defaultNodeStyleWithName:@"rn"];
- [rn setStrokeThickness:2];
- [rn setStrokeColorRGB:[ColorRGB colorWithFloatRed:0 green:0 blue:0]];
- [rn setFillColorRGB:[ColorRGB colorWithFloatRed:1 green:0 blue:0]];
- [self listenToNodeStyle:rn];
-
- NodeStyle *gn = [NodeStyle defaultNodeStyleWithName:@"gn"];
- [gn setStrokeThickness:2];
- [gn setStrokeColorRGB:[ColorRGB colorWithFloatRed:0 green:0 blue:0]];
- [gn setFillColorRGB:[ColorRGB colorWithFloatRed:0 green:1 blue:0]];
- [self listenToNodeStyle:gn];
-
- NodeStyle *yn = [NodeStyle defaultNodeStyleWithName:@"yn"];
- [yn setStrokeThickness:2];
- [yn setStrokeColorRGB:[ColorRGB colorWithFloatRed:0 green:0 blue:0]];
- [yn setFillColorRGB:[ColorRGB colorWithFloatRed:1 green:1 blue:0]];
- [self listenToNodeStyle:yn];
-
- [nodeStyles addObject:rn];
- [nodeStyles addObject:gn];
- [nodeStyles addObject:yn];
-}
-
-- (void) postNodeStyleAdded:(NodeStyle*)style {
- [[NSNotificationCenter defaultCenter] postNotificationName:@"NodeStyleAdded"
- object:self
- userInfo:[NSDictionary dictionaryWithObject:style forKey:@"style"]];
-}
-
-- (void) postNodeStyleRemoved:(NodeStyle*)style {
- [[NSNotificationCenter defaultCenter] postNotificationName:@"NodeStyleRemoved"
- object:self
- userInfo:[NSDictionary dictionaryWithObject:style forKey:@"style"]];
-}
-
-- (void) postEdgeStyleAdded:(EdgeStyle*)style {
- [[NSNotificationCenter defaultCenter] postNotificationName:@"EdgeStyleAdded"
- object:self
- userInfo:[NSDictionary dictionaryWithObject:style forKey:@"style"]];
-}
-
-- (void) postEdgeStyleRemoved:(EdgeStyle*)style {
- [[NSNotificationCenter defaultCenter] postNotificationName:@"EdgeStyleRemoved"
- object:self
- userInfo:[NSDictionary dictionaryWithObject:style forKey:@"style"]];
-}
-
-- (void) postNodeStylesReplaced {
- [[NSNotificationCenter defaultCenter] postNotificationName:@"NodeStylesReplaced" object:self];
-}
-
-- (void) postEdgeStylesReplaced {
- [[NSNotificationCenter defaultCenter] postNotificationName:@"EdgeStylesReplaced" object:self];
-}
-
-- (void) postActiveNodeStyleChanged {
- [[NSNotificationCenter defaultCenter] postNotificationName:@"ActiveNodeStyleChanged" object:self];
-}
-
-- (void) postActiveEdgeStyleChanged {
- [[NSNotificationCenter defaultCenter] postNotificationName:@"ActiveEdgeStyleChanged" object:self];
-}
-
-- (NSArray*) nodeStyles {
- if (nodeStyles == nil) {
- [self loadDefaultNodeStyles];
- }
- return nodeStyles;
-}
-
-- (NSArray*) edgeStyles {
- if (edgeStyles == nil) {
- [self loadDefaultEdgeStyles];
- }
- return edgeStyles;
-}
-
-- (void) _setNodeStyles:(NSMutableArray*)styles {
- [self ignoreAllNodeStyles];
- [nodeStyles release];
- [styles retain];
- nodeStyles = styles;
- NodeStyle *oldActiveStyle = activeNodeStyle;
- activeNodeStyle = nil;
- for (NodeStyle *style in styles) {
- [self listenToNodeStyle:style];
- }
- [self postNodeStylesReplaced];
- if (oldActiveStyle != activeNodeStyle) {
- [self postActiveNodeStyleChanged];
- }
-}
-
-- (void) _setEdgeStyles:(NSMutableArray*)styles {
- [self ignoreAllEdgeStyles];
- [edgeStyles release];
- [styles retain];
- edgeStyles = styles;
- EdgeStyle *oldActiveStyle = activeEdgeStyle;
- activeEdgeStyle = nil;
- for (EdgeStyle *style in styles) {
- [self listenToEdgeStyle:style];
- }
- [self postEdgeStylesReplaced];
- if (oldActiveStyle != activeEdgeStyle) {
- [self postActiveEdgeStyleChanged];
- }
-}
-
-- (NodeStyle*) activeNodeStyle {
- if (nodeStyles == nil) {
- [self loadDefaultNodeStyles];
- }
- return activeNodeStyle;
-}
-
-- (void) setActiveNodeStyle:(NodeStyle*)style {
- if (style == activeNodeStyle) {
- return;
- }
- if (style == nil || [nodeStyles containsObject:style]) {
- activeNodeStyle = style;
- [self postActiveNodeStyleChanged];
- }
-}
-
-- (EdgeStyle*) activeEdgeStyle {
- if (edgeStyles == nil) {
- [self loadDefaultEdgeStyles];
- }
- return activeEdgeStyle;
-}
-
-- (void) setActiveEdgeStyle:(EdgeStyle*)style {
- if (style == activeEdgeStyle) {
- return;
- }
- if (style == nil || [edgeStyles containsObject:style]) {
- activeEdgeStyle = style;
- [self postActiveEdgeStyleChanged];
- }
-}
-
-- (NodeStyle*) nodeStyleForName:(NSString*)name {
- for (NodeStyle *s in nodeStyles) {
- if ([[s name] isEqualToString:name]) {
- return s;
- }
- }
-
- return nil;
-}
-
-- (void) addNodeStyle:(NodeStyle*)style {
- if (nodeStyles == nil) {
- [self loadDefaultNodeStyles];
- }
- [nodeStyles addObject:style];
- [self listenToNodeStyle:style];
- [self postNodeStyleAdded:style];
-}
-
-- (void) removeNodeStyle:(NodeStyle*)style {
- if (nodeStyles == nil) {
- [self loadDefaultNodeStyles];
- }
- if (activeNodeStyle == style) {
- [self setActiveNodeStyle:nil];
- }
-
- [self ignoreNodeStyle:style];
- [style retain];
- [nodeStyles removeObject:style];
- [self postNodeStyleRemoved:style];
- [style release];
-}
-
-- (EdgeStyle*) edgeStyleForName:(NSString*)name {
- for (EdgeStyle *s in edgeStyles) {
- if ([[s name] isEqualToString:name]) {
- return s;
- }
- }
-
- return nil;
-}
-
-- (void) addEdgeStyle:(EdgeStyle*)style {
- if (edgeStyles == nil) {
- [self loadDefaultEdgeStyles];
- }
- [edgeStyles addObject:style];
- [self listenToEdgeStyle:style];
- [self postEdgeStyleAdded:style];
-}
-
-- (void) removeEdgeStyle:(EdgeStyle*)style {
- if (edgeStyles == nil) {
- [self loadDefaultEdgeStyles];
- }
- if (activeEdgeStyle == style) {
- [self setActiveEdgeStyle:nil];
- }
-
- [self ignoreEdgeStyle:style];
- [style retain];
- [edgeStyles removeObject:style];
- [self postEdgeStyleRemoved:style];
- [style release];
-}
-
-@end
-
-// vi:ft=objc:ts=4:noet:sts=4:sw=4