Index: chrome/browser/views/frame/embedded_frame.cc |
=================================================================== |
--- chrome/browser/views/frame/embedded_frame.cc (revision 0) |
+++ chrome/browser/views/frame/embedded_frame.cc (revision 0) |
@@ -0,0 +1,121 @@ |
+// Copyright (c) 2006-2008 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/frame/embedded_frame.h" |
+ |
+#include "chrome/browser/frame_util.h" |
+#include "chrome/browser/views/frame/browser_view.h" |
+#include "chrome/browser/views/frame/embedded_non_client_view.h" |
+ |
+/////////////////////////////////////////////////////////////////////////////// |
+// EmbeddedFrame, public: |
+ |
+EmbeddedFrame::EmbeddedFrame(BrowserView* browser_view) |
+ : CustomFrameWindow(browser_view, new EmbeddedNonClientView(this, |
+ browser_view)), |
+ browser_view_(browser_view) { |
+ browser_view_->set_frame(this); |
+ set_window_style(WS_CHILD | WS_VISIBLE | WS_CLIPCHILDREN | WS_CLIPSIBLINGS); |
+} |
+ |
+EmbeddedFrame::~EmbeddedFrame() { |
+} |
+ |
+void EmbeddedFrame::Init(HWND parent, const gfx::Rect& bounds) { |
+ CustomFrameWindow::Init(parent, bounds); |
+} |
+ |
+/////////////////////////////////////////////////////////////////////////////// |
+// EmbeddedFrame, BrowserFrame implementation: |
+ |
+gfx::Rect EmbeddedFrame::GetWindowBoundsForClientBounds( |
+ const gfx::Rect& client_bounds) { |
+ return client_bounds; |
+} |
+ |
+void EmbeddedFrame::SizeToContents(const gfx::Rect& contents_bounds) { |
+ SetBounds(contents_bounds); |
+} |
+ |
+gfx::Rect EmbeddedFrame::GetBoundsForTabStrip(TabStrip* tabstrip) const { |
+ return gfx::Rect(0,0,0,0); |
+} |
+ |
+void EmbeddedFrame::UpdateThrobber(bool running) { |
+} |
+ |
+views::Window* EmbeddedFrame::GetWindow() { |
+ return this; |
+} |
+ |
+/////////////////////////////////////////////////////////////////////////////// |
+// EmbeddedFrame, views::CustomFrameWindow overrides: |
+ |
+void EmbeddedFrame::UpdateWindowIcon() { |
+ CustomFrameWindow::UpdateWindowIcon(); |
+} |
+ |
+int EmbeddedFrame::GetShowState() const { |
+ return browser_view_->GetShowState(); |
+} |
+ |
+/////////////////////////////////////////////////////////////////////////////// |
+// EmbeddedFrame, views::ContainerWin overrides: |
+ |
+bool EmbeddedFrame::AcceleratorPressed(views::Accelerator* accelerator) { |
+ return browser_view_->AcceleratorPressed(*accelerator); |
+} |
+ |
+bool EmbeddedFrame::GetAccelerator(int cmd_id, views::Accelerator* accelerator) { |
+ return browser_view_->GetAccelerator(cmd_id, accelerator); |
+} |
+ |
+void EmbeddedFrame::OnEndSession(BOOL ending, UINT logoff) { |
+ FrameUtil::EndSession(); |
+} |
+ |
+void EmbeddedFrame::OnInitMenuPopup(HMENU menu, UINT position, |
+ BOOL is_system_menu) { |
+ browser_view_->PrepareToRunSystemMenu(menu); |
+} |
+ |
+LRESULT EmbeddedFrame::OnMouseActivate(HWND window, UINT hittest_code, |
+ UINT message) { |
+ return browser_view_->ActivateAppModalDialog() ? MA_NOACTIVATEANDEAT |
+ : MA_ACTIVATE; |
+} |
+ |
+void EmbeddedFrame::OnMove(const CPoint& point) { |
+ browser_view_->WindowMoved(); |
+} |
+ |
+void EmbeddedFrame::OnMoving(UINT param, const RECT* new_bounds) { |
+ browser_view_->WindowMoved(); |
+} |
+ |
+LRESULT EmbeddedFrame::OnNCActivate(BOOL active) { |
+ if (browser_view_->ActivateAppModalDialog()) |
+ return TRUE; |
+ |
+ CustomFrameWindow::OnNCActivate(active); |
+ browser_view_->ActivationChanged(!!active); |
+ return TRUE; |
+} |
+ |
+void EmbeddedFrame::OnSysCommand(UINT notification_code, CPoint click) { |
+ if (!browser_view_->SystemCommandReceived(notification_code, |
+ gfx::Point(click))) { |
+ // Use the default implementation for any other command. |
+ CustomFrameWindow::OnSysCommand(notification_code, click); |
+ } |
+} |
+ |
+/////////////////////////////////////////////////////////////////////////////// |
+// EmbeddedFrame, private: |
+ |
+EmbeddedNonClientView* EmbeddedFrame::GetEmbeddedNonClientView() const { |
+ // We can safely assume that this conversion is true. |
+ return static_cast<EmbeddedNonClientView*>(non_client_view_); |
+} |
+ |