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

⟦d13fd5fbd⟧ TextFile

    Length: 69823 (0x110bf)
    Types: TextFile
    Names: »V«

Derivation

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

TextFile

with Xlbt_Arithmetic;  
use Xlbt_Arithmetic;  
with Xlbt_Basic3;  
use Xlbt_Basic3;  
with Xlbt_Key;  
use Xlbt_Key;  
with Xlbt_Keyboard3;  
use Xlbt_Keyboard3;  
with Xlbt_Misc;  
use Xlbt_Misc;  
with Xlbt_Pointer;  
use Xlbt_Pointer;  
with Xlbt_Proc_Var;  
use Xlbt_Proc_Var;  
with Xlbt_Univ_Ptr;  
use Xlbt_Univ_Ptr;  
with Xlbt_Window4;  
use Xlbt_Window4;

with Xlbit_Unused;  
use Xlbit_Unused;

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

package Xlbt_Event3 is
------------------------------------------------------------------------------
-- X Library Protocol Event Codes and Packets - Full Interface
--
-- Xlbt_Event2 - Record definitions of the protocol event packets
------------------------------------------------------------------------------
-- 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_Event_Code
--
--  X_Event_Code_8 - used in all X protocol structures
--  X_Event_Code   - used in all user interfaces
------------------------------------------------------------------------------

    type X_Event_Code_8 is  
       (

        Error_Event,        --   0 -- Marks an error from server
        Reply_Event,        --   1 -- Marks a reply from server

        Key_Press,          --   2
        Key_Release,        --   3
        Button_Press,       --   4
        Button_Release,     --   5
        Motion_Notify,      --   6
        Enter_Notify,       --   7
        Leave_Notify,       --   8
        Focus_In,           --   9
        Focus_Out,          --  10
        Keymap_Notify,      --  11
        Expose,             --  12
        Graphics_Expose,    --  13
        No_Expose,          --  14
        Visibility_Notify,  --  15
        Create_Notify,      --  16
        Destroy_Notify,     --  17
        Unmap_Notify,       --  18
        Map_Notify,         --  19
        Map_Request,        --  20
        Reparent_Notify,    --  21
        Configure_Notify,   --  22
        Configure_Request,  --  23
        Gravity_Notify,     --  24
        Resize_Request,     --  25
        Circulate_Notify,   --  26
        Circulate_Request,  --  27
        Property_Notify,    --  28
        Selection_Clear,    --  29
        Selection_Request,  --  30
        Selection_Notify,   --  31
        Colormap_Notify,    --  32
        Client_Message,     --  33
        Mapping_Notify,     --  34

        Last_Event,         --  35 -- Must be greater than any other predefined
                            --          event number.

        Xv36, Xv37, Xv38, Xv39, Xv40, Xv41, Xv42, Xv43, Xv44, Xv45, Xv46,  
        Xv47, Xv48, Xv49, Xv50, Xv51, Xv52, Xv53, Xv54, Xv55, Xv56, Xv57,  
        Xv58, Xv59, Xv60, Xv61, Xv62, Xv63, Xv64, Xv65, Xv66, Xv67, Xv68,  
        Xv69, Xv70, Xv71, Xv72, Xv73, Xv74, Xv75, Xv76, Xv77, Xv78, Xv79,  
        Xv80, Xv81, Xv82, Xv83, Xv84, Xv85, Xv86, Xv87, Xv88, Xv89,  
        Xv90, Xv91, Xv92, Xv93, Xv94, Xv95, Xv96, Xv97, Xv98, Xv99,  
        Xv100, Xv101, Xv102, Xv103, Xv104, Xv105, Xv106, Xv107, Xv108, Xv109,  
        Xv110, Xv111, Xv112, Xv113, Xv114, Xv115, Xv116, Xv117, Xv118, Xv119,  
        Xv120, Xv121, Xv122, Xv123, Xv124, Xv125, Xv126, Xv127, Xv128, Xv129,  
        Xv130, Xv131, Xv132, Xv133, Xv134, Xv135, Xv136, Xv137, Xv138, Xv139,  
        Xv140, Xv141, Xv142, Xv143, Xv144, Xv145, Xv146, Xv147, Xv148, Xv149,  
        Xv150, Xv151, Xv152, Xv153, Xv154, Xv155, Xv156, Xv157, Xv158, Xv159,  
        Xv160, Xv161, Xv162, Xv163, Xv164, Xv165, Xv166, Xv167, Xv168, Xv169,  
        Xv170, Xv171, Xv172, Xv173, Xv174, Xv175, Xv176, Xv177, Xv178, Xv179,  
        Xv180, Xv181, Xv182, Xv183, Xv184, Xv185, Xv186, Xv187, Xv188, Xv189,  
        Xv190, Xv191, Xv192, Xv193, Xv194, Xv195, Xv196, Xv197, Xv198, Xv199,  
        Xv200, Xv201, Xv202, Xv203, Xv204, Xv205, Xv206, Xv207, Xv208, Xv209,  
        Xv210, Xv211, Xv212, Xv213, Xv214, Xv215, Xv216, Xv217, Xv218, Xv219,  
        Xv220, Xv221, Xv222, Xv223, Xv224, Xv225, Xv226, Xv227, Xv228,  
        Xv229, Xv230, Xv231, Xv232, Xv233, Xv234, Xv235, Xv236, Xv237,  
        Xv238, Xv239, Xv240, Xv241, Xv242, Xv243, Xv244, Xv245, Xv246,  
        Xv247, Xv248, Xv249, Xv250, Xv251, Xv252, Xv253, Xv254, Xv255);

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

    subtype X_Event_Code is X_Event_Code_8 range Error_Event .. Xv127;

    None_X_Event_Code : constant X_Event_Code := X_Event_Code'Val (0);

------------------------------------------------------------------------------
-- X_Event_Queuing
------------------------------------------------------------------------------

    type X_Event_Queuing is (Queued_Already,  
                             Queued_After_Reading,  
                             Queued_After_Flush);

    None_X_Event_Queuing : constant X_Event_Queuing := X_Event_Queuing'Val (0);

--\f

------------------------------------------------------------------------------
-- X_Colormap_State - Color Map notification
------------------------------------------------------------------------------

    type X_Colormap_State is (Colormap_Uninstalled,  
                              Colormap_Installed);

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

    None_X_Colormap_State : constant X_Colormap_State :=  
       X_Colormap_State'Val (0);

------------------------------------------------------------------------------
-- Enter/Leave Notify detail
------------------------------------------------------------------------------

    type X_Enter_Leave_Detail is (Enter_Leave_Notify_Ancestor,  
                                  Enter_Leave_Notify_Virtual,  
                                  Enter_Leave_Notify_Inferior,  
                                  Enter_Leave_Notify_Nonlinear,  
                                  Enter_Leave_Notify_Nonlinear_Virtual);

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

    None_X_Enter_Leave_Detail : constant X_Enter_Leave_Detail :=  
       X_Enter_Leave_Detail'Val (0);

------------------------------------------------------------------------------
-- Enter/Leave flags
------------------------------------------------------------------------------

--/ if Bit0_Sign_Bit then

    type X_Enter_Leave_Flags_Index is  
       (Xelfi7, Xelfi6, Xelfi5, Xelfi4, Xelfi3, Xelfi2,   -- Unused
        Enter_Leave_Same_Screen,  
        Enter_Leave_Focus);

--/ else -- not Bit0_Sign_Bit then
--//
--//     type X_Enter_Leave_Flags_Index is
--//        (Enter_Leave_Focus,
--//         Enter_Leave_Same_Screen,
--//         Xelfi2, Xelfi3, Xelfi4, Xelfi5, Xelfi6, Xelfi7);
--//
--/ end if;

    type X_Enter_Leave_Flags is array (X_Enter_Leave_Flags_Index) of Boolean;

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

    None_X_Enter_Leave_Flags :
       constant  
                X_Enter_Leave_Flags := (others => False);

