------------------------------------------------------------------------------
--                                                                          --
--                An Ada2005 binding to the Qt C++ framework                --
--                                                                          --
------------------------------------------------------------------------------
--                                                                          --
-- Copyright © 2008-2011 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.Child_Events;
with Qt4.Events;
with Qt4.Mime_Datas;
with Qt4.Timer_Events;
with Qt_Ada.Internals.Events;
with Qt_Ada.Internals.Object_Registry;
pragma Elaborate (Qt_Ada.Internals.Object_Registry);
with Qt_Ada.Internals.Objects;
with Qt_Ada.Internals.Objects.Mime_Data_Utilities;
with Qt_Ada.Internals.Objects.Object_Utilities;

package body Qt4.Abstract_Item_Models.Directors is

   function qt_metacall_wrapper
    (Self : not null access Qt_Ada.Internals.Objects.QObject;
     Kind : Qt4.Meta_Objects.Call;
     Id   : Qt4.Q_Integer;
     Args : Qt4.Address_Pointer)
       return Qt4.Q_Integer;
   pragma Import (C, qt_metacall_wrapper,
                  "__Qt4Ada_QAbstractItemModel_qt_metacall_wrapper");

   function qt_metacast_wrapper
    (Self  : not null access Qt_Ada.Internals.Objects.QObject;
     Class : Interfaces.C.char_array)
       return System.Address;
   pragma Import (C, qt_metacast_wrapper,
                  "__Qt4Ada_QAbstractItemModel_qt_metacast_wrapper");

   function buddy_0_dispatch
    (Self : not null Qt_Ada.Internals.Objects.Q_Object_Base_Access;
     Index : not null access Qt4.Model_Indices.Internals.QModelIndex)
       return not null access Qt4.Model_Indices.Internals.QModelIndex;
   pragma Export (C, buddy_0_dispatch,
                     "__Qt4Ada_QAbstractItemModel_buddy_0_dispatch");
   pragma Warnings (Off, buddy_0_dispatch);
   --  GCC GNAT 4.3.0: suppress warning
   --  is a tagged type which does not correspond to any C type

   procedure buddy_0_wrapper
    (Self : not null access Qt_Ada.Internals.Objects.QObject;
     Index : not null access constant Qt4.Model_Indices.Internals.QModelIndex;
     Returns : not null access Qt4.Model_Indices.Internals.QModelIndex);
   pragma Import (C, buddy_0_wrapper,
                     "__Qt4Ada_QAbstractItemModel_buddy_0_wrapper");

   function canFetchMore_0_dispatch
    (Self : not null Qt_Ada.Internals.Objects.Q_Object_Base_Access;
     Parent : not null access Qt4.Model_Indices.Internals.QModelIndex)
       return Qt4.bool;
   pragma Export (C, canFetchMore_0_dispatch,
                     "__Qt4Ada_QAbstractItemModel_canFetchMore_0_dispatch");
   pragma Warnings (Off, canFetchMore_0_dispatch);
   --  GCC GNAT 4.3.0: suppress warning
   --  is a tagged type which does not correspond to any C type

   function canFetchMore_0_wrapper
    (Self : not null access Qt_Ada.Internals.Objects.QObject;
     Parent : not null access constant Qt4.Model_Indices.Internals.QModelIndex)
       return Qt4.bool;
   pragma Import (C, canFetchMore_0_wrapper,
                     "__Qt4Ada_QAbstractItemModel_canFetchMore_0_wrapper");

   function columnCount_0_dispatch
    (Self : not null Qt_Ada.Internals.Objects.Q_Object_Base_Access;
     Parent : not null access Qt4.Model_Indices.Internals.QModelIndex)
       return Qt4.Q_Integer;
   pragma Export (C, columnCount_0_dispatch,
                     "__Qt4Ada_QAbstractItemModel_columnCount_0_dispatch");
   pragma Warnings (Off, columnCount_0_dispatch);
   --  GCC GNAT 4.3.0: suppress warning
   --  is a tagged type which does not correspond to any C type

   function dropMimeData_0_dispatch
    (Self : not null Qt_Ada.Internals.Objects.Q_Object_Base_Access;
     Data : access Qt_Ada.Internals.Objects.QObject;
     Action : Qt4.Drop_Action;
     Row : Qt4.Q_Integer;
     Column : Qt4.Q_Integer;
     Parent : not null access Qt4.Model_Indices.Internals.QModelIndex)
       return Qt4.bool;
   pragma Export (C, dropMimeData_0_dispatch,
                     "__Qt4Ada_QAbstractItemModel_dropMimeData_0_dispatch");
   pragma Warnings (Off, dropMimeData_0_dispatch);
   --  GCC GNAT 4.3.0: suppress warning
   --  is a tagged type which does not correspond to any C type

   function dropMimeData_0_wrapper
    (Self : not null access Qt_Ada.Internals.Objects.QObject;
     Data : access Qt_Ada.Internals.Objects.QObject;
     Action : Qt4.Drop_Action;
     Row : Qt4.Q_Integer;
     Column : Qt4.Q_Integer;
     Parent : not null access constant Qt4.Model_Indices.Internals.QModelIndex)
       return Qt4.bool;
   pragma Import (C, dropMimeData_0_wrapper,
                     "__Qt4Ada_QAbstractItemModel_dropMimeData_0_wrapper");

   procedure fetchMore_0_dispatch
    (Self : not null Qt_Ada.Internals.Objects.Q_Object_Base_Access;
     Parent : not null access Qt4.Model_Indices.Internals.QModelIndex);
   pragma Export (C, fetchMore_0_dispatch,
                     "__Qt4Ada_QAbstractItemModel_fetchMore_0_dispatch");
   pragma Warnings (Off, fetchMore_0_dispatch);
   --  GCC GNAT 4.3.0: suppress warning
   --  is a tagged type which does not correspond to any C type

   procedure fetchMore_0_wrapper
    (Self : not null access Qt_Ada.Internals.Objects.QObject;
     Parent : not null access constant Qt4.Model_Indices.Internals.QModelIndex);
   pragma Import (C, fetchMore_0_wrapper,
                     "__Qt4Ada_QAbstractItemModel_fetchMore_0_wrapper");

   function hasChildren_0_dispatch
    (Self : not null Qt_Ada.Internals.Objects.Q_Object_Base_Access;
     Parent : not null access Qt4.Model_Indices.Internals.QModelIndex)
       return Qt4.bool;
   pragma Export (C, hasChildren_0_dispatch,
                     "__Qt4Ada_QAbstractItemModel_hasChildren_0_dispatch");
   pragma Warnings (Off, hasChildren_0_dispatch);
   --  GCC GNAT 4.3.0: suppress warning
   --  is a tagged type which does not correspond to any C type

   function hasChildren_0_wrapper
    (Self : not null access Qt_Ada.Internals.Objects.QObject;
     Parent : not null access constant Qt4.Model_Indices.Internals.QModelIndex)
       return Qt4.bool;
   pragma Import (C, hasChildren_0_wrapper,
                     "__Qt4Ada_QAbstractItemModel_hasChildren_0_wrapper");

   function hasIndex_0_dispatch
    (Self : not null Qt_Ada.Internals.Objects.Q_Object_Base_Access;
     Row : Qt4.Q_Integer;
     Column : Qt4.Q_Integer;
     Parent : not null access Qt4.Model_Indices.Internals.QModelIndex)
       return Qt4.bool;
   pragma Export (C, hasIndex_0_dispatch,
                     "__Qt4Ada_QAbstractItemModel_hasIndex_0_dispatch");
   pragma Warnings (Off, hasIndex_0_dispatch);
   --  GCC GNAT 4.3.0: suppress warning
   --  is a tagged type which does not correspond to any C type

   function hasIndex_0_wrapper
    (Self : not null access Qt_Ada.Internals.Objects.QObject;
     Row : Qt4.Q_Integer;
     Column : Qt4.Q_Integer;
     Parent : not null access constant Qt4.Model_Indices.Internals.QModelIndex)
       return Qt4.bool;
   pragma Import (C, hasIndex_0_wrapper,
                     "__Qt4Ada_QAbstractItemModel_hasIndex_0_wrapper");

   function index_0_dispatch
    (Self : not null Qt_Ada.Internals.Objects.Q_Object_Base_Access;
     Row : Qt4.Q_Integer;
     Column : Qt4.Q_Integer;
     Parent : not null access Qt4.Model_Indices.Internals.QModelIndex)
       return not null access Qt4.Model_Indices.Internals.QModelIndex;
   pragma Export (C, index_0_dispatch,
                     "__Qt4Ada_QAbstractItemModel_index_0_dispatch");
   pragma Warnings (Off, index_0_dispatch);
   --  GCC GNAT 4.3.0: suppress warning
   --  is a tagged type which does not correspond to any C type

   function insertColumns_0_dispatch
    (Self : not null Qt_Ada.Internals.Objects.Q_Object_Base_Access;
     Column : Qt4.Q_Integer;
     Count : Qt4.Q_Integer;
     Parent : not null access Qt4.Model_Indices.Internals.QModelIndex)
       return Qt4.bool;
   pragma Export (C, insertColumns_0_dispatch,
                     "__Qt4Ada_QAbstractItemModel_insertColumns_0_dispatch");
   pragma Warnings (Off, insertColumns_0_dispatch);
   --  GCC GNAT 4.3.0: suppress warning
   --  is a tagged type which does not correspond to any C type

   function insertColumns_0_wrapper
    (Self : not null access Qt_Ada.Internals.Objects.QObject;
     Column : Qt4.Q_Integer;
     Count : Qt4.Q_Integer;
     Parent : not null access constant Qt4.Model_Indices.Internals.QModelIndex)
       return Qt4.bool;
   pragma Import (C, insertColumns_0_wrapper,
                     "__Qt4Ada_QAbstractItemModel_insertColumns_0_wrapper");

   function insertRows_0_dispatch
    (Self : not null Qt_Ada.Internals.Objects.Q_Object_Base_Access;
     Row : Qt4.Q_Integer;
     Count : Qt4.Q_Integer;
     Parent : not null access Qt4.Model_Indices.Internals.QModelIndex)
       return Qt4.bool;
   pragma Export (C, insertRows_0_dispatch,
                     "__Qt4Ada_QAbstractItemModel_insertRows_0_dispatch");
   pragma Warnings (Off, insertRows_0_dispatch);
   --  GCC GNAT 4.3.0: suppress warning
   --  is a tagged type which does not correspond to any C type

   function insertRows_0_wrapper
    (Self : not null access Qt_Ada.Internals.Objects.QObject;
     Row : Qt4.Q_Integer;
     Count : Qt4.Q_Integer;
     Parent : not null access constant Qt4.Model_Indices.Internals.QModelIndex)
       return Qt4.bool;
   pragma Import (C, insertRows_0_wrapper,
                     "__Qt4Ada_QAbstractItemModel_insertRows_0_wrapper");

   function mimeData_0_dispatch
    (Self : not null Qt_Ada.Internals.Objects.Q_Object_Base_Access;
     Indexes : not null access Qt4.Model_Index_Lists.Thin.QModelIndexList)
       return access Qt_Ada.Internals.Objects.QObject;
   pragma Export (C, mimeData_0_dispatch,
                     "__Qt4Ada_QAbstractItemModel_mimeData_0_dispatch");
   pragma Warnings (Off, mimeData_0_dispatch);
   --  GCC GNAT 4.3.0: suppress warning
   --  is a tagged type which does not correspond to any C type

   function mimeData_0_wrapper
    (Self : not null access Qt_Ada.Internals.Objects.QObject;
     Indexes : not null access constant Qt4.Model_Index_Lists.Thin.QModelIndexList)
       return access Qt_Ada.Internals.Objects.QObject;
   pragma Import (C, mimeData_0_wrapper,
                     "__Qt4Ada_QAbstractItemModel_mimeData_0_wrapper");

   function mimeTypes_0_dispatch
    (Self : not null Qt_Ada.Internals.Objects.Q_Object_Base_Access)
       return not null access Qt4.String_Lists.Internals.QStringList;
   pragma Export (C, mimeTypes_0_dispatch,
                     "__Qt4Ada_QAbstractItemModel_mimeTypes_0_dispatch");
   pragma Warnings (Off, mimeTypes_0_dispatch);
   --  GCC GNAT 4.3.0: suppress warning
   --  is a tagged type which does not correspond to any C type

   procedure mimeTypes_0_wrapper
    (Self : not null access Qt_Ada.Internals.Objects.QObject;
     Returns : not null access Qt4.String_Lists.Internals.QStringList);
   pragma Import (C, mimeTypes_0_wrapper,
                     "__Qt4Ada_QAbstractItemModel_mimeTypes_0_wrapper");

   function parent_1_dispatch
    (Self : not null Qt_Ada.Internals.Objects.Q_Object_Base_Access;
     Child : not null access Qt4.Model_Indices.Internals.QModelIndex)
       return not null access Qt4.Model_Indices.Internals.QModelIndex;
   pragma Export (C, parent_1_dispatch,
                     "__Qt4Ada_QAbstractItemModel_parent_1_dispatch");
   pragma Warnings (Off, parent_1_dispatch);
   --  GCC GNAT 4.3.0: suppress warning
   --  is a tagged type which does not correspond to any C type

   function removeColumns_0_dispatch
    (Self : not null Qt_Ada.Internals.Objects.Q_Object_Base_Access;
     Column : Qt4.Q_Integer;
     Count : Qt4.Q_Integer;
     Parent : not null access Qt4.Model_Indices.Internals.QModelIndex)
       return Qt4.bool;
   pragma Export (C, removeColumns_0_dispatch,
                     "__Qt4Ada_QAbstractItemModel_removeColumns_0_dispatch");
   pragma Warnings (Off, removeColumns_0_dispatch);
   --  GCC GNAT 4.3.0: suppress warning
   --  is a tagged type which does not correspond to any C type

   function removeColumns_0_wrapper
    (Self : not null access Qt_Ada.Internals.Objects.QObject;
     Column : Qt4.Q_Integer;
     Count : Qt4.Q_Integer;
     Parent : not null access constant Qt4.Model_Indices.Internals.QModelIndex)
       return Qt4.bool;
   pragma Import (C, removeColumns_0_wrapper,
                     "__Qt4Ada_QAbstractItemModel_removeColumns_0_wrapper");

   function removeRows_0_dispatch
    (Self : not null Qt_Ada.Internals.Objects.Q_Object_Base_Access;
     Row : Qt4.Q_Integer;
     Count : Qt4.Q_Integer;
     Parent : not null access Qt4.Model_Indices.Internals.QModelIndex)
       return Qt4.bool;
   pragma Export (C, removeRows_0_dispatch,
                     "__Qt4Ada_QAbstractItemModel_removeRows_0_dispatch");
   pragma Warnings (Off, removeRows_0_dispatch);
   --  GCC GNAT 4.3.0: suppress warning
   --  is a tagged type which does not correspond to any C type

   function removeRows_0_wrapper
    (Self : not null access Qt_Ada.Internals.Objects.QObject;
     Row : Qt4.Q_Integer;
     Count : Qt4.Q_Integer;
     Parent : not null access constant Qt4.Model_Indices.Internals.QModelIndex)
       return Qt4.bool;
   pragma Import (C, removeRows_0_wrapper,
                     "__Qt4Ada_QAbstractItemModel_removeRows_0_wrapper");

   function rowCount_0_dispatch
    (Self : not null Qt_Ada.Internals.Objects.Q_Object_Base_Access;
     Parent : not null access Qt4.Model_Indices.Internals.QModelIndex)
       return Qt4.Q_Integer;
   pragma Export (C, rowCount_0_dispatch,
                     "__Qt4Ada_QAbstractItemModel_rowCount_0_dispatch");
   pragma Warnings (Off, rowCount_0_dispatch);
   --  GCC GNAT 4.3.0: suppress warning
   --  is a tagged type which does not correspond to any C type

   function span_0_dispatch
    (Self : not null Qt_Ada.Internals.Objects.Q_Object_Base_Access;
     Index : not null access Qt4.Model_Indices.Internals.QModelIndex)
       return not null access Qt4.Sizes.Internals.QSize;
   pragma Export (C, span_0_dispatch,
                     "__Qt4Ada_QAbstractItemModel_span_0_dispatch");
   pragma Warnings (Off, span_0_dispatch);
   --  GCC GNAT 4.3.0: suppress warning
   --  is a tagged type which does not correspond to any C type

   procedure span_0_wrapper
    (Self : not null access Qt_Ada.Internals.Objects.QObject;
     Index : not null access constant Qt4.Model_Indices.Internals.QModelIndex;
     Returns : not null access Qt4.Sizes.Internals.QSize);
   pragma Import (C, span_0_wrapper,
                     "__Qt4Ada_QAbstractItemModel_span_0_wrapper");

   procedure revert_0_dispatch
    (Self : not null Qt_Ada.Internals.Objects.Q_Object_Base_Access);
   pragma Export (C, revert_0_dispatch,
                     "__Qt4Ada_QAbstractItemModel_revert_0_dispatch");
   pragma Warnings (Off, revert_0_dispatch);
   --  GCC GNAT 4.3.0: suppress warning
   --  is a tagged type which does not correspond to any C type

   procedure revert_0_wrapper
    (Self : not null access Qt_Ada.Internals.Objects.QObject);
   pragma Import (C, revert_0_wrapper,
                     "__Qt4Ada_QAbstractItemModel_revert_0_wrapper");

   function submit_0_dispatch
    (Self : not null Qt_Ada.Internals.Objects.Q_Object_Base_Access)
       return Qt4.bool;
   pragma Export (C, submit_0_dispatch,
                     "__Qt4Ada_QAbstractItemModel_submit_0_dispatch");
   pragma Warnings (Off, submit_0_dispatch);
   --  GCC GNAT 4.3.0: suppress warning
   --  is a tagged type which does not correspond to any C type

   function submit_0_wrapper
    (Self : not null access Qt_Ada.Internals.Objects.QObject)
       return Qt4.bool;
   pragma Import (C, submit_0_wrapper,
                     "__Qt4Ada_QAbstractItemModel_submit_0_wrapper");

   procedure dataChanged_0_wrapper
    (Self : not null access Qt_Ada.Internals.Objects.QObject;
     Top_Left : not null access constant Qt4.Model_Indices.Internals.QModelIndex;
     Bottom_Right : not null access constant Qt4.Model_Indices.Internals.QModelIndex);
   pragma Import (C, dataChanged_0_wrapper,
                     "__Qt4Ada_QAbstractItemModel_dataChanged_0_wrapper");

   procedure headerDataChanged_0_wrapper
    (Self : not null access Qt_Ada.Internals.Objects.QObject;
     Orientation : Qt4.Orientation;
     First : Qt4.Q_Integer;
     Last : Qt4.Q_Integer);
   pragma Import (C, headerDataChanged_0_wrapper,
                     "__Qt4Ada_QAbstractItemModel_headerDataChanged_0_wrapper");

   procedure layoutAboutToBeChanged_0_wrapper
    (Self : not null access Qt_Ada.Internals.Objects.QObject);
   pragma Import (C, layoutAboutToBeChanged_0_wrapper,
                     "__Qt4Ada_QAbstractItemModel_layoutAboutToBeChanged_0_wrapper");

   procedure layoutChanged_0_wrapper
    (Self : not null access Qt_Ada.Internals.Objects.QObject);
   pragma Import (C, layoutChanged_0_wrapper,
                     "__Qt4Ada_QAbstractItemModel_layoutChanged_0_wrapper");

   procedure beginInsertColumns_0_wrapper
    (Self : not null access Qt_Ada.Internals.Objects.QObject;
     Parent : not null access constant Qt4.Model_Indices.Internals.QModelIndex;
     First : Qt4.Q_Integer;
     Last : Qt4.Q_Integer);
   pragma Import (C, beginInsertColumns_0_wrapper,
                     "__Qt4Ada_QAbstractItemModel_beginInsertColumns_0_wrapper");

   procedure beginInsertRows_0_wrapper
    (Self : not null access Qt_Ada.Internals.Objects.QObject;
     Parent : not null access constant Qt4.Model_Indices.Internals.QModelIndex;
     First : Qt4.Q_Integer;
     Last : Qt4.Q_Integer);
   pragma Import (C, beginInsertRows_0_wrapper,
                     "__Qt4Ada_QAbstractItemModel_beginInsertRows_0_wrapper");

   function beginMoveColumns_0_wrapper
    (Self : not null access Qt_Ada.Internals.Objects.QObject;
     Source_Parent : not null access constant Qt4.Model_Indices.Internals.QModelIndex;
     Source_First : Qt4.Q_Integer;
     Source_Last : Qt4.Q_Integer;
     Destination_Parent : not null access constant Qt4.Model_Indices.Internals.QModelIndex;
     Destination_Child : Qt4.Q_Integer)
       return Qt4.bool;
   pragma Import (C, beginMoveColumns_0_wrapper,
                     "__Qt4Ada_QAbstractItemModel_beginMoveColumns_0_wrapper");

   function beginMoveRows_0_wrapper
    (Self : not null access Qt_Ada.Internals.Objects.QObject;
     Source_Parent : not null access constant Qt4.Model_Indices.Internals.QModelIndex;
     Source_First : Qt4.Q_Integer;
     Source_Last : Qt4.Q_Integer;
     Destination_Parent : not null access constant Qt4.Model_Indices.Internals.QModelIndex;
     Destination_Child : Qt4.Q_Integer)
       return Qt4.bool;
   pragma Import (C, beginMoveRows_0_wrapper,
                     "__Qt4Ada_QAbstractItemModel_beginMoveRows_0_wrapper");

   procedure beginRemoveColumns_0_wrapper
    (Self : not null access Qt_Ada.Internals.Objects.QObject;
     Parent : not null access constant Qt4.Model_Indices.Internals.QModelIndex;
     First : Qt4.Q_Integer;
     Last : Qt4.Q_Integer);
   pragma Import (C, beginRemoveColumns_0_wrapper,
                     "__Qt4Ada_QAbstractItemModel_beginRemoveColumns_0_wrapper");

   procedure beginRemoveRows_0_wrapper
    (Self : not null access Qt_Ada.Internals.Objects.QObject;
     Parent : not null access constant Qt4.Model_Indices.Internals.QModelIndex;
     First : Qt4.Q_Integer;
     Last : Qt4.Q_Integer);
   pragma Import (C, beginRemoveRows_0_wrapper,
                     "__Qt4Ada_QAbstractItemModel_beginRemoveRows_0_wrapper");

   procedure beginResetModel_0_wrapper
    (Self : not null access Qt_Ada.Internals.Objects.QObject);
   pragma Import (C, beginResetModel_0_wrapper,
                     "__Qt4Ada_QAbstractItemModel_beginResetModel_0_wrapper");

   procedure changePersistentIndex_0_wrapper
    (Self : not null access Qt_Ada.Internals.Objects.QObject;
     From : not null access constant Qt4.Model_Indices.Internals.QModelIndex;
     To : not null access constant Qt4.Model_Indices.Internals.QModelIndex);
   pragma Import (C, changePersistentIndex_0_wrapper,
                     "__Qt4Ada_QAbstractItemModel_changePersistentIndex_0_wrapper");

   procedure endInsertColumns_0_wrapper
    (Self : not null access Qt_Ada.Internals.Objects.QObject);
   pragma Import (C, endInsertColumns_0_wrapper,
                     "__Qt4Ada_QAbstractItemModel_endInsertColumns_0_wrapper");

   procedure endInsertRows_0_wrapper
    (Self : not null access Qt_Ada.Internals.Objects.QObject);
   pragma Import (C, endInsertRows_0_wrapper,
                     "__Qt4Ada_QAbstractItemModel_endInsertRows_0_wrapper");

   procedure endMoveColumns_0_wrapper
    (Self : not null access Qt_Ada.Internals.Objects.QObject);
   pragma Import (C, endMoveColumns_0_wrapper,
                     "__Qt4Ada_QAbstractItemModel_endMoveColumns_0_wrapper");

   procedure endMoveRows_0_wrapper
    (Self : not null access Qt_Ada.Internals.Objects.QObject);
   pragma Import (C, endMoveRows_0_wrapper,
                     "__Qt4Ada_QAbstractItemModel_endMoveRows_0_wrapper");

   procedure endRemoveColumns_0_wrapper
    (Self : not null access Qt_Ada.Internals.Objects.QObject);
   pragma Import (C, endRemoveColumns_0_wrapper,
                     "__Qt4Ada_QAbstractItemModel_endRemoveColumns_0_wrapper");

   procedure endRemoveRows_0_wrapper
    (Self : not null access Qt_Ada.Internals.Objects.QObject);
   pragma Import (C, endRemoveRows_0_wrapper,
                     "__Qt4Ada_QAbstractItemModel_endRemoveRows_0_wrapper");

   procedure endResetModel_0_wrapper
    (Self : not null access Qt_Ada.Internals.Objects.QObject);
   pragma Import (C, endResetModel_0_wrapper,
                     "__Qt4Ada_QAbstractItemModel_endResetModel_0_wrapper");

   procedure reset_0_wrapper
    (Self : not null access Qt_Ada.Internals.Objects.QObject);
   pragma Import (C, reset_0_wrapper,
                     "__Qt4Ada_QAbstractItemModel_reset_0_wrapper");

   procedure childEvent_0_wrapper
    (Self : not null access Qt_Ada.Internals.Objects.QObject;
     Event : not null access Qt_Ada.Internals.Events.QEvent);
   pragma Import (C, childEvent_0_wrapper,
                     "__Qt4Ada_QAbstractItemModel_childEvent_0_wrapper");

   procedure customEvent_0_wrapper
    (Self : not null access Qt_Ada.Internals.Objects.QObject;
     Event : not null access Qt_Ada.Internals.Events.QEvent);
   pragma Import (C, customEvent_0_wrapper,
                     "__Qt4Ada_QAbstractItemModel_customEvent_0_wrapper");

   procedure timerEvent_0_wrapper
    (Self : not null access Qt_Ada.Internals.Objects.QObject;
     Event : not null access Qt_Ada.Internals.Events.QEvent);
   pragma Import (C, timerEvent_0_wrapper,
                     "__Qt4Ada_QAbstractItemModel_timerEvent_0_wrapper");

   function sender_0_wrapper
    (Self : not null access Qt_Ada.Internals.Objects.QObject)
       return access Qt_Ada.Internals.Objects.QObject;
   pragma Import (C, sender_0_wrapper,
                     "__Qt4Ada_QAbstractItemModel_sender_0_wrapper");

   function flags_static
    (Self  : not null access Qt_Ada.Internals.Objects.QObject;
     Index : not null access Qt4.Model_Indices.Internals.QModelIndex)
       return Qt4.Item_Flags;
   pragma Import
    (C, flags_static, "__Qt4Ada_QAbstractItemModel_flags_static");

   function headerData_static
    (Self        : not null access Qt_Ada.Internals.Objects.QObject;
     Section     : Interfaces.C.int;
     Orientation : Qt4.Orientations;
     Role        : Interfaces.C.int)
       return Qt4.Variants.Internals.QVariant_Access;
   pragma Import
    (C, headerData_static, "__Qt4Ada_QAbstractItemModel_headerData_static");

   function createIndex_wrapper
    (Self : not null access Qt_Ada.Internals.Objects.QObject;
     Row  : Interfaces.C.int;
     Col  : Interfaces.C.int;
     Ptr  : System.Address)
       return Qt4.Model_Indices.Internals.QModelIndex_Access;
   pragma Import (C,
                  createIndex_wrapper,
                  "__Qt4Ada_QAbstractItemModel_createIndex_wrapper");

   function setData_wrapper
    (Self  : not null access Qt_Ada.Internals.Objects.QObject;
     Index : not null access Qt4.Model_Indices.Internals.QModelIndex;
     Value : not null access Qt4.Variants.Internals.QVariant;
     Role  : Interfaces.C.int)
       return Qt4.bool;
   pragma Import
    (C, setData_wrapper, "__Qt4Ada_QAbstractItemModel_setData_wrapper");

   function setHeaderData_wrapper
    (Self    : not null access Qt_Ada.Internals.Objects.QObject;
     Section : Interfaces.C.int;
     Orient  : Orientation;
     Value   : not null access Qt4.Variants.Internals.QVariant;
     Role    : Interfaces.C.int)
       return Qt4.bool;
   pragma Import (C,
                  setHeaderData_wrapper,
                  "__Qt4Ada_QAbstractItemModel_setHeaderData_wrapper");

   function data_dispatch
    (Self  : not null Qt_Ada.Internals.Objects.Q_Object_Base_Access;
     Index : Qt4.Model_Indices.Internals.QModelIndex_Access;
     Role  : Interfaces.C.int)
       return not null access Qt4.Variants.Internals.QVariant;
   pragma Export
    (C, data_dispatch, "__Qt4Ada_QAbstractItemModel_data_dispatch");
   pragma Warnings (Off, data_dispatch);

   function flags_dispatch
    (Self  : not null Qt_Ada.Internals.Objects.Q_Object_Base_Access;
     Index : Qt4.Model_Indices.Internals.QModelIndex_Access)
       return Qt4.Item_Flags;
   pragma Export
    (C, flags_dispatch, "__Qt4Ada_QAbstractItemModel_flags_dispatch");
   pragma Warnings (Off, flags_dispatch);

   function headerData_dispatch
    (Self        : not null Qt_Ada.Internals.Objects.Q_Object_Base_Access;
     Section     : Interfaces.C.int;
     Orientation : Qt4.Orientations;
     Role        : Interfaces.C.int)
       return not null access Qt4.Variants.Internals.QVariant;
   pragma Export (C,
                  headerData_dispatch,
                  "__Qt4Ada_QAbstractItemModel_headerData_dispatch");
   pragma Warnings (Off, headerData_dispatch);

   function setData_dispatch
    (Self  : not null Qt_Ada.Internals.Objects.Q_Object_Base_Access;
     Index : Qt4.Model_Indices.Internals.QModelIndex_Access;
     Value : not null access Qt4.Variants.Internals.QVariant;
     Role  : Interfaces.C.int)
       return Qt4.bool;
   pragma Export
    (C, setData_dispatch, "__Qt4Ada_QAbstractItemModel_setData_dispatch");
   pragma Warnings (Off, setData_dispatch);

   function setHeaderData_dispatch
    (Self    : not null Qt_Ada.Internals.Objects.Q_Object_Base_Access;
     Section : Interfaces.C.int;
     Orient  : Orientation;
     Value   : not null access Qt4.Variants.Internals.QVariant;
     Role    : Interfaces.C.int)
       return Qt4.bool;
   pragma Export (C,
                  setHeaderData_dispatch,
                  "__Qt4Ada_QAbstractItemModel_setHeaderData_dispatch");
   pragma Warnings (Off, setHeaderData_dispatch);

   -------------------
   -- data_dispatch --
   -------------------

   function data_dispatch
    (Self  : not null Qt_Ada.Internals.Objects.Q_Object_Base_Access;
     Index : Qt4.Model_Indices.Internals.QModelIndex_Access;
     Role  : Interfaces.C.int)
       return not null access Qt4.Variants.Internals.QVariant
   is
   begin
      return
        Qt4.Variants.Thin.copy_QVariant
         (Qt4.Variants.Internals.QVariant_View
           (Q_Abstract_Item_Model_Director'Class (Self.all).Data
             (Qt4.Model_Indices.Internals.Create_Wrapper (Index),
              Item_Data_Role (Role))));
   end data_dispatch;

   --------------------
   -- flags_dispatch --
   --------------------

   function flags_dispatch
    (Self  : not null Qt_Ada.Internals.Objects.Q_Object_Base_Access;
     Index : Qt4.Model_Indices.Internals.QModelIndex_Access)
       return Qt4.Item_Flags
   is
   begin
      return Q_Abstract_Item_Model_Director'Class (Self.all).Flags
                (Qt4.Model_Indices.Internals.Create_Wrapper (Index));
   end flags_dispatch;

   -------------------------
   -- headerData_dispatch --
   -------------------------

   function headerData_dispatch
    (Self        : not null Qt_Ada.Internals.Objects.Q_Object_Base_Access;
     Section     : Interfaces.C.int;
     Orientation : Qt4.Orientations;
     Role        : Interfaces.C.int)
       return not null access Qt4.Variants.Internals.QVariant
   is
   begin
      return
        Qt4.Variants.Thin.copy_QVariant
         (Qt4.Variants.Internals.QVariant_View
           (Q_Abstract_Item_Model_Director'Class (Self.all).Header_Data
             (Q_Integer (Section), Orientation, Item_Data_Role (Role))));
   end headerData_dispatch;

   ------------------
   -- Create_Index --
   ------------------

   not overriding
   function Create_Index
    (Self : not null access constant Q_Abstract_Item_Model_Director;
     Row  : Q_Integer;
     Col  : Q_Integer;
     Ptr  : System.Address := System.Null_Address)
       return Qt4.Model_Indices.Q_Model_Index
   is
   begin
      return Qt4.Model_Indices.Internals.Create_Wrapper
              (createIndex_wrapper (Self.QObject_View,
                                    Interfaces.C.int (Row),
                                    Interfaces.C.int (Col),
                                    Ptr));
   end Create_Index;

   -----------
   -- Flags --
   -----------

   overriding
   function Flags
    (Self  : not null access constant Q_Abstract_Item_Model_Director;
     Index : Qt4.Model_Indices.Q_Model_Index)
       return Qt4.Item_Flags
   is
   begin
      return flags_static
              (Self.QObject_View,
               Qt4.Model_Indices.Internals.QModelIndex_View (Index));
   end Flags;

   -----------------
   -- Header_Data --
   -----------------

   overriding
   function Header_Data
    (Self        : not null access Q_Abstract_Item_Model_Director;
     Section     : Q_Integer;
     Orientation : Qt4.Orientations;
     Role        : Item_Data_Role := Display_Role)
       return Qt4.Variants.Q_Variant
   is
   begin
      return Qt4.Variants.Internals.Create_Wrapper
             (headerData_static
               (Self.QObject_View,
                Interfaces.C.int (Section),
                Orientation,
                Interfaces.C.int (Role)));
   end Header_Data;

   --------------
   -- Set_Data --
   --------------

   overriding
   function Set_Data
    (Self  : not null access Q_Abstract_Item_Model_Director;
     Index : Qt4.Model_Indices.Q_Model_Index;
     Value : Qt4.Variants.Q_Variant;
     Role  : Qt4.Item_Data_Role := Qt4.Edit_Role)
       return Boolean
   is
   begin
      return Qt4.To_Boolean
              (setData_wrapper
               (Self.QObject_View,
                Qt4.Model_Indices.Internals.QModelIndex_View (Index),
                Qt4.Variants.Internals.QVariant_View (Value),
                Interfaces.C.int (Role)));
   end Set_Data;

   ---------------------
   -- Set_Header_Data --
   ---------------------

   function Set_Header_Data
    (Self    : not null access Q_Abstract_Item_Model_Director;
     Section : Qt4.Q_Integer;
     Orient  : Qt4.Orientation;
     Value   : Qt4.Variants.Q_Variant;
     Role    : Qt4.Item_Data_Role := Qt4.Edit_Role)
       return Boolean
   is
   begin
      return To_Boolean
              (setHeaderData_wrapper
                (Self.QObject_View,
                 Interfaces.C.int (Section),
                 Orient,
                 Variants.Internals.QVariant_View (Value),
                 Interfaces.C.int (Role)));
   end Set_Header_Data;

   ----------------------------
   -- setHeaderData_dispatch --
   ----------------------------

   function setHeaderData_dispatch
    (Self    : not null Qt_Ada.Internals.Objects.Q_Object_Base_Access;
     Section : Interfaces.C.int;
     Orient  : Qt4.Orientation;
     Value   : not null access Qt4.Variants.Internals.QVariant;
     Role    : Interfaces.C.int)
       return bool is
   begin
      return To_Bool
              (Q_Abstract_Item_Model_Director'Class (Self.all).Set_Header_Data
                (Q_Integer (Section),
                 Orient,
                 Qt4.Variants.Internals.Create_Wrapper (Qt4.Variants.Internals.QVariant_Access (Value)),
                 Item_Data_Role (Role)));
   end setHeaderData_dispatch;

   ----------------------
   -- setData_dispatch --
   ----------------------

   function setData_dispatch
    (Self  : not null Qt_Ada.Internals.Objects.Q_Object_Base_Access;
     Index : Qt4.Model_Indices.Internals.QModelIndex_Access;
     Value : not null access Qt4.Variants.Internals.QVariant;
     Role  : Interfaces.C.int)
       return Qt4.bool
   is
   begin
      return Qt4.To_Bool
              (Q_Abstract_Item_Model_Director'Class (Self.all).Set_Data
                (Qt4.Model_Indices.Internals.Create_Wrapper (Index),
                 Qt4.Variants.Internals.Create_Wrapper (Qt4.Variants.Internals.QVariant_Access (Value)),
                 Qt4.Item_Data_Role (Role)));
   end setData_dispatch;

   ------------------
   -- Constructors --
   ------------------

   package body Constructors is

      function new_QAbstractItemModelDirector
       (Object : not null Qt_Ada.Internals.Objects.Q_Object_Base_Access;
        Parent : access Qt_Ada.Internals.Objects.QObject)
          return not null Qt_Ada.Internals.Objects.QObject_Access;
      pragma Import (C,
                     new_QAbstractItemModelDirector,
                     "__Qt4Ada_new_QAbstractItemModelDirector");
      pragma Warnings (Off, new_QAbstractItemModelDirector);

      ----------------
      -- Initialize --
      ----------------

      procedure Initialize
       (Self   : not null access Q_Abstract_Item_Model_Director'Class;
        Parent : access Qt4.Objects.Q_Object'Class := null)
      is
         Director : constant not null Qt_Ada.Internals.Objects.QObject_Access
           := new_QAbstractItemModelDirector
               (Qt_Ada.Internals.Objects.Q_Object_Base_Access (Self),
                Qt_Ada.Internals.Objects.Object_Utilities.Corresponding_QObject
                 (Parent));

      begin
         Qt_Ada.Internals.Objects.Initialize (Self, Director);
      end Initialize;

   end Constructors;

   pragma Style_Checks ("N");

   ----------------------
   -- buddy_0_dispatch --
   ----------------------

   function buddy_0_dispatch
    (Self : not null Qt_Ada.Internals.Objects.Q_Object_Base_Access;
     Index : not null access Qt4.Model_Indices.Internals.QModelIndex)
       return not null access Qt4.Model_Indices.Internals.QModelIndex
   is
   begin
      return
        Qt4.Model_Indices.Thin.copy_QModelIndex
         (Qt4.Model_Indices.Internals.QModelIndex_View
           (Q_Abstract_Item_Model_Director'Class (Self.all).Buddy
             (Qt4.Model_Indices.Internals.Create_Wrapper (Qt4.Model_Indices.Internals.QModelIndex_Access (Index)))));
   end buddy_0_dispatch;

   -----------
   -- Buddy --
   -----------

   overriding
   function Buddy
    (Self : not null access constant Q_Abstract_Item_Model_Director;
     Index : Qt4.Model_Indices.Q_Model_Index)
       return Qt4.Model_Indices.Q_Model_Index
   is
      Returns : Qt4.Model_Indices.Q_Model_Index;

   begin
      buddy_0_wrapper
       (Q_Abstract_Item_Model_Director'Class (Self.all).QObject_View,
        Qt4.Model_Indices.Internals.QModelIndex_View (Index),
        Qt4.Model_Indices.Internals.QModelIndex_View (Returns));

      return Returns;
   end Buddy;

   -----------------------------
   -- canFetchMore_0_dispatch --
   -----------------------------

   function canFetchMore_0_dispatch
    (Self : not null Qt_Ada.Internals.Objects.Q_Object_Base_Access;
     Parent : not null access Qt4.Model_Indices.Internals.QModelIndex)
       return Qt4.bool
   is
   begin
      return
        Qt4.To_bool
         (Q_Abstract_Item_Model_Director'Class (Self.all).Can_Fetch_More
           (Qt4.Model_Indices.Internals.Create_Wrapper (Qt4.Model_Indices.Internals.QModelIndex_Access (Parent))));
   end canFetchMore_0_dispatch;

   --------------------
   -- Can_Fetch_More --
   --------------------

   overriding
   function Can_Fetch_More
    (Self : not null access constant Q_Abstract_Item_Model_Director;
     Parent : Qt4.Model_Indices.Q_Model_Index)
       return Standard.Boolean
   is
   begin
      return
        Qt4.To_Boolean
         (canFetchMore_0_wrapper
           (Q_Abstract_Item_Model_Director'Class (Self.all).QObject_View,
            Qt4.Model_Indices.Internals.QModelIndex_View (Parent)));
   end Can_Fetch_More;

   ----------------------------
   -- columnCount_0_dispatch --
   ----------------------------

   function columnCount_0_dispatch
    (Self : not null Qt_Ada.Internals.Objects.Q_Object_Base_Access;
     Parent : not null access Qt4.Model_Indices.Internals.QModelIndex)
       return Qt4.Q_Integer
   is
   begin
      return
        Q_Abstract_Item_Model_Director'Class (Self.all).Column_Count
         (Qt4.Model_Indices.Internals.Create_Wrapper (Qt4.Model_Indices.Internals.QModelIndex_Access (Parent)));
   end columnCount_0_dispatch;

   -----------------------------
   -- dropMimeData_0_dispatch --
   -----------------------------

   function dropMimeData_0_dispatch
    (Self : not null Qt_Ada.Internals.Objects.Q_Object_Base_Access;
     Data : access Qt_Ada.Internals.Objects.QObject;
     Action : Qt4.Drop_Action;
     Row : Qt4.Q_Integer;
     Column : Qt4.Q_Integer;
     Parent : not null access Qt4.Model_Indices.Internals.QModelIndex)
       return Qt4.bool
   is
   begin
      return
        Qt4.To_bool
         (Q_Abstract_Item_Model_Director'Class (Self.all).Drop_Mime_Data
           (Qt_Ada.Internals.Objects.Mime_Data_Utilities.Corresponding_Q_Mime_Data (Data),
            Action,
            Row,
            Column,
            Qt4.Model_Indices.Internals.Create_Wrapper (Qt4.Model_Indices.Internals.QModelIndex_Access (Parent))));
   end dropMimeData_0_dispatch;

   --------------------
   -- Drop_Mime_Data --
   --------------------

   overriding
   function Drop_Mime_Data
    (Self : not null access Q_Abstract_Item_Model_Director;
     Data : access Qt4.Mime_Datas.Q_Mime_Data'Class;
     Action : Qt4.Drop_Action;
     Row : Qt4.Q_Integer;
     Column : Qt4.Q_Integer;
     Parent : Qt4.Model_Indices.Q_Model_Index)
       return Standard.Boolean
   is
   begin
      return
        Qt4.To_Boolean
         (dropMimeData_0_wrapper
           (Q_Abstract_Item_Model_Director'Class (Self.all).QObject_View,
            Qt_Ada.Internals.Objects.Object_Utilities.Corresponding_QObject (Data),
            Action,
            Row,
            Column,
            Qt4.Model_Indices.Internals.QModelIndex_View (Parent)));
   end Drop_Mime_Data;

   --------------------------
   -- fetchMore_0_dispatch --
   --------------------------

   procedure fetchMore_0_dispatch
    (Self : not null Qt_Ada.Internals.Objects.Q_Object_Base_Access;
     Parent : not null access Qt4.Model_Indices.Internals.QModelIndex)
   is
   begin
      Q_Abstract_Item_Model_Director'Class (Self.all).Fetch_More
       (Qt4.Model_Indices.Internals.Create_Wrapper (Qt4.Model_Indices.Internals.QModelIndex_Access (Parent)));
   end fetchMore_0_dispatch;

   ----------------
   -- Fetch_More --
   ----------------

   overriding
   procedure Fetch_More
    (Self : not null access Q_Abstract_Item_Model_Director;
     Parent : Qt4.Model_Indices.Q_Model_Index)
   is
   begin
      fetchMore_0_wrapper
       (Q_Abstract_Item_Model_Director'Class (Self.all).QObject_View,
        Qt4.Model_Indices.Internals.QModelIndex_View (Parent));
   end Fetch_More;

   ----------------------------
   -- hasChildren_0_dispatch --
   ----------------------------

   function hasChildren_0_dispatch
    (Self : not null Qt_Ada.Internals.Objects.Q_Object_Base_Access;
     Parent : not null access Qt4.Model_Indices.Internals.QModelIndex)
       return Qt4.bool
   is
   begin
      return
        Qt4.To_bool
         (Q_Abstract_Item_Model_Director'Class (Self.all).Has_Children
           (Qt4.Model_Indices.Internals.Create_Wrapper (Qt4.Model_Indices.Internals.QModelIndex_Access (Parent))));
   end hasChildren_0_dispatch;

   ------------------
   -- Has_Children --
   ------------------

   overriding
   function Has_Children
    (Self : not null access constant Q_Abstract_Item_Model_Director;
     Parent : Qt4.Model_Indices.Q_Model_Index
       := Qt4.Model_Indices.Create)
       return Standard.Boolean
   is
   begin
      return
        Qt4.To_Boolean
         (hasChildren_0_wrapper
           (Q_Abstract_Item_Model_Director'Class (Self.all).QObject_View,
            Qt4.Model_Indices.Internals.QModelIndex_View (Parent)));
   end Has_Children;

   -------------------------
   -- hasIndex_0_dispatch --
   -------------------------

   function hasIndex_0_dispatch
    (Self : not null Qt_Ada.Internals.Objects.Q_Object_Base_Access;
     Row : Qt4.Q_Integer;
     Column : Qt4.Q_Integer;
     Parent : not null access Qt4.Model_Indices.Internals.QModelIndex)
       return Qt4.bool
   is
   begin
      return
        Qt4.To_bool
         (Q_Abstract_Item_Model_Director'Class (Self.all).Has_Index
           (Row,
            Column,
            Qt4.Model_Indices.Internals.Create_Wrapper (Qt4.Model_Indices.Internals.QModelIndex_Access (Parent))));
   end hasIndex_0_dispatch;

   ---------------
   -- Has_Index --
   ---------------

   overriding
   function Has_Index
    (Self : not null access constant Q_Abstract_Item_Model_Director;
     Row : Qt4.Q_Integer;
     Column : Qt4.Q_Integer;
     Parent : Qt4.Model_Indices.Q_Model_Index
       := Qt4.Model_Indices.Create)
       return Standard.Boolean
   is
   begin
      return
        Qt4.To_Boolean
         (hasIndex_0_wrapper
           (Q_Abstract_Item_Model_Director'Class (Self.all).QObject_View,
            Row,
            Column,
            Qt4.Model_Indices.Internals.QModelIndex_View (Parent)));
   end Has_Index;

   ----------------------
   -- index_0_dispatch --
   ----------------------

   function index_0_dispatch
    (Self : not null Qt_Ada.Internals.Objects.Q_Object_Base_Access;
     Row : Qt4.Q_Integer;
     Column : Qt4.Q_Integer;
     Parent : not null access Qt4.Model_Indices.Internals.QModelIndex)
       return not null access Qt4.Model_Indices.Internals.QModelIndex
   is
   begin
      return
        Qt4.Model_Indices.Thin.copy_QModelIndex
         (Qt4.Model_Indices.Internals.QModelIndex_View
           (Q_Abstract_Item_Model_Director'Class (Self.all).Index
             (Row,
              Column,
              Qt4.Model_Indices.Internals.Create_Wrapper (Qt4.Model_Indices.Internals.QModelIndex_Access (Parent)))));
   end index_0_dispatch;

   ------------------------------
   -- insertColumns_0_dispatch --
   ------------------------------

   function insertColumns_0_dispatch
    (Self : not null Qt_Ada.Internals.Objects.Q_Object_Base_Access;
     Column : Qt4.Q_Integer;
     Count : Qt4.Q_Integer;
     Parent : not null access Qt4.Model_Indices.Internals.QModelIndex)
       return Qt4.bool
   is
   begin
      return
        Qt4.To_bool
         (Q_Abstract_Item_Model_Director'Class (Self.all).Insert_Columns
           (Column,
            Count,
            Qt4.Model_Indices.Internals.Create_Wrapper (Qt4.Model_Indices.Internals.QModelIndex_Access (Parent))));
   end insertColumns_0_dispatch;

   --------------------
   -- Insert_Columns --
   --------------------

   overriding
   function Insert_Columns
    (Self : not null access Q_Abstract_Item_Model_Director;
     Column : Qt4.Q_Integer;
     Count : Qt4.Q_Integer;
     Parent : Qt4.Model_Indices.Q_Model_Index
       := Qt4.Model_Indices.Create)
       return Standard.Boolean
   is
   begin
      return
        Qt4.To_Boolean
         (insertColumns_0_wrapper
           (Q_Abstract_Item_Model_Director'Class (Self.all).QObject_View,
            Column,
            Count,
            Qt4.Model_Indices.Internals.QModelIndex_View (Parent)));
   end Insert_Columns;

   ---------------------------
   -- insertRows_0_dispatch --
   ---------------------------

   function insertRows_0_dispatch
    (Self : not null Qt_Ada.Internals.Objects.Q_Object_Base_Access;
     Row : Qt4.Q_Integer;
     Count : Qt4.Q_Integer;
     Parent : not null access Qt4.Model_Indices.Internals.QModelIndex)
       return Qt4.bool
   is
   begin
      return
        Qt4.To_bool
         (Q_Abstract_Item_Model_Director'Class (Self.all).Insert_Rows
           (Row,
            Count,
            Qt4.Model_Indices.Internals.Create_Wrapper (Qt4.Model_Indices.Internals.QModelIndex_Access (Parent))));
   end insertRows_0_dispatch;

   -----------------
   -- Insert_Rows --
   -----------------

   overriding
   function Insert_Rows
    (Self : not null access Q_Abstract_Item_Model_Director;
     Row : Qt4.Q_Integer;
     Count : Qt4.Q_Integer;
     Parent : Qt4.Model_Indices.Q_Model_Index
       := Qt4.Model_Indices.Create)
       return Standard.Boolean
   is
   begin
      return
        Qt4.To_Boolean
         (insertRows_0_wrapper
           (Q_Abstract_Item_Model_Director'Class (Self.all).QObject_View,
            Row,
            Count,
            Qt4.Model_Indices.Internals.QModelIndex_View (Parent)));
   end Insert_Rows;

   -------------------------
   -- mimeData_0_dispatch --
   -------------------------

   function mimeData_0_dispatch
    (Self : not null Qt_Ada.Internals.Objects.Q_Object_Base_Access;
     Indexes : not null access Qt4.Model_Index_Lists.Thin.QModelIndexList)
       return access Qt_Ada.Internals.Objects.QObject
   is
   begin
      return
        Q_Abstract_Item_Model_Director'Class (Self.all).Mime_Data
         (Qt4.Model_Index_Lists.Internals.To_Q_Model_Index_List (Indexes)).QObject_View;
   end mimeData_0_dispatch;

   ---------------
   -- Mime_Data --
   ---------------

   overriding
   function Mime_Data
    (Self : not null access constant Q_Abstract_Item_Model_Director;
     Indexes : Qt4.Model_Index_Lists.Q_Model_Index_List)
       return access Qt4.Mime_Datas.Q_Mime_Data'Class
   is
   begin
      return
        Qt_Ada.Internals.Objects.Mime_Data_Utilities.Corresponding_Q_Mime_Data
         (mimeData_0_wrapper
           (Q_Abstract_Item_Model_Director'Class (Self.all).QObject_View,
            Qt4.Model_Index_Lists.Internals.QModelIndexList_View (Indexes)));
   end Mime_Data;

   --------------------------
   -- mimeTypes_0_dispatch --
   --------------------------

   function mimeTypes_0_dispatch
    (Self : not null Qt_Ada.Internals.Objects.Q_Object_Base_Access)
       return not null access Qt4.String_Lists.Internals.QStringList
   is
   begin
      return
        Qt4.String_Lists.Thin.copy_QStringList
         (Qt4.String_Lists.Internals.QStringList_View
           (Q_Abstract_Item_Model_Director'Class (Self.all).Mime_Types));
   end mimeTypes_0_dispatch;

   ----------------
   -- Mime_Types --
   ----------------

   overriding
   function Mime_Types
    (Self : not null access constant Q_Abstract_Item_Model_Director)
       return Qt4.String_Lists.Q_String_List
   is
      Returns : Qt4.String_Lists.Q_String_List;

   begin
      mimeTypes_0_wrapper
       (Q_Abstract_Item_Model_Director'Class (Self.all).QObject_View,
        Qt4.String_Lists.Internals.QStringList_View (Returns));

      return Returns;
   end Mime_Types;

   -----------------------
   -- parent_1_dispatch --
   -----------------------

   function parent_1_dispatch
    (Self : not null Qt_Ada.Internals.Objects.Q_Object_Base_Access;
     Child : not null access Qt4.Model_Indices.Internals.QModelIndex)
       return not null access Qt4.Model_Indices.Internals.QModelIndex
   is
   begin
      return
        Qt4.Model_Indices.Thin.copy_QModelIndex
         (Qt4.Model_Indices.Internals.QModelIndex_View
           (Q_Abstract_Item_Model_Director'Class (Self.all).Parent
             (Qt4.Model_Indices.Internals.Create_Wrapper (Qt4.Model_Indices.Internals.QModelIndex_Access (Child)))));
   end parent_1_dispatch;

   ------------------------------
   -- removeColumns_0_dispatch --
   ------------------------------

   function removeColumns_0_dispatch
    (Self : not null Qt_Ada.Internals.Objects.Q_Object_Base_Access;
     Column : Qt4.Q_Integer;
     Count : Qt4.Q_Integer;
     Parent : not null access Qt4.Model_Indices.Internals.QModelIndex)
       return Qt4.bool
   is
   begin
      return
        Qt4.To_bool
         (Q_Abstract_Item_Model_Director'Class (Self.all).Remove_Columns
           (Column,
            Count,
            Qt4.Model_Indices.Internals.Create_Wrapper (Qt4.Model_Indices.Internals.QModelIndex_Access (Parent))));
   end removeColumns_0_dispatch;

   --------------------
   -- Remove_Columns --
   --------------------

   overriding
   function Remove_Columns
    (Self : not null access Q_Abstract_Item_Model_Director;
     Column : Qt4.Q_Integer;
     Count : Qt4.Q_Integer;
     Parent : Qt4.Model_Indices.Q_Model_Index
       := Qt4.Model_Indices.Create)
       return Standard.Boolean
   is
   begin
      return
        Qt4.To_Boolean
         (removeColumns_0_wrapper
           (Q_Abstract_Item_Model_Director'Class (Self.all).QObject_View,
            Column,
            Count,
            Qt4.Model_Indices.Internals.QModelIndex_View (Parent)));
   end Remove_Columns;

   ---------------------------
   -- removeRows_0_dispatch --
   ---------------------------

   function removeRows_0_dispatch
    (Self : not null Qt_Ada.Internals.Objects.Q_Object_Base_Access;
     Row : Qt4.Q_Integer;
     Count : Qt4.Q_Integer;
     Parent : not null access Qt4.Model_Indices.Internals.QModelIndex)
       return Qt4.bool
   is
   begin
      return
        Qt4.To_bool
         (Q_Abstract_Item_Model_Director'Class (Self.all).Remove_Rows
           (Row,
            Count,
            Qt4.Model_Indices.Internals.Create_Wrapper (Qt4.Model_Indices.Internals.QModelIndex_Access (Parent))));
   end removeRows_0_dispatch;

   -----------------
   -- Remove_Rows --
   -----------------

   overriding
   function Remove_Rows
    (Self : not null access Q_Abstract_Item_Model_Director;
     Row : Qt4.Q_Integer;
     Count : Qt4.Q_Integer;
     Parent : Qt4.Model_Indices.Q_Model_Index
       := Qt4.Model_Indices.Create)
       return Standard.Boolean
   is
   begin
      return
        Qt4.To_Boolean
         (removeRows_0_wrapper
           (Q_Abstract_Item_Model_Director'Class (Self.all).QObject_View,
            Row,
            Count,
            Qt4.Model_Indices.Internals.QModelIndex_View (Parent)));
   end Remove_Rows;

   -------------------------
   -- rowCount_0_dispatch --
   -------------------------

   function rowCount_0_dispatch
    (Self : not null Qt_Ada.Internals.Objects.Q_Object_Base_Access;
     Parent : not null access Qt4.Model_Indices.Internals.QModelIndex)
       return Qt4.Q_Integer
   is
   begin
      return
        Q_Abstract_Item_Model_Director'Class (Self.all).Row_Count
         (Qt4.Model_Indices.Internals.Create_Wrapper (Qt4.Model_Indices.Internals.QModelIndex_Access (Parent)));
   end rowCount_0_dispatch;

   ---------------------
   -- span_0_dispatch --
   ---------------------

   function span_0_dispatch
    (Self : not null Qt_Ada.Internals.Objects.Q_Object_Base_Access;
     Index : not null access Qt4.Model_Indices.Internals.QModelIndex)
       return not null access Qt4.Sizes.Internals.QSize
   is
   begin
      return
        Qt4.Sizes.Thin.copy_QSize
         (Qt4.Sizes.Internals.QSize_View
           (Q_Abstract_Item_Model_Director'Class (Self.all).Span
             (Qt4.Model_Indices.Internals.Create_Wrapper (Qt4.Model_Indices.Internals.QModelIndex_Access (Index)))));
   end span_0_dispatch;

   ----------
   -- Span --
   ----------

   overriding
   function Span
    (Self : not null access constant Q_Abstract_Item_Model_Director;
     Index : Qt4.Model_Indices.Q_Model_Index)
       return Qt4.Sizes.Q_Size
   is
      Returns : Qt4.Sizes.Q_Size;

   begin
      span_0_wrapper
       (Q_Abstract_Item_Model_Director'Class (Self.all).QObject_View,
        Qt4.Model_Indices.Internals.QModelIndex_View (Index),
        Qt4.Sizes.Internals.QSize_View (Returns));

      return Returns;
   end Span;

   -----------------------
   -- revert_0_dispatch --
   -----------------------

   procedure revert_0_dispatch
    (Self : not null Qt_Ada.Internals.Objects.Q_Object_Base_Access)
   is
   begin
      Q_Abstract_Item_Model_Director'Class (Self.all).Revert;
   end revert_0_dispatch;

   ------------
   -- Revert --
   ------------

   overriding
   procedure Revert
    (Self : not null access Q_Abstract_Item_Model_Director)
   is
   begin
      revert_0_wrapper
       (Q_Abstract_Item_Model_Director'Class (Self.all).QObject_View);
   end Revert;

   -----------------------
   -- submit_0_dispatch --
   -----------------------

   function submit_0_dispatch
    (Self : not null Qt_Ada.Internals.Objects.Q_Object_Base_Access)
       return Qt4.bool
   is
   begin
      return
        Qt4.To_bool
         (Q_Abstract_Item_Model_Director'Class (Self.all).Submit);
   end submit_0_dispatch;

   ------------
   -- Submit --
   ------------

   overriding
   function Submit
    (Self : not null access Q_Abstract_Item_Model_Director)
       return Standard.Boolean
   is
   begin
      return
        Qt4.To_Boolean
         (submit_0_wrapper
           (Q_Abstract_Item_Model_Director'Class (Self.all).QObject_View));
   end Submit;

   -----------------------
   -- Emit_Data_Changed --
   -----------------------

   not overriding
   procedure Emit_Data_Changed
    (Self : not null access Q_Abstract_Item_Model_Director;
     Top_Left : Qt4.Model_Indices.Q_Model_Index;
     Bottom_Right : Qt4.Model_Indices.Q_Model_Index)
   is
   begin
      dataChanged_0_wrapper
       (Q_Abstract_Item_Model_Director'Class (Self.all).QObject_View,
        Qt4.Model_Indices.Internals.QModelIndex_View (Top_Left),
        Qt4.Model_Indices.Internals.QModelIndex_View (Bottom_Right));
   end Emit_Data_Changed;

   ------------------------------
   -- Emit_Header_Data_Changed --
   ------------------------------

   not overriding
   procedure Emit_Header_Data_Changed
    (Self : not null access Q_Abstract_Item_Model_Director;
     Orientation : Qt4.Orientation;
     First : Qt4.Q_Integer;
     Last : Qt4.Q_Integer)
   is
   begin
      headerDataChanged_0_wrapper
       (Q_Abstract_Item_Model_Director'Class (Self.all).QObject_View,
        Orientation,
        First,
        Last);
   end Emit_Header_Data_Changed;

   -------------------------------------
   -- Emit_Layout_About_To_Be_Changed --
   -------------------------------------

   not overriding
   procedure Emit_Layout_About_To_Be_Changed
    (Self : not null access Q_Abstract_Item_Model_Director)
   is
   begin
      layoutAboutToBeChanged_0_wrapper
       (Q_Abstract_Item_Model_Director'Class (Self.all).QObject_View);
   end Emit_Layout_About_To_Be_Changed;

   -------------------------
   -- Emit_Layout_Changed --
   -------------------------

   not overriding
   procedure Emit_Layout_Changed
    (Self : not null access Q_Abstract_Item_Model_Director)
   is
   begin
      layoutChanged_0_wrapper
       (Q_Abstract_Item_Model_Director'Class (Self.all).QObject_View);
   end Emit_Layout_Changed;

   --------------------------
   -- Begin_Insert_Columns --
   --------------------------

   not overriding
   procedure Begin_Insert_Columns
    (Self : not null access Q_Abstract_Item_Model_Director;
     Parent : Qt4.Model_Indices.Q_Model_Index;
     First : Qt4.Q_Integer;
     Last : Qt4.Q_Integer)
   is
   begin
      beginInsertColumns_0_wrapper
       (Q_Abstract_Item_Model_Director'Class (Self.all).QObject_View,
        Qt4.Model_Indices.Internals.QModelIndex_View (Parent),
        First,
        Last);
   end Begin_Insert_Columns;

   -----------------------
   -- Begin_Insert_Rows --
   -----------------------

   not overriding
   procedure Begin_Insert_Rows
    (Self : not null access Q_Abstract_Item_Model_Director;
     Parent : Qt4.Model_Indices.Q_Model_Index;
     First : Qt4.Q_Integer;
     Last : Qt4.Q_Integer)
   is
   begin
      beginInsertRows_0_wrapper
       (Q_Abstract_Item_Model_Director'Class (Self.all).QObject_View,
        Qt4.Model_Indices.Internals.QModelIndex_View (Parent),
        First,
        Last);
   end Begin_Insert_Rows;

   ------------------------
   -- Begin_Move_Columns --
   ------------------------

   not overriding
   function Begin_Move_Columns
    (Self : not null access Q_Abstract_Item_Model_Director;
     Source_Parent : Qt4.Model_Indices.Q_Model_Index;
     Source_First : Qt4.Q_Integer;
     Source_Last : Qt4.Q_Integer;
     Destination_Parent : Qt4.Model_Indices.Q_Model_Index;
     Destination_Child : Qt4.Q_Integer)
       return Standard.Boolean
   is
   begin
      return
        Qt4.To_Boolean
         (beginMoveColumns_0_wrapper
           (Q_Abstract_Item_Model_Director'Class (Self.all).QObject_View,
            Qt4.Model_Indices.Internals.QModelIndex_View (Source_Parent),
            Source_First,
            Source_Last,
            Qt4.Model_Indices.Internals.QModelIndex_View (Destination_Parent),
            Destination_Child));
   end Begin_Move_Columns;

   ---------------------
   -- Begin_Move_Rows --
   ---------------------

   not overriding
   function Begin_Move_Rows
    (Self : not null access Q_Abstract_Item_Model_Director;
     Source_Parent : Qt4.Model_Indices.Q_Model_Index;
     Source_First : Qt4.Q_Integer;
     Source_Last : Qt4.Q_Integer;
     Destination_Parent : Qt4.Model_Indices.Q_Model_Index;
     Destination_Child : Qt4.Q_Integer)
       return Standard.Boolean
   is
   begin
      return
        Qt4.To_Boolean
         (beginMoveRows_0_wrapper
           (Q_Abstract_Item_Model_Director'Class (Self.all).QObject_View,
            Qt4.Model_Indices.Internals.QModelIndex_View (Source_Parent),
            Source_First,
            Source_Last,
            Qt4.Model_Indices.Internals.QModelIndex_View (Destination_Parent),
            Destination_Child));
   end Begin_Move_Rows;

   --------------------------
   -- Begin_Remove_Columns --
   --------------------------

   not overriding
   procedure Begin_Remove_Columns
    (Self : not null access Q_Abstract_Item_Model_Director;
     Parent : Qt4.Model_Indices.Q_Model_Index;
     First : Qt4.Q_Integer;
     Last : Qt4.Q_Integer)
   is
   begin
      beginRemoveColumns_0_wrapper
       (Q_Abstract_Item_Model_Director'Class (Self.all).QObject_View,
        Qt4.Model_Indices.Internals.QModelIndex_View (Parent),
        First,
        Last);
   end Begin_Remove_Columns;

   -----------------------
   -- Begin_Remove_Rows --
   -----------------------

   not overriding
   procedure Begin_Remove_Rows
    (Self : not null access Q_Abstract_Item_Model_Director;
     Parent : Qt4.Model_Indices.Q_Model_Index;
     First : Qt4.Q_Integer;
     Last : Qt4.Q_Integer)
   is
   begin
      beginRemoveRows_0_wrapper
       (Q_Abstract_Item_Model_Director'Class (Self.all).QObject_View,
        Qt4.Model_Indices.Internals.QModelIndex_View (Parent),
        First,
        Last);
   end Begin_Remove_Rows;

   -----------------------
   -- Begin_Reset_Model --
   -----------------------

   not overriding
   procedure Begin_Reset_Model
    (Self : not null access Q_Abstract_Item_Model_Director)
   is
   begin
      beginResetModel_0_wrapper
       (Q_Abstract_Item_Model_Director'Class (Self.all).QObject_View);
   end Begin_Reset_Model;

   -----------------------------
   -- Change_Persistent_Index --
   -----------------------------

   not overriding
   procedure Change_Persistent_Index
    (Self : not null access Q_Abstract_Item_Model_Director;
     From : Qt4.Model_Indices.Q_Model_Index;
     To : Qt4.Model_Indices.Q_Model_Index)
   is
   begin
      changePersistentIndex_0_wrapper
       (Q_Abstract_Item_Model_Director'Class (Self.all).QObject_View,
        Qt4.Model_Indices.Internals.QModelIndex_View (From),
        Qt4.Model_Indices.Internals.QModelIndex_View (To));
   end Change_Persistent_Index;

   ------------------------
   -- End_Insert_Columns --
   ------------------------

   not overriding
   procedure End_Insert_Columns
    (Self : not null access Q_Abstract_Item_Model_Director)
   is
   begin
      endInsertColumns_0_wrapper
       (Q_Abstract_Item_Model_Director'Class (Self.all).QObject_View);
   end End_Insert_Columns;

   ---------------------
   -- End_Insert_Rows --
   ---------------------

   not overriding
   procedure End_Insert_Rows
    (Self : not null access Q_Abstract_Item_Model_Director)
   is
   begin
      endInsertRows_0_wrapper
       (Q_Abstract_Item_Model_Director'Class (Self.all).QObject_View);
   end End_Insert_Rows;

   ----------------------
   -- End_Move_Columns --
   ----------------------

   not overriding
   procedure End_Move_Columns
    (Self : not null access Q_Abstract_Item_Model_Director)
   is
   begin
      endMoveColumns_0_wrapper
       (Q_Abstract_Item_Model_Director'Class (Self.all).QObject_View);
   end End_Move_Columns;

   -------------------
   -- End_Move_Rows --
   -------------------

   not overriding
   procedure End_Move_Rows
    (Self : not null access Q_Abstract_Item_Model_Director)
   is
   begin
      endMoveRows_0_wrapper
       (Q_Abstract_Item_Model_Director'Class (Self.all).QObject_View);
   end End_Move_Rows;

   ------------------------
   -- End_Remove_Columns --
   ------------------------

   not overriding
   procedure End_Remove_Columns
    (Self : not null access Q_Abstract_Item_Model_Director)
   is
   begin
      endRemoveColumns_0_wrapper
       (Q_Abstract_Item_Model_Director'Class (Self.all).QObject_View);
   end End_Remove_Columns;

   ---------------------
   -- End_Remove_Rows --
   ---------------------

   not overriding
   procedure End_Remove_Rows
    (Self : not null access Q_Abstract_Item_Model_Director)
   is
   begin
      endRemoveRows_0_wrapper
       (Q_Abstract_Item_Model_Director'Class (Self.all).QObject_View);
   end End_Remove_Rows;

   ---------------------
   -- End_Reset_Model --
   ---------------------

   not overriding
   procedure End_Reset_Model
    (Self : not null access Q_Abstract_Item_Model_Director)
   is
   begin
      endResetModel_0_wrapper
       (Q_Abstract_Item_Model_Director'Class (Self.all).QObject_View);
   end End_Reset_Model;

   -----------
   -- Reset --
   -----------

   not overriding
   procedure Reset
    (Self : not null access Q_Abstract_Item_Model_Director)
   is
   begin
      reset_0_wrapper
       (Q_Abstract_Item_Model_Director'Class (Self.all).QObject_View);
   end Reset;

   -----------------
   -- Child_Event --
   -----------------

   overriding
   procedure Child_Event
    (Self : not null access Q_Abstract_Item_Model_Director;
     Event : not null access Qt4.Child_Events.Q_Child_Event'Class)
   is
   begin
      childEvent_0_wrapper
       (Q_Abstract_Item_Model_Director'Class (Self.all).QObject_View,
        Event.QEvent_View);
   end Child_Event;

   ------------------
   -- Custom_Event --
   ------------------

   overriding
   procedure Custom_Event
    (Self : not null access Q_Abstract_Item_Model_Director;
     Event : not null access Qt4.Events.Q_Event'Class)
   is
   begin
      customEvent_0_wrapper
       (Q_Abstract_Item_Model_Director'Class (Self.all).QObject_View,
        Event.QEvent_View);
   end Custom_Event;

   -----------------
   -- Timer_Event --
   -----------------

   overriding
   procedure Timer_Event
    (Self : not null access Q_Abstract_Item_Model_Director;
     Event : not null access Qt4.Timer_Events.Q_Timer_Event'Class)
   is
   begin
      timerEvent_0_wrapper
       (Q_Abstract_Item_Model_Director'Class (Self.all).QObject_View,
        Event.QEvent_View);
   end Timer_Event;

   ------------
   -- Sender --
   ------------

   overriding
   function Sender
    (Self : not null access constant Q_Abstract_Item_Model_Director)
       return access Qt4.Objects.Q_Object'Class
   is
   begin
      return
        Qt_Ada.Internals.Objects.Object_Utilities.Corresponding_Q_Object
         (sender_0_wrapper
           (Q_Abstract_Item_Model_Director'Class (Self.all).QObject_View));
   end Sender;

begin
   Qt_Ada.Internals.Object_Registry.Register_Director
    ("QAbstractItemModel", qt_metacast_wrapper'Access, qt_metacall_wrapper'Access);

end Qt4.Abstract_Item_Models.Directors;
