//================================================================================
// Xe Widget set
//
// Shell internals
//
// AUTHOR:  Gabor Nagy
// DATE:    2023-Aug-18 14:44:58
//
// Copyright (C) 1996-2026 by Gabor Nagy. All rights reserved.
//===============================================================================
#ifndef _XeShellI_h
#define _XeShellI_h


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


#ifdef EX11
#define XeX11SA\
	Pixmap  X_IconPixmap

#else
#define XeX11SA
#endif


//------------------------------------------------------------------------
// Temporary resource values, used by XeShell_New
//------------------------------------------------------------------------
#define _XeShellArgsCore\
	char*     Title;\
	char*     IconName;EBool  TruecolorIcon;EBool   Iconify;int  IconX ,IconY;\
	char*     GraphicsAPI;\
	int       SizeX, SizeY,  MinSizeX, MaxSizeX,  MinSizeY, MaxSizeY;\
	uint8_t   SelfResizePolicyX, SelfResizePolicyY;\
	int       WMFunctions, WMDecorations, DeleteResponse;XeCallbackFunc  WMCallback;\
	int       StackingPriority;\
	EpImage*  IconImage;\
	EpImage*  BackgroundImage;\
	XeColor   BackgroundColor;\
	EBool     ClearBackground;\
	XeWidget  CenterToWidget;\
	EBool     AllowShellResize, MappedWhenManaged;\
	EBool     SaveUnder, CreateIconFrame;\
	XeX11SA



typedef struct
{
	_XeShellArgsCore;
} _XeShellArgs;


extern void      _XeShellInitArgs(_XeShellArgs* PShellArgs);
extern XeWidget  _Xe_CreateThatShell(XeApp PApp, _XeShellArgs* PShellArgs, XeDisplay* PDisplay, const char* PName, XeWidget PParentW);

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


#endif // _XeShellI_h
