# Automatically generated PSI dialog (PSI version 1.0)
# Wed Jan 24 01:38:49 EST 1996


SF_SIZES 0 0.3 2;


dcolor.switcher = BUTTONSTRIP radio
{
    LAYOUT(horizontal!) VALUE(dcolor.switcherval) LOOK(none)

    BUTTON push LOOKICON(HSV, bevel);
    BUTTON push LOOKICON(RGB, bevel);
}

SF_SIZES 0.15 0.15 3.5;
dcolor.gad = 
{
    LAYOUT (vertical!) LOOK(plain) STRETCH(1, 0)
    {
	LAYOUT(horizontal!) MARGIN (0, 0) STRETCH(1,0)

	{ LOOKTEXT(plain, "Display Color") STRETCH(1, 0)}

	BUTTON push HELP("Colour List") VALUE(dcolor.plus)
		LOOKICON(DialogBox, bevel)
		SIZE(HEIGHT(dcolor.switcher), HEIGHT(dcolor.switcher));

	dcolor.switcher;
    }

    SWITCHER
    {
	VALUE(dcolor.switcherval) STRETCH(1, 0)

	HSVEDIT VALUE(dcolor.val) STRETCH(1, 0);
	RGBEDIT VALUE(dcolor.val) STRETCH(1, 0);
    }
}
SF_SIZES 0 0.3 2;

dcolor.switcher.expr = BUTTONSTRIP radio
{
    LAYOUT(horizontal!) VALUE(dcolor.switcherval.expr) LOOK(none)

    BUTTON push LOOKICON(HSV, bevel);
    BUTTON push LOOKICON(RGB, bevel);
}

SF_SIZES 0.15 0.15 3.5;
dcolor.gad.expr = 
{
    LAYOUT (vertical!) LOOK(plain) STRETCH(1, 0)
    {
	LAYOUT(horizontal!) MARGIN (0, 0) STRETCH(1,0)

	{ LOOKTEXT(plain, "Display Color") STRETCH(1, 0)}

	BUTTON push HELP("Colour List") VALUE(dcolor.plus)
		LOOKICON(DialogBox, bevel)
		SIZE(HEIGHT(dcolor.switcher), HEIGHT(dcolor.switcher));

	dcolor.switcher.expr;
    }

    SWITCHER
    {
	VALUE(dcolor.switcherval.expr) STRETCH(1, 0)

	HSVEDIT VALUE(dcolor.val.expr) STRETCH(1, 0);
	RGBEDIT VALUE(dcolor.val.expr) STRETCH(1, 0);
    }
}
SF_SIZES 0 0.3 2;

smooth.gad = BUTTON toggle LOOKTEXT(check, "Smooth Shading")
		VALUE(smooth.val) STRETCH(1, 0);


nobackface.gad = BUTTON toggle LOOKTEXT(check, "Backface Removal")
		VALUE(nobackface.val) STRETCH(1, 0);



lightmask.gad = 
{
    LAYOUT(horizontal) STRETCH(1, 0)

    { LOOKTEXT(plain, "Light Mask") SIZE (1.5, 0)}
    FIELD string VALUE(lightmask.val) STRETCH(1,0);
}



reflectmask.gad = 
{
    LAYOUT(horizontal) STRETCH(1, 0)

    { LOOKTEXT(plain, "Reflection Mask") SIZE (1.5, 0)}
    FIELD string VALUE(reflectmask.val) STRETCH(1,0);
}



shadespace.gad = 
{
    LAYOUT(horizontal) STRETCH(1, 0)

    { LOOKTEXT(plain, "Shader Space") SIZE(1.5, 0)}
    shadespace.menu VALUE(shadespace.menuval)
		LOOKTEXT(select, shadespace.menuval) STRETCH(1, 0);
}

dispspace.gad =
{
    LAYOUT(horizontal) STRETCH(1, 0)

    { LOOKTEXT(plain, "Displace Space") SIZE(1.5, 0)}
    dispspace.menu VALUE(dispspace.menuval)
		LOOKTEXT(select, dispspace.menuval) STRETCH(1, 0);
}


material.gad = 
{
    LAYOUT(horizontal) STRETCH(1, 0)

    { LOOKTEXT(plain, "Material") SIZE(1.5, 0)}
    material.menu VALUE(material.menuval)
		LOOKTEXT(select, material.menuval) STRETCH(1, 0);
}



rishader.gad = 
{
    LAYOUT(horizontal) STRETCH(1, 0)

    { LOOKTEXT(plain, "RMan Shader") SIZE (1.5, 0)}
    FIELD string VALUE(rishader.val) STRETCH(1,0);
    BUTTON push VALUE(rishader.plus) LOOKICON(DialogBox, bevel)
	    SIZE(0.25, 0.25);
}


ridisplace.gad = 
{
    LAYOUT(horizontal) STRETCH(1, 0)

    { LOOKTEXT(plain, "RMan Displace") SIZE (1.5, 0)}
    FIELD string VALUE(ridisplace.val) STRETCH(1,0);
    BUTTON push VALUE(ridisplace.plus) LOOKICON(DialogBox, bevel)
	    SIZE(0.25, 0.25);
}


riinterior.gad = 
{
    LAYOUT(horizontal) STRETCH(1, 0)

    { LOOKTEXT(plain, "RMan Interior") SIZE (1.5, 0)}
    FIELD string VALUE(riinterior.val) STRETCH(1,0);
    BUTTON push VALUE(riinterior.plus) LOOKICON(DialogBox, bevel)
	    SIZE(0.25, 0.25);
}


genshader.gad = 
{
    LAYOUT(horizontal) STRETCH(1, 0)

    { LOOKTEXT(plain, "Generic Shader") SIZE (1.5, 0)}
    FIELD string VALUE(genshader.val) STRETCH(1,0);
    BUTTON push VALUE(genshader.plus) LOOKICON(DialogBox, bevel)
	    SIZE(0.25, 0.25);
}


gendisplace.gad = 
{
    LAYOUT(horizontal) STRETCH(1, 0)

    { LOOKTEXT(plain, "Generic Displace") SIZE (1.5, 0)}
    FIELD string VALUE(gendisplace.val) STRETCH(1,0);
    BUTTON push VALUE(gendisplace.plus) LOOKICON(DialogBox, bevel)
	    SIZE(0.25, 0.25);
}


geninterior.gad = 
{
    LAYOUT(horizontal) STRETCH(1, 0)

    { LOOKTEXT(plain, "Generic Interior") SIZE (1.5, 0)}
    FIELD string VALUE(geninterior.val) STRETCH(1,0);
    BUTTON push VALUE(geninterior.plus) LOOKICON(DialogBox, bevel)
	    SIZE(0.25, 0.25);
}


xOrd.gad = 
{
    LAYOUT(horizontal) STRETCH(1, 0)

    { LOOKTEXT(plain, "Transform Order") SIZE(1.5, 0)}
    xOrd.menu VALUE(xOrd.menuval)
		LOOKTEXT(select, xOrd.menuval) STRETCH(1, 0);
}


rOrd.gad = 
{
    LAYOUT(horizontal) STRETCH(1, 0)

    { LOOKTEXT(plain, "Rotate Order") SIZE(1.5, 0)}
    rOrd.menu VALUE(rOrd.menuval)
		LOOKTEXT(select, rOrd.menuval) STRETCH(1, 0);
}


