package net.sourceforge.phpeclipse.phpeditor;

/*
 * (c) Copyright IBM Corp. 2000, 2001.
 * All Rights Reserved.
 */


public interface IPainter {

  /** Paint reasons */
  int SELECTION=		0;
  int TEXT_CHANGE=	1;
  int KEY_STROKE=		2;
  int MOUSE_BUTTON= 4;
  int INTERNAL=			8;
  int CONFIGURATION= 16;
	

  /**	
   * Disposes this painter.
   * <p>
   * XXX: The relationship with deactivate is not yet defined.
   * </p>
   * */
  void dispose();
	
  void paint(int reason);

  /**
   * Deactivates the painter.
   * <p>
   * XXX: The relationship with dispose is not yet defined.
   * </p>
   */
  void deactivate(boolean redraw);
	
  void setPositionManager(IPositionManager manager);
}