Changeset 4709

Show
Ignore:
Timestamp:
04/23/07 22:44:08 (2 years ago)
Author:
morris
Message:

More refactoring

Files:

Legend:

Unmodified
Added
Removed
Modified
Copied
Moved
  • Footagehead/trunk/English.lproj/FullscreenWindow.nib/classes.nib

    r4704 r4709  
    11{ 
    2     IBClasses = ({CLASS = FirstResponder; LANGUAGE = ObjC; SUPERCLASS = NSObject; });  
     2    IBClasses = ( 
     3        {CLASS = FHFullscreenWindow; LANGUAGE = ObjC; SUPERCLASS = NSWindow; },  
     4        { 
     5            CLASS = FHFullscreenWindowController;  
     6            LANGUAGE = ObjC;  
     7            OUTLETS = {"_imageView" = FHImageView; };  
     8            SUPERCLASS = WIWindowController;  
     9        },  
     10        { 
     11            CLASS = FHImageView;  
     12            LANGUAGE = ObjC;  
     13            OUTLETS = {"_scrollView" = NSScrollView; };  
     14            SUPERCLASS = NSView;  
     15        },  
     16        {CLASS = FirstResponder; LANGUAGE = ObjC; SUPERCLASS = NSObject; },  
     17        { 
     18            CLASS = WIWindowController;  
     19            LANGUAGE = ObjC;  
     20            SUPERCLASS = NSWindowController;  
     21        } 
     22    );  
    323    IBVersion = 1;  
    424} 
  • Footagehead/trunk/English.lproj/FullscreenWindow.nib/info.nib

    r4704 r4709  
    44<dict> 
    55        <key>IBDocumentLocation</key> 
    6         <string>517 180 356 240 0 0 1920 1178 </string> 
     6        <string>570 95 356 240 0 0 1920 1178 </string> 
    77        <key>IBFramework Version</key> 
    88        <string>446.1</string> 
     
    1212        </array> 
    1313        <key>IBSystem Version</key> 
    14         <string>8P135</string> 
     14        <string>8P2137</string> 
    1515</dict> 
    1616</plist> 
  • Footagehead/trunk/English.lproj/MainMenu.nib/classes.nib

    r4706 r4709  
    6767                rotateRight = id;  
    6868                setAsDesktopBackground = id;  
     69                slideshow = id;  
    6970                submitSheet = id;  
    7071                toggleStatusBar = id;  
  • Footagehead/trunk/English.lproj/MainMenu.nib/info.nib

    r4706 r4709  
    88        <dict> 
    99                <key>29</key> 
    10                 <string>854 977 400 44 0 0 1920 1178 </string> 
     10                <string>973 944 400 44 0 0 1920 1178 </string> 
    1111        </dict> 
    1212        <key>IBFramework Version</key> 
     
    1919        </array> 
    2020        <key>IBSystem Version</key> 
    21         <string>8P135</string> 
     21        <string>8P2137</string> 
    2222</dict> 
    2323</plist> 
  • Footagehead/trunk/English.lproj/Window.nib/classes.nib

    r4706 r4709  
    11{ 
    22    IBClasses = ( 
     3        { 
     4            ACTIONS = { 
     5                autoSwitch = id;  
     6                firstFile = id;  
     7                lastFile = id;  
     8                nextImage = id;  
     9                nextPage = id;  
     10                openDirectory = id;  
     11                openFile = id;  
     12                openParent = id;  
     13                previousImage = id;  
     14                previousPage = id;  
     15            };  
     16            CLASS = FHBrowserWindowController;  
     17            LANGUAGE = ObjC;  
     18            OUTLETS = { 
     19                "_contentBox" = NSBox;  
     20                "_fileTableColumn" = NSTableColumn;  
     21                "_imageView" = FHImageView;  
     22                "_leftStatusTextField" = NSTextField;  
     23                "_leftView" = NSView;  
     24                "_openSpotlightPanel" = NSPanel;  
     25                "_openSpotlightTextView" = NSTextView;  
     26                "_openURLPanel" = NSPanel;  
     27                "_openURLPopUpButton" = NSPopUpButton;  
     28                "_openURLTextView" = NSTextView;  
     29                "_rightStatusTextField" = NSTextField;  
     30                "_rightView" = NSView;  
     31                "_screenAutoSwitchButton" = NSButton;  
     32                "_screenAutoSwitchTextField" = NSTextField;  
     33                "_screenBackgroundBlackMenuItem" = NSMenuItem;  
     34                "_screenBackgroundGrayMenuItem" = NSMenuItem;  
     35                "_screenBackgroundPopUpButton" = NSPopUpButton;  
     36                "_screenBackgroundWhiteMenuItem" = NSMenuItem;  
     37                "_screenPanel" = NSPanel;  
     38                "_screenPopUpButton" = NSPopUpButton;  
     39                "_scrollView" = NSScrollView;  
     40                "_splitView" = WISplitView;  
     41                "_statusBox" = NSBox;  
     42                "_tableView" = FHTableView;  
     43            };  
     44            SUPERCLASS = WIWindowController;  
     45        },  
    346        { 
    447            CLASS = FHImageView;  
     
    1861            OUTLETS = {"_imageScrollView" = NSScrollView; "_imageView" = FHImageView; };  
    1962            SUPERCLASS = WITableView;  
    20         },  
    21         { 
    22             ACTIONS = { 
    23                 firstFile = id;  
    24                 lastFile = id;  
    25                 nextImage = id;  
    26                 nextPage = id;  
    27                 openDirectory = id;  
    28                 openFile = id;  
    29                 openParent = id;  
    30                 previousImage = id;  
    31                 previousPage = id;  
    32             };  
    33             CLASS = FHWindowController;  
    34             LANGUAGE = ObjC;  
    35             OUTLETS = { 
    36                 "_contentBox" = NSBox;  
    37                 "_fileTableColumn" = NSTableColumn;  
    38                 "_imageView" = FHImageView;  
    39                 "_leftStatusTextField" = NSTextField;  
    40                 "_leftView" = NSView;  
    41                 "_openSpotlightPanel" = NSPanel;  
    42                 "_openSpotlightTextView" = NSTextView;  
    43                 "_openURLPanel" = NSPanel;  
    44                 "_openURLPopUpButton" = NSPopUpButton;  
    45                 "_openURLTextView" = NSTextView;  
    46                 "_rightStatusTextField" = NSTextField;  
    47                 "_rightView" = NSView;  
    48                 "_scrollView" = NSScrollView;  
    49                 "_splitView" = WISplitView;  
    50                 "_statusBox" = NSBox;  
    51                 "_tableView" = FHTableView;  
    52             };  
    53             SUPERCLASS = WIWindowController;  
    5463        },  
    5564        { 
  • Footagehead/trunk/English.lproj/Window.nib/info.nib

    r4706 r4709  
    1414        <key>IBOpenObjects</key> 
    1515        <array> 
     16                <integer>82</integer> 
    1617                <integer>7</integer> 
    1718                <integer>52</integer> 
    18                 <integer>82</integer> 
     19                <integer>65</integer> 
    1920        </array> 
    2021        <key>IBSystem Version</key> 
    21         <string>8P135</string> 
     22        <string>8P2137</string> 
    2223</dict> 
    2324</plist> 
  • Footagehead/trunk/FHBrowserWindowController.h

    r4706 r4709  
    3030@class FHImageLoader, FHHandler; 
    3131 
    32 @interface FHWindowController : WIWindowController { 
    33         IBOutlet NSBox                                                 *_contentBox; 
    34         IBOutlet WISplitView                                   *_splitView; 
    35         IBOutlet NSView                                                *_leftView; 
    36         IBOutlet FHTableView                                   *_tableView; 
    37         IBOutlet NSTableColumn                                 *_fileTableColumn; 
    38         IBOutlet NSView                                                *_rightView; 
    39         IBOutlet FHImageView                                   *_imageView; 
    40         IBOutlet NSScrollView                                  *_scrollView; 
     32@interface FHBrowserWindowController : WIWindowController { 
     33        IBOutlet NSBox                                  *_contentBox; 
     34        IBOutlet WISplitView                    *_splitView; 
     35        IBOutlet NSView                                 *_leftView; 
     36        IBOutlet FHTableView                    *_tableView; 
     37        IBOutlet NSTableColumn                  *_fileTableColumn; 
     38        IBOutlet NSView                                 *_rightView; 
     39        IBOutlet FHImageView                    *_imageView; 
     40        IBOutlet NSScrollView                   *_scrollView; 
    4141 
    42         IBOutlet NSBox                                                 *_statusBox; 
    43         IBOutlet NSTextField                                   *_leftStatusTextField; 
    44         IBOutlet NSTextField                                   *_rightStatusTextField; 
     42        IBOutlet NSBox                                  *_statusBox; 
     43        IBOutlet NSTextField                    *_leftStatusTextField; 
     44        IBOutlet NSTextField                    *_rightStatusTextField; 
    4545 
    46         IBOutlet NSPanel                                               *_openURLPanel; 
    47         IBOutlet NSTextView                                            *_openURLTextView; 
    48         IBOutlet NSPopUpButton                                 *_openURLPopUpButton; 
     46        IBOutlet NSPanel                                *_openURLPanel; 
     47        IBOutlet NSTextView                             *_openURLTextView; 
     48        IBOutlet NSPopUpButton                  *_openURLPopUpButton; 
    4949 
    50         IBOutlet NSPanel                                               *_openSpotlightPanel; 
    51         IBOutlet NSTextView                                            *_openSpotlightTextView; 
     50        IBOutlet NSPanel                                *_openSpotlightPanel; 
     51        IBOutlet NSTextView                             *_openSpotlightTextView; 
    5252 
    53         FHImageLoader                                                   *_imageLoader; 
    54         FHHandler                                                               *_handler; 
     53        IBOutlet NSPanel                                *_screenPanel; 
     54        IBOutlet NSPopUpButton                  *_screenPopUpButton; 
     55        IBOutlet NSPopUpButton                  *_screenBackgroundPopUpButton; 
     56        IBOutlet NSMenuItem                             *_screenBackgroundBlackMenuItem; 
     57        IBOutlet NSMenuItem                             *_screenBackgroundGrayMenuItem; 
     58        IBOutlet NSMenuItem                             *_screenBackgroundWhiteMenuItem; 
     59        IBOutlet NSButton                               *_screenAutoSwitchButton; 
     60        IBOutlet NSTextField                    *_screenAutoSwitchTextField; 
     61 
     62        FHImageLoader                                   *_imageLoader; 
     63        FHHandler                                               *_handler; 
    5564         
    56         NSMutableDictionary                                            *_toolbarItems; 
     65        NSMutableDictionary                             *_toolbarItems; 
    5766 
    58         NSSize                                                                 _tableViewSize; 
    59         BOOL                                                                   _deletingFile; 
     67        NSSize                                                  _tableViewSize; 
     68        BOOL                                                    _deletingFile; 
    6069} 
    6170 
    6271 
    63 #define FHWindowControllerDidLoadHandler        @"FHWindowControllerDidLoadHandler" 
     72#define FHBrowserWindowControllerDidLoadHandler         @"FHBrowserWindowControllerDidLoadHandler" 
     73#define FHBrowserWindowControllerChangedZoomMode        @"FHBrowserWindowControllerChangedZoomMode" 
    6474 
    6575 
     
    7484- (IBAction)nextPage:(id)sender; 
    7585 
     86- (IBAction)autoSwitch:(id)sender; 
     87 
    7688- (void)loadURL:(WIURL *)url; 
    7789- (WIURL *)URL; 
  • Footagehead/trunk/FHBrowserWindowController.m

    r4706 r4709  
    2727 */ 
    2828 
     29#import "FHBrowserWindowController.h" 
    2930#import "FHCache.h" 
    3031#import "FHFile.h" 
    3132#import "FHFileCell.h" 
     33#import "FHFullscreenWindowController.h" 
    3234#import "FHHandler.h" 
    3335#import "FHImage.h" 
     
    3537#import "FHImageView.h" 
    3638#import "FHSettings.h" 
    37 #import "FHWindowController.h" 
    38  
    39 @interface FHWindowController(Private) 
     39 
     40@interface FHBrowserWindowController(Private) 
    4041 
    4142- (NSToolbar *)_toolbar; 
    4243- (void)_resizeTableView; 
     44- (void)_reloadScreens; 
    4345- (void)_toggleStatusBar:(BOOL)show; 
    4446 
     
    6062 
    6163 
    62 @implementation FHWindowController(Private) 
     64@implementation FHBrowserWindowController(Private) 
    6365 
    6466- (NSToolbar *)_toolbar { 
     
    6870        _toolbarItems = [[NSMutableDictionary alloc] init]; 
    6971 
    70         item = [NSToolbarItem toolbarItemWithIdentifier:@"News
    71                                                                                            name:NSLS(@"News", @"News toolbar item") 
    72                                                                                         content:[NSImage imageNamed:@"News"] 
     72        item = [NSToolbarItem toolbarItemWithIdentifier:@"OpenParent
     73                                                                                           name:NSLS(@"Open Parent", @"Open parent toolbar item") 
     74                                                                                        content:[NSImage imageNamed:@"OpenParent"] 
    7375                                                                                         target:self 
    74                                                                                          action:@selector(news:)]; 
     76                                                                                         action:@selector(openParent:)]; 
     77        [_toolbarItems setObject:item forKey:[item itemIdentifier]]; 
     78 
     79        item = [NSToolbarItem toolbarItemWithIdentifier:@"Reload" 
     80                                                                                           name:NSLS(@"Reload", @"Reload toolbar item") 
     81                                                                                        content:[NSImage imageNamed:@"Reload"] 
     82                                                                                         target:self 
     83                                                                                         action:@selector(reload:)]; 
     84        [_toolbarItems setObject:item forKey:[item itemIdentifier]]; 
     85 
     86        item = [NSToolbarItem toolbarItemWithIdentifier:@"ActualSize" 
     87                                                                                           name:NSLS(@"Actual Size", @"Actual size toolbar item") 
     88                                                                                        content:[NSImage imageNamed:@"ActualSize"] 
     89                                                                                         target:self 
     90                                                                                         action:@selector(zoomMode:)]; 
     91        [item setTag:FHScaleNone]; 
     92        [_toolbarItems setObject:item forKey:[item itemIdentifier]]; 
     93 
     94        item = [NSToolbarItem toolbarItemWithIdentifier:@"ZoomToFit" 
     95                                                                                           name:NSLS(@"Zoom To Fit", @"Zoom to fit toolbar item") 
     96                                                                                        content:[NSImage imageNamed:@"ZoomToFit"] 
     97                                                                                         target:self 
     98                                                                                         action:@selector(zoomMode:)]; 
     99        [item setTag:FHScaleProportionally]; 
     100        [_toolbarItems setObject:item forKey:[item itemIdentifier]]; 
     101 
     102        item = [NSToolbarItem toolbarItemWithIdentifier:@"RotateLeft" 
     103                                                                                           name:NSLS(@"Rotate Left", @"Rotate left toolbar item") 
     104                                                                                        content:[NSImage imageNamed:@"RotateLeft"] 
     105                                                                                         target:self 
     106                                                                                         action:@selector(rotateLeft:)]; 
     107        [_toolbarItems setObject:item forKey:[item itemIdentifier]]; 
     108 
     109        item = [NSToolbarItem toolbarItemWithIdentifier:@"RotateRight" 
     110                                                                                           name:NSLS(@"Rotate Right", @"Rotate right toolbar item") 
     111                                                                                        content:[NSImage imageNamed:@"RotateRight"] 
     112                                                                                         target:self 
     113                                                                                         action:@selector(rotateRight:)]; 
     114        [_toolbarItems setObject:item forKey:[item itemIdentifier]]; 
     115 
     116        item = [NSToolbarItem toolbarItemWithIdentifier:@"RevealInFinder" 
     117                                                                                           name:NSLS(@"Reveal In Finder", @"Reveal in Finder toolbar item") 
     118                                                                                        content:[NSImage imageNamed:@"RevealInFinder"] 
     119                                                                                         target:self 
     120                                                                                         action:@selector(revealInFinder:)]; 
     121        [_toolbarItems setObject:item forKey:[item itemIdentifier]]; 
     122 
     123        item = [NSToolbarItem toolbarItemWithIdentifier:@"MoveToTrash" 
     124                                                                                           name:NSLS(@"Move To Trash", @"Move to trash toolbar item") 
     125                                                                                        content:[NSImage imageNamed:@"MoveToTrash"] 
     126                                                                                         target:self 
     127                                                                                         action:@selector(moveToTrash:)]; 
     128        [_toolbarItems setObject:item forKey:[item itemIdentifier]]; 
     129 
     130        item = [NSToolbarItem toolbarItemWithIdentifier:@"Slideshow" 
     131                                                                                           name:NSLS(@"Slideshow", @"Slideshow toolbar item") 
     132                                                                                        content:[NSImage imageNamed:@"Slideshow"] 
     133                                                                                         target:self 
     134                                                                                         action:@selector(slideshow:)]; 
    75135        [_toolbarItems setObject:item forKey:[item itemIdentifier]]; 
    76136 
     
    92152        [_tableView setRowHeight:size.width]; 
    93153        [_tableView sizeToFitFromContent]; 
     154} 
     155 
     156 
     157 
     158- (void)_reloadScreens { 
     159        NSArray                 *screens; 
     160        NSRect                  frame; 
     161        NSUInteger              i, index, count; 
     162         
     163        index = [_screenPopUpButton indexOfSelectedItem]; 
     164         
     165        [_screenPopUpButton removeAllItems]; 
     166         
     167        screens = [NSScreen screens]; 
     168        count = [screens count]; 
     169         
     170        for(i = 0; i < count; i++) { 
     171                frame = [[screens objectAtIndex:i] frame]; 
     172                 
     173                [_screenPopUpButton addItemWithTitle:[NSSWF:NSLS(@"Screen %u, %.0fx%.0f", @"'Screen 1, 1024x768'"), 
     174                        i + 1, 
     175                        frame.size.width, 
     176                        frame.size.height]]; 
     177        } 
     178         
     179        if(index != NSNotFound && index < count) 
     180                [_screenPopUpButton selectItemAtIndex:index]; 
    94181} 
    95182 
     
    176263         
    177264        [[NSNotificationCenter defaultCenter] 
    178                 postNotificationName:FHWindowControllerDidLoadHandler 
     265                postNotificationName:FHBrowserWindowControllerDidLoadHandler 
    179266                object:_handler]; 
    180267         
     
    359446 
    360447 
    361 @implementation FHWindowController 
     448@implementation FHBrowserWindowController 
    362449 
    363450- (id)init { 
     
    409496        [self _resizeTableView]; 
    410497         
     498        [_openURLPopUpButton selectItemWithTag:[FHSettings intForKey:FHHTMLImageType]]; 
     499 
     500        [self _reloadScreens]; 
     501         
     502        if([FHSettings intForKey:FHFullscreenScreen] < [_screenPopUpButton numberOfItems]) 
     503                [_screenPopUpButton selectItemAtIndex:[FHSettings intForKey:FHFullscreenScreen]]; 
     504 
     505        [_screenBackgroundBlackMenuItem setTag:FHFullscreenBackgroundBlack]; 
     506        [_screenBackgroundBlackMenuItem setImage:[NSImage imageNamed:@"Black"]]; 
     507        [_screenBackgroundGrayMenuItem setTag:FHFullscreenBackgroundGray]; 
     508        [_screenBackgroundGrayMenuItem setImage:[NSImage imageNamed:@"Gray"]]; 
     509        [_screenBackgroundWhiteMenuItem setTag:FHFullscreenBackgroundWhite]; 
     510        [_screenBackgroundWhiteMenuItem setImage:[NSImage imageNamed:@"White"]]; 
     511         
     512        [_screenBackgroundPopUpButton selectItemWithTag:[FHSettings intForKey:FHFullscreenBackground]]; 
     513         
     514        [_screenAutoSwitchButton setState:[FHSettings boolForKey:FHFullscreenAutoSwitch]]; 
     515        [_screenAutoSwitchTextField setEnabled:[FHSettings boolForKey:FHFullscreenAutoSwitch]]; 
     516        [_screenAutoSwitchTextField setIntValue:[FHSettings intForKey:FHFullscreenAutoSwitchTime]]; 
     517 
     518        [[NSNotificationCenter defaultCenter] 
     519                addObserver:self 
     520                   selector:@selector(applicationDidChangeScreenParameters:) 
     521                           name:NSApplicationDidChangeScreenParametersNotification]; 
     522 
    411523        [[NSNotificationCenter defaultCenter] 
    412524                addObserver:self 
     
    424536                   selector:@selector(eventFileWrite:) 
    425537                           name:WIEventFileWriteNotification]; 
    426          
    427         // --- set up fullscreen panel 
    428 /*      [self _reloadScreens]; 
    429          
    430         if([FHSettings intForKey:FHFullscreenScreen] < [_screenPopUpButton numberOfItems]) 
    431                 [_screenPopUpButton selectItemAtIndex:[FHSettings intForKey:FHFullscreenScreen]]; 
    432          
    433         [self _reloadScreenBackgrounds]; 
    434  
    435         [_screenBackgroundPopUpButton selectItemWithTag:[FHSettings intForKey:FHFullscreenBackground]]; 
    436  
    437         [_screenAutoSwitchButton setState:[FHSettings boolForKey:FHFullscreenAutoSwitch]]; 
    438         [_screenAutoSwitchTextField setEnabled:[FHSettings boolForKey:FHFullscreenAutoSwitch]]; 
    439         [_screenAutoSwitchTextField setIntValue:[FHSettings intForKey:FHFullscreenAutoSwitchTime]]; 
    440          
    441         [_imageView setImageScaling:[FHSettings intForKey:FHImageScalingMethod]]; 
    442         [_imageView setImageRotation:[FHSettings floatForKey:FHImageRotation]]; 
    443          
    444         // --- set up URL panel 
    445         [_openURLPopUpButton selectItemWithTag:[FHSettings intForKey:FHHTMLImageType]]; 
    446          
    447         // --- set up status bar 
    448         if(![FHSettings boolForKey:FHShowStatusBar]) 
    449                 [self _toggleStatusBar:NO]; 
    450  
    451         // --- set up toolbar 
    452         [[self window] setToolbar:[self _toolbar]]; 
    453  
    454         // --- create locks 
    455         _loadImageLock          = [[NSConditionLock alloc] initWithCondition:0]; 
    456         _loadThumbnailsLock     = [[NSConditionLock alloc] initWithCondition:0]; 
    457          
    458         // --- create queue 
    459         _queue = [[WIEventQueue alloc] init]; 
    460          
    461         // --- open last directory by default (unset if started by opening a file) 
    462         _openLastURL = YES; 
    463          
    464         // --- build menu 
    465         [_menu removeAllItems]; 
    466         [self _reloadVolumesMenu]; 
    467         [self _addMenuItemWithPath:@"~" keyEquivalent:@"H"]; 
    468         [self _addMenuItemWithPath:@"~/Desktop" keyEquivalent:@"d"]; 
    469          
    470         if([[NSFileManager defaultManager] directoryExistsAtPath:[@"~/Pictures" stringByExpandingTildeInPath]]) 
    471                 [self _addMenuItemWithPath:@"~/Pictures" keyEquivalent:@"P"]; 
    472          
    473         [_menu addItem:(NSMenuItem *) [NSMenuItem separatorItem]]; 
    474         _menuItems++; 
    475          
    476         // --- subscribe to these 
    477         [[[NSWorkspace sharedWorkspace] notificationCenter] 
    478                 addObserver:self 
    479                    selector:@selector(workspaceDidMount:) 
    480                            name:NSWorkspaceDidMountNotification 
    481                          object:NULL]; 
    482  
    483         [[[NSWorkspace sharedWorkspace] notificationCenter] 
    484                 addObserver:self 
    485                    selector:@selector(workspaceDidUnmount:) 
    486                            name:NSWorkspaceDidUnmountNotification 
    487                          object:NULL]; 
    488  
    489         [[[NSWorkspace sharedWorkspace] notificationCenter] 
    490                 addObserver:self 
    491                    selector:@selector(eventFileWrite:) 
    492                            name:WIEventFileWriteNotification 
    493                          object:NULL]; 
    494          
    495         [[NSNotificationCenter defaultCenter] 
    496                 addObserver:self 
    497                    selector:@selector(viewFrameDidChange:) 
    498                            name:NSViewFrameDidChangeNotification 
    499                          object:_tableView]; 
    500  
    501         // --- set from prefs 
    502         [self _updateTableView]; 
    503          
    504         // --- detach loader threads 
    505         [NSThread detachNewThreadSelector:@selector(_loadImageThread:) toTarget:self withObject:NULL]; 
    506         [NSThread detachNewThreadSelector:@selector(_loadThumbnailsThread:) toTarget:self withObject:NULL]; 
    507         [NSThread setThreadPriority:0.75];*/ 
    508538} 
    509539 
     
    512542- (void)windowDidResize:(NSNotification *)notification { 
    513543        [self _updateRightStatus]; 
     544} 
     545 
     546 
     547 
     548- (void)applicationDidChangeScreenParameters:(NSNotification *)notification { 
     549        [self _reloadScreens]; 
    514550} 
    515551 
     
    570606                return YES; 
    571607        } 
     608        else if(selector == @selector(cancelOperation:)) { 
     609                [self cancelSheet:textView]; 
     610 
     611                return YES; 
     612        } 
    572613 
    573614        return NO; 
     
    584625- (NSArray *)toolbarDefaultItemIdentifiers:(NSToolbar *)toolbar { 
    585626        return [NSArray arrayWithObjects: 
    586                 @"News", 
     627                @"OpenParent", 
     628                @"Slideshow", 
     629                @"Reload", 
     630                NSToolbarSeparatorItemIdentifier, 
     631                @"RotateLeft", 
     632                @"RotateRight", 
     633                NSToolbarSeparatorItemIdentifier, 
     634                @"ActualSize", 
     635                @"ZoomToFit", 
     636                NSToolbarSeparatorItemIdentifier, 
     637                @"RevealInFinder", 
     638                @"MoveToTrash", 
     639                NSToolbarFlexibleSpaceItemIdentifier, 
     640                NSToolbarCustomizeToolbarItemIdentifier, 
    587641                NULL]; 
    588642} 
     
    592646- (NSArray *)toolbarAllowedItemIdentifiers:(NSToolbar *)toolbar { 
    593647        return [NSArray arrayWithObjects: 
    594                 @"News", 
     648                @"OpenParent", 
     649                @"Reload", 
     650                @"ActualSize", 
     651                @"ZoomToFit", 
     652                @"RotateLeft", 
     653                @"RotateRight", 
     654                @"RevealInFinder", 
     655                @"MoveToTrash", 
     656                @"Slideshow", 
    595657                NSToolbarSeparatorItemIdentifier, 
    596658                NSToolbarSpaceItemIdentifier, 
     
    662724#pragma mark - 
    663725 
    664 - (BOOL)validateMenuItem:(NSMenuItem *)menuItem { 
    665         WIURL   *url; 
    666         SEL             selector; 
    667  
    668         selector = [menuItem action]; 
    669          
    670         if(selector == @selector(go:)) { 
    671                 url = [menuItem representedObject]; 
    672                  
    673                 if([url isFileURL]) 
    674                         return [[NSFileManager defaultManager] directoryExistsAtPath:[url path]]; 
    675         } 
    676         else if(selector == @selector(openParent:)) { 
     726- (BOOL)validateSelector:(SEL)selector { 
     727        if(selector == @selector(openParent:)) { 
    677728                return [_handler hasParent]; 
    678729        } 
     
    682733                return ([_handler isLocal] && [self _selectedFile]); 
    683734        } 
     735        else if(selector == @selector(slideshow:)) { 
     736                return ([_handler numberOfImages] > 0); 
     737        } 
    684738         
    685739        return YES; 
     740} 
     741 
     742 
     743 
     744- (BOOL)validateMenuItem:(NSMenuItem *)item { 
     745        WIURL   *url; 
     746        SEL             selector; 
     747 
     748        selector = [item action]; 
     749         
     750        if(selector == @selector(go:)) { 
     751                url = [item representedObject]; 
     752                 
     753                if([url isFileURL]) 
     754                        return [[NSFileManager defaultManager] directoryExistsAtPath:[url path]]; 
     755        } 
     756         
     757        return [self validateSelector:selector]; 
     758} 
     759 
     760 
     761 
     762- (BOOL)validateToolbarItem:(NSToolbarItem *)item { 
     763        SEL             selector; 
     764         
     765        selector = [item action]; 
     766         
     767        return [self validateSelector:selector]; 
    686768} 
    687769 
     
    779861                         
    780862                        [self _loadURL:url selectFile:name]; 
     863                        [self _showFile:[self _selectedFile]]; 
    781864                } 
    782865        } 
     
    10221105- (void)zoomMode:(id)sender { 
    10231106        FHImageScaling          scaling; 
    1024          
    1025         [[[sender menu] itemWithTag:[FHSettings intForKey:FHImageScalingMethod]] setState:NSOffState]; 
    1026          
    1027         [sender setState:NSOnState]; 
    10281107 
    10291108        scaling = [sender tag]; 
     
    10321111         
    10331112        [FHSettings setInt:scaling forKey:FHImageScalingMethod]; 
     1113         
     1114        [[NSNotificationCenter defaultCenter] postNotificationName:FHBrowserWindowControllerChangedZoomMode]; 
    10341115 
    10351116        [self _updateRightStatus]; 
     
    10761157 
    10771158 
     1159- (void)slideshow:(id)sender { 
     1160        [NSApp beginSheet:_screenPanel 
     1161           modalForWindow:[self window] 
     1162                modalDelegate:self 
     1163           didEndSelector:@selector(slideshowPanelDidEnd:returnCode:contextInfo:) 
     1164                  contextInfo:NULL]; 
     1165} 
     1166 
     1167 
     1168 
     1169- (void)slideshowPanelDidEnd:(NSOpenPanel *)sheet returnCode:(NSInteger)returnCode contextInfo:(void *)contextInfo { 
     1170        FHFullscreenWindowController    *controller; 
     1171         
     1172        [_screenPanel close]; 
     1173 
     1174        if(returnCode == NSAlertDefaultReturn) { 
     1175                [FHSettings setInt:[_screenPopUpButton indexOfSelectedItem] forKey:FHFullscreenScreen]; 
     1176                [FHSettings setInt:[_screenBackgroundPopUpButton tagOfSelectedItem] forKey:FHFullscreenBackground]; 
     1177                [FHSettings setBool:[_screenAutoSwitchButton state] forKey:FHFullscreenAutoSwitch]; 
     1178                [FHSettings setInt:[_screenAutoSwitchTextField intValue] forKey:FHFullscreenAutoSwitchTime]; 
     1179                 
     1180                controller = [[FHFullscreenWindowController alloc] initWithFiles:[_handler files] index:[_tableView selectedRow]]; 
     1181                [controller showWindow:self]; 
     1182                [controller release]; 
     1183        } 
     1184} 
     1185 
     1186 
     1187 
     1188- (IBAction)autoSwitch:(id)sender { 
     1189        [_screenAutoSwitchTextField setEnabled:[_screenAutoSwitchButton state]]; 
     1190} 
     1191 
     1192 
     1193 
    10781194- (void)toggleStatusBar:(id)sender { 
    10791195        BOOL    show; 
  • Footagehead/trunk/FHController.h

    r4706 r4709  
    2727 */ 
    2828 
    29 @class FHWindowController; 
     29@class FHBrowserWindowController; 
    3030@class FHImageView, FHFullscreenWindow; 
    3131@class FHHandler, FHFile; 
     
    7575        IBOutlet NSTextView                             *_openSpotlightTextView; 
    7676         
    77         FHWindowController                             *_windowController; 
     77        FHBrowserWindowController              *_browserController; 
    7878 
    7979        FHFullscreenWindow                              *_fullscreenWindow; 
  • Footagehead/trunk/FHController.m

    r4706 r4709  
    2828 
    2929#import "NSImage-FHAdditions.h" 
     30#import "FHBrowserWindowController.h" 
    3031#import "FHCache.h" 
    3132#import "FHController.h" 
     
    3738#import "FHImageView.h" 
    3839#import "FHSettings.h" 
    39 #import "FHWindowController.h" 
    4040 
    4141@interface FHController(Private) 
     
    4646- (void)_reloadPathsInGoMenuForHandler:(FHHandler *)handler; 
    4747 
    48 - (void)_reloadScreens; 
    49 - (void)_reloadScreenBackgrounds; 
    50  
    5148- (void)_startSpinning; 
    5249- (void)_stopSpinning; 
    5350