jitter.chmenu = SWITCHER
{
    LOOK(plain) VALUE(jitter.jive)

    BUTTON push SENDS(4) HELP("Channel Button (click to add channels)") VALUE(jitter.jive) LOOKICON(PSI_ChannelNone, bevel) SIZE(0.245, 0.245);
    BUTTON push SENDS(1) HELP("Channel Button (click to edit channels, alt-click to delete them)") VALUE(jitter.jive) LOOKICON(PSI_Channel, bevel) SIZE(0.245, 0.245);
}

jitter.gad =
{
    LAYOUT(horizontal!) STRETCH(1, 0)

    { LOOKTEXT(plain, "Jitter Scale") SIZE (1.5, 0)}
    VECTORFIELD(3) float VALUE(jitter.val) STRETCH(1, 0);
    jitter.chmenu;
}

t.chmenu = SWITCHER
{
    LOOK(plain) VALUE(t.jive)

    BUTTON push SENDS(4) HELP("Channel Button (click to add channels)") VALUE(t.jive)
	    LOOKICON(PSI_ChannelNone, bevel) SIZE(0.245, 0.245);
    BUTTON push SENDS(1) HELP("Channel Button (click to edit channels, alt-click to delete them)") VALUE(t.jive)
	    LOOKICON(PSI_Channel, bevel) SIZE(0.245, 0.245);
}

t.gad =
{
    LAYOUT(horizontal!) STRETCH(1, 0)

    { LOOKTEXT(plain, "Translate") SIZE (1.5, 0)}
    VECTORFIELD(3) float VALUE(t.val) STRETCH(1, 0);
    t.chmenu;
}


r.chmenu = SWITCHER
{
    LOOK(plain) VALUE(r.jive)

    BUTTON push SENDS(4) HELP("Channel Button (click to add channels)") VALUE(r.jive)
	    LOOKICON(PSI_ChannelNone, bevel) SIZE(0.245, 0.245);
    BUTTON push SENDS(1) HELP("Channel Button (click to edit channels, alt-click to delete them)") VALUE(r.jive)
	    LOOKICON(PSI_Channel, bevel) SIZE(0.245, 0.245);
}

r.gad =
{
    LAYOUT(horizontal!) STRETCH(1, 0)

    { LOOKTEXT(plain, "Rotation") SIZE (1.5, 0)}
    VECTORFIELD(3) float VALUE(r.val) STRETCH(1, 0);
    r.chmenu;
}


s.chmenu = SWITCHER
{
    LOOK(plain) VALUE(s.jive)

    BUTTON push SENDS(4) HELP("Channel Button (click to add channels)") VALUE(s.jive)
	    LOOKICON(PSI_ChannelNone, bevel) SIZE(0.245, 0.245);
    BUTTON push SENDS(1) HELP("Channel Button (click to edit channels, alt-click to delete them)") VALUE(s.jive)
	    LOOKICON(PSI_Channel, bevel) SIZE(0.245, 0.245);
}

s.gad =
{
    LAYOUT(horizontal!) STRETCH(1, 0)

    { LOOKTEXT(plain, "Scale") SIZE (1.5, 0)}
    VECTORFIELD(3) float VALUE(s.val) STRETCH(1, 0);
    s.chmenu;
}


scale.chmenu = SWITCHER
{
    LOOK(plain) VALUE(scale.jive)

    BUTTON push SENDS(4) HELP("Channel Button (click to add channels)") VALUE(scale.jive)
	    LOOKICON(PSI_ChannelNone, bevel) SIZE(0.245, 0.245);
    BUTTON push SENDS(1) HELP("Channel Button (click to edit channels, alt-click to delete them)") VALUE(scale.jive)
	    LOOKICON(PSI_Channel, bevel) SIZE(0.245, 0.245);
}

scale.gad =
{
    LAYOUT(horizontal!) STRETCH(1, 0)

    { LOOKTEXT(plain, "Scale") SIZE (1.5, 0)}
    VECTORFIELD(1) float VALUE(scale.val) STRETCH(1, 0);
    scale.chmenu;
}


p.chmenu = SWITCHER
{
    LOOK(plain) VALUE(p.jive)

    BUTTON push SENDS(4) HELP("Channel Button (click to add channels)") VALUE(p.jive)
	    LOOKICON(PSI_ChannelNone, bevel) SIZE(0.245, 0.245);
    BUTTON push SENDS(1) HELP("Channel Button (click to edit channels, alt-click to delete them)") VALUE(p.jive)
	    LOOKICON(PSI_Channel, bevel) SIZE(0.245, 0.245);
}

p.gad =
{
    LAYOUT(horizontal!) STRETCH(1, 0)

    { LOOKTEXT(plain, "Pivot") SIZE (1.5, 0)}
    VECTORFIELD(3) float VALUE(p.val) STRETCH(1, 0);
    p.chmenu;
}


lookup.gad =
{
    LAYOUT(horizontal!) STRETCH(1, 0)
    { LOOKTEXT(plain, "Lookat Up Vector") SIZE(1.5, 0)}
    lookup.menu VALUE(lookup.menuval)
		LOOKTEXT(select, lookup.menuval) STRETCH(1, 0);
}

lookup.gad.expr =
{
    LAYOUT(horizontal!) STRETCH(1, 0)
    { LOOKTEXT(plain, "Lookat Up Vector") SIZE(1.5, 0)}
    lookup.menu.expr VALUE(lookup.menuval.expr)
		LOOKTEXT(select, lookup.menuval.expr) STRETCH(1, 0);
}


lookat.gad = 
{
    LAYOUT(horizontal) STRETCH(1, 0)

    { LOOKTEXT(plain, "Look At") SIZE(1.5, 0)}
    lookat.menu VALUE(lookat.menuval)
		LOOKTEXT(select, lookat.menuval) STRETCH(1, 0);
}


pathobj.gad = 
{
    LAYOUT(horizontal) STRETCH(1, 0)

    { LOOKTEXT(plain, "Path Object") SIZE(1.5, 0)}
    pathobj.menu VALUE(pathobj.menuval)
		LOOKTEXT(select, pathobj.menuval) STRETCH(1, 0);
}


pos.chmenu = SWITCHER
{
    LOOK(plain) VALUE(pos.jive)

    BUTTON push SENDS(4) HELP("Channel Button (click to add channels)") VALUE(pos.jive)
	    LOOKICON(PSI_ChannelNone, bevel) SIZE(0.245, 0.245);
    BUTTON push SENDS(1) HELP("Channel Button (click to edit channels, alt-click to delete them)") VALUE(pos.jive)
	    LOOKICON(PSI_Channel, bevel) SIZE(0.245, 0.245);
}

pos.gad = 
{
    LAYOUT(horizontal) STRETCH(1, 0)

    { LOOKTEXT(plain, "Position") SIZE (1.5, 0)}
    SLIDERFIELD float 0 10 VALUE(pos.val) STRETCH(1,0);
    pos.chmenu;
}

pathorient.gad =
{
    LAYOUT(horizontal) STRETCH(1, 0)
    { LOOKTEXT(plain, "") SIZE(1.5, 0) }
    BUTTON toggle LOOKTEXT(check, "Orient Along Path")
		VALUE(pathorient.val) STRETCH(1, 0);
}

pathorient.gad.expr =
{
    LAYOUT(horizontal) STRETCH(1, 0)
    { LOOKTEXT(plain, "") SIZE(1.5, 0) }
    BUTTON toggle LOOKTEXT(check, "Orient Along Path")
		VALUE(pathorient.val.expr) STRETCH(1, 0);
}


