|
|
DataMuseum.dkPresents historical artifacts from the history of: Rational R1000/400 |
This is an automatic "excavation" of a thematic subset of
See our Wiki for more about Rational R1000/400 Excavated with: AutoArchaeologist - Free & Open Source Software. |
top - metrics - download
Length: 15360 (0x3c00)
Types: Ada Source
Notes: 03_class, FILE, R1k_Segment, e3_tag, package Xlbt_Key3, seg_004fce
└─⟦8527c1e9b⟧ Bits:30000544 8mm tape, Rational 1000, Arrival backup of disks in PAM's R1000
└─⟦5a81ac88f⟧ »Space Info Vol 1«
└─⟦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.
------------------------------------------------------------------------------
--\x0c
------------------------------------------------------------------------------
-- 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_Ky_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;
nblk1=e
nid=0
hdr6=1c
[0x00] rec0=19 rec1=00 rec2=01 rec3=050
[0x01] rec0=12 rec1=00 rec2=02 rec3=024
[0x02] rec0=21 rec1=00 rec2=03 rec3=036
[0x03] rec0=00 rec1=00 rec2=0e rec3=004
[0x04] rec0=23 rec1=00 rec2=04 rec3=004
[0x05] rec0=1c rec1=00 rec2=05 rec3=02a
[0x06] rec0=00 rec1=00 rec2=0d rec3=03a
[0x07] rec0=1b rec1=00 rec2=06 rec3=028
[0x08] rec0=1b rec1=00 rec2=07 rec3=052
[0x09] rec0=00 rec1=00 rec2=0c rec3=002
[0x0a] rec0=1d rec1=00 rec2=08 rec3=000
[0x0b] rec0=19 rec1=00 rec2=09 rec3=08a
[0x0c] rec0=1d rec1=00 rec2=0a rec3=046
[0x0d] rec0=17 rec1=00 rec2=0b rec3=000
tail 0x2150096d0819784725d80 0x42a00088462063203