Home | History | Annotate | Download | only in css
      1 /**
      2  * (C) 1999-2003 Lars Knoll (knoll (at) kde.org)
      3  * Copyright (C) 2004, 2005, 2006, 2009 Apple Computer, Inc.
      4  *
      5  * This library is free software; you can redistribute it and/or
      6  * modify it under the terms of the GNU Library General Public
      7  * License as published by the Free Software Foundation; either
      8  * version 2 of the License, or (at your option) any later version.
      9  *
     10  * This library is distributed in the hope that it will be useful,
     11  * but WITHOUT ANY WARRANTY; without even the implied warranty of
     12  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
     13  * Library General Public License for more details.
     14  *
     15  * You should have received a copy of the GNU Library General Public License
     16  * along with this library; see the file COPYING.LIB.  If not, write to
     17  * the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
     18  * Boston, MA 02110-1301, USA.
     19  */
     20 #include "config.h"
     21 #include "ShadowValue.h"
     22 
     23 #include "CSSPrimitiveValue.h"
     24 #include "PlatformString.h"
     25 
     26 namespace WebCore {
     27 
     28 // Used for text-shadow and box-shadow
     29 ShadowValue::ShadowValue(PassRefPtr<CSSPrimitiveValue> _x,
     30     PassRefPtr<CSSPrimitiveValue> _y,
     31     PassRefPtr<CSSPrimitiveValue> _blur,
     32     PassRefPtr<CSSPrimitiveValue> _spread,
     33     PassRefPtr<CSSPrimitiveValue> _style,
     34     PassRefPtr<CSSPrimitiveValue> _color)
     35     : x(_x)
     36     , y(_y)
     37     , blur(_blur)
     38     , spread(_spread)
     39     , style(_style)
     40     , color(_color)
     41 {
     42 }
     43 
     44 String ShadowValue::cssText() const
     45 {
     46     String text("");
     47 
     48     if (color)
     49         text += color->cssText();
     50     if (x) {
     51         if (!text.isEmpty())
     52             text += " ";
     53         text += x->cssText();
     54     }
     55     if (y) {
     56         if (!text.isEmpty())
     57             text += " ";
     58         text += y->cssText();
     59     }
     60     if (blur) {
     61         if (!text.isEmpty())
     62             text += " ";
     63         text += blur->cssText();
     64     }
     65     if (spread) {
     66         if (!text.isEmpty())
     67             text += " ";
     68         text += spread->cssText();
     69     }
     70     if (style) {
     71         if (!text.isEmpty())
     72             text += " ";
     73         text += style->cssText();
     74     }
     75 
     76     return text;
     77 }
     78 
     79 }
     80