Author: rmottola Date: Fri Aug 29 02:25:06 2014 New Revision: 38051 URL: http://svn.gna.org/viewcvs/gnustep?rev=38051&view=rev Log: Implement and add a simple go-to-line panel
Added: apps/projectcenter/trunk/Modules/Editors/ProjectCenter/LineJumper.h apps/projectcenter/trunk/Modules/Editors/ProjectCenter/LineJumper.m apps/projectcenter/trunk/Modules/Editors/ProjectCenter/Resources/LineJumper.gorm/ apps/projectcenter/trunk/Modules/Editors/ProjectCenter/Resources/LineJumper.gorm/data.classes apps/projectcenter/trunk/Modules/Editors/ProjectCenter/Resources/LineJumper.gorm/data.info (with props) apps/projectcenter/trunk/Modules/Editors/ProjectCenter/Resources/LineJumper.gorm/objects.gorm (with props) Modified: apps/projectcenter/trunk/ChangeLog apps/projectcenter/trunk/Modules/Editors/ProjectCenter/GNUmakefile apps/projectcenter/trunk/Modules/Editors/ProjectCenter/PCEditorView.m Modified: apps/projectcenter/trunk/ChangeLog URL: http://svn.gna.org/viewcvs/gnustep/apps/projectcenter/trunk/ChangeLog?rev=38051&r1=38050&r2=38051&view=diff ============================================================================== --- apps/projectcenter/trunk/ChangeLog (original) +++ apps/projectcenter/trunk/ChangeLog Fri Aug 29 02:25:06 2014 @@ -1,3 +1,12 @@ +2014-08-29 Riccardo Mottola <r...@gnu.org> + + * Modules/Editors/ProjectCenter/GNUmakefile + * Modules/Editors/ProjectCenter/LineJumper.h + * Modules/Editors/ProjectCenter/LineJumper.m + * Modules/Editors/ProjectCenter/PCEditorView.m + * Modules/Editors/ProjectCenter/Resources/LineJumper.gorm + Implement and add a simple go-to-line panel + 2014-08-25 Wolfgang Lux <wolfgang....@gmail.com> * Modules/Editors/ProjectCenter/PCEditor.m (unhighlightCharacter:): Modified: apps/projectcenter/trunk/Modules/Editors/ProjectCenter/GNUmakefile URL: http://svn.gna.org/viewcvs/gnustep/apps/projectcenter/trunk/Modules/Editors/ProjectCenter/GNUmakefile?rev=38051&r1=38050&r2=38051&view=diff ============================================================================== --- apps/projectcenter/trunk/Modules/Editors/ProjectCenter/GNUmakefile (original) +++ apps/projectcenter/trunk/Modules/Editors/ProjectCenter/GNUmakefile Fri Aug 29 02:25:06 2014 @@ -29,7 +29,8 @@ Resources/FileH.tiff \ Resources/FileHH.tiff \ Resources/FileM.tiff \ - Resources/FileMH.tiff + Resources/FileMH.tiff \ + Resources/LineJumper.gorm # # Header files @@ -38,7 +39,8 @@ PCEditor.h \ PCEditorView.h \ SyntaxDefinition.h \ - SyntaxHighlighter.h + SyntaxHighlighter.h \ + LineJumper.h # # Class files @@ -48,7 +50,8 @@ PCEditorView.m \ TextPattern.m \ SyntaxDefinition.m \ - SyntaxHighlighter.m + SyntaxHighlighter.m \ + LineJumper.m include ../../GNUmakefile.bundles include $(GNUSTEP_MAKEFILES)/bundle.make Added: apps/projectcenter/trunk/Modules/Editors/ProjectCenter/LineJumper.h URL: http://svn.gna.org/viewcvs/gnustep/apps/projectcenter/trunk/Modules/Editors/ProjectCenter/LineJumper.h?rev=38051&view=auto ============================================================================== --- apps/projectcenter/trunk/Modules/Editors/ProjectCenter/LineJumper.h (added) +++ apps/projectcenter/trunk/Modules/Editors/ProjectCenter/LineJumper.h Fri Aug 29 02:25:06 2014 @@ -0,0 +1,20 @@ +#import <Foundation/NSObject.h> +#import <Protocols/CodeEditorView.h> + +@interface LineJumper : NSObject +{ + IBOutlet NSTextField *lineField; + IBOutlet NSButton *goToButton; +} + ++ (id)sharedInstance; + +- (NSPanel *)linePanel; + +/* Gets the first responder and returns it if it's an NSTextView */ +- (NSTextView<CodeEditorView> *)editorViewToUse; + +/* panel UI methods */ +- (IBAction)goToLine:(id)sender; + +@end Added: apps/projectcenter/trunk/Modules/Editors/ProjectCenter/LineJumper.m URL: http://svn.gna.org/viewcvs/gnustep/apps/projectcenter/trunk/Modules/Editors/ProjectCenter/LineJumper.m?rev=38051&view=auto ============================================================================== --- apps/projectcenter/trunk/Modules/Editors/ProjectCenter/LineJumper.m (added) +++ apps/projectcenter/trunk/Modules/Editors/ProjectCenter/LineJumper.m Fri Aug 29 02:25:06 2014 @@ -0,0 +1,72 @@ +#import "LineJumper.h" + +static id sharedLineJumper = nil; + +@implementation LineJumper + ++ (id)sharedInstance +{ + if (!sharedLineJumper) + { + sharedLineJumper = [[self allocWithZone:[[NSApplication sharedApplication] zone]] init]; + } + return sharedLineJumper; +} + +- (id) init +{ + if (!(self = [super init])) return nil; + // [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(appDidActivate:) name:NSApplicationDidBecomeActiveNotification object:[NSApplication sharedApplication]]; + // [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(addWillDeactivate:) name:NSApplicationWillResignActiveNotification object:[NSApplication sharedApplication]]; + return self; +} + +- (void)loadUI +{ + if (!lineField) + { + if (![NSBundle loadNibNamed:@"LineJumper" owner:self]) + { + NSLog(@"Failed to load LineJumper.nib"); + NSBeep(); + } + if (self == sharedLineJumper) + [[lineField window] setFrameAutosaveName:@"GoTo Line"]; + } +} + +- (NSTextView<CodeEditorView> *)editorViewToUse +{ + id tv = [[NSApp mainWindow] firstResponder]; + if([tv conformsToProtocol:@protocol(CodeEditorView)]) + return tv; + return nil; +} + +- (NSPanel *)linePanel { + if (!lineField) + [self loadUI]; + return (NSPanel *)[lineField window]; +} + +- (void)orderFrontLinePanel:(id)sender +{ + NSPanel *panel = [self linePanel]; + [lineField selectText:nil]; + [panel makeKeyAndOrderFront:nil]; +} + +- (IBAction)goToLine:(id)sender +{ + NSUInteger line; + NSTextView<CodeEditorView> *cev; + + line = (NSUInteger)[lineField integerValue]; + cev = [self editorViewToUse]; + if (cev) + { + [cev goToLineNumber:line]; + } +} + +@end Modified: apps/projectcenter/trunk/Modules/Editors/ProjectCenter/PCEditorView.m URL: http://svn.gna.org/viewcvs/gnustep/apps/projectcenter/trunk/Modules/Editors/ProjectCenter/PCEditorView.m?rev=38051&r1=38050&r2=38051&view=diff ============================================================================== --- apps/projectcenter/trunk/Modules/Editors/ProjectCenter/PCEditorView.m (original) +++ apps/projectcenter/trunk/Modules/Editors/ProjectCenter/PCEditorView.m Fri Aug 29 02:25:06 2014 @@ -42,6 +42,7 @@ #import "PCEditor.h" #import "SyntaxHighlighter.h" +#import "LineJumper.h" static inline float my_abs(float aValue) { @@ -623,7 +624,10 @@ - (void)performGoToLinePanelAction:(id)sender { - NSLog(@"perform go to line!"); + LineJumper *lj; + + lj = [LineJumper sharedInstance]; + [lj orderFrontLinePanel:self]; } - (void)goToLineNumber:(NSUInteger)lineNumber Added: apps/projectcenter/trunk/Modules/Editors/ProjectCenter/Resources/LineJumper.gorm/data.classes URL: http://svn.gna.org/viewcvs/gnustep/apps/projectcenter/trunk/Modules/Editors/ProjectCenter/Resources/LineJumper.gorm/data.classes?rev=38051&view=auto ============================================================================== --- apps/projectcenter/trunk/Modules/Editors/ProjectCenter/Resources/LineJumper.gorm/data.classes (added) +++ apps/projectcenter/trunk/Modules/Editors/ProjectCenter/Resources/LineJumper.gorm/data.classes Fri Aug 29 02:25:06 2014 @@ -0,0 +1,19 @@ +{ + "## Comment" = "Do NOT change this file, Gorm maintains it"; + FirstResponder = { + Actions = ( + "goToLine:" + ); + Super = NSObject; + }; + LineJumper = { + Actions = ( + "goToLine:" + ); + Outlets = ( + lineField, + goToButton + ); + Super = NSObject; + }; +} Added: apps/projectcenter/trunk/Modules/Editors/ProjectCenter/Resources/LineJumper.gorm/data.info URL: http://svn.gna.org/viewcvs/gnustep/apps/projectcenter/trunk/Modules/Editors/ProjectCenter/Resources/LineJumper.gorm/data.info?rev=38051&view=auto ============================================================================== Binary file - no diff available. Propchange: apps/projectcenter/trunk/Modules/Editors/ProjectCenter/Resources/LineJumper.gorm/data.info ------------------------------------------------------------------------------ svn:mime-type = application/octet-stream Added: apps/projectcenter/trunk/Modules/Editors/ProjectCenter/Resources/LineJumper.gorm/objects.gorm URL: http://svn.gna.org/viewcvs/gnustep/apps/projectcenter/trunk/Modules/Editors/ProjectCenter/Resources/LineJumper.gorm/objects.gorm?rev=38051&view=auto ============================================================================== Binary file - no diff available. Propchange: apps/projectcenter/trunk/Modules/Editors/ProjectCenter/Resources/LineJumper.gorm/objects.gorm ------------------------------------------------------------------------------ svn:mime-type = application/octet-stream _______________________________________________ Gnustep-cvs mailing list Gnustep-cvs@gna.org https://mail.gna.org/listinfo/gnustep-cvs