16c2af9490927c3c5959b5cb07461b646f8b32f6cKristian Monsen/* 26c2af9490927c3c5959b5cb07461b646f8b32f6cKristian Monsen * Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies). 36c2af9490927c3c5959b5cb07461b646f8b32f6cKristian Monsen * 46c2af9490927c3c5959b5cb07461b646f8b32f6cKristian Monsen * This library is free software; you can redistribute it and/or 56c2af9490927c3c5959b5cb07461b646f8b32f6cKristian Monsen * modify it under the terms of the GNU Library General Public 66c2af9490927c3c5959b5cb07461b646f8b32f6cKristian Monsen * License as published by the Free Software Foundation; either 76c2af9490927c3c5959b5cb07461b646f8b32f6cKristian Monsen * version 2 of the License, or (at your option) any later version. 86c2af9490927c3c5959b5cb07461b646f8b32f6cKristian Monsen * 96c2af9490927c3c5959b5cb07461b646f8b32f6cKristian Monsen * This library is distributed in the hope that it will be useful, 106c2af9490927c3c5959b5cb07461b646f8b32f6cKristian Monsen * but WITHOUT ANY WARRANTY; without even the implied warranty of 116c2af9490927c3c5959b5cb07461b646f8b32f6cKristian Monsen * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 126c2af9490927c3c5959b5cb07461b646f8b32f6cKristian Monsen * Library General Public License for more details. 136c2af9490927c3c5959b5cb07461b646f8b32f6cKristian Monsen * 146c2af9490927c3c5959b5cb07461b646f8b32f6cKristian Monsen * You should have received a copy of the GNU Library General Public License 156c2af9490927c3c5959b5cb07461b646f8b32f6cKristian Monsen * along with this library; see the file COPYING.LIB. If not, write to 166c2af9490927c3c5959b5cb07461b646f8b32f6cKristian Monsen * the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, 176c2af9490927c3c5959b5cb07461b646f8b32f6cKristian Monsen * Boston, MA 02110-1301, USA. 186c2af9490927c3c5959b5cb07461b646f8b32f6cKristian Monsen * 196c2af9490927c3c5959b5cb07461b646f8b32f6cKristian Monsen */ 206c2af9490927c3c5959b5cb07461b646f8b32f6cKristian Monsen 216c2af9490927c3c5959b5cb07461b646f8b32f6cKristian Monsen#ifndef RenderMeter_h 226c2af9490927c3c5959b5cb07461b646f8b32f6cKristian Monsen#define RenderMeter_h 236c2af9490927c3c5959b5cb07461b646f8b32f6cKristian Monsen 246c2af9490927c3c5959b5cb07461b646f8b32f6cKristian Monsen#if ENABLE(METER_TAG) 256c2af9490927c3c5959b5cb07461b646f8b32f6cKristian Monsen#include "RenderBlock.h" 266c2af9490927c3c5959b5cb07461b646f8b32f6cKristian Monsen#include "RenderWidget.h" 276c2af9490927c3c5959b5cb07461b646f8b32f6cKristian Monsen 2806ea8e899e48f1f2f396b70e63fae369f2f23232Kristian Monsen 296c2af9490927c3c5959b5cb07461b646f8b32f6cKristian Monsennamespace WebCore { 306c2af9490927c3c5959b5cb07461b646f8b32f6cKristian Monsen 316c2af9490927c3c5959b5cb07461b646f8b32f6cKristian Monsenclass HTMLMeterElement; 326c2af9490927c3c5959b5cb07461b646f8b32f6cKristian Monsen 332daae5fd11344eaa88a0d92b0f6d65f8d2255c00Ben Murdochclass RenderMeter : public RenderBlock { 346c2af9490927c3c5959b5cb07461b646f8b32f6cKristian Monsenpublic: 356c2af9490927c3c5959b5cb07461b646f8b32f6cKristian Monsen RenderMeter(HTMLMeterElement*); 3606ea8e899e48f1f2f396b70e63fae369f2f23232Kristian Monsen virtual ~RenderMeter(); 376c2af9490927c3c5959b5cb07461b646f8b32f6cKristian Monsen 386c2af9490927c3c5959b5cb07461b646f8b32f6cKristian Monsenprivate: 39bec39347bb3bb5bf1187ccaf471d26247f28b585Kristian Monsen virtual void computeLogicalWidth(); 40bec39347bb3bb5bf1187ccaf471d26247f28b585Kristian Monsen virtual void computeLogicalHeight(); 4106ea8e899e48f1f2f396b70e63fae369f2f23232Kristian Monsen 422daae5fd11344eaa88a0d92b0f6d65f8d2255c00Ben Murdoch virtual const char* renderName() const { return "RenderMeter"; } 432daae5fd11344eaa88a0d92b0f6d65f8d2255c00Ben Murdoch virtual bool isMeter() const { return true; } 442daae5fd11344eaa88a0d92b0f6d65f8d2255c00Ben Murdoch virtual bool requiresForcedStyleRecalcPropagation() const { return true; } 452daae5fd11344eaa88a0d92b0f6d65f8d2255c00Ben Murdoch virtual bool canHaveChildren() const { return false; } 464a156157940f51b91eadd76f6c86f862ec0a1da0Ben Murdoch 4706ea8e899e48f1f2f396b70e63fae369f2f23232Kristian Monsen double valueRatio() const; 486c2af9490927c3c5959b5cb07461b646f8b32f6cKristian Monsen}; 496c2af9490927c3c5959b5cb07461b646f8b32f6cKristian Monsen 506c2af9490927c3c5959b5cb07461b646f8b32f6cKristian Monseninline RenderMeter* toRenderMeter(RenderObject* object) 516c2af9490927c3c5959b5cb07461b646f8b32f6cKristian Monsen{ 526c2af9490927c3c5959b5cb07461b646f8b32f6cKristian Monsen ASSERT(!object || object->isMeter()); 536c2af9490927c3c5959b5cb07461b646f8b32f6cKristian Monsen return static_cast<RenderMeter*>(object); 546c2af9490927c3c5959b5cb07461b646f8b32f6cKristian Monsen} 556c2af9490927c3c5959b5cb07461b646f8b32f6cKristian Monsen 566c2af9490927c3c5959b5cb07461b646f8b32f6cKristian Monsen// This will catch anyone doing an unnecessary cast. 576c2af9490927c3c5959b5cb07461b646f8b32f6cKristian Monsenvoid toRenderMeter(const RenderMeter*); 586c2af9490927c3c5959b5cb07461b646f8b32f6cKristian Monsen 596c2af9490927c3c5959b5cb07461b646f8b32f6cKristian Monsen} // namespace WebCore 606c2af9490927c3c5959b5cb07461b646f8b32f6cKristian Monsen 616c2af9490927c3c5959b5cb07461b646f8b32f6cKristian Monsen#endif 626c2af9490927c3c5959b5cb07461b646f8b32f6cKristian Monsen 636c2af9490927c3c5959b5cb07461b646f8b32f6cKristian Monsen#endif // RenderMeter_h 646c2af9490927c3c5959b5cb07461b646f8b32f6cKristian Monsen 65