1 /* 2 Project: LaternaMagica 3 AppController.h 4 5 Copyright (C) 2006-2015 Riccardo Mottola 6 7 Author: Riccardo Mottola 8 9 Created: 2006-01-16 10 11 This application is free software; you can redistribute it and/or 12 modify it under the terms of the GNU General Public 13 License as published by the Free Software Foundation; either 14 version 2 of the License, or (at your option) any later version. 15 16 This application is distributed in the hope that it will be useful, 17 but WITHOUT ANY WARRANTY; without even the implied warranty of 18 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 19 Library General Public License for more details. 20 21 You should have received a copy of the GNU General Public 22 License along with this library; if not, write to the Free 23 Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. 24 */ 25 26 27 #import <AppKit/AppKit.h> 28 29 #import <FileTable.h> 30 #import <LMFlipView.h> 31 #import "LMWindow.h" 32 33 @interface AppController : NSObject 34 { 35 IBOutlet FileTable *fileListData; 36 IBOutlet NSTableView *fileListView; 37 IBOutlet NSWindow *controlWin; 38 IBOutlet NSWindow *smallWindow; 39 IBOutlet LMFlipView *smallView; 40 IBOutlet NSScrollView *scrollView; 41 IBOutlet NSButton *fitButton; 42 IBOutlet NSTextField *fieldImageCount; 43 IBOutlet NSMenuItem *fullScreenMenuItem; 44 IBOutlet NSButton *fullScreenButton; 45 IBOutlet NSMenuItem *saveAsMenuItem; 46 47 /* save As options */ 48 IBOutlet NSView *saveOptionsView; 49 IBOutlet NSPopUpButton *fileTypePopUp; 50 IBOutlet NSTextField *jpegCompressionField; 51 IBOutlet NSSlider *jpegCompressionSlider; 52 53 BOOL scaleToFit; 54 NSWindow *window; 55 LMWindow *fullWindow; 56 LMFlipView *view; 57 LMFlipView *fullView; 58 NSSavePanel *savePanel; 59 60 /* preferences */ 61 IBOutlet NSPanel *prefPanel; 62 IBOutlet NSButton *destroyOrRecycleButton; 63 IBOutlet NSButton *askBeforeDeletingButton; 64 65 /* exporter */ 66 IBOutlet NSPanel *exporterPanel; 67 IBOutlet NSTextField *fieldOutputPath; 68 IBOutlet NSTextField *fieldWidth; 69 IBOutlet NSTextField *fieldHeight; 70 IBOutlet NSProgressIndicator *exportProgress; 71 IBOutlet NSPopUpButton *popupConstraints; 72 IBOutlet NSPopUpButton *popupFileType; 73 IBOutlet NSPopUpButton *popupFileQuality; 74 } 75 76 - (IBAction)addFiles:(id)sender; 77 - (IBAction)setScaleToFit:(id)sender; 78 - (IBAction)setFullScreen:(id)sender; 79 - (IBAction)prevImage:(id)sender; 80 - (IBAction)nextImage:(id)sender; 81 - (IBAction)removeAllImages:(id)sender; 82 - (IBAction)scrambleList:(id)sender; 83 - (IBAction)removeImage:(id)sender; 84 - (IBAction)eraseImage:(id)sender; 85 - (IBAction)rotateImage90:(id)sender; 86 - (IBAction)rotateImage180:(id)sender; 87 - (IBAction)rotateImage270:(id)sender; 88 89 - (void)updateImageCount; 90 91 - (NSImage *)rotate: (NSImage *)image byAngle:(unsigned)angle; 92 93 - (IBAction)saveImageAs:(id)sender; 94 - (IBAction)setCompressionType:(id)sender; 95 - (IBAction)setCompressionLevel:(id)sender; 96 97 /* exporter */ 98 - (IBAction)exportImages:(id)sender; 99 - (IBAction)setExportPath:(id)sender; 100 - (IBAction)execExportImages:(id)sender; 101 102 /* preferences */ 103 - (IBAction)showPreferences:(id)sender; 104 - (IBAction)savePreferences:(id)sender; 105 - (IBAction)cancelPreferences:(id)sender; 106 107 - (void)print:(id)sender; 108 109 @end 110