<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE dictionary SYSTEM "file://localhost/System/Library/DTDs/sdef.dtd">
<dictionary title="Fluid App 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"/>
                <type type="file" list="yes"/>
            </direct-parameter>
            <result description="The opened document(s).">
                <type type="document"/>
                <type type="document" list="yes"/>
            </result>
        </command>

        <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>

        <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."/>
            <parameter name="saving" code="savo" type="save options" optional="yes" description="Should changes be saved before closing?">
                <cocoa key="SaveOptions"/>
            </parameter>
            <parameter name="saving in" code="kfil" type="file" optional="yes" description="The file in which to save the document, if so.">
                <cocoa key="File"/>
            </parameter>
        </command>

        <command name="save" code="coresave" description="Save a document.">
            <direct-parameter type="specifier" description="The document(s) or window(s) to save."/>
            <parameter name="in" code="kfil" type="file" optional="yes" description="The file in which to save the document.">
                <cocoa key="File"/>
            </parameter>
        </command>

        <enumeration name="printing error handling" code="enum">
            <enumerator name="standard" code="lwst" description="Standard PostScript error handling">
                <cocoa boolean-value="NO"/>
            </enumerator>
            <enumerator name="detailed" code="lwdt" description="print a detailed report of PostScript errors">
                <cocoa boolean-value="YES"/>
            </enumerator>
        </enumeration>

        <record-type name="print settings" code="pset">
            <property name="copies" code="lwcp" type="integer" description="the number of copies of a document to be printed">
                <cocoa key="NSCopies"/>
            </property>
            <property name="collating" code="lwcl" type="boolean" description="Should printed copies be collated?">
                <cocoa key="NSMustCollate"/>
            </property>
            <property name="starting page" code="lwfp" type="integer" description="the first page of the document to be printed">
                <cocoa key="NSFirstPage"/>
            </property>
            <property name="ending page" code="lwlp" type="integer" description="the last page of the document to be printed">
                <cocoa key="NSLastPage"/>
            </property>
            <property name="pages across" code="lwla" type="integer" description="number of logical pages laid across a physical page">
                <cocoa key="NSPagesAcross"/>
            </property>
            <property name="pages down" code="lwld" type="integer" description="number of logical pages laid out down a physical page">
                <cocoa key="NSPagesDown"/>
            </property>
            <property name="requested print time" code="lwqt" type="date" description="the time at which the desktop printer should print the document">
                <cocoa key="NSPrintTime"/>
            </property>
            <property name="error handling" code="lweh" type="printing error handling" description="how errors are handled">
                <cocoa key="NSDetailedErrorReporting"/>
            </property>
            <property name="fax number" code="faxn" type="text" description="for fax number">
                <cocoa key="NSFaxNumber"/>
            </property>
            <property name="target printer" code="trpr" type="text" description="for target printer">
                <cocoa key="NSPrinterName"/>
            </property>
        </record-type>

        <command name="print" code="aevtpdoc" description="Print a document.">
            <direct-parameter description="The file(s), document(s), or window(s) to be printed.">
                <type type="file" list="yes"/>
                <type type="specifier"/>
            </direct-parameter>
            <parameter name="with properties" code="prdt" type="print settings" optional="yes" description="The print settings to use.">
                <cocoa key="PrintSettings"/>
            </parameter>
            <parameter name="print dialog" code="pdlg" type="boolean" optional="yes" description="Should the application show the print dialog?">
                <cocoa key="ShowPrintDialog"/>
            </parameter>
        </command>

        <command name="quit" code="aevtquit" description="Quit the application.">
            <cocoa class="NSQuitCommand"/>
            <parameter name="saving" code="savo" type="save options" optional="yes" description="Should changes be saved before quitting?">
                <cocoa key="SaveOptions"/>
            </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 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="FUCreateCommand"/>
            <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="browser window">
                <cocoa key="orderedDocuments"/>
            </element>
            <element type="window" access="r">
                <cocoa key="orderedWindows"/>
            </element>
            <responds-to command="open">
                <cocoa method="handleOpenScriptCommand:"/>
            </responds-to>
            <responds-to command="print">
                <cocoa method="handlePrintScriptCommand:"/>
            </responds-to>
            <responds-to command="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="modified" code="imod" type="boolean" access="r" description="Has it been modified since the last save?">
                <cocoa key="isDocumentEdited"/>
            </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>
            <responds-to command="print">
                <cocoa method="handlePrintScriptCommand:"/>
            </responds-to>
            <responds-to command="save">
                <cocoa method="handleSaveScriptCommand:"/>
            </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 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>

    </suite>