roll.chmenu = SWITCHER
{
    LOOK(plain) VALUE(roll.jive)

    BUTTON push SENDS(4) HELP("Channel Button (click to add channels)") VALUE(roll.jive)
	    LOOKICON(PSI_ChannelNone, bevel) SIZE(0.245, 0.245);
    BUTTON push SENDS(1) HELP("Channel Button (click to edit channels, alt-click to delete them)") VALUE(roll.jive)
	    LOOKICON(PSI_Channel, bevel) SIZE(0.245, 0.245);
}

roll.gad = 
{
    LAYOUT(horizontal) STRETCH(1, 0)

    { LOOKTEXT(plain, "Roll") SIZE (1.5, 0)}
    FIELD float VALUE(roll.val) STRETCH(1,0);
    ANGLEJACK VALUE(roll.val) SIZE(0.3, 0.3);
    roll.chmenu;
}

bank.chmenu = SWITCHER
{
    LOOK(plain) VALUE(bank.jive)

    BUTTON push SENDS(4) HELP("Channel Button (click to add channels)") VALUE(bank.jive)
	    LOOKICON(PSI_ChannelNone, bevel) SIZE(0.245, 0.245);
    BUTTON push SENDS(1) HELP("Channel Button (click to edit channels, alt-click to delete them)") VALUE(bank.jive)
	    LOOKICON(PSI_Channel, bevel) SIZE(0.245, 0.245);
}

bank.gad = 
{
    LAYOUT(horizontal) STRETCH(1, 0)

    { LOOKTEXT(plain, "Auto-Bank Factor") SIZE (1.5, 0)}
    FIELD float VALUE(bank.val) STRETCH(1,0);
    bank.chmenu;
}

up.chmenu = SWITCHER
{
    LOOK(plain) VALUE(up.jive)

    BUTTON push SENDS(4) HELP("Channel Button (click to add channels)") VALUE(up.jive)
	    LOOKICON(PSI_ChannelNone, bevel) SIZE(0.245, 0.245);
    BUTTON push SENDS(1) HELP("Channel Button (click to edit channels, alt-click to delete them)") VALUE(up.jive)
	    LOOKICON(PSI_Channel, bevel) SIZE(0.245, 0.245);
}

up.gad =
{
    LAYOUT(horizontal!) STRETCH(1, 0)

    { LOOKTEXT(plain, "Up Vector") SIZE (1.5, 0)}
    VECTORFIELD(3) float VALUE(up.val) STRETCH(1, 0);
    up.chmenu;
}


display.chmenu = SWITCHER
{
    LOOK(plain) VALUE(display.jive)

    BUTTON push SENDS(4) HELP("Channel Button (click to add channels)") VALUE(display.jive)
	    LOOKICON(PSI_ChannelNone, bevel) SIZE(0.245, 0.245);
    BUTTON push SENDS(1) HELP("Channel Button (click to edit channels, alt-click to delete them)") VALUE(display.jive)
	    LOOKICON(PSI_Channel, bevel) SIZE(0.245, 0.245);
}

display.gad = 
{
    LAYOUT(horizontal) STRETCH(1, 0)

    BUTTON toggle LOOKTEXT(check, "Display") VALUE(tdisplay.val) SIZE(2.0, 0);
    FIELD integer VALUE(display.val) STRETCH(1,0);
    display.chmenu;
}


phantom.chmenu = SWITCHER
{
    LOOK(plain) VALUE(phantom.jive)

    BUTTON push SENDS(4) HELP("Channel Button (click to add channels)") VALUE(phantom.jive)
	    LOOKICON(PSI_ChannelNone, bevel) SIZE(0.245, 0.245);
    BUTTON push SENDS(1) HELP("Channel Button (click to edit channels, alt-click to delete them)") VALUE(phantom.jive)
	    LOOKICON(PSI_Channel, bevel) SIZE(0.245, 0.245);
}

phantom.gad = 
{
    LAYOUT(horizontal) STRETCH(1, 0)

    BUTTON toggle LOOKTEXT(check, "Phantom") VALUE(tphantom.val) SIZE(2.0, 0);
    FIELD integer VALUE(phantom.val) STRETCH(1,0);
    phantom.chmenu;
}


matte.chmenu = SWITCHER
{
    LOOK(plain) VALUE(matte.jive)

    BUTTON push SENDS(4) HELP("Channel Button (click to add channels)") VALUE(matte.jive)
	    LOOKICON(PSI_ChannelNone, bevel) SIZE(0.245, 0.245);
    BUTTON push SENDS(1) HELP("Channel Button (click to edit channels, alt-click to delete them)") VALUE(matte.jive)
	    LOOKICON(PSI_Channel, bevel) SIZE(0.245, 0.245);
}

matte.gad = 
{
    LAYOUT(horizontal) STRETCH(1, 0)

    BUTTON toggle LOOKTEXT(check, "Matte") VALUE(tmatte.val) SIZE(2.0, 0);
    FIELD integer VALUE(matte.val) STRETCH(1,0);
    matte.chmenu;
}


rbounce.chmenu = SWITCHER
{
    LOOK(plain) VALUE(rbounce.jive)

    BUTTON push SENDS(4) HELP("Channel Button (click to add channels)") VALUE(rbounce.jive)
	    LOOKICON(PSI_ChannelNone, bevel) SIZE(0.245, 0.245);
    BUTTON push SENDS(1) HELP("Channel Button (click to edit channels, alt-click to delete them)") VALUE(rbounce.jive)
	    LOOKICON(PSI_Channel, bevel) SIZE(0.245, 0.245);
}

rbounce.gad = 
{
    LAYOUT(horizontal) STRETCH(1, 0)

    BUTTON toggle LOOKTEXT(check,"Ray Bounce") VALUE(trbounce.val) SIZE(2.0, 0);
    FIELD integer VALUE(rbounce.val) STRETCH(1,0);
    rbounce.chmenu;
}


dbound.chmenu = SWITCHER
{
    LOOK(plain) VALUE(dbound.jive)

    BUTTON push SENDS(4) HELP("Channel Button (click to add channels)") VALUE(dbound.jive)
	    LOOKICON(PSI_ChannelNone, bevel) SIZE(0.245, 0.245);
    BUTTON push SENDS(1) HELP("Channel Button (click to edit channels, alt-click to delete them)") VALUE(dbound.jive)
	    LOOKICON(PSI_Channel, bevel) SIZE(0.245, 0.245);
}

dbound.gad = 
{
    LAYOUT(horizontal) STRETCH(1, 0)

    BUTTON toggle LOOKTEXT(check,"Displace Bound") VALUE(tdbound.val)
		SIZE(2.0, 0);
    FIELD float VALUE(dbound.val) STRETCH(1,0);
    dbound.chmenu;
}

preinclude.gad = 
{
    LAYOUT(horizontal) STRETCH(1, 0)

    { LOOKTEXT(plain, "Pre-Include") SIZE (1.5, 0)}
    FIELD string VALUE(preinclude.val) STRETCH(1,0);
    BUTTON push VALUE(preinclude.plus) LOOKICON(DialogBox, bevel)
	    SIZE(0.25, 0.25);
}

postinclude.gad = 
{
    LAYOUT(horizontal) STRETCH(1, 0)

    { LOOKTEXT(plain, "Post-Include") SIZE (1.5, 0)}
    FIELD string VALUE(postinclude.val) STRETCH(1,0);
    BUTTON push VALUE(postinclude.plus) LOOKICON(DialogBox, bevel)
	    SIZE(0.25, 0.25);
}


picking.gad = BUTTON toggle LOOKTEXT(check, "Viewport Selecting Enabled")
		VALUE(picking.val) STRETCH(1, 0);

