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 <[email protected]>
+
+ * 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 <[email protected]>
* 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
[email protected]
https://mail.gna.org/listinfo/gnustep-cvs