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#ifndef ASH_WM_ASH_FOCUS_RULES_H_
6#define ASH_WM_ASH_FOCUS_RULES_H_
7
8#include "ash/ash_export.h"
9#include "base/basictypes.h"
10#include "base/compiler_specific.h"
11#include "ui/wm/core/base_focus_rules.h"
12
13namespace ash {
14namespace wm {
15
16class ASH_EXPORT AshFocusRules : public ::wm::BaseFocusRules {
17 public:
18  AshFocusRules();
19  virtual ~AshFocusRules();
20
21 private:
22  // Overridden from ::wm::BaseFocusRules:
23  virtual bool SupportsChildActivation(aura::Window* window) const OVERRIDE;
24  virtual bool IsWindowConsideredVisibleForActivation(
25      aura::Window* window) const OVERRIDE;
26  virtual bool CanActivateWindow(aura::Window* window) const OVERRIDE;
27  virtual aura::Window* GetNextActivatableWindow(
28      aura::Window* ignore) const OVERRIDE;
29
30  aura::Window* GetTopmostWindowToActivateForContainerIndex(
31      int index,
32      aura::Window* ignore) const;
33  aura::Window* GetTopmostWindowToActivateInContainer(
34      aura::Window* container,
35      aura::Window* ignore) const;
36
37  DISALLOW_COPY_AND_ASSIGN(AshFocusRules);
38};
39
40}  // namespace wm
41}  // namespace ash
42
43#endif  // ASH_WM_ASH_FOCUS_RULES_H_
44