Exemplo n.º 1
0
    def getAttributeValue(self, index):
        _type = self.axml.getAttributeValueType(index)
        _data = self.axml.getAttributeValueData(index)

        if _type == self.TYPE_STRING:
            return self.axml.getAttributeValue(index)

        elif _type == self.TYPE_ATTRIBUTE:
            return "?%s%08X" % (self.getPackage(_data), _data)

        elif _type == self.TYPE_REFERENCE:
            return "@%s%08X" % (self.getPackage(_data), _data)

        elif _type == self.TYPE_FLOAT:
            return "%f" % unpack("=f", pack("=L", _data))[0]

        elif _type == self.TYPE_INT_HEX:
            return "0x%08X" % _data

        elif _type == self.TYPE_INT_BOOLEAN:
            if _data == 0:
                return "false"
            return "true"

        elif _type == self.TYPE_DIMENSION:
            return "%f%s" % (Utils.complexToFloat(_data), self.DIMENSION_UNITS[_data & self.COMPLEX_UNIT_MASK])

        elif _type == self.TYPE_FRACTION:
            return "%f%s" % (Utils.complexToFloat(_data) * 100, self.FRACTION_UNITS[_data & self.COMPLEX_UNIT_MASK])

        elif _type >= self.TYPE_FIRST_COLOR_INT and _type <= self.TYPE_LAST_COLOR_INT:
            return "#%08X" % _data

        elif _type >= self.TYPE_FIRST_INT and _type <= self.TYPE_LAST_INT:
            return "%d" % Utils.long_to_int(_data)

        return "<0x%X, type 0x%02X>" % (_data, _type)