//=======================================================================
//  icondemo.h:	Header file for icon demo
//  Copyright (C) 1995  Bruce E. Wampler
//
//  This program is part of the V C++ GUI Framework example programs.
//
//  This program is free software; you can redistribute it and/or modify
//  it under the terms of the GNU General Public License as published by
//  the Free Software Foundation; either version 2 of the License, or
//  (at your option) any later version.
//
//  This program is distributed in the hope that it will be useful,
//  but WITHOUT ANY WARRANTY; without even the implied warranty of
//  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
//  GNU General Public License for more details.
//
//  You should have received a copy of the GNU General Public License
//  (see COPYING) along with this program; if not, write to the Free
//  Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
//=======================================================================

//	mymodal.cxx	Soruce for sample modal dialog
//
//	While these files were generated by hand, they are intended to
//	serve as an example of files that could have been generated by
//	the V interface generator (Vigr)
//

#ifndef ICONDEMO_H
#define ICONDEMO_H

#ifdef vDEBUG
#include <v/vdebug.h>
#endif

#include <v/vapp.h>
#include <v/vawinfo.h>	// for app info


#include <v/vpane.h>
#include <v/vcmdpane.h>
#include <v/vcmdwin.h>
#include <v/vcanvas.h>


    class iconCmdWindow : public vCmdWindow
      {
      public:		//---------------------------------------- public
	iconCmdWindow(char*, int, int); // Constructor with size
	virtual ~iconCmdWindow();		// Destructor
	virtual void WindowCommand(ItemVal id, ItemVal val, CmdType cType);

      protected:	//--------------------------------------- protected

      private:		//--------------------------------------- private

	vCanvasPane* myCanvas;	// For the canvas
	vCommandPane* myCmdPane;	// for the command pane
	vCommandPane* myCmdPane2;	// for the command pane
	vCommandPane* myCmdPane3;	// for the command pane
	vMenuPane* myMenu;
      };


    class iconApp : public vApp
      {
	friend int AppMain(int, char**);	// allow AppMain access

      public:		//---------------------------------------- public

	iconApp(char* name) : vApp(name) {}	// just call vApp

	virtual ~iconApp() {}

	// Routines from vApp that are normally overridden

	virtual vWindow* NewAppWin(vWindow* win, char* name, int h, int w,
		vAppWinInfo* winInfo);

	virtual void Exit(void);

	virtual int CloseAppWin(vWindow*);

	virtual void AppCommand(vWindow* win, ItemVal id, ItemVal val, CmdType cType);

	virtual void KeyIn(vWindow*, vKey, unsigned int);

	// New routines for this particular app

      protected:	//--------------------------------------- protected

      private:		//--------------------------------------- private

      };
#endif
