<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE dictionary SYSTEM "file://localhost/System/Library/DTDs/sdef.dtd">
<dictionary title="Cog Terminology">
	<suite name="Cog Suite" code="????" description="The standard suite for Cog.">
		<cocoa name="NSCoreSuite"/>
		<enumeration name="save options" code="savo">
			<enumerator name="yes" code="yes " description="Save the file."/>
			<enumerator name="no" code="no  " description="Do not save the file."/>
			<enumerator name="ask" code="ask " description="Ask the user whether or not to save the file."/>
		</enumeration>
		<class name="item" code="cobj" description="A scriptable object.">
			<cocoa class="AbstractObject"/>
			<property name="class" code="pcls" description="The class of the object." type="type" access="r">
				<cocoa key="classCode"/>
			</property>
			<property name="properties" code="pALL" description="All of the object&apos;s properties." type="record">
				<cocoa key="scriptingProperties"/>
			</property>
			<!--
						The blank method declarations are needed to emulate the existing
						NSCoreSuite.scriptSuite.framework.  Ordinarily, you wouldn't do this.
					-->
			<responds-to command="count">
				<cocoa method=""/>
			</responds-to>
			<responds-to command="delete">
				<cocoa method=""/>
			</responds-to>
			<responds-to command="duplicate">
				<cocoa method=""/>
			</responds-to>
			<responds-to command="exists">
				<cocoa method=""/>
			</responds-to>
			<responds-to command="get">
				<cocoa method=""/>
			</responds-to>
			<responds-to command="move">
				<cocoa method=""/>
			</responds-to>
			<responds-to command="set">
				<cocoa method=""/>
			</responds-to>
		</class>
		<class name="application" code="capp" description="Cog&apos;s top level scripting object.">
			<cocoa class="NSApplication"/>
			<element type="window" access="r">
				<cocoa key="orderedWindows"/>
			</element>
			<property name="name" code="pnam" description="The name of the application." type="text" access="r"/>
			<property name="frontmost" code="pisf" description="Is this the frontmost (active) application?" type="boolean" access="r">
				<cocoa key="isActive"/>
			</property>
			<property name="version" code="vers" description="The version of the application." type="text" access="r"/>
			<property name="currentEntry" code="cure" description="The current entry playing." type="playlistentry" access="r">
				<cocoa key="currentEntry"/>
			</property>
			<responds-to command="open">
				<cocoa method="handleOpenScriptCommand:"/>
			</responds-to>
			<responds-to command="quit">
				<cocoa method="handleQuitScriptCommand:"/>
			</responds-to>
			<responds-to command="play">
				<cocoa method="playbackStart:" insert-at-beginning="yes"/>
			</responds-to>
			<responds-to command="pause">
				<cocoa method="playbackPause:" insert-at-beginning="yes"/>
			</responds-to>
			<responds-to command="stop">
				<cocoa method="playbackStop:" insert-at-beginning="yes"/>
			</responds-to>
			<responds-to command="previous">
				<cocoa method="playbackPrevious:" insert-at-beginning="yes"/>
			</responds-to>
			<responds-to command="next">
				<cocoa method="playbackNext:" insert-at-beginning="yes"/>
			</responds-to>
		</class>
		<class name="window" code="cwin" description="A window.">
			<cocoa class="NSWindow"/>
			<property name="name" code="pnam" description="The full title of the window." type="text">
				<cocoa key="title"/>
			</property>
			<property name="id" code="ID  " description="The unique identifier of the window." type="number" access="r">
				<cocoa key="uniqueID"/>
			</property>
			<property name="bounds" code="pbnd" description="The bounding rectangle of the window." type="rectangle">
				<cocoa key="boundsAsQDRect"/>
			</property>
			<property name="document" code="docu" description="The document whose contents are being displayed in the window." type="document" access="r"/>
			<property name="closeable" code="hclb" description="Whether the window has a close box." type="boolean" access="r">
				<cocoa key="hasCloseBox"/>
			</property>
			<property name="titled" code="ptit" description="Whether the window has a title bar." type="boolean" access="r">
				<cocoa key="hasTitleBar"/>
			</property>
			<!-- the type is supposed to be "integer" -->
			<property name="index" code="pidx" description="The index of the window in the back-to-front window ordering." type="number">
				<cocoa key="orderedIndex"/>
			</property>
			<property name="floating" code="isfl" description="Whether the window floats." type="boolean" access="r">
				<cocoa key="isFloatingPanel"/>
			</property>
			<property name="miniaturizable" code="ismn" description="Whether the window can be miniaturized." type="boolean" access="r">
				<cocoa key="isMiniaturizable"/>
			</property>
			<property name="miniaturized" code="pmnd" description="Whether the window is currently miniaturized." type="boolean">
				<cocoa key="isMiniaturized"/>
			</property>
			<property name="modal" code="pmod" description="Whether the window is the application&apos;s current modal window." type="boolean" access="r">
				<cocoa key="isModalPanel"/>
			</property>
			<property name="resizable" code="prsz" description="Whether the window can be resized." type="boolean" access="r">
				<cocoa key="isResizable"/>
			</property>
			<property name="visible" code="pvis" description="Whether the window is currently visible." type="boolean">
				<cocoa key="isVisible"/>
			</property>
			<property name="zoomable" code="iszm" description="Whether the window can be zoomed." type="boolean" access="r">
				<cocoa key="isZoomable"/>
			</property>
			<property name="zoomed" code="pzum" description="Whether the window is currently zoomed." type="boolean">
				<cocoa key="isZoomed"/>
			</property>
			<responds-to command="close">
				<cocoa method="handleCloseScriptCommand:"/>
			</responds-to>
			<responds-to command="print">
				<cocoa method="handlePrintScriptCommand:"/>
			</responds-to>
			<responds-to command="save">
				<cocoa method="handleSaveScriptCommand:"/>
			</responds-to>
		</class>
		<class name="playlistentry" code="cPlE">
			<cocoa class="PlaylistEntry" insert-at-beginning="yes"/>
			<property name="url" code="pURL" description="The URL of the entry." type="file" access="r">
				<cocoa key="url" insert-at-beginning="yes"/>
			</property>
			<property name="album" code="pAlb" description="The album of the entry." type="text" access="r">
				<cocoa key="album" insert-at-beginning="yes"/>
			</property>
			<property name="albumartist" code="pAlA" description="The album artist of the entry." type="text" access="r">
				<cocoa key="albumartist" insert-at-beginning="yes"/>
			</property>
			<property name="artist" code="pArt" description="The artist of the entry" type="text">
				<cocoa key="artist" insert-at-beginning="yes"/>
			</property>
			<property name="composer" code="pCom" description="The composer of the entry" type="text">
				<cocoa key="composer" insert-at-beginning="yes"/>
			</property>
			<property name="title" code="pTit" description="The title of the entry." type="text" access="r">
				<cocoa key="title" insert-at-beginning="yes"/>
			</property>
			<property name="genre" code="pGen" description="The genre of the entry." type="text" access="r">
				<cocoa key="genre" insert-at-beginning="yes"/>
			</property>
			<property name="length" code="pLen" description="The length of the entry, in seconds." type="real" access="r">
				<cocoa key="length" insert-at-beginning="yes"/>
			</property>
			<property name="track" code="pTrk" description="The track number of the entry." type="integer" access="r">
				<cocoa key="track" insert-at-beginning="yes"/>
			</property>
			<property name="disc" code="pDsc" description="The disc number of the entry." type="integer" access="r">
				<cocoa key="disc" insert-at-beginning="yes"/>
			</property>
			<property name="year" code="pYer" description="The year of the entry." type="integer" access="r">
				<cocoa key="year" insert-at-beginning="yes"/>
			</property>
			<property name="date" code="pDat" description="The full date of the entry." type="text" access="r">
				<cocoa key="date" insert-at-beginning="yes"/>
			</property>
			<property name="bitrate" code="pBit" description="The bitrate of the entry, in kilobits per second." type="integer" access="r">
				<cocoa key="bitrate" insert-at-beginning="yes"/>
			</property>
			<property name="playcount" code="pPlc" description="The play count of the entry." type="text" access="r">
				<cocoa key="playCount" insert-at-beginning="yes"/>
			</property>
			<property name="playinfo" code="pPli" description="The play count info of the entry, as either first seen time, or also last played time. May be empty string." type="text" access="r">
				<cocoa key="playCountInfo" access="r"/>
			</property>
			<property name="spam" code="pSpm" description="Formatted now playing spam for the entry." type="text" access="r">
				<cocoa key="spam"/>
			</property>
		</class>
		<!-- The old Standard Suite: run, reopen, open, print, and quit. -->
		<command name="open" code="aevtodoc" description="Open an object."/>
		<command name="quit" code="aevtquit" description="Quit an application.">
			<cocoa class="NSQuitCommand"/>
			<parameter name="saving" code="savo" description="Specifies whether changes should be saved before quitting." type="save options" optional="yes">
				<cocoa key="SaveOptions"/>
			</parameter>
		</command>
		<!-- The old Core Suite: the object model commands, plus a few more. -->
		<command name="close" code="coreclos" description="Close an object.">
			<cocoa class="NSCloseCommand"/>
			<direct-parameter description="the object to close" type="specifier"/>
			<parameter name="saving" code="savo" description="Specifies whether changes should be saved before closing." type="save options" optional="yes">
				<cocoa key="SaveOptions"/>
			</parameter>
			<parameter name="saving in" code="kfil" description="The file in which to save the object." type="file" optional="yes">
				<cocoa key="File"/>
			</parameter>
		</command>
		<command name="count" code="corecnte" description="Return the number of elements of a particular class within an object.">
			<cocoa class="NSCountCommand"/>
			<direct-parameter description="the object whose elements are to be counted" type="specifier"/>
			<parameter name="each" code="kocl" description="The class of objects to be counted." type="type" optional="yes">
				<cocoa key="ObjectClass"/>
			</parameter>
			<result description="the number of elements" type="integer"/>
		</command>
		<command name="delete" code="coredelo" description="Delete an object.">
			<cocoa class="NSDeleteCommand"/>
			<direct-parameter description="the object to delete" type="specifier"/>
		</command>
		<command name="duplicate" code="coreclon" description="Copy object(s) and put the copies at a new location.">
			<cocoa name="Copy" class="NSCloneCommand"/>
			<direct-parameter description="the object(s) to duplicate" type="specifier"/>
			<!-- "duplicate" is supposed to return the new objects.
				<result type="object" description="to the duplicated object(s)"/>
				-->
			<!-- "to" is supposed to be optional. -->
			<parameter name="to" code="insh" description="The location for the new object(s)." type="location specifier">
				<cocoa key="ToLocation"/>
			</parameter>
			<parameter name="with properties" code="prdt" description="Properties to be set in the new duplicated object(s)." type="record" optional="yes">
				<cocoa key="WithProperties"/>
			</parameter>
		</command>
		<command name="exists" code="coredoex" description="Verify if an object exists.">
			<cocoa class="NSExistsCommand"/>
			<direct-parameter description="the object in question" type="specifier"/>
			<result description="true if it exists, false if not" type="boolean"/>
		</command>
		<!-- "get" is supposed to be hidden. -->
		<command name="get" code="coregetd" description="Get the data for an object.">
			<cocoa class="NSGetCommand"/>
			<direct-parameter type="specifier"/>
			<result type="any"/>
		</command>
		<command name="make" code="corecrel" description="Make a new object.">
			<cocoa name="Create" class="NSCreateCommand"/>
			<parameter name="new" code="kocl" description="The class of the new object." type="type">
				<cocoa key="ObjectClass"/>
			</parameter>
			<parameter name="at" code="insh" description="The location at which to insert the object." type="location specifier" optional="yes">
				<cocoa key="Location"/>
			</parameter>
			<parameter name="with data" code="data" description="The initial data for the object." type="any" optional="yes">
				<cocoa key="ObjectData"/>
			</parameter>
			<parameter name="with properties" code="prdt" description="The initial values for properties of the object." type="record" optional="yes">
				<cocoa key="KeyDictionary"/>
			</parameter>
			<result description="to the new object" type="specifier"/>
		</command>
		<command name="move" code="coremove" description="Move object(s) to a new location.">
			<cocoa class="NSMoveCommand"/>
			<direct-parameter description="the object(s) to move" type="specifier"/>
			<!-- "move" is supposed to return the relocated objects.
				<result type="object" description="to the object(s) after they have been moved"/>
				-->
			<parameter name="to" code="insh" description="The new location for the object(s)." type="location specifier">
				<cocoa key="ToLocation"/>
			</parameter>
		</command>
		<command name="play" code="coreplay" description="Begin playback."/>
		<command name="pause" code="corepaus" description="Pause playback."/>
		<command name="stop" code="corestop" description="Stop playback."/>
		<command name="previous" code="coreprev" description="Play previous track."/>
		<command name="next" code="corenext" description="Play next track."/>
	</suite>
</dictionary>
