package Gtk_Assistant_Page_Type_Properties is new Generic_Internal_Discrete_Property (Gtk_Assistant_Page_Type);
package Implements_Gtk_Buildable is new Glib.Types.Implements (Gtk.Buildable.Gtk_Buildable, Gtk_Assistant_Record, Gtk_Assistant);
type Gtk_Assistant_Record is new Gtk_Window_Record with null record;
type Gtk_Assistant is access all Gtk_Assistant_Record'Class;
type Gtk_Assistant_Page_Type is ( Gtk_Assistant_Page_Content, Gtk_Assistant_Page_Intro, Gtk_Assistant_Page_Confirm, Gtk_Assistant_Page_Summary, Gtk_Assistant_Page_Progress, Gtk_Assistant_Page_Custom);
type Property_Gtk_Assistant_Page_Type is new Gtk_Assistant_Page_Type_Properties.Property;
type Cb_Gtk_Assistant_Void is not null access procedure (Self : access Gtk_Assistant_Record'Class);
type Cb_GObject_Void is not null access procedure (Self : access Glib.Object.GObject_Record'Class);
type Cb_Gtk_Assistant_Gtk_Widget_Void is not null access procedure (Self : access Gtk_Assistant_Record'Class; Page : not null access Gtk.Widget.Gtk_Widget_Record'Class);
type Cb_GObject_Gtk_Widget_Void is not null access procedure (Self : access Glib.Object.GObject_Record'Class; Page : not null access Gtk.Widget.Gtk_Widget_Record'Class);
Signal_Apply : constant Glib.Signal_Name := "apply";
Signal_Cancel : constant Glib.Signal_Name := "cancel";
Signal_Close : constant Glib.Signal_Name := "close";
Signal_Prepare : constant Glib.Signal_Name := "prepare";
procedure Gtk_New
( | Assistant | : out Gtk_Assistant); |
procedure Initialize
( | Assistant | : not null access Gtk_Assistant_Record'Class); |
function Gtk_Assistant_New return Gtk_Assistant;
function Get_Type return Glib.GType;
procedure Add_Action_Widget
( | Assistant | : not null access Gtk_Assistant_Record; |
Child | : not null access Gtk.Widget.Gtk_Widget_Record'Class); |
function Append_Page
( | Assistant | : not null access Gtk_Assistant_Record; |
Page | : not null access Gtk.Widget.Gtk_Widget_Record'Class) return Gint; |
procedure Commit
( | Assistant | : not null access Gtk_Assistant_Record); |
function Get_Current_Page
( | Assistant | : not null access Gtk_Assistant_Record) return Gint; |
procedure Set_Current_Page
( | Assistant | : not null access Gtk_Assistant_Record; |
Page_Num | : Gint); |
function Get_N_Pages
( | Assistant | : not null access Gtk_Assistant_Record) return Gint; |
function Get_Nth_Page
( | Assistant | : not null access Gtk_Assistant_Record; |
Page_Num | : Gint) return Gtk.Widget.Gtk_Widget; |
function Get_Page_Complete
( | Assistant | : not null access Gtk_Assistant_Record; |
Page | : not null access Gtk.Widget.Gtk_Widget_Record'Class) return Boolean; |
procedure Set_Page_Complete
( | Assistant | : not null access Gtk_Assistant_Record; |
Page | : not null access Gtk.Widget.Gtk_Widget_Record'Class; | |
Complete | : Boolean); |
function Get_Page_Header_Image
( | Assistant | : not null access Gtk_Assistant_Record; |
Page | : not null access Gtk.Widget.Gtk_Widget_Record'Class) return Gdk.Pixbuf.Gdk_Pixbuf; |
procedure Set_Page_Header_Image
( | Assistant | : not null access Gtk_Assistant_Record; |
Page | : not null access Gtk.Widget.Gtk_Widget_Record'Class; | |
Pixbuf | : access Gdk.Pixbuf.Gdk_Pixbuf_Record'Class); |
function Get_Page_Side_Image
( | Assistant | : not null access Gtk_Assistant_Record; |
Page | : not null access Gtk.Widget.Gtk_Widget_Record'Class) return Gdk.Pixbuf.Gdk_Pixbuf; |
procedure Set_Page_Side_Image
( | Assistant | : not null access Gtk_Assistant_Record; |
Page | : not null access Gtk.Widget.Gtk_Widget_Record'Class; | |
Pixbuf | : access Gdk.Pixbuf.Gdk_Pixbuf_Record'Class); |
function Get_Page_Title
( | Assistant | : not null access Gtk_Assistant_Record; |
Page | : not null access Gtk.Widget.Gtk_Widget_Record'Class) return UTF8_String; |
procedure Set_Page_Title
( | Assistant | : not null access Gtk_Assistant_Record; |
Page | : not null access Gtk.Widget.Gtk_Widget_Record'Class; | |
Title | : UTF8_String); |
function Get_Page_Type
( | Assistant | : not null access Gtk_Assistant_Record; |
Page | : not null access Gtk.Widget.Gtk_Widget_Record'Class) return Gtk_Assistant_Page_Type; |
procedure Set_Page_Type
( | Assistant | : not null access Gtk_Assistant_Record; |
Page | : not null access Gtk.Widget.Gtk_Widget_Record'Class; | |
The_Type | : Gtk_Assistant_Page_Type); |
function Insert_Page
( | Assistant | : not null access Gtk_Assistant_Record; |
Page | : not null access Gtk.Widget.Gtk_Widget_Record'Class; | |
Position | : Gint) return Gint; |
procedure Next_Page
( | Assistant | : not null access Gtk_Assistant_Record); |
function Prepend_Page
( | Assistant | : not null access Gtk_Assistant_Record; |
Page | : not null access Gtk.Widget.Gtk_Widget_Record'Class) return Gint; |
procedure Previous_Page
( | Assistant | : not null access Gtk_Assistant_Record); |
procedure Remove_Action_Widget
( | Assistant | : not null access Gtk_Assistant_Record; |
Child | : not null access Gtk.Widget.Gtk_Widget_Record'Class); |
procedure Remove_Page
( | Assistant | : not null access Gtk_Assistant_Record; |
Page_Num | : Gint); |
procedure Set_Forward_Page_Func
( | Assistant | : not null access Gtk_Assistant_Record; |
Page_Func | : Gtk_Assistant_Page_Func); |
procedure Update_Buttons_State
( | Assistant | : not null access Gtk_Assistant_Record); |
procedure On_Apply
( | Self | : not null access Gtk_Assistant_Record; |
Call | : Cb_Gtk_Assistant_Void; | |
After | : Boolean := False); |
procedure On_Apply
( | Self | : not null access Gtk_Assistant_Record; |
Call | : Cb_GObject_Void; | |
Slot | : not null access Glib.Object.GObject_Record'Class; | |
After | : Boolean := False); |
procedure On_Cancel
( | Self | : not null access Gtk_Assistant_Record; |
Call | : Cb_Gtk_Assistant_Void; | |
After | : Boolean := False); |
procedure On_Cancel
( | Self | : not null access Gtk_Assistant_Record; |
Call | : Cb_GObject_Void; | |
Slot | : not null access Glib.Object.GObject_Record'Class; | |
After | : Boolean := False); |
procedure On_Close
( | Self | : not null access Gtk_Assistant_Record; |
Call | : Cb_Gtk_Assistant_Void; | |
After | : Boolean := False); |
procedure On_Close
( | Self | : not null access Gtk_Assistant_Record; |
Call | : Cb_GObject_Void; | |
Slot | : not null access Glib.Object.GObject_Record'Class; | |
After | : Boolean := False); |
procedure On_Prepare
( | Self | : not null access Gtk_Assistant_Record; |
Call | : Cb_Gtk_Assistant_Gtk_Widget_Void; | |
After | : Boolean := False); |
procedure On_Prepare
( | Self | : not null access Gtk_Assistant_Record; |
Call | : Cb_GObject_Gtk_Widget_Void; | |
Slot | : not null access Glib.Object.GObject_Record'Class; | |
After | : Boolean := False); |
function "+"
( | Widget | : access Gtk_Assistant_Record'Class) return Gtk.Buildable.Gtk_Buildable renames Implements_Gtk_Buildable.To_Interface; |
function "-"
( | Interf | : Gtk.Buildable.Gtk_Buildable) return Gtk_Assistant renames Implements_Gtk_Buildable.To_Object; |
A Gtk.Assistant.Gtk_Assistant is a widget used to represent a generally complex operation splitted in several steps, guiding the user through its pages and controlling the page flow to collect the necessary data.
The design of GtkAssistant is that it controls what buttons to show and to make sensitive, based on what it knows about the page sequence and the <link linkend="GtkAssistantPageType">type</link> of each page, in addition to state information like the page <link linkend="gtk-assistant-set-page-complete">completion</link> and <link linkend="gtk-assistant-commit">committed</link> status.
If you have a case that doesn't quite fit in Gtk_Assistants way of handling buttons, you can use the GTK_ASSISTANT_PAGE_CUSTOM page type and handle buttons yourself. == GtkAssistant as GtkBuildable == The GtkAssistant implementation of the GtkBuildable interface exposes the Action_Area as internal children with the name "action_area".
To add pages to an assistant in GtkBuilder, simply add it as a <child> to the GtkAssistant object, and set its child properties as necessary.