(* 
 * Title: txtscrap.h
 * Purpose: Coordinate a unique txt selection among many txt objects.
 *
 *)

# ifndef __txtscrap_h
# define __txtscrap_h

# ifndef __txt_h
# include "txt.h"
# endif

(**************************** INTERFACE FUNCTIONS *************************)


(* --------------------------- txtscrap_setselect --------------------------
 * Description:   Calls txt_setselect(t, from, to) and remembers t.
 *                If another txt object currently holds the selection
 *                then this is first cleared.
 *
 * Parameters:    txt t -- text object
 *                txt_index from -- array index of start of selection
 *                txt_index to -- array index of end of selection
 *                (i.e. first character not in the selection).
 *
 * Returns:       void.
 * Other Info:    If "from" >= "to" then the selection will be unset, and
 *                t will not be remembered as holding the current selection.
 *                A txt must not be destroyed while still holding the
 *                selection, please clear the selection first.
 *
 *)
procedure txtscrap_setselect(t : txt; from, _to : txt_index); extern;


(* -------------------------- txtscrap_selectowner -------------------------
 * Description:   Returns the current holder of the selection.
 *
 * Parameters:    void.
 *
 * Returns:       The txt that currently holds the selection, or 0 if none.
 * Other Info:    none.
 *
 *)
function txtscrap_selectowner : txt; extern;

# endif

(* end scrap.h *)
