Changeset 3017

Show
Ignore:
Timestamp:
06/29/05 15:07:05 (3 years ago)
Author:
morris
Message:

When possible, transfer arrow controls to image view's scroll view to allow scrolling with arrows/pageup/down/space bar

Files:

Legend:

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

    r3006 r3017  
    5353        },  
    5454        {CLASS = FHImageView; LANGUAGE = ObjC; SUPERCLASS = NSView; },  
    55         {CLASS = FHTableView; LANGUAGE = ObjC; SUPERCLASS = ZATableView; },  
     55        { 
     56            CLASS = FHTableView;  
     57            LANGUAGE = ObjC;  
     58            OUTLETS = {"_imageScrollView" = NSScrollView; "_imageView" = FHImageView; };  
     59            SUPERCLASS = ZATableView;  
     60        },  
    5661        { 
    5762            ACTIONS = {cancelSheet = id; submitSheet = id; };  
  • Footagehead/trunk/English.lproj/MainMenu.nib/info.nib

    r3006 r3017  
    1818        <key>IBOpenObjects</key> 
    1919        <array> 
     20                <integer>592</integer> 
    2021                <integer>288</integer> 
    21                 <integer>592</integer> 
     22                <integer>29</integer> 
    2223                <integer>21</integer> 
    23                 <integer>29</integer> 
    2424        </array> 
    2525        <key>IBSystem Version</key> 
  • Footagehead/trunk/FHTableView.h

    r920 r3017  
    1 /* $Id: FHTableView.h,v 1.2 2005/01/08 22:55:46 morris Exp $ */ 
     1/* $Id$ */ 
    22 
    33/* 
     
    2727 */ 
    2828 
    29 @interface FHTableView : ZATableView 
     29@class FHImageView; 
     30 
     31@interface FHTableView : ZATableView { 
     32        IBOutlet FHImageView                    *_imageView; 
     33        IBOutlet NSScrollView                   *_imageScrollView; 
     34
    3035 
    3136@end 
  • Footagehead/trunk/FHTableView.m

    r2948 r3017  
    2828 
    2929#import "FHController.h" 
     30#import "FHImageView.h" 
    3031#import "FHTableView.h" 
    3132 
     
    3334 
    3435- (void)keyDown:(NSEvent *)event { 
     36        NSScroller      *scroller; 
     37        NSRect          rect; 
    3538        unichar         c; 
    36         BOOL            handled = NO; 
     39        BOOL            up, handled = NO; 
    3740         
    3841        c = [event character]; 
    3942         
    4043        if(c == ' ') { 
    41                 if([event modifierFlags] & NSShiftKeyMask) 
    42                         [[self delegate] previousImage:self]; 
    43                 else 
    44                         [[self delegate] nextImage:self]; 
     44                up = ([event modifierFlags] & NSShiftKeyMask) ? YES : NO; 
    4545                 
    46                 handled = YES; 
     46                if([_imageScrollView hasVerticalScroller]) { 
     47                        scroller = [_imageScrollView verticalScroller]; 
     48                         
     49                        if((up && [scroller floatValue] > 0.0f) || (!up && [scroller floatValue] < 1.0f)) { 
     50                                rect = [_imageScrollView documentVisibleRect]; 
     51                                rect.origin.y += up ? rect.size.height : -rect.size.height; 
     52                                [_imageView scrollPoint:rect.origin]; 
     53 
     54                                handled = YES; 
     55                        } 
     56                } 
     57 
     58                if(!handled) { 
     59                        if(up) 
     60                                [[self delegate] previousImage:self]; 
     61                        else 
     62                                [[self delegate] nextImage:self]; 
     63                         
     64                        handled = YES; 
     65                } 
    4766        } 
    48         else if(c == NSPageUpFunctionKey) { 
    49                 [[self delegate] previousPage:self]; 
     67        else if(c == NSPageUpFunctionKey || c == NSPageDownFunctionKey) { 
     68                if([_imageScrollView hasVerticalScroller]) { 
     69                        scroller = [_imageScrollView verticalScroller]; 
     70                         
     71                        if((c == NSPageUpFunctionKey   && [scroller floatValue] > 0.0f) || 
     72                           (c == NSPageDownFunctionKey && [scroller floatValue] < 1.0f)) { 
     73                                rect = [_imageScrollView documentVisibleRect]; 
     74                                rect.origin.y += (c == NSPageUpFunctionKey) ? rect.size.height : -rect.size.height; 
     75                                [_imageView scrollPoint:rect.origin]; 
     76 
     77                                handled = YES; 
     78                        } 
     79                } 
     80 
     81                if(!handled) { 
     82                        if(c == NSPageUpFunctionKey) 
     83                                [[self delegate] previousPage:self]; 
     84                        else 
     85                                [[self delegate] nextPage:self]; 
    5086                 
    51                 handled = YES; 
     87                        handled = YES; 
     88                } 
    5289        } 
    53         else if(c == NSPageDownFunctionKey) { 
    54                 [[self delegate] nextPage:self]; 
    55                  
    56                 handled = YES; 
     90        else if(c == NSUpArrowFunctionKey || c == NSDownArrowFunctionKey) { 
     91                if([_imageScrollView hasVerticalScroller]) { 
     92                        scroller = [_imageScrollView verticalScroller]; 
     93                         
     94                        if((c == NSUpArrowFunctionKey   && [scroller floatValue] > 0.0f) || 
     95                           (c == NSDownArrowFunctionKey && [scroller floatValue] < 1.0f)) { 
     96                                rect = [_imageScrollView documentVisibleRect]; 
     97                                rect.origin.y += (c == NSUpArrowFunctionKey) ? rect.size.height : -rect.size.height; 
     98                                [_imageView scrollPoint:rect.origin]; 
     99 
     100                                handled = YES; 
     101                        } 
     102                } 
     103        } 
     104        else if(c == NSRightArrowFunctionKey || c == NSLeftArrowFunctionKey) { 
     105                if([_imageScrollView hasHorizontalScroller]) { 
     106                        scroller = [_imageScrollView horizontalScroller]; 
     107                         
     108                        if((c == NSRightArrowFunctionKey && [scroller floatValue] < 1.0f) || 
     109                           (c == NSLeftArrowFunctionKey  && [scroller floatValue] > 0.0f)) { 
     110                                rect = [_imageScrollView documentVisibleRect]; 
     111                                rect.origin.x += (c == NSRightArrowFunctionKey) ? rect.size.height : -rect.size.height; 
     112                                [_imageView scrollPoint:rect.origin]; 
     113 
     114                                handled = YES; 
     115                        } 
     116                } 
    57117        } 
    58118         
  • Footagehead/trunk/Japanese.lproj/MainMenu.nib/classes.nib

    r3006 r3017  
    5353        },  
    5454        {CLASS = FHImageView; LANGUAGE = ObjC; SUPERCLASS = NSView; },  
    55         {CLASS = FHTableView; LANGUAGE = ObjC; SUPERCLASS = ZATableView; },  
     55        { 
     56            CLASS = FHTableView;  
     57            LANGUAGE = ObjC;  
     58            OUTLETS = {"_imageScrollView" = NSScrollView; "_imageView" = FHImageView; };  
     59            SUPERCLASS = ZATableView;  
     60        },  
    5661        { 
    5762            ACTIONS = {cancelSheet = id; submitSheet = id; };  
  • Footagehead/trunk/Japanese.lproj/MainMenu.nib/info.nib

    r3006 r3017  
    1616        <key>IBOpenObjects</key> 
    1717        <array> 
     18                <integer>21</integer> 
    1819                <integer>571</integer> 
    19                 <integer>21</integer> 
    2020        </array> 
    2121        <key>IBSystem Version</key>