

{ gemsubs.pas }


FUNCTION Init_Gem : integer ;
  EXTERNAL ;
PROCEDURE Exit_Gem ;
  EXTERNAL ;

FUNCTION Do_Alert( alert : Str255 ; def_btn : integer ) : integer ;
  EXTERNAL ;

PROCEDURE Obj_SetState( dial : Dialog_Ptr ; index : Tree_Index ;
                        state : integer ; redraw : boolean ) ;
  EXTERNAL ;
FUNCTION Obj_State( dial : Dialog_Ptr ; index : Tree_Index ) : integer ;
  EXTERNAL ;
FUNCTION Obj_Flags( dial : Dialog_Ptr ; index : Tree_Index ) : integer ;
  EXTERNAL ;
PROCEDURE Obj_SetFlags( dial : Dialog_Ptr; index : Tree_Index; 
                        flags : INTEGER );
  EXTERNAL;

FUNCTION Get_In_File( VAR path, name : Path_Name ) : boolean ;
  EXTERNAL ;
FUNCTION Get_Out_File( prompt : Str255 ; VAR name : Path_Name ) : boolean ;
  EXTERNAL ;

PROCEDURE Draw_Menu( menu : Menu_Ptr ) ;
  EXTERNAL ;
PROCEDURE Erase_Menu( menu : Menu_Ptr ) ;
  EXTERNAL ;
PROCEDURE Menu_Hilight( menu : Menu_Ptr ; title : Tree_Index ) ;
  EXTERNAL ;
PROCEDURE Menu_Normal( menu : Menu_Ptr ; title : Tree_Index ) ;
  EXTERNAL ;
PROCEDURE Menu_Check(menu : Menu_Ptr ; item : Tree_Index ; checked : boolean );
  EXTERNAL ;
PROCEDURE Menu_Enable( menu : Menu_Ptr ; item : Tree_Index ) ;
  EXTERNAL ;
PROCEDURE Menu_Disable( menu : Menu_Ptr ; item : Tree_Index ) ;
  EXTERNAL ;
PROCEDURE Menu_Text(menu : Menu_Ptr ; item : Tree_Index ; mtext : Str255);
  EXTERNAL ;

FUNCTION New_Window( w_type : integer ; VAR title : Window_Title ; 
                        x_max, y_max, w_max, h_max : integer ) : integer ;
  EXTERNAL ;
PROCEDURE Open_Window( handle : integer ; x, y, w, h : integer ) ;
  EXTERNAL ;
PROCEDURE Close_Window( handle : integer ) ;
  EXTERNAL ;
PROCEDURE Delete_Window( handle : integer ) ;
  EXTERNAL ;
PROCEDURE Set_WSize( handle, x, y, w, h : integer ) ;
  EXTERNAL ;
PROCEDURE Set_WName( handle : integer ; VAR title : Window_Title ) ;
  EXTERNAL ;
PROCEDURE Set_WInfo( handle : integer ; VAR info : Window_Title ) ;
  EXTERNAL ;
PROCEDURE Border_Rect( wind : integer ; VAR x, y, w, h : integer ) ;
  EXTERNAL ;
PROCEDURE Work_Rect( wind : integer ; VAR x, y, w, h : integer ) ;
  EXTERNAL ;
PROCEDURE First_Rect( wind : integer ; VAR x, y, w, h : integer ) ;
  EXTERNAL ;
PROCEDURE Next_Rect( wind : integer ; VAR x, y, w, h : integer ) ;
  EXTERNAL ;
FUNCTION Rect_Intersect ( x1, y1, w1, h1     : integer;
                          VAR x2, y2, w2, h2 : integer ) : boolean ;
  EXTERNAL ;
FUNCTION Front_Window : integer ;
  EXTERNAL ;
PROCEDURE Bring_To_Front( handle : integer ) ;
  EXTERNAL ;
PROCEDURE Set_Window( handle : integer ) ;
  EXTERNAL ;
FUNCTION Get_Window : integer ;
  EXTERNAL ;

PROCEDURE Set_Clip( x, y, w, h : integer ) ;
  EXTERNAL ;
