/* ===========================================================================

 WINDOW.H    Global variables and functions for WINDOW 

=============================================================================*/

#ifdef WINDOW_DRAW_ALLOCATE
#define EXTERN
#else
#define EXTERN extern
#endif


struct ExposeLimits
{
  SINT4 iMin[2];
  SINT4 iMax[2];
};

class WindowDraw
{
public:
  WindowDraw( void );
  void    drawCursor(SINT4 x_a, SINT4 y_a);
  void    eraseCursor(void);
  
  void    drawHome( SINT4 iX_a, SINT4 iY_a );
  void    eraseHome(void);

  void    drawXSect(const FLT4 iLeft_a[2], const FLT4 iRight_a[2]);
  void    eraseXSect(void);
  
  void    exposeAllDrawing(void);

private:
  UINT2  lCursorOnScreen_c;
  SINT4  iCursorPos_c[2];
  struct ExposeLimits CursorExpose_c;
  void   exposeCursor(void);

  UINT2  lHomeOnScreen_c;
  SINT4  iHomePos_c[2];
  struct ExposeLimits HomeExpose_c;
  void   exposeHome(void);

  UINT2  lXSectOnScreen_c;
  SINT4  iXSectLeft_c[2];
  SINT4  iXSectRight_c[2];
  struct ExposeLimits XSectExpose_c;
  void   exposeXSect(void);

};
EXTERN WindowDraw windowDraw;

#undef EXTERN
