//
//	ToolLib_SpaceManage.h
//
//	エディター共通処理 - ツールのGUI処理のスペース管理
//
//	* Tue Apr 18 21:46:46 JST 2017 Naoyuki Sawa
//	- 1st リリース。
//	* Wed Apr 19 22:11:14 JST 2017 Naoyuki Sawa
//	- 「①DxLibに依存しないようにする」と「②C言語でコンパイル出来るようにする」を対応しました。
//	  詳細は、/clip/ToolLib/README.TXT の、同日のコメントを参照して下さい。
//	* Thu Apr 20 21:31:57 JST 2017 Naoyuki Sawa
//	- 当ライブラリが生成するオブジェクトの識別子を、整数ハンドル⇒ポインタに変更しました。
//	  オリジナル版では生成したオブジェクトを固定長配列に格納して管理していたのですが、メモリ節約のためにリストで管理するように変更し、そのためには整数ハンドルよりもポインタの方が都合が良いからです。
//	  尚、フォントハンドルと文字列入力ハンドルは、当ライブラリが生成するオブジェクトではなくバックエンドのオブジェクトなので、今回の変更には関係無く整数ハンドルのままです。
//	* Tue May 02 22:54:46 JST 2017 Naoyuki Sawa
//	- 各モジュール内のサイズ定義の倍率を一律で調整出来るように、ToolLib.hにTOOL_SCALEの定義を追加しました。
//	  詳細は、ToolLib.hの同日のコメントを参照して下さい。
//
#ifndef __TOOLLIB_SPACEMANAGE_H__
#define __TOOLLIB_SPACEMANAGE_H__
#ifdef  __cplusplus
extern "C" {
#endif//__cplusplus
//*****************************************************************************
//	定数、マクロ、構造体
//*****************************************************************************
typedef struct _SToolSpaceManage SToolSpaceManage;	//opaque datatype
//-----------------------------------------------------------------------------
//スペース情報構造体
typedef struct _SToolSpace {
	int	LockSpace;	//スペースが固定タイプかどうか。(0以外:固定タイプ,0:通常タイプ)
	int	UseSpace;	//使用するスペースサイズ。
	int	SpaceStart;	//使用するスペースの開始位置。
	int	InitUseSpace;	//初期化時のスペースサイズ。
} SToolSpace;
//*****************************************************************************
//	アプリケーション用関数
//*****************************************************************************
SToolSpaceManage* ToolSpaceManage_Create(int TotalSpace);
void ToolSpaceManage_Delete(SToolSpaceManage* TSpaceManage);
void ToolSpaceManage_Delete_All();
void ToolSpaceManage_AddSpace(SToolSpaceManage* TSpaceManage, SToolSpace* Space, int UseSpace, int LockSpace);
void ToolSpaceManage_ChangeTotalSpace(SToolSpaceManage* TSpaceManage, int TotalSpace);
int ToolSpaceManage_GetTotalSpace(SToolSpaceManage* TSpaceManage);
int ToolSpaceManage_GetNextSpace(SToolSpaceManage* TSpaceManage);
//*****************************************************************************
//	
//*****************************************************************************
#ifdef  __cplusplus
}//extern "C"
#endif//__cplusplus
#endif//__TOOLLIB_SPACEMANAGE_H__
