summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAlex Merry <alex.merry@cs.ox.ac.uk>2012-12-17 16:15:08 +0000
committerAlex Merry <alex.merry@cs.ox.ac.uk>2012-12-17 16:15:08 +0000
commitf75835e188c1bf8010fb7cc18c7526934ff19eba (patch)
tree4dd93765b1f2834bc9b5a5257e435281fa490830
parentbde0c0da1c8d11433d37e905dc9bb4b17e7f6523 (diff)
Use central models for node and edge styles
-rw-r--r--tikzit/src/gtk/Application.m8
-rw-r--r--tikzit/src/gtk/CreateEdgeTool.h5
-rw-r--r--tikzit/src/gtk/CreateEdgeTool.m20
-rw-r--r--tikzit/src/gtk/CreateNodeTool.h5
-rw-r--r--tikzit/src/gtk/CreateNodeTool.m20
5 files changed, 42 insertions, 16 deletions
diff --git a/tikzit/src/gtk/Application.m b/tikzit/src/gtk/Application.m
index 88293a6..1459355 100644
--- a/tikzit/src/gtk/Application.m
+++ b/tikzit/src/gtk/Application.m
@@ -18,6 +18,8 @@
#import "Application.h"
#import "Configuration.h"
+#import "EdgeStylesModel.h"
+#import "NodeStylesModel.h"
#import "PreambleEditor.h"
#import "PropertiesWindow.h"
#import "Shape.h"
@@ -83,6 +85,8 @@ Application* app = nil;
styleManager = [[StyleManager alloc] init];
[styleManager loadStylesUsingConfigurationName:@"styles"]; // FIXME: error message?
+ NodeStylesModel *nsm = [NodeStylesModel modelWithStyleManager:styleManager];
+ EdgeStylesModel *esm = [EdgeStylesModel modelWithStyleManager:styleManager];
#ifdef HAVE_POPPLER
NSString *preamblesDir = [[SupportDir userSupportDir] stringByAppendingPathComponent:@"preambles"];
@@ -105,8 +109,8 @@ Application* app = nil;
tools = [[NSArray alloc] initWithObjects:
[SelectTool tool],
- [CreateNodeTool toolWithStyleManager:styleManager],
- [CreateEdgeTool toolWithStyleManager:styleManager],
+ [CreateNodeTool toolWithNodeStylesModel:nsm],
+ [CreateEdgeTool toolWithEdgeStylesModel:esm],
[BoundingBoxTool tool],
[HandTool tool],
nil];
diff --git a/tikzit/src/gtk/CreateEdgeTool.h b/tikzit/src/gtk/CreateEdgeTool.h
index cb6c73d..d33efce 100644
--- a/tikzit/src/gtk/CreateEdgeTool.h
+++ b/tikzit/src/gtk/CreateEdgeTool.h
@@ -19,13 +19,13 @@
#import "Tool.h"
@class EdgeStyle;
+@class EdgeStylesModel;
@class EdgeStyleSelector;
@class Node;
@class StyleManager;
@interface CreateEdgeTool : NSObject <Tool> {
GraphRenderer *renderer;
- StyleManager *styleManager;
EdgeStyleSelector *stylePicker;
GtkWidget *configWidget;
Node *sourceNode;
@@ -33,11 +33,12 @@
NSPoint halfEdgeEnd;
}
-@property (retain) StyleManager *styleManager;
@property (retain) EdgeStyle *activeStyle;
+ (id) toolWithStyleManager:(StyleManager*)sm;
- (id) initWithStyleManager:(StyleManager*)sm;
++ (id) toolWithEdgeStylesModel:(EdgeStylesModel*)esm;
+- (id) initWithEdgeStylesModel:(EdgeStylesModel*)esm;
@end
diff --git a/tikzit/src/gtk/CreateEdgeTool.m b/tikzit/src/gtk/CreateEdgeTool.m
index d8ca4b1..e34e627 100644
--- a/tikzit/src/gtk/CreateEdgeTool.m
+++ b/tikzit/src/gtk/CreateEdgeTool.m
@@ -19,6 +19,7 @@
#import "Configuration.h"
#import "EdgeStyleSelector.h"
+#import "EdgeStylesModel.h"
#import "GraphRenderer.h"
#import "TikzDocument.h"
#import "tzstockitems.h"
@@ -29,24 +30,30 @@
- (NSString*) helpText { return @"Create new edges"; }
- (NSString*) shortcut { return @"e"; }
@synthesize activeRenderer=renderer;
-@synthesize styleManager;
@synthesize configurationWidget=configWidget;
+ (id) toolWithStyleManager:(StyleManager*)sm {
return [[[self alloc] initWithStyleManager:sm] autorelease];
}
++ (id) toolWithEdgeStylesModel:(EdgeStylesModel*)esm {
+ return [[[self alloc] initWithEdgeStylesModel:esm] autorelease];
+}
+
- (id) init {
[self release];
return nil;
}
- (id) initWithStyleManager:(StyleManager*)sm {
+ return [self initWithEdgeStylesModel:[EdgeStylesModel modelWithStyleManager:sm]];
+}
+
+- (id) initWithEdgeStylesModel:(EdgeStylesModel*)esm {
self = [super init];
if (self) {
- styleManager = [sm retain];
- stylePicker = [[EdgeStyleSelector alloc] initWithStyleManager:sm];
+ stylePicker = [[EdgeStyleSelector alloc] initWithModel:esm];
configWidget = gtk_vbox_new (FALSE, 0);
g_object_ref_sink (configWidget);
@@ -87,7 +94,6 @@
[[NSNotificationCenter defaultCenter] removeObserver:self];
[renderer release];
- [styleManager release];
[stylePicker release];
[sourceNode release];
@@ -176,11 +182,15 @@
[context restoreState];
}
+- (StyleManager*) styleManager {
+ return [[stylePicker model] styleManager];
+}
+
- (void) loadConfiguration:(Configuration*)config {
NSString *styleName = [config stringEntry:@"ActiveStyle"
inGroup:@"CreateEdgeTool"
withDefault:nil];
- [self setActiveStyle:[styleManager edgeStyleForName:styleName]];
+ [self setActiveStyle:[[self styleManager] edgeStyleForName:styleName]];
}
- (void) saveConfiguration:(Configuration*)config {
diff --git a/tikzit/src/gtk/CreateNodeTool.h b/tikzit/src/gtk/CreateNodeTool.h
index b340a70..94d6b31 100644
--- a/tikzit/src/gtk/CreateNodeTool.h
+++ b/tikzit/src/gtk/CreateNodeTool.h
@@ -21,20 +21,21 @@
@class NodeStyle;
@class NodeStyleSelector;
+@class NodeStylesModel;
@class StyleManager;
@interface CreateNodeTool : NSObject <Tool> {
GraphRenderer *renderer;
- StyleManager *styleManager;
NodeStyleSelector *stylePicker;
GtkWidget *configWidget;
}
-@property (retain) StyleManager *styleManager;
@property (retain) NodeStyle *activeStyle;
+ (id) toolWithStyleManager:(StyleManager*)sm;
- (id) initWithStyleManager:(StyleManager*)sm;
++ (id) toolWithNodeStylesModel:(NodeStylesModel*)nsm;
+- (id) initWithNodeStylesModel:(NodeStylesModel*)nsm;
@end
diff --git a/tikzit/src/gtk/CreateNodeTool.m b/tikzit/src/gtk/CreateNodeTool.m
index a8402f0..b6b8d1b 100644
--- a/tikzit/src/gtk/CreateNodeTool.m
+++ b/tikzit/src/gtk/CreateNodeTool.m
@@ -20,6 +20,7 @@
#import "Configuration.h"
#import "GraphRenderer.h"
#import "NodeStyleSelector.h"
+#import "NodeStylesModel.h"
#import "TikzDocument.h"
#import "tzstockitems.h"
@@ -29,24 +30,30 @@
- (NSString*) helpText { return @"Create new nodes"; }
- (NSString*) shortcut { return @"n"; }
@synthesize activeRenderer=renderer;
-@synthesize styleManager;
@synthesize configurationWidget=configWidget;
+ (id) toolWithStyleManager:(StyleManager*)sm {
return [[[self alloc] initWithStyleManager:sm] autorelease];
}
++ (id) toolWithNodeStylesModel:(NodeStylesModel*)nsm {
+ return [[[self alloc] initWithNodeStylesModel:nsm] autorelease];
+}
+
- (id) init {
[self release];
return nil;
}
- (id) initWithStyleManager:(StyleManager*)sm {
+ return [self initWithNodeStylesModel:[NodeStylesModel modelWithStyleManager:sm]];
+}
+
+- (id) initWithNodeStylesModel:(NodeStylesModel*)nsm {
self = [super init];
if (self) {
- styleManager = [sm retain];
- stylePicker = [[NodeStyleSelector alloc] initWithStyleManager:sm];
+ stylePicker = [[NodeStyleSelector alloc] initWithModel:nsm];
configWidget = gtk_vbox_new (FALSE, 0);
g_object_ref_sink (configWidget);
@@ -87,7 +94,6 @@
[[NSNotificationCenter defaultCenter] removeObserver:self];
[renderer release];
- [styleManager release];
[stylePicker release];
g_object_unref (G_OBJECT (configWidget));
@@ -119,11 +125,15 @@
- (void) renderWithContext:(id<RenderContext>)context onSurface:(id<Surface>)surface {}
+- (StyleManager*) styleManager {
+ return [[stylePicker model] styleManager];
+}
+
- (void) loadConfiguration:(Configuration*)config {
NSString *styleName = [config stringEntry:@"ActiveStyle"
inGroup:@"CreateNodeTool"
withDefault:nil];
- [self setActiveStyle:[styleManager nodeStyleForName:styleName]];
+ [self setActiveStyle:[[self styleManager] nodeStyleForName:styleName]];
}
- (void) saveConfiguration:(Configuration*)config {