| Index: third_party/WebKit/WebCore/platform/graphics/chromium/ThemeHelperChromiumWin.cpp
|
| ===================================================================
|
| --- third_party/WebKit/WebCore/platform/graphics/chromium/ThemeHelperChromiumWin.cpp (revision 10194)
|
| +++ third_party/WebKit/WebCore/platform/graphics/chromium/ThemeHelperChromiumWin.cpp (working copy)
|
| @@ -1,104 +0,0 @@
|
| -/*
|
| - * Copyright (c) 2008, 2009, Google Inc. All rights reserved.
|
| - *
|
| - * Redistribution and use in source and binary forms, with or without
|
| - * modification, are permitted provided that the following conditions are
|
| - * met:
|
| - *
|
| - * * Redistributions of source code must retain the above copyright
|
| - * notice, this list of conditions and the following disclaimer.
|
| - * * Redistributions in binary form must reproduce the above
|
| - * copyright notice, this list of conditions and the following disclaimer
|
| - * in the documentation and/or other materials provided with the
|
| - * distribution.
|
| - * * Neither the name of Google Inc. nor the names of its
|
| - * contributors may be used to endorse or promote products derived from
|
| - * this software without specific prior written permission.
|
| - *
|
| - * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
|
| - * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
|
| - * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
|
| - * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
|
| - * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
|
| - * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
|
| - * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
|
| - * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
|
| - * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
|
| - * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
|
| - * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
| - */
|
| -
|
| -#include "config.h"
|
| -#include "ThemeHelperChromiumWin.h"
|
| -
|
| -#include "FloatRect.h"
|
| -#include "GraphicsContext.h"
|
| -
|
| -namespace WebCore {
|
| -
|
| -ThemeHelperWin::ThemeHelperWin(GraphicsContext* context, const IntRect& rect)
|
| - : m_orgContext(context)
|
| - , m_orgMatrix(context->getCTM())
|
| - , m_orgRect(rect)
|
| -{
|
| - if (m_orgMatrix.b() != 0 || m_orgMatrix.c() != 0) { // Check for skew.
|
| - // Complicated effects, make a copy and draw the bitmap there.
|
| - m_type = COPY;
|
| - m_rect.setSize(rect.size());
|
| -
|
| - m_newBuffer.set(ImageBuffer::create(rect.size(), false).release());
|
| -
|
| - // Theme drawing messes with the transparency.
|
| - // FIXME: Ideally, we would leave this transparent, but I was
|
| - // having problems with button drawing, so we fill with white. Buttons
|
| - // looked good with transparent here and no fixing up of the alpha
|
| - // later, but text areas didn't. This makes text areas look good but
|
| - // gives buttons a white halo. Is there a way to fix this? I think
|
| - // buttons actually have antialised edges which is just not possible
|
| - // to handle on a transparent background given that it messes with the
|
| - // alpha channel.
|
| - FloatRect newContextRect(0, 0, rect.width(), rect.height());
|
| - GraphicsContext* newContext = m_newBuffer->context();
|
| - newContext->setFillColor(Color::white);
|
| - newContext->fillRect(newContextRect);
|
| -
|
| - return;
|
| - }
|
| -
|
| - if (m_orgMatrix.a() != 1.0 || m_orgMatrix.d() != 1.0) { // Check for scale.
|
| - // Only a scaling is applied.
|
| - m_type = SCALE;
|
| -
|
| - // Save the transformed coordinates to draw.
|
| - m_rect = m_orgMatrix.mapRect(rect);
|
| -
|
| - m_orgContext->save();
|
| - m_orgContext->concatCTM(m_orgContext->getCTM().inverse());
|
| - return;
|
| - }
|
| -
|
| - // Nothing interesting.
|
| - m_rect = rect;
|
| - m_type = ORIGINAL;
|
| -}
|
| -
|
| -ThemeHelperWin::~ThemeHelperWin()
|
| -{
|
| - switch (m_type) {
|
| - case SCALE:
|
| - m_orgContext->restore();
|
| - break;
|
| - case COPY: {
|
| - // Copy the duplicate bitmap with our control to the original canvas.
|
| - FloatRect destRect(m_orgRect);
|
| - m_newBuffer->context()->platformContext()->canvas()->
|
| - getTopPlatformDevice().fixupAlphaBeforeCompositing();
|
| - m_orgContext->drawImage(m_newBuffer->image(), destRect);
|
| - break;
|
| - }
|
| - case ORIGINAL:
|
| - break;
|
| - }
|
| -}
|
| -
|
| -} // namespace WebCore
|
|
|