(* Title:   txtwin.h
 * Purpose: control of multiple windows on Text objects.
 *
 *)

#ifndef __txtwin_h
#define __txtwin_h

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

(* A Text can support multiple windows. When the Text is updated, all
 * of the windows are updated in step. All of the windows have the same
 * title information. 
 *
 *)

(* ----------------------------- txtwin_new --------------------------------
 * Description:   Creates an extra window on a given text object.
 *
 * Parameters:    txt t -- the text to have window added to it.
 * Returns:       void.
 * Other Info:    The created window will be in the same style as for 
 *                txt_new(), with the same title information. The window 
 *                will be made visible.
 *
 *)
procedure txtwin_new(t : txt); extern; 


(* --------------------------------- txtwin_number -------------------------
 * Description:   Informs caller of the number of windows currently on a
 *                given text.
 *
 * Parameters:    txt t -- the text.
 * Returns:       The number of windows currently on "t".
 * Other Info:    none.
 *
 *)
function txtwin_number(t : txt) : integer; extern;


(* -------------------------------- txtwin_dispose -------------------------
 * Description:   Removes a window, previously on "t".
 *
 * Parameters:    txt t -- the text.
 * Returns:       void.
 * Other Info:    This call will have no effect if there is only one window
 *                on "t".
 *
 *)
procedure txtwin_dispose(t : txt); extern;


(* --------------------------- txtwin_setcurrentwindow ---------------------
 * Description:    Ensures that the last window to which the last event was
 *                 delivered, is the current window on a given text
 *
 * Parameters:     txt t -- the text.
 * Returns:        void.
 * Other Info:     Call this when constructing menus, since the same menu
 *                 structure is attached to each window on the same text
 *                 object.
 *
 *)
procedure txtwin_setcurrentwindow(t : txt); extern;

#endif

(* end txtwin.h *)
