/***************************** 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 ViewsDrawer.h
// Baudouin Raoult - ECMWF Jul 99

#ifndef ViewsDrawer_H
#define ViewsDrawer_H

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

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

#ifndef UIViewsDrawer_H  
#include "UIViewsDrawer.h"
#endif

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


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

class ViewEditor;

class ViewsDrawer : public XEditorDrawer<UIViewsDrawer_c>, 
	public FolderViewer {
public:

// -- Exceptions
	// None

// -- Contructors

	ViewsDrawer(ViewEditor&);

// -- Destructor

	virtual ~ViewsDrawer(); // 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

	ViewsDrawer(const ViewsDrawer&);
	ViewsDrawer& operator=(const ViewsDrawer&);

// -- 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 UIViewsDrawer_c

	virtual void editCB( Widget, XtPointer );
	virtual void openFolderCB( Widget, XtPointer );
	virtual void updateCB( Widget, XtPointer );


// -- Class members
	// None

// -- Class methods
	// None

// -- Friends

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

};

inline void destroy(ViewsDrawer**) {}

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

#endif
