gi-gtk-4.0.2: Gtk bindings
CopyrightWill Thompson Iñaki García Etxebarria and Jonas Platte
LicenseLGPL-2.1
MaintainerIñaki García Etxebarria
Safe HaskellNone
LanguageHaskell2010

GI.Gtk.Objects.Assistant

Description

A 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 [type][GtkAssistantPageType] of each page, in addition to state information like the page [completion][gtk-assistant-set-page-complete] and [committed][gtk-assistant-commit] status.

If you have a case that doesn’t quite fit in GtkAssistants way of handling buttons, you can use the GTK_ASSISTANT_PAGE_CUSTOM page type and handle buttons yourself.

GtkAssistant maintains a AssistantPage object for each added child, which holds additional per-child properties. You obtain the AssistantPage for a child with assistantGetPage.

GtkAssistant as GtkBuildable

The GtkAssistant implementation of the Buildable interface exposes the actionArea as internal children with the name “action_area”.

To add pages to an assistant in Builder, simply add it as a child to the GtkAssistant object. If you need to set per-object properties, create a AssistantPage object explicitly, and set the child widget as a property on it.

CSS nodes

GtkAssistant has a single CSS node with the name assistant.

Synopsis

Exported types

newtype Assistant Source #

Memory-managed wrapper type.

Instances

Instances details
Eq Assistant Source # 
Instance details

Defined in GI.Gtk.Objects.Assistant

IsGValue Assistant Source #

Convert Assistant to and from GValue with toGValue and fromGValue.

Instance details

Defined in GI.Gtk.Objects.Assistant

ManagedPtrNewtype Assistant Source # 
Instance details

Defined in GI.Gtk.Objects.Assistant

TypedObject Assistant Source # 
Instance details

Defined in GI.Gtk.Objects.Assistant

Methods

glibType :: IO GType #

GObject Assistant Source # 
Instance details

Defined in GI.Gtk.Objects.Assistant

HasParentTypes Assistant Source # 
Instance details

Defined in GI.Gtk.Objects.Assistant

type ParentTypes Assistant Source # 
Instance details

Defined in GI.Gtk.Objects.Assistant

class (GObject o, IsDescendantOf Assistant o) => IsAssistant o Source #

Type class for types which can be safely cast to Assistant, for instance with toAssistant.

Instances

Instances details
(GObject o, IsDescendantOf Assistant o) => IsAssistant o Source # 
Instance details

Defined in GI.Gtk.Objects.Assistant

toAssistant :: (MonadIO m, IsAssistant o) => o -> m Assistant Source #

Cast to Assistant, for types for which this is known to be safe. For general casts, use castTo.

Methods

Overloaded methods

addActionWidget

assistantAddActionWidget Source #

Arguments

:: (HasCallStack, MonadIO m, IsAssistant a, IsWidget b) 
=> a

assistant: a Assistant

-> b

child: a Widget

-> m () 

Adds a widget to the action area of a Assistant.

appendPage

assistantAppendPage Source #

Arguments

:: (HasCallStack, MonadIO m, IsAssistant a, IsWidget b) 
=> a

assistant: a Assistant

-> b

page: a Widget

-> m Int32

Returns: the index (starting at 0) of the inserted page

Appends a page to the assistant.

commit

assistantCommit Source #

Arguments

:: (HasCallStack, MonadIO m, IsAssistant a) 
=> a

assistant: a Assistant

-> m () 

Erases the visited page history so the back button is not shown on the current page, and removes the cancel button from subsequent pages.

Use this when the information provided up to the current page is hereafter deemed permanent and cannot be modified or undone. For example, showing a progress page to track a long-running, unreversible operation after the user has clicked apply on a confirmation page.

getCurrentPage

assistantGetCurrentPage Source #

Arguments

:: (HasCallStack, MonadIO m, IsAssistant a) 
=> a

assistant: a Assistant

-> m Int32

Returns: The index (starting from 0) of the current page in the assistant, or -1 if the assistant has no pages, or no current page.

Returns the page number of the current page.

