//================================================================
// Xe UI toolkit
//
// Scripted GUI for EResources
//
// AUTHOR:  Gabor Nagy
// DATE:    2023-Aug-18 14:07:39
//
// Copyright (C) 1996-2026 by Gabor Nagy. All rights reserved.
//================================================================
#ifndef _EResourceGUI_h
#define _EResourceGUI_h

#include <stdarg.h>

#include <EResource.h>

#include <Xe/Xe.h>

#include <Xe/DropDownPanel.h>

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

typedef struct
{
	EList(, XeWidget, Widgets);
} EResourcesGUI;


extern XeWidget  ERes_CreateWidget(const EResource* PResource, const ECoreObject* PObject, XeWidget PParentW,  XeWidget* PIndentW,  EResResourceCallbackFunc PCallback, EPointer PClientData);
extern void      ERes_UpdateWidget(const EResource* PResource, ECoreObject* PObject, XeWidget PW);


extern void    ERes_ObjectAutoGUIExt(ECoreObject* PObject, const EResourceList* PResources,  EResourcesGUI** PResourcesGUIP, XeWidget PParentW, EResResourceCallbackFunc PCallback, EPointer PClientData);
extern void    ERes_ObjectAutoGUI(ECoreObject* PObject, EResourcesGUI** PResourcesGUIP, XeWidget PParentW, EResResourceCallbackFunc PCallback, EPointer PClientData);
extern void    EResCB_ObjectAutoGUI(ECoreObject* PObject, XeComponentClassDrawer* PDrawerIn, EResResourceCallbackFunc PCallback, EPointer PClientData, const int PAction);

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

#endif // _EResourceGUI_h
