/*
 * Copyright (C) 2006, 2008 Apple Inc. All rights reserved.
 *
 * This library is free software; you can redistribute it and/or
 * modify it under the terms of the GNU Library General Public
 * License as published by the Free Software Foundation; either
 * version 2 of the License, or (at your option) any later version.
 *
 * This library is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
 * Library General Public License for more details.
 *
 * You should have received a copy of the GNU Library General Public License
 * along with this library; see the file COPYING.LIB.  If not, write to
 * the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
 * Boston, MA 02110-1301, USA.
 */

module css {

    interface [
        GenerateConstructor,
        InterfaceUUID=a286b0cb-4ff0-4482-aa6e-7c5fb39afaba,
        ImplementationUUID=c310c84d-480f-4bbb-9187-28e00956ac47
    ] CSSPrimitiveValue : CSSValue {

        // UnitTypes
        const unsigned short CSS_UNKNOWN    = 0;
        const unsigned short CSS_NUMBER     = 1;
        const unsigned short CSS_PERCENTAGE = 2;
        const unsigned short CSS_EMS        = 3;
        const unsigned short CSS_EXS        = 4;
        const unsigned short CSS_PX         = 5;
        const unsigned short CSS_CM         = 6;
        const unsigned short CSS_MM         = 7;
        const unsigned short CSS_IN         = 8;
        const unsigned short CSS_PT         = 9;
        const unsigned short CSS_PC         = 10;
        const unsigned short CSS_DEG        = 11;
        const unsigned short CSS_RAD        = 12;
        const unsigned short CSS_GRAD       = 13;
        const unsigned short CSS_MS         = 14;
        const unsigned short CSS_S          = 15;
        const unsigned short CSS_HZ         = 16;
        const unsigned short CSS_KHZ        = 17;
        const unsigned short CSS_DIMENSION  = 18;
        const unsigned short CSS_STRING     = 19;
        const unsigned short CSS_URI        = 20;
        const unsigned short CSS_IDENT      = 21;
        const unsigned short CSS_ATTR       = 22;
        const unsigned short CSS_COUNTER    = 23;
        const unsigned short CSS_RECT       = 24;
        const unsigned short CSS_RGBCOLOR   = 25;

        readonly attribute unsigned short primitiveType;

        [OldStyleObjC] void setFloatValue(in unsigned short unitType,
                                          in float floatValue)
            raises(DOMException);
        float getFloatValue(in unsigned short unitType)
            raises(DOMException);
        [OldStyleObjC] void setStringValue(in unsigned short stringType, 
                                           in DOMString stringValue)
            raises(DOMException);
        DOMString getStringValue()
            raises(DOMException);
        Counter getCounterValue()
            raises(DOMException);
        Rect getRectValue()
            raises(DOMException);
#if !defined(LANGUAGE_COM) || !LANGUAGE_COM
        RGBColor getRGBColorValue()
            raises(DOMException);
#endif

    };

}
