#NEWLINE# def resolve( self , name , style = None ) : #NEWLINE# #INDENT# ": Resolve all properties into a single Style.\n\n      This will return a new unnamed style that has as many property\n      values set as possible.  This will use the result of the resolved parent,\n      apply any values set by this style, then finally any values set by the\n      optional style passed into this function.\n\n      = NOTE\n      This will not take into account any custom defined formatter functions.\n\n      = INPUT VARIABLES\n      - name     The name to give to the new resolved style.\n      - style    If specified, this is a style whose property values\n                 supercede any values set by this style.  Only the values\n                 set by 'style' will be used.  This function will *not*\n                 resolve 'style' first, if that is the desired, then you\n                 must call 'resolve' on 'style' before passing it into\n                 this function. \n\n      = RETURN VALUE\n      - Returns a single style with all properties resolved to a value\n        (where possible).\n      " #NEWLINE# if self . parent : #NEWLINE# #INDENT# newStyle = self . parent [ 0 ] . resolve ( name ) #NEWLINE# for p in self . parent [ 1 : ] : #NEWLINE# #INDENT# newStyle . update ( p . resolve ( None ) ) #NEWLINE# #UNINDENT# newStyle . update ( self ) #NEWLINE# #UNINDENT# else : #NEWLINE# #INDENT# newStyle = self . copy ( name ) #NEWLINE# newStyle . parent = None #NEWLINE# newStyle . custom = None #NEWLINE# #UNINDENT# if style : #NEWLINE# #INDENT# newStyle . update ( style ) #NEWLINE# #UNINDENT# return newStyle