summaryrefslogtreecommitdiffstatshomepage
path: root/scripts/build/complay.py
diff options
context:
space:
mode:
Diffstat (limited to 'scripts/build/complay.py')
-rw-r--r--scripts/build/complay.py16
1 files changed, 10 insertions, 6 deletions
diff --git a/scripts/build/complay.py b/scripts/build/complay.py
index b89ca98e19a..3f2a0d8b6b5 100644
--- a/scripts/build/complay.py
+++ b/scripts/build/complay.py
@@ -99,7 +99,8 @@ class LayoutChecker(Minifyer):
SHAPES = frozenset(('disk', 'dotmatrix', 'dotmatrix5dot', 'dotmatrixdot', 'led14seg', 'led14segsc', 'led16seg', 'led16segsc', 'led7seg', 'led8seg_gts1', 'rect'))
OBJECTS = frozenset(('backdrop', 'bezel', 'cpanel', 'marquee', 'overlay'))
ORIENTATIONS = frozenset((0, 90, 180, 270))
- YESNO = frozenset(("yes", "no"))
+ YESNO = frozenset(('yes', 'no'))
+ BLENDMODES = frozenset(('none', 'alpha', 'multiply', 'add'))
def __init__(self, output, **kwargs):
super(LayoutChecker, self).__init__(output=output, **kwargs)
@@ -445,11 +446,14 @@ class LayoutChecker(Minifyer):
self.handlers.pop()
def groupViewStartHandler(self, name, attrs):
- if name in self.OBJECTS:
- if 'element' not in attrs:
- self.handleError('Element %s missing attribute element' % (name, ))
- elif attrs['element'] not in self.referenced_elements:
- self.referenced_elements[attrs['element']] = self.formatLocation()
+ if (name in self.OBJECTS) or ('element' == name):
+ refattr = 'ref' if 'element' == name else 'element'
+ if refattr not in attrs:
+ self.handleError('Element %s missing attribute %s' % (name, refattr))
+ elif attrs[refattr] not in self.referenced_elements:
+ self.referenced_elements[attrs[refattr]] = self.formatLocation()
+ if ('blend' in attrs) and (attrs['blend'] not in self.BLENDMODES) and not self.VARPATTERN.match(attrs['blend']):
+ self.handleError('Element %s attribute blend "%s" is unsupported' % (name, attrs['blend']))
if 'inputtag' in attrs:
if 'inputmask' not in attrs:
self.handleError('Element %s has inputtag attribute without inputmask attribute' % (name, ))