//---------------------------------------------------------------------------

#ifndef SwitchProgFormUnitH
#define SwitchProgFormUnitH
//---------------------------------------------------------------------------
#include <System.Classes.hpp>
#include <Vcl.Controls.hpp>
#include <Vcl.StdCtrls.hpp>
#include <Vcl.Forms.hpp>
#include <Vcl.ComCtrls.hpp>
#include "TextButton.h"
#include "SkinScrollBarUnit.h"
#include "ListPanel.h"
#include "PNGButton.hpp"
#include "GeneralDialogPanel.h"
#include <Vcl.ExtCtrls.hpp>
#include "CKBox.h"
//---------------------------------------------------------------------------
class TSwitchProgForm : public TForm
{
__published:	// IDE-managed Components
	TLabel *m_lblSoundFont;
	TLabel *m_lblProgram;
	TTextButton *m_btnOk;
	TTextButton *m_btnCancel;
	TGeneralDialogPanel *m_BKGPanel;
	TPanel *m_panFont;
	TShape *m_ShapeFont;
	TShape *m_ShapeProg;
	TTextButton *m_btnSet;
	TPNGButton *m_tabSF2;
	TPNGButton *m_tabVSTi;
	TPanel *m_panProg;

	void __fastcall FormCreate(TObject *Sender);
	void __fastcall VSTSetClick(TObject *Sender);
	void __fastcall VSTiClick(TObject *Sender);
	void __fastcall SF2Click(TObject *Sender);

private:	// User declarations
	TListPanel *m_lvSoundFont;
	TListPanel *m_lvProgram;

	BYTE m_iFontOrig, m_iProgOrig, m_iChnoOrig;

	void __fastcall ProgramDblClick(TObject *Sender);
	void __fastcall DoItemClick(TListPanel *Sender, int Index);
	void __fastcall InitSoundFontList();
	void __fastcall InitProgramList();

	void ResetComponents( bool bInit=false );
	void SwitchFontType( bool bVSTi );
	void ShowVSTiPanel( bool bReset );

/*	MESSAGE void __fastcall WMEraseBkgnd(TWMEraseBkgnd &Message);
	MESSAGE void __fastcall WMSize(TMessage &Message);

	BEGIN_MESSAGE_MAP
		MESSAGE_HANDLER(WM_ERASEBKGND, TWMEraseBkgnd, WMEraseBkgnd)
		MESSAGE_HANDLER(WM_SIZE, TMessage, WMSize)
	END_MESSAGE_MAP(TForm)
*/
protected:

public:		// User declarations
	BYTE m_iFont, m_iProg, m_iChno;
	int m_iStartBar, m_lenBar;
	bool m_bVSTi;

	__fastcall TSwitchProgForm( TComponent* Owner, BYTE iFont, BYTE iProg, BYTE iChno );
	__fastcall ~TSwitchProgForm();
};
//---------------------------------------------------------------------------
extern PACKAGE TSwitchProgForm *SwitchProgForm;
//---------------------------------------------------------------------------
#endif
