From f75835e188c1bf8010fb7cc18c7526934ff19eba Mon Sep 17 00:00:00 2001 From: Alex Merry Date: Mon, 17 Dec 2012 16:15:08 +0000 Subject: Use central models for node and edge styles --- tikzit/src/gtk/CreateNodeTool.m | 20 +++++++++++++++----- 1 file changed, 15 insertions(+), 5 deletions(-) (limited to 'tikzit/src/gtk/CreateNodeTool.m') 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)context onSurface:(id)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 { -- cgit v1.2.3