Index: content/browser/tab_contents/tab_contents_view_win.cc |
=================================================================== |
--- content/browser/tab_contents/tab_contents_view_win.cc (revision 0) |
+++ content/browser/tab_contents/tab_contents_view_win.cc (revision 0) |
@@ -0,0 +1,219 @@ |
+// Copyright (c) 2011 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 "content/browser/tab_contents/tab_contents_view_win.h" |
+ |
+#include "content/browser/renderer_host/render_widget_host_view_win.h" |
+#include "content/browser/tab_contents/constrained_window.h" |
+#include "content/browser/tab_contents/interstitial_page.h" |
+#include "content/browser/tab_contents/tab_contents.h" |
+#include "content/browser/tab_contents/tab_contents_delegate.h" |
+ |
+TabContentsViewWin::TabContentsViewWin(TabContents* tab_contents) |
+ : tab_contents_(tab_contents), |
+ view_(NULL) { |
+} |
+ |
+TabContentsViewWin::~TabContentsViewWin() { |
+} |
+ |
+void TabContentsViewWin::CreateView(const gfx::Size& initial_size) { |
+ // temporary until we specify parent |
+ set_window_style(WS_CAPTION | WS_VISIBLE | WS_SYSMENU); |
+ set_window_ex_style(WS_EX_APPWINDOW); |
+ |
+ // TODO(jam): specify a correct parent! |
+ Init(NULL, gfx::Rect(initial_size)); |
+} |
+ |
+RenderWidgetHostView* TabContentsViewWin::CreateViewForWidget( |
+ RenderWidgetHost* render_widget_host) { |
+ if (view_) |
+ delete view_; // TODO(jam): need to do anything else? |
+ |
+ view_ = new RenderWidgetHostViewWin(render_widget_host); |
+ view_->Show(); |
+ return view_; |
+} |
+ |
+gfx::NativeView TabContentsViewWin::GetNativeView() const { |
+ return hwnd(); |
+} |
+ |
+gfx::NativeView TabContentsViewWin::GetContentNativeView() const { |
+ RenderWidgetHostView* rwhv = tab_contents_->GetRenderWidgetHostView(); |
+ return rwhv ? rwhv->GetNativeView() : NULL; |
+} |
+ |
+gfx::NativeWindow TabContentsViewWin::GetTopLevelNativeWindow() const { |
+ // TODO(jam): return parent! |
+ return NULL; |
+} |
+ |
+void TabContentsViewWin::GetContainerBounds(gfx::Rect *out) const { |
+ // Copied from NativeWidgetWin::GetClientAreaScreenBounds(). |
+ RECT r; |
+ GetClientRect(hwnd(), &r); |
+ POINT point = { r.left, r.top }; |
+ ClientToScreen(hwnd(), &point); |
+ *out = gfx::Rect(point.x, point.y, r.right - r.left, r.bottom - r.top); |
+} |
+ |
+void TabContentsViewWin::SetPageTitle(const std::wstring& title) { |
+} |
+ |
+void TabContentsViewWin::OnTabCrashed(base::TerminationStatus status, |
+ int error_code) { |
+} |
+ |
+void TabContentsViewWin::SizeContents(const gfx::Size& size) { |
+ gfx::Rect bounds; |
+ GetContainerBounds(&bounds); |
+ if (bounds.size() != size) { |
+ SetWindowPos(hwnd(), NULL, 0, 0, size.width(), size.height(), |
+ SWP_NOACTIVATE | SWP_NOZORDER | SWP_NOMOVE); |
+ } else { |
+ // Our size matches what we want but the renderers size may not match. |
+ // Pretend we were resized so that the renderers size is updated too. |
+ if (tab_contents_->interstitial_page()) |
+ tab_contents_->interstitial_page()->SetSize(size); |
+ RenderWidgetHostView* rwhv = tab_contents_->GetRenderWidgetHostView(); |
+ if (rwhv) |
+ rwhv->SetSize(size); |
+ } |
+} |
+ |
+void TabContentsViewWin::RenderViewCreated(RenderViewHost* host) { |
+} |
+ |
+void TabContentsViewWin::Focus() { |
+ if (tab_contents_->interstitial_page()) { |
+ tab_contents_->interstitial_page()->Focus(); |
+ return; |
+ } |
+ |
+ if (tab_contents_->constrained_window_count() > 0) { |
+ ConstrainedWindow* window = *tab_contents_->constrained_window_begin(); |
+ DCHECK(window); |
+ window->FocusConstrainedWindow(); |
+ return; |
+ } |
+ |
+ RenderWidgetHostView* rwhv = tab_contents_->GetRenderWidgetHostView(); |
+ if (rwhv) { |
+ rwhv->Focus(); |
+ } else { |
+ SetFocus(hwnd()); |
+ } |
+} |
+ |
+void TabContentsViewWin::SetInitialFocus() { |
+ if (tab_contents_->FocusLocationBarByDefault()) |
+ tab_contents_->SetFocusToLocationBar(false); |
+ else |
+ Focus(); |
+} |
+ |
+void TabContentsViewWin::StoreFocus() { |
+ // TODO(jam): why is this on TabContentsView? |
+ NOTREACHED(); |
+} |
+ |
+void TabContentsViewWin::RestoreFocus() { |
+ NOTREACHED(); |
+} |
+ |
+bool TabContentsViewWin::IsDoingDrag() const { |
+ return false; |
+} |
+ |
+void TabContentsViewWin::CancelDragAndCloseTab() { |
+} |
+ |
+bool TabContentsViewWin::IsEventTracking() const { |
+ return false; |
+} |
+ |
+void TabContentsViewWin::CloseTabAfterEventTracking() { |
+} |
+ |
+void TabContentsViewWin::GetViewBounds(gfx::Rect* out) const { |
+ RECT r; |
+ GetWindowRect(hwnd(), &r); |
+ *out = gfx::Rect(r); |
+} |
+ |
+void TabContentsViewWin::CreateNewWindow( |
+ int route_id, |
+ const ViewHostMsg_CreateWindow_Params& params) { |
+ NOTIMPLEMENTED(); |
+} |
+ |
+ |
+void TabContentsViewWin::CreateNewWidget(int route_id, |
+ WebKit::WebPopupType popup_type) { |
+ NOTIMPLEMENTED(); |
+} |
+ |
+void TabContentsViewWin::CreateNewFullscreenWidget(int route_id) { |
+ NOTIMPLEMENTED(); |
+} |
+ |
+void TabContentsViewWin::ShowCreatedWindow(int route_id, |
+ WindowOpenDisposition disposition, |
+ const gfx::Rect& initial_pos, |
+ bool user_gesture) { |
+ NOTIMPLEMENTED(); |
+} |
+ |
+void TabContentsViewWin::ShowCreatedWidget(int route_id, |
+ const gfx::Rect& initial_pos) { |
+ NOTIMPLEMENTED(); |
+} |
+ |
+void TabContentsViewWin::ShowCreatedFullscreenWidget(int route_id) { |
+ NOTIMPLEMENTED(); |
+} |
+ |
+void TabContentsViewWin::ShowContextMenu(const ContextMenuParams& params) { |
+ NOTIMPLEMENTED(); |
+} |
+ |
+void TabContentsViewWin::ShowPopupMenu(const gfx::Rect& bounds, |
+ int item_height, |
+ double item_font_size, |
+ int selected_item, |
+ const std::vector<WebMenuItem>& items, |
+ bool right_aligned) { |
+ NOTIMPLEMENTED(); |
+} |
+ |
+void TabContentsViewWin::StartDragging(const WebDropData& drop_data, |
+ WebKit::WebDragOperationsMask operations, |
+ const SkBitmap& image, |
+ const gfx::Point& image_offset) { |
+ NOTIMPLEMENTED(); |
+} |
+ |
+void TabContentsViewWin::UpdateDragCursor(WebKit::WebDragOperation operation) { |
+ NOTIMPLEMENTED(); |
+} |
+ |
+void TabContentsViewWin::GotFocus() { |
+ if (tab_contents_->delegate()) |
+ tab_contents_->delegate()->TabContentsFocused(tab_contents_); |
+} |
+ |
+void TabContentsViewWin::TakeFocus(bool reverse) { |
+ if (tab_contents_->delegate()) |
+ tab_contents_->delegate()->TakeFocus(reverse); |
+} |
+ |
+LRESULT TabContentsViewWin::OnClose(UINT message, |
+ WPARAM wparam, |
+ LPARAM lparam, |
+ BOOL& handled) { |
+ MessageLoop::current()->Quit(); |
+ return 0; |
+} |
Property changes on: content\browser\tab_contents\tab_contents_view_win.cc |
___________________________________________________________________ |
Added: svn:eol-style |
+ LF |