//================================================================
// 3DPanel header file
//
// AUTHOR:  Gabor Nagy
// DATE:    2023-May-25 02:29:55
//
// Copyright (C) 1996-2026 By Gabor Nagy. All rights reserved.
//================================================================
#ifndef _E3D_BevelPanel_h
#define _E3D_BevelPanel_h

#include <Xe/Scale.h>
#include <Xe/DropDownPanel.h>

#include <E3D/UI/Panel.h>

#include <E3D/Spline.h>

typedef struct E3dBevelPanel_S  E3dBevelPanel;

typedef void  (*E3dBevelPanelCallback)(E3dBevelPanel* PPanel, EPointer PClientData);

struct E3dBevelPanel_S
{
	E3dBevelPanelCallback  Callback;
	EPointer               ClientData;
	E3dBevel*              Bevel;
	XeDrawer               Drawer;
	XeWidget               RadiusW, RoundingStepsW, InvertW, AddStartSmootherW, AddEndSmootherW;
};

extern XeWidget  E3dBevelPanel_CreateDrawer(E3dBevelPanel* PBevelPanel, XeWidget PParentW, const char* PName, E3dBevelPanelCallback PCallback, EPointer PClientData, E3dBevel* PBevel);
extern void      E3dBevelPanel_Update(E3dBevelPanel* PBevelPanel, E3dBevel* PBevel);

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

#endif	// _E3D_BevelPanel_h