pickscript.gad = 
{
    LAYOUT(horizontal) STRETCH(1, 0)

    { LOOKTEXT(plain, "Select Script") SIZE (1.5, 0)}
    FIELD string VALUE(pickscript.val) STRETCH(1,0);
    BUTTON push VALUE(pickscript.plus) LOOKICON(DialogBox, bevel)
	    SIZE(0.25, 0.25);
}


shadequality.chmenu = SWITCHER
{
    LOOK(plain) VALUE(shadequality.jive)

    BUTTON push SENDS(4) HELP("Channel Button (click to add channels)") VALUE(shadequality.jive)
	    LOOKICON(PSI_ChannelNone, bevel) SIZE(0.245, 0.245);
    BUTTON push SENDS(1) HELP("Channel Button (click to edit channels, alt-click to delete them)") VALUE(shadequality.jive)
	    LOOKICON(PSI_Channel, bevel) SIZE(0.245, 0.245);
}

shadequality.gad = 
{
    LAYOUT(horizontal) STRETCH(1, 0)

    BUTTON toggle LOOKTEXT(check,"Shading Quality") VALUE(tshadequality.val)
		SIZE(1.5, 0);
    SLIDERFIELD float 0.001 5 VALUE(shadequality.val) STRETCH(1,0);
    shadequality.chmenu;
}


shadowquality.chmenu = SWITCHER
{
    LOOK(plain) VALUE(shadowquality.jive)

    BUTTON push SENDS(4) HELP("Channel Button (click to add channels)") VALUE(shadowquality.jive)
	    LOOKICON(PSI_ChannelNone, bevel) SIZE(0.245, 0.245);
    BUTTON push SENDS(1) HELP("Channel Button (click to edit channels, alt-click to delete them)") VALUE(shadowquality.jive)
	    LOOKICON(PSI_Channel, bevel) SIZE(0.245, 0.245);
}

shadowquality.gad = 
{
    LAYOUT(horizontal) STRETCH(1, 0)

    { LOOKTEXT(plain, "Shadow Quality") SIZE (1.5, 0)}
    SLIDERFIELD float 0.001 5 VALUE(shadowquality.val) STRETCH(1,0);
    shadowquality.chmenu;
}


reflectquality.chmenu = SWITCHER
{
    LOOK(plain) VALUE(reflectquality.jive)

    BUTTON push SENDS(4) HELP("Channel Button (click to add channels)") VALUE(reflectquality.jive)
	    LOOKICON(PSI_ChannelNone, bevel) SIZE(0.245, 0.245);
    BUTTON push SENDS(1) HELP("Channel Button (click to edit channels, alt-click to delete them)") VALUE(reflectquality.jive)
	    LOOKICON(PSI_Channel, bevel) SIZE(0.245, 0.245);
}

reflectquality.gad = 
{
    LAYOUT(horizontal) STRETCH(1, 0)

    { LOOKTEXT(plain, "Reflection Quality") SIZE (1.5, 0)}
    SLIDERFIELD float 0.001 5 VALUE(reflectquality.val) STRETCH(1,0);
    reflectquality.chmenu;
}


lod.chmenu = SWITCHER
{
    LOOK(plain) VALUE(lod.jive)

    BUTTON push SENDS(4) HELP("Channel Button (click to add channels)") VALUE(lod.jive)
	    LOOKICON(PSI_ChannelNone, bevel) SIZE(0.245, 0.245);
    BUTTON push SENDS(1) HELP("Channel Button (click to edit channels, alt-click to delete them)") VALUE(lod.jive)
	    LOOKICON(PSI_Channel, bevel) SIZE(0.245, 0.245);
}

lod.gad = 
{
    LAYOUT(horizontal) STRETCH(1, 0)

    { LOOKTEXT(plain, "Level of Detail") SIZE (1.5, 0)}
    SLIDERFIELD float 0.001 5 VALUE(lod.val) STRETCH(1,0);
    lod.chmenu;
}

instance.gad =
{
    LAYOUT(horizontal) STRETCH(1, 0)

    { LOOKTEXT(plain, "Geo Instance") SIZE(1.5, 0)}
    instance.menu VALUE(instance.menuval)
		LOOKTEXT(select, instance.menuval) STRETCH(1, 0);
}

partinstance.gad =
{
    LAYOUT(horizontal) STRETCH(1, 0)

    { LOOKTEXT(plain, "Particle Geo") SIZE(1.5, 0)}
    partinstance.menu VALUE(partinstance.menuval)
		LOOKTEXT(select, partinstance.menuval) STRETCH(1, 0);
}


blur.gad = 
{
    LAYOUT(horizontal) STRETCH(1, 0)

    { LOOKTEXT(plain, "Motion Blur") SIZE(1.5, 0)}
    blur.menu VALUE(blur.menuval)
		LOOKTEXT(select, blur.menuval) STRETCH(1, 0);
}

smooth.gad.expr = BUTTON toggle LOOKTEXT(check, "Smooth Shading")
		     VALUE(smooth.val.expr) STRETCH(1, 0);


nobackface.gad.expr = BUTTON toggle LOOKTEXT(check, "Backface Removal")
		     VALUE(nobackface.val.expr) STRETCH(1, 0);



lightmask.gad.expr = 
{
    LAYOUT(horizontal) STRETCH(1, 0)

    { LOOKTEXT(plain, "Light Mask") SIZE (1.5, 0)}
    FIELD string VALUE(lightmask.val.expr) STRETCH(1,0);
}

reflectmask.gad.expr = 
{
    LAYOUT(horizontal) STRETCH(1, 0)

    { LOOKTEXT(plain, "Reflection Mask") SIZE (1.5, 0)}
    FIELD string VALUE(reflectmask.val.expr) STRETCH(1,0);
}

shadespace.gad.expr = 
{
    LAYOUT(horizontal) STRETCH(1, 0)
    { LOOKTEXT(plain, "Shader Space") SIZE(1.5, 0)}
    shadespace.menu.expr VALUE(shadespace.menuval.expr)
	     LOOKTEXT(select, shadespace.menuval.expr) STRETCH(1, 0);
}

dispspace.gad.expr = 
{
    LAYOUT(horizontal) STRETCH(1, 0)
    { LOOKTEXT(plain, "Displace Space") SIZE(1.5, 0)}
    dispspace.menu.expr VALUE(dispspace.menuval.expr)
	     LOOKTEXT(select, dispspace.menuval.expr) STRETCH(1, 0);
}


material.gad.expr =
{
    LAYOUT(horizontal) STRETCH(1, 0)

    { LOOKTEXT(plain, "Material") SIZE(1.5, 0)}
    material.menu.expr VALUE(material.menuval.expr)
	     LOOKTEXT(select, material.menuval.expr) STRETCH(1, 0);
}

rishader.gad.expr = 
{
    LAYOUT(horizontal) STRETCH(1, 0)

    { LOOKTEXT(plain, "RMan Shader") SIZE (1.5, 0)}
    FIELD string VALUE(rishader.val.expr) STRETCH(1,0);
    BUTTON push VALUE(rishader.plus.expr) LOOKICON(DialogBox, bevel)
	    SIZE(0.25, 0.25);
}

ridisplace.gad.expr = 
{
    LAYOUT(horizontal) STRETCH(1, 0)

    { LOOKTEXT(plain, "RMan Displace") SIZE (1.5, 0)}
    FIELD string VALUE(ridisplace.val.expr) STRETCH(1,0);
    BUTTON push VALUE(ridisplace.plus.expr) LOOKICON(DialogBox, bevel)
	    SIZE(0.25, 0.25);
}


