------------------------------------------------------------------------------ -- -- -- XVIEW ADA LIBRARY COMPONENTS -- -- -- -- XV_FRAME_PACKAGE -- -- -- -- S p e c -- -- -- -- Copyright (c) 1995 Andreas Almroth, All Rights Reserved -- -- -- -- The XVIEW ADA library is free software; you can redistribute it and/or -- -- modify it under terms of the GNU Library General Public License as -- -- published by the Free Software Foundation; either version 2, or (at your -- -- option) any later version. The XVIEW ADA library is distributed in the -- -- hope that it will be useful, but WITHOUT ANY WARRANTY; without even the -- -- implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. -- -- See the GNU Library General Public License for more details. -- -- You should have received a copy of the GNU Library General Public -- -- License along with the XVIEW ADA library; see the file COPYING.LIB. If -- -- not, write to the Free Software Foundation, 675 Mass Ave, Cambridge, -- -- MA 02139, USA. -- -- -- ------------------------------------------------------------------------------ with Xv_Base_Package,Xv_Server_Image_Package,Xv_Icon_Package; use Xv_Base_Package,Xv_Server_Image_Package,Xv_Icon_Package; with Ada.Command_Line,Ada.Finalization,Interfaces.C,Text_Io; use Ada.Command_Line,Ada.Finalization,Text_Io; package Xv_Frame_Package is type Frame is new Xv_Opaque; type Frame_Cmd is new Xv_Opaque; type Frame_Props is new Xv_Opaque; type Frame_Help is new Xv_Opaque; type Display_Depth is (MONO,TWOBITS,FOURBITS,EIGHTBITS,TWELVEBITS, SIXTEENBITS,TWENTYFOURBITS,THIRTYTWOBITS, SIXTYFOURBITS); DESTROY_DONE : constant := 0; DESTROY_CLEANUP : constant := 2; DESTROY_SAVE_YOURSELF : constant := 3; type Notify_Client is new Xv_Opaque; type Notify_Func_Ptr is access function (Client : Notify_Client; Status : Integer) return Integer; type Xv_Frame is new Controlled with private; type Xv_Frame_Ptr is access all Xv_Frame; type Xv_Frame_Cmd(Owner : Frame) is new Controlled with private; type Xv_Frame_Cmd_Ptr is access all Xv_Frame_Cmd; procedure Initialize (V : in out Xv_Frame); procedure Finalize (V : in out Xv_Frame); procedure Set_Max_Size (V : in out Xv_Frame; W,H : Integer); procedure Set_Min_Size (V : in out Xv_Frame; W,H : Integer); procedure Set_Size (V : in Xv_Frame; W,H : Integer); procedure Set_Pos (V : in Xv_Frame; X,Y : Integer); procedure Set_Title (V : in out Xv_Frame; Tit : String); procedure Show_Frame (V : in Xv_Frame); procedure Hide_Frame (V : in Xv_Frame); procedure Show_Header (V : in Xv_Frame); procedure Hide_Header (V : in Xv_Frame); procedure Show_Footer (V : in Xv_Frame); procedure Hide_Footer (V : in Xv_Frame); procedure Set_Left_Footer (V : in Xv_Frame; Tit : String); procedure Set_Right_Footer (V : in Xv_Frame; Tit : String); procedure Window_Loop (V : in Xv_Frame); procedure Iconify_Frame (V : in Xv_Frame; State : Boolean); procedure Busy_Frame (V : in Xv_Frame; State : Boolean); function Get_Size (V : in Xv_Frame) return IntegerPair; function Get_Max_Size (V : in Xv_Frame) return IntegerPair; function Get_Min_Size (V : in Xv_Frame) return IntegerPair; function Get_Pos (V : in Xv_Frame) return IntegerPair; function Get_Title (V : in Xv_Frame) return String; function Get_Frame (V : in Xv_Frame) return Frame; function Get_Display_Depth(obj : Frame) return Display_Depth; procedure Initialize (V : in out Xv_Frame_Cmd); procedure Finalize (V : in out Xv_Frame_Cmd); procedure Set_Size (V : in Xv_Frame_Cmd; W,H : Integer); procedure Set_Title (V : in Xv_Frame_Cmd; Tit : String); procedure Show_Frame_Cmd (V : in Xv_Frame_Cmd); procedure Hide_Frame_Cmd (V : in Xv_Frame_Cmd); procedure Busy_Frame_Cmd (V : in Xv_Frame_Cmd; State : Boolean); function Get_Size (V : in Xv_Frame_Cmd) return IntegerPair; function Get_Title (V : in Xv_Frame_Cmd) return String; function Get_Frame_Cmd_Panel (V : in Xv_Frame_Cmd) return Xv_opaque; function Get_Frame_Cmd_Status (V : in Xv_Frame_Cmd) return Boolean; procedure Show_Footer (V : in Xv_Frame_Cmd); procedure Hide_Footer (V : in Xv_Frame_Cmd); procedure Set_Left_Footer (V : in Xv_Frame_Cmd; Tit : String); procedure Set_Right_Footer (V : in Xv_Frame_Cmd; Tit : String); function Get_Frame_Cmd (V : in Xv_Frame_Cmd) return Frame_Cmd; private type Xv_Frame is new Controlled with record Base : Frame; Min_Width, Min_Height : Integer; Max_Width, Max_Height : Integer; end record; function Destroy_Func (Client : Notify_client; Status : Integer) return Integer; type Xv_Frame_Cmd (Owner : Frame) is new Controlled with record Parent : Frame := Owner; Base : Frame_cmd; Cmd_Panel : Xv_opaque; end record; end Xv_Frame_Package;