#ifndef __WFiler__H
#define __WFiler__H

#include "WimpLib:std.h"
#include <stdbool.h>
#include "WimpLib:WListCore.h"

#ifdef __cplusplus
extern "C" {
#endif

typedef WListCore WFiler;

void throw_WFiler_WFiler(WFiler*
		, unsigned int flags
		, CTemplate* t
		, void* pHandle
		, int NrSizes
		, WListCore_FWList* pFWList
		);
void WFiler_NotWFiler(WFiler*);

#define WFiler_Count(pList) WListCore_Count(pList)
#define throw_WFiler_Insert(pList, ...) throw_WListCore_Insert(pList, __VA_ARGS__)
#define WFiler_Get(pList, ...) WListCore_Get(pList, __VA_ARGS__)
#define WFiler_Set(pList, ...) WListCore_Set(pList, __VA_ARGS__)
#define WFiler_Find(pList, ...) WListCore_Find(pList, __VA_ARGS__)
#define WFiler_Del(pList, ...) WListCore_Del(pList, __VA_ARGS__)
#define WFiler_DelRange(pList, ...) WListCore_DelRange(pList, __VA_ARGS__)
#define WFiler_Clear(pList) WListCore_Clear(pList)

#define WFiler_GetWindow(pList) WListCore_GetWindow(pList)
#define WFiler_SubMenu(pList) WListCore_SubMenu(pList)
#define WFiler_Popup(pList, ...) WListCore_Popup(pList, __VA_ARGS__)
#define WFiler_SetExtent(pList) WListCore_SetExtent(pList)
#define WFiler_SetOffset(pList, ...) WListCore_SetExtent(pList, __VA_ARGS__)

#define WFiler_RowColsToPixels(pList, ...) WListCore_RowColsToPixels(pList, __VA_ARGS__)
#define WFiler_PixelsToRowCols(pList, ...) WListCore_PixelsToRowCols(pList, __VA_ARGS__)
#define WFiler_ItemRect(pList, ...) WListCore_ItemRect(pList, __VA_ARGS__)
#define WFiler_IndexToRowCol(pList, ...) WListCore_IndexToRowCol(pList, __VA_ARGS__)
#define WFiler_RowColToIndex(pList, ...) WListCore_RowColToIndex(pList, __VA_ARGS__)

#define WFiler_ForceRedraw(pList, ...) WListCore_ForceRedraw(pList, __VA_ARGS__)
#define WFiler_AllowRefresh(pList, ...) WListCore_AllowRefresh(pList, __VA_ARGS__)
#define WFiler_IsRefreshAllowed(pList) WListCore_IsRefreshAllowed(pList)
#define WFiler_Refresh(pList, ...) WListCore_Refresh(pList, __VA_ARGS__)
#define WFiler_RecalcSize(pList) WListCore_RecalcSize(pList)
#define WFiler_ShowItem(pList, ...) WListCore_ShowItem(pList, __VA_ARGS__)

#define WFiler_GetFocus(pList) WListCore_GetFocus(pList)
#define WFiler_SetFocus(pList, ...) WListCore_SetFocus(pList, __VA_ARGS__)
#define WFiler_MoveFocus(pList, ...) WListCore_MoveFocus(pList, __VA_ARGS__)

#define WFiler_PlotGhostCaret(pList, ...) WListCore_PlotGhostCaret(pList, __VA_ARGS__)
#define WFiler_ShowGhostCaret(pList, ...) WListCore_ShowGhostCaret(pList, __VA_ARGS__)
#define WFiler_HideGhostCaret(pList) WListCore_HideGhostCaret(pList)
#define WFiler_GetGhostCaretIndex(pList, ...) WListCore_GetGhostCaretIndex(pList, __VA_ARGS__);

#define WFiler_GetFlags(pList) WListCore_GetFlags(pList)
#define WFiler_SetFlags(pList, ...) WListCore_SetFlags(pList, __VA_ARGS__)
#define WFiler_SetParent(pList, ...) WListCore_SetParent(pList, __VA_ARGS__)
#define WFiler_SetPane(pList, ...) WListCore_SetPane(pList, __VA_ARGS__)

#define WFiler_GetItemState(pList, ...) WListCore_GetItemState(pList, __VA_ARGS__)
#define WFiler_SetItemState(pList, ...) WListCore_SetItemState(pList, __VA_ARGS__)
#define WFiler_InvertItemState(pList, ...) WListCore_InvertItemState(pList, __VA_ARGS__)
#define WFiler_SetItemsState(pList, ...) WListCore_SetItemsState(pList, __VA_ARGS__)
#define WFiler_InvertItemsState(pList, ...) WListCore_InvertItemsState(pList, __VA_ARGS__)
#define WFiler_FindItemState(pList, ...) WListCore_FindItemState(pList, __VA_ARGS__)

#define WFiler_ItemFromScreenPt(pList, ...) WListCore_ItemFromScreenPt(pList, __VA_ARGS__)
#define WFiler_ItemAreaFromScreenPt(pList, ...) WListCore_ItemAreaFromScreenPt(pList, __VA_ARGS__)
#define WFiler_ItemArea(pList, ...) WListCore_ItemArea(pList, __VA_ARGS__)

#define WFiler_ItemGetSizes(pList, ...) WListCore_ItemGetSizes(pList, __VA_ARGS__)
#define WFiler_GetSizes(pList) WListCore_GetSizes(pList)

#ifdef __cplusplus
}
#endif

#endif
