<?xml version="1.0" encoding="UTF-8"?>

<?context-directive job ctxfile x-setups.ctx ?>

<cd:interface xmlns:cd="http://www.pragma-ade.com/commands">

    <cd:command name="definelayout" level="style" category="layout" file="page-lay.mkiv">
        <cd:arguments>
            <cd:resolve name="keyword-name"/>
            <cd:resolve name="keyword-name-optional"/>
            <cd:assignments list="yes" optional="yes">
                <cd:inherit name="setuplayout"/>
            </cd:assignments>
        </cd:arguments>
    </cd:command>

    <cd:command name="setuplayout" level="style" category="layout" file="page-lay.mkiv">
        <cd:arguments>
            <cd:resolve name="keyword-name-optional"/>
            <cd:assignments list="yes">
                <cd:parameter name="state">
                    <cd:constant type="start" default="yes"/>
                    <cd:constant type="stop"/>
                    <cd:constant type="normal"/>
                    <cd:constant type="repeat"/>
                </cd:parameter>
                <cd:parameter name="margin">
                    <cd:constant type="cd:dimension"/>
                </cd:parameter>
                <cd:parameter name="edge">
                    <cd:constant type="cd:dimension"/>
                </cd:parameter>
                <cd:parameter name="margindistance">
                    <cd:constant type="cd:dimension"/>
                </cd:parameter>
                <cd:parameter name="edgedistance">
                    <cd:constant type="cd:dimension"/>
                </cd:parameter>
                <cd:parameter name="leftedgedistance">
                    <cd:constant type="cd:dimension"/>
                </cd:parameter>
                <cd:parameter name="rightedgedistance">
                    <cd:constant type="cd:dimension"/>
                </cd:parameter>
                <cd:parameter name="leftmargindistance">
                    <cd:constant type="cd:dimension"/>
                </cd:parameter>
                <cd:parameter name="rightmargindistance">
                    <cd:constant type="cd:dimension"/>
                </cd:parameter>
                <cd:parameter name="topdistance">
                    <cd:constant type="cd:dimension"/>
                </cd:parameter>
                <cd:parameter name="headerdistance">
                    <cd:constant type="cd:dimension"/>
                </cd:parameter>
                <cd:parameter name="footerdistance">
                    <cd:constant type="cd:dimension"/>
                </cd:parameter>
                <cd:parameter name="bottomdistance">
                    <cd:constant type="cd:dimension"/>
                </cd:parameter>
                <cd:parameter name="preset">
                    <cd:constant type="cd:name"/>
                </cd:parameter>
                <cd:parameter name="leftmargin">
                    <cd:constant type="cd:dimension"/>
                </cd:parameter>
                <cd:parameter name="rightmargin">
                    <cd:constant type="cd:dimension"/>
                </cd:parameter>
                <cd:parameter name="leftedge">
                    <cd:constant type="cd:dimension"/>
                </cd:parameter>
                <cd:parameter name="rightedge">
                    <cd:constant type="cd:dimension"/>
                </cd:parameter>
                <cd:parameter name="header">
                    <cd:constant type="cd:dimension"/>
                </cd:parameter>
                <cd:parameter name="footer">
                    <cd:constant type="cd:dimension"/>
                </cd:parameter>
                <cd:parameter name="top">
                    <cd:constant type="cd:dimension"/>
                </cd:parameter>
                <cd:parameter name="bottom">
                    <cd:constant type="cd:dimension"/>
                </cd:parameter>
                <cd:parameter name="backspace">
                    <cd:constant type="cd:dimension"/>
                </cd:parameter>
                <cd:parameter name="topspace">
                    <cd:constant type="cd:dimension"/>
                </cd:parameter>
                <cd:parameter name="setups">
                    <cd:constant type="cd:name"/>
                </cd:parameter>
                <cd:parameter name="cutspace">
                    <cd:constant type="cd:dimension"/>
                </cd:parameter>
                <cd:parameter name="width">
                    <cd:constant type="cd:dimension"/>
                    <cd:constant type="middle"/>
                    <cd:constant type="fit"/>
                </cd:parameter>
                <cd:parameter name="bottomspace">
                    <cd:constant type="cd:dimension"/>
                </cd:parameter>
                <cd:parameter name="lines">
                    <cd:constant type="cd:number"/>
                </cd:parameter>
                <cd:parameter name="height">
                    <cd:constant type="cd:dimension"/>
                    <cd:constant type="middle"/>
                    <cd:constant type="fit"/>
                </cd:parameter>
                <cd:parameter name="horoffset">
                    <cd:constant type="cd:dimension"/>
                </cd:parameter>
                <cd:parameter name="veroffset">
                    <cd:constant type="cd:dimension"/>
                </cd:parameter>
                <cd:parameter name="columns">
                    <cd:constant type="cd:number"/>
                </cd:parameter>
                <cd:parameter name="columndistance">
                    <cd:constant type="cd:dimension"/>
                </cd:parameter>
                <cd:parameter name="method">
                    <cd:constant type="default"/>
                    <cd:constant type="normal" default="name"/>
                    <cd:constant type="cd:name"/>
                </cd:parameter>
                <cd:parameter name="location">
                    <cd:constant type="left"/>
                    <cd:constant type="middle"/>
                    <cd:constant type="right"/>
                    <cd:constant type="top"/>
                    <cd:constant type="bottom"/>
                    <cd:constant type="singlesided"/>
                    <cd:constant type="doublesided"/>
                </cd:parameter>
                <cd:parameter name="textwidth">
                    <cd:constant type="cd:dimension"/>
                </cd:parameter>
                <cd:parameter name="textheight">
                    <cd:constant type="cd:dimension"/>
                </cd:parameter>
                <cd:parameter name="nx">
                    <cd:constant type="cd:number"/>
                </cd:parameter>
                <cd:parameter name="ny">
                    <cd:constant type="cd:number"/>
                </cd:parameter>
                <cd:parameter name="dx">
                    <cd:constant type="cd:dimension"/>
                </cd:parameter>
                <cd:parameter name="dy">
                    <cd:constant type="cd:dimension"/>
                </cd:parameter>
                <cd:parameter name="scale">
                    <cd:constant type="cd:number"/>
                </cd:parameter>
                <cd:parameter name="sx">
                    <cd:constant type="cd:number"/>
                </cd:parameter>
                <cd:parameter name="sy">
                    <cd:constant type="cd:number"/>
                </cd:parameter>
                <cd:parameter name="marking">
                    <cd:constant type="on"/>
                    <cd:constant type="off" default="yes"/>
                    <cd:constant type="page"/>
                    <cd:constant type="empty"/>
                    <cd:constant type="color"/>
                    <cd:constant type="one"/>
                    <cd:constant type="two"/>
                    <cd:constant type="four"/>
                </cd:parameter>
                <cd:parameter name="grid">
                    <cd:constant type="yes"/>
                    <cd:constant type="no" default="yes"/>
                    <cd:constant type="off"/>
                </cd:parameter>
                <cd:parameter name="textdistance">
                    <cd:constant type="cd:dimension"/>
                </cd:parameter>
                <cd:parameter name="alternative">
                    <cd:constant type="default"/>
                    <cd:constant type="normal" default="yes"/>
                    <cd:constant type="makeup"/>
                    <cd:constant type="cd:name"/>
                </cd:parameter>
                <cd:parameter name="clipoffset">
                    <cd:constant type="cd:dimension"/>
                </cd:parameter>
                <cd:parameter name="cropoffset">
                    <cd:constant type="cd:dimension"/>
                    <cd:constant type="auto"/>
                </cd:parameter>
                <cd:parameter name="trimoffset">
                    <cd:constant type="cd:dimension"/>
                </cd:parameter>
                <cd:parameter name="bleedoffset">
                    <cd:constant type="cd:dimension"/>
                </cd:parameter>
                <cd:parameter name="artoffset">
                    <cd:constant type="cd:dimension"/>
                </cd:parameter>
                <cd:parameter name="direction">
                    <cd:constant type="normal" default="yes"/>
                    <cd:constant type="reverse"/>
                </cd:parameter>
            </cd:assignments>
        </cd:arguments>
    </cd:command>

    <cd:command name="setuplayout" variant="name" level="style" category="layout" file="page-lay.mkiv">
        <cd:arguments>
            <cd:keywords>
                <cd:constant type="reset"/>
                <cd:constant type="cd:name"/>
            </cd:keywords>
        </cd:arguments>
    </cd:command>

    <cd:command name="doifelselayoutdefined" level="system" category="layout" keywords="conditional" file="page-lay.mkiv">
        <cd:arguments>
            <cd:resolve name="argument-name"/>
            <cd:resolve name="argument-true"/>
            <cd:resolve name="argument-false"/>
        </cd:arguments>
    </cd:command>

    <cd:command name="doiflayoutdefinedelse" level="system" category="layout" keywords="conditional" file="page-lay.mkiv">
        <cd:arguments>
            <cd:resolve name="argument-name"/>
            <cd:resolve name="argument-true"/>
            <cd:resolve name="argument-false"/>
        </cd:arguments>
    </cd:command>

    <cd:command name="adaptlayout" level="style" category="layout" file="page-lay.mkiv">
        <cd:arguments>
            <cd:resolve name="keyword-number-list-optional"/>
            <cd:assignments list="yes">
                <cd:parameter name="height">
                    <cd:constant type="max"/>
                    <cd:constant type="cd:dimension"/>
                </cd:parameter>
                <cd:parameter name="lines">
                    <cd:constant type="cd:number"/>
                </cd:parameter>
            </cd:assignments>
        </cd:arguments>
    </cd:command>

    <cd:command name="layout" type="environment" level="document" category="layout" file="page-lay.mkiv">
        <cd:arguments>
            <cd:resolve name="keyword-name"/>
        </cd:arguments>
    </cd:command>

    <cd:command name="doifelseoddpage" level="system" category="layout" keywords="conditional" file="page-lay.mkiv">
        <cd:arguments>
            <cd:resolve name="argument-command"/>
            <cd:resolve name="argument-command"/>
        </cd:arguments>
    </cd:command>

    <cd:command name="doifoddpageelse" level="system" category="layout" keywords="conditional" file="page-lay.mkiv">
        <cd:arguments>
            <cd:resolve name="argument-command"/>
            <cd:resolve name="argument-command"/>
        </cd:arguments>
    </cd:command>

    <cd:command name="doifbothsidesoverruled" level="system" category="layout" keywords="conditional" file="page-lay.mkiv">
        <cd:arguments>
            <cd:resolve name="argument-command"/>
            <cd:resolve name="argument-command"/>
            <cd:resolve name="argument-command"/>
        </cd:arguments>
    </cd:command>

    <cd:command name="doifbothsides" level="system" category="layout" keywords="conditional" file="page-lay.mkiv">
        <cd:arguments>
            <cd:resolve name="argument-command"/>
            <cd:resolve name="argument-command"/>
            <cd:resolve name="argument-command"/>
        </cd:arguments>
    </cd:command>

    <cd:command name="rightorleftpageaction" level="system" category="layout" keywords="conditional" file="page-lay.mkiv">
        <cd:arguments>
            <cd:resolve name="argument-command"/>
            <cd:resolve name="argument-command"/>
        </cd:arguments>
    </cd:command>

    <cd:command name="showprint" level="document" category="layout" file="page-run.mkiv">
        <cd:arguments>
            <cd:keywords list="yes" optional="yes">
                <cd:inherit name="setuppapersize"/>
            </cd:keywords>
            <cd:keywords list="yes" optional="yes">
                <cd:inherit name="setuppapersize"/>
            </cd:keywords>
            <cd:assignments list="yes" optional="yes">
                <cd:inherit name="setuplayout"/>
            </cd:assignments>
        </cd:arguments>
    </cd:command>

    <cd:command name="showframe" level="document" category="layout" file="page-run.mkiv">
        <cd:arguments>
            <cd:keywords list="yes" optional="yes">
                <cd:constant type="top"/>
                <cd:constant type="header"/>
                <cd:constant type="text"/>
                <cd:constant type="footer"/>
                <cd:constant type="bottom"/>
            </cd:keywords>
            <cd:keywords list="yes" optional="yes">
                <cd:constant type="leftedge"/>
                <cd:constant type="leftmargin"/>
                <cd:constant type="text"/>
                <cd:constant type="rightmargin"/>
                <cd:constant type="rightedge"/>
            </cd:keywords>
        </cd:arguments>
    </cd:command>

    <cd:command name="showsetups" level="document" category="layout" file="page-run.mkiv">
        <cd:arguments>
            <cd:keywords list="yes" optional="yes">
                <cd:constant type="pt" default="yes"/>
                <cd:constant type="bp"/>
                <cd:constant type="cm" default="yes"/>
                <cd:constant type="mm"/>
                <cd:constant type="dd"/>
                <cd:constant type="cc"/>
                <cd:constant type="pc"/>
                <cd:constant type="nd"/>
                <cd:constant type="nc"/>
                <cd:constant type="sp"/>
                <cd:constant type="in"/>
            </cd:keywords>
        </cd:arguments>
    </cd:command>

    <cd:command name="showlayout" level="document" category="layout" file="page-run.mkiv">
        <cd:arguments>
            <cd:keywords list="yes" optional="yes">
                <cd:constant type="pt" default="yes"/>
                <cd:constant type="bp"/>
                <cd:constant type="cm" default="yes"/>
                <cd:constant type="mm"/>
                <cd:constant type="dd"/>
                <cd:constant type="cc"/>
                <cd:constant type="pc"/>
                <cd:constant type="nd"/>
                <cd:constant type="nc"/>
                <cd:constant type="sp"/>
                <cd:constant type="in"/>
                <cd:constant type="cd:number"/>
            </cd:keywords>
        </cd:arguments>
    </cd:command>

    <cd:command name="showmargins" level="document" category="layout" file="page-run.mkiv"/>

    <cd:command name="spread" type="environment" level="document" category="layout" file="page-spr.mkiv"/>

    <cd:command name="doifelsetopofpage" level="system" category="layout" keywords="conditional" file="page-ini.mkiv">
        <cd:arguments>
            <cd:resolve name="argument-true"/>
            <cd:resolve name="argument-false"/>
        </cd:arguments>
    </cd:command>

    <cd:command name="doiftopofpageelse" level="system" category="layout" keywords="conditional" file="page-ini.mkiv">
        <cd:arguments>
            <cd:resolve name="argument-true"/>
            <cd:resolve name="argument-false"/>
        </cd:arguments>
    </cd:command>

</cd:interface>
