5 // Copyright (c) 2005 A. Karl Keller (http://karlk.net)
7 // This code is open-source, free software, made available without warranty under
8 // the terms of the GNU General Public License, either version 2 or later (see
9 // http://www.gnu.org/licenses/gpl.html or included copy); as such, it may be
10 // redistributed and/or modified in accordance with that document.
14 #import <Cocoa/Cocoa.h>
17 #import "RTKRevision.h"
18 #import "RTKConvertor.h"
19 #import "RTKTigerTextView.h"
22 @interface RTKTigerDocument
: NSDocument
24 // Permanent data object
27 // Currently active verse and revision
28 RTKVerse
* currentVerse
;
29 RTKRevision
* currentRevision
;
32 // Drag and Drop internal to this document
33 NSArray
* draggedVerseIndexArray
;
36 NSArray
* visibleVerseIndexes
;
38 // transcription queue
39 NSMutableArray
* revisionsToConvert
;
41 // Window state information
44 // Nib life-cycle information.
45 BOOL alreadyAwokeFromNib
;
48 NSMutableArray
* verseTypes
;
53 IBOutlet NSWindow
* documentWindow
;
55 IBOutlet NSToolbar * toolbar;
56 NSMutableDictionary * toolbarItems;
57 NSMutableArray *toolbarKeys;
60 IBOutlet NSButton
* newVerseButton
;
61 IBOutlet NSButton
* deleteVerseButton
;
62 IBOutlet NSButton
* newRevisionButton
;
63 IBOutlet NSButton
* deleteRevisionButton
;
66 IBOutlet NSTableView
* versesTableView
;
67 IBOutlet NSSearchField
* searchField
;
69 // Verse specific columns
70 IBOutlet NSTableColumn
* referenceTableColumn
;
71 IBOutlet NSTableColumn
* typeTableColumn
;
72 IBOutlet NSTableColumn
* revisionTableColumn
;
74 // Revision specific columns
75 IBOutlet NSTableColumn
* lockedTableColumn
;
76 IBOutlet NSTableColumn
* romanTableColumn
;
77 IBOutlet NSTableColumn
* scriptTableColumn
;
78 IBOutlet NSTableColumn
* backTranslationTableColumn
;
79 IBOutlet NSTableColumn
* notesTableColumn
;
80 IBOutlet NSTableColumn
* checkingTableColumn
;
82 // Revision specific text fields
83 IBOutlet RTKTigerTextView
* romanTextView
;
84 IBOutlet RTKTigerTextView
* scriptTextView
;
85 IBOutlet RTKTigerTextView
* backTranslationTextView
;
86 IBOutlet RTKTigerTextView
* notesTextView
;
87 IBOutlet RTKTigerTextView
* checkingTextView
;
89 IBOutlet NSSplitView
* horizontalSplitView
;
92 IBOutlet NSSplitView
* verticalSplitView
;
94 IBOutlet NSView
* verseView
;
95 IBOutlet NSView
* publishedView
;
98 IBOutlet NSSplitView
* publishedSplitView
;
99 IBOutlet NSView
* romanPublishedView
;
100 IBOutlet NSView
* scriptPublishedView
;
104 IBOutlet NSView
* rowView
;
105 IBOutlet NSView
* editView
;
107 IBOutlet NSView
* romanView
;
108 IBOutlet NSView
* scriptView
;
109 IBOutlet NSView
* backTranslationView
;
110 IBOutlet NSView
* notesView
;
111 IBOutlet NSView
* checkingView
;
113 IBOutlet NSScrollView
* romanPublishedScrollView
;
114 IBOutlet NSScrollView
* scriptPublishedScrollView
;
117 IBOutlet NSSplitView
* splitViewOfTextViews
;
120 IBOutlet RTKTigerTextView
* romanPublishedTextView
;
121 IBOutlet RTKTigerTextView
* scriptPublishedTextView
;
124 NSString
* inputDefinitionPath
;
125 NSString
* scriptDefinitionPath
;
126 NSString
* encodingDefinitionPath
;
129 NSLock
* convertingLock
;
130 NSLock
* revisionsToConvertLock
;
134 NSNumber
* RTKDocumentWidth
;
135 NSNumber
* RTKDocumentHeight
;
137 NSNumber
* RTKReferenceColumnWidth
;
138 NSNumber
* RTKLockColumnWidth
;
139 NSNumber
* RTKTypeColumnWidth
;
140 NSNumber
* RTKRevisionColumnWidth
;
141 NSNumber
* RTKScriptColumnWidth
;
142 NSNumber
* RTKRomanColumnWidth
;
143 NSNumber
* RTKBackTranslationColumnWidth
;
144 NSNumber
* RTKNotesColumnWidth
;
145 NSNumber
* RTKCheckingColumnWidth
;
149 NSDate
* creationDate
;
151 // Lossless forwards/backwards compatibility
152 NSDictionary
* dictionary
;
156 - (void)setBook
:(RTKBook
*)theBook
;
158 - (RTKVerse
*)currentVerse
;
159 - (void)setCurrentVerse
:(RTKVerse
*)verse
;
161 - (RTKRevision
*)currentRevision
;
162 - (void)setCurrentRevision
:(RTKRevision
*)revision
;
165 - (void)setDictionary
:(NSDictionary
*)theDictionary
;
166 - (NSDictionary
*)dictionary
;
168 - (NSDate
*)creationDate
;
169 - (void)setCreationDate
:(NSDate
*)newCreationDate
;
170 - (IBAction
)search
:(id
)sender
;
171 - (void)setVerseTypes
:(NSMutableArray
*)theVerseTypes
;
173 - (IBAction
)newVerse
:(id
)sender
;
174 - (IBAction
)deleteVerse
:(id
)sender
;
175 - (IBAction
)nextVerse
:(id
)sender
;
176 - (IBAction
)previousVerse
:(id
)sender
;
177 - (BOOL
)selectVerse
:(RTKVerse
*)verse
;
178 - (IBAction
)lockVerse
:(id
)sender
;
180 - (IBAction
)newRevision
:(id
)sender
;
181 - (IBAction
)deleteRevision
:(id
)sender
;
182 - (IBAction
)nextRevision
:(id
)sender
;
183 - (IBAction
)previousRevision
:(id
)sender
;
185 - (IBAction
)switchRevision
:(id
)sender
;
186 - (IBAction
)lockRevision
:(id
)sender
;
188 //- (void)updateCommiteeMeetingText:(BOOL)mirrorText;
191 - (void)readSplitViewRectsFromDefaults
;
192 - (void)writeSplitViewRectsToDefaults
;
193 - (void)ensureOneBlankVerse
;
195 - (void)setFieldEditor
:(BOOL
)editor
;
197 - (void)setVisibleVerseIndexes
:(NSArray
*)indexes
;
198 - (void)setBindingsFromDictionary
:(NSDictionary
*)dict
;
200 //- (void)setupToolbar;
202 - (void)cut
:(id
)sender
;
203 - (void)copy
:(id
)sender
;
204 - (void)paste
:(id
)sender
;
206 -(void)regenerateAllScript
;
207 -(void)convertRevision
:(RTKRevision
*)revision
;
209 - (void)romanPublishedTextViewDidChange
:(NSNotification
*)notification
;