-
Notifications
You must be signed in to change notification settings - Fork 2
/
ViewerDocument.h
111 lines (84 loc) · 3.21 KB
/
ViewerDocument.h
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
/////////////////////////////////////////////////////////////////////////
// File: $URL$
// Module: Document object for a viewer window.
// Part of: VitaminSEE
//
// ID: $Id: ApplicationController.m 123 2005-04-18 00:21:02Z elliot $
// Revision: $Revision$
// Last edited: $Date$
// Author: $Author$
// Copyright: (c) 2005 Elliot Glaysher
// Created: 8/11/05
//
/////////////////////////////////////////////////////////////////////////
//
// This program is free software; you can redistribute it and/or
// modify it under the terms of the GNU General Public License
// as published by the Free Software Foundation; either version 2
// of the License, or (at your option) any later version.
//
// This program is distributed in the hope that it will be useful,
// but WITHOUT ANY WARRANTY; without even the implied warranty of
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
// GNU General Public License for more details.
//
// You should have received a copy of the GNU General Public License
// along with this program; if not, write to the Free Software
// Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
//
////////////////////////////////////////////////////////////////////////
#import <Cocoa/Cocoa.h>
#import "FileList.h"
@class VitaminSEEWindowController;
@class EGPath;
// Notifications that are posted to a ViewerDocument's NotificationCenter
#define EGViewerImageFileSet @"EGViewerImageFileSet"
#define EGViewerWindowBecameMainWindow @"EGViewerWindowBecameMainWindow"
#define EGViewerWindowLostMainWindow @"EGViewerWindowLostMainWindow"
#define EGViewerWindowClosed @"EGViewerWindowClosed"
@interface ViewerDocument : NSDocument <FileListDelegate> {
id window;
NSNotificationCenter* viewerNotifications;
// The document ID. This is how we identify ourselves. This doesn't change
NSNumber* documentID;
// The document owns the current file list
NSString* fileListName;
id<FileList> fileList;
// CurrentFile we're looking at.
EGPath* currentFile;
// Scale data
NSString* scaleMode;
float scaleRatio;
// Used during resizing
float oldFileListSize;
// Image data
float pixelWidth, pixelHeight;
// Our undo manager
NSUndoManager* undoManager;
// Tracks whether the document and window have been closed and that we're
// only alive because we're owned by a task object on the ImageLoader thread
BOOL documentClosed;
// Tracks the previous state of other windows while THIS window is in full-
// screen mode. {ViewerDocument => NSBoolean(whether it was visible before)}
NSMutableArray* previousVisibleState;
// Save the location of the normal window when going into fullscreen
NSRect windowLocation;
}
-(id)init;
-(id)initWithPath:(EGPath*)path;
-(NSNumber*)documentID;
-(void)setDirectory:(EGPath*)path;
-(EGPath*)currentFile;
-(void)startProgressIndicator;
-(void)stopProgressIndicator;
-(void)redraw;
-(BOOL)validateSetAsDesktopImageItem:(NSMenuItem*)item;
-(BOOL)validateAction:(SEL)action;
-(void)goNextFile:(id)sender;
-(void)goPreviousFile:(id)sender;
-(void)setDirectoryFromRawPath:(NSString*)path;
-(BOOL)focusOnFile:(EGPath*)path;
-(NSString*)scaleMode;
-(float)pixelWidth;
-(float)pixelHeight;
@end