| // Copyright (c) 2010 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/chromeos/views/copy_background.h" |
| |
| #include "base/logging.h" |
| #include "ui/gfx/canvas.h" |
| #include "views/background.h" |
| #include "views/view.h" |
| |
| namespace chromeos { |
| |
| CopyBackground::CopyBackground(views::View* copy_from) |
| : background_owner_(copy_from) { |
| DCHECK(background_owner_); |
| DCHECK(background_owner_->background()); |
| } |
| |
| void CopyBackground::Paint(gfx::Canvas* canvas, views::View* view) const { |
| const Background* background = background_owner_->background(); |
| DCHECK(background); |
| gfx::Point origin(0, 0); |
| views::View::ConvertPointToView(view, |
| background_owner_, |
| &origin); |
| canvas->Save(); |
| // Move the origin and paint as if it's paint onto the owner. |
| canvas->TranslateInt(-origin.x(), -origin.y()); |
| background->Paint(canvas, background_owner_); |
| canvas->Restore(); |
| } |
| |
| } // namespace chromeos |