2 Copyright (C) 2004 Marcus Mueller <znek@mulle-kybernetik.com>
4 This file is part of OGo
6 OGo is free software; you can redistribute it and/or modify it under
7 the terms of the GNU Lesser General Public License as published by the
8 Free Software Foundation; either version 2, or (at your option) any
11 OGo is distributed in the hope that it will be useful, but WITHOUT ANY
12 WARRANTY; without even the implied warranty of MERCHANTABILITY or
13 FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public
14 License for more details.
16 You should have received a copy of the GNU Lesser General Public
17 License along with OGo; see the file COPYING. If not, write to the
18 Free Software Foundation, 59 Temple Place - Suite 330, Boston, MA
21 // $Id: SOPEXWOXDocument.m 1 2004-08-20 11:17:52Z znek $
22 // Created by znek on Fri Mar 26 2004.
25 #import "SOPEXWOXDocument.h"
26 #import "SOPEXContentValidator.h"
27 #import "SOPEXTextView.h"
28 #import "SOPEXRangeUtilities.h"
31 @implementation SOPEXWOXDocument
33 - (NSArray *)fileTypes
35 return [NSArray arrayWithObject:@"wox"];
40 #pragma mark ### VALIDATION ###
43 - (NSError *)validateRepresentationForFileType:(NSString *)fileType
47 content = [[self textViewForFileType:fileType] string];
48 return [SOPEXContentValidator validateWOXContent:content];
53 #pragma mark ### TEXTVIEW DELEGATE ###
56 - (void)textViewDidChangeSelection:(NSNotification *)notification
58 NSTextView *textView = [notification object];
62 selRange = [textView selectedRange];
63 event = [NSApp currentEvent];
65 if(([event type] == NSLeftMouseUp) && ([event clickCount] == 2))
67 NSRange matchRange = SOPEX_findMatchingTagForRangeInString(selRange, [textView string]);
69 if(matchRange.location != NSNotFound)
71 selRange = NSUnionRange(selRange, matchRange);
72 [textView setSelectedRange:selRange affinity:NSSelectionAffinityUpstream stillSelecting:YES];
73 [textView scrollRangeToVisible:matchRange];