//===============================================================================
// Xe UI toolkit
//
// XeScrolledWindow
//  Public header file
//
// AUTHOR:  Gabor Nagy
// DATE:    2026-Jun-07 16:30:30
//
// Copyright (C) 1996-2026 by Gabor Nagy. All rights reserved.
//===============================================================================
#ifndef _XeScrolledWindow_h
#define _XeScrolledWindow_h

#include <Xe/ScrollBar.h>

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


enum
{
	XeAUTOMATIC = 1,        // A ClipWindow child should be created as the parent of the ScrolledWindow's child
	XeAPPLICATION_DEFINED   // Scrolling content is handled by the child (e.g. an XeListWidget)
};

enum
{
// XeSTATIC
	 XeAS_NEEDED = 1
};

#define SW_TOP     1
#define SW_BOTTOM  0
#define SW_LEFT    2
#define SW_RIGHT   0

#define XeTOP_LEFT      (SW_TOP | SW_LEFT)
#define XeBOTTOM_LEFT   (SW_BOTTOM  | SW_LEFT)
#define XeTOP_RIGHT     (SW_TOP | SW_RIGHT)
#define XeBOTTOM_RIGHT  (SW_BOTTOM  | SW_RIGHT)


extern XeWidgetClass*                 XeScrolledWindow_class;
typedef struct _XeScrolledWindowRec*  XeScrolledWindowWidget;


extern void      XeScrolledWindow_SetAreas(XeWidget PWidget, XeWidget PHScrollbar, XeWidget PVScrollbar, XeWidget PWorkWindow);
extern XeWidget  XeScrolledWindow_New(XeWidget PParentW, const char* PName,  const EArg* PArglist, const int PArgCount);

extern XeWidget  XeScrolledWindow_ColumnHeaderAddButton(const char* PName, XeWidget PParentW,  EArg* PArgs, int PArgCnt);
extern void      XeScrolledWindow_ColumnHeaderAddDrivingMatrix(XeWidget PW,  XeWidget PMatrixW);


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

#endif // _XeScrolledWindow_h
