------------------------------------------------------------------------------
--                                                                          --
--                An Ada2005 binding to the Qt C++ framework                --
--                                                                          --
------------------------------------------------------------------------------
--                                                                          --
-- Copyright © 2009, 2010 Vadim Godunko <vgodunko@gmail.com>                --
--                                                                          --
-- QtAda is free software;  you can  redistribute it and/or modify it under --
-- terms of the  GNU General Public License as published  by the Free Soft- --
-- ware  Foundation;  either version 2,  or (at your option) any later ver- --
-- sion. QtAda is distributed in the hope that it will be useful, but WITH- --
-- OUT ANY WARRANTY;  without even the  implied warranty of MERCHANTABILITY --
-- or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License --
-- for  more details.  You should have  received  a copy of the GNU General --
-- Public License distributed with QtAda;  see file COPYING.  If not, write --
-- to  the  Free Software Foundation,  51  Franklin  Street,  Fifth  Floor, --
-- Boston, MA 02110-1301, USA.                                              --
--                                                                          --
-- As a special exception,  if other files  instantiate  generics from this --
-- unit, or you link  this unit with other files  to produce an executable, --
-- this  unit  does not  by itself cause  the resulting  executable  to  be --
-- covered  by the  GNU  General  Public  License.  This exception does not --
-- however invalidate  any other reasons why  the executable file  might be --
-- covered by the  GNU Public License.                                      --
--                                                                          --
------------------------------------------------------------------------------
--    This file has been generated automatically. Please don't edit it.     --
------------------------------------------------------------------------------
with Qt4.Cursors;
limited with Qt4.Graphics_Objects;
limited with Qt4.Graphics_Scenes;
with Qt4.Matrices;
with Qt4.Painter_Paths;
with Qt4.Painters;
with Qt4.Point_Fs;
with Qt4.Polygon_Fs;
with Qt4.Rect_Fs;
with Qt4.Regions;
with Qt4.Sizes;
with Qt4.Strings;
with Qt4.Style_Option_Graphics_Items;
with Qt4.Transforms;
with Qt4.Variants;
with Qt4.Widgets;
with Qt4_Generic_Flags;
with Qt_Ada.Internals.Graphics_Items;