PROCEDURE Draw_Mode( mode : Draw_Modes ) ;
  EXTERNAL ;
PROCEDURE Set_Color( reg : Color_Reg ; red, green, blue : integer ) ;
  EXTERNAL ;
PROCEDURE Line_Color( color : Color_Reg ) ;
  EXTERNAL ;
PROCEDURE Line_Style( style : Line_Types ) ;
  EXTERNAL ;
PROCEDURE Plot( x, y : integer ) ;
  EXTERNAL ;
PROCEDURE Paint_Color( color : Color_Reg ) ;
  EXTERNAL ;
PROCEDURE Paint_Style( style : integer ) ;
  EXTERNAL ;
PROCEDURE Paint_Outline( on : boolean ) ;
  EXTERNAL ;
PROCEDURE Text_Color( color : Color_Reg ) ;
  EXTERNAL ;
PROCEDURE Text_Style( style : integer ) ;
  EXTERNAL ;
PROCEDURE Line( x1, y1, x2, y2 : integer ) ;
  EXTERNAL ;
PROCEDURE Paint_Rect( x, y, w, h : integer ) ;
  EXTERNAL ;
PROCEDURE Paint_Round_Rect( x, y, w, h : integer ) ;
  EXTERNAL ;
PROCEDURE Frame_Round_Rect( x, y, w, h : integer ) ;
  EXTERNAL ;
PROCEDURE Frame_Rect( x, y, w, h : integer ) ;
  EXTERNAL ;

PROCEDURE Draw_String( x, y : integer ; s : Str255 ) ;
  EXTERNAL ;

PROCEDURE Set_MForm( VAR form : Mouse_Form ) ;
  EXTERNAL ;
PROCEDURE Set_Mouse( m_type : Mouse_Type ) ;
  EXTERNAL ;
PROCEDURE Hide_Mouse ;
  EXTERNAL ;
PROCEDURE Show_Mouse ;
  EXTERNAL ;

FUNCTION Get_Event(     emask, bmask, bstate, n_clicks : integer ;
                        ticks : long_integer ;
                        m1_flag : boolean ; m1x, m1y, m1w, m1h : integer ;
                        m2_flag : boolean ; m2x, m2y, m2w, m2h : integer ;
                        VAR message : Message_Buffer ;
                        VAR key, brtn, bclick, mx, my, kstate : integer
                        ) : integer ;
  EXTERNAL ;
PROCEDURE Begin_Update ;
  EXTERNAL ;
PROCEDURE End_Update ;
  EXTERNAL ;
PROCEDURE Begin_Mouse;
   EXTERNAL;
PROCEDURE End_Mouse;
   EXTERNAL;

PROCEDURE Wind_Get( handle, request : integer ; VAR v1, v2, v3, v4 : integer );
  EXTERNAL ;
PROCEDURE Wind_Set( handle, request, v1, v2, v3, v4 : integer ) ;
  EXTERNAL ;

PROCEDURE Clear_Screen ;
  EXTERNAL ;

FUNCTION Load_Resource( fn : Str255 ) : boolean ;
  EXTERNAL ;
PROCEDURE Find_Menu( index : integer ; VAR menu : Menu_Ptr ) ;
  EXTERNAL ;
PROCEDURE Find_Dialog( index : integer ; VAR dial : Dialog_Ptr ) ;
  EXTERNAL ;
PROCEDURE Find_Alert( index : integer ; VAR alert : Str255 ) ;
  EXTERNAL ;
PROCEDURE Free_Resource ;
  EXTERNAL ;

FUNCTION IO_State : Boolean ;
	EXTERNAL ;
FUNCTION IO_Result : Short_Integer ;
	EXTERNAL ;
PROCEDURE IO_Check ( YesNo : Boolean ) ;
	EXTERNAL ;

PROCEDURE Obj_Draw ( dial : Dialog_Ptr; index,depth : INTEGER;
                     x_clip,y_clip,w_clip,h_clip : INTEGER );
   EXTERNAL;
PROCEDURE Obj_Size ( dial: Dialog_Ptr; index: INTEGER; VAR x,y,w,h: INTEGER );
   EXTERNAL;

{ end of Pascal standard library }



