From 83505a47e250ebe5d5169e6ce554c2d22b339709 Mon Sep 17 00:00:00 2001 From: Allan Odgaard Date: Thu, 14 Feb 2013 11:31:21 +0100 Subject: [PATCH] =?UTF-8?q?Change=20status=20bar=E2=80=99s=20=E2=80=9Ccare?= =?UTF-8?q?t=E2=80=9D=20property?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit We now use a selection string so status bar doesn’t need to know about what it actually contains. --- Frameworks/OakTextView/src/OTVStatusBar.h | 2 +- Frameworks/OakTextView/src/OTVStatusBar.mm | 18 ++++++++---------- Frameworks/OakTextView/src/OakDocumentView.mm | 10 +++++----- 3 files changed, 14 insertions(+), 16 deletions(-) diff --git a/Frameworks/OakTextView/src/OTVStatusBar.h b/Frameworks/OakTextView/src/OTVStatusBar.h index 464b5d0e..fb3c24b0 100644 --- a/Frameworks/OakTextView/src/OTVStatusBar.h +++ b/Frameworks/OakTextView/src/OTVStatusBar.h @@ -7,7 +7,7 @@ @interface OTVStatusBar : OakGradientView - (void)showBundlesMenu:(id)sender; -- (void)setCaretPosition:(std::string const&)range; +@property (nonatomic) NSString* selectionString; @property (nonatomic) NSString* grammarName; @property (nonatomic) NSString* symbolName; @property (nonatomic) BOOL isMacroRecording; diff --git a/Frameworks/OakTextView/src/OTVStatusBar.mm b/Frameworks/OakTextView/src/OTVStatusBar.mm index 37a88a93..bb461ce7 100644 --- a/Frameworks/OakTextView/src/OTVStatusBar.mm +++ b/Frameworks/OakTextView/src/OTVStatusBar.mm @@ -6,7 +6,6 @@ #import #import #import -#import static NSTextField* OakCreateTextField (NSString* label) { @@ -59,9 +58,6 @@ static NSImageView* OakCreateImageView (NSImage* image) } @interface OTVStatusBar () -{ - text::range_t caretPosition; -} @property (nonatomic) CGFloat recordingTime; @property (nonatomic) NSTimer* recordingTimer; @@ -235,6 +231,14 @@ static NSImageView* OakCreateImageView (NSImage* image) // = Properties = // ============== +- (void)setSelectionString:(NSString*)newSelectionString +{ + if(_selectionString == newSelectionString || [_selectionString isEqualToString:newSelectionString]) + return; + _selectionString = newSelectionString; + self.selectionField.stringValue = newSelectionString; +} + - (void)setGrammarName:(NSString*)newGrammarName { if(_grammarName == newGrammarName || [_grammarName isEqualToString:newGrammarName]) @@ -275,12 +279,6 @@ static NSImageView* OakCreateImageView (NSImage* image) } } -- (void)setCaretPosition:(std::string const&)range -{ - caretPosition = range; - self.selectionField.stringValue = [NSString stringWithCxxString:range]; -} - - (void)updateTabSettings { self.tabSizePopUp.title = [NSString stringWithFormat:@"%@:\u2003%d", _softTabs ? @"Soft Tabs" : @"Tab Size", _tabSize]; diff --git a/Frameworks/OakTextView/src/OakDocumentView.mm b/Frameworks/OakTextView/src/OakDocumentView.mm index b0833cd7..fa187d45 100644 --- a/Frameworks/OakTextView/src/OakDocumentView.mm +++ b/Frameworks/OakTextView/src/OakDocumentView.mm @@ -234,13 +234,13 @@ private: if([aKeyPath isEqualToString:@"selectionString"]) { - char const* str = [[textView valueForKey:@"selectionString"] UTF8String] ?: "1"; - [gutterView setHighlightedRange:str]; - [statusBar setCaretPosition:str]; - _symbolChooser.selectionString = textView.selectionString; + NSString* str = [textView valueForKey:@"selectionString"]; + [gutterView setHighlightedRange:to_s(str ?: @"1")]; + [statusBar setSelectionString:str]; + _symbolChooser.selectionString = str; ng::buffer_t const& buf = document->buffer(); - text::selection_t sel([textView.selectionString UTF8String]); + text::selection_t sel(to_s(str)); size_t i = buf.convert(sel.last().max()); statusBar.symbolName = [NSString stringWithCxxString:buf.symbol_at(i)]; }