16c2af9490927c3c5959b5cb07461b646f8b32f6cKristian Monsen/* 26c2af9490927c3c5959b5cb07461b646f8b32f6cKristian Monsen * Copyright (C) 2010 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 HTMLMeterElement_h 226c2af9490927c3c5959b5cb07461b646f8b32f6cKristian Monsen#define HTMLMeterElement_h 236c2af9490927c3c5959b5cb07461b646f8b32f6cKristian Monsen 246c2af9490927c3c5959b5cb07461b646f8b32f6cKristian Monsen#if ENABLE(METER_TAG) 256c2af9490927c3c5959b5cb07461b646f8b32f6cKristian Monsen#include "HTMLFormControlElement.h" 266c2af9490927c3c5959b5cb07461b646f8b32f6cKristian Monsen 276c2af9490927c3c5959b5cb07461b646f8b32f6cKristian Monsennamespace WebCore { 286c2af9490927c3c5959b5cb07461b646f8b32f6cKristian Monsen 292daae5fd11344eaa88a0d92b0f6d65f8d2255c00Ben Murdochclass MeterValueElement; 302daae5fd11344eaa88a0d92b0f6d65f8d2255c00Ben Murdoch 316c2af9490927c3c5959b5cb07461b646f8b32f6cKristian Monsenclass HTMLMeterElement : public HTMLFormControlElement { 326c2af9490927c3c5959b5cb07461b646f8b32f6cKristian Monsenpublic: 33f05b935882198ccf7d81675736e3aeb089c5113aBen Murdoch static PassRefPtr<HTMLMeterElement> create(const QualifiedName&, Document*, HTMLFormElement*); 346c2af9490927c3c5959b5cb07461b646f8b32f6cKristian Monsen 35545e470e52f0ac6a3a072bf559c796b42c6066b6Ben Murdoch enum GaugeRegion { 36545e470e52f0ac6a3a072bf559c796b42c6066b6Ben Murdoch GaugeRegionOptimum, 37545e470e52f0ac6a3a072bf559c796b42c6066b6Ben Murdoch GaugeRegionSuboptimal, 38545e470e52f0ac6a3a072bf559c796b42c6066b6Ben Murdoch GaugeRegionEvenLessGood 39545e470e52f0ac6a3a072bf559c796b42c6066b6Ben Murdoch }; 40545e470e52f0ac6a3a072bf559c796b42c6066b6Ben Murdoch 416c2af9490927c3c5959b5cb07461b646f8b32f6cKristian Monsen double min() const; 426c2af9490927c3c5959b5cb07461b646f8b32f6cKristian Monsen void setMin(double, ExceptionCode&); 436c2af9490927c3c5959b5cb07461b646f8b32f6cKristian Monsen 446c2af9490927c3c5959b5cb07461b646f8b32f6cKristian Monsen double max() const; 456c2af9490927c3c5959b5cb07461b646f8b32f6cKristian Monsen void setMax(double, ExceptionCode&); 466c2af9490927c3c5959b5cb07461b646f8b32f6cKristian Monsen 476c2af9490927c3c5959b5cb07461b646f8b32f6cKristian Monsen double value() const; 486c2af9490927c3c5959b5cb07461b646f8b32f6cKristian Monsen void setValue(double, ExceptionCode&); 496c2af9490927c3c5959b5cb07461b646f8b32f6cKristian Monsen 506c2af9490927c3c5959b5cb07461b646f8b32f6cKristian Monsen double low() const; 516c2af9490927c3c5959b5cb07461b646f8b32f6cKristian Monsen void setLow(double, ExceptionCode&); 526c2af9490927c3c5959b5cb07461b646f8b32f6cKristian Monsen 536c2af9490927c3c5959b5cb07461b646f8b32f6cKristian Monsen double high() const; 546c2af9490927c3c5959b5cb07461b646f8b32f6cKristian Monsen void setHigh(double, ExceptionCode&); 556c2af9490927c3c5959b5cb07461b646f8b32f6cKristian Monsen 566c2af9490927c3c5959b5cb07461b646f8b32f6cKristian Monsen double optimum() const; 576c2af9490927c3c5959b5cb07461b646f8b32f6cKristian Monsen void setOptimum(double, ExceptionCode&); 586c2af9490927c3c5959b5cb07461b646f8b32f6cKristian Monsen 592daae5fd11344eaa88a0d92b0f6d65f8d2255c00Ben Murdoch double valueRatio() const; 60545e470e52f0ac6a3a072bf559c796b42c6066b6Ben Murdoch GaugeRegion gaugeRegion() const; 612daae5fd11344eaa88a0d92b0f6d65f8d2255c00Ben Murdoch 626c2af9490927c3c5959b5cb07461b646f8b32f6cKristian Monsenprivate: 63f05b935882198ccf7d81675736e3aeb089c5113aBen Murdoch HTMLMeterElement(const QualifiedName&, Document*, HTMLFormElement*); 642daae5fd11344eaa88a0d92b0f6d65f8d2255c00Ben Murdoch virtual ~HTMLMeterElement(); 656c2af9490927c3c5959b5cb07461b646f8b32f6cKristian Monsen 666c2af9490927c3c5959b5cb07461b646f8b32f6cKristian Monsen virtual bool recalcWillValidate() const { return false; } 676c2af9490927c3c5959b5cb07461b646f8b32f6cKristian Monsen virtual const AtomicString& formControlType() const; 686c2af9490927c3c5959b5cb07461b646f8b32f6cKristian Monsen virtual RenderObject* createRenderer(RenderArena*, RenderStyle*); 69e78cbe89e6f337f2f1fe40315be88f742b547151Steve Block virtual void parseMappedAttribute(Attribute*); 704a156157940f51b91eadd76f6c86f862ec0a1da0Ben Murdoch virtual void attach(); 712daae5fd11344eaa88a0d92b0f6d65f8d2255c00Ben Murdoch 722daae5fd11344eaa88a0d92b0f6d65f8d2255c00Ben Murdoch void didElementStateChange(); 732daae5fd11344eaa88a0d92b0f6d65f8d2255c00Ben Murdoch void createShadowSubtree(); 742daae5fd11344eaa88a0d92b0f6d65f8d2255c00Ben Murdoch 752daae5fd11344eaa88a0d92b0f6d65f8d2255c00Ben Murdoch RefPtr<MeterValueElement> m_value; 766c2af9490927c3c5959b5cb07461b646f8b32f6cKristian Monsen}; 776c2af9490927c3c5959b5cb07461b646f8b32f6cKristian Monsen 786c2af9490927c3c5959b5cb07461b646f8b32f6cKristian Monsen} // namespace 796c2af9490927c3c5959b5cb07461b646f8b32f6cKristian Monsen 806c2af9490927c3c5959b5cb07461b646f8b32f6cKristian Monsen#endif 816c2af9490927c3c5959b5cb07461b646f8b32f6cKristian Monsen#endif 82