DataMuseum.dk

Presents historical artifacts from the history of:

Rational R1000/400 Tapes

This is an automatic "excavation" of a thematic subset of
artifacts from Datamuseum.dk's BitArchive.

See our Wiki for more about Rational R1000/400 Tapes

Excavated with: AutoArchaeologist - Free & Open Source Software.


top - download
Index: ┃ T V

⟦3d584d0ea⟧ TextFile

    Length: 10280 (0x2828)
    Types: TextFile
    Names: »V«

Derivation

└─⟦85b835f43⟧ Bits:30000549 8mm tape, Rational 1000, Xlib rev 6.00
    └─ ⟦0c20f784e⟧ »DATA« 
        └─⟦1abbe589f⟧ 
            └─⟦059497ac5⟧ 
                └─⟦this⟧ 

TextFile

with Unchecked_Deallocation;

with Xlbt_Arithmetic;  
use Xlbt_Arithmetic;  
with Xlbt_Basic3;  
use Xlbt_Basic3;  
with Xlbt_Extension4;  
use Xlbt_Extension4;  
with Xlbt_String;  
use Xlbt_String;  
with Xlbt_String16;  
use Xlbt_String16;

--/ if Record_Rep_Clauses then
--// with Xlbmt_Parameters;
--// use Xlbmt_Parameters;
--/ end if;

package Xlbt_Font3 is
------------------------------------------------------------------------------
-- X Library Font - Full Interface
--
-- Xlbt_Font2 - Types relating to X Server fonts.
--------------------------------------------------------------------------
-- Copyright 1989 - 1991 by Rational, Santa Clara, California.
-- Copyright 1985 - 1989 by the Massachusetts Institute of Technology
--
--                  All Rights Reserved.
--
-- Permission to use, copy, modify, and distribute this software and its
-- documentation for any purpose and without fee is hereby granted,
-- provided that the above copyright notice(s) appear in all copies and that
-- both that copyright notice(s) and this permission notice appear in
-- supporting documentation, and that the names of MIT or Rational not be
-- used in advertising or publicity pertaining to distribution of the software
-- without specific, written prior permission.
--
-- MIT and Rational disclaim all warranties with regard to this software,
-- including all implied warranties of merchantability and fitness, in no
-- event shall MIT or Rational be liable for any special, indirect or
-- consequential damages or any damages whatsoever resulting from loss of use,
-- data or profits, whether in an action of contract, negligence or other
-- tortious action, arising out of or in connection with the use or performance
-- of this software.
------------------------------------------------------------------------------

--\f

------------------------------------------------------------------------------
-- X_Per_Char_Flags - Font Metric Information.
------------------------------------------------------------------------------

--/ if Bit0_Sign_Bit then

    type X_Per_Char_Flags_Index is  
       (Xpcfi15, Xpcfi14, Xpcfi13, Xpcfi12, Xpcfi11, Xpcfi10, Xpcfi09, Xpcfi08,  
        Xpcfi07, Xpcfi06, Xpcfi05, Xpcfi04, Xpcfi03, Xpcfi02, Xpcfi01, Xpcfi00);

--/ else -- not Bit0_Sign_Bit
--//
--// type X_Per_Char_Flags_Index is
--//   (Xpcfi00, Xpcfi01, Xpcfi02, Xpcfi03, Xpcfi04, Xpcfi05, Xpcfi06, Xpcfi07,
--//    Xpcfi08, Xpcfi09, Xpcfi10, Xpcfi11, Xpcfi12, Xpcfi13, Xpcfi14, Xpcfi15);
--//
--/ end if;

    type X_Per_Char_Flags is array (X_Per_Char_Flags_Index) of Boolean;

--/ if Length_Clauses then
    for X_Per_Char_Flags'Size use 16;
--/ elsif Pack then
--//     pragma Pack (X_Per_Char_Flags);
--/ end if;

    None_X_Per_Char_Flags : constant X_Per_Char_Flags :=  
       (others => False);

------------------------------------------------------------------------------
-- X_Char_Struct - Font Character Structure
------------------------------------------------------------------------------

    type X_Char_Struct is  
        record  
            Lbearing   : S_Short := 0;  -- origin to left edge of raster
            Rbearing   : S_Short := 0;  -- origin to right edge of raster
            Width      : S_Short := 0;  -- advance to next char's origin
            Ascent     : S_Short := 0;  -- baseline to top edge of raster
            Descent    : S_Short := 0;  -- baseline to bottom edge of raster
            Attributes :                -- per char flags (not predefined)
               X_Per_Char_Flags  := None_X_Per_Char_Flags;  
        end record;

--/ if Length_Clauses then
    for X_Char_Struct'Size use 3 * 32;
--/ end if;

--/ if Record_Rep_Clauses then
--//     for X_Char_Struct use
--//         record
--//             Lbearing   at 0 * X_Word range X_Half0a .. X_Half0b;
--//             Rbearing   at 0 * X_Word range X_Half1a .. X_Half1b;
--//             Width      at 1 * X_Word range X_Half0a .. X_Half0b;
--//             Ascent     at 1 * X_Word range X_Half1a .. X_Half1b;
--//             Descent    at 2 * X_Word range X_Half0a .. X_Half0b;
--//             Attributes at 2 * X_Word range X_Half1a .. X_Half1b;
--//         end record;
--/ end if;

--/ if not TeleGen2_2d_Bug then
    type X_Char_Struct_Array_2d is array (U_Char range <>,  
                                          U_Char range <>) of X_Char_Struct;
