Changeset 664

Show
Ignore:
Timestamp:
10/24/07 09:46:12 (6 years ago)
Author:
cho45
Message:

lang/ruby/Chemr/CHMDocument.rb,
lang/ruby/Chemr/English.lproj/CHMDocument.nib/info.nib,
lang/ruby/Chemr/English.lproj/CHMDocument.nib/keyedobjects.nib,
lang/ruby/Chemr/English.lproj/CHMDocument.nib/classes.nib:

Psychs さんの助言によりキーバインドが実装できた。
ありがとうございます。
http://subtech.g.hatena.ne.jp/cho45/20071024#c1193174365

Location:
lang/ruby/Chemr
Files:
4 modified

Legend:

Unmodified
Added
Removed
  • lang/ruby/Chemr/CHMDocument.rb

    r661 r664  
    4646end 
    4747 
    48 #class MySearchField < NSSearchField 
    49 # 
    50 #       attr_accessor :list 
    51 # 
    52 #       ib_action :keyDown do |e| 
    53 #               log "keyDown #{e.keyCode} #{e.characters}" 
    54 #       end 
    55 # 
    56 #       ib_action :moveDown do |sender| 
    57 #               log "moveDown" 
    58 #       end 
    59 # 
    60 #       ib_action :mouseDown do |sender| 
    61 #               log "mouseDown" 
    62 #       end 
    63 # 
    64 #       ib_action :moveUp do |sender| 
    65 #               log "moveUp" 
    66 #       end 
    67 # 
    68 #       def performKeyEquivalent(e) 
    69 #               log "performKeyEquivalent" 
    70 #               false 
    71 #       end 
    72 #end 
     48class MySearchWindow < NSWindow 
     49 
     50        def sendEvent(e) 
     51                if e.oc_type == NSKeyDown 
     52                        return if delegate.process_keybinds(e) 
     53                end 
     54                super_sendEvent(e) 
     55        end 
     56 
     57end 
    7358 
    7459 
     
    134119        def controlTextDidEndEditing(anot) 
    135120                log "end #{@now.first.inspect}" 
     121                #jumpToCurrent 
     122        end 
     123 
     124        def jumpToCurrent(sender) 
    136125                browse @now.first[1].first 
    137126        end 
     
    162151        end 
    163152 
     153        def completion(sender) 
     154                # not implemented yet 
     155        end 
     156 
    164157        # from menu 
    165158        def searchActivate(sender) 
     
    181174                end 
    182175        end 
     176 
     177        # from MySearchWindow 
     178 
     179        def process_keybinds(e) 
     180                key = key_string(e) 
     181                log "keyDown (#{e.characters}:#{e.charactersIgnoringModifiers}) -> #{key}" 
     182                keybinds = { 
     183                        "C-j" => self.method(:nextCandidate), 
     184                        "C-k" => self.method(:prevCandidate), 
     185                        "\r"  => self.method(:jumpToCurrent), 
     186                        "\t"  => self.method(:completion), 
     187                } 
     188                if keybinds.key?(key) 
     189                        keybinds[key].call(self) 
     190                        true 
     191                else 
     192                        false 
     193                end 
     194        end 
     195 
     196        def key_string(e) 
     197                key = "" 
     198                m = e.modifierFlags 
     199                key << "S-" if m & NSShiftKeyMask > 0 
     200                key << "C-" if m & NSControlKeyMask > 0 
     201                key << "M-" if m & NSAlternateKeyMask > 0 
     202                key << "%-" if m & NSCommandKeyMask > 0 # TODO 
     203                key << e.charactersIgnoringModifiers 
     204                key 
     205        end 
    183206end 
  • lang/ruby/Chemr/English.lproj/CHMDocument.nib/classes.nib

    r651 r664  
    77            SUPERCLASS = NSWindowController;  
    88        },  
    9         {CLASS = FirstResponder; LANGUAGE = ObjC; SUPERCLASS = NSObject; } 
     9        {CLASS = FirstResponder; LANGUAGE = ObjC; SUPERCLASS = NSObject; },  
     10        {CLASS = MySearchWindow; LANGUAGE = ObjC; SUPERCLASS = NSWindow; } 
    1011    );  
    1112    IBVersion = 1;  
  • lang/ruby/Chemr/English.lproj/CHMDocument.nib/info.nib

    r656 r664  
    88        <dict> 
    99                <key>39</key> 
    10                 <string>532 305 422 473 0 0 1280 778 </string> 
     10                <string>429 291 422 473 0 0 1280 778 </string> 
    1111        </dict> 
    1212        <key>IBFramework Version</key> 
     
    1818        <key>IBOpenObjects</key> 
    1919        <array> 
     20                <integer>39</integer> 
    2021                <integer>5</integer> 
    21                 <integer>39</integer> 
    2222        </array> 
    2323        <key>IBSystem Version</key>