<?xml version="1.0" encoding="utf-8" standalone="yes"?>

<?xml-stylesheet href="./_c74_ref.xsl" type="text/xsl"?>

<!--This is an automatically generated file. DO NOT EDIT THIS FILE DIRECTLY. Rather, use the _ref.xml files found in the 'edits' folder.-->
<c74object name="dict" module="max" category="Dictionary">
	<digest>
		Create and access dictionaries
	</digest>
	<description>
		Use the <o>dict</o> object to create named dictionaries, clone existing dictionaries, and query existing dictionaries to access their data.
	</description>
	<!--METADATA-->
	<metadatalist>
		<metadata name="author">
			Cycling '74
		</metadata>
		<metadata name="tag">
			Dictionary
		</metadata>
	</metadatalist>
	<!--INLETS-->
	<inletlist>
		<inlet id="0" type="INLET_TYPE">
			<digest>
				dictionary input clones and sends, bang sends
			</digest>
			<description>
				TEXT_HERE
			</description>
		</inlet>
		<inlet id="1" type="INLET_TYPE">
			<digest>
				dictionary input clones but does not send
			</digest>
			<description>
				TEXT_HERE
			</description>
		</inlet>
	</inletlist>
	<!--OUTLETS-->
	<outletlist>
		<outlet id="0" type="OUTLET_TYPE">
			<digest>
				dictionary
			</digest>
			<description>
				TEXT_HERE
			</description>
		</outlet>
		<outlet id="1" type="OUTLET_TYPE">
			<digest>
				value for an invidual key in response to the 'get' message
			</digest>
			<description>
				TEXT_HERE
			</description>
		</outlet>
		<outlet id="2" type="OUTLET_TYPE">
			<digest>
				list of keys in response to 'getkeys' message
			</digest>
			<description>
				List of keys in response to 'getkeys' message, or a boolean in response to the 'contains' message.
			</description>
		</outlet>
		<outlet id="3" type="OUTLET_TYPE">
			<digest>
				list of dictionaries in response to 'getnames' message
			</digest>
			<description>
				TEXT_HERE
			</description>
		</outlet>
	</outletlist>
	<!--ARGUMENTS-->
	<objarglist>
		<objarg name="name" optional="1" type="symbol">
			<digest>
				Name to be associated with this dictionary
			</digest>
			<description>
				Name to be associated with this dictionary. If no argument is given, then a unique name will be generated.
			</description>
		</objarg>
		<objarg name="filename" optional="1" type="symbol">
			<digest>
				Name of a JSON or YAML file to be imported
			</digest>
			<description>
				Name of a JSON or YAML file to be imported into this dictionary on load.
			</description>
		</objarg>
	</objarglist>
	<!--parameter-->
	<parameter />
	<!--MESSAGES-->
	<methodlist>
		<method name="bang">
			<arglist />
			<digest>
				Send a reference to the dictionary from the first outlet.
			</digest>
			<description>
				TEXT_HERE
			</description>
		</method>
		<method name="append">
			<arglist>
				<arg name="key" optional="0" type="symbol" />
				<arg name="value" optional="0" type="list" />
			</arglist>
			<digest>
				Add values to an array.
			</digest>
			<description>
				Add values to the end of an array associated with the specified key.
			</description>
		</method>
		<method name="clear">
			<arglist />
			<digest>
				Erase the contents of the dictionary, restoring to a clean state.
			</digest>
			<description>
				TEXT_HERE
			</description>
		</method>
		<method name="clone">
			<arglist>
				<arg name="name" optional="0" type="symbol" />
			</arglist>
			<digest>
				Make a clone of the incoming dictionary.
			</digest>
			<description>
				Make a clone of the incoming dictionary. If received at the first inlet, send a reference to this new clone from the first outlet. Otherwise just clone the dictionary and don't send it out.
			</description>
		</method>
		<method name="dictionary">
			<arglist>
				<arg name="name" optional="0" type="symbol" />
			</arglist>
			<digest>
				Make a clone of the incoming named-dictionary.
			</digest>
			<description>
				Make a clone of the incoming dictionary. If received at the first inlet, send a reference to this new clone from the first outlet. Otherwise just clone the dictionary and don't send it out.
			</description>
		</method>
		<method name="contains">
			<arglist>
				<arg name="key" optional="0" type="symbol" />
			</arglist>
			<digest>
				Return a 0 or 1 to the third outlet indicating the specified key exists (or doesn't) in the dictionary.
			</digest>
			<description>
				TEXT_HERE
			</description>
		</method>
		<method name="edit">
			<arglist />
			<digest>
				Open a dictionary editor window.
			</digest>
			<description>
				Open the dictionary editor window.
			</description>
		</method>
		<method name="export">
			<arglist>
				<arg name="filename" optional="1" type="symbol" />
			</arglist>
			<digest>
				Write the dictionary contents to a file
			</digest>
			<description>
				Write the dictionary contents to a JSON or YAML file. If no path/filename is provided, a dialog will be presented. The the file format is determined from the file name extension, either '.json' or '.yaml'.
			</description>
		</method>
		<method name="(mouse)">
			<digest>
				Open a dictionary editor window by double-clicking
			</digest>
			<description>
				Double-click a <o>dict</o> object to open a dictionary editor window.
			</description>
		</method>
		<method name="get">
			<arglist>
				<arg name="key" optional="0" type="symbol" />
			</arglist>
			<digest>
				Return the value associated with a key to the second outlet.
			</digest>
			<description>
				TEXT_HERE
			</description>
		</method>
		<method name="getkeys">
			<arglist>
				<arg name="alphabetize" optional="1" type="bool" />
			</arglist>
			<digest>
				Return a list of all the keys in a dictionary to the third outlet.
			</digest>
			<description>
				Return a list of all the keys in a dictionary to the third outlet. By default the keys are sorted according to the order in which keys were added to the dictionary. Use the optional argument to specify alphabetical sorting.
			</description>
		</method>
		<method name="getnames">
			<arglist />
			<digest>
				Return a list of all the dictionaries that currently exist to the fourth outlet.
			</digest>
			<description>
				TEXT_HERE
			</description>
		</method>
		<method name="getsize">
			<arglist>
				<arg name="key" optional="0" type="symbol" />
			</arglist>
			<digest>
				Return the number of values associated with a key to the second outlet.
			</digest>
			<description>
				TEXT_HERE
			</description>
		</method>
		<method name="gettype">
			<arglist>
				<arg name="key" optional="0" type="symbol" />
			</arglist>
			<digest>
				Return the type of the values associated with a key to the second outlet.
			</digest>
			<description>
				TEXT_HERE
			</description>
			<attributelist>
				<attribute name="introduced" get="1" set="1" type="symbol" size="1" value="7.0.0" />
			</attributelist>
		</method>
		<method name="import">
			<arglist>
				<arg name="filename" optional="1" type="symbol" />
			</arglist>
			<digest>
				Read the dictionary contents from a file
			</digest>
			<description>
				Read the dictionary contents from a JSON or YAML file. If no path/filename is provided, a dialog will be presented. The the file format is determined from the file name extension, either '.json' or '.yaml'.
			</description>
		</method>
		<method name="parse">
			<arglist>
				<arg name="key" optional="0" type="symbol" />
				<arg name="value" optional="0" type="symbol" />
			</arglist>
			<digest>
				Replace the content of a dictionary.
			</digest>
			<description>
				Replace the content of a dictionary by providing the new content as JSON.
			</description>
			<attributelist>
				<attribute name="introduced" get="1" set="1" type="symbol" size="1" value="7.0.0" />
			</attributelist>
		</method>
		<method name="pull_from_coll">
			<arglist>
				<arg name="coll-name" optional="0" type="symbol" />
			</arglist>
			<digest>
				Pull the content of a named coll object into the dictionary
			</digest>
			<description>
				Pull the content of a named coll object into the dictionary. The indices in the coll will become the keys, and the values for those indices the values for the dictionary's keys.
			</description>
		</method>
		<method name="push_to_coll">
			<arglist>
				<arg name="coll-name" optional="0" type="symbol" />
			</arglist>
			<digest>
				Push the dictionary's content into a named coll object
			</digest>
			<description>
				Push the dictionary's content into a named coll object. The keys in the dictionary will become the indices in the coll, and the values for those indices the values of the dictionary's keys.
			</description>
		</method>
		<method name="set">
			<arglist>
				<arg name="key" optional="0" type="symbol" />
				<arg name="value" optional="0" type="list" />
			</arglist>
			<digest>
				Set the value for a key to a specified value.
			</digest>
			<description>
				TEXT_HERE
			</description>
		</method>
		<method name="read">
			<arglist>
				<arg name="filename" optional="1" type="symbol" />
			</arglist>
			<digest>
				Read the dictionary contents from a file
			</digest>
			<description>
				Read the dictionary contents from a JSON or YAML file. If no path/filename is provided, a dialog will be presented. The the file format is determined from the file name extension, either '.json' or '.yaml'.
			</description>
		</method>
		<method name="readany">
			<arglist>
				<arg name="filename" optional="1" type="symbol" />
			</arglist>
			<digest>
				Read the dictionary contents from a file
			</digest>
			<description>
				Read the dictionary contents from a JSON or YAML file. If no path/filename is provided, a dialog will be presented. The the file format and extension are not checked. The contents of the file are assumed to be in JSON format.
			</description>
			<attributelist>
				<attribute name="introduced" get="1" set="1" type="symbol" size="1" value="7.0.0" />
			</attributelist>
		</method>
		<method name="remove">
			<arglist>
				<arg name="key" optional="0" type="symbol" />
			</arglist>
			<digest>
				Remove a key and its associated value from the dictionary.
			</digest>
			<description>
				TEXT_HERE
			</description>
		</method>
		<method name="replace">
			<arglist>
				<arg name="key" optional="0" type="symbol" />
				<arg name="value" optional="0" type="list" />
			</arglist>
			<digest>
				Set the value for a key to a specified value, creating heirarchy.
			</digest>
			<description>
				Set the value for a key to a specified value. If a heirarchy is specified for the key, and the heirarchy does not exist, then it will be created in the dictionary.
			</description>
		</method>
		<method name="setparse">
			<arglist>
				<arg name="key" optional="0" type="symbol" />
				<arg name="value" optional="0" type="symbol" />
			</arglist>
			<digest>
				Set the value for a key to a dictionary.
			</digest>
			<description>
				Set the value for a key to dictionary content defined using JSON.
			</description>
			<attributelist>
				<attribute name="introduced" get="1" set="1" type="symbol" size="1" value="7.0.0" />
			</attributelist>
		</method>
		<method name="wclose">
			<arglist />
			<digest>
				Close the dictionary editor window.
			</digest>
			<description>
				Close the dictionary editor window if it is open.
			</description>
			<attributelist>
				<attribute name="introduced" get="1" set="1" type="symbol" size="1" value="7.0.0" />
			</attributelist>
		</method>
		<method name="write">
			<arglist>
				<arg name="filename" optional="1" type="symbol" />
			</arglist>
			<digest>
				Write the dictionary contents to a file
			</digest>
			<description>
				Write the dictionary contents to a JSON or YAML file. If no path/filename is provided, a dialog will be presented. The the file format is determined from the file name extension, either '.json' or '.yaml'.
			</description>
		</method>
		<method name="writeagain">
			<arglist />
			<digest>
				Write the dictionary contents to a file
			</digest>
			<description>
				Write the dictionary contents to a JSON or YAML file. The file provided as an argument for the previous 'write' or 'export' message will be used.
			</description>
		</method>
	</methodlist>
	<!--ATTRIBUTES-->
	<attributelist>
		<attribute name="embed" get="1" set="1" type="int" size="1">
			<digest>
				Save the content of the dictionary with the patcher
			</digest>
			<description>
				Toggles the ability to embed the contents of the <o>dict</o> as part of the main paitch.  If the embed attribute is set to 1, this overrides this attribute on any other dicts with the same name.
			</description>
			<attributelist>
				<attribute name="basic" get="1" set="1" type="int" size="1" value="1" />
				<attribute name="category" get="1" set="1" type="symbol" size="1" value="Storage" />
				<attribute name="label" get="1" set="1" type="symbol" size="1" value="Embed" />
				<attribute name="save" get="1" set="1" type="int" size="1" value="1" />
				<attribute name="style" get="1" set="1" type="symbol" size="1" value="onoff" />
			</attributelist>
		</attribute>
		<attribute name="name" get="1" set="1" type="symbol" size="1">
			<digest>
				Name associated with the dictionary
			</digest>
			<description>
				Name associated with the dictionary. All dictionaries are passed by reference using a symbolic name. If you do not provide a name, a unique name will be generated internally.
			</description>
			<attributelist>
				<attribute name="basic" get="1" set="1" type="int" size="1" value="1" />
				<attribute name="category" get="1" set="1" type="symbol" size="1" value="Dictionary" />
				<attribute name="label" get="1" set="1" type="symbol" size="1" value="Name" />
			</attributelist>
		</attribute>
		<attribute name="parameter_enable" get="1" set="1" type="int" size="1">
			<digest>
				Parameter Mode Enable
			</digest>
			<description>
				TEXT_HERE
			</description>
			<attributelist>
				<attribute name="category" get="1" set="1" type="atom" size="1" value="Parameter" />
				<attribute name="label" get="1" set="1" type="symbol" size="1" value="Parameter Mode Enable" />
				<attribute name="order" get="1" set="1" type="int" size="1" value="1" />
				<attribute name="save" get="1" set="1" type="int" size="1" value="1" />
				<attribute name="style" get="1" set="1" type="symbol" size="1" value="onoff" />
			</attributelist>
		</attribute>
		<attribute name="quiet" get="1" set="1" type="int" size="1">
			<digest>
				Reduce error checking and reporting
			</digest>
			<description>
				Reduce error checking and reporting when operations are performed on the dict. When an error occurs the result will typically be a silent failure when this option is turned-on.
			</description>
			<attributelist>
				<attribute name="basic" get="1" set="1" type="int" size="1" value="1" />
				<attribute name="introduced" get="1" set="1" type="symbol" size="1" value="7.0.0" />
				<attribute name="label" get="1" set="1" type="symbol" size="1" value="Quiet" />
			</attributelist>
		</attribute>
	</attributelist>
	<!--EXAMPLE-->
	<examplelist />
	<!--SEEALSO-->
	<seealsolist>
		<seealso name="dict.view" />
		<seealso name="dict.pack" />
		<seealso name="dict.unpack" />
		<seealso name="dict.group" />
		<seealso name="dict.iter" />
		<seealso name="dict.join" />
		<seealso name="dict.slice" />
		<seealso name="dict.print" />
		<seealso name="dict.route" />
		<seealso name="dict.strip" />
		<seealso name="dict.serialize" />
		<seealso name="dict.deserialize" />
		<seealso name="dictionaries" module="core" type="vignette" />
	</seealsolist>
</c74object>