riinterior.gad.expr = 
{
    LAYOUT(horizontal) STRETCH(1, 0)

    { LOOKTEXT(plain, "RMan Interior") SIZE (1.5, 0)}
    FIELD string VALUE(riinterior.val.expr) STRETCH(1,0);
    BUTTON push VALUE(riinterior.plus.expr) LOOKICON(DialogBox, bevel)
	    SIZE(0.25, 0.25);
}


genshader.gad.expr = 
{
    LAYOUT(horizontal) STRETCH(1, 0)

    { LOOKTEXT(plain, "Generic Shader") SIZE (1.5, 0)}
    FIELD string VALUE(genshader.val.expr) STRETCH(1,0);
    BUTTON push VALUE(genshader.plus.expr) LOOKICON(DialogBox, bevel)
	    SIZE(0.25, 0.25);
}


gendisplace.gad.expr = 
{
    LAYOUT(horizontal) STRETCH(1, 0)

    { LOOKTEXT(plain, "Generic Displace") SIZE (1.5, 0)}
    FIELD string VALUE(gendisplace.val.expr) STRETCH(1,0);
    BUTTON push VALUE(gendisplace.plus.expr) LOOKICON(DialogBox, bevel)
	    SIZE(0.25, 0.25);
}


geninterior.gad.expr = 
{
    LAYOUT(horizontal) STRETCH(1, 0)

    { LOOKTEXT(plain, "Generic Interior") SIZE (1.5, 0)}
    FIELD string VALUE(geninterior.val.expr) STRETCH(1,0);
    BUTTON push VALUE(geninterior.plus.expr) LOOKICON(DialogBox, bevel)
	    SIZE(0.25, 0.25);
}


xOrd.gad.expr =
{
    LAYOUT(horizontal) STRETCH(1, 0)

    { LOOKTEXT(plain, "Transform Order") SIZE(1.5, 0)}
    xOrd.menu.expr VALUE(xOrd.menuval.expr)
	     LOOKTEXT(select, xOrd.menuval.expr) STRETCH(1, 0);
}


rOrd.gad.expr =
{
    LAYOUT(horizontal) STRETCH(1, 0)

    { LOOKTEXT(plain, "Rotate Order") SIZE(1.5, 0)}
    rOrd.menu.expr VALUE(rOrd.menuval.expr)
	     LOOKTEXT(select, rOrd.menuval.expr) STRETCH(1, 0);
}


jitter.chmenu.expr = SWITCHER
{
    LOOK(plain) VALUE(jitter.jive.expr)

    BUTTON push SENDS(4) HELP("Channel Button (click to add channels)") VALUE(jitter.jive.expr) LOOKICON(PSI_ChannelNone, bevel) SIZE(0.245, 0.245);
    BUTTON push SENDS(1) HELP("Channel Button (click to edit channels, alt-click to delete them)") VALUE(jitter.jive.expr) LOOKICON(PSI_Channel, bevel) SIZE(0.245, 0.245);
}

jitter.gad.expr =
{
    LAYOUT(horizontal!) STRETCH(1, 0)

    { LOOKTEXT(plain, "Jitter Scale") SIZE(1, 0)}

    VECTORFIELD(3) string VALUE(jitter.val.expr) STRETCH(1, 0) LAYOUT(horizontal!);
    jitter.chmenu.expr;
}


t.chmenu.expr = SWITCHER
{
    LOOK(plain) VALUE(t.jive.expr)

    BUTTON push SENDS(4) HELP("Channel Button (click to add channels)") VALUE(t.jive.expr)
	    LOOKICON(PSI_ChannelNone, bevel) SIZE(0.245, 0.245);
    BUTTON push SENDS(1) HELP("Channel Button (click to edit channels, alt-click to delete them)") VALUE(t.jive.expr)
	    LOOKICON(PSI_Channel, bevel) SIZE(0.245, 0.245);
}

t.gad.expr =
{
    LAYOUT(horizontal!) STRETCH(1, 0)

    { LOOKTEXT(plain, "Translate") SIZE(1, 0)}

    VECTORFIELD(3) string VALUE(t.val.expr) STRETCH(1, 0)
	    LAYOUT(horizontal!);
    t.chmenu.expr;
}


r.chmenu.expr = SWITCHER
{
    LOOK(plain) VALUE(r.jive.expr)

    BUTTON push SENDS(4) HELP("Channel Button (click to add channels)") VALUE(r.jive.expr)
	    LOOKICON(PSI_ChannelNone, bevel) SIZE(0.245, 0.245);
    BUTTON push SENDS(1) HELP("Channel Button (click to edit channels, alt-click to delete them)") VALUE(r.jive.expr)
	    LOOKICON(PSI_Channel, bevel) SIZE(0.245, 0.245);
}

r.gad.expr =
{
    LAYOUT(horizontal!) STRETCH(1, 0)

    { LOOKTEXT(plain, "Rotation") SIZE(1, 0)}

    VECTORFIELD(3) string VALUE(r.val.expr) STRETCH(1, 0)
	    LAYOUT(horizontal!);
    r.chmenu.expr;
}


s.chmenu.expr = SWITCHER
{
    LOOK(plain) VALUE(s.jive.expr)

    BUTTON push SENDS(4) HELP("Channel Button (click to add channels)") VALUE(s.jive.expr)
	    LOOKICON(PSI_ChannelNone, bevel) SIZE(0.245, 0.245);
    BUTTON push SENDS(1) HELP("Channel Button (click to edit channels, alt-click to delete them)") VALUE(s.jive.expr)
	    LOOKICON(PSI_Channel, bevel) SIZE(0.245, 0.245);
}

s.gad.expr =
{
    LAYOUT(horizontal!) STRETCH(1, 0)

    { LOOKTEXT(plain, "Scale") SIZE(1, 0)}

    VECTORFIELD(3) string VALUE(s.val.expr) STRETCH(1, 0)
	    LAYOUT(horizontal!);
    s.chmenu.expr;
}


scale.chmenu.expr = SWITCHER
{
    LOOK(plain) VALUE(scale.jive.expr)

    BUTTON push SENDS(4) HELP("Channel Button (click to add channels)") VALUE(scale.jive.expr)
	    LOOKICON(PSI_ChannelNone, bevel) SIZE(0.245, 0.245);
    BUTTON push SENDS(1) HELP("Channel Button (click to edit channels, alt-click to delete them)") VALUE(scale.jive.expr)
	    LOOKICON(PSI_Channel, bevel) SIZE(0.245, 0.245);
}

scale.gad.expr =
{
    LAYOUT(horizontal!) STRETCH(1, 0)

    { LOOKTEXT(plain, "Scale") SIZE(1, 0)}

    VECTORFIELD(1) string VALUE(scale.val.expr) STRETCH(1, 0)
	    LAYOUT(horizontal!);
    scale.chmenu.expr;
}


p.chmenu.expr = SWITCHER
{
    LOOK(plain) VALUE(p.jive.expr)

    BUTTON push SENDS(4) HELP("Channel Button (click to add channels)") VALUE(p.jive.expr)
	    LOOKICON(PSI_ChannelNone, bevel) SIZE(0.245, 0.245);
    BUTTON push SENDS(1) HELP("Channel Button (click to edit channels, alt-click to delete them)") VALUE(p.jive.expr)
	    LOOKICON(PSI_Channel, bevel) SIZE(0.245, 0.245);
}

