"""Suite Type Names Suite: Terminology for Registry data types
Level 1, version 1

Generated from /Volumes/Sap/System Folder/Extensions/AppleScript
AETE/AEUT resource version 1/0, language 0, script 0
"""

import aetools
import MacOS

_code = 'tpnm'

class Type_Names_Suite_Events:

    pass


class PostScript_picture(aetools.ComponentItem):
    """PostScript picture -  """
    want = 'EPS '

class point(aetools.ComponentItem):
    """point - point coordinates """
    want = 'QDpt'

class string(aetools.ComponentItem):
    """string - a string of characters """
    want = 'TEXT'

plain_text = string

plain_text = string

class TIFF_picture(aetools.ComponentItem):
    """TIFF picture -  """
    want = 'TIFF'

class application_dictionary(aetools.ComponentItem):
    """application dictionary -  """
    want = 'aete'

class system_dictionary(aetools.ComponentItem):
    """system dictionary -  """
    want = 'aeut'

class color_table(aetools.ComponentItem):
    """color table -  """
    want = 'clrt'

class menu_item(aetools.ComponentItem):
    """menu item -  """
    want = 'cmen'

class menu(aetools.ComponentItem):
    """menu -  """
    want = 'cmnu'

class double_integer(aetools.ComponentItem):
    """double integer -  """
    want = 'comp'

class type_element_info(aetools.ComponentItem):
    """type element info -  """
    want = 'elin'

class type_event_info(aetools.ComponentItem):
    """type event info - information about an event """
    want = 'evin'

class extended_real(aetools.ComponentItem):
    """extended real -  """
    want = 'exte'

class fixed(aetools.ComponentItem):
    """fixed - a real number """
    want = 'fixd'

class fixed_point(aetools.ComponentItem):
    """fixed point -  """
    want = 'fpnt'

class fixed_rectangle(aetools.ComponentItem):
    """fixed rectangle -  """
    want = 'frct'

class type_class_info(aetools.ComponentItem):
    """type class info - information about properties and elements of a class """
    want = 'gcli'

class location_reference(aetools.ComponentItem):
    """location reference -  """
    want = 'insl'

class long_fixed_point(aetools.ComponentItem):
    """long fixed point -  """
    want = 'lfpt'

class long_fixed_rectangle(aetools.ComponentItem):
    """long fixed rectangle -  """
    want = 'lfrc'

class long_fixed(aetools.ComponentItem):
    """long fixed -  """
    want = 'lfxd'

class long_point(aetools.ComponentItem):
    """long point -  """
    want = 'lpnt'

class long_rectangle(aetools.ComponentItem):
    """long rectangle -  """
    want = 'lrct'

class machine_location(aetools.ComponentItem):
    """machine location -  """
    want = 'mLoc'

class unsigned_integer(aetools.ComponentItem):
    """unsigned integer -  """
    want = 'magn'

class null(aetools.ComponentItem):
    """null -  """
    want = 'null'

class type_property_info(aetools.ComponentItem):
    """type property info -  """
    want = 'pinf'

class type_parameter_info(aetools.ComponentItem):
    """type parameter info -  """
    want = 'pmin'

class bounding_rectangle(aetools.ComponentItem):
    """bounding rectangle - bounding rectangle """
    want = 'qdrt'

class small_integer(aetools.ComponentItem):
    """small integer -  """
    want = 'shor'

class small_real(aetools.ComponentItem):
    """small real -  """
    want = 'sing'

class scrap_styles(aetools.ComponentItem):
    """scrap styles -  """
    want = 'styl'

class type_suite_info(aetools.ComponentItem):
    """type suite info -  """
    want = 'suin'

class target_id(aetools.ComponentItem):
    """target id -  """
    want = 'targ'

class dash_style(aetools.ComponentItem):
    """dash style -  """
    want = 'tdas'

class pixel_map_record(aetools.ComponentItem):
    """pixel map record -  """
    want = 'tpmm'

class RGB16_color(aetools.ComponentItem):
    """RGB16 color -  """
    want = 'tr16'

class RGB96_color(aetools.ComponentItem):
    """RGB96 color -  """
    want = 'tr96'

class rotation(aetools.ComponentItem):
    """rotation -  """
    want = 'trot'

class version(aetools.ComponentItem):
    """version -  """
    want = 'vers'
