Package Name:    java.awt.gridbaglayout
with java.lang; use java.lang;
with java.awt.Component; use java.awt.Component;
with java.lang.String; use java.lang.String;
with java.awt.GridBagConstraints; use java.awt.GridBagConstraints;
with java.awt.LayoutManager; use java.awt.LayoutManager;
with java.awt.Container; use java.awt.Container;
with java.awt.Dimension; use java.awt.Dimension;
with java.awt.Point; use java.awt.Point;
package java.awt.GridBagLayout is
    type Dimension_Array is array(Positive range <>) of Integer;
    type Dimension_Array_Ptr is access all Dimension_Array(1..128);
      -- TBD should be unconstrained
    type Weight_Array is array(Positive range <>) of Long_Float;
    type Weight_Array_Ptr is access all Dimension_Array(1..128);
      -- TBD should be unconstrained
    type GridBagLayout_Obj is new Object with record
        LayoutManager : aliased LayoutManager_Obj;  -- implements LayoutManager
        columnWidths : Dimension_Array_Ptr;
        rowHeights : Dimension_Array_Ptr;
        columnWeights : Weight_Array_Ptr;
        rowWeights : Weight_Array_Ptr;
    end record;
    type GridBagLayout_Ptr is access all GridBagLayout_Obj'Class;
    procedure init_GridBagLayout(Obj : access GridBagLayout_Obj'Class);
    function new_GridBagLayout(Obj : GridBagLayout_Ptr := null) return GridBagLayout_Ptr;
    procedure setConstraints(Obj : access GridBagLayout_Obj;
        comp : Component_Ptr;
        constraints : GridBagConstraints_Ptr);
    function getConstraints(Obj : access GridBagLayout_Obj;
        comp : Component_Ptr)
      return GridBagConstraints_Ptr;
    function getLayoutOrigin(Obj : access GridBagLayout_Obj) return Point_Ptr;
    type Which_Dimension is (columns, rows);
    type LayoutDimensions is array(Which_Dimension) of Dimension_Array_Ptr;
    function getLayoutDimensions(Obj : access GridBagLayout_Obj) 
      return LayoutDimensions;
    type LayoutWeights is array(Which_Dimension) of Weight_Array_Ptr;
    function getLayoutWeights(Obj : access GridBagLayout_Obj) 
      return LayoutWeights;
    function location(Obj : access GridBagLayout_Obj;
        x : Integer;
        y : Integer)
      return Point_Ptr;
    procedure addLayoutComponent(Obj : access GridBagLayout_Obj;
        name : String_Ptr;
        comp : Component_Ptr);
    procedure removeLayoutComponent(Obj : access GridBagLayout_Obj;
        comp : Component_Ptr);
    function preferredLayoutSize(Obj : access GridBagLayout_Obj;
        parent : Container_Ptr)
      return Dimension_Ptr;
    function minimumLayoutSize(Obj : access GridBagLayout_Obj;
        parent : Container_Ptr)
      return Dimension_Ptr;
    procedure layoutContainer(Obj : access GridBagLayout_Obj;
        parent : Container_Ptr);
    function toString(Obj : access GridBagLayout_Obj) return String_Ptr;
    pragma Import(Java, removeLayoutComponent);
    pragma Import(Java, layoutContainer);
    pragma Import(Java, getLayoutDimensions);
    pragma Import(Java, setConstraints);
    pragma Import(Java, preferredLayoutSize);
    pragma Import(Java, minimumLayoutSize);
    pragma Import(Java, location);
    pragma Import(Java, getLayoutOrigin);
    pragma Import(Java, getLayoutWeights);
    pragma Import(Java, toString);
    pragma Import(Java, addLayoutComponent);
    pragma Import(Java, getConstraints);
    pragma Import(Java_Constructor, init_GridBagLayout);
    pragma Import(Java_Constructor, new_GridBagLayout);
end java.awt.GridBagLayout;