Home | History | Annotate | Download | only in cocoa
      1 // Copyright (c) 2012 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 #import <Cocoa/Cocoa.h>
      6 
      7 #include "base/memory/scoped_ptr.h"
      8 #import "chrome/browser/ui/cocoa/chrome_event_processing_window.h"
      9 
     10 class AppNotificationBridge;
     11 
     12 namespace info_bubble {
     13 
     14 enum AnimationMask {
     15   kAnimateNone = 0,
     16   kAnimateOrderIn = 1 << 1,
     17   kAnimateOrderOut = 1 << 2,
     18 };
     19 typedef NSUInteger AllowedAnimations;
     20 
     21 }  // namespace info_bubble
     22 
     23 // A rounded window with an arrow used for example when you click on the STAR
     24 // button or that pops up within our first-run UI.
     25 @interface InfoBubbleWindow : ChromeEventProcessingWindow {
     26  @private
     27   // Is self in the process of closing.
     28   BOOL closing_;
     29 
     30   // Specifies if window order in and order out animations are allowed. By
     31   // default both types of animations are allowed.
     32   info_bubble::AllowedAnimations allowedAnimations_;
     33 
     34   // If NO the window will never become key.
     35   // Default YES.
     36   BOOL canBecomeKeyWindow_;
     37 
     38   // If NO the window will not share key state with its parent. Defaults to YES.
     39   // Can be set both by external callers, but is also changed internally, in
     40   // response to resignKeyWindow and becomeKeyWindow events.
     41   BOOL allowShareParentKeyState_;
     42 
     43   // Bridge to proxy Chrome notifications to the window.
     44   scoped_ptr<AppNotificationBridge> notificationBridge_;
     45 }
     46 
     47 @property(nonatomic) info_bubble::AllowedAnimations allowedAnimations;
     48 @property(nonatomic) BOOL canBecomeKeyWindow;
     49 @property(nonatomic) BOOL allowShareParentKeyState;
     50 
     51 // Returns YES if the window is in the process of closing.
     52 // Can't use "windowWillClose" notification because that will be sent
     53 // after the closing animation has completed.
     54 - (BOOL)isClosing;
     55 
     56 @end
     57