------------------------------------------------------------------------------
-- Enter/Leave mode
------------------------------------------------------------------------------

    type X_Enter_Leave_Mode is (Enter_Leave_Notify_Normal,  
                                Enter_Leave_Notify_Grab,  
                                Enter_Leave_Notify_Ungrab);

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

    None_X_Enter_Leave_Mode : constant X_Enter_Leave_Mode :=  
       X_Enter_Leave_Mode'Val (0);

------------------------------------------------------------------------------
-- Focus In/Out detail
------------------------------------------------------------------------------

    type X_Focus_Detail is (Focus_Notify_Ancestor,  
                            Focus_Notify_Virtual,  
                            Focus_Notify_Inferior,  
                            Focus_Notify_Nonlinear,  
                            Focus_Notify_Nonlinear_Virtual,  
                            Focus_Notify_Pointer,  
                            Focus_Notify_Pointer_Root,  
                            Focus_Notify_Detail_None);

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

    None_X_Focus_Detail : constant X_Focus_Detail := X_Focus_Detail'Val (0);

------------------------------------------------------------------------------
-- Focus In/Out mode
------------------------------------------------------------------------------

    type X_Focus_Mode is (Focus_Notify_Normal,  
                          Focus_Notify_Grab,  
                          Focus_Notify_Ungrab,  
                          Focus_Notify_While_Grabbed);

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

    None_X_Focus_Mode : constant X_Focus_Mode := X_Focus_Mode'Val (0);

------------------------------------------------------------------------------
-- Mapping Notify Request
------------------------------------------------------------------------------

    type X_Mapping_Request_Type is (Mapping_Modifier,  
                                    Mapping_Keyboard,  
                                    Mapping_Pointer);

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

    None_X_Mapping_Request_Type : constant X_Mapping_Request_Type :=  
       X_Mapping_Request_Type'Val (0);

------------------------------------------------------------------------------
-- Motion Notify detail
------------------------------------------------------------------------------

    type X_Motion_Notify_Detail is (Motion_Notify_Normal,  
                                    Motion_Notify_Hint);

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

    None_X_Motion_Notify_Detail : constant X_Motion_Notify_Detail :=  
       X_Motion_Notify_Detail'Val (0);

------------------------------------------------------------------------------
-- Visibility notify state
------------------------------------------------------------------------------

    type X_Visibility_Notify_State is (Visibility_Unobscured,  
                                       Visibility_Partially_Obscured,  
                                       Visibility_Fully_Obscured);

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

    None_X_Visibility_Notify_State : constant X_Visibility_Notify_State :=  
       X_Visibility_Notify_State'Val (0);

--\f

------------------------------------------------------------------------------
-- X_Button_Event
------------------------------------------------------------------------------

    type X_Button_Event is  
        record  
            Kind            : X_Event_Code_8;   -- Button_Press, Button_Release
            Button          : X_Button_Name;    -- Detail
            Sequence_Number : U_Short;  
            Time            : X_Time;           -- milliseconds
            Root            : X_Window;         -- root window event occurred on
            Window          : X_Window;         -- window on which event was
                                                --  requested in event mask
            Subwindow       : X_Window;         -- child window
            Root_X          : S_Short;          -- x coord relative to root
            Root_Y          : S_Short;          -- y coord relative to root
            X               : S_Short;          -- x coord in event window
            Y               : S_Short;          -- y coord in event window
            State           : X_Key_Button_Mask;-- key or button mask
            Same_Screen     : X_Boolean_Char;   -- same screen flag
            Pad             : U_Char;  
        end record;

--/ if Length_Clauses then
    for X_Button_Event'Size use 32 * 8;
--/ end if;

------------------------------------------------------------------------------
-- X_Circulate_Notify_Event
------------------------------------------------------------------------------

    type X_Circulate_Notify_Event is  
        record  
            Kind            : X_Event_Code_8;   -- Circulate_Notify
            Pad0            : U_Char;  
            Sequence_Number : U_Short;  
            Event           : X_Window;  
            Window          : X_Window;  
            Parent          : X_Window;  
            Place           : X_Circulate_Place;  
            Pad             : X_Unused_15;  
        end record;

--/ if Length_Clauses then
    for X_Circulate_Notify_Event'Size use 32 * 8;
--/ end if;

------------------------------------------------------------------------------
-- X_Circulate_Request_Event
------------------------------------------------------------------------------

    type X_Circulate_Request_Event is  
        record  
            Kind            : X_Event_Code_8;   -- Circulate_Request
            Pad0            : U_Char;  
            Sequence_Number : U_Short;  
            Parent          : X_Window;  
            Window          : X_Window;  
            Pad1            : X_Unused_4;  
            Place           : X_Circulate_Place;  
            Pad             : X_Unused_15;  
        end record;

--/ if Length_Clauses then
    for X_Circulate_Request_Event'Size use 32 * 8;
--/ end if;

------------------------------------------------------------------------------
-- X_Client_Message_Event
------------------------------------------------------------------------------

    type X_Client_Message_Event is  
        record  
            Kind            : X_Event_Code_8;   -- Client_Message
            Format          : U_Char;  
            Sequence_Number : U_Short;  
            Window          : X_Window;  
            Message_Type    : X_Atom;  
            Data            : X_Client_Data_Type;  
        end record;

--/ if Length_Clauses then
    for X_Client_Message_Event'Size use 32 * 8;
--/ end if;

------------------------------------------------------------------------------
-- X_Colormap_Notify_Event
------------------------------------------------------------------------------

    type X_Colormap_Notify_Event is  
        record  
            Kind            : X_Event_Code_8;   -- Colormap_Notify
            Pad0            : U_Char;  
            Sequence_Number : U_Short;  
            Window          : X_Window;  
            Colormap        : X_Colormap;       -- a colormap or None_X_Colormap
            New_Map         : X_Boolean_Char;  
            State           : X_Colormap_State;  
            Pad             : X_Unused_18;  
        end record;

--/ if Length_Clauses then
    for X_Colormap_Notify_Event'Size use 32 * 8;
--/ end if;

------------------------------------------------------------------------------
-- X_Configure_Notify_Event
------------------------------------------------------------------------------

    type X_Configure_Notify_Event is  
        record  
            Kind              : X_Event_Code_8; -- Configure_Notify
            Pad0              : U_Char;  
            Sequence_Number   : U_Short;  
            Event             : X_Window;  
            Window            : X_Window;  
            Above             : X_Window;  
            X                 : S_Short;  
            Y                 : S_Short;  
            Width             : U_Short;  
            Height            : U_Short;  
            Border_Width      : U_Short;  
            Override_Redirect : X_Boolean_Char;  
            Pad               : X_Unused_5;  
        end record;

--/ if Length_Clauses then
    for X_Configure_Notify_Event'Size use 32 * 8;
--/ end if;

------------------------------------------------------------------------------
-- X_Configure_Request_Event
------------------------------------------------------------------------------

    type X_Configure_Request_Event is  
        record  
            Kind            : X_Event_Code_8;   -- Configure_Request
            Stack_Mode      : X_Window_Stacking;  
            Sequence_Number : U_Short;  
            Parent          : X_Window;  
            Window          : X_Window;  
            Above           : X_Window;  
            X               : S_Short;  
            Y               : S_Short;  
            Width           : U_Short;  
            Height          : U_Short;  
            Border_Width    : U_Short;  
            Value_Mask      : X_Window_Changes_Mask;  
            Pad             : X_Unused_4;  
        end record;

--/ if Length_Clauses then
    for X_Configure_Request_Event'Size use 32 * 8;
--/ end if;

------------------------------------------------------------------------------
-- X_Create_Notify_Event
------------------------------------------------------------------------------

    type X_Create_Notify_Event is  
        record  
            Kind              : X_Event_Code_8; -- Create_Notify
            Pad0              : U_Char;  
            Sequence_Number   : U_Short;  
            Parent            : X_Window;       -- parent of the window
            Window            : X_Window;       -- window ID of window created
            X                 : S_Short;        -- window location
            Y                 : S_Short;        -- window location
            Width             : U_Short;        -- size of window
            Height            : U_Short;        -- size of window
            Border_Width      : U_Short;        -- border width
            Override_Redirect : X_Boolean_Char; -- creation should be overridden
            Pad               : X_Unused_9;  
        end record;

