diff options
author | davemoore@chromium.org <davemoore@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2009-09-09 23:48:30 +0000 |
---|---|---|
committer | davemoore@chromium.org <davemoore@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2009-09-09 23:48:30 +0000 |
commit | 5c9e97acabd4cdab5adb20d2412a5766b3382856 (patch) | |
tree | ead11654548e0e110cf8c8dce962801d530d54f7 /chrome/browser/views/find_bar_host_gtk.cc | |
parent | 7f01f83fd464fc13cbdb9d377493d1781decf363 (diff) | |
download | chromium_src-5c9e97acabd4cdab5adb20d2412a5766b3382856.zip chromium_src-5c9e97acabd4cdab5adb20d2412a5766b3382856.tar.gz chromium_src-5c9e97acabd4cdab5adb20d2412a5766b3382856.tar.bz2 |
First cut at implementation of FindBar for views / gtk
Also had to implement change notification for TextField on views / gtk
Review URL: http://codereview.chromium.org/200035
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@25819 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'chrome/browser/views/find_bar_host_gtk.cc')
-rwxr-xr-x | chrome/browser/views/find_bar_host_gtk.cc | 73 |
1 files changed, 73 insertions, 0 deletions
diff --git a/chrome/browser/views/find_bar_host_gtk.cc b/chrome/browser/views/find_bar_host_gtk.cc new file mode 100755 index 0000000..6a0989d --- /dev/null +++ b/chrome/browser/views/find_bar_host_gtk.cc @@ -0,0 +1,73 @@ +// Copyright (c) 2006-2009 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 "chrome/browser/views/find_bar_host.h" + +#include <gdk/gdkkeysyms.h> + +#include "chrome/browser/find_bar_controller.h" +#include "chrome/browser/renderer_host/render_view_host.h" +#include "chrome/browser/tab_contents/tab_contents.h" +#include "chrome/browser/views/frame/browser_view.h" +#include "views/widget/widget_gtk.h" + +class FindBarHostWidget : public views::WidgetGtk { + public: + explicit FindBarHostWidget(FindBarHost* find_bar) + : WidgetGtk(TYPE_CHILD), + find_bar_(find_bar) { + // Don't let WidgetGtk manage our lifetime. We want our lifetime to + // coincide with TabContents. + set_delete_on_destroy(false); + } + + void OnDestroy(GtkWidget* widget) { + find_bar_->OnFinalMessage(); + } + + private: + FindBarHost* find_bar_; + + DISALLOW_COPY_AND_ASSIGN(FindBarHostWidget); +}; + +void FindBarHost::UpdateWindowEdges(const gfx::Rect& new_pos) { + // TODO(davemoore) move the windows implementation to CustomFrameWindow so we + // don't have to implement it for gtk + NOTIMPLEMENTED(); +} + +void FindBarHost::AudibleAlert() { + // TODO(davemoore) implement + NOTIMPLEMENTED(); +} + +views::Widget* FindBarHost::CreateHost() { + return new FindBarHostWidget(this); +} + +void FindBarHost::SetDialogPositionNative(const gfx::Rect& new_pos, + bool no_redraw) { + host_->SetBounds(new_pos); + host_->Show(); +} + +void FindBarHost::GetDialogPositionNative(gfx::Rect* avoid_overlapping_rect) { + // TODO(davemoore) implement + NOTIMPLEMENTED(); +} + + +gfx::NativeView FindBarHost::GetNativeView(BrowserView* browser_view) { + return static_cast<views::WidgetGtk*>( + browser_view->GetWidget())->window_contents(); +} + + +NativeWebKeyboardEvent FindBarHost::GetKeyboardEvent( + const TabContents* contents, + const views::Textfield::Keystroke& key_stroke) { + return NativeWebKeyboardEvent(key_stroke.event()); +} + |