|
|
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 - metrics - 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;