#ifndef _GPACPANEL_H
#define _GPACPANEL_H


#include "safe_include.h" 
#include <gpac/m4_scenegraph.h>
#include <gpac/m4_render.h>
#include <gpac/intern/m4_esm_dev.h> // for M4Client

class V4SceneManager;
class V4Service;

class wxGPACPanel 
{

public :
	//  Constructor / Desctructor
	wxGPACPanel(V4SceneManager *parent, const char *path);
	~wxGPACPanel();

	 // Access to private members
	MPEG4CLIENT GetMPEG4Terminal() { return m_term; }	
	LPSCENERENDER GetSceneRenderer() { return m_term->renderer; }	
	V4SceneManager *GetV4SceneManager() { return parent; }
	// 
	void Update();

	// Variables used for drag, drop, move, ... picking ...
	s32 m_iDragging;
	u32 m_transformMode; // 0 Move, 1 Scale, 2 Rotate
	SFNode *picked;
	u32 dragX, dragY;

private:
	void TranslateCoordinates(long x, long y, int &sceneX, int &sceneY);

	V4SceneManager *parent;

	M4Client *m_term;
	M4User m_user;

	V4Service *m_pService;
};

#endif