--/ if Length_Clauses then
    for X_Create_Notify_Event'Size use 32 * 8;
--/ end if;

------------------------------------------------------------------------------
-- X_Destroy_Notify_Event
------------------------------------------------------------------------------

    type X_Destroy_Notify_Event is  
        record  
            Kind            : X_Event_Code_8;   -- Destroy_Notify
            Pad0            : U_Char;  
            Sequence_Number : U_Short;  
            Event           : X_Window;  
            Window          : X_Window;  
            Pad             : X_Unused_20;  
        end record;

--/ if Length_Clauses then
    for X_Destroy_Notify_Event'Size use 32 * 8;
--/ end if;

------------------------------------------------------------------------------
-- X_Enter_Leave_Event
------------------------------------------------------------------------------

    type X_Enter_Leave_Event is  
        record  
            Kind            : X_Event_Code_8;   -- Enter_Notify, Leave_Notify
            Detail          : X_Enter_Leave_Detail; -- Notify_Ancestor/...
            Sequence_Number : U_Short;  
            Time            : X_Time;           -- milliseconds
            Root            : X_Window;         -- root window event occurred on
            Window          : X_Window;         -- window on which event was
                                                --  requested in event mask
            Subwindow       : X_Window;         -- child window
            Root_X          : S_Short;          -- x coord relative to root
            Root_Y          : S_Short;          -- y coord relative to root
            X               : S_Short;          -- x coord in event window
            Y               : S_Short;          -- y coord in event window
            State           : X_Key_Button_Mask;-- key or button mask
            Mode            : X_Enter_Leave_Mode; -- Normal/Grab/Ungrab
            Flags           : X_Enter_Leave_Flags;-- Focus/Same-Screen
        end record;

--/ if Length_Clauses then
    for X_Enter_Leave_Event'Size use 32 * 8;
--/ end if;

------------------------------------------------------------------------------
-- X_Expose_Event
------------------------------------------------------------------------------

    type X_Expose_Event is  
        record  
            Kind            : X_Event_Code_8;   -- Expose
            Pad0            : U_Char;  
            Sequence_Number : U_Short;  
            Window          : X_Window;         -- window on which event was
                                                --  requested in event mask
            X               : U_Short;  
            Y               : U_Short;  
            Width           : U_Short;  
            Height          : U_Short;  
            Count           : U_Short;          -- if non-zero, then at least
                                                -- this many more
            Pad             : X_Unused_14;  
        end record;

--/ if Length_Clauses then
    for X_Expose_Event'Size use 32 * 8;
--/ end if;

------------------------------------------------------------------------------
-- X_Focus_Event
------------------------------------------------------------------------------

    type X_Focus_Event is  
        record  
            Kind            : X_Event_Code_8;   -- Focus_In, Focus_Out
            Detail          : X_Focus_Detail;   -- Notify_Ancestor/Virtual/...
            Sequence_Number : U_Short;  
            Event           : X_Window;         -- window on which event was
                                                --  requested in event mask
            Mode            : X_Focus_Mode;     -- Normal/Grab/Ungrab/WhileGrab
            Pad             : X_Unused_23;  
        end record;

--/ if Length_Clauses then
    for X_Focus_Event'Size use 32 * 8;
--/ end if;

------------------------------------------------------------------------------
-- X_Graphics_Expose_Event
------------------------------------------------------------------------------

    type X_Graphics_Expose_Event is  
        record  
            Kind            : X_Event_Code_8;   -- Graphics_Expose
            Pad0            : U_Char;  
            Sequence_Number : U_Short;  
            Drawable        : X_Drawable;  
            X               : U_Short;  
            Y               : U_Short;  
            Width           : U_Short;  
            Height          : U_Short;  
            Minor_Event     : U_Short;          -- not defined in the core
            Count           : U_Short;          -- if non-zero, then at least
                                                --  this many more
            Major_Event     : X_Event_Code_8;   -- core is Copy_Area/Plane
            Pad             : X_Unused_11;  
        end record;

--/ if Length_Clauses then
    for X_Graphics_Expose_Event'Size use 32 * 8;
--/ end if;

------------------------------------------------------------------------------
-- X_Gravity_Notify_Event
------------------------------------------------------------------------------

    type X_Gravity_Notify_Event is  
        record  
            Kind            : X_Event_Code_8;   -- Gravity_Notify
            Pad0            : U_Char;  
            Sequence_Number : U_Short;  
            Event           : X_Window;  
            Window          : X_Window;  
            X               : S_Short;  
            Y               : S_Short;  
            Pad             : X_Unused_16;  
        end record;

--/ if Length_Clauses then
    for X_Gravity_Notify_Event'Size use 32 * 8;
--/ end if;

------------------------------------------------------------------------------
-- X_Keymap_Notify_Event
------------------------------------------------------------------------------

    type X_Keymap_Notify_Event is  
        record  
            Kind       : X_Event_Code_8;             -- Keymap_Notify
            Key_Vector : X_Keyboard_As_Bits_Short;
            -- byte for key codes 0-7 is omitted
        end record;

--/ if not R1000_Size_Bug and then Length_Clauses then
--//     for X_Keymap_Notify_Event'Size use 32 * 8;
--/ end if;

------------------------------------------------------------------------------
-- X_Key_Event
------------------------------------------------------------------------------

    type X_Key_Event is  
        record  
            Kind            : X_Event_Code_8;   -- Key_Press, Key_Release
            Key_Code        : X_Key_Code;       -- Detail
            Sequence_Number : U_Short;  
            Time            : X_Time;           -- milliseconds
            Root            : X_Window;         -- root window event occurred on
            Window          : X_Window;         -- window on which event was
                                                --  requested in event mask
            Subwindow       : X_Window;         -- child window
            Root_X          : S_Short;          -- x coord relative to root
            Root_Y          : S_Short;          -- y coord relative to root
            X               : S_Short;          -- x coord in event window
            Y               : S_Short;          -- y coord in event window
            State           : X_Key_Button_Mask;-- key or button mask
            Same_Screen     : X_Boolean_Char;   -- same screen flag
            Pad             : U_Char;  
        end record;

--/ if Length_Clauses then
    for X_Key_Event'Size use 32 * 8;
--/ end if;

------------------------------------------------------------------------------
-- X_Mapping_Notify_Event
------------------------------------------------------------------------------

    type X_Mapping_Notify_Event is  
        record  
            Kind            : X_Event_Code_8;   -- Mapping_Notify
            Pad0            : U_Char;  
            Sequence_Number : U_Short;  
            Request         : X_Mapping_Request_Type;  
            First_Key_Code  : X_Key_Code;  
            Count           : U_Char;           -- defines end of the range
                                                --  of change
            Pad             : X_Unused_25;  
        end record;

--/ if Length_Clauses then
    for X_Mapping_Notify_Event'Size use 32 * 8;
--/ end if;

------------------------------------------------------------------------------
-- X_Map_Notify_Event
------------------------------------------------------------------------------

    type X_Map_Notify_Event is  
        record  
            Kind              : X_Event_Code_8; -- Map_Notify
            Pad0              : U_Char;  
            Sequence_Number   : U_Short;  
            Event             : X_Window;  
            Window            : X_Window;  
            Override_Redirect : X_Boolean_Char; -- is override set?
            Pad               : X_Unused_19;  
        end record;

--/ if Length_Clauses then
    for X_Map_Notify_Event'Size use 32 * 8;
--/ end if;

------------------------------------------------------------------------------
-- X_Map_Request_Event
------------------------------------------------------------------------------

    type X_Map_Request_Event is  
        record  
            Kind            : X_Event_Code_8;   -- Map_Request
            Pad0            : U_Char;  
            Sequence_Number : U_Short;  
            Parent          : X_Window;  
            Window          : X_Window;  
            Pad             : X_Unused_20;  
        end record;

