diff -u lib/x_lib.ads.orig lib/x_lib.ads --- lib/x_lib.ads.orig Thu Mar 2 00:15:17 2000 +++ lib/x_lib.ads Sat Jun 17 22:51:47 2000 @@ -43,6 +43,9 @@ -- OC_Type to Output_Context -- September 5, 1998 extract X_Lib.Extensions -- November 8, 1998 HFVogt: added X11R6.3 conditional defines +-- June 14, 2000: included additions from Joerg Schaefer: +-- type Char_Struct, X_Query_Text_Extents, +-- X_Resize_Window, X_Query_Pointer -- ------------------------------------------------------------------------------- @@ -1712,6 +1715,17 @@ -- Font routines -- + type Char_Struct is record + Lbearing : Dimension; -- origin to left edge of raster + Rbearing : Dimension; -- origin to right edge of raster + Width : Dimension; -- advance to next char's origin + Ascent : Dimension; -- baseline to top edge of raster + Descent : Dimension; -- baseline to bottom edge of raster + Attributes : Short_Unsigned; -- per char flags + end record; + type Char_Struct_Access is access Char_Struct; + + function X_Load_Font (Display : in Display_Pointer; Name : in String) return Font_ID; @@ -1721,6 +1735,17 @@ Name : in String) return X_Font_Struct_Pointer; + type Draw_Direction is (Left_To_Right, Right_To_Left, Direction_Change); + + procedure X_Query_Text_Extents + (Display : in Display_Pointer; + FontId : in Font_Id; + Text : in String; + Direction : out Draw_Direction; + Ascent : out Dimension; + Descent : out Dimension; + Overall : out Char_Struct); + -- ------------------------------------------------------------------------- -- @@ -2260,6 +2285,12 @@ Value_Mask : in Window_Changes_Mask; Values : in Window_Changes_Type); + procedure X_Resize_Window + (Display : in Display_Pointer; + W : in Window_ID; + Width, + Height : in Dimension); + -- ------------------------------------------------------------------------- -- @@ -3512,6 +3543,15 @@ Found : out Boolean); + procedure X_Query_Pointer + (Display : in Display_Pointer; + W : in Window_Id; + Root, Child : out Window_Id; + Root_X, Root_Y : out Position; + Win_X, Win_Y : out Position; + Keys_Buttons : out Modifier_And_Button_Mask; + Valid : out Boolean); + -- ---------------------------------------------------------------------------- @@ -3700,6 +3740,12 @@ pragma Import (C, X_Black_Pixel_Of_Screen, "XBlackPixelOfScreen"); pragma Import (C, X_White_Pixel_Of_Screen, "XWhitePixelOfScreen"); pragma Import (C, X_All_Planes, "XAllPlanes"); + + -- for font routines + -- + for Draw_Direction use (Left_To_Right => 0, Right_To_Left => 1, + Direction_Change => 255); + for Draw_Direction'Size use Integer'Size; pragma Import (C, X_Create_Pixmap, "XCreatePixmap"); pragma Import (C, X_Free_Pixmap, "XFreePixmap"); diff -u lib/x_lib.adb.orig lib/x_lib.adb --- lib/x_lib.adb.orig Thu Mar 2 00:15:16 2000 +++ lib/x_lib.adb Sat Jun 17 22:51:46 2000 @@ -39,6 +39,9 @@ -- July 07, 1998 HFVogt: changed Boolean_Type to X_Boolean to prevent -- confusion -- November 8, 1998 HFVogt: added X11R6.3 conditional defines +-- June 14, 2000: included additions from Joerg Schaefer: +-- type Char_Struct, X_Query_Text_Extents, +-- X_Resize_Window, X_Query_Pointer -- ------------------------------------------------------------------------------- @@ -1709,6 +1712,36 @@ pragma Inline (X_Load_Query_Font); + procedure X_Query_Text_Extents + (Display : in Display_Pointer; + FontId : in Font_Id; + Text : in String; + Direction : out Draw_Direction; + Ascent : out Dimension; + Descent : out Dimension; + Overall : out Char_Struct) is + + procedure XQueryTextExtents + (Display : in Display_Pointer; + FontId : in Font_Id; + Text : in String; + Nchars : in Integer; + direction : in System.address; + Ascent : in System.address; + Descent : in System.Address; + Overall : in System.Address); + pragma Import (C, XQueryTextExtents, "XQueryTextExtents"); + + Ascent_Int, Descent_Int : Integer; + begin + XQueryTextExtents (Display, FontId, Text, Text'Length, + Direction'Address, Ascent_Int'Address, + Descent_Int'Address,Overall'Address); + Ascent := Dimension (Ascent_Int); + Descent := Dimension (Descent_Int); + end X_Query_Text_Extents; + + -- ------------------------------------------------------------------------- -- -- Pixmaps @@ -2174,6 +2207,20 @@ end X_Configure_Window; + procedure X_Resize_Window + (Display : in Display_Pointer; + W : in Window_ID; + Width, Height : in Dimension) is + procedure XResizeWindow + (Display : in Display_Pointer; + W : in Window_ID; + Width, Height : in Unsigned); + pragma Import (C, XResizeWindow, "XResizeWindow"); + begin + XResizeWindow (Display, W, Unsigned (Width), Unsigned (Height)); + end X_Resize_Window; + pragma Inline (X_Resize_Window); + -- ------------------------------------------------------------------------- -- @@ -2664,6 +2711,33 @@ begin XSync (Display, To_X_Boolean (Discard_Events)); end X_Sync; + + + procedure X_Query_Pointer + (Display : in Display_Pointer; + W : in Window_Id; + Root, Child : out Window_Id; + Root_X, Root_Y : out Position; + Win_X, Win_Y : out Position; + Keys_Buttons : out Modifier_And_Button_Mask; + Valid : out Boolean) is + + function XQueryPointer + (Display : in Display_Pointer; + W : in Window_Id; + Root, Child : in System.Address; + Root_X, Root_Y : in System.Address; + Win_X, Win_Y : in System.Address; + Keys_Buttons : in System.Address) + return X_Boolean; + pragma Import (C, XQueryPointer, "XQueryPointer"); + begin + Valid := To_Boolean (XQueryPointer (Display, W, + Root'Address, Child'Address, + Root_X'Address, Root_Y'Address, + Win_X'Address, Win_Y'Address, + Keys_buttons'Address)); + end X_Query_Pointer; -- ------------------------------------------------------------------------- diff -u lib/x_toolkit.ads.orig lib/x_toolkit.ads --- lib/x_toolkit.ads.orig Thu Mar 2 00:15:18 2000 +++ lib/x_toolkit.ads Sat Jun 17 22:51:48 2000 @@ -39,6 +39,8 @@ -- November 8, 1998 HFVogt: added X11R6.3 conditional defines -- February 29, 2000 HFVogt: include additions and changes from -- Vadim Godunko (vadik@zto.rost.ru) +-- June 14, 2000: added Append_Set/Get for Atoms +-- (thanks to Vadim Godunko) -- ------------------------------------------------------------------------------- @@ -601,6 +603,15 @@ procedure Append_Get (List : in out Arg_List; Name : in Xt_N_Resource_String; Value : out Short_Short_Unsigned); + pragma Convention (C, Append_Get); + + procedure Append_Set (List : in out Arg_List; + Name : in Xt_N_Resource_String; + Value : in X_lib.Atom); + + procedure Append_Get (List : in out Arg_List; + Name : in Xt_N_Resource_String; + Value : out X_Lib.Atom); pragma Convention (C, Append_Get); diff -u lib/x_toolkit.adb.orig lib/x_toolkit.adb --- lib/x_toolkit.adb.orig Thu Mar 2 00:15:17 2000 +++ lib/x_toolkit.adb Sat Jun 17 22:51:48 2000 @@ -37,6 +37,8 @@ -- HISTORY: -- June 20, 1998 begin of history -- November 8, 1998 HFVogt: added X11R6.3 conditional defines +-- June 14, 2000: added Append_Set/Append_Get for Atoms +-- (thanks to Vadim Godunko) -- ------------------------------------------------------------------------------- @@ -921,6 +923,27 @@ procedure Append_Get (List : in out Arg_List; Name : in Xt_N_Resource_String; Value : out Short_Short_Unsigned) is + begin + Append_Set (List => List, + Name => Name, + Value => Value'Address); + end Append_Get; + pragma Inline (Append_Get); + + + procedure Append_Set (List : in out Arg_List; + Name : in Xt_N_Resource_String; + Value : in X_lib.Atom) is + begin + Append_Set (List => List, + Name => Name, + Value => Long_Integer (Value)); + end Append_Set; + pragma Inline (Append_Set); + + procedure Append_Get (List : in out Arg_List; + Name : in Xt_N_Resource_String; + Value : out X_Lib.Atom) is begin Append_Set (List => List, Name => Name, --- lib/xm_widgets-manager-row_column.ads.orig Thu Mar 2 00:15:20 2000 +++ lib/xm_widgets-manager-row_column.ads Sat Jun 17 22:51:50 2000 @@ -229,6 +229,14 @@ Xm_N_Unmap_Callback : constant Xt_N_Resource_String; Xm_N_Which_Button : constant Xt_N_Resource_String; + -- constraints for children + + Xm_N_Position_Index : constant Xt_N_Resource_String; + + subtype Position_Index is Short_Integer; + Last_Position : constant Position_Index := -1; + First_Position : constant Position_Index := 0; + private for Orientation_Type use (No_Orientation => 0, Vertical => 1, Horizontal => 2); @@ -347,6 +355,9 @@ Xm_N_Unmap_Callback : constant Xt_N_Resource_String := To_Resource_String ("unmapCallback"); Xm_N_Which_Button : constant Xt_N_Resource_String := To_Resource_String ("whichButton"); + + Xm_N_Position_Index : constant Xt_N_Resource_String + := To_Resource_String ("positionIndex"); end Xm_Widgets.Manager.Row_Column;