p.gad.expr =
{
    LAYOUT(horizontal!) STRETCH(1, 0)

    { LOOKTEXT(plain, "Pivot") SIZE(1, 0)}

    VECTORFIELD(3) string VALUE(p.val.expr) STRETCH(1, 0)
	    LAYOUT(horizontal!);
    p.chmenu.expr;
}


lookat.gad.expr =
{
    LAYOUT(horizontal) STRETCH(1, 0)

    { LOOKTEXT(plain, "Look At") SIZE(1.5, 0)}
    lookat.menu.expr VALUE(lookat.menuval.expr)
	     LOOKTEXT(select, lookat.menuval.expr) STRETCH(1, 0);
}


pathobj.gad.expr =
{
    LAYOUT(horizontal) STRETCH(1, 0)

    { LOOKTEXT(plain, "Path Object") SIZE(1.5, 0)}
    pathobj.menu.expr VALUE(pathobj.menuval.expr)
	     LOOKTEXT(select, pathobj.menuval.expr) STRETCH(1, 0);
}


pos.chmenu.expr = SWITCHER
{
    LOOK(plain) VALUE(pos.jive.expr)

    BUTTON push SENDS(4) HELP("Channel Button (click to add channels)") VALUE(pos.jive.expr)
	    LOOKICON(PSI_ChannelNone, bevel) SIZE(0.245, 0.245);
    BUTTON push SENDS(1) HELP("Channel Button (click to edit channels, alt-click to delete them)") VALUE(pos.jive.expr)
	    LOOKICON(PSI_Channel, bevel) SIZE(0.245, 0.245);
}

pos.gad.expr = 
{
    LAYOUT(horizontal) STRETCH(1, 0)

    { LOOKTEXT(plain, "Position") SIZE (1.5, 0)}
    FIELD string VALUE(pos.val.expr) STRETCH(1,0);
    pos.chmenu.expr;
}


roll.chmenu.expr = SWITCHER
{
    LOOK(plain) VALUE(roll.jive.expr)

    BUTTON push SENDS(4) HELP("Channel Button (click to add channels)") VALUE(roll.jive.expr)
	    LOOKICON(PSI_ChannelNone, bevel) SIZE(0.245, 0.245);
    BUTTON push SENDS(1) HELP("Channel Button (click to edit channels, alt-click to delete them)") VALUE(roll.jive.expr)
	    LOOKICON(PSI_Channel, bevel) SIZE(0.245, 0.245);
}

roll.gad.expr = 
{
    LAYOUT(horizontal) STRETCH(1, 0)

    { LOOKTEXT(plain, "Roll") SIZE (1.5, 0)}
    FIELD string VALUE(roll.val.expr) STRETCH(1,0);
    roll.chmenu.expr;
}


bank.chmenu.expr = SWITCHER
{
    LOOK(plain) VALUE(bank.jive.expr)

    BUTTON push SENDS(4) HELP("Channel Button (click to add channels)") VALUE(bank.jive.expr)
	    LOOKICON(PSI_ChannelNone, bevel) SIZE(0.245, 0.245);
    BUTTON push SENDS(1) HELP("Channel Button (click to edit channels, alt-click to delete them)") VALUE(bank.jive.expr)
	    LOOKICON(PSI_Channel, bevel) SIZE(0.245, 0.245);
}

bank.gad.expr = 
{
    LAYOUT(horizontal) STRETCH(1, 0)

    { LOOKTEXT(plain, "Auto-Bank Factor") SIZE (1.5, 0)}
    FIELD string VALUE(bank.val.expr) STRETCH(1,0);
    bank.chmenu.expr;
}


up.chmenu.expr = SWITCHER
{
    LOOK(plain) VALUE(up.jive.expr)

    BUTTON push SENDS(4) HELP("Channel Button (click to add channels)") VALUE(up.jive.expr)
	    LOOKICON(PSI_ChannelNone, bevel) SIZE(0.245, 0.245);
    BUTTON push SENDS(1) HELP("Channel Button (click to edit channels, alt-click to delete them)") VALUE(up.jive.expr)
	    LOOKICON(PSI_Channel, bevel) SIZE(0.245, 0.245);
}

up.gad.expr =
{
    LAYOUT(horizontal!) STRETCH(1, 0)

    { LOOKTEXT(plain, "Up Vector") SIZE(1, 0)}

    VECTORFIELD(3) string VALUE(up.val.expr) STRETCH(1, 0)
	    LAYOUT(horizontal!);
    up.chmenu.expr;
}


display.chmenu.expr = SWITCHER
{
    LOOK(plain) VALUE(display.jive.expr)

    BUTTON push SENDS(4) HELP("Channel Button (click to add channels)") VALUE(display.jive.expr)
	    LOOKICON(PSI_ChannelNone, bevel) SIZE(0.245, 0.245);
    BUTTON push SENDS(1) HELP("Channel Button (click to edit channels, alt-click to delete them)") VALUE(display.jive.expr)
	    LOOKICON(PSI_Channel, bevel) SIZE(0.245, 0.245);
}

display.gad.expr = 
{
    LAYOUT(horizontal) STRETCH(1, 0)

    BUTTON toggle LOOKTEXT(check, "Display") VALUE(tdisplay.val.expr)
		SIZE(1.5, 0);
    FIELD string VALUE(display.val.expr) STRETCH(1,0);
    display.chmenu.expr;
}


phantom.chmenu.expr = SWITCHER
{
    LOOK(plain) VALUE(phantom.jive.expr)

    BUTTON push SENDS(4) HELP("Channel Button (click to add channels)") VALUE(phantom.jive.expr)
	    LOOKICON(PSI_ChannelNone, bevel) SIZE(0.245, 0.245);
    BUTTON push SENDS(1) HELP("Channel Button (click to edit channels, alt-click to delete them)") VALUE(phantom.jive.expr)
	    LOOKICON(PSI_Channel, bevel) SIZE(0.245, 0.245);
}

phantom.gad.expr = 
{
    LAYOUT(horizontal) STRETCH(1, 0)

    BUTTON toggle LOOKTEXT(check, "Phantom") VALUE(tphantom.val.expr)
		SIZE(1.5, 0);
    FIELD string VALUE(phantom.val.expr) STRETCH(1,0);
    phantom.chmenu.expr;
}


matte.chmenu.expr = SWITCHER
{
    LOOK(plain) VALUE(matte.jive.expr)

    BUTTON push SENDS(4) HELP("Channel Button (click to add channels)") VALUE(matte.jive.expr)
	    LOOKICON(PSI_ChannelNone, bevel) SIZE(0.245, 0.245);
    BUTTON push SENDS(1) HELP("Channel Button (click to edit channels, alt-click to delete them)") VALUE(matte.jive.expr)
	    LOOKICON(PSI_Channel, bevel) SIZE(0.245, 0.245);
}

matte.gad.expr = 
{
    LAYOUT(horizontal) STRETCH(1, 0)

    BUTTON toggle LOOKTEXT(check, "Matte") VALUE(tmatte.val.expr)
		SIZE(1.5, 0);
    FIELD string VALUE(matte.val.expr) STRETCH(1,0);
    matte.chmenu.expr;
}


rbounce.chmenu.expr = SWITCHER
{
    LOOK(plain) VALUE(rbounce.jive.expr)

    BUTTON push SENDS(4) HELP("Channel Button (click to add channels)") VALUE(rbounce.jive.expr)
	    LOOKICON(PSI_ChannelNone, bevel) SIZE(0.245, 0.245);
    BUTTON push SENDS(1) HELP("Channel Button (click to edit channels, alt-click to delete them)") VALUE(rbounce.jive.expr)
	    LOOKICON(PSI_Channel, bevel) SIZE(0.245, 0.245);
}

