from Translator import *
import Property
import Declaration
class SSSRule(SSSDeclaration):
UNKNOWN_RULE = 0
STYLE_RULE = 1
CHARTSET_RULE = 2
IMPORT_RULE = 3
MEDIA_RULE = 4
FONT_FACE_RULE = 5
PAGE_RULE = 6
#// Extensions...
COMMENT_RULE = 7
INCLUDE_RULE = 8
INHERIT_RULE = 9
CONSTANT_RULE = 10
COPY_RULE = 11
declaration = None
_parentStyleSheet = None
_parentRule = None
def __init__(self, sourceText = '', parentStyleSheet = None, parentRule = None):
addLogMessage(get_class(self) + ' creating SSSRule.')
if (parentRule):
super(SSSRule, self).__init__(parentRule)
else:
super(SSSRule, self).__init__(parentStyleSheet)
hss = self._getHostStyleSheet()
pss = self._getParentStyleSheet()
pr = self._getParentRule()
self._parentStyleSheet = parentStyleSheet
self._parentRule = parentRule
self.declaration = SSSDeclarationList(self)
def get(var):
if (var == 'cssText'):
return self.__str__(self)
return super(SSSRule, self).get(var)
def __str__(self):
return ''
def declareVariable(name, value):
addLogMessage("Declaring variable as property, passing to stylesheet...")
return self._parentStyleSheet.declareVariable(name, value)
def isVarSet(name):
if (self.declaration.getPropertyValue(name)):
addLogMessage("Variable name found in " . self)
return True
if (self._parentRule):
addLogMessage("Variable name not found, looking in parent rule...")
return self._parentRule.isVarSet(name)
elif (self._parentStyleSheet):
addLogMessage("Variable name not found, looking in parent stylesheet...")
return self._parentStyleSheet.isVarSet(name)
addLogMessage("Error, rule has not been given parent stylesheet or rule")
return False
def getVar(name):
value = self.declaration.getPropertyValue(name)
if (value):
return value
if (self._parentRule):
return self._parentRule.getVar(name)
elif (self._parentStyleSheet):
return self._parentStyleSheet.getVar(name)
addLogMessage("Error, rule has not been given parent stylesheet or rule")
return False
def getPropertiesAsArray():
return self.declaration.getPropertiesAsArray()
def getConstant(name):
return self._parentStyleSheet.getConstant(name)
def getPropertyValue(propertyName):
return self.declaration.getPropertyValue(propertyName)
def addDeclaration(obj):
self.declaration.appendRule(obj)
return obj
#// Directives:
def addCharsetRule(cssText ):
return self.addDeclaration(SSSCharsetRule(cssText))
def addFontFaceRule(cssText ):
return self.addDeclaration(SSSFontFaceRule(cssText))
def addImportRule(cssText ):
return self.addDeclaration(SSSImportRule(cssText))
def addMediaRule(cssText ):
return self.addDeclaration(SSSMediaRule(cssText))
def addInheritRule(cssText ):
return self.addDeclaration(SSSInheritRule(cssText))
def addCommentRule(cssText ):
return self.addDeclaration(SSSCommentRule(cssText))
def addIncludeRule(cssText ):
return self.addDeclaration(SSSIncludeRule(cssText))
def addConstantRule(cssText ):
return self.addDeclaration(SSSConstantRule(cssText))
def addCopyRule(cssText ):
return self.addDeclaration(SSSCopyRule(cssText))
#// Style Rules:
def addStyleRule(cssText ):
return self.addDeclaration(SSSStyleRule(cssText))
#// Property Declaration
def addProperty(cssText ):
return self.addDeclaration(SSSProperty(cssText))