/* -*- Mode: C; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 2 -*-
 *
 * The contents of this file are subject to the Netscape Public License
 * Version 1.0 (the "NPL"); you may not use this file except in
 * compliance with the NPL.  You may obtain a copy of the NPL at
 * http://www.mozilla.org/NPL/
 *
 * Software distributed under the NPL is distributed on an "AS IS" basis,
 * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the NPL
 * for the specific language governing rights and limitations under the
 * NPL.
 *
 * The Initial Developer of this code under the NPL is Netscape
 * Communications Corporation.  Portions created by Netscape are
 * Copyright (C) 1998 Netscape Communications Corporation.  All Rights
 * Reserved.
 */
/*-----------------------------------------*/
/*																		*/
/* Name:		<Xfe/TempTwo.c>											*/
/* Description:	XfeTempTwo widget source.								*/
/* Author:		Ramiro Estrugo <ramiro@netscape.com>					*/
/*																		*/
/*----------------------------------------------------------------------*/


#include <stdio.h>

#include <Xfe/TempTwoP.h>

/* Possible children classes */
#include <Xfe/Label.h>
#include <Xfe/Button.h>
#include <Xfe/Cascade.h>

#include <Xm/Separator.h>
#include <Xm/SeparatoG.h>

#define MESSAGE1 "Widget is not an XfeTempTwo."
#define MESSAGE2 "XfeTemptwo can only have XfeButton & XmSeparator children."

/*----------------------------------------------------------------------*/
/*																		*/
/* Core class methods													*/
/*																		*/
/*----------------------------------------------------------------------*/
static void		ClassPartInitialize	(WidgetClass);
static void 	Initialize			(Widget,Widget,ArgList,Cardinal *);
static void 	Destroy				(Widget);
static Boolean	SetValues			(Widget,Widget,Widget,ArgList,Cardinal *);
static void		GetValuesHook		(Widget,ArgList,Cardinal *);

/*----------------------------------------------------------------------*/
/*																		*/
/* Constraint class methods												*/
/*																		*/
/*----------------------------------------------------------------------*/
static void		ConstraintInitialize(Widget,Widget,ArgList,Cardinal *);
static Boolean	ConstraintSetValues	(Widget,Widget,Widget,ArgList,Cardinal *);
static void 	ConstraintDestroy	(Widget);

/*----------------------------------------------------------------------*/
/*																		*/
/* XfeManager class methods												*/
/*																		*/
/*----------------------------------------------------------------------*/
static void		PreferredGeometry	(Widget,Dimension *,Dimension *);
static Boolean	AcceptChild			(Widget);
static Boolean	InsertChild			(Widget);
static Boolean	DeleteChild			(Widget);
static void		ChangeManaged		(Widget);
static void		PrepareComponents	(Widget,int);
static void		LayoutComponents	(Widget);
static void		LayoutChildren		(Widget);
static void		DrawComponents		(Widget,XEvent *,Region,XRectangle *);

/*----------------------------------------------------------------------*/
/*																		*/
/* XfeTempTwo class methods												*/
/*																		*/
/*----------------------------------------------------------------------*/
static void	LayoutString			(Widget);
static void	DrawString				(Widget,XEvent *,Region,XRectangle *);

/*----------------------------------------------------------------------*/
/*																		*/
/* XfeTempTwo action procedures											*/
/*																		*/
/*----------------------------------------------------------------------*/
static void 	BtnUp				(Widget,XEvent *,char **,Cardinal *);
static void 	BtnDown				(Widget,XEvent *,char **,Cardinal *);

/*----------------------------------------------------------------------*/
/*																		*/
/* Resource callprocs													*/
/*																		*/
/*----------------------------------------------------------------------*/
static void	DefaultSashColor		(Widget,int,XrmValue *);

