# -*- tcl -*-
# $Id: script,v 1.3 1998/11/11 15:06:01 tobotras Exp $
# See http://jiji.mew.org/mgp/ if you want to know
# what is target format of this style.

require Simple.tcl
require TEItools.tcl
require textutil.tcl
TEItoolsSetup "mgp"

specification translate {
    {element PRESENTATION} {
	prefix [mgpHeader]
	suffix [mgpTail]
    }
    {element TITLE in PRESENTATION} {
 	prefix	[TitlePagePrefix]
 	suffix	[TitlePageSuffix]
	cdataFilter titleFilter
    }
    {element SHORTTITLE in PRESENTATION} {
	prefix	{}
 	cdataFilter null
 	sdataFilter null
    }
    {element SLIDE} {
	prefix	{
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%page
%bgrad
%hgap 0	    
}
    }
    {elements "TEXT"} {
	prefix	{}
    }
    {element P} {
	prefix	[paragraph]
    }
    {element LIST} {
	prefix  {}
	suffix	{\n}
    }
    {element TITLE in SLIDE} {
	prefix	{%font "thick", center, vgap 2, hgap 0, fore "white"\n}
	suffix	{\n%vgap 2, bar "gray70"\n%left, font "standard", fore "yellow"\n}
	cdataFilter titleFilter
    }

    {element ITEM} {
	prefix	"\n\t"
    }
    {element GRAPHICS} {
	prefix	"%image \"[figureFileName]\"\n"
	suffix	"\n"
    }
    {element CAPTION} {
	prefix	"%center\n"
	suffix	"\n%left\n"
    }
    {element EG} {
	prefix	{\n%font "typewriter", size 5\n\n}
	suffix	{\n%font "standard", size 5\n}
	cdataFilter	identity
    }
    {el} {
 	prefix		[openUnknown]
 	sdataFilter	textSdataFilter
	cdataFilter	eatNLs
    }
}

proc titleFilter { text } {
    if { "$text" == "\n" } {
	return " "
    } else {
	return [string trim $text]
    }
}

proc mgpHeader {} {
    return {%tab 1 size 5, vgap 120, prefix "  ", icon box "green" 50
%tab 2 size 4, vgap 120, prefix "      ", icon arc "yellow" 50
%tab 3 size 3, vgap 120, prefix "            ", icon delta3 "white" 40
%deffont "standard" xfont "-*-college-medium-r-normal--50-*-*-*-*-*-koi8-r"
%deffont "thick" xfont "-*-college-bold-r-*--50-*-*-*-*-*-koi8-r"
%deffont "title" xfont "-*-textbook-bold-r-*--70-*-*-*-*-*-koi8-r"
%deffont "typewriter" xfont "courier-medium-r"
}
}

proc mgpTail {} {
    return {%% Generated from TEI Lite DTD by TEItools.
%% See http://xtalk.price.ru/SGML/TEItools
    }
}

proc figureFileName {} {
    set entName [query attval IMG]
    if { $entName == "" } {
	Error "Figure without ENTITY to include!"
	return
    }
    withNode entity $entName {
	set fileName [query sysid]
	return "${fileName}.eps"
    }
    Error "No such entity: ${entName}!"
    return
}

proc TitlePagePrefix {} {
    return {%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%page
%bgrad
%font "title", center


}
}

proc TitlePageSuffix {} {
    return "\n"
}

substitution textSdataFilter {
    {[latex ]} {LaTeX}
    {[mdash ]} { -- }
    {[ndash ]} {-}
    {[amp   ]} {&}
    {[lt    ]} {<}
    {[gt    ]} {>}
    {[hellip]} {...}
}



proc paragraph {} {
    if { [childNumber] > 1 } {
	return "%vgap 10\n\n%vgap 2\n"
    } else {
	return "%vgap 2\n"
    }
}
