// Copyright 2015 The Chromium Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.

#include "sky/shell/mac/sky_application.h"

#include "base/auto_reset.h"
#include "base/logging.h"

@implementation SkyApplication {
  BOOL handlingSendEvent_;
}

+ (void)initialize {
  if (self == [SkyApplication class]) {
    NSApplication* app = [SkyApplication sharedApplication];
    DCHECK([app conformsToProtocol:@protocol(CrAppControlProtocol)])
        << "Existing NSApp (class " << [[app className] UTF8String]
        << ") does not conform to required protocol.";
    DCHECK(base::MessagePumpMac::UsingCrApp())
        << "MessagePumpMac::Create() was called before "
        << "+[SkyApplication initialize]";
  }
}

- (void)sendEvent:(NSEvent*)event {
  base::AutoReset<BOOL> scoper(&handlingSendEvent_, YES);
  [super sendEvent:event];
}

- (void)setHandlingSendEvent:(BOOL)handlingSendEvent {
  handlingSendEvent_ = handlingSendEvent;
}

- (BOOL)isHandlingSendEvent {
  return handlingSendEvent_;
}

@end