/*----------------------------------------------------------------------*/
/*																		*/
/* XfeTempTwo resources													*/
/*																		*/
/*----------------------------------------------------------------------*/
static XtResource resources[] = 	
{					
    /* Cursor resources */
	{
		XmNhorizontalCursor,
		XmCHorizontalCursor,
		XmRCursor,
		sizeof(Cursor),
		XtOffsetOf(XfeTempTwoRec , xfe_temp_two . horizontal_cursor),
		XmRString, 
		"sb_h_double_arrow"
	},
	{
		XmNverticalCursor,
		XmCVerticalCursor,
		XmRCursor,
		sizeof(Cursor),
		XtOffsetOf(XfeTempTwoRec , xfe_temp_two . vertical_cursor),
		XmRString, 
		"sb_v_double_arrow"
	},

    /* Color resources */
	{
		XmNsashColor,
		XmCSashColor,
		XmRPixel,
		sizeof(Pixel),
		XtOffsetOf(XfeTempTwoRec , xfe_temp_two . sash_color),
		XmRCallProc, 
		(XtPointer) _XfeCallProcCopyForeground
	},

    { 
		XmNseparatorThickness,
		XmCSeparatorThickness,
		XmRInt,
		sizeof(int),
		XtOffsetOf(XfeTempTwoRec , xfe_temp_two . separator_thickness),
		XmRImmediate, 
		(XtPointer) 50
    },
    { 
		XmNseparatorType,
		XmCSeparatorType,
		XmRSeparatorType,
		sizeof(unsigned char),
		XtOffsetOf(XfeTempTwoRec , xfe_temp_two . separator_type),
		XmRImmediate, 
		(XtPointer) XmSHADOW_ETCHED_IN
    },
    { 
		XmNspacing,
		XmCSpacing,
		XmRHorizontalDimension,
		sizeof(Dimension),
		XtOffsetOf(XfeTempTwoRec , xfe_temp_two . spacing),
		XmRImmediate, 
		(XtPointer) 1
    },

    { 
		XmNbuttonLayout,
		XmCButtonLayout,
		XmRButtonLayout,
		sizeof(unsigned char),
		XtOffsetOf(XfeTempTwoRec , xfe_temp_two . button_layout),
		XmRImmediate, 
		(XtPointer) XmBUTTON_LABEL_ONLY
    },
    { 
		XmNorientation,
		XmCOrientation,
		XmROrientation,
		sizeof(unsigned char),
		XtOffsetOf(XfeTempTwoRec , xfe_temp_two . orientation),
		XmRImmediate, 
		(XtPointer) XmHORIZONTAL
    },

    { 
		XmNraised,
		XmCRaised,
		XmRBoolean,
		sizeof(Boolean),
		XtOffsetOf(XfeTempTwoRec , xfe_temp_two . raised),
		XmRImmediate, 
		(XtPointer) False
    },
    { 
		XmNraiseBorderThickness,
		XmCRaiseBorderThickness,
		XmRHorizontalDimension,
		sizeof(Dimension),
		XtOffsetOf(XfeTempTwoRec , xfe_temp_two . raise_border_thickness),
		XmRImmediate, 
		(XtPointer) 0
    },
	{
		XmNchildUsePreferredHeight,
		XmCChildUsePreferredHeight,
		XmRBoolean,
		sizeof(Boolean),
		XtOffsetOf(XfeTempTwoRec , xfe_temp_two . child_use_pref_height),
		XmRImmediate, 
		(XtPointer) False
	},
	{
		XmNchildUsePreferredWidth,
		XmCChildUsePreferredWidth,
		XmRBoolean,
		sizeof(Boolean),
		XtOffsetOf(XfeTempTwoRec , xfe_temp_two . child_use_pref_width),
		XmRImmediate, 
		(XtPointer) False
	},

    /* Force all the margins to 0 */
    { 
		XmNmarginBottom,
		XmCMarginBottom,
		XmRVerticalDimension,
		sizeof(Dimension),
		XtOffsetOf(XfeTempTwoRec , xfe_manager . margin_bottom),
		XmRImmediate, 
		(XtPointer) 0
    },
    { 
		XmNmarginLeft,
		XmCMarginLeft,
		XmRHorizontalDimension,
		sizeof(Dimension),
		XtOffsetOf(XfeTempTwoRec , xfe_manager . margin_left),
		XmRImmediate, 
		(XtPointer) 0
    },
    { 
		XmNmarginRight,
		XmCMarginRight,
		XmRHorizontalDimension,
		sizeof(Dimension),
		XtOffsetOf(XfeTempTwoRec , xfe_manager . margin_right),
		XmRImmediate, 
		(XtPointer) 0
    },
    { 
		XmNmarginTop,
		XmCMarginTop,
		XmRVerticalDimension,
		sizeof(Dimension),
		XtOffsetOf(XfeTempTwoRec , xfe_manager . margin_top),
		XmRImmediate, 
		(XtPointer) 0
    },
};   

