//===============================================================================
// Xe UI toolkit
//
// XeMatrix
//  Public header file
//
// AUTHOR:  Gabor Nagy
// DATE:    2023-Aug-18 14:39:29
//
// Copyright (C) 1996-2026 by Gabor Nagy. All rights reserved.
//===============================================================================
#ifndef _XeMatrixWidget_h
#define _XeMatrixWidget_h

#include <Xe/Manager.h>

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

extern XeWidgetClass*              XeMatrixWidget_class;
typedef struct _XeMatrixClassRec*  XeMatrixWidgetClass;
typedef struct _XeMatrixRec*       XeMatrixWidget;

#define XeCONTENT  0x01
#define XeHEADER   0x02

extern int   XeMatrix_ColumnPreferredSizeX(XeWidget PW, const int PColumn, const EBool PAddSpacing, const uint8_t PWhatToInclude);
extern int   XeMatrix_ColumnGetSpacingX(XeWidget PW, const int PColumn);
extern void  XeMatrix_ColumnSetSizeX(XeWidget PW, const int PColumn, const int PSizeX, const EBool PDoLayout);

extern int   XeMatrix_RowSizeY(XeWidget PW, const int PRow);
extern void  XeMatrix_GetPreferredSizeFromConstraints(XeMatrixWidget PEW, XeWidgetGeometry* PGeo);

extern XeWidget  XeTabPanel_New(XeWidget PParentW, const uint16_t PLayout);
extern XeWidget  XeTabPanel_AddTab(const char* PName, XeWidget PW, XeWidget PNewPanelW);
extern void      XeTabPanel_SetCurrentTab(XeWidget PW);

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

#endif // _XeMatrixWidget_h
