/***************************** LICENSE START ***********************************

 Copyright 2012 ECMWF and INPE. This software is distributed under the terms
 of the Apache License version 2.0. In applying this license, ECMWF does not
 waive the privileges and immunities granted to it by virtue of its status as
 an Intergovernmental Organization or submit itself to any jurisdiction.

 ***************************** LICENSE END *************************************/

// File TemplateDrawer.h
// Baudouin Raoult - ECMWF Jul 99

#ifndef TemplateDrawer_H
#define TemplateDrawer_H

#ifndef EditorDrawer_H
#include "EditorDrawer.h"
#endif

#ifndef IconHolder_H
#include "IconHolder.h"
#endif

#ifndef UITemplateDrawer_H  
#include "UITemplateDrawer.h"
#endif

#ifndef Folder_H  
#include "Folder.h"
#endif


#ifndef FolderViewer_H  
#include "FolderViewer.h"
#endif


class TemplateDrawer : public XEditorDrawer<UITemplateDrawer_c>, 
	public FolderViewer {
public:

// -- Exceptions
	// None

// -- Contructors

	TemplateDrawer(InternalEditor&);

// -- Destructor

	virtual ~TemplateDrawer(); // Change to virtual if base class

// -- Convertors
	// None

// -- Operators
	// None

// -- Methods
	// None

// -- Overridden methods
	// None

// -- Class members
	// None 


// -- Class methods
	// None 


	// Uncomment for persistent, remove otherwise
	// static os_typespec* get_os_typespec();

protected:

// -- Members
	// None

// -- Methods

	
	// void print(ostream&) const; // Change to virtual if base class	

// -- Overridden methods
	// None
	// from IconHolder
	virtual bool accept(IconObject*);

// -- Class members
	// None

// -- Class methods
	// None

private:

// No copy allowed

	TemplateDrawer(const TemplateDrawer&);
	TemplateDrawer& operator=(const TemplateDrawer&);

// -- Members
	// None	

// -- Methods

// -- Overridden methods
		 	
	 // from EditorDrawer

	 virtual void edit(IconObject*);

	// From DragWindow

	virtual Widget menu();
	virtual bool dropCopy() { return true; }

	// From FolderViewer

	virtual bool fill(int);
	
	//from UITemplateDrawer_c

	virtual void replaceCB( Widget, XtPointer );
	virtual void mergeCB( Widget, XtPointer );
	virtual void editCB( Widget, XtPointer );
	virtual void openFolderCB( Widget, XtPointer );
	virtual void makeCB( Widget, XtPointer );


// -- Class members
	// None

// -- Class methods
	// None

// -- Friends

	//friend ostream& operator<<(ostream& s,const TemplateDrawer& p)
	//	{ p.print(s); return s; }

};

inline void destroy(TemplateDrawer**) {}

// If persistent, uncomment, otherwise remove
//#ifdef _ODI_OSSG_
//OS_MARK_SCHEMA_TYPE(TemplateDrawer);
//#endif

#endif