/*----------------------------------------------------------------------*/
/*																		*/
/* XfeTempTwo synthetic resources										*/
/*																		*/
/*----------------------------------------------------------------------*/
static XmSyntheticResource synthetic_resources[] =
{
	{ 
		XmNspacing,
		sizeof(Dimension),
		XtOffsetOf(XfeTempTwoRec , xfe_temp_two . spacing),
		_XmFromHorizontalPixels,
		_XmToHorizontalPixels 
	},
    { 
		XmNraiseBorderThickness,
		sizeof(Dimension),
		XtOffsetOf(XfeTempTwoRec , xfe_temp_two . raise_border_thickness),
		_XmFromHorizontalPixels,
		_XmToHorizontalPixels 
    },
};

/*----------------------------------------------------------------------*/
/*																		*/
/* XfeTempTwo constraint resources										*/
/*																		*/
/*----------------------------------------------------------------------*/
static XtResource constraint_resources[] = 
{
    { 
		XmNmaxHeight,
		XmCMaxHeight,
		XmRDimension,
		sizeof(Dimension),
		XtOffsetOf(XfeTempTwoConstraintRec , xfe_temp_two . max_height),
		XmRImmediate,
		(XtPointer) 65535
    },
    { 
		XmNmaxWidth,
		XmCMaxWidth,
		XmRDimension,
		sizeof(Dimension),
		XtOffsetOf(XfeTempTwoConstraintRec , xfe_temp_two . max_width),
		XmRImmediate,
		(XtPointer) 65535
    },
    { 
		XmNminHeight,
		XmCMinHeight,
		XmRDimension,
		sizeof(Dimension),
		XtOffsetOf(XfeTempTwoConstraintRec , xfe_temp_two . min_height),
		XmRImmediate,
		(XtPointer) 0
    },
    { 
		XmNminWidth,
		XmCMinWidth,
		XmRDimension,
		sizeof(Dimension),
		XtOffsetOf(XfeTempTwoConstraintRec , xfe_temp_two . min_width),
		XmRImmediate,
		(XtPointer) 0
    },
};   

/*----------------------------------------------------------------------*/
/*																		*/
/* XfeTempTwo constraint synthetic resources							*/
/*																		*/
/*----------------------------------------------------------------------*/
static XmSyntheticResource constraint_synthetic_resources[] =
{
    { 
		XmNmaxWidth,
		sizeof(Dimension),
		XtOffsetOf(XfeTempTwoConstraintRec , xfe_temp_two . max_width),
		_XmFromHorizontalPixels,
		_XmToHorizontalPixels 
    },
    { 
		XmNmaxWidth,
		sizeof(Dimension),
		XtOffsetOf(XfeTempTwoConstraintRec , xfe_temp_two . max_width),
		_XmFromHorizontalPixels,
		_XmToHorizontalPixels 
    },
    { 
		XmNmaxHeight,
		sizeof(Dimension),
		XtOffsetOf(XfeTempTwoConstraintRec , xfe_temp_two . max_height),
		_XmFromVerticalPixels,
		_XmToVerticalPixels 
    },
    { 
		XmNmaxHeight,
		sizeof(Dimension),
		XtOffsetOf(XfeTempTwoConstraintRec , xfe_temp_two . max_height),
		_XmFromVerticalPixels,
		_XmToVerticalPixels 
    },
};

/*----------------------------------------------------------------------*/
/*																		*/
/* XfeTempTwo actions													*/
/*																		*/
/*----------------------------------------------------------------------*/
static XtActionsRec actions[] = 
{
    { "BtnDown",			BtnDown				},
    { "BtnUp",				BtnUp				},
};

