<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE dictionary SYSTEM "file://localhost/System/Library/DTDs/sdef.dtd">

<dictionary title="GitX Terminology">

	<suite name="Standard Suite" code="????" description="Common classes and commands for all applications.">

		<command name="open" code="aevtodoc" description="Open a document.">
			<direct-parameter description="The file(s) to be opened.">
				<type type="file" list="yes"/>
			</direct-parameter>
		</command>

		<command name="close" code="coreclos" description="Close a document.">
			<cocoa class="NSCloseCommand"/>
			<direct-parameter type="specifier" description="the document(s) or window(s) to close."/>
		</command>

		<command name="quit" code="aevtquit" description="Quit the application.">
			<cocoa class="NSQuitCommand"/>
		</command>

		<command name="count" code="corecnte" description="Return the number of elements of a particular class within an object.">
			<cocoa class="NSCountCommand"/>
			<direct-parameter type="specifier" description="The objects to be counted."/>
			<parameter name="each" code="kocl" type="type" optional="yes" description="The class of objects to be counted." hidden="yes">
				<cocoa key="ObjectClass"/>
			</parameter>
			<result type="integer" description="The count."/>
		</command>

		<command name="delete" code="coredelo" description="Delete an object.">
			<cocoa class="NSDeleteCommand"/>
			<direct-parameter type="specifier" description="The object(s) to delete."/>
		</command>

		<command name="duplicate" code="coreclon" description="Copy an object.">
			<cocoa class="NSCloneCommand"/>
			<direct-parameter type="specifier" description="The object(s) to copy."/>
			<parameter name="to" code="insh" type="location specifier" description="The location for the new copy or copies." optional="yes">
				<cocoa key="ToLocation"/>
			</parameter>
			<parameter name="with properties" code="prdt" type="record" description="Properties to set in the new copy or copies right away." optional="yes">
				<cocoa key="WithProperties"/>
			</parameter>
		</command>

		<command name="exists" code="coredoex" description="Verify that an object exists.">
			<cocoa class="NSExistsCommand"/>
			<direct-parameter type="any" description="The object(s) to check."/>
			<result type="boolean" description="Did the object(s) exist?"/>
		</command>

		<command name="make" code="corecrel" description="Create a new object.">
			<cocoa class="NSCreateCommand"/>
			<parameter name="new" code="kocl" type="type" description="The class of the new object.">
				<cocoa key="ObjectClass"/>
			</parameter>
			<parameter name="at" code="insh" type="location specifier" optional="yes" description="The location at which to insert the object.">
				<cocoa key="Location"/>
			</parameter>
			<parameter name="with data" code="data" type="any" optional="yes" description="The initial contents of the object.">
				<cocoa key="ObjectData"/>
			</parameter>
			<parameter name="with properties" code="prdt" type="record" optional="yes" description="The initial values for properties of the object.">
				<cocoa key="KeyDictionary"/>
			</parameter>
			<result type="specifier" description="The new object."/>
		</command>

		<command name="move" code="coremove" description="Move an object to a new location.">
			<cocoa class="NSMoveCommand"/>
			<direct-parameter type="specifier" description="The object(s) to move."/>
			<parameter name="to" code="insh" type="location specifier" description="The new location for the object(s).">
				<cocoa key="ToLocation"/>
			</parameter>
		</command>

		<class name="application" code="capp" description="The application's top-level scripting object.">
			<cocoa class="NSApplication"/>
			<property name="name" code="pnam" type="text" access="r" description="The name of the application."/>
			<property name="frontmost" code="pisf" type="boolean" access="r" description="Is this the active application?">
				<cocoa key="isActive"/>
			</property>
			<property name="version" code="vers" type="text" access="r" description="The version number of the application."/>
			<element type="document">
				<cocoa key="orderedDocuments"/>
			</element>
			<element type="window" access="r">
				<cocoa key="orderedWindows"/>
			</element>
			<responds-to name="open">
				<cocoa method="handleOpenScriptCommand:"/>
			</responds-to>
			<responds-to name="quit">
				<cocoa method="handleQuitScriptCommand:"/>
			</responds-to>
		</class>

		<class name="document" code="docu" description="A document.">
			<cocoa class="NSDocument"/>
			<property name="name" code="pnam" type="text" access="r" description="Its name.">
				<cocoa key="displayName"/>
			</property>
			<property name="file" code="file" type="file" access="r" description="Its location on disk, if it has one.">
				<cocoa key="fileURL"/>
			</property>
			<responds-to command="close">
				<cocoa method="handleCloseScriptCommand:"/>
			</responds-to>
		</class>

		<class name="window" code="cwin" description="A window.">
			<cocoa class="NSWindow"/>
			<property name="name" code="pnam" type="text" access="r" description="The title of the window.">
				<cocoa key="title"/>
			</property>
			<property name="id" code="ID  " type="integer" access="r" description="The unique identifier of the window.">
				<cocoa key="uniqueID"/>
			</property>
			<property name="index" code="pidx" type="integer" description="The index of the window, ordered front to back.">
				<cocoa key="orderedIndex"/>
			</property>
			<property name="bounds" code="pbnd" type="rectangle" description="The bounding rectangle of the window.">
				<cocoa key="boundsAsQDRect"/>
			</property>
			<property name="closeable" code="hclb" type="boolean" access="r" description="Does the window have a close button?">
				<cocoa key="hasCloseBox"/>
			</property>
			<property name="miniaturizable" code="ismn" type="boolean" access="r" description="Does the window have a minimize button?">
				<cocoa key="isMiniaturizable"/>
			</property>
			<property name="miniaturized" code="pmnd" type="boolean" description="Is the window minimized right now?">
				<cocoa key="isMiniaturized"/>
			</property>
			<property name="resizable" code="prsz" type="boolean" access="r" description="Can the window be resized?">
				<cocoa key="isResizable"/>
			</property>
			<property name="visible" code="pvis" type="boolean" description="Is the window visible right now?">
				<cocoa key="isVisible"/>
			</property>
			<property name="zoomable" code="iszm" type="boolean" access="r" description="Does the window have a zoom button?">
				<cocoa key="isZoomable"/>
			</property>
			<property name="zoomed" code="pzum" type="boolean" description="Is the window zoomed right now?">
				<cocoa key="isZoomed"/>
			</property>

			<property name="document" code="docu" type="document" access="r" description="The document whose contents are displayed in the window."/>

			<responds-to name="close">
				<cocoa method="handleCloseScriptCommand:"/>
			</responds-to>
		</class>

	</suite>

	<suite name="GitX Suite" code="GitX" description="Classes for GitX.">

		<command name="show diff" code="GitXShDf" description="Show the supplied diff output in a GitX window.">
			<direct-parameter type="text" description="The textual output from a diff tool."/>
		</command>
		<command name="init repository" code="GitXInit" description="Create a git repository at the given filesystem URL.">
			<direct-parameter type="file" description="The URL of the repository to clone."/>
		</command>
		<command name="clone repository" code="GitXClon" description="Clone a repository.">
			<direct-parameter type="text" description="The URL of the repository to clone."/>
			<parameter name="to" code="URL " type="file" description="The location for the new repository.">
				<cocoa key="destinationURL"/>
			</parameter>
			<parameter name="is bare" code="Bare" type="boolean" optional="yes" description="Indicates whether the created repository should be a bare repository.">
				<cocoa key="isBare"/>
			</parameter>
		</command>

		<command name="search" code="GitXSrch" description="Highlight commits that match the given search string.">
			<direct-parameter type="specifier" description="The repository document to search."/>
			<parameter name="string" code="SRCH" type="text" optional="yes" description="The string to search for.">
				<cocoa key="searchString"/>
			</parameter>
			<parameter name="in mode" code="Mode" type="integer" optional="yes" description="The type of search (defalts to basic [Subject, Author, SHA]).">
				<cocoa key="inMode"/>
			</parameter>
		</command>

		<class-extension extends="application" description="The GitX application.">
			<responds-to name="show diff">
				<cocoa method="showDiffScriptCommand:"/>
			</responds-to>
			<responds-to name="init repository">
				<cocoa method="initRepositoryScriptCommand:"/>
			</responds-to>
			<responds-to name="clone repository">
				<cocoa method="cloneRepositoryScriptCommand:"/>
			</responds-to>
		</class-extension>

		<class-extension extends="document" code="docu" description="A document.">
			<cocoa class="PBGitRepository"/>
			<responds-to name="search">
				<cocoa method="findInModeScriptCommand:"/>
			</responds-to>
		</class-extension>

	</suite>

</dictionary>
