## GnomeDruid

GnomeDruid — Widget for sequentially stepping through some pages.

## Synopsis

    #include <libgnomeui/libgnomeui.h>

                GnomeDruid;
    GtkWidget*  gnome_druid_new                 (void);
    void        gnome_druid_set_buttons_sensitive
                                                (GnomeDruid *druid,
                                                 gboolean back_sensitive,
                                                 gboolean next_sensitive,
                                                 gboolean cancel_sensitive,
                                                 gboolean help_sensitive);
    void        gnome_druid_set_show_finish     (GnomeDruid *druid,
                                                 gboolean show_finish);
    void        gnome_druid_set_show_help       (GnomeDruid *druid,
                                                 gboolean show_help);
    void        gnome_druid_prepend_page        (GnomeDruid *druid,
                                                 GnomeDruidPage *page);
    void        gnome_druid_insert_page         (GnomeDruid *druid,
                                                 GnomeDruidPage *back_page,
                                                 GnomeDruidPage *page);
    void        gnome_druid_append_page         (GnomeDruid *druid,
                                                 GnomeDruidPage *page);
    void        gnome_druid_set_page            (GnomeDruid *druid,
                                                 GnomeDruidPage *page);
    GtkWidget*  gnome_druid_new_with_window     (const char *title,
                                                 GtkWindow *parent,
                                                 gboolean close_on_cancel,
                                                 GtkWidget **window);
    void        gnome_druid_construct_with_window
                                                (GnomeDruid *druid,
                                                 const char *title,
                                                 GtkWindow *parent,
                                                 gboolean close_on_cancel,
                                                 GtkWidget **window);

## Object Hierarchy

      GObject
       +----GInitiallyUnowned
             +----GtkObject
                   +----GtkWidget
                         +----GtkContainer
                               +----GnomeDruid

## Implemented Interfaces

GnomeDruid implements AtkImplementorIface.

## Properties

      "show-finish"          gboolean              : Read / Write
      "show-help"            gboolean              : Read / Write

## Signal Prototypes

    "cancel"    void        user_function      (GnomeDruid *druid,
                                                gpointer user_data);
    "help"      void        user_function      (GnomeDruid *druid,
                                                gpointer user_data);

## Description

## Details

### GnomeDruid

    typedef struct _GnomeDruid GnomeDruid;

The widget which ultimately holds all of the druid's pages and information. This is the widget which the application developer then places inside an outer widget, such as a dialog box for ultimate display.

### gnome_druid_new ()

    GtkWidget*  gnome_druid_new                 (void);

Creates a new GnomeDruid widget. You need to add this to a dialog yourself, it is not a dialog.

Returns : | A new GnomeDruid widget

### gnome_druid_set_buttons_sensitive ()

    void        gnome_druid_set_buttons_sensitive
                                                (GnomeDruid *druid,
                                                 gboolean back_sensitive,
                                                 gboolean next_sensitive,
                                                 gboolean cancel_sensitive,
                                                 gboolean help_sensitive);

Sets the sensitivity of `druid`'s control-buttons. If the variables are `TRUE`, then they will be clickable. This function is used primarily by the actual GnomeDruidPage widgets.

`druid` : | A Druid.
`back_sensitive` : | `TRUE` if the back button is sensitive.
`next_sensitive` : | `TRUE` if the next button is sensitive.
`cancel_sensitive` : | `TRUE` if the cancel button is sensitive.
`help_sensitive` : | `TRUE` if the help button is sensitive.

### gnome_druid_set_show_finish ()

    void        gnome_druid_set_show_finish     (GnomeDruid *druid,
                                                 gboolean show_finish);

Used to specify if `druid` is currently showing the last page of the sequence (and hence should display "Finish", rather than "Next").

`druid` : | A GnomeDruid widget.
`show_finish` : | If `TRUE`, then the "Next" button is changed to be "Finish"

### gnome_druid_set_show_help ()

    void        gnome_druid_set_show_help       (GnomeDruid *druid,
                                                 gboolean show_help);

Sets the "Help" button on the druid to be visible in the lower left corner of the widget, if `show_help` is `TRUE`.