/*----------------------------------------------------------------------*/
/*																		*/
/* Widget Class Record Initialization                                   */
/*																		*/
/*----------------------------------------------------------------------*/
_XFE_WIDGET_CLASS_RECORD(temptwo,TempTwo) =
{
    {
		(WidgetClass) &xfeManagerClassRec,		/* superclass			*/
		"XfeTempTwo",							/* class_name			*/
		sizeof(XfeTempTwoRec),					/* widget_size			*/
		NULL,									/* class_initialize		*/
		ClassPartInitialize,					/* class_part_initialize*/
		FALSE,									/* class_inited			*/
		Initialize,								/* initialize			*/
		NULL,									/* initialize_hook		*/
		XtInheritRealize,						/* realize				*/
		actions,								/* actions            	*/
		XtNumber(actions),						/* num_actions        	*/
		resources,                              /* resources			*/
		XtNumber(resources),                    /* num_resources		*/
		NULLQUARK,                              /* xrm_class			*/
		TRUE,                                   /* compress_motion		*/
		XtExposeCompressMaximal,                /* compress_exposure	*/
		TRUE,                                   /* compress_enterleave	*/
		FALSE,                                  /* visible_interest		*/
		Destroy,								/* destroy				*/
		XtInheritResize,                        /* resize				*/
		XtInheritExpose,						/* expose				*/
		SetValues,                              /* set_values			*/
		NULL,                                   /* set_values_hook		*/
		XtInheritSetValuesAlmost,				/* set_values_almost	*/
		GetValuesHook,							/* get_values_hook		*/
		NULL,                                   /* access_focus			*/
		XtVersion,                              /* version				*/
		NULL,                                   /* callback_private		*/
		XtInheritTranslations,					/* tm_table				*/
		XtInheritQueryGeometry,					/* query_geometry		*/
		XtInheritDisplayAccelerator,            /* display accelerator	*/
		NULL,                                   /* extension			*/
    },
    
    /* Composite Part */
    {
		XtInheritGeometryManager,				/* geometry_manager		*/
		XtInheritChangeManaged,					/* change_managed		*/
		XtInheritInsertChild,					/* insert_child			*/
		XtInheritDeleteChild,					/* delete_child			*/
		NULL									/* extension			*/
    },

    /* Constraint Part */
    {
		constraint_resources,					/* constraint res		*/
		XtNumber(constraint_resources),			/* num constraint res	*/
		sizeof(XfeTempTwoConstraintRec),		/* constraint size		*/
		ConstraintInitialize,					/* init proc			*/
		ConstraintDestroy,						/* destroy proc			*/
		ConstraintSetValues,					/* set values proc		*/
		NULL,                                   /* extension			*/
    },

    /* XmManager Part */
    {
		XtInheritTranslations,					/* tm_table				*/
		synthetic_resources,					/* syn resources		*/
		XtNumber(synthetic_resources),			/* num syn_resources	*/
		constraint_synthetic_resources,			/* syn resources		*/
		XtNumber(constraint_synthetic_resources),/* num syn_resources	*/
		XmInheritParentProcess,                 /* parent_process		*/
		NULL,                                   /* extension			*/
    },
    
    /* XfeManager Part 	*/
    {
		XfeInheritBitGravity,					/* bit_gravity			*/
		PreferredGeometry,						/* preferred_geometry	*/
		XfeInheritMinimumGeometry,				/* minimum_geometry		*/
		XfeInheritUpdateRect,					/* update_rect			*/
		AcceptChild,							/* accept_child			*/
		InsertChild,							/* insert_child			*/
		DeleteChild,							/* delete_child			*/
		ChangeManaged,							/* change_managed		*/
		PrepareComponents,						/* prepare_components	*/
		LayoutComponents,						/* layout_components	*/
		LayoutChildren,							/* layout_children		*/
		NULL,									/* draw_background		*/
		XfeInheritDrawShadow,					/* draw_shadow			*/
		DrawComponents,							/* draw_components		*/
		NULL,									/* extension			*/
    },

    /* XfeTempTwo Part */
    {
		LayoutString,							/* layout_string		*/
		DrawString,								/* draw_string			*/
		NULL,									/* extension			*/
    },
};

/*----------------------------------------------------------------------*/
/*																		*/
/* xfeTempTwoWidgetClass declaration.									*/
/*																		*/
/*----------------------------------------------------------------------*/
_XFE_WIDGET_CLASS(temptwo,TempTwo);

/*----------------------------------------------------------------------*/
/*																		*/
/* XfeTempTwo resource call procedures									*/
/*																		*/
/*----------------------------------------------------------------------*/
static void
DefaultSashColor(Widget w,int offset,XrmValue * value)
{
	XfeTempTwoPart *		ttp = _XfeTempTwoPart(w);
    static Pixel			sash_color;

	sash_color = _XfemForeground(w);
   
    value->addr = (XPointer) &sash_color;
    value->size = sizeof(sash_color);
}
/*----------------------------------------------------------------------*/