PostScript_picture._superclassnames = []
PostScript_picture._privpropdict = {
}
PostScript_picture._privelemdict = {
}
point._superclassnames = []
point._privpropdict = {
}
point._privelemdict = {
}
string._superclassnames = []
string._privpropdict = {
}
string._privelemdict = {
}
TIFF_picture._superclassnames = []
TIFF_picture._privpropdict = {
}
TIFF_picture._privelemdict = {
}
application_dictionary._superclassnames = []
application_dictionary._privpropdict = {
}
application_dictionary._privelemdict = {
}
system_dictionary._superclassnames = []
system_dictionary._privpropdict = {
}
system_dictionary._privelemdict = {
}
color_table._superclassnames = []
color_table._privpropdict = {
}
color_table._privelemdict = {
}
menu_item._superclassnames = []
menu_item._privpropdict = {
}
menu_item._privelemdict = {
}
menu._superclassnames = []
menu._privpropdict = {
}
menu._privelemdict = {
}
double_integer._superclassnames = []
double_integer._privpropdict = {
}
double_integer._privelemdict = {
}
type_element_info._superclassnames = []
type_element_info._privpropdict = {
}
type_element_info._privelemdict = {
}
type_event_info._superclassnames = []
type_event_info._privpropdict = {
}
type_event_info._privelemdict = {
}
extended_real._superclassnames = []
extended_real._privpropdict = {
}
extended_real._privelemdict = {
}
fixed._superclassnames = []
fixed._privpropdict = {
}
fixed._privelemdict = {
}
fixed_point._superclassnames = []
fixed_point._privpropdict = {
}
fixed_point._privelemdict = {
}
fixed_rectangle._superclassnames = []
fixed_rectangle._privpropdict = {
}
fixed_rectangle._privelemdict = {
}
type_class_info._superclassnames = []
type_class_info._privpropdict = {
}
type_class_info._privelemdict = {
}
location_reference._superclassnames = []
location_reference._privpropdict = {
}
location_reference._privelemdict = {
}
long_fixed_point._superclassnames = []
long_fixed_point._privpropdict = {
}
long_fixed_point._privelemdict = {
}
long_fixed_rectangle._superclassnames = []
long_fixed_rectangle._privpropdict = {
}
long_fixed_rectangle._privelemdict = {
}
long_fixed._superclassnames = []
long_fixed._privpropdict = {
}
long_fixed._privelemdict = {
}
long_point._superclassnames = []
long_point._privpropdict = {
}
long_point._privelemdict = {
}
long_rectangle._superclassnames = []
long_rectangle._privpropdict = {
}
long_rectangle._privelemdict = {
}
machine_location._superclassnames = []
machine_location._privpropdict = {
}
machine_location._privelemdict = {
}
unsigned_integer._superclassnames = []
unsigned_integer._privpropdict = {
}
unsigned_integer._privelemdict = {
}
null._superclassnames = []
null._privpropdict = {
}
null._privelemdict = {
}
type_property_info._superclassnames = []
type_property_info._privpropdict = {
}
type_property_info._privelemdict = {
}
type_parameter_info._superclassnames = []
type_parameter_info._privpropdict = {
}
type_parameter_info._privelemdict = {
}
bounding_rectangle._superclassnames = []
bounding_rectangle._privpropdict = {
}
bounding_rectangle._privelemdict = {
}
small_integer._superclassnames = []
small_integer._privpropdict = {
}
small_integer._privelemdict = {
}
small_real._superclassnames = []
small_real._privpropdict = {
}
small_real._privelemdict = {
}
scrap_styles._superclassnames = []
scrap_styles._privpropdict = {
}
scrap_styles._privelemdict = {
}
type_suite_info._superclassnames = []
type_suite_info._privpropdict = {
}
type_suite_info._privelemdict = {
}
target_id._superclassnames = []
target_id._privpropdict = {
}
target_id._privelemdict = {
}
dash_style._superclassnames = []
dash_style._privpropdict = {
}
dash_style._privelemdict = {
}
pixel_map_record._superclassnames = []
pixel_map_record._privpropdict = {
}
pixel_map_record._privelemdict = {
}
RGB16_color._superclassnames = []
RGB16_color._privpropdict = {
}
RGB16_color._privelemdict = {
}
RGB96_color._superclassnames = []
RGB96_color._privpropdict = {
}
RGB96_color._privelemdict = {
}
rotation._superclassnames = []
rotation._privpropdict = {
}
rotation._privelemdict = {
}
version._superclassnames = []
version._privpropdict = {
}
version._privelemdict = {
}

#
# Indices of types declared in this module
#
_classdeclarations = {
    'EPS ' : PostScript_picture,
    'QDpt' : point,
    'TEXT' : string,
    'TIFF' : TIFF_picture,
    'aete' : application_dictionary,
    'aeut' : system_dictionary,
    'clrt' : color_table,
    'cmen' : menu_item,
    'cmnu' : menu,
    'comp' : double_integer,
    'elin' : type_element_info,
    'evin' : type_event_info,
    'exte' : extended_real,
    'fixd' : fixed,
    'fpnt' : fixed_point,
    'frct' : fixed_rectangle,
    'gcli' : type_class_info,
    'insl' : location_reference,
    'lfpt' : long_fixed_point,
    'lfrc' : long_fixed_rectangle,
    'lfxd' : long_fixed,
    'lpnt' : long_point,
    'lrct' : long_rectangle,
    'mLoc' : machine_location,
    'magn' : unsigned_integer,
    'null' : null,
    'pinf' : type_property_info,
    'pmin' : type_parameter_info,
    'qdrt' : bounding_rectangle,
    'shor' : small_integer,
    'sing' : small_real,
    'styl' : scrap_styles,
    'suin' : type_suite_info,
    'targ' : target_id,
    'tdas' : dash_style,
    'tpmm' : pixel_map_record,
    'tr16' : RGB16_color,
    'tr96' : RGB96_color,
    'trot' : rotation,
    'vers' : version,
}

_propdeclarations = {
}

_compdeclarations = {
}

_enumdeclarations = {
}