getNPages

assistantGetNPages Source #

Arguments

:: (HasCallStack, MonadIO m, IsAssistant a) 
=> a

assistant: a Assistant

-> m Int32

Returns: the number of pages in the assistant

Returns the number of pages in the assistant

getNthPage

assistantGetNthPage Source #

Arguments

:: (HasCallStack, MonadIO m, IsAssistant a) 
=> a

assistant: a Assistant

-> Int32

pageNum: the index of a page in the assistant, or -1 to get the last page

-> m (Maybe Widget)

Returns: the child widget, or Nothing if pageNum is out of bounds

Returns the child widget contained in page number pageNum.

getPage

assistantGetPage Source #

Arguments

:: (HasCallStack, MonadIO m, IsAssistant a, IsWidget b) 
=> a

assistant: a Assistant

-> b

child: a child of assistant

-> m AssistantPage

Returns: the AssistantPage for child

Returns the AssistantPage object for child.

getPageComplete

assistantGetPageComplete Source #

Arguments

:: (HasCallStack, MonadIO m, IsAssistant a, IsWidget b) 
=> a

assistant: a Assistant

-> b

page: a page of assistant

-> m Bool

Returns: True if page is complete.

Gets whether page is complete.

getPageTitle

assistantGetPageTitle Source #

Arguments

:: (HasCallStack, MonadIO m, IsAssistant a, IsWidget b) 
=> a

assistant: a Assistant

-> b

page: a page of assistant

-> m Text

Returns: the title for page

Gets the title for page.

getPageType

assistantGetPageType Source #

Arguments

:: (HasCallStack, MonadIO m, IsAssistant a, IsWidget b) 
=> a

assistant: a Assistant

-> b

page: a page of assistant

-> m AssistantPageType

Returns: the page type of page

Gets the page type of page.

getPages

assistantGetPages Source #

Arguments

:: (HasCallStack, MonadIO m, IsAssistant a) 
=> a

assistant: a Assistant

-> m ListModel

Returns: A list model of the pages.

Gets a list model of the assistant pages.

insertPage

assistantInsertPage Source #

Arguments

:: (HasCallStack, MonadIO m, IsAssistant a, IsWidget b) 
=> a

assistant: a Assistant

-> b

page: a Widget

-> Int32

position: the index (starting at 0) at which to insert the page, or -1 to append the page to the assistant

-> m Int32

Returns: the index (starting from 0) of the inserted page

Inserts a page in the assistant at a given position.

new

assistantNew Source #

Arguments

:: (HasCallStack, MonadIO m) 
=> m Assistant

Returns: a newly created Assistant

Creates a new Assistant.

nextPage

assistantNextPage Source #

Arguments

:: (HasCallStack, MonadIO m, IsAssistant a) 
=> a

assistant: a Assistant

-> m () 

Navigate to the next page.

It is a programming error to call this function when there is no next page.

This function is for use when creating pages of the GTK_ASSISTANT_PAGE_CUSTOM type.

prependPage

assistantPrependPage Source #

Arguments

:: (HasCallStack, MonadIO m, IsAssistant a, IsWidget b) 
=> a

assistant: a Assistant

-> b

page: a Widget

-> m Int32

Returns: the index (starting at 0) of the inserted page

Prepends a page to the assistant.

previousPage

assistantPreviousPage Source #

Arguments

:: (HasCallStack, MonadIO m, IsAssistant a) 
=> a

assistant: a Assistant

-> m () 

Navigate to the previous visited page.

It is a programming error to call this function when no previous page is available.

This function is for use when creating pages of the GTK_ASSISTANT_PAGE_CUSTOM type.

removeActionWidget

assistantRemoveActionWidget Source #

Arguments

:: (HasCallStack, MonadIO m, IsAssistant a, IsWidget b) 
=> a

assistant: a Assistant

-> b

child: a Widget

-> m () 

Removes a widget from the action area of a Assistant.

removePage

assistantRemovePage Source #

Arguments

:: (HasCallStack, MonadIO m, IsAssistant a) 
=> a