/*----------------------------------------------------------------------*/
/*																		*/
/* Core Class methods													*/
/*																		*/
/*----------------------------------------------------------------------*/
static void
ClassPartInitialize(WidgetClass wc)
{
	XfeTempTwoWidgetClass cc = (XfeTempTwoWidgetClass) wc;
	XfeTempTwoWidgetClass sc = (XfeTempTwoWidgetClass) _XfeSuperClass(wc);

	/* Resolve inheritance of all XfeTempTwo class methods */
	_XfeResolve(cc,sc,xfe_temp_two_class,layout_string,XfeInheritLayoutString);
	_XfeResolve(cc,sc,xfe_temp_two_class,draw_string,XfeInheritDrawString);
}
/*----------------------------------------------------------------------*/
static void
Initialize(Widget rw,Widget nw,ArgList args,Cardinal *nargs)
{
    XfeTempTwoPart *		ttp = _XfeTempTwoPart(nw);

    /* Initialize private members */
	ttp->temp_GC = XfeAllocateSelectionGc(nw,
										  _XfemShadowThickness(nw),
										  ttp->sash_color,
										  _XfeBackgroundPixel(nw));

    /* Finish of initialization */
    _XfeManagerChainInitialize(rw,nw,xfeTempTwoWidgetClass);
}
/*----------------------------------------------------------------------*/
static void
Destroy(Widget w)
{
    XfeTempTwoPart *		ttp = _XfeTempTwoPart(w);

	XtReleaseGC(w,ttp->temp_GC);
}
/*----------------------------------------------------------------------*/
static Boolean
SetValues(Widget ow,Widget rw,Widget nw,ArgList args,Cardinal *nargs)
{
    XfeTempTwoPart *		np = _XfeTempTwoPart(nw);
    XfeTempTwoPart *		op = _XfeTempTwoPart(ow);
	Boolean					update_sash_gc = False;

	/* shadow_thickness */
	if (_XfemShadowThickness(nw) != _XfemShadowThickness(ow))
	{
		_XfemConfigFlags(nw) |= XfeConfigLE;

		update_sash_gc = True;
	}
	
	/* sash_color */
	if (np->sash_color != op->sash_color)
	{
		_XfemConfigFlags(nw) |= XfeConfigLE;

		update_sash_gc = True;
	}

	/* Update the sash gc if needed */
	if (update_sash_gc)
	{
		XtReleaseGC(nw,np->temp_GC);

		np->temp_GC = XfeAllocateSelectionGc(nw,
											 _XfemShadowThickness(nw),
											 np->sash_color,
											 _XfeBackgroundPixel(nw));
	}

    return _XfeManagerChainSetValues(ow,rw,nw,xfeTempTwoWidgetClass);
}
/*----------------------------------------------------------------------*/
static void
GetValuesHook(Widget w,ArgList args,Cardinal* nargs)
{
    XfeTempTwoPart *		ttp = _XfeTempTwoPart(w);
    Cardinal				i;
    
    for (i = 0; i < *nargs; i++)
    {
#if 0
		/* label_string */
		if (strcmp(args[i].name,XmNlabelString) == 0)
		{
			*((XtArgVal *) args[i].value) = 
				(XtArgVal) XmStringCopy(lp->label_string);
		}
		/* font_list */
		else if (strcmp(args[i].name,XmNfontList) == 0)
		{
			*((XtArgVal *) args[i].value) = 
				(XtArgVal) XmFontListCopy(lp->font_list);
		}      
#endif
    }
}
/*----------------------------------------------------------------------*/

