//================================================================================
// Xe UI toolkit
//
// Composite Widget:  the base class for all Widgets with children.
// Constraint Widget: composite Widget with geometry management
// Public header file.
//
// AUTHOR:  Gabor Nagy
// DATE:    2023-Aug-18 14:06:20
//
// Copyright (C) 1996-2026 by Gabor Nagy. All rights reserved.
//===============================================================================
#ifndef _XeComposite_h
#define _XeComposite_h


#if defined (__cplusplus) && (!(defined (__CPLUSLIBS)))
extern "C" {
#endif

typedef struct _XeCompositeRec*          XeCompositeWidget;

typedef struct _XeCompositeWidgetClass*  XeCompositeWidgetClass;

#ifndef VMS
externalref XeWidgetClass*  XeCompositeWidget_class;
#endif


// Constraint Widget
//
typedef struct _XeConstraintClassRec*    XeConstraintWidgetClass;

typedef int (*XeOrderProc)(XeWidget PW);

#ifndef VMS
externalref XeWidgetClass*  XeConstraintWidget_class;
#endif

extern void  XeWidget_FreeChildren(XeWidget PW);

#if defined (__cplusplus) && (!(defined (__CPLUSLIBS)))
}  // Close scope of 'extern "C"' declaration
#endif

#endif  // _XeComposite_h
