// -*- C++ -*-
#ifndef RIREALIMAGEWINDOW_H
#define RIREALIMAGEWINDOW_H
/* Copyright 1998 
 * Mon Aug 10 10:56:59 1998  Brian Edward Smits  (bes@phoenix.cs.utah.edu)
 * 
 * RiRealImageWindow.H
 * 
 *	
 * 
 * $Id: RiRealImageWindow.H,v 1.1 1998/08/12 20:17:29 bes Exp $ 
 * 
 */
#ifndef RICOMMON_H
#include <RiCommon.H>
#endif

#ifndef RIIMAGEWINDOW_H
#include <RiImageWindow.H>
#endif

#ifndef RICONVERTIMAGE_H
#include <RiConvertImage.H>
#endif


/***************************************************************
CLASS
    RiRealImageWindow
     <one line summary> 

DESCRIPTION
     <Detailed description with any warnings>

KEYBOARD BINDINGS
     r   refresh
     h/? help
     [   darken
     ]   lighten
     {   darken very little
     }   lighten very little
****************************************************************/

class RiRealImageWindow : public RiImageWindow {
  public:
				// GROUP: Constructors and assignment
				//// Default Constructor
    RiRealImageWindow();
				// GROUP: Members
				////
    void		SetImage(RiImage *img);
				//// image has changed, update and redraw.
    void	   	UpdateImage();
				//// conversion has changed, update and redraw.
    void	   	UpdateConversion();
				//// Add extra keyboard commands
    virtual   void  	Keyboard(unsigned char key, int x, int y);
				//// Add extra mouse functionality
    virtual   void  	Mouse(int button, int state, int x, int y);
				//// Allow automatic updates of the window every ms milleseconds
				//  use a negative time to turn off.
    virtual   void      SetAutomaticRefreshTime(int ms);
  protected:
				//// Print the help for this window.
    virtual   void  PrintHelp();
				//// really open the window						
    virtual void DoOpen();
				//// do a refresh every refreshTime milleseconds
    virtual int  Timeout();
  private:
				////Copy Constructor
    RiRealImageWindow(const RiRealImageWindow &);
				//// Assignment
    RiRealImageWindow &operator=(const RiRealImageWindow &);
				////
    RiConvertImage  convert;
				////
    RiImage *img;
				////
    unsigned char	*imgData;
				////
    int			imgDataLen;
				////
    RiReal		Yscale;
				////
    RiReal		x,y,Y;
				////
    int  refreshTime;
};



#endif /* RIREALIMAGEWINDOW_H */

