#ifndef _saveccode_h_
#define _saveccode_h_

#include "wb_include.h"


#define DIVIDOR "/*********************************************************/\n"

#define chain(var) ((var == XtChainTop) ? "XtChainTop" \
		    : ((var == XtChainLeft) ? "XtChainLeft" \
		       : ((var == XtChainRight) ? "XtChainRight" \
		         : ((var == XtChainBottom) ? "XtChainBottom" \
			    : "XtRubber"))))

#define fontvar(fontname) \
    ((strcmp(fontname,"times-roman14") == 0) ? "timesRoman14" \
	   : ((strcmp(fontname,"times-bold14") == 0) \
	               ? "timesBold14" \
          : ((strcmp(fontname,"times-roman12") == 0) ? "timesRoman12" \
		    : ((strcmp(fontname,"times-bold12") == 0) \
	               ? "timesBold12" : "fixed"))))

#define fontstruct(fontname) \
    ((strcmp(fontname,"times-roman14") == 0) ? timesRoman14 \
	   : ((strcmp(fontname,"times-bold14") == 0) \
	               ? timesBold14 \
          : ((strcmp(fontname,"times-roman12") == 0) ? timesRoman12 \
		    : ((strcmp(fontname,"times-bold12") == 0) \
	               ? timesBold12 : fixedFont))))


extern int not_optimizing;       /* flags if Saving C code is done optimized */

/* Global Variables Used in querying widget properties */
/* --------------------------------------------------- */
 extern  char *label;
 extern  XtJustify justify;
 extern  int borderwidth, height, width, x, y, highlightThickness;
 extern  Pixel foreground, background, borderColor;
 extern  int vertDistance, horizDistance;
 extern  XtEdgeType top, left, right, bottom;
 extern  Boolean resizable;
 extern  Widget fromHoriz, fromVert;

/* Defaults for Global Variables Used in Saving C Code (Optimized) */
/* --------------------------------------------------------------- */
 extern  XtJustify default_justify;
 extern  int default_borderwidth, default_highlightThickness;
 extern  Pixel default_foreground, default_background, default_borderColor;
 extern  int default_vertDistance, default_horizDistance;
 extern  XtEdgeType default_top, default_left, default_right, default_bottom;
 extern  Boolean default_resizable;

/****************************************************************/

#ifdef __STDC__

extern char *genname();
extern void write_headers(FILE *);
extern void write_main(FILE *);
extern int load_widget_defaults_from(Widget);
extern int load_basic_arg_list(int);
extern void write_basic_arg_list(FILE *, WidgetNode *);
extern int load_form_arg_list(int);
extern int write_form_arg_list(FILE *);
extern void write_general_widget(FILE *, WidgetNode *, int, char *, char *);
extern void write_declarations(FILE *, WidgetNode *);
extern void write_tree(FILE *, WidgetNode *);
extern void write_widgets(FILE *);

#else

extern char *genname();
extern void write_headers();
extern void write_main();
extern int load_widget_defaults_from();
extern int load_basic_arg_list();
extern void write_basic_arg_list();
extern int load_form_arg_list();
extern int write_form_arg_list();
extern void write_general_widget();
extern void write_declarations();
extern void write_tree();
extern void write_widgets();

#endif          /* end of  #ifdef _STDC_  */

/****************************************************************************/
#endif     /* end of ifndef _saveccode_h_  :: DO NOT WRITE BELOW THIS LINE. */