--/ if Length_Clauses then
    for X_Map_Request_Event'Size use 32 * 8;
--/ end if;

------------------------------------------------------------------------------
-- X_Motion_Notify_Event
------------------------------------------------------------------------------

    type X_Motion_Notify_Event is  
        record  
            Kind            : X_Event_Code_8;   -- Motion_Notify
            Is_Hint         : X_Motion_Notify_Detail; -- Detail
            Sequence_Number : U_Short;  
            Time            : X_Time;           -- milliseconds
            Root            : X_Window;         -- root window event occurred on
            Window          : X_Window;         -- window on which event was
                                                --  requested in event mask
            Subwindow       : X_Window;         -- child window
            Root_X          : S_Short;          -- x coord relative to root
            Root_Y          : S_Short;          -- y coord relative to root
            X               : S_Short;          -- x coord in event window
            Y               : S_Short;          -- y coord in event window
            State           : X_Key_Button_Mask;-- key or button mask
            Same_Screen     : X_Boolean_Char;   -- same screen flag
            Pad             : U_Char;  
        end record;

--/ if Length_Clauses then
    for X_Motion_Notify_Event'Size use 32 * 8;
--/ end if;

------------------------------------------------------------------------------
-- X_No_Expose_Event
------------------------------------------------------------------------------

    type X_No_Expose_Event is  
        record  
            Kind            : X_Event_Code_8;   -- No_Expose
            Pad0            : U_Char;  
            Sequence_Number : U_Short;  
            Drawable        : X_Drawable;  
            Minor_Event     : U_Short;          -- not defined in the core
            Major_Event     : X_Event_Code_8;   -- core is Copy_Area/Plane
            Pad1            : X_Unused_21;  
        end record;

--/ if Length_Clauses then
    for X_No_Expose_Event'Size use 32 * 8;
--/ end if;

------------------------------------------------------------------------------
-- X_Property_Notify_Event
------------------------------------------------------------------------------

    type X_Property_Notify_Event is  
        record  
            Kind            : X_Event_Code_8;   -- Property_Notify
            Pad0            : U_Char;  
            Sequence_Number : U_Short;  
            Window          : X_Window;  
            Atom            : X_Atom;  
            Time            : X_Time;  
            State           : X_Property_State;  
            Pad             : X_Unused_15;  
        end record;

--/ if Length_Clauses then
    for X_Property_Notify_Event'Size use 32 * 8;
--/ end if;

------------------------------------------------------------------------------
-- X_Reparent_Notify_Event
------------------------------------------------------------------------------

    type X_Reparent_Notify_Event is  
        record  
            Kind              : X_Event_Code_8; -- Reparent_Notify
            Pad0              : U_Char;  
            Sequence_Number   : U_Short;  
            Event             : X_Window;  
            Window            : X_Window;  
            Parent            : X_Window;  
            X                 : S_Short;  
            Y                 : S_Short;  
            Override_Redirect : X_Boolean_Char;  
            Pad               : X_Unused_11;  
        end record;

--/ if Length_Clauses then
    for X_Reparent_Notify_Event'Size use 32 * 8;
--/ end if;

------------------------------------------------------------------------------
-- X_Resize_Request_Event
------------------------------------------------------------------------------

    type X_Resize_Request_Event is  
        record  
            Kind            : X_Event_Code_8;   -- Resize_Request
            Pad0            : U_Char;  
            Sequence_Number : U_Short;  
            Window          : X_Window;  
            Width           : U_Short;  
            Height          : U_Short;  
            Pad             : X_Unused_20;  
        end record;

--/ if Length_Clauses then
    for X_Resize_Request_Event'Size use 32 * 8;
--/ end if;

------------------------------------------------------------------------------
-- X_Selection_Clear_Event
------------------------------------------------------------------------------

    type X_Selection_Clear_Event is  
        record  
            Kind            : X_Event_Code_8;   -- Selection_Clear
            Pad0            : U_Char;  
            Sequence_Number : U_Short;  
            Time            : X_Time;  
            Owner           : X_Window;  
            Selection       : X_Atom;  
            Pad             : X_Unused_16;  
        end record;

--/ if Length_Clauses then
    for X_Selection_Clear_Event'Size use 32 * 8;
--/ end if;

------------------------------------------------------------------------------
-- X_Selection_Notify_Event
------------------------------------------------------------------------------

    type X_Selection_Notify_Event is  
        record  
            Kind            : X_Event_Code_8;   -- Selection_Notify
            Pad0            : U_Char;  
            Sequence_Number : U_Short;  
            Time            : X_Time;  
            Requestor       : X_Window;  
            Selection       : X_Atom;  
            Target          : X_Atom;  
            Property        : X_Atom;           -- an atom or None_X_Atom
            Pad             : X_Unused_8;  
        end record;

--/ if Length_Clauses then
    for X_Selection_Notify_Event'Size use 32 * 8;
--/ end if;

------------------------------------------------------------------------------
-- X_Selection_Request_Event
------------------------------------------------------------------------------

    type X_Selection_Request_Event is  
        record  
            Kind            : X_Event_Code_8;   -- Selection_Request
            Pad0            : U_Char;  
            Sequence_Number : U_Short;  
            Time            : X_Time;  
            Owner           : X_Window;  
            Requestor       : X_Window;  
            Selection       : X_Atom;  
            Target          : X_Atom;  
            Property        : X_Atom;  
            Pad             : X_Unused_4;  
        end record;

--/ if Length_Clauses then
    for X_Selection_Request_Event'Size use 32 * 8;
--/ end if;

------------------------------------------------------------------------------
-- X_Unmap_Notify_Event
------------------------------------------------------------------------------

    type X_Unmap_Notify_Event is  
        record  
            Kind            : X_Event_Code_8;   -- Unmap_Notify
            Pad0            : U_Char;  
            Sequence_Number : U_Short;  
            Event           : X_Window;  
            Window          : X_Window;  
            From_Configure  : X_Boolean_Char;  
            Pad             : X_Unused_19;  
        end record;

--/ if Length_Clauses then
    for X_Unmap_Notify_Event'Size use 32 * 8;
--/ end if;

------------------------------------------------------------------------------
-- X_Visibility_Notify_Event
------------------------------------------------------------------------------

    type X_Visibility_Notify_Event is  
        record  
            Kind            : X_Event_Code_8;       -- Visibility_Notify
            Pad0            : U_Char;  
            Sequence_Number : U_Short;  
            Window          : X_Window;  
            State           : X_Visibility_Notify_State; --Un/Partial/Full
            Pad             : X_Unused_23;  
        end record;

--/ if Length_Clauses then
    for X_Visibility_Notify_Event'Size use 32 * 8;
--/ end if;

--\f

