nib rearranging
[TestXSLT.git] / MyDocument.h
1 //
2 //  MyDocument.h
3 //  TestXSLT
4 //
5 //  Created by Marc Liyanage on Sun Mar 03 2002.
6 //  Copyright (c) 2001 __MyCompanyName__. All rights reserved.
7 //
8 //  $Id$
9
10
11 #import <Cocoa/Cocoa.h>
12 #import <WebKit/WebKit.h>
13 #include <sys/time.h>
14
15 #import "XMLUtils.h"
16 #import "Workset.h"
17 #import "ParameterSet.h"
18 #import "XSLTProcessorFactory.h"
19 #import "XMLParserLibxml.h"
20 #import "XMLTextView.h"
21 #import "FindPanelController.h"
22 #import "JumpToLinePanelController.h"
23 #import "UnsavedChangesPanelController.h"
24 #import "XSL_FO_Renderer.h"
25
26
27 enum {
28         XML = 1,
29         XSLT,
30         PARAMETERS,
31         RESULT,
32 };
33
34 @interface MyDocument : NSDocument
35 {
36         Workset *workset;
37         NSTimer *uiUpdateTimer;
38         BOOL resultDirty;
39         BOOL xmlDirty;
40         BOOL xsltDirty;
41         
42         BOOL webViewUpToDate;
43         BOOL imageViewUpToDate;
44
45         int pdfPageCount, pdfCurrentPage;
46         
47         NSBundle *processorBundle;
48
49         XSLTProcessor *processor;
50         XMLParserLibxml *wellFormedParser;
51         
52         NSImage *warningIcon;
53         IBOutlet NSImageView *xmlWellFormedIcon;
54         IBOutlet NSImageView *xsltWellFormedIcon;
55         IBOutlet NSButton *processButton;
56         IBOutlet NSButton *saveResultAsButton;
57         IBOutlet NSButton *saveResultButton;
58         IBOutlet NSButton *openResultURLButton;
59         IBOutlet NSTextField *processingTimeField;
60         IBOutlet NSTextField *saveResultFilenameField;
61         IBOutlet NSTextField *saveXmlFilenameField;
62         IBOutlet NSTextField *saveXsltFilenameField;
63         IBOutlet NSButton *saveXmlAsButton;
64         IBOutlet NSButton *saveXmlButton;
65         IBOutlet NSButton *saveXsltButton;
66         IBOutlet NSButton *saveXsltAsButton;
67         IBOutlet NSButton *paramRemoveButton;
68         IBOutlet NSTabView *tabView;
69         IBOutlet NSTabView *resultTabView;
70         IBOutlet XMLTextView *xmlView;
71         IBOutlet XMLTextView *xsltView;
72         IBOutlet NSTextView *resultView;
73         IBOutlet NSTableView *parameterTable;
74         IBOutlet NSButton *autoSaveCheckbox;
75         IBOutlet NSButton *autoShowCheckbox;
76         IBOutlet NSDrawer *errorDrawer;
77         IBOutlet NSPopUpButton *processorTypePopUp;
78         IBOutlet WebView *resultWebView;
79         IBOutlet NSImageView *resultImageView;
80
81         IBOutlet NSTextField *pdfCurrentPageField;
82         IBOutlet NSTextField *pdfPageCountField;
83         IBOutlet NSButton *pdfPreviousPageButton;
84         IBOutlet NSButton *pdfNextPageButton;
85         IBOutlet NSButton *pdfSaveAsButton;
86
87         IBOutlet NSTextField *xmlTagStackField;
88         IBOutlet NSTextField *xsltTagStackField;
89
90         IBOutlet NSTextField *drawerMessageField;
91         NSData *pdfData;
92
93         IBOutlet NSTextField *webViewBaseURL;
94
95         FindPanelController *findPanelController;
96         JumpToLinePanelController *jumpToLinePanelController;
97         UnsavedChangesPanelController *unsavedChangesPanelController;
98         
99 }
100
101 - (BOOL)canUseSelectionForFindNow;
102 - (BOOL)canFindNow;
103 - (BOOL)canFindAgainNow;
104 - (IBAction)showFindPanel:(id)sender;
105 - (IBAction)findNext:(id)sender;
106 - (IBAction)findPrevious:(id)sender;
107 - (IBAction)useSelectionForFind:(id)sender;
108 - (void)findStringWithSearchFlags:(int)flags;
109
110 - (BOOL)canJumpToLineNow;
111 - (IBAction)showJumpToLinePanel:(id)sender;
112
113 - (BOOL)showUnsavedChangesPanel;
114
115 - (void)updateCompleteUI;
116 - (void)updateUI;
117 - (void)doUpdateUI;
118 - (NSTabView *)tabView;
119 - (IBAction)selectTab:(id)sender;
120 - (IBAction)selectTabById:(int)tabId;
121
122 - (IBAction)setProcessorType:(id)sender;
123 - (IBAction)switchProcessorToType:(int)newType updateUI:(BOOL)updateUI;
124
125 - (IBAction)showInBrowser:(id)sender;
126 - (void)uiUpdateTimerTarget:(NSTimer *)timer;
127 - (BOOL)canProcessNow;
128 - (BOOL)validateMenuItem:(NSMenuItem *)menuItem;
129
130 - (void)resizeWebView;
131
132 - (NSTextView *)currentTextView;
133
134 // AppleScript Stuff
135 - (id)handleProcessScriptCommand:(NSScriptCommand *)command;
136 - (id)handleExportScriptCommand:(NSScriptCommand *)command;
137 - (id)handleSetParamScriptCommand:(NSScriptCommand *)command;
138 - (id)handleClearParamScriptCommand:(NSScriptCommand *)command;
139 - (id)handleSetProcessorTypeScriptCommand:(NSScriptCommand *)command;
140
141
142 // AppleScript accessors
143 - (NSString *)xmlcode;
144 - (void)setXmlcode:(NSString *)s;
145 - (NSString *)xsltcode;
146 - (void)setXsltcode:(NSString *)s;
147 - (NSString *)result;
148
149 // Drag and Drop for our custom NSTextView subclass
150 - (BOOL)handleDroppedFile:(NSString *)filename forTextView:(NSTextView *)sender;
151
152 - (IBAction)process:(id)sender;
153 - (IBAction)loadXml:(id)sender;
154 - (IBAction)loadXslt:(id)sender;
155
156 - (BOOL)canSaveXmlAsNow;
157 - (BOOL)canSaveXmlNow;
158 - (BOOL)canSaveXsltAsNow;
159 - (BOOL)canSaveXsltNow;
160 - (BOOL)canSaveResultAsNow;
161 - (BOOL)canSaveResultNow;
162
163 - (IBAction)saveResultAs:(id)sender;
164 - (IBAction)saveResult:(id)sender;
165 - (IBAction)saveXmlAs:(id)sender;
166 - (IBAction)saveXml:(id)sender;
167 - (IBAction)saveXsltAs:(id)sender;
168 - (IBAction)saveXslt:(id)sender;
169 - (IBAction)saveCurrentAs:(id)sender;
170 - (IBAction)saveCurrent:(id)sender;
171 - (IBAction)newParameter:(id)sender;
172 - (IBAction)removeParameter:(id)sender;
173 - (IBAction)openResultURL:(id)sender;
174 - (void)autoSave;
175
176 - (void)updateResultWebView;
177 - (void)updateResultImageView;
178
179 - (IBAction)renderFo:(id)sender;
180
181 - (IBAction)showErrorLocation:(id)sender;
182
183 - (IBAction)pdfPreviousPage:(id)sender;
184 - (IBAction)pdfNextPage:(id)sender;
185 - (IBAction)pdfSaveAs:(id)sender;
186
187 - (void)checkForExternalModifications;
188
189 /*
190 - (IBAction)showXmlTab:(id)sender;
191 - (IBAction)showXsltTab:(id)sender;
192 - (IBAction)showParameterTab:(id)sender;
193 - (IBAction)showResultTab:(id)sender;
194 */
195
196 @end