// CFullscreenControlerクラス
// WIN32APIを利用した完全なフルスクリーンモードを提供します。

#ifndef __CFULLSCREEN_HEADER__
#define __CFULLSCREEN_HEADER__

#include <FK/Window.h>
#include <FL/x.h>
#include <windows.h>

// ウインドウ状態を保持する構造体
typedef struct{
	HWND hWnd;
	WINDOWPLACEMENT WindowPlacement;
} windowstate;

class CFullscreenControler {
private:
	////////// ウインドウ保存関係 //////////
	#define MAX_NAMELENGTH		512
	#define MAX_WINDOWNUMBER	128

	enum{
		SCMODE_FULLSCREEN,				// フルスクリーンモード
		SCMODE_WINDOW					// ウインドウモード
	};

	Fl_Window	*pFlWnd;
	fk_Window	*pFkWnd;
	HWND		hFlWnd;
	int			nWndX, nWndY, nWndW, nWndH;
	int			fscW, fscH;
	bool		mode;

	BOOL		SaveWindowPosition(void);
	BOOL		LoadWindowPosition(void);
	BOOL		ChangeScreen(HWND, int, int, int);

public:
	CFullscreenControler(void);
	~CFullscreenControler(void);

	void	init(Fl_Window *, fk_Window *);
	bool	isFullscreen(void);
	bool	changeToFullscreen(void);
	void	changeToWindow(void);
	// bool	changeByD3D(bool);
};

#endif