--/ else
--//     type X_Char_Struct_Array_2d is array (Telegen2_2d_Bug range <>,
--//                                           U_Char range <>) of X_Char_Struct;
--/ end if;
    type X_Char_Struct_List_2d is access X_Char_Struct_Array_2d;

--/ if Pack then
--//     pragma Pack (X_Char_Struct_Array_2d);
--/ end if;
--/ if Enable_Deallocation then
    pragma Enable_Deallocation (X_Char_Struct_List_2d);
--/ end if;

    None_X_Char_Struct         : constant X_Char_Struct         :=  
       (0, 0, 0, 0, 0, None_X_Per_Char_Flags);  
    None_X_Char_Struct_List_2d : constant X_Char_Struct_List_2d := null;

    function Ci_Non_Exist_Char (Char : X_Char_Struct) return Boolean;
    ----Returns true if this character doesn't really exist in this font.

    procedure Free_X_Char_Struct_List_2d is  
       new Unchecked_Deallocation (X_Char_Struct_Array_2d,  
                                   X_Char_Struct_List_2d);

------------------------------------------------------------------------------
-- Font_Direction - used in Query_Font -- drawing direction
------------------------------------------------------------------------------

    type X_Font_Direction is (Font_Left_To_Right,  
                              Font_Right_To_Left);

--/ if Length_Clauses then
    for X_Font_Direction'Size use 8;
--/ end if;

    None_X_Font_Direction : constant X_Font_Direction :=  
       X_Font_Direction'Val (0);

------------------------------------------------------------------------------
-- X_Font_Prop - Font Properties
------------------------------------------------------------------------------

    type X_Font_Prop is  
        record  
            Name   : X_Atom := None_X_Atom;  
            Data32 : S_Long := 0;  
        end record;

--/ if Length_Clauses then
    for X_Font_Prop'Size use 2 * 32;
--/ end if;

--/ if Record_Rep_Clauses then
--//     for X_Font_Prop use
--//         record
--//             Name   at 0 * X_Word range X_Word0a .. X_Word0b;
--//             Data32 at 1 * X_Word range X_Word0a .. X_Word0b;
--//         end record;
--/ end if;

    type X_Font_Prop_Array is array (S_Natural range <>) of X_Font_Prop;  
    type X_Font_Prop_List  is access X_Font_Prop_Array;

--/ if Pack then
--//     pragma Pack (X_Font_Prop_Array);
--/ end if;
--/ if Enable_Deallocation then
    pragma Enable_Deallocation (X_Font_Prop_List);
--/ end if;

    None_X_Font_Prop      : constant X_Font_Prop      := (None_X_Atom, 0);  
    None_X_Font_Prop_List : constant X_Font_Prop_List := null;

    procedure Free_X_Font_Prop_List is  
       new Unchecked_Deallocation (X_Font_Prop_Array,  
                                   X_Font_Prop_List);

------------------------------------------------------------------------------
-- X_Font_Struct
------------------------------------------------------------------------------

    type X_Font_Struct_Rec is  
        record  
            Ext_Data :                  -- hook for extension to hang data
               X_Ext_Data := null;  
            Font_Id : X_Font;           -- Font ID for this font
            Direction :                 -- hint about direction the font is
               X_Font_Direction :=      --  painted
               None_X_Font_Direction;  
            Min_Char_Or_Byte2 : U_Short := 0;   -- first character (per_char)
            Max_Char_Or_Byte2 : U_Short := 0;   -- last character  (per_char)
            Min_Byte1 : U_Char := 0;    -- first row that exists   (per_char)
            Max_Byte1 : U_Char := 0;    -- last row that exist     (per_char)
            All_Chars_Exist :           -- flag if all characters have non-zero size
               Boolean := False;  
            Default_Char : X_Character16;--char to print for undefined character
            Properties :                -- pointer to array of additional properties
               X_Font_Prop_List := null;  
            Min_Bounds :                -- minimum bounds over all existing char
               X_Char_Struct;           --  (init by type definition)
            Max_Bounds :                -- maximum bounds over all existing char
               X_Char_Struct;           --  (init by type definition)
            Per_Char :                  -- First_Char to Last_Char information
               X_Char_Struct_List_2d := -- array (Min_Char1..Max_Char1,
               None_X_Char_Struct_List_2d;--       Min_Char2..Max_Char2)
                                          -- Only null for fonts without info.
            Ascent : S_Short := 0;      -- logical extent above baseline for
                                        --  spacing
            Descent : S_Short := 0;     -- logical extent above baseline for
                                        --  spacing
        end record;

    type X_Font_Struct       is access X_Font_Struct_Rec;  
    type X_Font_Struct_Array is array (S_Natural range <>) of X_Font_Struct;  
    type X_Font_Struct_List  is access X_Font_Struct_Array;

    None_X_Font_Struct      : constant X_Font_Struct      := null;  
    None_X_Font_Struct_List : constant X_Font_Struct_List := null;

    procedure Free_X_Font_Struct is  
       new Unchecked_Deallocation (X_Font_Struct_Rec,  
                                   X_Font_Struct);  
    procedure Free_X_Font_Struct_List (List : in out X_Font_Struct_List);

--/ if Enable_Deallocation then
    pragma Enable_Deallocation (X_Font_Struct);  
    pragma Enable_Deallocation (X_Font_Struct_List);
--/ end if;

------------------------------------------------------------------------------
-- X_Fonts_With_Info
------------------------------------------------------------------------------

    type X_Fonts_With_Info is  
        record  
            Info : X_Font_Struct_List;  
            Name : X_String_Pointer_List;  
        end record;

    procedure Free_X_Fonts_With_Info (Info : in out X_Fonts_With_Info);

end Xlbt_Font3;