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: 10431 (0x28bf) 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_String; use Xlbt_String; package Xlbt_Key3 is ------------------------------------------------------------------------------ -- X Library Key Codes, Symbols, and Translations - Full Interface -- -- Xlbt_Key3 - Types and structures used to describe and keep track of keys -- on the keyboard. ------------------------------------------------------------------------------ -- 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_Compose_Status - Compose sequence status structure, used w/X_Lookup_String. ------------------------------------------------------------------------------ type X_Compose_Status is record Compose_Ptr : X_String_Pointer; -- state table pointer Chars_Matched : S_Long; -- match state end record; None_X_Compose_Status : constant X_Compose_Status := (None_X_String_Pointer, 0); ------------------------------------------------------------------------------ -- X_Key_Button_Mask ------------------------------------------------------------------------------ --/ if Bit0_Sign_Bit then type X_Key_Button_Mask_Index is (Any_Modifier, Xkbmi14, -- Unused Xkbmi13, -- Unused Button_5_Mask, Button_4_Mask, Button_3_Mask, Button_2_Mask, Button_1_Mask, Mod_5_Mask, Mod_4_Mask, Mod_3_Mask, Mod_2_Mask, Mod_1_Mask, Control_Mask, Lock_Mask, Shift_Mask); --/ else -- not Bit0_Sign_Bit --// --// type X_Key_Button_Mask_Index is --// (Shift_Mask, --// Lock_Mask, --// Control_Mask, --// Mod_1_Mask, --// Mod_2_Mask, --// Mod_3_Mask, --// Mod_4_Mask, --// Mod_5_Mask, --// Button_1_Mask, --// Button_2_Mask, --// Button_3_Mask, --// Button_4_Mask, --// Button_5_Mask, --// Xkbmi13, -- Unused --// Xkbmi14, -- Unused --// Any_Modifier); --// --/ end if; type X_Key_Button_Mask is array (X_Key_Button_Mask_Index) of Boolean; --/ if Length_Clauses then for X_Key_Button_Mask'Size use 16; --/ elsif Pack then --// pragma Pack (X_Key_Button_Mask); --/ end if; None_X_Key_Button_Mask : constant X_Key_Button_Mask := (others => False); ------------------------------------------------------------------------------ -- X_Key_Code - simple "numeric" index of 8 bits -- -- Any_Key - Special X_Key_Code passed to Grab_Key ------------------------------------------------------------------------------ type X_Key_Code is new U_Char; --/ if Length_Clauses then for X_Key_Code'Size use 8; --/ end if; type X_Key_Code_Array is array (S_Natural range <>) of X_Key_Code; type X_Key_Code_List is access X_Key_Code_Array; --/ if Pack then --// pragma Pack (X_Key_Code_Array); --/ end if; --/ if Enable_Deallocation then pragma Enable_Deallocation (X_Key_Code_List); --/ end if; None_X_Key_Code : constant X_Key_Code := 0; None_X_Key_Code_List : constant X_Key_Code_List := null; Any_Key : constant X_Key_Code := 0; procedure Free_X_Key_Code_List is new Unchecked_Deallocation (X_Key_Code_Array, X_Key_Code_List); ------------------------------------------------------------------------------ -- X_Key_Modifier names. Used to build a X_Set_Modifier_Mapping request or -- to read a X_Get_Modifier_Mapping request. These correspond to the -- masks defined above. ------------------------------------------------------------------------------ type X_Key_Modifier is (Shift_Map_Index, Lock_Map_Index, Control_Map_Index, Mod_1_Map_Index, Mod_2_Map_Index, Mod_3_Map_Index, Mod_4_Map_Index, Mod_5_Map_Index); ------------------------------------------------------------------------------ -- X_Key_Sym ------------------------------------------------------------------------------ type X_Key_Sym is new S_Long; --/ if Length_Clauses then for X_Key_Sym'Size use 32; --/ end if; None_X_Key_Sym : constant X_Key_Sym := 0; No_Symbol : constant X_Key_Sym := 0; ----Special key symbol meaning "this key does nothing" ------------------------------------------------------------------------------ -- X_Key_Sym_List ------------------------------------------------------------------------------ type X_Key_Sym_Array is array (S_Natural range <>) of X_Key_Sym; type X_Key_Sym_List is access X_Key_Sym_Array; --/ if Pack then --// pragma Pack (X_Key_Sym_Array); --/ end if; --/ if Enable_Deallocation then pragma Enable_Deallocation (X_Key_Sym_List); --/ end if; None_X_Key_Sym_List : constant X_Key_Sym_List := null; procedure Free_X_Key_Sym_List is new Unchecked_Deallocation (X_Key_Sym_Array, X_Key_Sym_List); ------------------------------------------------------------------------------ -- X_Key_Sym_List_2d ------------------------------------------------------------------------------ --/ if not TeleGen2_2d_Bug then type X_Key_Sym_Array_2d is array (X_Key_Code range <>, U_Char range <>) of X_Key_Sym; --/ else --// type X_Key_Sym_Array_2d is array (Telegen2_2d_Bug range <>, --// U_Char range <>) of X_Key_Sym; --// --/ end if; type X_Key_Sym_List_2d is access X_Key_Sym_Array_2d; --/ if Pack then --// pragma Pack (X_Key_Sym_Array_2d); --/ end if; --/ if Enable_Deallocation then pragma Enable_Deallocation (X_Key_Sym_List_2d); --/ end if; None_X_Key_Sym_List_2d : constant X_Key_Sym_List_2d := null; procedure Free_X_Key_Sym_List_2d is new Unchecked_Deallocation (X_Key_Sym_Array_2d, X_Key_Sym_List_2d); --------------------------------------------------------------------------------- -- X_Key_Trans ------------------------------------------------------------------------------ type X_Key_Trans_Rec; type X_Key_Trans is access X_Key_Trans_Rec; --/ if Enable_Deallocation then pragma Enable_Deallocation (X_Key_Trans); --/ end if; type X_Key_Trans_Rec is record Next : -- next on list X_Key_Trans := null; Str : -- string to return when the time comes X_String_Pointer := null; Key : -- key symbol rebound X_Key_Sym := None_X_Key_Sym; State : -- modifier state X_Key_Button_Mask := None_X_Key_Button_Mask; Modifiers : -- modifier key symbols you want X_Key_Sym_List := null; end record; None_X_Key_Trans : constant X_Key_Trans := null; procedure Free_X_Key_Trans (Kt : in out X_Key_Trans); procedure Free_X_Key_Trans_List (Kt : in out X_Key_Trans); ------------------------------------------------------------------------------ -- X_Modifier_Key_Code_List ------------------------------------------------------------------------------ type X_Modifier_Key_Code_Sub_Array is array (X_Key_Modifier) of X_Key_Code; --/ if Pack then --// pragma Pack (X_Modifier_Key_Code_Sub_Array); --/ end if; type X_Modifier_Key_Code_Array is array (S_Natural range <>) of X_Modifier_Key_Code_Sub_Array; --/ if Pack then --// pragma Pack (X_Modifier_Key_Code_Array); --/ end if; type X_Modifier_Key_Code_List is access X_Modifier_Key_Code_Array; --/ if Enable_Deallocation then pragma Enable_Deallocation (X_Modifier_Key_Code_List); --/ end if; procedure Free_X_Modifier_Key_Code_List is new Unchecked_Deallocation (X_Modifier_Key_Code_Array, X_Modifier_Key_Code_List); ------------------------------------------------------------------------------ -- X_Modifier_Keymap ------------------------------------------------------------------------------ type X_Modifier_Keymap_Rec is record -- A record indicating: -- a) the maximum number of keys per modifier for the display -- b) a 2-dimensional (max_keypermod X modifiers) array indicating -- keys modified. Max_Keypermod : U_Char := 0; Modifiermap : X_Modifier_Key_Code_List := null; end record; type X_Modifier_Keymap is access X_Modifier_Keymap_Rec; --/ if Enable_Deallocation then pragma Enable_Deallocation (X_Modifier_Keymap); --/ end if; None_X_Modifier_Keymap : constant X_Modifier_Keymap := null; procedure Free_X_Modifier_Keymap (Map : in out X_Modifier_Keymap); end Xlbt_Key3;