`druid` : | A GnomeDruid.
`show_help` : | `TRUE`, if the "Help" button is to be shown, `FALSE` otherwise.

### gnome_druid_prepend_page ()

    void        gnome_druid_prepend_page        (GnomeDruid *druid,
                                                 GnomeDruidPage *page);

This will prepend a GnomeDruidPage into the internal list of pages that the `druid` has. Since GnomeDruid is just a container, you will need to also call `gtk_widget_show()` on the page, otherwise the page will not be shown.

`druid` : | A Druid widget.
`page` : | The page to be inserted.

### gnome_druid_insert_page ()

    void        gnome_druid_insert_page         (GnomeDruid *druid,
                                                 GnomeDruidPage *back_page,
                                                 GnomeDruidPage *page);

This will insert `page` after `back_page` into the list of internal pages that the `druid` has. If `back_page` is not present in the list or `NULL`, `page` will be prepended to the list. Since GnomeDruid is just a container, you will need to also call `gtk_widget_show()` on the page, otherwise the page will not be shown.

`druid` : | A GnomeDruid widget.
`back_page` : | The page prior to the page to be inserted.
`page` : | The page to insert.

### gnome_druid_append_page ()

    void        gnome_druid_append_page         (GnomeDruid *druid,
                                                 GnomeDruidPage *page);

This will append `page` onto the end of the internal list. Since GnomeDruid is just a container, you will need to also call `gtk_widget_show()` on the page, otherwise the page will not be shown.

`druid` : | A GnomeDruid widget.
`page` : | The GnomeDruidPage to be appended.

### gnome_druid_set_page ()

    void        gnome_druid_set_page            (GnomeDruid *druid,
                                                 GnomeDruidPage *page);

This will make `page` the currently showing page in the druid. `page` must already be in the druid.

`druid` : | A GnomeDruid widget.
`page` : | The GnomeDruidPage to be brought to the foreground.

### gnome_druid_new_with_window ()

    GtkWidget*  gnome_druid_new_with_window     (const char *title,
                                                 GtkWindow *parent,
                                                 gboolean close_on_cancel,
                                                 GtkWidget **window);

Creates a new GnomeDruid widget. It also creates a new toplevel window with the title of `title` (which can be `NULL`) and a parent of `parent` (which also can be `NULL`). The window and the druid will both be shown. If you need the window widget pointer you can optionally get it through the last argument. When the druid gets destroyed, so will the window that is created here.

`title` : | A title of the window.
`parent` : | The parent of this window (transient_for).
`close_on_cancel` : | `TRUE` if the window should be closed when cancel is pressed.
`window` : | Optional return of the GtkWindow created.
Returns : | A new GnomeDruid widget.

### gnome_druid_construct_with_window ()

    void        gnome_druid_construct_with_window
                                                (GnomeDruid *druid,
                                                 const char *title,
                                                 GtkWindow *parent,
                                                 gboolean close_on_cancel,
                                                 GtkWidget **window);

Creates a new toplevel window with the title of `title` (which can be `NULL`) and a parent of `parent` (which also can be `NULL`). The `druid` will be placed inside this window. The window and the druid will both be shown. If you need the window widget pointer you can optionally get it through the last argument. When the druid gets destroyed, so will the window that is created here.

See also `gnome_druid_new_with_window()`.

`druid` : | The GnomeDruid.
`title` : | A title of the window.
`parent` : | The parent of this window (transient_for).
`close_on_cancel` : | `TRUE` if the window should be closed when cancel is pressed.
`window` : | Optional return of the GtkWindow created.

## Properties

### The "`show-finish`" property

      "show-finish"          gboolean              : Read / Write

Show the 'Finish' button instead of the 'Next' button.

Default value: FALSE

### The "`show-help`" property

      "show-help"            gboolean              : Read / Write

Show the 'Help' button.

Default value: FALSE

## Signals

### The "cancel" signal

    void        user_function                  (GnomeDruid *druid,
                                                gpointer user_data);

`druid` : | the object which received the signal.
`user_data` : | user data set when the signal handler was connected.

### The "help" signal

    void        user_function                  (GnomeDruid *druid,
                                                gpointer user_data);

`druid` : | the object which received the signal.
`user_data` : | user data set when the signal handler was connected.