------------------------------------------------------------------------------
-- This array can be used with an event type to determine the mask bits
-- that could have generated it.
------------------------------------------------------------------------------

    type X_Event_To_Mask_Array is  
       array (X_Event_Code range X_Event_Code'First ..  
                                    X_Event_Code'Pred (Last_Event)) of  
          X_Event_Mask;

    X_Event_To_Mask : constant X_Event_To_Mask_Array :=  
       X_Event_To_Mask_Array'  
          (Error_Event       => None_X_Event_Mask,  
           Reply_Event       => None_X_Event_Mask,  
           Key_Press         => (Key_Press_Mask => True,  
                                 others         => False),  
           Key_Release       => (Key_Release_Mask => True,  
                                 others           => False),  
           Button_Press      => (Button_Press_Mask => True,  
                                 others            => False),  
           Button_Release    => (Button_Release_Mask => True,  
                                 others              => False),  
           Motion_Notify     => (Pointer_Motion_Mask |  
                                 Pointer_Motion_Hint_Mask |  
                                 Button_1_Motion_Mask |  
                                 Button_2_Motion_Mask |  
                                 Button_3_Motion_Mask |  
                                 Button_4_Motion_Mask |  
                                 Button_5_Motion_Mask |  
                                 Button_Motion_Mask => True,  
                                 others             => False),  
           Enter_Notify      => (Enter_Window_Mask => True,  
                                 others            => False),  
           Leave_Notify      => (Leave_Window_Mask => True,  
                                 others            => False),  
           Focus_In          => (Focus_Change_Mask => True,  
                                 others            => False),  
           Focus_Out         => (Focus_Change_Mask => True,  
                                 others            => False),  
           Keymap_Notify     => (Keymap_State_Mask => True,  
                                 others            => False),  
           Expose            => (Exposure_Mask => True,  
                                 others        => False),  
           Graphics_Expose   => (Exposure_Mask => True,  
                                 others        => False),  
           No_Expose         => (Exposure_Mask => True,  
                                 others        => False),  
           Visibility_Notify => (Visibility_Change_Mask => True,  
                                 others                 => False),  
           Create_Notify     => (Substructure_Notify_Mask => True,  
                                 others                   => False),  
           Destroy_Notify    => (Structure_Notify_Mask |  
                                 Substructure_Notify_Mask => True,  
                                 others                   => False),  
           Unmap_Notify      => (Structure_Notify_Mask |  
                                 Substructure_Notify_Mask => True,  
                                 others                   => False),  
           Map_Notify        => (Structure_Notify_Mask |  
                                 Substructure_Notify_Mask => True,  
                                 others                   => False),  
           Map_Request       => (Substructure_Redirect_Mask => True,  
                                 others                     => False),  
           Reparent_Notify   => (Substructure_Notify_Mask |  
                                 Structure_Notify_Mask => True,  
                                 others                => False),  
           Configure_Notify  =>  
              (Structure_Notify_Mask |  
               Substructure_Notify_Mask => True,  
               others                   => False),  
           Configure_Request =>  
              (Substructure_Redirect_Mask => True,  
               others                     => False),  
           Gravity_Notify    => (Substructure_Notify_Mask |  
                                 Structure_Notify_Mask => True,  
                                 others                => False),  
           Resize_Request    => (Resize_Redirect_Mask => True,  
                                 others               => False),  
           Circulate_Notify  => (Substructure_Notify_Mask |  
                                 Structure_Notify_Mask => True,  
                                 others                => False),  
           Circulate_Request => (Substructure_Redirect_Mask => True,  
                                 others                     => False),  
           Property_Notify   => (Property_Change_Mask => True,  
                                 others               => False),  
           Selection_Clear   => None_X_Event_Mask,  
           Selection_Request => None_X_Event_Mask,  
           Selection_Notify  => None_X_Event_Mask,  
           Colormap_Notify   => (Colormap_Change_Mask => True,  
                                 others               => False),  
           Client_Message    => None_X_Event_Mask,  
           Mapping_Notify    => None_X_Event_Mask);

--\f

--/ if Record_Rep_Clauses then
--//
--//     for X_Button_Event use
--//         record
--//             Kind            at 0 * X_Word range X_Byte0a .. X_Byte0b;
--//             Button          at 0 * X_Word range X_Byte1a .. X_Byte1b;
--//             Sequence_Number at 0 * X_Word range X_Half1a .. X_Half1b;
--//             Time            at 1 * X_Word range X_Word0a .. X_Word0b;
--//             Root            at 2 * X_Word range X_Word0a .. X_Word0b;
--//             Window          at 3 * X_Word range X_Word0a .. X_Word0b;
--//             Subwindow       at 4 * X_Word range X_Word0a .. X_Word0b;
--//             Root_X          at 5 * X_Word range X_Half0a .. X_Half0b;
--//             Root_Y          at 5 * X_Word range X_Half1a .. X_Half1b;
--//             X               at 6 * X_Word range X_Half0a .. X_Half0b;
--//             Y               at 6 * X_Word range X_Half1a .. X_Half1b;
--//             State           at 7 * X_Word range X_Half0a .. X_Half0b;
--//             Same_Screen     at 7 * X_Word range X_Byte2a .. X_Byte2b;
--//             Pad             at 7 * X_Word range X_Byte3a .. X_Byte3b;
--//         end record;
--//
--//     for X_Circulate_Notify_Event use
--//         record
--//             Kind            at 0 * X_Word range X_Byte0a .. X_Byte0b;
--//             Pad0            at 0 * X_Word range X_Byte1a .. X_Byte1b;
--//             Sequence_Number at 0 * X_Word range X_Half1a .. X_Half1b;
--//             Event           at 1 * X_Word range X_Word0a .. X_Word0b;
--//             Window          at 2 * X_Word range X_Word0a .. X_Word0b;
--//             Parent          at 3 * X_Word range X_Word0a .. X_Word0b;
--//             Place           at 4 * X_Word range X_Byte0a .. X_Byte0b;
--//             Pad             at 4 * X_Word range X_Byte1a ..
--//                                                    X_Byte1a + 15 * 8 - 1;
--//         end record;
--//
--//     for X_Circulate_Request_Event use
--//         record
--//             Kind            at 0 * X_Word range X_Byte0a .. X_Byte0b;
--//             Pad0            at 0 * X_Word range X_Byte1a .. X_Byte1b;
--//             Sequence_Number at 0 * X_Word range X_Half1a .. X_Half1b;
--//             Parent          at 1 * X_Word range X_Word0a .. X_Word0b;
--//             Window          at 2 * X_Word range X_Word0a .. X_Word0b;
--//             Pad1            at 3 * X_Word range X_Word0a .. X_Word0b;
--//             Place           at 4 * X_Word range X_Byte0a .. X_Byte0b;
--//             Pad             at 4 * X_Word range X_Byte1a ..
--//                                                    X_Byte1a + 15 * 8 - 1;
--//         end record;
--//
--//     for X_Client_Message_Event use
--//         record
--//             Kind            at 0 * X_Word range X_Byte0a .. X_Byte0b;
--//             Format          at 0 * X_Word range X_Byte1a .. X_Byte1b;
--//             Sequence_Number at 0 * X_Word range X_Half1a .. X_Half1b;
--//             Window          at 1 * X_Word range X_Word0a .. X_Word0b;
--//             Message_Type    at 2 * X_Word range X_Word0a .. X_Word0b;
--//             Data            at 3 * X_Word range 0 .. 5 * 32 - 1;
--//         end record;
--//
--//     for X_Colormap_Notify_Event use
--//         record
--//             Kind            at 0 * X_Word range X_Byte0a .. X_Byte0b;
--//             Pad0            at 0 * X_Word range X_Byte1a .. X_Byte1b;
--//             Sequence_Number at 0 * X_Word range X_Half1a .. X_Half1b;
--//             Window          at 1 * X_Word range X_Word0a .. X_Word0b;
--//             Colormap        at 2 * X_Word range X_Word0a .. X_Word0b;
--//             New_Map         at 3 * X_Word range X_Byte0a .. X_Byte0b;
--//             State           at 3 * X_Word range X_Byte1a .. X_Byte1b;
--//             Pad             at 3 * X_Word range X_Byte2a ..
--//                                                    X_Byte2a + 18 * 8 - 1;
--//         end record;
--//
--//     for X_Configure_Notify_Event use
--//         record
--//             Kind              at 0 * X_Word range X_Byte0a .. X_Byte0b;
--//             Pad0              at 0 * X_Word range X_Byte1a .. X_Byte1b;
--//             Sequence_Number   at 0 * X_Word range X_Half1a .. X_Half1b;
--//             Event             at 1 * X_Word range X_Word0a .. X_Word0b;
--//             Window            at 2 * X_Word range X_Word0a .. X_Word0b;
--//             Above             at 3 * X_Word range X_Word0a .. X_Word0b;
--//             X                 at 4 * X_Word range X_Half0a .. X_Half0b;
--//             Y                 at 4 * X_Word range X_Half1a .. X_Half1b;
--//             Width             at 5 * X_Word range X_Half0a .. X_Half0b;
--//             Height            at 5 * X_Word range X_Half1a .. X_Half1b;
--//             Border_Width      at 6 * X_Word range X_Half0a .. X_Half0b;
--//             Override_Redirect at 6 * X_Word range X_Byte2a .. X_Byte2b;
--//             Pad               at 6 * X_Word range X_Byte3a ..
--//                                                      X_Byte3a + 5 * 8 - 1;
--//         end record;
--//
--//     for X_Configure_Request_Event use
--//         record
--//             Kind            at 0 * X_Word range X_Byte0a .. X_Byte0b;
--//             Stack_Mode      at 0 * X_Word range X_Byte1a .. X_Byte1b;
--//             Sequence_Number at 0 * X_Word range X_Half1a .. X_Half1b;
--//             Parent          at 1 * X_Word range X_Word0a .. X_Word0b;
--//             Window          at 2 * X_Word range X_Word0a .. X_Word0b;
--//             Above           at 3 * X_Word range X_Word0a .. X_Word0b;
--//             X               at 4 * X_Word range X_Half0a .. X_Half0b;
--//             Y               at 4 * X_Word range X_Half1a .. X_Half1b;
--//             Width           at 5 * X_Word range X_Half0a .. X_Half0b;
--//             Height          at 5 * X_Word range X_Half1a .. X_Half1b;
--//             Border_Width    at 6 * X_Word range X_Half0a .. X_Half0b;
--//             Value_Mask      at 6 * X_Word range X_Half1a .. X_Half1b;
--//             Pad             at 7 * X_Word range X_Word0a .. X_Word0b;
--//         end record;
--//
--//     for X_Create_Notify_Event use
--//         record
--//             Kind              at 0 * X_Word range X_Byte0a .. X_Byte0b;
--//             Pad0              at 0 * X_Word range X_Byte1a .. X_Byte1b;
--//             Sequence_Number   at 0 * X_Word range X_Half1a .. X_Half1b;
--//             Parent            at 1 * X_Word range X_Word0a .. X_Word0b;
--//             Window            at 2 * X_Word range X_Word0a .. X_Word0b;
--//             X                 at 3 * X_Word range X_Half0a .. X_Half0b;
--//             Y                 at 3 * X_Word range X_Half1a .. X_Half1b;
--//             Width             at 4 * X_Word range X_Half0a .. X_Half0b;
--//             Height            at 4 * X_Word range X_Half1a .. X_Half1b;
--//             Border_Width      at 5 * X_Word range X_Half0a .. X_Half0b;
--//             Override_Redirect at 5 * X_Word range X_Byte2a .. X_Byte2b;
--//             Pad               at 5 * X_Word range X_Byte3a ..
--//                                                      X_Byte3a + 9 * 8 - 1;
--//         end record;
--//
--//     for X_Destroy_Notify_Event use
--//         record
--//             Kind            at 0 * X_Word range X_Byte0a .. X_Byte0b;
--//             Pad0            at 0 * X_Word range X_Byte1a .. X_Byte1b;
--//             Sequence_Number at 0 * X_Word range X_Half1a .. X_Half1b;
--//             Event           at 1 * X_Word range X_Word0a .. X_Word0b;
--//             Window          at 2 * X_Word range X_Word0a .. X_Word0b;
--//             Pad             at 3 * X_Word range X_Byte0a ..
--//                                                    X_Byte0a + 20 * 8 - 1;
--//         end record;
--//
--//     for X_Enter_Leave_Event use
--//         record
--//             Kind            at 0 * X_Word range X_Byte0a .. X_Byte0b;
--//             Detail          at 0 * X_Word range X_Byte1a .. X_Byte1b;
--//             Sequence_Number at 0 * X_Word range X_Half1a .. X_Half1b;
--//             Time            at 1 * X_Word range X_Word0a .. X_Word0b;
--//             Root            at 2 * X_Word range X_Word0a .. X_Word0b;
--//             Window          at 3 * X_Word range X_Word0a .. X_Word0b;
--//             Subwindow       at 4 * X_Word range X_Word0a .. X_Word0b;
--//             Root_X          at 5 * X_Word range X_Half0a .. X_Half0b;
--//             Root_Y          at 5 * X_Word range X_Half1a .. X_Half1b;
--//             X               at 6 * X_Word range X_Half0a .. X_Half0b;
--//             Y               at 6 * X_Word range X_Half1a .. X_Half1b;
--//             State           at 7 * X_Word range X_Half0a .. X_Half0b;
--//             Mode            at 7 * X_Word range X_Byte2a .. X_Byte2b;
--//             Flags           at 7 * X_Word range X_Byte3a .. X_Byte3b;
--//         end record;
--//
--//     for X_Expose_Event use
--//         record
--//             Kind            at 0 * X_Word range X_Byte0a .. X_Byte0b;
--//             Pad0            at 0 * X_Word range X_Byte1a .. X_Byte1b;
--//             Sequence_Number at 0 * X_Word range X_Half1a .. X_Half1b;
--//             Window          at 1 * X_Word range X_Word0a .. X_Word0b;
--//             X               at 2 * X_Word range X_Half0a .. X_Half0b;
--//             Y               at 2 * X_Word range X_Half1a .. X_Half1b;
--//             Width           at 3 * X_Word range X_Half0a .. X_Half0b;
--//             Height          at 3 * X_Word range X_Half1a .. X_Half1b;
--//             Count           at 4 * X_Word range X_Half0a .. X_Half0b;
--//             Pad             at 4 * X_Word range X_Byte2a ..
--//                                                    X_Byte2a + 14 * 8 - 1;
--//         end record;
--//
--//     for X_Focus_Event use
--//         record
--//             Kind            at 0 * X_Word range X_Byte0a .. X_Byte0b;
--//             Detail          at 0 * X_Word range X_Byte1a .. X_Byte1b;
--//             Sequence_Number at 0 * X_Word range X_Half1a .. X_Half1b;
--//             Event           at 1 * X_Word range X_Word0a .. X_Word0b;
--//             Mode            at 2 * X_Word range X_Byte0a .. X_Byte0b;
--//             Pad             at 2 * X_Word range X_Byte1a ..
--//                                                    X_Byte1a + 23 * 8 - 1;
--//         end record;
--//
--//     for X_Graphics_Expose_Event use
--//         record
--//             Kind            at 0 * X_Word range X_Byte0a .. X_Byte0b;
--//             Pad0            at 0 * X_Word range X_Byte1a .. X_Byte1b;
--//             Sequence_Number at 0 * X_Word range X_Half1a .. X_Half1b;
--//             Drawable        at 1 * X_Word range X_Word0a .. X_Word0b;
--//             X               at 2 * X_Word range X_Half0a .. X_Half0b;
--//             Y               at 2 * X_Word range X_Half1a .. X_Half1b;
--//             Width           at 3 * X_Word range X_Half0a .. X_Half0b;
--//             Height          at 3 * X_Word range X_Half1a .. X_Half1b;
--//             Minor_Event     at 4 * X_Word range X_Half0a .. X_Half0b;
--//             Count           at 4 * X_Word range X_Half1a .. X_Half1b;
--//             Major_Event     at 5 * X_Word range X_Byte0a .. X_Byte0b;
--//             Pad             at 5 * X_Word range X_Byte1a ..
--//                                                    X_Byte1a + 11 * 8 - 1;
--//         end record;
--//
--//     for X_Gravity_Notify_Event use
--//         record
--//             Kind            at 0 * X_Word range X_Byte0a .. X_Byte0b;
--//             Pad0            at 0 * X_Word range X_Byte1a .. X_Byte1b;
--//             Sequence_Number at 0 * X_Word range X_Half1a .. X_Half1b;
--//             Event           at 1 * X_Word range X_Word0a .. X_Word0b;
--//             Window          at 2 * X_Word range X_Word0a .. X_Word0b;
--//             X               at 3 * X_Word range X_Half0a .. X_Half0b;
--//             Y               at 3 * X_Word range X_Half1a .. X_Half1b;
--//             Pad             at 4 * X_Word range X_Byte0a ..
--//                                                    X_Byte0a + 16 * 8 - 1;
--//         end record;
--//
--//     for X_Keymap_Notify_Event use
--//         record
--//             Kind       at 0 * X_Word range X_Byte0a .. X_Byte0b;
--//             Key_Vector at 0 * X_Word range X_Byte1a .. X_Byte1a + 8 * 31 - 1;
--//         end record;
--//
--//     for X_Key_Event use
--//         record
--//             Kind            at 0 * X_Word range X_Byte0a .. X_Byte0b;
--//             Key_Code        at 0 * X_Word range X_Byte1a .. X_Byte1b;
--//             Sequence_Number at 0 * X_Word range X_Half1a .. X_Half1b;
--//             Time            at 1 * X_Word range X_Word0a .. X_Word0b;
--//             Root            at 2 * X_Word range X_Word0a .. X_Word0b;
--//             Window          at 3 * X_Word range X_Word0a .. X_Word0b;
--//             Subwindow       at 4 * X_Word range X_Word0a .. X_Word0b;
--//             Root_X          at 5 * X_Word range X_Half0a .. X_Half0b;
--//             Root_Y          at 5 * X_Word range X_Half1a .. X_Half1b;
--//             X               at 6 * X_Word range X_Half0a .. X_Half0b;
--//             Y               at 6 * X_Word range X_Half1a .. X_Half1b;
--//             State           at 7 * X_Word range X_Half0a .. X_Half0b;
--//             Same_Screen     at 7 * X_Word range X_Byte2a .. X_Byte2b;
--//             Pad             at 7 * X_Word range X_Byte3a .. X_Byte3b;
--//         end record;
--//
--//     for X_Mapping_Notify_Event use
--//         record
--//             Kind            at 0 * X_Word range X_Byte0a .. X_Byte0b;
--//             Pad0            at 0 * X_Word range X_Byte1a .. X_Byte1b;
--//             Sequence_Number at 0 * X_Word range X_Half1a .. X_Half1b;
--//             Request         at 1 * X_Word range X_Byte0a .. X_Byte0b;
--//             First_Key_Code  at 1 * X_Word range X_Byte1a .. X_Byte1b;
--//             Count           at 1 * X_Word range X_Byte2a .. X_Byte2b;
--//             Pad             at 1 * X_Word range X_Byte3a ..
--//                                                    X_Byte3a + 25 * 8 - 1;
--//         end record;
--//
--//     for X_Map_Notify_Event use
--//         record
--//             Kind              at 0 * X_Word range X_Byte0a .. X_Byte0b;
--//             Pad0              at 0 * X_Word range X_Byte1a .. X_Byte1b;
--//             Sequence_Number   at 0 * X_Word range X_Half1a .. X_Half1b;
--//             Event             at 1 * X_Word range X_Word0a .. X_Word0b;
--//             Window            at 2 * X_Word range X_Word0a .. X_Word0b;
--//             Override_Redirect at 3 * X_Word range X_Byte0a .. X_Byte0b;
--//             Pad               at 3 * X_Word range X_Byte1a ..
--//                                                      X_Byte1a + 19 * 8 - 1;
--//         end record;
--//
--//     for X_Map_Request_Event use
--//         record
--//             Kind            at 0 * X_Word range X_Byte0a .. X_Byte0b;
--//             Pad0            at 0 * X_Word range X_Byte1a .. X_Byte1b;
--//             Sequence_Number at 0 * X_Word range X_Half1a .. X_Half1b;
--//             Parent          at 1 * X_Word range X_Word0a .. X_Word0b;
--//             Window          at 2 * X_Word range X_Word0a .. X_Word0b;
--//             Pad             at 3 * X_Word range X_Byte0a ..
--//                                                    X_Byte0a + 20 * 8 - 1;
--//         end record;
--//
--//     for X_Motion_Notify_Event use
--//         record
--//             Kind            at 0 * X_Word range X_Byte0a .. X_Byte0b;
--//             Is_Hint         at 0 * X_Word range X_Byte1a .. X_Byte1b;
--//             Sequence_Number at 0 * X_Word range X_Half1a .. X_Half1b;
--//             Time            at 1 * X_Word range X_Word0a .. X_Word0b;
--//             Root            at 2 * X_Word range X_Word0a .. X_Word0b;
--//             Window          at 3 * X_Word range X_Word0a .. X_Word0b;
--//             Subwindow       at 4 * X_Word range X_Word0a .. X_Word0b;
--//             Root_X          at 5 * X_Word range X_Half0a .. X_Half0b;
--//             Root_Y          at 5 * X_Word range X_Half1a .. X_Half1b;
--//             X               at 6 * X_Word range X_Half0a .. X_Half0b;
--//             Y               at 6 * X_Word range X_Half1a .. X_Half1b;
--//             State           at 7 * X_Word range X_Half0a .. X_Half0b;
--//             Same_Screen     at 7 * X_Word range X_Byte2a .. X_Byte2b;
--//             Pad             at 7 * X_Word range X_Byte3a .. X_Byte3b;
--//         end record;
--//
--//     for X_No_Expose_Event use
--//         record
--//             Kind            at 0 * X_Word range X_Byte0a .. X_Byte0b;
--//             Pad0            at 0 * X_Word range X_Byte1a .. X_Byte1b;
--//             Sequence_Number at 0 * X_Word range X_Half1a .. X_Half1b;
--//             Drawable        at 1 * X_Word range X_Word0a .. X_Word0b;
--//             Minor_Event     at 2 * X_Word range X_Half0a .. X_Half0b;
--//             Major_Event     at 2 * X_Word range X_Byte2a .. X_Byte2b;
--//             Pad1            at 2 * X_Word range X_Byte3a ..
--//                                                    X_Byte3a + 21 * 8 - 1;
--//         end record;
--//
--//     for X_Property_Notify_Event use
--//         record
--//             Kind            at 0 * X_Word range X_Byte0a .. X_Byte0b;
--//             Pad0            at 0 * X_Word range X_Byte1a .. X_Byte1b;
--//             Sequence_Number at 0 * X_Word range X_Half1a .. X_Half1b;
--//             Window          at 1 * X_Word range X_Word0a .. X_Word0b;
--//             Atom            at 2 * X_Word range X_Word0a .. X_Word0b;
--//             Time            at 3 * X_Word range X_Word0a .. X_Word0b;
--//             State           at 4 * X_Word range X_Byte0a .. X_Byte0b;
--//             Pad             at 4 * X_Word range X_Byte1a ..
--//                                                    X_Byte1a + 15 * 8 - 1;
--//         end record;
--//
--//     for X_Reparent_Notify_Event use
--//         record
--//             Kind              at 0 * X_Word range X_Byte0a .. X_Byte0b;
--//             Pad0              at 0 * X_Word range X_Byte1a .. X_Byte1b;
--//             Sequence_Number   at 0 * X_Word range X_Half1a .. X_Half1b;
--//             Event             at 1 * X_Word range X_Word0a .. X_Word0b;
--//             Window            at 2 * X_Word range X_Word0a .. X_Word0b;
--//             Parent            at 3 * X_Word range X_Word0a .. X_Word0b;
--//             X                 at 4 * X_Word range X_Half0a .. X_Half0b;
--//             Y                 at 4 * X_Word range X_Half1a .. X_Half1b;
--//             Override_Redirect at 5 * X_Word range X_Byte0a .. X_Byte0b;
--//             Pad               at 5 * X_Word range X_Byte1a ..
--//                                                      X_Byte1a + 11 * 8 - 1;
--//         end record;
--//
--//     for X_Resize_Request_Event use
--//         record
--//             Kind            at 0 * X_Word range X_Byte0a .. X_Byte0b;
--//             Pad0            at 0 * X_Word range X_Byte1a .. X_Byte1b;
--//             Sequence_Number at 0 * X_Word range X_Half1a .. X_Half1b;
--//             Window          at 1 * X_Word range X_Word0a .. X_Word0b;
--//             Width           at 2 * X_Word range X_Half0a .. X_Half0b;
--//             Height          at 2 * X_Word range X_Half1a .. X_Half1b;
--//             Pad             at 3 * X_Word range X_Byte0a ..
--//                                                    X_Byte0a + 20 * 8 - 1;
--//         end record;
--//
--//     for X_Selection_Clear_Event use
--//         record
--//             Kind            at 0 * X_Word range X_Byte0a .. X_Byte0b;
--//             Pad0            at 0 * X_Word range X_Byte1a .. X_Byte1b;
--//             Sequence_Number at 0 * X_Word range X_Half1a .. X_Half1b;
--//             Time            at 1 * X_Word range X_Word0a .. X_Word0b;
--//             Owner           at 2 * X_Word range X_Word0a .. X_Word0b;
--//             Selection       at 3 * X_Word range X_Word0a .. X_Word0b;
--//             Pad             at 4 * X_Word range X_Byte0a ..
--//                                                    X_Byte0a + 16 * 8 - 1;
--//         end record;
--//
--//     for X_Selection_Notify_Event use
--//         record
--//             Kind            at 0 * X_Word range X_Byte0a .. X_Byte0b;
--//             Pad0            at 0 * X_Word range X_Byte1a .. X_Byte1b;
--//             Sequence_Number at 0 * X_Word range X_Half1a .. X_Half1b;
--//             Time            at 1 * X_Word range X_Word0a .. X_Word0b;
--//             Requestor       at 2 * X_Word range X_Word0a .. X_Word0b;
--//             Selection       at 3 * X_Word range X_Word0a .. X_Word0b;
--//             Target          at 4 * X_Word range X_Word0a .. X_Word0b;
--//             Property        at 5 * X_Word range X_Word0a .. X_Word0b;
--//             Pad             at 6 * X_Word range X_Byte0a ..
--//                                                    X_Byte0a + 8 * 8 - 1;
--//         end record;
--//
--//     for X_Selection_Request_Event use
--//         record
--//             Kind            at 0 * X_Word range X_Byte0a .. X_Byte0b;
--//             Pad0            at 0 * X_Word range X_Byte1a .. X_Byte1b;
--//             Sequence_Number at 0 * X_Word range X_Half1a .. X_Half1b;
--//             Time            at 1 * X_Word range X_Word0a .. X_Word0b;
--//             Owner           at 2 * X_Word range X_Word0a .. X_Word0b;
--//             Requestor       at 3 * X_Word range X_Word0a .. X_Word0b;
--//             Selection       at 4 * X_Word range X_Word0a .. X_Word0b;
--//             Target          at 5 * X_Word range X_Word0a .. X_Word0b;
--//             Property        at 6 * X_Word range X_Word0a .. X_Word0b;
--//             Pad             at 7 * X_Word range X_Word0a .. X_Word0b;
--//         end record;
--//
--//     for X_Unmap_Notify_Event use
--//         record
--//             Kind            at 0 * X_Word range X_Byte0a .. X_Byte0b;
--//             Pad0            at 0 * X_Word range X_Byte1a .. X_Byte1b;
--//             Sequence_Number at 0 * X_Word range X_Half1a .. X_Half1b;
--//             Event           at 1 * X_Word range X_Word0a .. X_Word0b;
--//             Window          at 2 * X_Word range X_Word0a .. X_Word0b;
--//             From_Configure  at 3 * X_Word range X_Byte0a .. X_Byte0b;
--//             Pad             at 3 * X_Word range X_Byte1a ..
--//                                                    X_Byte1a + 19 * 8 - 1;
--//         end record;
--//
--//     for X_Visibility_Notify_Event use
--//         record
--//             Kind            at 0 * X_Word range X_Byte0a .. X_Byte0b;
--//             Pad0            at 0 * X_Word range X_Byte1a .. X_Byte1b;
--//             Sequence_Number at 0 * X_Word range X_Half1a .. X_Half1b;
--//             Window          at 1 * X_Word range X_Word0a .. X_Word0b;
--//             State           at 2 * X_Word range X_Byte0a .. X_Byte0b;
--//             Pad             at 2 * X_Word range X_Byte1a ..
--//                                                    X_Byte1a + 23 * 8 - 1;
--//         end record;
--//
--/ end if;

--\f

------------------------------------------------------------------------------
-- Extensions record events using these types.
------------------------------------------------------------------------------

    type X_Universal_Pointer_Event is  
        record  
            Kind            : X_Event_Code_8;       -- some Extension's code
            Data            : U_Char;  
            Sequence_Number : U_Short;  
            Pointer         : X_Universal_Pointer;  
            Free_Pointer    : X_Procedure_Variable;  
        end record;

    type X_Extension_Event_Kind is  
       (Key_Event,  
        Button_Event,  
        Motion_Event,  
        Enter_Leave_Event,  
        Focus_Event,  
        Keymap_Event,  
        Expose_Event,  
        Graphics_Expose_Event,  
        No_Expose_Event,  
        Visibility_Event,  
        Create_Event,  
        Destroy_Event,  
        Unmap_Event,  
        Map_Event,  
        Map_Request_Event,  
        Reparent_Event,  
        Configure_Event,  
        Configure_Request_Event,  
        Gravity_Event,  
        Resize_Request_Event,  
        Circulate_Event,  
        Circulate_Request_Event,  
        Property_Event,  
        Selection_Clear_Event,  
        Selection_Event,  
        Selection_Request_Event,  
        Colormap_Event,  
        Client_Event,  
        Mapping_Event,  
        Universal_Pointer_Event  
        );

    type X_Extension_Event (Kind : X_Extension_Event_Kind := Key_Event) is  
        record  
            case Kind is  
                when Key_Event =>  
                    Key : X_Key_Event;

                when Button_Event =>  
                    Button : X_Button_Event;

                when Motion_Event =>  
                    Motion : X_Motion_Notify_Event;

                when Enter_Leave_Event =>  
                    Enter_Leave : X_Enter_Leave_Event;

                when Focus_Event =>  
                    Focus : X_Focus_Event;

                when Keymap_Event =>  
                    Keymap : X_Keymap_Notify_Event;

                when Expose_Event =>  
                    Expose : X_Expose_Event;

                when Graphics_Expose_Event =>  
                    Graphics_Expose : X_Graphics_Expose_Event;

                when No_Expose_Event =>  
                    No_Expose : X_No_Expose_Event;

                when Visibility_Event =>  
                    Visibility : X_Visibility_Notify_Event;

                when Create_Event =>  
                    Create : X_Create_Notify_Event;

                when Destroy_Event =>  
                    Destroy : X_Destroy_Notify_Event;

                when Unmap_Event =>  
                    Unmap : X_Unmap_Notify_Event;

                when Map_Event =>  
                    Map : X_Map_Notify_Event;

                when Map_Request_Event =>  
                    Map_Request : X_Map_Request_Event;

                when Reparent_Event =>  
                    Reparent : X_Reparent_Notify_Event;

                when Configure_Event =>  
                    Configure : X_Configure_Notify_Event;

                when Configure_Request_Event =>  
                    Configure_Request : X_Configure_Request_Event;

                when Gravity_Event =>  
                    Gravity : X_Gravity_Notify_Event;

                when Resize_Request_Event =>  
                    Resize_Request : X_Resize_Request_Event;

                when Circulate_Event =>  
                    Circulate : X_Circulate_Notify_Event;

                when Circulate_Request_Event =>  
                    Circulate_Request : X_Circulate_Request_Event;

                when Property_Event =>  
                    Property : X_Property_Notify_Event;

                when Selection_Clear_Event =>  
                    Selection_Clear : X_Selection_Clear_Event;

                when Selection_Event =>  
                    Selection : X_Selection_Notify_Event;

                when Selection_Request_Event =>  
                    Selection_Request : X_Selection_Request_Event;

                when Colormap_Event =>  
                    Colormap : X_Colormap_Notify_Event;

                when Client_Event =>  
                    Client : X_Client_Message_Event;

                when Mapping_Event =>  
                    Mapping : X_Mapping_Notify_Event;

                when Universal_Pointer_Event =>  
                    Universal_Pointer : X_Universal_Pointer_Event;

            end case;  
        end record;

--\f

end Xlbt_Event3;