------------------------------------------------------------------------------
--                                                                          --
--                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.     --
------------------------------------------------------------------------------
limited with Qt4.Abstract_Buttons;
with Qt4.Dialogs;
with Qt4.Pixmaps;
with Qt4.Strings;
with Qt4.Variants;
limited with Qt4.Wizard_Pages;
with Qt_Ada.Generic_Object_Pointers;

package Qt4.Wizards is

   type Wizard_Wizard_Button is
    (No_Button,
     Back_Button,
     Next_Button,
     Commit_Button,
     Finish_Button,
     Cancel_Button,
     Help_Button,
     Custom_Button1,
     Custom_Button2,
     Custom_Button3,
     Stretch);
   pragma Convention (C, Wizard_Wizard_Button);
   for Wizard_Wizard_Button use
    (No_Button =>     -16#1#,
     Back_Button =>      16#0#,
     Next_Button =>      16#1#,
     Commit_Button =>      16#2#,
     Finish_Button =>      16#3#,
     Cancel_Button =>      16#4#,
     Help_Button =>      16#5#,
     Custom_Button1 =>      16#6#,
     Custom_Button2 =>      16#7#,
     Custom_Button3 =>      16#8#,
     Stretch =>      16#9#);

   type Wizard_Wizard_Option is
    (Independent_Pages,
     Ignore_Sub_Titles,
     Extended_Watermark_Pixmap,
     No_Default_Button,
     No_Back_Button_On_Start_Page,
     No_Back_Button_On_Last_Page,
     Disabled_Back_Button_On_Last_Page,
     Have_Next_Button_On_Last_Page,
     Have_Finish_Button_On_Early_Pages,
     No_Cancel_Button,
     Cancel_Button_On_Left,
     Have_Help_Button,
     Help_Button_On_Right,
     Have_Custom_Button1,
     Have_Custom_Button2,
     Have_Custom_Button3);
   pragma Convention (C, Wizard_Wizard_Option);
   for Wizard_Wizard_Option use
    (Independent_Pages =>      16#1#,
     Ignore_Sub_Titles =>      16#2#,
     Extended_Watermark_Pixmap =>      16#4#,
     No_Default_Button =>      16#8#,
     No_Back_Button_On_Start_Page =>     16#10#,
     No_Back_Button_On_Last_Page =>     16#20#,
     Disabled_Back_Button_On_Last_Page =>     16#40#,
     Have_Next_Button_On_Last_Page =>     16#80#,
     Have_Finish_Button_On_Early_Pages =>    16#100#,
     No_Cancel_Button =>    16#200#,
     Cancel_Button_On_Left =>    16#400#,
     Have_Help_Button =>    16#800#,
     Help_Button_On_Right =>   16#1000#,
     Have_Custom_Button1 =>   16#2000#,
     Have_Custom_Button2 =>   16#4000#,
     Have_Custom_Button3 =>   16#8000#);

   type Wizard_Wizard_Pixmap is
    (Watermark_Pixmap,
     Logo_Pixmap,
     Banner_Pixmap,
     Background_Pixmap);
   pragma Convention (C, Wizard_Wizard_Pixmap);

   type Wizard_Wizard_Style is
    (Classic_Style,
     Modern_Style,
     Mac_Style,
     Aero_Style);
   pragma Convention (C, Wizard_Wizard_Style);

   type Q_Wizard is limited interface
     and Qt4.Dialogs.Q_Dialog;

   type Q_Wizard_Access is
     access all Q_Wizard'Class;
   for Q_Wizard_Access'Storage_Size use 0;

   type Q_Wizard_Pointer is tagged;

   function Add_Page
    (Self : not null access Q_Wizard'Class;
     Page : not null access Qt4.Wizard_Pages.Q_Wizard_Page'Class)
       return Qt4.Q_Integer;

   function Button
    (Self : not null access constant Q_Wizard'Class;
     Page : Qt4.Wizards.Wizard_Wizard_Button)
       return not null access Qt4.Abstract_Buttons.Q_Abstract_Button'Class;

   function Button_Text
    (Self : not null access constant Q_Wizard'Class;
     Which : Qt4.Wizards.Wizard_Wizard_Button)
       return Qt4.Strings.Q_String;

   function Current_Id
    (Self : not null access constant Q_Wizard'Class)
       return Qt4.Q_Integer;

   function Current_Page
    (Self : not null access constant Q_Wizard'Class)
       return not null access Qt4.Wizard_Pages.Q_Wizard_Page'Class;

   function Field
    (Self : not null access constant Q_Wizard'Class;
     Name : Qt4.Strings.Q_String)
       return Qt4.Variants.Q_Variant;

   function Has_Visited_Page
    (Self : not null access constant Q_Wizard'Class;
     Id : Qt4.Q_Integer)
       return Standard.Boolean;

   not overriding
   function Next_Id
    (Self : not null access constant Q_Wizard)
       return Qt4.Q_Integer
         is abstract;

   function Page
    (Self : not null access constant Q_Wizard'Class;
     Id : Qt4.Q_Integer)
       return not null access Qt4.Wizard_Pages.Q_Wizard_Page'Class;

   function Pixmap
    (Self : not null access constant Q_Wizard'Class;
     Id : Qt4.Wizards.Wizard_Wizard_Pixmap)
       return Qt4.Pixmaps.Q_Pixmap;

   procedure Set_Button
    (Self : not null access Q_Wizard'Class;
     Which : Qt4.Wizards.Wizard_Wizard_Button;
     Button : not null access Qt4.Abstract_Buttons.Q_Abstract_Button'Class);

   procedure Set_Button_Text
    (Self : not null access Q_Wizard'Class;
     Which : Qt4.Wizards.Wizard_Wizard_Button;
     Text : Qt4.Strings.Q_String);

   procedure Set_Field
    (Self : not null access Q_Wizard'Class;
     Name : Qt4.Strings.Q_String;
     Value : Qt4.Variants.Q_Variant);

   procedure Set_Option
    (Self : not null access Q_Wizard'Class;
     Which : Qt4.Wizards.Wizard_Wizard_Option;
     On : Standard.Boolean
       := True);

   procedure Set_Page
    (Self : not null access Q_Wizard'Class;
     Id : Qt4.Q_Integer;
     Page : not null access Qt4.Wizard_Pages.Q_Wizard_Page'Class);

   procedure Set_Pixmap
    (Self : not null access Q_Wizard'Class;
     Which : Qt4.Wizards.Wizard_Wizard_Pixmap;
     Pixmap : Qt4.Pixmaps.Q_Pixmap);

   procedure Set_Start_Id
    (Self : not null access Q_Wizard'Class;
     Id : Qt4.Q_Integer);

   procedure Set_Sub_Title_Format
    (Self : not null access Q_Wizard'Class;
     Format : Qt4.Text_Format);

   procedure Set_Title_Format
    (Self : not null access Q_Wizard'Class;
     Format : Qt4.Text_Format);

   procedure Set_Wizard_Style
    (Self : not null access Q_Wizard'Class;
     Style : Qt4.Wizards.Wizard_Wizard_Style);

   function Start_Id
    (Self : not null access constant Q_Wizard'Class)
       return Qt4.Q_Integer;

   function Sub_Title_Format
    (Self : not null access constant Q_Wizard'Class)
       return Qt4.Text_Format;

   function Test_Option
    (Self : not null access constant Q_Wizard'Class;
     Option : Qt4.Wizards.Wizard_Wizard_Option)
       return Standard.Boolean;

   function Title_Format
    (Self : not null access constant Q_Wizard'Class)
       return Qt4.Text_Format;

   not overriding
   function Validate_Current_Page
    (Self : not null access Q_Wizard)
       return Standard.Boolean
         is abstract;

   function Wizard_Style
    (Self : not null access constant Q_Wizard'Class)
       return Qt4.Wizards.Wizard_Wizard_Style;

   procedure Back
    (Self : not null access Q_Wizard'Class);

   procedure Next
    (Self : not null access Q_Wizard'Class);

   procedure Restart
    (Self : not null access Q_Wizard'Class);

   package Q_Wizard_Pointers is
     new Qt_Ada.Generic_Object_Pointers (Q_Wizard, Q_Wizard_Access);

   type Q_Wizard_Pointer is
     new Q_Wizard_Pointers.Q_Pointer with null record;

end Qt4.Wizards;
