DataMuseum.dkPresents historical artifacts from the history of: Rational R1000/400 Tapes |
This is an automatic "excavation" of a thematic subset of
See our Wiki for more about Rational R1000/400 Tapes Excavated with: AutoArchaeologist - Free & Open Source Software. |
top - downloadIndex: ┃ T V ┃
Length: 10280 (0x2828) Types: TextFile Names: »V«
└─⟦85b835f43⟧ Bits:30000549 8mm tape, Rational 1000, Xlib rev 6.00 └─ ⟦0c20f784e⟧ »DATA« └─⟦1abbe589f⟧ └─⟦059497ac5⟧ └─⟦this⟧
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;