def _create_inherited_flag_field(property_): """ Create the field used for an inheritance fast path from an independent CSS property, and return the Field object. """ name_for_methods = NameStyleConverter( property_['name_for_methods']).to_function_name( suffix=['is', 'inherited']) name_source = NameStyleConverter(name_for_methods) return Field( 'inherited_flag', name_for_methods, property_name=property_['name'].original, type_name='bool', wrapper_pointer_name=None, field_template='primitive', size=1, default_value='true', custom_copy=False, custom_compare=False, mutable=False, getter_method_name=name_source.to_function_name(), setter_method_name=name_source.to_function_name(prefix='set'), initial_method_name=name_source.to_function_name(prefix='initial'), computed_style_custom_functions=property_[ "computed_style_custom_functions"], )
def _create_inherited_flag_field(property_): """ Create the field used for an inheritance fast path from an independent CSS property, and return the Field object. """ name_for_methods = join_names(property_['name_for_methods'], 'is', 'inherited') return Field( 'inherited_flag', name_for_methods, property_name=property_['name'], type_name='bool', wrapper_pointer_name=None, field_template='primitive', size=1, default_value='true', custom_copy=False, custom_compare=False, mutable=False, getter_method_name=method_name(name_for_methods), setter_method_name=method_name(['set', name_for_methods]), initial_method_name=method_name(['initial', name_for_methods]), computed_style_custom_functions=property_[ "computed_style_custom_functions"], )
def _create_property_field(property_): """ Create a property field. """ name_for_methods = property_['name_for_methods'] assert property_['default_value'] is not None, \ 'MakeComputedStyleBase requires an default value for all fields, ' \ 'none specified for property ' + property_['name'] type_name = property_['type_name'] if property_['field_template'] == 'keyword': assert property_['field_size'] is None, \ ("'" + property_['name'] + "' is a keyword field, " "so it should not specify a field_size") size = int(math.ceil(math.log(len(property_['keywords']), 2))) elif property_['field_template'] == 'multi_keyword': size = len(property_['keywords']) - 1 # Subtract 1 for 'none' keyword elif property_['field_template'] == 'external': size = None elif property_['field_template'] == 'primitive': # pack bools with 1 bit. size = 1 if type_name == 'bool' else property_["field_size"] elif property_['field_template'] == 'pointer': size = None else: assert property_['field_template'] == 'monotonic_flag', \ "Please use a valid value for field_template" size = 1 return Field( 'property', name_for_methods, property_name=property_['name'].original, inherited=property_['inherited'], independent=property_['independent'], semi_independent_variable=property_['semi_independent_variable'], type_name=property_['type_name'], wrapper_pointer_name=property_['wrapper_pointer_name'], field_template=property_['field_template'], size=size, default_value=property_['default_value'], custom_copy=property_['custom_copy'], custom_compare=property_['custom_compare'], mutable=property_['mutable'], getter_method_name=property_['getter'], setter_method_name=property_['setter'], initial_method_name=property_['initial'], computed_style_custom_functions=property_[ 'computed_style_custom_functions'], )