'''[[[cog
import element_utilities

element_utilities.generate_element('../schemas/uilist_schema.json')
]]]'''
# GENERATED SECTION, DO NOT HAND EDIT
class UIList(UIElement):
	def __init__(self, type, origin, size, justify, anchor, color, alpha, mod_col, mod_alp, scroll_count, scroll, separation):
		self.type = type
		self.origin = origin
		self.size = size
		self.justify = justify
		self.anchor = anchor
		self.color = color
		self.alpha = alpha
		self.mod_col = mod_col
		self.mod_alp = mod_alp
		self.scroll_count = scroll_count
		self.scroll = scroll
		self.separation = separation

# [ Data Getter / Setter ]
	def _get_scroll_count(self):
		return self.__scroll_count

	def _set_scroll_count(self, value):
		if not isinstance(value, int) and not isinstance(value, float):
			raise TypeError("scroll_count must be set to a float or int")
		self.__scroll_count = value

	def _get_scroll(self):
		return self.__scroll

	def _set_scroll(self, value):
		if not isinstance(value, int) and not isinstance(value, float):
			raise TypeError("scroll must be set to a float or int")
		self.__scroll = value

	def _get_separation(self):
		 return self.__separation

	def _set_separation(self, value):
		if not isinstance(value, list):
			raise TypeError("separation must be set to an array")
		if len(value) < 3:
			raise TypeError("separation must have at least 3 elements")
		if len(value) > 3:
			raise TypeError("separation cannot have more than 3 elements")
		for element in value:
			if not isinstance(element, int) and not isinstance(element, float):
				raise TypeError("separation must only contain float or int %s" % str(type(element)))
		self.__separation = value


# [ Public Properties ]
	scroll_count = property(_get_scroll_count, _set_scroll_count) #number
	scroll = property(_get_scroll, _set_scroll) #number
	separation = property(_get_separation, _set_separation) #number array

# [ Backing Properties ]
	__scroll_count = 0 # number
	__scroll = 0 # number
	__separation = [] #number array
# END GENERATED SECTION
#[[[end]]]