Home | History | Annotate | Download | only in cocoa
      1 // Copyright (c) 2009 The Chromium Authors. All rights reserved.
      2 // Use of this source code is governed by a BSD-style license that can be
      3 // found in the LICENSE file.
      4 
      5 #ifndef CHROME_BROWSER_UI_COCOA_MULTI_KEY_EQUIVALENT_BUTTON_H_
      6 #define CHROME_BROWSER_UI_COCOA_MULTI_KEY_EQUIVALENT_BUTTON_H_
      7 
      8 #import <AppKit/AppKit.h>
      9 
     10 #include <vector>
     11 
     12 struct KeyEquivalentAndModifierMask {
     13  public:
     14   KeyEquivalentAndModifierMask() : charCode(nil), mask(0) {}
     15   NSString* charCode;
     16   NSUInteger mask;
     17 };
     18 
     19 // MultiKeyEquivalentButton is an NSButton subclass that is capable of
     20 // responding to additional key equivalents.  It will respond to the ordinary
     21 // NSButton key equivalent set by -setKeyEquivalent: and
     22 // -setKeyEquivalentModifierMask:, and it will also respond to any additional
     23 // equivalents provided to it in a KeyEquivalentAndModifierMask structure
     24 // passed to -addKeyEquivalent:.
     25 
     26 @interface MultiKeyEquivalentButton : NSButton {
     27  @private
     28   std::vector<KeyEquivalentAndModifierMask> extraKeys_;
     29 }
     30 
     31 - (void)addKeyEquivalent:(KeyEquivalentAndModifierMask)key;
     32 
     33 @end
     34 
     35 #endif  // CHROME_BROWSER_UI_COCOA_MULTI_KEY_EQUIVALENT_BUTTON_H_
     36