<suite name="Fluid App Suite" code="FApp" description="Fluid App specific classes.">
    
    <!-- 
    ************ FLUIDIUM COMMANDS *****************
    -->

    <command name="empty cache" code="FAppEmty" description="Empty the browser's cache.">
        <cocoa class="FUEmptyCacheCommand"/>
    </command>

    <command name="load URL" code="FAppLoad" description="Load a URL.">
        <cocoa class="FULoadURLCommand"/>
        <direct-parameter type="text" description="The URL to load."/>
        <parameter type="tab" name="in" code="tPrm" optional="yes" description="The tab in which the URL should be loaded.">
            <cocoa key="tabController"/>
        </parameter>
    </command>

    <command name="do JavaScript" code="FAppdoJS" description="Applies a string of JavaScript code to a document.">
        <cocoa class="FUDoJavaScriptCommand"/>
        <direct-parameter type="text" description="The JavaScript code to evaluate."/>
        <parameter type="tab" name="in" code="tPrm" optional="yes" description="The tab in which the JavaScript should be evaluated.">
            <cocoa key="tabController"/>
        </parameter>
        <result type="any"/>
    </command>

    <enumeration name="capture options" code="Capo">
        <enumerator name="screenshot" code="Scrn" description="Capture the web page as a screenshot."/>
        <enumerator name="Web Archive" code="WbAr" description="Capture the web page as a Web Archive document."/>
        <enumerator name="raw source" code="Src " description="Capture the web page as a raw source."/>
    </enumeration>

    <command name="capture web page" code="FAppCapt" description="Capture this tab's web page as a screenshot, Web Archive or raw source.">
        <cocoa class="FUCaptureWebPageCommand"/>

        <parameter name="as" code="Capo" type="capture options" optional="no" description="How to capture the web page?">
            <cocoa key="captureType"/>
        </parameter>
        <parameter name="saving in" code="kFil" type="file" optional="yes" description="The file in which to save the document, if so.">
            <cocoa key="file"/>
        </parameter>

        <parameter type="tab" name="in" code="tPrm" optional="yes" description="A tab in which to capture the web page. If not specified, the selected tab in the frontmost window is used.">
            <cocoa key="tabController"/>
        </parameter>
    </command>

    <command name="go back" code="FAppBack" description="Go back.">
        <cocoa class="FUGoBackCommand"/>
        <direct-parameter type="specifier" optional="yes" description="A tab in which to go back. If not specified, the selected tab in the frontmost window is used."/>
    </command>

    <command name="go forward" code="FAppFwrd" description="Go forward.">
        <cocoa class="FUGoForwardCommand"/>
        <direct-parameter type="specifier" optional="yes" description="A tab in which to go forward. If not specified, the selected tab in the frontmost window is used."/>
    </command>

    <command name="go home" code="FAppHome" description="Go home.">
        <cocoa class="FUGoHomeCommand"/>
        <direct-parameter type="specifier" optional="yes" description="A tab in which to go home. If not specified, the selected tab in the frontmost window is used."/>
    </command>

    <command name="reload" code="FAppReld" description="Reload a web page.">
        <cocoa class="FUReloadCommand"/>
        <direct-parameter type="specifier" optional="yes" description="A tab to reload. If not specified, the selected tab in the frontmost window is reloaded."/>
    </command>

    <command name="stop loading" code="FAppStop" description="Stop loading a web page.">
        <cocoa class="FUStopLoadingCommand"/>
        <direct-parameter type="specifier" optional="yes" description="A tab to stop loading. If not specified, the selected tab in the frontmost window is stopped."/>
    </command>

    <command name="zoom in" code="FAppZoIn" description="Zoom in contents of the page.">
        <cocoa class="FUZoomInCommand"/>
        <direct-parameter type="specifier" optional="yes" description="A tab to zoom in. If not specified, the selected tab in the frontmost window is zoomed."/>
    </command>

    <command name="zoom out" code="FAppZoOt" description="Zoom out contents of the page.">
        <cocoa class="FUZoomOutCommand"/>
        <direct-parameter type="specifier" optional="yes" description="A tab to zoom out. If not specified, the selected tab in the frontmost window is zoomed."/>
    </command>

    <command name="show actual size" code="FAppActS" description="Zoom contents of the page to actual size.">
        <cocoa class="FUActualSizeCommand"/>
        <direct-parameter type="specifier" optional="yes" description="A tab to zoom. If not specified, the selected tab in the frontmost window is zoomed."/>
    </command>



    <!-- 
    ************ BROWSER WINDOW *****************
    -->
    <class name="browser window" plural="browser windows" inherits="document" code="fDoc" description="A browser window.">
        <cocoa class="FUDocument"/>

        <property name="title" code="pnam" type="text" access="r" description="The current title of the web page currently loaded in this window (same as the title of the selected tab in this window).">
            <cocoa key="displayName"/>
        </property>

        <property name="URL" code="tURL" type="text" access="r" description="The URL of the web page currently loaded in this tab (same as the URL of the selected tab in this window).">
            <cocoa key="selectedTabURLString"/>
        </property>
        
        <property name="loading" code="tLdg" type="boolean" access="r" description="True if this window's web page is currently loading. Otherwise false. (same as the loading property of the selected tab in this window).">
            <cocoa key="isSelectedTabProcessing"/>
        </property>

        <property name="source" code="conT" type="text" access="r" description="The HTML source of the web page currently loaded in this window (same as the source of the selected tab in this window).">
            <cocoa key="selectedTabDocumentSource"/>
        </property>

        <!-- <property name="selected tab index" code="dSTI" type="integer" access="rw" description="The index of the selected tab in this window.">
            <cocoa key="selectedTabIndex"/>
        </property>
         -->
        <property name="selected tab" code="dSTb" type="tab" access="rw" description="The selected tab in this window.">
            <cocoa key="selectedTabController"/>
        </property>
        
        <element type="tab" access="r">
            <cocoa key="orderedTabControllers"/>
        </element>

        <responds-to command="make">
            <cocoa method="handleCreateCommand:"/>
        </responds-to>
        <responds-to command="load URL">
            <cocoa method="handleLoadURLCommand:"/>
        </responds-to>
        <responds-to command="do JavaScript">
            <cocoa method="handleDoJavaScriptCommand:"/>
        </responds-to>
        <responds-to command="go back">
            <cocoa method="handleGoBackCommand:"/>
        </responds-to>
        <responds-to command="go forward">
            <cocoa method="handleGoForwardCommand:"/>
        </responds-to>
        <responds-to command="go home">
            <cocoa method="handleGoHomeCommand:"/>
        </responds-to>
        <responds-to command="reload">
            <cocoa method="handleReloadCommand:"/>
        </responds-to>
        <responds-to command="stop loading">
            <cocoa method="handleStopLoadingCommand:"/>
        </responds-to>
        <responds-to command="zoom in">
            <cocoa method="handleZoomInCommand:"/>
        </responds-to>
        <responds-to command="zoom out">
            <cocoa method="handleZoomOutCommand:"/>
        </responds-to>
        <responds-to command="show actual size">
            <cocoa method="handleActualSizeCommand:"/>
        </responds-to>
    </class>



    <!-- 
    ************ TAB *****************
    -->
    <class name="tab" plural="tabs" code="fTab" description="A browser tab.">
        <cocoa class="FUTabController"/>
        
        <property name="index" code="pidx" type="integer" access="r" description="The index of this tab in its window.">
            <cocoa key="orderedIndex"/>
        </property>

        <property name="title" code="pnam" type="text" access="r" description="The title of the web page currently loaded in this tab.">
            <cocoa key="title"/>
        </property>

        <property name="URL" code="tURL" type="text" access="r" description="The URL of the web page currently loaded in this tab.">
            <cocoa key="URLString"/>
        </property>
        
        <property name="loading" code="tLdg" type="boolean" access="r" description="True if this tab's web page is currently loading. Otherwise false.">
            <cocoa key="isProcessing"/>
        </property>

        <property name="selected" code="tSel" type="boolean" access="r" description="True if this is the selected tab in its window. Otherwise false.">
            <cocoa key="isSelected"/>
        </property>
        
        <property name="source" code="conT" type="text" access="r" description="The HTML source of the web page currently loaded in this tab.">
            <cocoa key="documentSource"/>
        </property>

        <responds-to command="load URL">
            <cocoa method="handleLoadURLCommand:"/>
        </responds-to>
        <responds-to command="do JavaScript">
            <cocoa method="handleDoJavaScriptCommand:"/>
        </responds-to>
        <responds-to command="capture web page">
            <cocoa method="handleCaptureWebPageCommand:"/>
        </responds-to>

        <responds-to command="close">
            <cocoa method="handleCloseCommand:"/>
        </responds-to>
        <responds-to command="go back">
            <cocoa method="handleGoBackCommand:"/>
        </responds-to>
        <responds-to command="go forward">
            <cocoa method="handleGoForwardCommand:"/>
        </responds-to>
        <responds-to command="go home">
            <cocoa method="handleGoHomeCommand:"/>
        </responds-to>
        <responds-to command="reload">
            <cocoa method="handleReloadCommand:"/>
        </responds-to>
        <responds-to command="stop loading">
            <cocoa method="handleStopLoadingCommand:"/>
        </responds-to>
        <responds-to command="zoom in">
            <cocoa method="handleZoomInCommand:"/>
        </responds-to>
        <responds-to command="zoom out">
            <cocoa method="handleZoomOutCommand:"/>
        </responds-to>
        <responds-to command="show actual size">
            <cocoa method="handleActualSizeCommand:"/>
        </responds-to>
    </class>
    
</suite>

</dictionary>