assistant: a Assistant

-> Int32

pageNum: the index of a page in the assistant, or -1 to remove the last page

-> m () 

Removes the pageNum’s page from assistant.

setCurrentPage

assistantSetCurrentPage Source #

Arguments

:: (HasCallStack, MonadIO m, IsAssistant a) 
=> a

assistant: a Assistant

-> Int32

pageNum: index of the page to switch to, starting from 0. If negative, the last page will be used. If greater than the number of pages in the assistant, nothing will be done.

-> m () 

Switches the page to pageNum.

Note that this will only be necessary in custom buttons, as the assistant flow can be set with assistantSetForwardPageFunc.

setForwardPageFunc

assistantSetForwardPageFunc Source #

Arguments

:: (HasCallStack, MonadIO m, IsAssistant a) 
=> a

assistant: a Assistant

-> Maybe AssistantPageFunc

pageFunc: the AssistantPageFunc, or Nothing to use the default one

-> m () 

Sets the page forwarding function to be pageFunc.

This function will be used to determine what will be the next page when the user presses the forward button. Setting pageFunc to Nothing will make the assistant to use the default forward function, which just goes to the next visible page.

setPageComplete

assistantSetPageComplete Source #

Arguments

:: (HasCallStack, MonadIO m, IsAssistant a, IsWidget b) 
=> a

assistant: a Assistant

-> b

page: a page of assistant

-> Bool

complete: the completeness status of the page

-> m () 

Sets whether page contents are complete.

This will make assistant update the buttons state to be able to continue the task.

setPageTitle

assistantSetPageTitle Source #

Arguments

:: (HasCallStack, MonadIO m, IsAssistant a, IsWidget b) 
=> a

assistant: a Assistant

-> b

page: a page of assistant

-> Text

title: the new title for page

-> m () 

Sets a title for page.

The title is displayed in the header area of the assistant when page is the current page.

setPageType

assistantSetPageType Source #

Arguments

:: (HasCallStack, MonadIO m, IsAssistant a, IsWidget b) 
=> a

assistant: a Assistant

-> b

page: a page of assistant

-> AssistantPageType

type: the new type for page

-> m () 

Sets the page type for page.

The page type determines the page behavior in the assistant.

updateButtonsState

assistantUpdateButtonsState Source #

Arguments

:: (HasCallStack, MonadIO m, IsAssistant a) 
=> a

assistant: a Assistant

-> m () 

Forces assistant to recompute the buttons state.

GTK+ automatically takes care of this in most situations, e.g. when the user goes to a different page, or when the visibility or completeness of a page changes.

One situation where it can be necessary to call this function is when changing a value on the current page affects the future page flow of the assistant.

Properties

pages

No description available in the introspection data.

getAssistantPages :: (MonadIO m, IsAssistant o) => o -> m (Maybe ListModel) Source #

Get the value of the “pages” property. When overloading is enabled, this is equivalent to

get assistant #pages

useHeaderBar

True if the assistant uses a HeaderBar for action buttons instead of the action-area.

For technical reasons, this property is declared as an integer property, but you should only set it to True or False.

constructAssistantUseHeaderBar :: (IsAssistant o, MonadIO m) => Int32 -> m (GValueConstruct o) Source #

Construct a GValueConstruct with valid value for the “use-header-bar” property. This is rarely needed directly, but it is used by new.

getAssistantUseHeaderBar :: (MonadIO m, IsAssistant o) => o -> m Int32 Source #

Get the value of the “use-header-bar” property. When overloading is enabled, this is equivalent to

get assistant #useHeaderBar

Signals

apply

type AssistantApplyCallback = IO () Source #

The apply signal is emitted when the apply button is clicked.

The default behavior of the Assistant is to switch to the page after the current page, unless the current page is the last one.

A handler for the apply signal should carry out the actions for which the wizard has collected data. If the action takes a long time to complete, you might consider putting a page of type AssistantPageTypeProgress after the confirmation page and handle this operation within the prepare signal of the progress page.

