#define THE_SCREEN_WIDTH 960
#define THE_SCREEN_HEIGHT 600
#define THE_SCREEN_DEPTH 7

#include "suit.h"


/*--------------------------------------------------------------------------------*/
/*                                                                                */
/*                                  NOTE:                                         */
/*                                                                                */
/*    This file contains all the permanent properties of this application's       */
/*    objects and is read in as a data file.  Compiling this file as part of      */
/*    your application "hard codes" your interface.  Please see "shipping"        */
/*    in the SUIT reference manual for further information.                       */
/*                                                                                */
/*                                                                                */
/*                              !! DANGER !!                                      */
/*                                                                                */
/*      This file is machine-generated, and its contents are very important.      */
/*                                                                                */
/*          If you must edit this file, do so with extreme caution!               */
/*                                                                                */
/*                              !! DANGER !!                                      */
/*                                                                                */
/*--------------------------------------------------------------------------------*/


extern void SUIT_interiorInitFromCode (char *programName, SUIT_functionPointer suiRoutine,
                                       int width, int height, int depth);

extern SUIT_type *si_getType(char *typeName);

extern void si_addChildToObject(SUIT_object, SUIT_object, boolean);

static void MAKE (char *name, char *class, char *parent) 
{ 
    SUIT_object o = SUIT_name(name); 
    SUIT_object p = SUIT_name(parent); 
    if (p != NULL) {
        if (o == NULL) 
            o = SUIT_createObjectByClass(name, class); 
        si_addChildToObject(SUIT_name(parent), o, FALSE); 
    }
} 
 


static void SET (char *objOrClass, char *propertyName, char *propertyType, boolean atClass,
                 boolean locked, char *stringValue) 
{ 
    SUIT_type	*type; 
    boolean	errorStatus; 
    Pointer	retval; 
    SUIT_level level = OBJECT; 
    SUIT_object o; 
     
    if (atClass) 
        level = CLASS; 
    if (level == CLASS) 
        o = SUIT_dummyObjectInClass(objOrClass); 
    else 
        o = SUIT_name(objOrClass); 
    type = si_getType(propertyType); 
    retval = type->convertFromAscii(stringValue, &errorStatus); 
    if (errorStatus == FALSE) 
	SUIT_setProperty(o, propertyName, propertyType, retval, level); 

    if (locked) 
        SUIT_lockProperty(o, propertyName, level); 
}