package Qt4.Graphics_Items is

   type Graphics_Item_Cache_Mode is
    (No_Cache,
     Item_Coordinate_Cache,
     Device_Coordinate_Cache);
   pragma Convention (C, Graphics_Item_Cache_Mode);

   type Graphics_Item_Graphics_Item_Change is
    (Item_Position_Change,
     Item_Matrix_Change,
     Item_Visible_Change,
     Item_Enabled_Change,
     Item_Selected_Change,
     Item_Parent_Change,
     Item_Child_Added_Change,
     Item_Child_Removed_Change,
     Item_Transform_Change,
     Item_Position_Has_Changed,
     Item_Transform_Has_Changed,
     Item_Scene_Change,
     Item_Visible_Has_Changed,
     Item_Enabled_Has_Changed,
     Item_Selected_Has_Changed,
     Item_Parent_Has_Changed,
     Item_Scene_Has_Changed,
     Item_Cursor_Change,
     Item_Cursor_Has_Changed,
     Item_Tool_Tip_Change,
     Item_Tool_Tip_Has_Changed,
     Item_Flags_Change,
     Item_Flags_Have_Changed,
     Item_Z_Value_Change,
     Item_Z_Value_Has_Changed,
     Item_Opacity_Change,
     Item_Opacity_Has_Changed,
     Item_Scene_Position_Has_Changed);
   pragma Convention (C, Graphics_Item_Graphics_Item_Change);

   type Graphics_Item_Graphics_Item_Flag is
    (Item_Is_Movable,
     Item_Is_Selectable,
     Item_Is_Focusable,
     Item_Clips_To_Shape,
     Item_Clips_Children_To_Shape,
     Item_Ignores_Transformations,
     Item_Ignores_Parent_Opacity,
     Item_Doesnt_Propagate_Opacity_To_Children,
     Item_Stacks_Behind_Parent,
     Item_Uses_Extended_Style_Option,
     Item_Has_No_Contents,
     Item_Sends_Geometry_Changes,
     Item_Accepts_Input_Method,
     Item_Negative_Z_Stacks_Behind_Parent,
     Item_Is_Panel,
     Item_Is_Focus_Scope,
     Item_Sends_Scene_Position_Changes);
   pragma Convention (C, Graphics_Item_Graphics_Item_Flag);
   for Graphics_Item_Graphics_Item_Flag use
    (Item_Is_Movable =>      16#1#,
     Item_Is_Selectable =>      16#2#,
     Item_Is_Focusable =>      16#4#,
     Item_Clips_To_Shape =>      16#8#,
     Item_Clips_Children_To_Shape =>     16#10#,
     Item_Ignores_Transformations =>     16#20#,
     Item_Ignores_Parent_Opacity =>     16#40#,
     Item_Doesnt_Propagate_Opacity_To_Children =>     16#80#,
     Item_Stacks_Behind_Parent =>    16#100#,
     Item_Uses_Extended_Style_Option =>    16#200#,
     Item_Has_No_Contents =>    16#400#,
     Item_Sends_Geometry_Changes =>    16#800#,
     Item_Accepts_Input_Method =>   16#1000#,
     Item_Negative_Z_Stacks_Behind_Parent =>   16#2000#,
     Item_Is_Panel =>   16#4000#,
     Item_Is_Focus_Scope =>   16#8000#,
     Item_Sends_Scene_Position_Changes =>  16#10000#);

   type Graphics_Item_Panel_Modality is
    (Non_Modal,
     Panel_Modal,
     Scene_Modal);
   pragma Convention (C, Graphics_Item_Panel_Modality);

   type Q_Graphics_Item is limited interface
     and Qt_Ada.Internals.Graphics_Items.Q_Graphics_Item_Base;

   type Q_Graphics_Item_Access is
     access all Q_Graphics_Item'Class;
   for Q_Graphics_Item_Access'Storage_Size use 0;

   function Accept_Drops
    (Self : not null access constant Q_Graphics_Item'Class)
       return Standard.Boolean;

   function Accept_Hover_Events
    (Self : not null access constant Q_Graphics_Item'Class)
       return Standard.Boolean;

   function Accept_Touch_Events
    (Self : not null access constant Q_Graphics_Item'Class)
       return Standard.Boolean;

   not overriding
   procedure Advance
    (Self : not null access Q_Graphics_Item;
     Phase : Qt4.Q_Integer)
       is abstract;

   not overriding
   function Bounding_Rect
    (Self : not null access constant Q_Graphics_Item)
       return Qt4.Rect_Fs.Q_Rect_F
         is abstract;

   function Bounding_Region
    (Self : not null access constant Q_Graphics_Item'Class;
     Item_To_Device_Transform : Qt4.Transforms.Q_Transform)
       return Qt4.Regions.Q_Region;

   function Bounding_Region_Granularity
    (Self : not null access constant Q_Graphics_Item'Class)
       return Qt4.Q_Real;

   function Cache_Mode
    (Self : not null access constant Q_Graphics_Item'Class)
       return Qt4.Graphics_Items.Graphics_Item_Cache_Mode;

   function Children_Bounding_Rect
    (Self : not null access constant Q_Graphics_Item'Class)
       return Qt4.Rect_Fs.Q_Rect_F;

   procedure Clear_Focus
    (Self : not null access Q_Graphics_Item'Class);

   function Clip_Path
    (Self : not null access constant Q_Graphics_Item'Class)
       return Qt4.Painter_Paths.Q_Painter_Path;

   not overriding
   function Collides_With_Item
    (Self : not null access constant Q_Graphics_Item;
     Other : not null access constant Qt4.Graphics_Items.Q_Graphics_Item'Class;
     Mode : Qt4.Item_Selection_Mode
       := Qt4.Intersects_Item_Shape)
       return Standard.Boolean
         is abstract;

   not overriding
   function Collides_With_Path
    (Self : not null access constant Q_Graphics_Item;
     Path : Qt4.Painter_Paths.Q_Painter_Path;
     Mode : Qt4.Item_Selection_Mode
       := Qt4.Intersects_Item_Shape)
       return Standard.Boolean
         is abstract;

   function Common_Ancestor_Item
    (Self : not null access constant Q_Graphics_Item'Class;
     Other : access Qt4.Graphics_Items.Q_Graphics_Item'Class)
       return access Qt4.Graphics_Items.Q_Graphics_Item'Class;

   not overriding
   function Contains
    (Self : not null access constant Q_Graphics_Item;
     Point : Qt4.Point_Fs.Q_Point_F)
       return Standard.Boolean
         is abstract;

   function Cursor
    (Self : not null access constant Q_Graphics_Item'Class)
       return Qt4.Cursors.Q_Cursor;

   function Data
    (Self : not null access constant Q_Graphics_Item'Class;
     Key : Qt4.Q_Integer)
       return Qt4.Variants.Q_Variant;

   function Device_Transform
    (Self : not null access constant Q_Graphics_Item'Class;
     Viewport_Transform : Qt4.Transforms.Q_Transform)
       return Qt4.Transforms.Q_Transform;

   function Effective_Opacity
    (Self : not null access constant Q_Graphics_Item'Class)
       return Qt4.Q_Real;

   procedure Ensure_Visible
    (Self : not null access Q_Graphics_Item'Class;
     Rect : Qt4.Rect_Fs.Q_Rect_F
       := Qt4.Rect_Fs.Create;
     Xmargin : Qt4.Q_Integer
       :=  50;
     Ymargin : Qt4.Q_Integer
       :=  50);

   procedure Ensure_Visible
    (Self : not null access Q_Graphics_Item'Class;
     X : Qt4.Q_Real;
     Y : Qt4.Q_Real;
     W : Qt4.Q_Real;
     H : Qt4.Q_Real;
     Xmargin : Qt4.Q_Integer
       :=  50;
     Ymargin : Qt4.Q_Integer
       :=  50);

   function Filters_Child_Events
    (Self : not null access constant Q_Graphics_Item'Class)
       return Standard.Boolean;

   function Focus_Item
    (Self : not null access constant Q_Graphics_Item'Class)
       return access Qt4.Graphics_Items.Q_Graphics_Item'Class;

   function Focus_Proxy
    (Self : not null access constant Q_Graphics_Item'Class)
       return access Qt4.Graphics_Items.Q_Graphics_Item'Class;

   procedure Grab_Keyboard
    (Self : not null access Q_Graphics_Item'Class);

   procedure Grab_Mouse
    (Self : not null access Q_Graphics_Item'Class);

   function Handles_Child_Events
    (Self : not null access constant Q_Graphics_Item'Class)
       return Standard.Boolean;

   function Has_Cursor
    (Self : not null access constant Q_Graphics_Item'Class)
       return Standard.Boolean;

   function Has_Focus
    (Self : not null access constant Q_Graphics_Item'Class)
       return Standard.Boolean;

   procedure Hide
    (Self : not null access Q_Graphics_Item'Class);

   procedure Install_Scene_Event_Filter
    (Self : not null access Q_Graphics_Item'Class;
     Filter_Item : not null access Qt4.Graphics_Items.Q_Graphics_Item'Class);

   function Is_Active
    (Self : not null access constant Q_Graphics_Item'Class)
       return Standard.Boolean;

   function Is_Ancestor_Of
    (Self : not null access constant Q_Graphics_Item'Class;
     Child : not null access constant Qt4.Graphics_Items.Q_Graphics_Item'Class)
       return Standard.Boolean;

   function Is_Clipped
    (Self : not null access constant Q_Graphics_Item'Class)
       return Standard.Boolean;

   function Is_Enabled
    (Self : not null access constant Q_Graphics_Item'Class)
       return Standard.Boolean;

   function Is_Obscured
    (Self : not null access constant Q_Graphics_Item'Class)
       return Standard.Boolean;

   function Is_Obscured
    (Self : not null access constant Q_Graphics_Item'Class;
     X : Qt4.Q_Real;
     Y : Qt4.Q_Real;
     W : Qt4.Q_Real;
     H : Qt4.Q_Real)
       return Standard.Boolean;

   function Is_Obscured
    (Self : not null access constant Q_Graphics_Item'Class;
     Rect : Qt4.Rect_Fs.Q_Rect_F)
       return Standard.Boolean;

   not overriding
   function Is_Obscured_By
    (Self : not null access constant Q_Graphics_Item;
     Item : not null access constant Qt4.Graphics_Items.Q_Graphics_Item'Class)
       return Standard.Boolean
         is abstract;

   function Is_Panel
    (Self : not null access constant Q_Graphics_Item'Class)
       return Standard.Boolean;

   function Is_Selected
    (Self : not null access constant Q_Graphics_Item'Class)
       return Standard.Boolean;

   function Is_Under_Mouse
    (Self : not null access constant Q_Graphics_Item'Class)
       return Standard.Boolean;

   function Is_Visible
    (Self : not null access constant Q_Graphics_Item'Class)
       return Standard.Boolean;

   function Is_Visible_To
    (Self : not null access constant Q_Graphics_Item'Class;
     Parent : not null access constant Qt4.Graphics_Items.Q_Graphics_Item'Class)
       return Standard.Boolean;

   function Is_Widget
    (Self : not null access constant Q_Graphics_Item'Class)
       return Standard.Boolean;

   function Is_Window
    (Self : not null access constant Q_Graphics_Item'Class)
       return Standard.Boolean;

   function Map_From_Item
    (Self : not null access constant Q_Graphics_Item'Class;
     Item : not null access constant Qt4.Graphics_Items.Q_Graphics_Item'Class;
     Point : Qt4.Point_Fs.Q_Point_F)
       return Qt4.Point_Fs.Q_Point_F;

   function Map_From_Item
    (Self : not null access constant Q_Graphics_Item'Class;
     Item : not null access constant Qt4.Graphics_Items.Q_Graphics_Item'Class;
     Rect : Qt4.Rect_Fs.Q_Rect_F)
       return Qt4.Polygon_Fs.Q_Polygon_F;

   function Map_From_Item
    (Self : not null access constant Q_Graphics_Item'Class;
     Item : not null access constant Qt4.Graphics_Items.Q_Graphics_Item'Class;
     Polygon : Qt4.Polygon_Fs.Q_Polygon_F)
       return Qt4.Polygon_Fs.Q_Polygon_F;

   function Map_From_Item
    (Self : not null access constant Q_Graphics_Item'Class;
     Item : not null access constant Qt4.Graphics_Items.Q_Graphics_Item'Class;
     Path : Qt4.Painter_Paths.Q_Painter_Path)
       return Qt4.Painter_Paths.Q_Painter_Path;

   function Map_From_Item
    (Self : not null access constant Q_Graphics_Item'Class;
     Item : not null access constant Qt4.Graphics_Items.Q_Graphics_Item'Class;
     X : Qt4.Q_Real;
     Y : Qt4.Q_Real;
     W : Qt4.Q_Real;
     H : Qt4.Q_Real)
       return Qt4.Polygon_Fs.Q_Polygon_F;

   function Map_From_Item
    (Self : not null access constant Q_Graphics_Item'Class;
     Item : not null access constant Qt4.Graphics_Items.Q_Graphics_Item'Class;
     X : Qt4.Q_Real;
     Y : Qt4.Q_Real)
       return Qt4.Point_Fs.Q_Point_F;

   function Map_From_Parent
    (Self : not null access constant Q_Graphics_Item'Class;
     Point : Qt4.Point_Fs.Q_Point_F)
       return Qt4.Point_Fs.Q_Point_F;

   function Map_From_Parent
    (Self : not null access constant Q_Graphics_Item'Class;
     Rect : Qt4.Rect_Fs.Q_Rect_F)
       return Qt4.Polygon_Fs.Q_Polygon_F;

   function Map_From_Parent
    (Self : not null access constant Q_Graphics_Item'Class;
     Polygon : Qt4.Polygon_Fs.Q_Polygon_F)
       return Qt4.Polygon_Fs.Q_Polygon_F;

   function Map_From_Parent
    (Self : not null access constant Q_Graphics_Item'Class;
     Path : Qt4.Painter_Paths.Q_Painter_Path)
       return Qt4.Painter_Paths.Q_Painter_Path;

   function Map_From_Parent
    (Self : not null access constant Q_Graphics_Item'Class;
     X : Qt4.Q_Real;
     Y : Qt4.Q_Real;
     W : Qt4.Q_Real;
     H : Qt4.Q_Real)
       return Qt4.Polygon_Fs.Q_Polygon_F;

   function Map_From_Parent
    (Self : not null access constant Q_Graphics_Item'Class;
     X : Qt4.Q_Real;
     Y : Qt4.Q_Real)
       return Qt4.Point_Fs.Q_Point_F;

   function Map_From_Scene
    (Self : not null access constant Q_Graphics_Item'Class;
     Point : Qt4.Point_Fs.Q_Point_F)
       return Qt4.Point_Fs.Q_Point_F;

   function Map_From_Scene
    (Self : not null access constant Q_Graphics_Item'Class;
     Rect : Qt4.Rect_Fs.Q_Rect_F)
       return Qt4.Polygon_Fs.Q_Polygon_F;

   function Map_From_Scene
    (Self : not null access constant Q_Graphics_Item'Class;
     Polygon : Qt4.Polygon_Fs.Q_Polygon_F)
       return Qt4.Polygon_Fs.Q_Polygon_F;

   function Map_From_Scene
    (Self : not null access constant Q_Graphics_Item'Class;
     Path : Qt4.Painter_Paths.Q_Painter_Path)
       return Qt4.Painter_Paths.Q_Painter_Path;

   function Map_From_Scene
    (Self : not null access constant Q_Graphics_Item'Class;
     X : Qt4.Q_Real;
     Y : Qt4.Q_Real;
     W : Qt4.Q_Real;
     H : Qt4.Q_Real)
       return Qt4.Polygon_Fs.Q_Polygon_F;

   function Map_From_Scene
    (Self : not null access constant Q_Graphics_Item'Class;
     X : Qt4.Q_Real;
     Y : Qt4.Q_Real)
       return Qt4.Point_Fs.Q_Point_F;

   function Map_Rect_From_Item
    (Self : not null access constant Q_Graphics_Item'Class;
     Item : not null access constant Qt4.Graphics_Items.Q_Graphics_Item'Class;
     Rect : Qt4.Rect_Fs.Q_Rect_F)
       return Qt4.Rect_Fs.Q_Rect_F;

   function Map_Rect_From_Item
    (Self : not null access constant Q_Graphics_Item'Class;
     Item : not null access constant Qt4.Graphics_Items.Q_Graphics_Item'Class;
     X : Qt4.Q_Real;
     Y : Qt4.Q_Real;
     W : Qt4.Q_Real;
     H : Qt4.Q_Real)
       return Qt4.Rect_Fs.Q_Rect_F;

   function Map_Rect_From_Parent
    (Self : not null access constant Q_Graphics_Item'Class;
     Rect : Qt4.Rect_Fs.Q_Rect_F)
       return Qt4.Rect_Fs.Q_Rect_F;

   function Map_Rect_From_Parent
    (Self : not null access constant Q_Graphics_Item'Class;
     X : Qt4.Q_Real;
     Y : Qt4.Q_Real;
     W : Qt4.Q_Real;
     H : Qt4.Q_Real)
       return Qt4.Rect_Fs.Q_Rect_F;

   function Map_Rect_From_Scene
    (Self : not null access constant Q_Graphics_Item'Class;
     Rect : Qt4.Rect_Fs.Q_Rect_F)
       return Qt4.Rect_Fs.Q_Rect_F;

   function Map_Rect_From_Scene
    (Self : not null access constant Q_Graphics_Item'Class;
     X : Qt4.Q_Real;
     Y : Qt4.Q_Real;
     W : Qt4.Q_Real;
     H : Qt4.Q_Real)
       return Qt4.Rect_Fs.Q_Rect_F;

   function Map_Rect_To_Item
    (Self : not null access constant Q_Graphics_Item'Class;
     Item : not null access constant Qt4.Graphics_Items.Q_Graphics_Item'Class;
     Rect : Qt4.Rect_Fs.Q_Rect_F)
       return Qt4.Rect_Fs.Q_Rect_F;

   function Map_Rect_To_Item
    (Self : not null access constant Q_Graphics_Item'Class;
     Item : not null access constant Qt4.Graphics_Items.Q_Graphics_Item'Class;
     X : Qt4.Q_Real;
     Y : Qt4.Q_Real;
     W : Qt4.Q_Real;
     H : Qt4.Q_Real)
       return Qt4.Rect_Fs.Q_Rect_F;

   function Map_Rect_To_Parent
    (Self : not null access constant Q_Graphics_Item'Class;
     Rect : Qt4.Rect_Fs.Q_Rect_F)
       return Qt4.Rect_Fs.Q_Rect_F;

   function Map_Rect_To_Parent
    (Self : not null access constant Q_Graphics_Item'Class;
     X : Qt4.Q_Real;
     Y : Qt4.Q_Real;
     W : Qt4.Q_Real;
     H : Qt4.Q_Real)
       return Qt4.Rect_Fs.Q_Rect_F;

   function Map_Rect_To_Scene
    (Self : not null access constant Q_Graphics_Item'Class;
     Rect : Qt4.Rect_Fs.Q_Rect_F)
       return Qt4.Rect_Fs.Q_Rect_F;

   function Map_Rect_To_Scene
    (Self : not null access constant Q_Graphics_Item'Class;
     X : Qt4.Q_Real;
     Y : Qt4.Q_Real;
     W : Qt4.Q_Real;
     H : Qt4.Q_Real)
       return Qt4.Rect_Fs.Q_Rect_F;

   function Map_To_Item
    (Self : not null access constant Q_Graphics_Item'Class;
     Item : not null access constant Qt4.Graphics_Items.Q_Graphics_Item'Class;
     Point : Qt4.Point_Fs.Q_Point_F)
       return Qt4.Point_Fs.Q_Point_F;

   function Map_To_Item
    (Self : not null access constant Q_Graphics_Item'Class;
     Item : not null access constant Qt4.Graphics_Items.Q_Graphics_Item'Class;
     Rect : Qt4.Rect_Fs.Q_Rect_F)
       return Qt4.Polygon_Fs.Q_Polygon_F;

   function Map_To_Item
    (Self : not null access constant Q_Graphics_Item'Class;
     Item : not null access constant Qt4.Graphics_Items.Q_Graphics_Item'Class;
     Polygon : Qt4.Polygon_Fs.Q_Polygon_F)
       return Qt4.Polygon_Fs.Q_Polygon_F;

   function Map_To_Item
    (Self : not null access constant Q_Graphics_Item'Class;
     Item : not null access constant Qt4.Graphics_Items.Q_Graphics_Item'Class;
     Path : Qt4.Painter_Paths.Q_Painter_Path)
       return Qt4.Painter_Paths.Q_Painter_Path;

   function Map_To_Item
    (Self : not null access constant Q_Graphics_Item'Class;
     Item : not null access constant Qt4.Graphics_Items.Q_Graphics_Item'Class;
     X : Qt4.Q_Real;
     Y : Qt4.Q_Real;
     W : Qt4.Q_Real;
     H : Qt4.Q_Real)
       return Qt4.Polygon_Fs.Q_Polygon_F;

   function Map_To_Item
    (Self : not null access constant Q_Graphics_Item'Class;
     Item : not null access constant Qt4.Graphics_Items.Q_Graphics_Item'Class;
     X : Qt4.Q_Real;
     Y : Qt4.Q_Real)
       return Qt4.Point_Fs.Q_Point_F;

   function Map_To_Parent
    (Self : not null access constant Q_Graphics_Item'Class;
     Point : Qt4.Point_Fs.Q_Point_F)
       return Qt4.Point_Fs.Q_Point_F;

   function Map_To_Parent
    (Self : not null access constant Q_Graphics_Item'Class;
     Rect : Qt4.Rect_Fs.Q_Rect_F)
       return Qt4.Polygon_Fs.Q_Polygon_F;

   function Map_To_Parent
    (Self : not null access constant Q_Graphics_Item'Class;
     Polygon : Qt4.Polygon_Fs.Q_Polygon_F)
       return Qt4.Polygon_Fs.Q_Polygon_F;

   function Map_To_Parent
    (Self : not null access constant Q_Graphics_Item'Class;
     Path : Qt4.Painter_Paths.Q_Painter_Path)
       return Qt4.Painter_Paths.Q_Painter_Path;

   function Map_To_Parent
    (Self : not null access constant Q_Graphics_Item'Class;
     X : Qt4.Q_Real;
     Y : Qt4.Q_Real;
     W : Qt4.Q_Real;
     H : Qt4.Q_Real)
       return Qt4.Polygon_Fs.Q_Polygon_F;

   function Map_To_Parent
    (Self : not null access constant Q_Graphics_Item'Class;
     X : Qt4.Q_Real;
     Y : Qt4.Q_Real)
       return Qt4.Point_Fs.Q_Point_F;

   function Map_To_Scene
    (Self : not null access constant Q_Graphics_Item'Class;
     Point : Qt4.Point_Fs.Q_Point_F)
       return Qt4.Point_Fs.Q_Point_F;

   function Map_To_Scene
    (Self : not null access constant Q_Graphics_Item'Class;
     Rect : Qt4.Rect_Fs.Q_Rect_F)
       return Qt4.Polygon_Fs.Q_Polygon_F;

   function Map_To_Scene
    (Self : not null access constant Q_Graphics_Item'Class;
     Polygon : Qt4.Polygon_Fs.Q_Polygon_F)
       return Qt4.Polygon_Fs.Q_Polygon_F;

   function Map_To_Scene
    (Self : not null access constant Q_Graphics_Item'Class;
     Path : Qt4.Painter_Paths.Q_Painter_Path)
       return Qt4.Painter_Paths.Q_Painter_Path;

   function Map_To_Scene
    (Self : not null access constant Q_Graphics_Item'Class;
     X : Qt4.Q_Real;
     Y : Qt4.Q_Real;
     W : Qt4.Q_Real;
     H : Qt4.Q_Real)
       return Qt4.Polygon_Fs.Q_Polygon_F;

   function Map_To_Scene
    (Self : not null access constant Q_Graphics_Item'Class;
     X : Qt4.Q_Real;
     Y : Qt4.Q_Real)
       return Qt4.Point_Fs.Q_Point_F;

   function Matrix
    (Self : not null access constant Q_Graphics_Item'Class)
       return Qt4.Matrices.Q_Matrix;

   procedure Move_By
    (Self : not null access Q_Graphics_Item'Class;
     Dx : Qt4.Q_Real;
     Dy : Qt4.Q_Real);

   function Opacity
    (Self : not null access constant Q_Graphics_Item'Class)
       return Qt4.Q_Real;

   not overriding
   function Opaque_Area
    (Self : not null access constant Q_Graphics_Item)
       return Qt4.Painter_Paths.Q_Painter_Path
         is abstract;

   function Panel
    (Self : not null access constant Q_Graphics_Item'Class)
       return access Qt4.Graphics_Items.Q_Graphics_Item'Class;

   function Panel_Modality
    (Self : not null access constant Q_Graphics_Item'Class)
       return Qt4.Graphics_Items.Graphics_Item_Panel_Modality;

   function Parent_Object
    (Self : not null access constant Q_Graphics_Item'Class)
       return not null access Qt4.Graphics_Objects.Q_Graphics_Object'Class;

   function Parent_Item
    (Self : not null access constant Q_Graphics_Item'Class)
       return not null access Qt4.Graphics_Items.Q_Graphics_Item'Class;

   function Pos
    (Self : not null access constant Q_Graphics_Item'Class)
       return Qt4.Point_Fs.Q_Point_F;

   procedure Remove_Scene_Event_Filter
    (Self : not null access Q_Graphics_Item'Class;
     Filter_Item : not null access Qt4.Graphics_Items.Q_Graphics_Item'Class);

   procedure Reset_Matrix
    (Self : not null access Q_Graphics_Item'Class);

   procedure Reset_Transform
    (Self : not null access Q_Graphics_Item'Class);

   procedure Rotate
    (Self : not null access Q_Graphics_Item'Class;
     Angle : Qt4.Q_Real);

   function Rotation
    (Self : not null access Q_Graphics_Item'Class)
       return Qt4.Q_Real;

   function Scale
    (Self : not null access Q_Graphics_Item'Class)
       return Qt4.Q_Real;

   procedure Scale
    (Self : not null access Q_Graphics_Item'Class;
     Sx : Qt4.Q_Real;
     Sy : Qt4.Q_Real);

   function Scene
    (Self : not null access constant Q_Graphics_Item'Class)
       return access Qt4.Graphics_Scenes.Q_Graphics_Scene'Class;

   function Scene_Bounding_Rect
    (Self : not null access constant Q_Graphics_Item'Class)
       return Qt4.Rect_Fs.Q_Rect_F;

   function Scene_Matrix
    (Self : not null access constant Q_Graphics_Item'Class)
       return Qt4.Matrices.Q_Matrix;

   function Scene_Pos
    (Self : not null access constant Q_Graphics_Item'Class)
       return Qt4.Point_Fs.Q_Point_F;

   function Scene_Transform
    (Self : not null access constant Q_Graphics_Item'Class)
       return Qt4.Transforms.Q_Transform;

   procedure Scroll
    (Self : not null access Q_Graphics_Item'Class;
     Dx : Qt4.Q_Real;
     Dy : Qt4.Q_Real;
     Rect : Qt4.Rect_Fs.Q_Rect_F
       := Qt4.Rect_Fs.Create);

   procedure Set_Accept_Drops
    (Self : not null access Q_Graphics_Item'Class;
     On : Standard.Boolean);

   procedure Set_Accept_Hover_Events
    (Self : not null access Q_Graphics_Item'Class;
     Enabled : Standard.Boolean);

   procedure Set_Accept_Touch_Events
    (Self : not null access Q_Graphics_Item'Class;
     Enabled : Standard.Boolean);

   procedure Set_Active
    (Self : not null access Q_Graphics_Item'Class;
     Active : Standard.Boolean);

   procedure Set_Bounding_Region_Granularity
    (Self : not null access Q_Graphics_Item'Class;
     Granularity : Qt4.Q_Real);

   procedure Set_Cache_Mode
    (Self : not null access Q_Graphics_Item'Class;
     Mode : Qt4.Graphics_Items.Graphics_Item_Cache_Mode;
     Cache_Size : Qt4.Sizes.Q_Size
       := Qt4.Sizes.Create);

   procedure Set_Cursor
    (Self : not null access Q_Graphics_Item'Class;
     Cursor : Qt4.Cursors.Q_Cursor);

   procedure Set_Data
    (Self : not null access Q_Graphics_Item'Class;
     Key : Qt4.Q_Integer;
     Value : Qt4.Variants.Q_Variant);

   procedure Set_Enabled
    (Self : not null access Q_Graphics_Item'Class;
     Enabled : Standard.Boolean);

   procedure Set_Filters_Child_Events
    (Self : not null access Q_Graphics_Item'Class;
     Enabled : Standard.Boolean);

   procedure Set_Flag
    (Self : not null access Q_Graphics_Item'Class;
     Flag : Qt4.Graphics_Items.Graphics_Item_Graphics_Item_Flag;
     Enabled : Standard.Boolean
       := True);

   procedure Set_Focus_Proxy
    (Self : not null access Q_Graphics_Item'Class;
     Item : not null access Qt4.Graphics_Items.Q_Graphics_Item'Class);

   procedure Set_Handles_Child_Events
    (Self : not null access Q_Graphics_Item'Class;
     Enabled : Standard.Boolean);

   procedure Set_Matrix
    (Self : not null access Q_Graphics_Item'Class;
     Matrix : Qt4.Matrices.Q_Matrix;
     Combine : Standard.Boolean
       := False);

   procedure Set_Opacity
    (Self : not null access Q_Graphics_Item'Class;
     Opacity : Qt4.Q_Real);

   procedure Set_Panel_Modality
    (Self : not null access Q_Graphics_Item'Class;
     Panel_Modality : Qt4.Graphics_Items.Graphics_Item_Panel_Modality);

   procedure Set_Parent_Item
    (Self : not null access Q_Graphics_Item'Class;
     Parent : not null access Qt4.Graphics_Items.Q_Graphics_Item'Class);

   procedure Set_Pos
    (Self : not null access Q_Graphics_Item'Class;
     Pos : Qt4.Point_Fs.Q_Point_F);

   procedure Set_Pos
    (Self : not null access Q_Graphics_Item'Class;
     X : Qt4.Q_Real;
     Y : Qt4.Q_Real);

   procedure Set_Rotation
    (Self : not null access Q_Graphics_Item'Class;
     Angle : Qt4.Q_Real);

   procedure Set_Scale
    (Self : not null access Q_Graphics_Item'Class;
     Factor : Qt4.Q_Real);

   procedure Set_Selected
    (Self : not null access Q_Graphics_Item'Class;
     Selected : Standard.Boolean);

   procedure Set_Tool_Tip
    (Self : not null access Q_Graphics_Item'Class;
     Tool_Tip : Qt4.Strings.Q_String);

   procedure Set_Transform
    (Self : not null access Q_Graphics_Item'Class;
     Matrix : Qt4.Transforms.Q_Transform;
     Combine : Standard.Boolean
       := False);

   procedure Set_Transform_Origin_Point
    (Self : not null access Q_Graphics_Item'Class;
     Origin : Qt4.Point_Fs.Q_Point_F);

   procedure Set_Transform_Origin_Point
    (Self : not null access Q_Graphics_Item'Class;
     X : Qt4.Q_Real;
     Y : Qt4.Q_Real);

   procedure Set_Visible
    (Self : not null access Q_Graphics_Item'Class;
     Visible : Standard.Boolean);

   procedure Set_X
    (Self : not null access Q_Graphics_Item'Class;
     X : Qt4.Q_Real);

   procedure Set_Y
    (Self : not null access Q_Graphics_Item'Class;
     Y : Qt4.Q_Real);

   procedure Set_Z_Value
    (Self : not null access Q_Graphics_Item'Class;
     Z : Qt4.Q_Real);

   not overriding
   function Shape
    (Self : not null access constant Q_Graphics_Item)
       return Qt4.Painter_Paths.Q_Painter_Path
         is abstract;

   procedure Shear
    (Self : not null access Q_Graphics_Item'Class;
     Sh : Qt4.Q_Real;
     Sv : Qt4.Q_Real);

   procedure Show
    (Self : not null access Q_Graphics_Item'Class);

   procedure Stack_Before
    (Self : not null access Q_Graphics_Item'Class;
     Sibling : not null access Qt4.Graphics_Items.Q_Graphics_Item'Class);

   function To_Graphics_Object
    (Self : not null access Q_Graphics_Item'Class)
       return access Qt4.Graphics_Objects.Q_Graphics_Object'Class;

   function Tool_Tip
    (Self : not null access constant Q_Graphics_Item'Class)
       return Qt4.Strings.Q_String;

   function Top_Level_Item
    (Self : not null access constant Q_Graphics_Item'Class)
       return not null access Qt4.Graphics_Items.Q_Graphics_Item'Class;

   function Transform
    (Self : not null access constant Q_Graphics_Item'Class)
       return Qt4.Transforms.Q_Transform;

   function Transform_Origin_Point
    (Self : not null access constant Q_Graphics_Item'Class)
       return Qt4.Point_Fs.Q_Point_F;

   procedure Translate
    (Self : not null access Q_Graphics_Item'Class;
     Dx : Qt4.Q_Real;
     Dy : Qt4.Q_Real);

   procedure Ungrab_Keyboard
    (Self : not null access Q_Graphics_Item'Class);

   procedure Ungrab_Mouse
    (Self : not null access Q_Graphics_Item'Class);

   procedure Unset_Cursor
    (Self : not null access Q_Graphics_Item'Class);

   procedure Update
    (Self : not null access Q_Graphics_Item'Class;
     Rect : Qt4.Rect_Fs.Q_Rect_F
       := Qt4.Rect_Fs.Create);

   procedure Update
    (Self : not null access Q_Graphics_Item'Class;
     X : Qt4.Q_Real;
     Y : Qt4.Q_Real;
     Width : Qt4.Q_Real;
     Height : Qt4.Q_Real);

   function X
    (Self : not null access constant Q_Graphics_Item'Class)
       return Qt4.Q_Real;

   function Y
    (Self : not null access constant Q_Graphics_Item'Class)
       return Qt4.Q_Real;

   function Z_Value
    (Self : not null access constant Q_Graphics_Item'Class)
       return Qt4.Q_Real;

   type Graphics_Item_Type is new Interfaces.C.int range 1 .. 65536;

   Graphics_Item              : constant Graphics_Item_Type := 1;
   Graphics_Path_Item         : constant Graphics_Item_Type := 2;
   Graphics_Rect_Item         : constant Graphics_Item_Type := 3;
   Graphics_Ellipse_Item      : constant Graphics_Item_Type := 4;
   Graphics_Polygon_Item      : constant Graphics_Item_Type := 5;
   Graphics_Line_Item         : constant Graphics_Item_Type := 6;
   Graphics_Pixmap_Item       : constant Graphics_Item_Type := 7;
   Graphics_Text_Item         : constant Graphics_Item_Type := 8;
   Graphics_Simple_Text_Item  : constant Graphics_Item_Type := 9;
   Graphics_Item_Group        : constant Graphics_Item_Type := 10;
   Graphics_User_Item         : constant Graphics_Item_Type := 65536;

   pragma Warnings (Off);
   package Graphics_Item_Flag_Flags is
     new Qt4_Generic_Flags (Graphics_Item_Graphics_Item_Flag);
   pragma Warnings (On);

   type Graphics_Item_Flags is new Graphics_Item_Flag_Flags.Flags;

   not overriding
   procedure Paint
    (Self    : not null access Q_Graphics_Item;
     Painter : in out Qt4.Painters.Q_Painter'Class;
     Option  :
       Qt4.Style_Option_Graphics_Items.Q_Style_Option_Graphics_Item'Class;
     Widget  : access Qt4.Widgets.Q_Widget'Class := null)
       is abstract;

   procedure Set_Accepted_Mouse_Buttons
    (Self    : not null access Q_Graphics_Item'Class;
     Buttons : Qt4.Mouse_Buttons);

end Qt4.Graphics_Items;