/*----------------------------------------------------------------------*/
/*																		*/
/* Constraint class methods												*/
/*																		*/
/*----------------------------------------------------------------------*/
static void
ConstraintInitialize(Widget rc,Widget nc,ArgList args,Cardinal *nargs)
{
 	Widget						w = _XfeParent(nc);
    XfeTempTwoPart *			ttp = _XfeTempTwoPart(w);

	/* Finish constraint initialization */
	_XfeConstraintChainInitialize(rc,nc,xfeTempTwoWidgetClass);
}
/*----------------------------------------------------------------------*/
static void
ConstraintDestroy(Widget c)
{
 	Widget						w = XtParent(c);
    XfeTempTwoPart *			ttp = _XfeTempTwoPart(w);
}
/*----------------------------------------------------------------------*/
static Boolean
ConstraintSetValues(Widget oc,Widget rc,Widget nc,ArgList args,Cardinal *nargs)
{
	Widget						w = XtParent(nc);
    XfeTempTwoPart *			ttp = _XfeTempTwoPart(w);

 	XfeTempTwoConstraintPart *	ncp = _XfeTempTwoConstraintPart(nc);
 	XfeTempTwoConstraintPart *	ocp = _XfeTempTwoConstraintPart(oc);

	/* Finish constraint set values */
	return _XfeConstraintChainSetValues(oc,rc,nc,xfeTempTwoWidgetClass);
}
/*----------------------------------------------------------------------*/

/*----------------------------------------------------------------------*/
/*																		*/
/* XfeManager class methods												*/
/*																		*/
/*----------------------------------------------------------------------*/
static void
PreferredGeometry(Widget w,Dimension * width,Dimension * height)
{
    XfeTempTwoPart *		ttp = _XfeTempTwoPart(w);

}
/*----------------------------------------------------------------------*/
static Boolean
AcceptChild(Widget child)
{
	return True;
}
/*----------------------------------------------------------------------*/
static Boolean
InsertChild(Widget child)
{
    Widget					w = XtParent(child);
    XfeTempTwoPart *		ttp = _XfeTempTwoPart(w);

	return True;
}
/*----------------------------------------------------------------------*/
static Boolean
DeleteChild(Widget child)
{
    Widget					w = XtParent(child);
    XfeTempTwoPart *		ttp = _XfeTempTwoPart(w);

	return True;
}
/*----------------------------------------------------------------------*/
static void
ChangeManaged(Widget w)
{
    XfeTempTwoPart *		ttp = _XfeTempTwoPart(w);
}
/*----------------------------------------------------------------------*/
static void
PrepareComponents(Widget w,int flags)
{
    if (flags & _XFE_PREPARE_LABEL_STRING)
    {
    }
}
/*----------------------------------------------------------------------*/
static void
LayoutComponents(Widget w)
{
    XfeTempTwoPart *	ttp = _XfeTempTwoPart(w);
	
}
/*----------------------------------------------------------------------*/
static void
LayoutChildren(Widget w)
{
    XfeTempTwoPart *	ttp = _XfeTempTwoPart(w);
	
}
/*----------------------------------------------------------------------*/
static void
DrawComponents(Widget w,XEvent * event,Region region,XRectangle * clip_rect)
{
    XfeTempTwoPart *	ttp = _XfeTempTwoPart(w);

}
/*----------------------------------------------------------------------*/

/*----------------------------------------------------------------------*/
/*																		*/
/* XfeTempTwo class methods												*/
/*																		*/
/*----------------------------------------------------------------------*/
static void
LayoutString(Widget w)
{
    XfeTempTwoPart *	ttp = _XfeTempTwoPart(w);

}
/*----------------------------------------------------------------------*/
static void
DrawString(Widget w,XEvent * event,Region region,XRectangle * clip_rect)
{
    XfeTempTwoPart *	ttp = _XfeTempTwoPart(w);

}
/*----------------------------------------------------------------------*/

/*----------------------------------------------------------------------*/
/*																		*/
/* XfeTempTwo action procedures											*/
/*																		*/
/*----------------------------------------------------------------------*/
static void
BtnDown(Widget w,XEvent * event,char ** params,Cardinal * nparams)
{
    XfeTempTwoPart *	ttp = _XfeTempTwoPart(w);
}
/*----------------------------------------------------------------------*/
static void
BtnUp(Widget w,XEvent * event,char ** params,Cardinal * nparams)
{
    XfeTempTwoPart *	ttp = _XfeTempTwoPart(w);
}
/*----------------------------------------------------------------------*/

/*----------------------------------------------------------------------*/
/*																		*/
/* XfeTempTwo Public Methods											*/
/*																		*/
/*----------------------------------------------------------------------*/
/* extern */ Widget
XfeCreateTempTwo(Widget pw,char * name,Arg * av,Cardinal ac)
{
	return XtCreateWidget(name,xfeTempTwoWidgetClass,pw,av,ac);
}
/*----------------------------------------------------------------------*/
