blob: 530f9ea19f0486c8c25279e6c87b7d870af71a91 [file] [log] [blame]
////////////////////////////////////////////////////////////////////////////////
//
// Licensed to the Apache Software Foundation (ASF) under one or more
// contributor license agreements. See the NOTICE file distributed with
// this work for additional information regarding copyright ownership.
// The ASF licenses this file to You under the Apache License, Version 2.0
// (the "License"); you may not use this file except in compliance with
// the License. You may obtain a copy of the License at
//
// http://www.apache.org/licenses/LICENSE-2.0
//
// Unless required by applicable law or agreed to in writing, software
// distributed under the License is distributed on an "AS IS" BASIS,
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
// See the License for the specific language governing permissions and
// limitations under the License.
//
////////////////////////////////////////////////////////////////////////////////
package com.flexcapacitor.model {
import mx.styles.IStyleClient;
/**
* Contains information on style metadata
* */
public class StyleMetaData extends MetaData {
/**
* Constructor
* */
public function StyleMetaData(item:XML = null, target:* = null) {
if (item) unmarshall(item, target);
}
/**
*
* */
public var inherit:Boolean;
/**
* Set to true if style is defined on the target.
* In other words the user set it in MXML or AS3 and it is not inherited.
* styleClient.getStyle(thisStyle)!==undefined.
* */
public var definedInline:Boolean;
/**
*
* */
public var inheritedValue:*;
/**
*
* */
public var nonInheritedValue:*;
/**
* Import metadata XML Style node into this instance
* */
override public function unmarshall(item:XML, target:* = null, getValue:Boolean = true):void {
super.unmarshall(item, target, getValue);
var args:XMLList = item.arg;
var keyName:String;
var keyValue:String;
for each (var arg:XML in args) {
keyName = arg.@key;
if (keyName=="inherit") {
inherit = keyValue=="no";//bug?
break;
}
}
// this shows if it's defined at all
definedInline = target && target is IStyleClient && target.getStyle(name)!==undefined;
if (!definedInline) {
inheritedValue = target.getStyle(name);
nonInheritedValue = undefined;
value = inheritedValue;
textValue = "" + inheritedValue;
}
else {
// don't know how to get this value -
// UPDATE: there is CSS code in MiniInspector to check if a value is
// set inline or inherited
// we also have the inheritedStyles and nonInherited object on IStyleClient
inheritedValue = undefined;
nonInheritedValue = target.getStyle(name);
value = nonInheritedValue;
textValue = "" + nonInheritedValue;
}
}
}
}