summaryrefslogtreecommitdiffstats
path: root/webkit
diff options
context:
space:
mode:
authorpinkerton@google.com <pinkerton@google.com@0039d316-1c4b-4281-b951-d872f2087c98>2008-10-24 00:49:09 +0000
committerpinkerton@google.com <pinkerton@google.com@0039d316-1c4b-4281-b951-d872f2087c98>2008-10-24 00:49:09 +0000
commit00ae59c2deb2c60ec7d5e88d767f195954ea6e33 (patch)
tree62f3d051bb04ca9130ba472cf58d3b7f3fe06a75 /webkit
parent8dae36988baabd29b0f6179f2b30083140b0ab44 (diff)
downloadchromium_src-00ae59c2deb2c60ec7d5e88d767f195954ea6e33.zip
chromium_src-00ae59c2deb2c60ec7d5e88d767f195954ea6e33.tar.gz
chromium_src-00ae59c2deb2c60ec7d5e88d767f195954ea6e33.tar.bz2
stub out drawing and hit testing to compile/link on non-windows platforms
Review URL: http://codereview.chromium.org/8127 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@3884 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'webkit')
-rw-r--r--webkit/port/platform/chromium/PlatformScrollBarChromium.cpp46
1 files changed, 45 insertions, 1 deletions
diff --git a/webkit/port/platform/chromium/PlatformScrollBarChromium.cpp b/webkit/port/platform/chromium/PlatformScrollBarChromium.cpp
index 5fe5acb..77d60ed 100644
--- a/webkit/port/platform/chromium/PlatformScrollBarChromium.cpp
+++ b/webkit/port/platform/chromium/PlatformScrollBarChromium.cpp
@@ -27,10 +27,16 @@
// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+// TODO(pinkerton): clearly this needs a lot of work for mac and linux.
+// Right now it has just been stubbed out to get things to compile with fixed
+// geometries.
+
#include "config.h"
#include <algorithm>
+#if PLATFORM(WIN_OS)
#include <windows.h>
#include <vsstyle.h>
+#endif
#include "FrameView.h"
#include "GraphicsContext.h"
#include "IntRect.h"
@@ -44,10 +50,14 @@
#include "graphics/SkiaUtils.h"
#undef LOG
+#if PLATFORM(WIN_OS)
#include "base/gfx/native_theme.h"
-#include "base/gfx/platform_canvas_win.h"
+#endif
+#include "base/gfx/platform_canvas.h"
#include "base/gfx/skia_utils.h"
+#if PLATFORM(WIN_OS)
#include "base/win_util.h"
+#endif
#include "webkit/glue/webframe_impl.h"
#include "webkit/glue/webkit_glue.h"
@@ -79,15 +89,23 @@ static const int kLayoutTestScrollbarThumbGirth = 17;
/*static*/ int PlatformScrollbar::horizontalScrollbarHeight(
ScrollbarControlSize controlSize)
{
+#if PLATFORM(WIN)
return webkit_glue::IsLayoutTestMode() ? kMacScrollbarSize[controlSize] :
GetSystemMetrics(SM_CYHSCROLL);
+#elif PLATFORM(UNIX)
+ return kMacScrollbarSize[controlSize];
+#endif
}
/*static*/ int PlatformScrollbar::verticalScrollbarWidth(
ScrollbarControlSize controlSize)
{
+#if PLATFORM(WIN)
return webkit_glue::IsLayoutTestMode() ? kMacScrollbarSize[controlSize] :
GetSystemMetrics(SM_CXVSCROLL);
+#elif PLATFORM(UNIX)
+ return kMacScrollbarSize[controlSize];
+#endif
}
PlatformScrollbar::PlatformScrollbar(ScrollbarClient* client,
@@ -136,6 +154,7 @@ void PlatformScrollbar::setEnabled(bool enabled)
void PlatformScrollbar::DrawTickmarks(GraphicsContext* context) const
{
+#if PLATFORM(WIN_OS)
// We don't draw on the horizontal scrollbar. It is too confusing
// to have the tickmarks appear on both scrollbars.
const bool horz = orientation() == HorizontalScrollbar;
@@ -220,11 +239,13 @@ void PlatformScrollbar::DrawTickmarks(GraphicsContext* context) const
// Draw the tick-mark as a rounded rect with a slightly curved edge.
canvas->drawBitmap(*dash, track_area.left, y_pos);
}
+#endif
}
// paint in the coordinate space of our parent's content area
void PlatformScrollbar::paint(GraphicsContext* gc, const IntRect& damageRect)
{
+#if PLATFORM(WIN_OS)
if (gc->paintingDisabled())
return;
@@ -317,6 +338,7 @@ void PlatformScrollbar::paint(GraphicsContext* gc, const IntRect& damageRect)
gc->platformContext()->canvas()->endPlatformPaint();
gc->restore();
+#endif
}
void PlatformScrollbar::setFrameGeometry(const IntRect& rect)
@@ -555,8 +577,12 @@ void PlatformScrollbar::setCapturingMouse(bool capturing)
int PlatformScrollbar::scrollButtonGirth(int systemMetricsCode, int limit,
int* backgroundSpan)
{
+#if PLATFORM(WIN_OS)
const int girth = webkit_glue::IsLayoutTestMode() ?
kLayoutTestScrollbarButtonGirth : GetSystemMetrics(systemMetricsCode);
+#elif PLATFORM(UNIX)
+ const int girth = kLayoutTestScrollbarButtonGirth;
+#endif
*backgroundSpan = limit - 2 * girth;
if (*backgroundSpan < 0) {
*backgroundSpan = 0;
@@ -568,14 +594,19 @@ int PlatformScrollbar::scrollButtonGirth(int systemMetricsCode, int limit,
int PlatformScrollbar::scrollThumbGirth(int systemMetricsCode,
int backgroundSpan)
{
+#if PLATFORM(WIN_OS)
const int minimumGirth = webkit_glue::IsLayoutTestMode() ?
kLayoutTestScrollbarThumbGirth : GetSystemMetrics(systemMetricsCode);
+#elif PLATFORM(UNIX)
+ const int minimumGirth = kLayoutTestScrollbarThumbGirth;
+#endif
return std::max<int>(m_visibleSize * backgroundSpan / m_totalSize,
minimumGirth);
}
void PlatformScrollbar::layout()
{
+#if PLATFORM(WIN_OS)
if (!m_needsLayout)
return;
m_needsLayout = false;
@@ -658,6 +689,7 @@ void PlatformScrollbar::layout()
// setting m_needsLayout = true; by the time we reach this point, we're
// called by paint(), so invalidate() is not only unnecessary but will
// waste effort.
+#endif
}
void PlatformScrollbar::updateMousePosition(int x, int y)
@@ -695,6 +727,7 @@ void PlatformScrollbar::updateMousePositionInternal()
int PlatformScrollbar::getThemeState(Segment target) const
{
+#if PLATFORM(WIN_OS)
// When dragging the thumb, draw thumb pressed and other segments normal
// regardless of where the cursor actually is. See also four places in
// getThemeArrowState().
@@ -714,10 +747,14 @@ int PlatformScrollbar::getThemeState(Segment target) const
if (m_captureStart == None)
return SCRBS_HOT;
return (m_captureStart == target) ? SCRBS_PRESSED : SCRBS_NORMAL;
+#elif PLATFORM(UNIX)
+ return 0;
+#endif
}
int PlatformScrollbar::getThemeArrowState(Segment target) const
{
+#if PLATFORM(WIN_OS)
// We could take advantage of knowing the values in the state enum to write
// some simpler code, but treating the state enum as a black box seems
// clearer and more future-proof.
@@ -785,10 +822,14 @@ int PlatformScrollbar::getThemeArrowState(Segment target) const
if (m_captureStart == None)
return ABS_DOWNHOT;
return (m_captureStart == target) ? ABS_DOWNPRESSED : ABS_DOWNNORMAL;
+#elif PLATFORM(UNIX)
+ return 0;
+#endif
}
int PlatformScrollbar::getClassicThemeState(Segment target) const
{
+#if PLATFORM(WIN_OS)
// When dragging the thumb, draw the buttons normal even when hovered.
if (m_captureStart == Thumb)
return 0;
@@ -799,6 +840,9 @@ int PlatformScrollbar::getClassicThemeState(Segment target) const
if (m_captureStart == None)
return DFCS_HOT;
return (m_captureStart == target) ? (DFCS_PUSHED | DFCS_FLAT) : 0;
+#elif PLATFORM(UNIX)
+ return 0;
+#endif
}
} // namespace WebCore