/******************************************************************************
 SyGColUtils.h


 ******************************************************************************/

#ifndef _H_SyGColUtils
#define _H_SyGColUtils

#include <JString.h>
#include <jTypes.h>
#include <JXTable.h>

enum GFMColType
	{
		kGFMUID = 0,
		kGFMGID,
		kGFMSize,
		kGFMMode,
		kGFMDate,
		kGFMNone
	};

JBoolean 	InsertFMCol(JXTable* table, JBoolean visibleCols[], 
						const JIndex leadingCols, const GFMColType type, 
						JIndex* index, JCoordinate* retWidth);
JBoolean 	RemoveFMCol(JXTable* table, JBoolean visibleCols[], 
						const JIndex leadingCols, const GFMColType type, 
						JIndex* index);

JSize 		GetFMColCount(const JBoolean visibleCols[], const JIndex leadingCols);
JSize 		GetFMColWidth(const JBoolean visibleCols[], const JIndex leadingCols, const JIndex index);
void 		SetFMCols(JBoolean kShowUID, JBoolean kShowGID, JBoolean kShowSize, 
					  JBoolean kShowMode, JBoolean kShowDate);
void 		GetFMCols(JBoolean* kShowUID, JBoolean* kShowGID, JBoolean* kShowSize, 
					  JBoolean* kShowMode, JBoolean* kShowDate);
GFMColType 	GetFMColType(const JBoolean visibleCols[], const JIndex leadingCols, const JIndex index);
JBoolean 	GFMTypeVisible(const JBoolean visibleCols[],const GFMColType type);
void 		GetFMColTitle(const JBoolean visibleCols[], const JIndex leadingCols, 
						  const JIndex index, JString* str);
JCoordinate GetFMBufferWidth(const JBoolean visibleCols[], const JIndex leadingCols, const JIndex index);
JSize 		GetFMWidthUsed(const JBoolean visibleCols[]);

#endif