//
//	ToolLib_Window.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
//	- 当ライブラリが生成するオブジェクトの識別子を、整数ハンドル⇒ポインタに変更しました。
//	  オリジナル版では生成したオブジェクトを固定長配列に格納して管理していたのですが、メモリ節約のためにリストで管理するように変更し、そのためには整数ハンドルよりもポインタの方が都合が良いからです。
//	  尚、フォントハンドルと文字列入力ハンドルは、当ライブラリが生成するオブジェクトではなくバックエンドのオブジェクトなので、今回の変更には関係無く整数ハンドルのままです。
//	* Fri Apr 21 22:01:07 JST 2017 Naoyuki Sawa
//	- ToolWindow_Create()にて、名前が設定されている場合だけ、名前表示部分のスペースを追加するように修正しました。
//	  オリジナル版では、名前が設定されていなくても名前表示部分のスペースを追加しており、上部に余分なスペースが開く問題が有りました。
//	- ToolWindow_Draw()にて、縦方向のスクロールバーを描画する場合は、名前を表示するウインドウ上部もその幅まで広げるように変更しました。
//	  オリジナル版では、縦方向のスクロールバーの有無に関係無く、名前を表示するウインドウ上部は情報表示領域の幅までしか塗り潰しておらず、縦方向のスクロールバーの上部に不自然な空白が生じていました。
//	- ToolWindow_Draw()にて、ウインドウの枠を、名前を表示するウインドウ上部も含めて囲むように変更しました。
//	  オリジナル版では、縦横のスクロールバーは含めて囲むのに、名前を表示するウインドウ上部は含めて囲まないという不自然さが有りました。
//	* Tue May 02 22:54:46 JST 2017 Naoyuki Sawa
//	- 各モジュール内のサイズ定義の倍率を一律で調整出来るように、ToolLib.hにTOOL_SCALEの定義を追加しました。
//	  詳細は、ToolLib.hの同日のコメントを参照して下さい。
//	* Sun May 14 23:23:22 JST 2017 Naoyuki Sawa
//	- ToolWindow_IsAnyHovered(),ToolWindow_IsHovered()関数を追加しました。
//	  詳細は、ToolLib.hの同日のコメントを参照して下さい。
//
#ifndef __TOOLLIB_WINDOW_H__
#define __TOOLLIB_WINDOW_H__
#ifdef  __cplusplus
extern "C" {
#endif//__cplusplus
//*****************************************************************************
//	定数、マクロ、構造体
//*****************************************************************************
typedef struct _SToolWindow SToolWindow;	//opaque datatype
//*****************************************************************************
//	アプリケーション用関数
//*****************************************************************************
SToolWindow* ToolWindow_Create(SToolSpaceManage* TSpaceManage, int SpaceLast, int LockSpace, int HScrollSpace, const char* Name, int DrawX, int DrawY, int DrawW, int DrawH, int ClientW, int ClientH);
void ToolWindow_Delete(SToolWindow* TWindow);
void ToolWindow_Delete_All();
void ToolWindow_SetVisibleHandle(SToolWindow* TWindow, SToolVisible* TVisible);
void ToolWindow_SetupDrawArea(SToolWindow* TWindow);
RECT ToolWindow_GetInfoArea(SToolWindow* TWindow);
void ToolWindow_GetDrawLeftUpPos(SToolWindow* TWindow, int* x, int* y);
void ToolWindow_GetClientArea(SToolWindow* TWindow, int* x, int* y);
void ToolWindow_SetClientSize(SToolWindow* TWindow, int w, int h);
void ToolWindow_SetName(SToolWindow* TWindow, const char* Name);
void ToolWindow_SetVisible(SToolWindow* TWindow, int Visible);
int ToolWindow_GetVisible(SToolWindow* TWindow);
int ToolWindow_CheckInfoAreaIn(SToolWindow* TWindow, int x, int y);
void ToolWindow_Step_All();
void ToolWindow_Draw_All();
int ToolWindow_IsAnyHovered();
int ToolWindow_IsHovered(SToolWindow* TWindow);
//*****************************************************************************
//	
//*****************************************************************************
#ifdef  __cplusplus
}//extern "C"
#endif//__cplusplus
#endif//__TOOLLIB_WINDOW_H__