rbounce.gad.expr = 
{
    LAYOUT(horizontal) STRETCH(1, 0)

    BUTTON toggle LOOKTEXT(check, "Ray Bounce") VALUE(trbounce.val.expr)
		SIZE(1.5, 0);
    FIELD string VALUE(rbounce.val.expr) STRETCH(1,0);
    rbounce.chmenu.expr;
}


dbound.chmenu.expr = SWITCHER
{
    LOOK(plain) VALUE(dbound.jive.expr)

    BUTTON push SENDS(4) HELP("Channel Button (click to add channels)") VALUE(dbound.jive.expr)
	    LOOKICON(PSI_ChannelNone, bevel) SIZE(0.245, 0.245);
    BUTTON push SENDS(1) HELP("Channel Button (click to edit channels, alt-click to delete them)") VALUE(dbound.jive.expr)
	    LOOKICON(PSI_Channel, bevel) SIZE(0.245, 0.245);
}

dbound.gad.expr = 
{
    LAYOUT(horizontal) STRETCH(1, 0)

    BUTTON toggle LOOKTEXT(check,"Displace Bound") VALUE(tdbound.val.expr)
		SIZE(1.5, 0);
    FIELD string VALUE(dbound.val.expr) STRETCH(1,0);
    dbound.chmenu.expr;
}



preinclude.gad.expr = 
{
    LAYOUT(horizontal) STRETCH(1, 0)

    { LOOKTEXT(plain, "Pre-Include") SIZE (1.5, 0)}
    FIELD string VALUE(preinclude.val.expr) STRETCH(1,0);
    BUTTON push VALUE(preinclude.plus.expr) LOOKICON(DialogBox, bevel)
	    SIZE(0.25, 0.25);
}



postinclude.gad.expr = 
{
    LAYOUT(horizontal) STRETCH(1, 0)

    { LOOKTEXT(plain, "Post-Include") SIZE (1.5, 0)}
    FIELD string VALUE(postinclude.val.expr) STRETCH(1,0);
    BUTTON push VALUE(postinclude.plus.expr) LOOKICON(DialogBox, bevel)
	    SIZE(0.25, 0.25);
}


picking.gad.expr = BUTTON toggle LOOKTEXT(check, "Viewport Selecting Enabled")
		     VALUE(picking.val.expr) STRETCH(1, 0);



pickscript.gad.expr = 
{
    LAYOUT(horizontal) STRETCH(1, 0)

    { LOOKTEXT(plain, "Select Script") SIZE (1.5, 0)}
    FIELD string VALUE(pickscript.val.expr) STRETCH(1,0);
    BUTTON push VALUE(pickscript.plus.expr) LOOKICON(DialogBox, bevel)
	    SIZE(0.25, 0.25);
}


shadequality.chmenu.expr = SWITCHER
{
    LOOK(plain) VALUE(shadequality.jive.expr)

    BUTTON push SENDS(4) HELP("Channel Button (click to add channels)") VALUE(shadequality.jive.expr)
	    LOOKICON(PSI_ChannelNone, bevel) SIZE(0.245, 0.245);
    BUTTON push SENDS(1) HELP("Channel Button (click to edit channels, alt-click to delete them)") VALUE(shadequality.jive.expr)
	    LOOKICON(PSI_Channel, bevel) SIZE(0.245, 0.245);
}

shadequality.gad.expr = 
{
    LAYOUT(horizontal) STRETCH(1, 0)

    BUTTON toggle LOOKTEXT(check,"Shading Quality") VALUE(tshadequality.val.expr)
		SIZE(1.5, 0);
    FIELD string VALUE(shadequality.val.expr) STRETCH(1,0);
    shadequality.chmenu.expr;
}


shadowquality.chmenu.expr = SWITCHER
{
    LOOK(plain) VALUE(shadowquality.jive.expr)

    BUTTON push SENDS(4) HELP("Channel Button (click to add channels)") VALUE(shadowquality.jive.expr)
	    LOOKICON(PSI_ChannelNone, bevel) SIZE(0.245, 0.245);
    BUTTON push SENDS(1) HELP("Channel Button (click to edit channels, alt-click to delete them)") VALUE(shadowquality.jive.expr)
	    LOOKICON(PSI_Channel, bevel) SIZE(0.245, 0.245);
}

shadowquality.gad.expr = 
{
    LAYOUT(horizontal) STRETCH(1, 0)

    { LOOKTEXT(plain, "Shadow Quality") SIZE (1.5, 0)}
    FIELD string VALUE(shadowquality.val.expr) STRETCH(1,0);
    shadowquality.chmenu.expr;
}


reflectquality.chmenu.expr = SWITCHER
{
    LOOK(plain) VALUE(reflectquality.jive.expr)

    BUTTON push SENDS(4) HELP("Channel Button (click to add channels)") VALUE(reflectquality.jive.expr)
	    LOOKICON(PSI_ChannelNone, bevel) SIZE(0.245, 0.245);
    BUTTON push SENDS(1) HELP("Channel Button (click to edit channels, alt-click to delete them)") VALUE(reflectquality.jive.expr)
	    LOOKICON(PSI_Channel, bevel) SIZE(0.245, 0.245);
}

reflectquality.gad.expr = 
{
    LAYOUT(horizontal) STRETCH(1, 0)

    { LOOKTEXT(plain, "Reflection Quality") SIZE (1.5, 0)}
    FIELD string VALUE(reflectquality.val.expr) STRETCH(1,0);
    reflectquality.chmenu.expr;
}


lod.chmenu.expr = SWITCHER
{
    LOOK(plain) VALUE(lod.jive.expr)

    BUTTON push SENDS(4) HELP("Channel Button (click to add channels)") VALUE(lod.jive.expr)
	    LOOKICON(PSI_ChannelNone, bevel) SIZE(0.245, 0.245);
    BUTTON push SENDS(1) HELP("Channel Button (click to edit channels, alt-click to delete them)") VALUE(lod.jive.expr)
	    LOOKICON(PSI_Channel, bevel) SIZE(0.245, 0.245);
}

lod.gad.expr = 
{
    LAYOUT(horizontal) STRETCH(1, 0)

    { LOOKTEXT(plain, "Level of Detail") SIZE (1.5, 0)}
    FIELD string VALUE(lod.val.expr) STRETCH(1,0);
    lod.chmenu.expr;
}


instance.gad.expr =
{
    LAYOUT(horizontal) STRETCH(1, 0)
    { LOOKTEXT(plain, "Geo Instance") SIZE(1.5, 0)}
    instance.menu.expr VALUE(instance.menuval.expr)
	     LOOKTEXT(select, instance.menuval.expr) STRETCH(1, 0);
}

partinstance.gad.expr =
{
    LAYOUT(horizontal) STRETCH(1, 0)
    { LOOKTEXT(plain, "Geo Instance") SIZE(1.5, 0)}
    partinstance.menu.expr VALUE(partinstance.menuval.expr)
	     LOOKTEXT(select, partinstance.menuval.expr) STRETCH(1, 0);
}

blur.gad.expr =
{
    LAYOUT(horizontal) STRETCH(1, 0)

    { LOOKTEXT(plain, "Motion Blur") SIZE(1.5, 0)}
    blur.menu.expr VALUE(blur.menuval.expr)
	     LOOKTEXT(select, blur.menuval.expr) STRETCH(1, 0);
}

