diff options
author | Aleks Kissinger <aleks0@gmail.com> | 2018-05-07 13:21:59 +0200 |
---|---|---|
committer | Aleks Kissinger <aleks0@gmail.com> | 2018-05-07 13:21:59 +0200 |
commit | d7f0b3e19fddc89fd22692847e9d840023d2b7f3 (patch) | |
tree | 762f48cb637eef334cf7f6320fe13b7988bc53e3 /tikzit-old/src/gtk/CreateNodeTool.m | |
parent | b00c5250d7a56b6d20980d89cf331a114fdfdee0 (diff) |
GPLed
Diffstat (limited to 'tikzit-old/src/gtk/CreateNodeTool.m')
-rw-r--r-- | tikzit-old/src/gtk/CreateNodeTool.m | 169 |
1 files changed, 0 insertions, 169 deletions
diff --git a/tikzit-old/src/gtk/CreateNodeTool.m b/tikzit-old/src/gtk/CreateNodeTool.m deleted file mode 100644 index 77b24f0..0000000 --- a/tikzit-old/src/gtk/CreateNodeTool.m +++ /dev/null @@ -1,169 +0,0 @@ -/* - * Copyright 2011-2012 Alex Merry <alex.merry@kdemail.net> - * - * 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 "CreateNodeTool.h" - -#import "Configuration.h" -#import "GraphRenderer.h" -#import "NodeStyleSelector.h" -#import "NodeStylesModel.h" -#import "TikzDocument.h" -#import "tzstockitems.h" - -static void clear_style_button_cb (GtkButton *widget, - NodeStyleSelector *selector); - -@implementation CreateNodeTool -- (NSString*) name { return @"Create Node"; } -- (const gchar*) stockId { return TIKZIT_STOCK_CREATE_NODE; } -- (NSString*) helpText { return @"Create new nodes"; } -- (NSString*) shortcut { return @"n"; } -@synthesize activeRenderer=renderer; -@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) { - stylePicker = [[NodeStyleSelector alloc] initWithModel:nsm]; - - configWidget = gtk_vbox_new (FALSE, 0); - g_object_ref_sink (configWidget); - - GtkWidget *label = gtk_label_new ("Node style:"); - gtk_widget_show (label); - gtk_misc_set_alignment (GTK_MISC (label), 0.0, 0.5); - gtk_box_pack_start (GTK_BOX (configWidget), - label, - FALSE, - FALSE, - 0); - - GtkWidget *selWindow = gtk_scrolled_window_new (NULL, NULL); - gtk_widget_show (selWindow); - gtk_container_add (GTK_CONTAINER (selWindow), - [stylePicker widget]); - gtk_scrolled_window_set_policy (GTK_SCROLLED_WINDOW (selWindow), - GTK_POLICY_AUTOMATIC, - GTK_POLICY_AUTOMATIC); - gtk_widget_show ([stylePicker widget]); - - GtkWidget *selectorFrame = gtk_frame_new (NULL); - gtk_widget_show (selectorFrame); - gtk_box_pack_start (GTK_BOX (configWidget), - selectorFrame, - TRUE, - TRUE, - 0); - gtk_container_add (GTK_CONTAINER (selectorFrame), - selWindow); - - GtkWidget *button = gtk_button_new_with_label ("No style"); - gtk_widget_show (button); - gtk_box_pack_start (GTK_BOX (configWidget), - button, - FALSE, - FALSE, - 0); - g_signal_connect (G_OBJECT (button), - "clicked", - G_CALLBACK (clear_style_button_cb), - stylePicker); - } - - return self; -} - -- (void) dealloc { - [[NSNotificationCenter defaultCenter] removeObserver:self]; - - [renderer release]; - [stylePicker release]; - - g_object_unref (G_OBJECT (configWidget)); - - [super dealloc]; -} - -- (NodeStyle*) activeStyle { - return [stylePicker selectedStyle]; -} - -- (void) setActiveStyle:(NodeStyle*)style { - return [stylePicker setSelectedStyle:style]; -} - -// FIXME: create node on press, and drag it around? -- (void) mousePressAt:(NSPoint)pos withButton:(MouseButton)button andMask:(InputMask)mask {} - -- (void) mouseReleaseAt:(NSPoint)pos withButton:(MouseButton)button andMask:(InputMask)mask { - if (button != LeftButton) - return; - - Transformer *transformer = [renderer transformer]; - NSPoint nodePoint = [transformer fromScreen:[[renderer grid] snapScreenPoint:pos]]; - Node *node = [Node nodeWithPoint:nodePoint]; - [node setStyle:[self activeStyle]]; - [[renderer document] addNode:node]; -} - -- (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:[[self styleManager] nodeStyleForName:styleName]]; -} - -- (void) saveConfiguration:(Configuration*)config { - [config setStringEntry:@"ActiveStyle" - inGroup:@"CreateNodeTool" - value:[[self activeStyle] name]]; -} -@end - -static void clear_style_button_cb (GtkButton *widget, - NodeStyleSelector *selector) -{ - NSAutoreleasePool *pool = [[NSAutoreleasePool alloc] init]; - [selector setSelectedStyle:nil]; - [pool drain]; -} - -// vim:ft=objc:ts=8:et:sts=4:sw=4 |