------------------------------------------------------------------------------
--                                                                          --
--                An Ada2005 binding to the Qt C++ framework                --
--                                                                          --
------------------------------------------------------------------------------
--                                                                          --
-- Copyright © 2008-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.Abstract_Item_Delegates;
with Qt4.Abstract_Item_Models;
with Qt4.Widgets;
with Qt_Ada.Internals.Object_Registry;
with Qt_Ada.Internals.Objects;
with Qt_Ada.Internals.Objects.Abstract_Item_Delegate_Utilities;
with Qt_Ada.Internals.Objects.Item_Selection_Model_Utilities;

with Qt_Ada.Internals.Objects.Abstract_Item_View_Proxies;
pragma Warnings (Off, Qt_Ada.Internals.Objects.Abstract_Item_View_Proxies);
--  Elaboration of the proxy tagged type package register proxy object
--  constructor. Bindings must be able to create proxy object of the
--  corresponding tagged type for works properly.

package body Qt4.Abstract_Item_Views is

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

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

   procedure currentIndex_0_wrapper
    (Self : not null access Qt_Ada.Internals.Objects.QObject;
     Returns : not null access Qt4.Model_Indices.Internals.QModelIndex);
   pragma Import (C, currentIndex_0_wrapper,
                     "__Qt4Ada_QAbstractItemView_currentIndex_0_wrapper");

   function dragDropMode_0_wrapper
    (Self : not null access Qt_Ada.Internals.Objects.QObject)
       return Qt4.Abstract_Item_Views.Abstract_Item_View_Drag_Drop_Mode;
   pragma Import (C, dragDropMode_0_wrapper,
                     "__Qt4Ada_QAbstractItemView_dragDropMode_0_wrapper");

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

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

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

   function horizontalScrollMode_0_wrapper
    (Self : not null access Qt_Ada.Internals.Objects.QObject)
       return Qt4.Abstract_Item_Views.Abstract_Item_View_Scroll_Mode;
   pragma Import (C, horizontalScrollMode_0_wrapper,
                     "__Qt4Ada_QAbstractItemView_horizontalScrollMode_0_wrapper");

   procedure iconSize_0_wrapper
    (Self : not null access Qt_Ada.Internals.Objects.QObject;
     Returns : not null access Qt4.Sizes.Internals.QSize);
   pragma Import (C, iconSize_0_wrapper,
                     "__Qt4Ada_QAbstractItemView_iconSize_0_wrapper");

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

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

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

   function itemDelegateForColumn_0_wrapper
    (Self : not null access Qt_Ada.Internals.Objects.QObject;
     Column : Qt4.Q_Integer)
       return access Qt_Ada.Internals.Objects.QObject;
   pragma Import (C, itemDelegateForColumn_0_wrapper,
                     "__Qt4Ada_QAbstractItemView_itemDelegateForColumn_0_wrapper");

   function itemDelegateForRow_0_wrapper
    (Self : not null access Qt_Ada.Internals.Objects.QObject;
     Row : Qt4.Q_Integer)
       return access Qt_Ada.Internals.Objects.QObject;
   pragma Import (C, itemDelegateForRow_0_wrapper,
                     "__Qt4Ada_QAbstractItemView_itemDelegateForRow_0_wrapper");

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

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

   procedure rootIndex_0_wrapper
    (Self : not null access Qt_Ada.Internals.Objects.QObject;
     Returns : not null access Qt4.Model_Indices.Internals.QModelIndex);
   pragma Import (C, rootIndex_0_wrapper,
                     "__Qt4Ada_QAbstractItemView_rootIndex_0_wrapper");

   function selectionBehavior_0_wrapper
    (Self : not null access Qt_Ada.Internals.Objects.QObject)
       return Qt4.Abstract_Item_Views.Abstract_Item_View_Selection_Behavior;
   pragma Import (C, selectionBehavior_0_wrapper,
                     "__Qt4Ada_QAbstractItemView_selectionBehavior_0_wrapper");

   function selectionMode_0_wrapper
    (Self : not null access Qt_Ada.Internals.Objects.QObject)
       return Qt4.Abstract_Item_Views.Abstract_Item_View_Selection_Mode;
   pragma Import (C, selectionMode_0_wrapper,
                     "__Qt4Ada_QAbstractItemView_selectionMode_0_wrapper");

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

   procedure setAlternatingRowColors_0_wrapper
    (Self : not null access Qt_Ada.Internals.Objects.QObject;
     Enable : Qt4.bool);
   pragma Import (C, setAlternatingRowColors_0_wrapper,
                     "__Qt4Ada_QAbstractItemView_setAlternatingRowColors_0_wrapper");

   procedure setAutoScroll_0_wrapper
    (Self : not null access Qt_Ada.Internals.Objects.QObject;
     Enable : Qt4.bool);
   pragma Import (C, setAutoScroll_0_wrapper,
                     "__Qt4Ada_QAbstractItemView_setAutoScroll_0_wrapper");

   procedure setDragDropMode_0_wrapper
    (Self : not null access Qt_Ada.Internals.Objects.QObject;
     Behavior : Qt4.Abstract_Item_Views.Abstract_Item_View_Drag_Drop_Mode);
   pragma Import (C, setDragDropMode_0_wrapper,
                     "__Qt4Ada_QAbstractItemView_setDragDropMode_0_wrapper");

   procedure setDragDropOverwriteMode_0_wrapper
    (Self : not null access Qt_Ada.Internals.Objects.QObject;
     Overwrite : Qt4.bool);
   pragma Import (C, setDragDropOverwriteMode_0_wrapper,
                     "__Qt4Ada_QAbstractItemView_setDragDropOverwriteMode_0_wrapper");

   procedure setDragEnabled_0_wrapper
    (Self : not null access Qt_Ada.Internals.Objects.QObject;
     Enable : Qt4.bool);
   pragma Import (C, setDragEnabled_0_wrapper,
                     "__Qt4Ada_QAbstractItemView_setDragEnabled_0_wrapper");

   procedure setDropIndicatorShown_0_wrapper
    (Self : not null access Qt_Ada.Internals.Objects.QObject;
     Enable : Qt4.bool);
   pragma Import (C, setDropIndicatorShown_0_wrapper,
                     "__Qt4Ada_QAbstractItemView_setDropIndicatorShown_0_wrapper");

   procedure setHorizontalScrollMode_0_wrapper
    (Self : not null access Qt_Ada.Internals.Objects.QObject;
     Mode : Qt4.Abstract_Item_Views.Abstract_Item_View_Scroll_Mode);
   pragma Import (C, setHorizontalScrollMode_0_wrapper,
                     "__Qt4Ada_QAbstractItemView_setHorizontalScrollMode_0_wrapper");

   procedure setIconSize_0_wrapper
    (Self : not null access Qt_Ada.Internals.Objects.QObject;
     Size : not null access constant Qt4.Sizes.Internals.QSize);
   pragma Import (C, setIconSize_0_wrapper,
                     "__Qt4Ada_QAbstractItemView_setIconSize_0_wrapper");

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

   procedure setItemDelegate_0_wrapper
    (Self : not null access Qt_Ada.Internals.Objects.QObject;
     Delegate : not null access Qt_Ada.Internals.Objects.QObject);
   pragma Import (C, setItemDelegate_0_wrapper,
                     "__Qt4Ada_QAbstractItemView_setItemDelegate_0_wrapper");

   procedure setItemDelegateForColumn_0_wrapper
    (Self : not null access Qt_Ada.Internals.Objects.QObject;
     Column : Qt4.Q_Integer;
     Delegate : not null access Qt_Ada.Internals.Objects.QObject);
   pragma Import (C, setItemDelegateForColumn_0_wrapper,
                     "__Qt4Ada_QAbstractItemView_setItemDelegateForColumn_0_wrapper");

   procedure setItemDelegateForRow_0_wrapper
    (Self : not null access Qt_Ada.Internals.Objects.QObject;
     Row : Qt4.Q_Integer;
     Delegate : not null access Qt_Ada.Internals.Objects.QObject);
   pragma Import (C, setItemDelegateForRow_0_wrapper,
                     "__Qt4Ada_QAbstractItemView_setItemDelegateForRow_0_wrapper");

   procedure setSelectionBehavior_0_wrapper
    (Self : not null access Qt_Ada.Internals.Objects.QObject;
     Behavior : Qt4.Abstract_Item_Views.Abstract_Item_View_Selection_Behavior);
   pragma Import (C, setSelectionBehavior_0_wrapper,
                     "__Qt4Ada_QAbstractItemView_setSelectionBehavior_0_wrapper");

   procedure setSelectionMode_0_wrapper
    (Self : not null access Qt_Ada.Internals.Objects.QObject;
     Mode : Qt4.Abstract_Item_Views.Abstract_Item_View_Selection_Mode);
   pragma Import (C, setSelectionMode_0_wrapper,
                     "__Qt4Ada_QAbstractItemView_setSelectionMode_0_wrapper");

   procedure setTabKeyNavigation_0_wrapper
    (Self : not null access Qt_Ada.Internals.Objects.QObject;
     Enable : Qt4.bool);
   pragma Import (C, setTabKeyNavigation_0_wrapper,
                     "__Qt4Ada_QAbstractItemView_setTabKeyNavigation_0_wrapper");

   procedure setVerticalScrollMode_0_wrapper
    (Self : not null access Qt_Ada.Internals.Objects.QObject;
     Mode : Qt4.Abstract_Item_Views.Abstract_Item_View_Scroll_Mode);
   pragma Import (C, setVerticalScrollMode_0_wrapper,
                     "__Qt4Ada_QAbstractItemView_setVerticalScrollMode_0_wrapper");

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

   procedure sizeHintForIndex_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, sizeHintForIndex_0_wrapper,
                     "__Qt4Ada_QAbstractItemView_sizeHintForIndex_0_wrapper");

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

   function verticalScrollMode_0_wrapper
    (Self : not null access Qt_Ada.Internals.Objects.QObject)
       return Qt4.Abstract_Item_Views.Abstract_Item_View_Scroll_Mode;
   pragma Import (C, verticalScrollMode_0_wrapper,
                     "__Qt4Ada_QAbstractItemView_verticalScrollMode_0_wrapper");

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

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

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

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

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

   pragma Style_Checks ("N");

   ----------------------------
   -- Alternating_Row_Colors --
   ----------------------------

   function Alternating_Row_Colors
    (Self : not null access constant Q_Abstract_Item_View'Class)
       return Standard.Boolean
   is
   begin
      return
        Qt4.To_Boolean
         (alternatingRowColors_0_wrapper
           (Self.QObject_View));
   end Alternating_Row_Colors;

   -----------------------------
   -- Close_Persistent_Editor --
   -----------------------------

   procedure Close_Persistent_Editor
    (Self : not null access Q_Abstract_Item_View'Class;
     Index : Qt4.Model_Indices.Q_Model_Index)
   is
   begin
      closePersistentEditor_0_wrapper
       (Self.QObject_View,
        Qt4.Model_Indices.Internals.QModelIndex_View (Index));
   end Close_Persistent_Editor;

   -------------------
   -- Current_Index --
   -------------------

   function Current_Index
    (Self : not null access constant Q_Abstract_Item_View'Class)
       return Qt4.Model_Indices.Q_Model_Index
   is
      Returns : Qt4.Model_Indices.Q_Model_Index;

   begin
      currentIndex_0_wrapper
       (Self.QObject_View,
        Qt4.Model_Indices.Internals.QModelIndex_View (Returns));

      return Returns;
   end Current_Index;

   --------------------
   -- Drag_Drop_Mode --
   --------------------

   function Drag_Drop_Mode
    (Self : not null access constant Q_Abstract_Item_View'Class)
       return Qt4.Abstract_Item_Views.Abstract_Item_View_Drag_Drop_Mode
   is
   begin
      return
        dragDropMode_0_wrapper
         (Self.QObject_View);
   end Drag_Drop_Mode;

   ------------------------------
   -- Drag_Drop_Overwrite_Mode --
   ------------------------------

   function Drag_Drop_Overwrite_Mode
    (Self : not null access constant Q_Abstract_Item_View'Class)
       return Standard.Boolean
   is
   begin
      return
        Qt4.To_Boolean
         (dragDropOverwriteMode_0_wrapper
           (Self.QObject_View));
   end Drag_Drop_Overwrite_Mode;

   ------------------
   -- Drag_Enabled --
   ------------------

   function Drag_Enabled
    (Self : not null access constant Q_Abstract_Item_View'Class)
       return Standard.Boolean
   is
   begin
      return
        Qt4.To_Boolean
         (dragEnabled_0_wrapper
           (Self.QObject_View));
   end Drag_Enabled;

   ---------------------
   -- Has_Auto_Scroll --
   ---------------------

   function Has_Auto_Scroll
    (Self : not null access constant Q_Abstract_Item_View'Class)
       return Standard.Boolean
   is
   begin
      return
        Qt4.To_Boolean
         (hasAutoScroll_0_wrapper
           (Self.QObject_View));
   end Has_Auto_Scroll;

   ----------------------------
   -- Horizontal_Scroll_Mode --
   ----------------------------

   function Horizontal_Scroll_Mode
    (Self : not null access constant Q_Abstract_Item_View'Class)
       return Qt4.Abstract_Item_Views.Abstract_Item_View_Scroll_Mode
   is
   begin
      return
        horizontalScrollMode_0_wrapper
         (Self.QObject_View);
   end Horizontal_Scroll_Mode;

   ---------------
   -- Icon_Size --
   ---------------

   function Icon_Size
    (Self : not null access constant Q_Abstract_Item_View'Class)
       return Qt4.Sizes.Q_Size
   is
      Returns : Qt4.Sizes.Q_Size;

   begin
      iconSize_0_wrapper
       (Self.QObject_View,
        Qt4.Sizes.Internals.QSize_View (Returns));

      return Returns;
   end Icon_Size;

   ------------------
   -- Index_Widget --
   ------------------

   function Index_Widget
    (Self : not null access constant Q_Abstract_Item_View'Class;
     Index : Qt4.Model_Indices.Q_Model_Index)
       return not null access Qt4.Widgets.Q_Widget'Class
   is
   begin
      return
        Qt4.Widgets.Q_Widget'Class
         (Qt_Ada.Internals.Object_Registry.To_Q_Object
           (indexWidget_0_wrapper
             (Self.QObject_View,
              Qt4.Model_Indices.Internals.QModelIndex_View (Index))).all)'Access;
   end Index_Widget;

   -------------------
   -- Item_Delegate --
   -------------------

   function Item_Delegate
    (Self : not null access constant Q_Abstract_Item_View'Class)
       return not null access Qt4.Abstract_Item_Delegates.Q_Abstract_Item_Delegate'Class
   is
   begin
      return
        Qt4.Abstract_Item_Delegates.Q_Abstract_Item_Delegate'Class
         (Qt_Ada.Internals.Object_Registry.To_Q_Object
           (itemDelegate_1_wrapper
             (Self.QObject_View)).all)'Access;
   end Item_Delegate;

   -------------------
   -- Item_Delegate --
   -------------------

   function Item_Delegate
    (Self : not null access constant Q_Abstract_Item_View'Class;
     Index : Qt4.Model_Indices.Q_Model_Index)
       return not null access Qt4.Abstract_Item_Delegates.Q_Abstract_Item_Delegate'Class
   is
   begin
      return
        Qt4.Abstract_Item_Delegates.Q_Abstract_Item_Delegate'Class
         (Qt_Ada.Internals.Object_Registry.To_Q_Object
           (itemDelegate_0_wrapper
             (Self.QObject_View,
              Qt4.Model_Indices.Internals.QModelIndex_View (Index))).all)'Access;
   end Item_Delegate;

   ------------------------------
   -- Item_Delegate_For_Column --
   ------------------------------

   function Item_Delegate_For_Column
    (Self : not null access constant Q_Abstract_Item_View'Class;
     Column : Qt4.Q_Integer)
       return access Qt4.Abstract_Item_Delegates.Q_Abstract_Item_Delegate'Class
   is
   begin
      return
        Qt_Ada.Internals.Objects.Abstract_Item_Delegate_Utilities.Corresponding_Q_Abstract_Item_Delegate
         (itemDelegateForColumn_0_wrapper
           (Self.QObject_View,
            Column));
   end Item_Delegate_For_Column;

   ---------------------------
   -- Item_Delegate_For_Row --
   ---------------------------

   function Item_Delegate_For_Row
    (Self : not null access constant Q_Abstract_Item_View'Class;
     Row : Qt4.Q_Integer)
       return access Qt4.Abstract_Item_Delegates.Q_Abstract_Item_Delegate'Class
   is
   begin
      return
        Qt_Ada.Internals.Objects.Abstract_Item_Delegate_Utilities.Corresponding_Q_Abstract_Item_Delegate
         (itemDelegateForRow_0_wrapper
           (Self.QObject_View,
            Row));
   end Item_Delegate_For_Row;

   -----------
   -- Model --
   -----------

   function Model
    (Self : not null access constant Q_Abstract_Item_View'Class)
       return not null access Qt4.Abstract_Item_Models.Q_Abstract_Item_Model'Class
   is
   begin
      return
        Qt4.Abstract_Item_Models.Q_Abstract_Item_Model'Class
         (Qt_Ada.Internals.Object_Registry.To_Q_Object
           (model_0_wrapper
             (Self.QObject_View)).all)'Access;
   end Model;

   ----------------------------
   -- Open_Persistent_Editor --
   ----------------------------

   procedure Open_Persistent_Editor
    (Self : not null access Q_Abstract_Item_View'Class;
     Index : Qt4.Model_Indices.Q_Model_Index)
   is
   begin
      openPersistentEditor_0_wrapper
       (Self.QObject_View,
        Qt4.Model_Indices.Internals.QModelIndex_View (Index));
   end Open_Persistent_Editor;

   ----------------
   -- Root_Index --
   ----------------

   function Root_Index
    (Self : not null access constant Q_Abstract_Item_View'Class)
       return Qt4.Model_Indices.Q_Model_Index
   is
      Returns : Qt4.Model_Indices.Q_Model_Index;

   begin
      rootIndex_0_wrapper
       (Self.QObject_View,
        Qt4.Model_Indices.Internals.QModelIndex_View (Returns));

      return Returns;
   end Root_Index;

   ------------------------
   -- Selection_Behavior --
   ------------------------

   function Selection_Behavior
    (Self : not null access constant Q_Abstract_Item_View'Class)
       return Qt4.Abstract_Item_Views.Abstract_Item_View_Selection_Behavior
   is
   begin
      return
        selectionBehavior_0_wrapper
         (Self.QObject_View);
   end Selection_Behavior;

   --------------------
   -- Selection_Mode --
   --------------------

   function Selection_Mode
    (Self : not null access constant Q_Abstract_Item_View'Class)
       return Qt4.Abstract_Item_Views.Abstract_Item_View_Selection_Mode
   is
   begin
      return
        selectionMode_0_wrapper
         (Self.QObject_View);
   end Selection_Mode;

   ---------------------
   -- Selection_Model --
   ---------------------

   function Selection_Model
    (Self : not null access constant Q_Abstract_Item_View'Class)
       return access Qt4.Item_Selection_Models.Q_Item_Selection_Model'Class
   is
   begin
      return
        Qt_Ada.Internals.Objects.Item_Selection_Model_Utilities.Corresponding_Q_Item_Selection_Model
         (selectionModel_0_wrapper
           (Self.QObject_View));
   end Selection_Model;

   --------------------------------
   -- Set_Alternating_Row_Colors --
   --------------------------------

   procedure Set_Alternating_Row_Colors
    (Self : not null access Q_Abstract_Item_View'Class;
     Enable : Standard.Boolean)
   is
   begin
      setAlternatingRowColors_0_wrapper
       (Self.QObject_View,
        Qt4.To_bool (Enable));
   end Set_Alternating_Row_Colors;

   ---------------------
   -- Set_Auto_Scroll --
   ---------------------

   procedure Set_Auto_Scroll
    (Self : not null access Q_Abstract_Item_View'Class;
     Enable : Standard.Boolean)
   is
   begin
      setAutoScroll_0_wrapper
       (Self.QObject_View,
        Qt4.To_bool (Enable));
   end Set_Auto_Scroll;

   ------------------------
   -- Set_Drag_Drop_Mode --
   ------------------------

   procedure Set_Drag_Drop_Mode
    (Self : not null access Q_Abstract_Item_View'Class;
     Behavior : Qt4.Abstract_Item_Views.Abstract_Item_View_Drag_Drop_Mode)
   is
   begin
      setDragDropMode_0_wrapper
       (Self.QObject_View,
        Behavior);
   end Set_Drag_Drop_Mode;

   ----------------------------------
   -- Set_Drag_Drop_Overwrite_Mode --
   ----------------------------------

   procedure Set_Drag_Drop_Overwrite_Mode
    (Self : not null access Q_Abstract_Item_View'Class;
     Overwrite : Standard.Boolean)
   is
   begin
      setDragDropOverwriteMode_0_wrapper
       (Self.QObject_View,
        Qt4.To_bool (Overwrite));
   end Set_Drag_Drop_Overwrite_Mode;

   ----------------------
   -- Set_Drag_Enabled --
   ----------------------

   procedure Set_Drag_Enabled
    (Self : not null access Q_Abstract_Item_View'Class;
     Enable : Standard.Boolean)
   is
   begin
      setDragEnabled_0_wrapper
       (Self.QObject_View,
        Qt4.To_bool (Enable));
   end Set_Drag_Enabled;

   ------------------------------
   -- Set_Drop_Indicator_Shown --
   ------------------------------

   procedure Set_Drop_Indicator_Shown
    (Self : not null access Q_Abstract_Item_View'Class;
     Enable : Standard.Boolean)
   is
   begin
      setDropIndicatorShown_0_wrapper
       (Self.QObject_View,
        Qt4.To_bool (Enable));
   end Set_Drop_Indicator_Shown;

   --------------------------------
   -- Set_Horizontal_Scroll_Mode --
   --------------------------------

   procedure Set_Horizontal_Scroll_Mode
    (Self : not null access Q_Abstract_Item_View'Class;
     Mode : Qt4.Abstract_Item_Views.Abstract_Item_View_Scroll_Mode)
   is
   begin
      setHorizontalScrollMode_0_wrapper
       (Self.QObject_View,
        Mode);
   end Set_Horizontal_Scroll_Mode;

   -------------------
   -- Set_Icon_Size --
   -------------------

   procedure Set_Icon_Size
    (Self : not null access Q_Abstract_Item_View'Class;
     Size : Qt4.Sizes.Q_Size)
   is
   begin
      setIconSize_0_wrapper
       (Self.QObject_View,
        Qt4.Sizes.Internals.QSize_View (Size));
   end Set_Icon_Size;

   ----------------------
   -- Set_Index_Widget --
   ----------------------

   procedure Set_Index_Widget
    (Self : not null access Q_Abstract_Item_View'Class;
     Index : Qt4.Model_Indices.Q_Model_Index;
     Widget : not null access Qt4.Widgets.Q_Widget'Class)
   is
   begin
      setIndexWidget_0_wrapper
       (Self.QObject_View,
        Qt4.Model_Indices.Internals.QModelIndex_View (Index),
        Widget.QObject_View);
   end Set_Index_Widget;

   -----------------------
   -- Set_Item_Delegate --
   -----------------------

   procedure Set_Item_Delegate
    (Self : not null access Q_Abstract_Item_View'Class;
     Delegate : not null access Qt4.Abstract_Item_Delegates.Q_Abstract_Item_Delegate'Class)
   is
   begin
      setItemDelegate_0_wrapper
       (Self.QObject_View,
        Delegate.QObject_View);
   end Set_Item_Delegate;

   ----------------------------------
   -- Set_Item_Delegate_For_Column --
   ----------------------------------

   procedure Set_Item_Delegate_For_Column
    (Self : not null access Q_Abstract_Item_View'Class;
     Column : Qt4.Q_Integer;
     Delegate : not null access Qt4.Abstract_Item_Delegates.Q_Abstract_Item_Delegate'Class)
   is
   begin
      setItemDelegateForColumn_0_wrapper
       (Self.QObject_View,
        Column,
        Delegate.QObject_View);
   end Set_Item_Delegate_For_Column;

   -------------------------------
   -- Set_Item_Delegate_For_Row --
   -------------------------------

   procedure Set_Item_Delegate_For_Row
    (Self : not null access Q_Abstract_Item_View'Class;
     Row : Qt4.Q_Integer;
     Delegate : not null access Qt4.Abstract_Item_Delegates.Q_Abstract_Item_Delegate'Class)
   is
   begin
      setItemDelegateForRow_0_wrapper
       (Self.QObject_View,
        Row,
        Delegate.QObject_View);
   end Set_Item_Delegate_For_Row;

   ----------------------------
   -- Set_Selection_Behavior --
   ----------------------------

   procedure Set_Selection_Behavior
    (Self : not null access Q_Abstract_Item_View'Class;
     Behavior : Qt4.Abstract_Item_Views.Abstract_Item_View_Selection_Behavior)
   is
   begin
      setSelectionBehavior_0_wrapper
       (Self.QObject_View,
        Behavior);
   end Set_Selection_Behavior;

   ------------------------
   -- Set_Selection_Mode --
   ------------------------

   procedure Set_Selection_Mode
    (Self : not null access Q_Abstract_Item_View'Class;
     Mode : Qt4.Abstract_Item_Views.Abstract_Item_View_Selection_Mode)
   is
   begin
      setSelectionMode_0_wrapper
       (Self.QObject_View,
        Mode);
   end Set_Selection_Mode;

   ----------------------------
   -- Set_Tab_Key_Navigation --
   ----------------------------

   procedure Set_Tab_Key_Navigation
    (Self : not null access Q_Abstract_Item_View'Class;
     Enable : Standard.Boolean)
   is
   begin
      setTabKeyNavigation_0_wrapper
       (Self.QObject_View,
        Qt4.To_bool (Enable));
   end Set_Tab_Key_Navigation;

   ------------------------------
   -- Set_Vertical_Scroll_Mode --
   ------------------------------

   procedure Set_Vertical_Scroll_Mode
    (Self : not null access Q_Abstract_Item_View'Class;
     Mode : Qt4.Abstract_Item_Views.Abstract_Item_View_Scroll_Mode)
   is
   begin
      setVerticalScrollMode_0_wrapper
       (Self.QObject_View,
        Mode);
   end Set_Vertical_Scroll_Mode;

   -------------------------
   -- Show_Drop_Indicator --
   -------------------------

   function Show_Drop_Indicator
    (Self : not null access constant Q_Abstract_Item_View'Class)
       return Standard.Boolean
   is
   begin
      return
        Qt4.To_Boolean
         (showDropIndicator_0_wrapper
           (Self.QObject_View));
   end Show_Drop_Indicator;

   -------------------------
   -- Size_Hint_For_Index --
   -------------------------

   function Size_Hint_For_Index
    (Self : not null access constant Q_Abstract_Item_View'Class;
     Index : Qt4.Model_Indices.Q_Model_Index)
       return Qt4.Sizes.Q_Size
   is
      Returns : Qt4.Sizes.Q_Size;

   begin
      sizeHintForIndex_0_wrapper
       (Self.QObject_View,
        Qt4.Model_Indices.Internals.QModelIndex_View (Index),
        Qt4.Sizes.Internals.QSize_View (Returns));

      return Returns;
   end Size_Hint_For_Index;

   ------------------------
   -- Tab_Key_Navigation --
   ------------------------

   function Tab_Key_Navigation
    (Self : not null access constant Q_Abstract_Item_View'Class)
       return Standard.Boolean
   is
   begin
      return
        Qt4.To_Boolean
         (tabKeyNavigation_0_wrapper
           (Self.QObject_View));
   end Tab_Key_Navigation;

   --------------------------
   -- Vertical_Scroll_Mode --
   --------------------------

   function Vertical_Scroll_Mode
    (Self : not null access constant Q_Abstract_Item_View'Class)
       return Qt4.Abstract_Item_Views.Abstract_Item_View_Scroll_Mode
   is
   begin
      return
        verticalScrollMode_0_wrapper
         (Self.QObject_View);
   end Vertical_Scroll_Mode;

   ---------------------
   -- Clear_Selection --
   ---------------------

   procedure Clear_Selection
    (Self : not null access Q_Abstract_Item_View'Class)
   is
   begin
      clearSelection_0_wrapper
       (Self.QObject_View);
   end Clear_Selection;

   ----------
   -- Edit --
   ----------

   procedure Edit
    (Self : not null access Q_Abstract_Item_View'Class;
     Index : Qt4.Model_Indices.Q_Model_Index)
   is
   begin
      edit_0_wrapper
       (Self.QObject_View,
        Qt4.Model_Indices.Internals.QModelIndex_View (Index));
   end Edit;

   ----------------------
   -- Scroll_To_Bottom --
   ----------------------

   procedure Scroll_To_Bottom
    (Self : not null access Q_Abstract_Item_View'Class)
   is
   begin
      scrollToBottom_0_wrapper
       (Self.QObject_View);
   end Scroll_To_Bottom;

   -------------------
   -- Scroll_To_Top --
   -------------------

   procedure Scroll_To_Top
    (Self : not null access Q_Abstract_Item_View'Class)
   is
   begin
      scrollToTop_0_wrapper
       (Self.QObject_View);
   end Scroll_To_Top;

   -----------------------
   -- Set_Current_Index --
   -----------------------

   procedure Set_Current_Index
    (Self : not null access Q_Abstract_Item_View'Class;
     Index : Qt4.Model_Indices.Q_Model_Index)
   is
   begin
      setCurrentIndex_0_wrapper
       (Self.QObject_View,
        Qt4.Model_Indices.Internals.QModelIndex_View (Index));
   end Set_Current_Index;

end Qt4.Abstract_Item_Views;