type C_AssistantApplyCallback = Ptr () -> Ptr () -> IO () Source #

Type for the callback on the (unwrapped) C side.

afterAssistantApply :: (IsAssistant a, MonadIO m) => a -> AssistantApplyCallback -> m SignalHandlerId Source #

Connect a signal handler for the apply signal, to be run after the default handler. When overloading is enabled, this is equivalent to

after assistant #apply callback

onAssistantApply :: (IsAssistant a, MonadIO m) => a -> AssistantApplyCallback -> m SignalHandlerId Source #

Connect a signal handler for the apply signal, to be run before the default handler. When overloading is enabled, this is equivalent to

on assistant #apply callback

cancel

type AssistantCancelCallback = IO () Source #

The cancel signal is emitted when then the cancel button is clicked.

type C_AssistantCancelCallback = Ptr () -> Ptr () -> IO () Source #

Type for the callback on the (unwrapped) C side.

afterAssistantCancel :: (IsAssistant a, MonadIO m) => a -> AssistantCancelCallback -> m SignalHandlerId Source #

Connect a signal handler for the cancel signal, to be run after the default handler. When overloading is enabled, this is equivalent to

after assistant #cancel callback

onAssistantCancel :: (IsAssistant a, MonadIO m) => a -> AssistantCancelCallback -> m SignalHandlerId Source #

Connect a signal handler for the cancel signal, to be run before the default handler. When overloading is enabled, this is equivalent to

on assistant #cancel callback

close

type AssistantCloseCallback = IO () Source #

The close signal is emitted either when the close button of a summary page is clicked, or when the apply button in the last page in the flow (of type AssistantPageTypeConfirm) is clicked.

type C_AssistantCloseCallback = Ptr () -> Ptr () -> IO () Source #

Type for the callback on the (unwrapped) C side.

afterAssistantClose :: (IsAssistant a, MonadIO m) => a -> AssistantCloseCallback -> m SignalHandlerId Source #

Connect a signal handler for the close signal, to be run after the default handler. When overloading is enabled, this is equivalent to

after assistant #close callback

onAssistantClose :: (IsAssistant a, MonadIO m) => a -> AssistantCloseCallback -> m SignalHandlerId Source #

Connect a signal handler for the close signal, to be run before the default handler. When overloading is enabled, this is equivalent to

on assistant #close callback

escape

type AssistantEscapeCallback = IO () Source #

No description available in the introspection data.

type C_AssistantEscapeCallback = Ptr () -> Ptr () -> IO () Source #

Type for the callback on the (unwrapped) C side.

afterAssistantEscape :: (IsAssistant a, MonadIO m) => a -> AssistantEscapeCallback -> m SignalHandlerId Source #

Connect a signal handler for the escape signal, to be run after the default handler. When overloading is enabled, this is equivalent to

after assistant #escape callback

onAssistantEscape :: (IsAssistant a, MonadIO m) => a -> AssistantEscapeCallback -> m SignalHandlerId Source #

Connect a signal handler for the escape signal, to be run before the default handler. When overloading is enabled, this is equivalent to

on assistant #escape callback

prepare

type AssistantPrepareCallback Source #

Arguments

 = Widget

page: the current page

-> IO () 

The prepare signal is emitted when a new page is set as the assistant's current page, before making the new page visible.

A handler for this signal can do any preparations which are necessary before showing page.

type C_AssistantPrepareCallback = Ptr () -> Ptr Widget -> Ptr () -> IO () Source #

Type for the callback on the (unwrapped) C side.

afterAssistantPrepare :: (IsAssistant a, MonadIO m) => a -> AssistantPrepareCallback -> m SignalHandlerId Source #

Connect a signal handler for the prepare signal, to be run after the default handler. When overloading is enabled, this is equivalent to

after assistant #prepare callback

onAssistantPrepare :: (IsAssistant a, MonadIO m) => a -> AssistantPrepareCallback -> m SignalHandlerId Source #

Connect a signal handler for the prepare signal, to be run before the default handler. When overloading is enabled, this is equivalent to

on assistant #prepare callback