1/* GWViewerWindow.m
2 *
3 * Copyright (C) 2004-2013 Free Software Foundation, Inc.
4 *
5 * Author: Enrico Sersale <enrico@imago.ro>
6 * Date: July 2004
7 *
8 * This file is part of the GNUstep GWorkspace application
9 *
10 * This program is free software; you can redistribute it and/or modify
11 * it under the terms of the GNU General Public License as published by
12 * the Free Software Foundation; either version 2 of the License, or
13 * (at your option) any later version.
14 *
15 * This program is distributed in the hope that it will be useful,
16 * but WITHOUT ANY WARRANTY; without even the implied warranty of
17 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
18 * GNU General Public License for more details.
19 *
20 * You should have received a copy of the GNU General Public License
21 * along with this program; if not, write to the Free Software
22 * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02111 USA.
23 */
24
25#import <AppKit/AppKit.h>
26#import <GNUstepBase/GNUstep.h>
27#import "GWViewerWindow.h"
28
29
30@implementation GWViewerWindow
31
32- (void)dealloc
33{
34  [super dealloc];
35}
36
37- (id)init
38{
39  unsigned int style = NSTitledWindowMask | NSClosableWindowMask
40				                  | NSMiniaturizableWindowMask | NSResizableWindowMask;
41
42  self = [super initWithContentRect: NSZeroRect
43                          styleMask: style
44                            backing: NSBackingStoreBuffered
45                              defer: NO];
46  return self;
47}
48
49
50- (BOOL)validateMenuItem:(id <NSMenuItem>)menuItem
51{
52  return [[self delegate] validateItem: menuItem];
53}
54
55- (void)openSelection:(id)sender
56{
57  [[self delegate] openSelectionInNewViewer: NO];
58}
59
60- (void)openSelectionAsFolder:(id)sender
61{
62  [[self delegate] openSelectionAsFolder];
63}
64
65- (void)openWith:(id)sender
66{
67  [[self delegate] openSelectionWith];
68}
69
70- (void)newFolder:(id)sender
71{
72  [[self delegate] newFolder];
73}
74
75- (void)newFile:(id)sender
76{
77  [[self delegate] newFile];
78}
79
80- (void)duplicateFiles:(id)sender
81{
82  [[self delegate] duplicateFiles];
83}
84
85- (void)recycleFiles:(id)sender
86{
87  [[self delegate] recycleFiles];
88}
89
90- (void)deleteFiles:(id)sender
91{
92  [[self delegate] deleteFiles];
93}
94
95- (void)goBackwardInHistory:(id)sender
96{
97  [[self delegate] goBackwardInHistory];
98}
99
100- (void)goForwardInHistory:(id)sender
101{
102  [[self delegate] goForwardInHistory];
103}
104
105- (void)setViewerType:(id)sender
106{
107  [[self delegate] setViewerType: sender];
108}
109
110- (void)setShownType:(id)sender
111{
112  [[self delegate] setShownType: sender];
113}
114
115- (void)setExtendedShownType:(id)sender
116{
117  [[self delegate] setExtendedShownType: sender];
118}
119
120- (void)setIconsSize:(id)sender
121{
122  [[self delegate] setIconsSize: sender];
123}
124
125- (void)setIconsPosition:(id)sender
126{
127  [[self delegate] setIconsPosition: sender];
128}
129
130- (void)setLabelSize:(id)sender
131{
132  [[self delegate] setLabelSize: sender];
133}
134
135- (void)chooseLabelColor:(id)sender
136{
137  [[self delegate] chooseLabelColor: sender];
138}
139
140- (void)chooseBackColor:(id)sender
141{
142  [[self delegate] chooseBackColor: sender];
143}
144
145- (void)selectAllInViewer:(id)sender
146{
147  [[self delegate] selectAllInViewer];
148}
149
150- (void)showTerminal:(id)sender
151{
152  [[self delegate] showTerminal];
153}
154
155- (void)keyDown:(NSEvent *)theEvent
156{
157  unsigned flags = [theEvent modifierFlags];
158	NSString *characters = [theEvent characters];
159  unichar character = 0;
160
161  if ([characters length] > 0) {
162		character = [characters characterAtIndex: 0];
163	}
164
165	switch (character) {
166    case NSLeftArrowFunctionKey:
167			if ((flags & NSCommandKeyMask) || (flags & NSControlKeyMask)) {
168        [[self delegate] goBackwardInHistory];
169			}
170      return;
171
172    case NSRightArrowFunctionKey:
173			if ((flags & NSCommandKeyMask) || (flags & NSControlKeyMask)) {
174        [[self delegate] goForwardInHistory];
175	    }
176			return;
177
178    case NSBackspaceKey:
179      if (flags & NSShiftKeyMask) {
180        [[self delegate] emptyTrash];
181      } else {
182        [[self delegate] recycleFiles];
183      }
184      return;
185	}
186
187	[super keyDown: theEvent];
188}
189
190- (void)print:(id)sender
191{
192	[super print: sender];
193}
194
195@end
196