pages.gad =
{
    LAYOUT(vertical) STRETCH(1, 0)
    { LOOK(none) SIZE(0, 0.05) }	# Spacer

    BUTTONSTRIP radio
    {
	LAYOUT(horizontal!) MARGIN(0, 0) LOOK(none) STRETCH(1, 0)
	VALUE(pagenum.val)
	BUTTON push LAYOUT(horizontal!) LOOKTEXT(folder, "Transform")
			STRETCH(1, 0);
	BUTTON push LAYOUT(horizontal!) LOOKTEXT(folder, "Shading")
			STRETCH(1, 0);
	BUTTON push LAYOUT(horizontal!) LOOKTEXT(folder, "Render")
			STRETCH(1, 0);
	BUTTON push LAYOUT(horizontal!) LOOKTEXT(folder, "Misc")
			STRETCH(1, 0);
    }
    {
	LAYOUT(vertical) LOOK(tabdialog) STRETCH(1, 0) MARGIN(0.05, 0)
	{ SIZE(0, 0.05) }

	SWITCHER
	{
	    LOOK(plain) STRETCH(1, 0) LAYOUT(overlap!)
	    VALUE(pagenum.val)
	    {
		LAYOUT(vertical) MARGIN(0, 0.025) STRETCH(1, 0)
		xOrd.gad;
		rOrd.gad;
		jitter.gad;
		t.gad;
		r.gad;
		s.gad;
		p.gad;
		scale.gad;
		lookat.gad;
		lookup.gad;
		pathobj.gad;
		roll.gad;
		pos.gad;
		pathorient.gad;
		up.gad;
		bank.gad;
	    }
	    {
		LAYOUT(vertical) MARGIN(0, 0.025) STRETCH(1, 0)
		shadespace.gad;
		material.gad;
		rishader.gad;
		dispspace.gad;
		ridisplace.gad;
		riinterior.gad;
		lightmask.gad;
		reflectmask.gad;
		smooth.gad;
		nobackface.gad;
		#genshader.gad;
		#gendisplace.gad;
		#geninterior.gad;
	    }
	    {
		LAYOUT(vertical) MARGIN(0, 0.025) STRETCH(1, 0)
		instance.gad;
		partinstance.gad;
		blur.gad;
		display.gad;
		matte.gad;
		phantom.gad;
		rbounce.gad;
		dbound.gad;
		shadequality.gad;
		shadowquality.gad;
		reflectquality.gad;
		lod.gad;
		preinclude.gad;
		postinclude.gad;
	    }
	    {
		LAYOUT(vertical) MARGIN(0, 0.025) STRETCH(1, 0)
		dcolor.gad;
		picking.gad;
		pickscript.gad;
	    }
	}
    }
}

pages.gad.expr =
{
    LAYOUT(vertical) STRETCH(1, 0)
    { LOOK(none) SIZE(0, 0.05) }	# Spacer

    BUTTONSTRIP radio
    {
	LAYOUT(horizontal!) MARGIN(0, 0) LOOK(none) STRETCH(1, 0)
	VALUE(pagenum.val)
	BUTTON push LAYOUT(horizontal!) LOOKTEXT(folder, "Transform")
			STRETCH(1, 0);
	BUTTON push LAYOUT(horizontal!) LOOKTEXT(folder, "Shading")
			STRETCH(1, 0);
	BUTTON push LAYOUT(horizontal!) LOOKTEXT(folder, "Render")
			STRETCH(1, 0);
	BUTTON push LAYOUT(horizontal!) LOOKTEXT(folder, "Misc")
			STRETCH(1, 0);
    }
    {
	LAYOUT(vertical) LOOK(tabdialog) STRETCH(1, 0) MARGIN(0.05, 0)
	{ SIZE(0, 0.05) }

	SWITCHER
	{
	    LOOK(plain) STRETCH(1, 0) LAYOUT(overlap!)
	    VALUE(pagenum.val)
	    {
		LAYOUT(vertical) MARGIN(0, 0.025) STRETCH(1, 0)
		xOrd.gad.expr;
		rOrd.gad.expr;
		jitter.gad.expr;
		t.gad.expr;
		r.gad.expr;
		s.gad.expr;
		p.gad.expr;
		scale.gad.expr;
		lookat.gad.expr;
		lookup.gad.expr;
		pathobj.gad.expr;
		roll.gad.expr;
		pos.gad.expr;
		pathorient.gad.expr;
		up.gad.expr;
		bank.gad.expr;
	    }
	    {
		LAYOUT(vertical) MARGIN(0, 0.025) STRETCH(1, 0)
		shadespace.gad.expr;
		material.gad.expr;
		rishader.gad.expr;
		dispspace.gad.expr;
		ridisplace.gad.expr;
		riinterior.gad.expr;
		lightmask.gad.expr;
		reflectmask.gad.expr;
		smooth.gad.expr;
		nobackface.gad.expr;
		#genshader.gad.expr;
		#gendisplace.gad.expr;
		#geninterior.gad.expr;
	    }
	    {
		LAYOUT(vertical) MARGIN(0, 0.025) STRETCH(1, 0)
		instance.gad.expr;
		partinstance.gad.expr;
		blur.gad.expr;
		display.gad.expr;
		matte.gad.expr;
		phantom.gad.expr;
		rbounce.gad.expr;
		dbound.gad.expr;
		shadequality.gad.expr;
		shadowquality.gad.expr;
		reflectquality.gad.expr;
		lod.gad.expr;
		preinclude.gad.expr;
		postinclude.gad.expr;
	    }
	    {
		LAYOUT(vertical) MARGIN(0, 0.025) STRETCH(1, 0)
		dcolor.gad.expr;
		picking.gad.expr;
		pickscript.gad.expr;
	    }

	}
    }
}

dialog_norm.gad = 
{
    LAYOUT(vertical!) MARGIN(0, 0.025) STRETCH(0, 0) LOOK(plain)
    { LOOK(underline) SIZE(4, 0.01) STRETCH(0, 0) }

    pages.gad;
}


dialog_expr.gad = 
{
    LAYOUT(vertical!) MARGIN(0, 0.025) STRETCH(0, 0) LOOK(plain)
    { LOOK(underline) SIZE(4, 0.01) STRETCH(0, 0) }

    pages.gad.expr;
}


switcher = SWITCHER
{
    VALUE(switcherval) LOOK(plain) LAYOUT(overlap!) STRETCH(0, 0)

    dialog_norm.gad;
    dialog_expr.gad;
}

preset.menu = BUTTONSTRIP normal
{
    VALUE(PSI_PRESET) LAYOUT(vertical!) MARGIN(0.01, 0.0) FULLOVERLAY

    BUTTON push LOOKTEXT(pushdown, "Load ...");
    BUTTON push LOOKTEXT(pushdown, "Save as ...");
    { LOOK(line) SIZE(0, 0.02) DISABLED }
    BUTTON push LOOKTEXT(pushdown, "Defaults");
}

dialog = OPENNOTIFIER
{
    LAYOUT(vertical>) MARGIN(0, 0.05) LOOK(plain) VALUE(open.val)
    
    {
	LAYOUT(horizontal%) MARGIN(0, 0.05) STRETCH(1, 0) LOOK(plain)

	BUTTON toggle LOOKTEXT(check, "Expressions") VALUE(switcherval);
	{ LAYOUT(horizontal) STRETCH(1, 0) }
	MENUBUTTON preset.menu LOOKTEXT(popdown, "Presets") VALUE(PSI_PRESET);
    }

    switcher;
}
SF_SIZES;
