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

#ifndef NotificationFormUnitH
#define NotificationFormUnitH
//---------------------------------------------------------------------------
#include <System.Classes.hpp>
#include <Vcl.Controls.hpp>
#include <Vcl.StdCtrls.hpp>
#include <Vcl.Forms.hpp>
#include <Vcl.ExtCtrls.hpp>
#include <Vcl.Imaging.pngimage.hpp>
#include <Vcl.Imaging.pnglang.hpp>
#include <Vcl.Graphics.hpp>

#include "NotificationContentPanelUnit.h"
#include "NotificationADPanelUnit.h"
#include "PNGButton.hpp"
#include "NotificationThreadUnit.h"

//---------------------------------------------------------------------------
class TNotificationForm : public TForm
{
__published:	// IDE-managed Components
	TPNGButton *m_PNGButtonClose;
	void __fastcall FormShow(TObject *Sender);
	void __fastcall FormClose(TObject *Sender, TCloseAction &Action);
	void __fastcall m_PNGButtonCloseClick(TObject *Sender);
private:	// User declarations
	int       m_ModalResult;
	TTimer   *m_pNotiShutDownTimer;

	VCTJSON   m_VCJsonAD;
	VCTJSON   m_VCJonNoti;
	VCTJSONDB m_VCJsonContent;
	void __fastcall ClearJsonDirect();

	TNotiADPanel *m_pNotiADPanel;

	void __fastcall NotificationTimerProc(TObject* Sender);
	TTimer *m_pTextNotiTimer;
	int m_iTextNotiIndex;
	TUrlLabel *m_pNotiUrl;
	void __fastcall NotiChangeMouseEnter(TObject *Sender);
	void __fastcall NotiChangeMouseLeave(TObject *Sender);

	TNotiContenPanel *m_pNotiContenPanel;

	TNotificationThread *m_pNotificationThread;

	void __fastcall CreateParams(Vcl::Controls::TCreateParams &Params);

	void __fastcall WMNCHitTest(TWMNCHitTest &Msg);
	MESSAGE void __fastcall WMEraseBkgnd(TWMEraseBkgnd &Message);

	BEGIN_MESSAGE_MAP
		MESSAGE_HANDLER(WM_NCHITTEST, TWMNCHitTest, WMNCHitTest)
		MESSAGE_HANDLER(WM_ERASEBKGND, TWMEraseBkgnd, WMEraseBkgnd)
	END_MESSAGE_MAP( TForm )

public:		// User declarations

	bool __fastcall ParseJson();
	bool __fastcall LoadImg();
	void __fastcall setPANEL();
	__fastcall TNotificationForm(TComponent* Owner);
	__fastcall ~TNotificationForm();
};
//---------------------------------------------------------------------------
extern PACKAGE TNotificationForm *NotificationForm;
#endif
