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#include "chrome/browser/ui/views/dropdown_bar_host.h"
6
7#include "base/logging.h"
8#include "ui/aura/window.h"
9#include "ui/events/event.h"
10#include "ui/views/view_constants_aura.h"
11#include "ui/views/widget/widget.h"
12
13using content::NativeWebKeyboardEvent;
14using content::WebContents;
15
16NativeWebKeyboardEvent DropdownBarHost::GetKeyboardEvent(
17     const WebContents* contents,
18     const ui::KeyEvent& key_event) {
19  // NativeWebKeyboardEvent should take a const gfx::NativeEvent, which would
20  // prevent this casting.
21  ui::Event* ui_event =
22      static_cast<ui::Event*>(const_cast<ui::KeyEvent*>(&key_event));
23  return NativeWebKeyboardEvent(ui_event);
24}
25
26void DropdownBarHost::SetWidgetPositionNative(const gfx::Rect& new_pos,
27                                              bool no_redraw) {
28  if (!host_->IsVisible())
29    host_->GetNativeView()->Show();
30  host_->GetNativeView()->SetBounds(new_pos);
31
32  // The z-order of |host_| is controlled by the view specified via
33  // views::kHostViewKey.
34}
35
36void DropdownBarHost::SetHostViewNative(views::View* host_view) {
37  host_->GetNativeView()->SetProperty(views::kHostViewKey, host_view);
38}
39