//===============================================================================
// Xe UI toolkit
//
// XeFrame
//  Private header file
//
// AUTHOR:  Gabor Nagy
// DATE:    2026-May-28 22:22:34
//
// Copyright (C) 1996-2026 by Gabor Nagy. All rights reserved.
//===============================================================================
#ifndef _XeFrameP_h
#define _XeFrameP_h

#include <Xe/ManagerP.h>
#include <Xe/Frame.h>

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

//================================
// Class definition
//================================
// Class part
//================================
typedef struct _XeFrameClassPart
{
	EPointer  Extension;
} XeFrameClassPart;


//================================
// Class record
//================================
typedef struct _XeFrameClassRec
{
	XeCompositeClassCore;
	XeConstraintClassPart  Constraint;
	XeManagerClassPart     Manager;
	XeFrameClassPart       Frame;
} XeFrameClassRec;

extern XeFrameClassRec xeFrameClassRec;


//================================
// Instance definition
//================================
// Instance part
//================================
typedef struct
{
	XeCoord2  MarginSize;
	uint16_t  ShadowType;
	EBool     AdjustEntrySizeX, AdjustEntrySizeY;
} XeFramePart;



//================================
// Instance record
//================================
typedef struct _XeFrameRec
{
	XeCompositeWidgetCore;

	XeBasePart     Base;
	XeManagerPart  Manager;
	XeFramePart    Frame;
} XeFrameRec;


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

#endif // _XeFrameP_h