static void INIT_suiRoutine(void)
{
/* this line is for parsing simplicity @ */
MAKE("delete button","button","ROOT");
MAKE("add item","type in box","ROOT");
MAKE("Add item:","label","ROOT");
MAKE("Text List Demo Program","label","ROOT");
MAKE("Done","button","ROOT");
MAKE("my scrollable list","scrollable list","ROOT");
MAKE("my scrollable list: scrollbar","bounded value","my scrollable list");
MAKE("my scrollable list: list","list","my scrollable list");
SET("arrow button","border raised","boolean",1,0,"no");
SET("arrow button","direction","SUIT_enum",1,0,"\"up\" of {\"up\" \"down\" \"left\" \"right\"}");
SET("arrow button","draw filled","boolean",1,0,"no");
SET("arrow button","has background","boolean",1,0,"no");
SET("arrow button","intermediate feedback","boolean",1,0,"no");
SET("arrow button","shadow thickness","int",1,0,"3");
SET("bounded value","arrowhead angle","int",1,0,"10");
SET("bounded value","arrowhead length","double",1,0,"0.200000");
SET("bounded value","button background color","GP_color",1,0,"black, black");
SET("bounded value","button foreground color","GP_color",1,0,"grey, white");
SET("bounded value","has arrow","boolean",1,0,"yes");
SET("bounded value","has tick marks","boolean",1,0,"yes");
SET("bounded value","increase clockwise","boolean",1,0,"yes");
SET("bounded value","start angle","double",1,0,"0.000000");
SET("button","disabled color","GP_color",1,0,"grey, black");
SET("button","justification","SUIT_enum",1,0,"\"center\" of {\"left\" \"center\" \"right\"}");
SET("button","shrink to fit","boolean",1,0,"yes");
SET("elevator","border raised","boolean",1,0,"no");
SET("elevator","has background","boolean",1,0,"no");
SET("label","has border","boolean",1,0,"no");
SET("label","justification","SUIT_enum",1,0,"\"center\" of {\"left\" \"center\" \"right\"}");
SET("label","shrink to fit","boolean",1,0,"yes");
SET("list","border raised","boolean",1,0,"no");
SET("list","text spacing","double",1,0,"1.200000");
SET("scrollable list","border raised","boolean",1,0,"no");
SET("scrollable list","has background","boolean",1,0,"no");
SET("scrollable list","has border","boolean",1,0,"no");
SET("type in box","any keystroke triggers","boolean",1,0,"no");
SET("type in box","backward char key","text",1,0,"C-b");
SET("type in box","beginning of line key","text",1,0,"C-a");
SET("type in box","beginning of text key","text",1,0,"M-<");
SET("type in box","border raised","boolean",1,0,"no");
SET("type in box","cursor color","GP_color",1,0,"black, black");
SET("type in box","cursor style","SUIT_enum",1,0,"\"vertical bar\" of {\"i-beam\" \"vertical bar\"}");
SET("type in box","delete char key","text",1,0,"C-d");
SET("type in box","delete entire line key","text",1,0,"C-u");
SET("type in box","done editing key","text",1,0,"C-x");
SET("type in box","end of line key","text",1,0,"C-e");
SET("type in box","end of text key","text",1,0,"M->");
SET("type in box","forward char key","text",1,0,"C-f");
SET("type in box","kill line key","text",1,0,"C-k");
SET("type in box","next line key","text",1,0,"C-n");
SET("type in box","open line key","text",1,0,"C-o");
SET("type in box","previous line key","text",1,0,"C-p");
SET("type in box","repaint key","text",1,0,"C-l");
SET("type in box","scroll down key","text",1,0,"M-v");
SET("type in box","scroll up key","text",1,0,"C-v");
SET("type in box","set mark key","text",1,0,"C-`");
SET("type in box","shrink to fit","boolean",1,0,"yes");
SET("type in box","spacing gap","int",1,0,"3");
SET("type in box","tab length","int",1,0,"5");
SET("type in box","time between clicks for double click","double",1,0,"400000.000000");
SET("type in box","wipe block key","text",1,0,"C-w");
SET("type in box","yank key","text",1,0,"C-y");
SET("ROOT","animated","boolean",0,0,"no");
SET("ROOT","background color","GP_color",0,0,"grey, white");
SET("ROOT","border color","GP_color",0,0,"grey, black");
SET("ROOT","border raised","boolean",0,0,"yes");
SET("ROOT","border type","SUIT_enum",0,0,"\"motif\" of {\"simple\" \"motif\" \"fancy motif\"}");
SET("ROOT","border width","int",0,0,"2");
SET("ROOT","clip to viewport","boolean",0,0,"yes");
SET("ROOT","default object height","int",0,0,"80");
SET("ROOT","default object width","int",0,0,"80");
SET("ROOT","draw border on inside","boolean",0,0,"no");
SET("ROOT","font","GP_font",0,0,"times,,12.000000");
SET("ROOT","foreground color","GP_color",0,0,"black, black");
SET("ROOT","has background","boolean",0,0,"yes");
SET("ROOT","has border","boolean",0,0,"yes");
SET("ROOT","margin","int",0,0,"5");
SET("ROOT","show temporary properties","boolean",0,0,"no");
SET("ROOT","shrink to fit","boolean",0,0,"no");
SET("ROOT","springiness","SUIT_springiness",0,0,"63");
SET("ROOT","SUIT system font","GP_font",0,0,"helvetica,,14.000000");
SET("ROOT","viewport","viewport",0,1,"0 0 959 599");
SET("ROOT","visible","boolean",0,0,"yes");
SET("ROOT","wallpaper","text",0,0,"");
SET("ROOT","window","window",0,1,"0.000000 0.000000 1.000000 1.000000");
SET("delete button","active display","SUIT_enum",0,0,"\"standard\" of {\"button with hotkey\" \"standard\"}");
SET("delete button","callback function","SUIT_functionPointer",0,0,"function ptr");
SET("delete button","disabled","boolean",0,0,"no");
SET("delete button","label","text",0,0,"Delete Current Item");
SET("delete button","viewport","viewport",0,0,"371 142 482 166");
SET("add item","active display","SUIT_enum",0,0,"\"standard\" of {\"standard\"}");
SET("add item","altered","boolean",0,0,"no");
SET("add item","callback function","SUIT_functionPointer",0,0,"function ptr");
SET("add item","current value","text",0,0,"");
SET("add item","cut buffer","text",0,0,"");
SET("add item","number of lines","int",0,0,"1");
SET("add item","paint block only","boolean",0,0,"no");
SET("add item","read only","boolean",0,0,"no");
SET("add item","viewport","viewport",0,0,"450 182 564 206");
SET("Add item:","active display","SUIT_enum",0,0,"\"standard\" of {\"standard\"}");
SET("Add item:","label","text",0,0,"Add item:");
SET("Add item:","viewport","viewport",0,0,"368 180 427 204");
SET("Text List Demo Program","active display","SUIT_enum",0,0,"\"standard\" of {\"standard\"}");
SET("Text List Demo Program","label","text",0,0,"Text List Demo Program");
SET("Text List Demo Program","viewport","viewport",0,0,"388 546 522 570");
SET("Done","active display","SUIT_enum",0,0,"\"standard\" of {\"button with hotkey\" \"standard\"}");
SET("Done","border raised","boolean",0,0,"yes");
SET("Done","callback function","SUIT_functionPointer",0,0,"function ptr");
SET("Done","disabled","boolean",0,0,"no");
SET("Done","done callback function","SUIT_functionPointer",0,0,"function ptr");
SET("Done","label","text",0,0,"Done");
SET("Done","viewport","viewport",0,0,"693 133 730 157");
SET("my scrollable list","active display","SUIT_enum",0,0,"\"bulletin board\" of {\"bulletin board\"}");
SET("my scrollable list","callback function","SUIT_functionPointer",0,0,"function ptr");
SET("my scrollable list","current row","int",0,0,"3");
SET("my scrollable list","current value","text",0,0,"Pluto");
SET("my scrollable list","label","text",0,0,"");
SET("my scrollable list","list","SUIT_textList",0,0,"Mickey
Minnie
Goofy
Pluto
Donald
");
SET("my scrollable list","viewport","viewport",0,0,"361 215 561 414");
SET("my scrollable list: scrollbar","active display","SUIT_enum",0,0,"\"scroll bar\" of {\"scroll bar\" \"vertical thermometer\" \"horizontal thermometer\" \"pie slice\" \"speedometer\"}");
SET("my scrollable list: scrollbar","border raised","boolean",0,0,"no");
SET("my scrollable list: scrollbar","callback function","SUIT_functionPointer",0,0,"function ptr");
SET("my scrollable list: scrollbar","current value","double",0,0,"0.000000");
SET("my scrollable list: scrollbar","granularity","double",0,0,"1.000000");
SET("my scrollable list: scrollbar","maximum value","double",0,0,"0.000000");
SET("my scrollable list: scrollbar","minimum value","double",0,0,"0.000000");
SET("my scrollable list: scrollbar","percent full","double",0,0,"1.000000");
SET("my scrollable list: scrollbar","springiness","SUIT_springiness",0,0,"17");
SET("my scrollable list: scrollbar","viewport","viewport",0,0,"186 2 198 197");
SET("my scrollable list: scrollbar: first arrow","active display","SUIT_enum",0,0,"\"motif\" of {\"simple arrow\" \"motif\"}");
SET("my scrollable list: scrollbar: first arrow","callback function","SUIT_functionPointer",0,0,"function ptr");
SET("my scrollable list: scrollbar: first arrow","direction","SUIT_enum",0,0,"\"up\" of {\"up\" \"down\" \"left\" \"right\"}");
SET("my scrollable list: scrollbar: first arrow","has border","boolean",0,0,"no");
SET("my scrollable list: scrollbar: first arrow","viewport","viewport",0,0,"0 183 12 195");
SET("my scrollable list: scrollbar: elevator","active display","SUIT_enum",0,0,"\"motif\" of {\"motif\"}");
SET("my scrollable list: scrollbar: elevator","callback function","SUIT_functionPointer",0,0,"function ptr");
SET("my scrollable list: scrollbar: elevator","current value","double",0,0,"-1.000000");
SET("my scrollable list: scrollbar: elevator","has border","boolean",0,0,"no");
SET("my scrollable list: scrollbar: elevator","percent full","double",0,0,"1.000000");
SET("my scrollable list: scrollbar: elevator","viewport","viewport",0,0,"0 12 12 183");
SET("my scrollable list: scrollbar: second arrow","active display","SUIT_enum",0,0,"\"motif\" of {\"simple arrow\" \"motif\"}");
SET("my scrollable list: scrollbar: second arrow","callback function","SUIT_functionPointer",0,0,"function ptr");
SET("my scrollable list: scrollbar: second arrow","direction","SUIT_enum",0,0,"\"down\" of {\"up\" \"down\" \"left\" \"right\"}");
SET("my scrollable list: scrollbar: second arrow","has border","boolean",0,0,"no");
SET("my scrollable list: scrollbar: second arrow","viewport","viewport",0,0,"0 0 12 12");
SET("my scrollable list: list","active display","SUIT_enum",0,0,"\"standard\" of {\"standard\"}");
SET("my scrollable list: list","callback function","SUIT_functionPointer",0,0,"function ptr");
SET("my scrollable list: list","drawing viewport","viewport",0,0,"2 117 176 197");
SET("my scrollable list: list","springiness","SUIT_springiness",0,0,"3");
SET("my scrollable list: list","viewport","viewport",0,0,"2 2 176 197");


} /* end of INIT_suiRoutine */



void SUIT_initFromCode (char *programName)
{
    SUIT_interiorInitFromCode (programName, INIT_suiRoutine, THE_SCREEN_WIDTH,
                               THE_SCREEN_HEIGHT, THE_SCREEN_DEPTH);
}
