diff options
Diffstat (limited to 'xfa_test/pdf/control.cc')
-rw-r--r-- | xfa_test/pdf/control.cc | 117 |
1 files changed, 0 insertions, 117 deletions
diff --git a/xfa_test/pdf/control.cc b/xfa_test/pdf/control.cc deleted file mode 100644 index ed911b6b95..0000000000 --- a/xfa_test/pdf/control.cc +++ /dev/null @@ -1,117 +0,0 @@ -// Copyright (c) 2012 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 "pdf/control.h" - -#include "base/logging.h" -#include "pdf/draw_utils.h" - -namespace chrome_pdf { - -Control::Control() - : id_(kInvalidControlId), - visible_(false), - owner_(NULL), - transparency_(kOpaqueAlpha) { -} - -Control::~Control() { -} - -bool Control::Create(uint32 id, const pp::Rect& rc, - bool visible, Owner* owner) { - DCHECK(owner); - if (owner_ || id == kInvalidControlId) - return false; // Already created or id is invalid. - id_ = id; - rc_ = rc; - visible_ = visible; - owner_ = owner; - return true; -} - -bool Control::HandleEvent(const pp::InputEvent& event) { - return false; -} - -void Control::PaintMultipleRects(pp::ImageData* image_data, - const std::list<pp::Rect>& rects) { - DCHECK(rects.size() > 0); - if (rects.size() == 1) { - Paint(image_data, rects.front()); - return; - } - - // Some rects in the input list may overlap. To prevent double - // painting (causes problems with semi-transparent controls) we'll - // paint control into buffer image data only once and copy requested - // rectangles. - pp::ImageData buffer(owner()->GetInstance(), image_data->format(), - rect().size(), false); - if (buffer.is_null()) - return; - - pp::Rect draw_rc = pp::Rect(image_data->size()).Intersect(rect()); - pp::Rect ctrl_rc = pp::Rect(draw_rc.point() - rect().point(), draw_rc.size()); - CopyImage(*image_data, draw_rc, &buffer, ctrl_rc, false); - - // Temporary move control to origin (0,0) and draw it into temp buffer. - // Move to the original position afterward. Since this is going on temp - // buffer, we don't need to invalidate here. - pp::Rect temp = rect(); - MoveTo(pp::Point(0, 0), false); - Paint(&buffer, ctrl_rc); - MoveTo(temp.point(), false); - - std::list<pp::Rect>::const_iterator iter; - for (iter = rects.begin(); iter != rects.end(); ++iter) { - pp::Rect draw_rc = rect().Intersect(*iter); - if (!draw_rc.IsEmpty()) { - // Copy requested rect from the buffer image. - pp::Rect src_rc = draw_rc; - src_rc.Offset(-rect().x(), -rect().y()); - CopyImage(buffer, src_rc, image_data, draw_rc, false); - } - } -} - -void Control::Show(bool visible, bool invalidate) { - if (visible_ != visible) { - visible_ = visible; - if (invalidate) - owner_->Invalidate(id_, rc_); - } -} - -void Control::AdjustTransparency(uint8 transparency, bool invalidate) { - if (transparency_ != transparency) { - transparency_ = transparency; - if (invalidate && visible_) - owner_->Invalidate(id_, rc_); - } -} - -void Control::MoveBy(const pp::Point& offset, bool invalidate) { - pp::Rect old_rc = rc_; - rc_.Offset(offset); - if (invalidate && visible_) { - owner()->Invalidate(id(), old_rc); - owner()->Invalidate(id(), rect()); - } -} - -void Control::SetRect(const pp::Rect& rc, bool invalidate) { - pp::Rect old_rc = rc_; - rc_ = rc; - if (invalidate && visible_) { - owner()->Invalidate(id(), old_rc); - owner()->Invalidate(id(), rect()); - } -} - -void Control::MoveTo(const pp::Point& origin, bool invalidate) { - MoveBy(origin - rc_.point(), invalidate); -} - -} // namespace chrome_pdf |