## IdeFrame IdeFrame — A stack of IdePage |

## Functions

GtkWidget * | ide_frame_new ()
GtkWidget * | ide_frame_get_titlebar ()
IdePage * | ide_frame_get_visible_child ()
void | ide_frame_set_visible_child ()
gboolean | ide_frame_get_has_page ()
void | ide_frame_agree_to_close_async ()
gboolean | ide_frame_agree_to_close_finish ()
void | ide_frame_foreach_page ()
void | ide_frame_add_with_depth ()
void | ide_frame_set_placeholder ()

## Properties

gboolean | has-page | Read
IdePage * | visible-child | Read / Write

## Signals

void | change-current-page | Action

## Types and Values

#define | IDE_TYPE_FRAME
struct | IdeFrameClass
| IdeFrame

## Object Hierarchy

        GObject
        ╰── GInitiallyUnowned
            ╰── GtkWidget
                ╰── GtkContainer
                    ╰── GtkBox
                        ╰── IdeFrame

## Implemented Interfaces

IdeFrame implements AtkImplementorIface, GtkBuildable, GtkOrientable and GListModel.

## Description

This widget is used to represent a stack of IdePage widgets. it includes an IdeFrameHeader at the top, and then a stack of pages below.

If there are no IdePage visibile, then an empty state widget is displayed with some common information for the user.

To simplify integration with other systems, IdeFrame implements the GListModel interface for each of the IdePage.

## Functions

### ide_frame_new ()

    GtkWidget *
    ide_frame_new (void);

### ide_frame_get_titlebar ()

    GtkWidget *
    ide_frame_get_titlebar (IdeFrame *self);

Gets the IdeFrameHeader header that is at the top of the stack.

#### Parameters

self | a IdeFrame |

#### Returns

The layout stack header.

[transfer none][type IdeFrameHeader]

Since: 3.32

### ide_frame_get_visible_child ()

    IdePage *
    ide_frame_get_visible_child (IdeFrame *self);

Gets the visible IdePage if there is one; otherwise `NULL`.

#### Parameters

self | a IdeFrame |

#### Returns

An IdePage or `NULL`.

[nullable][transfer none]

Since: 3.32

### ide_frame_set_visible_child ()

    void
    ide_frame_set_visible_child (IdeFrame *self,
                                 IdePage *page);

Sets the current page for the stack.

#### Parameters

self | a IdeFrame |

Since: 3.32

### ide_frame_get_has_page ()

    gboolean
    ide_frame_get_has_page (IdeFrame *self);

Gets the "has-page" property.

This property is a convenience to allow widgets to easily bind properties based on whether or not a page is visible in the stack.

#### Parameters

self | an IdeFrame |

#### Returns

`TRUE` if the stack has a page

Since: 3.32

### ide_frame_agree_to_close_async ()

    void
    ide_frame_agree_to_close_async (IdeFrame *self,
                                    GCancellable *cancellable,
                                    GAsyncReadyCallback callback,
                                    gpointer user_data);

### ide_frame_agree_to_close_finish ()

    gboolean
    ide_frame_agree_to_close_finish (IdeFrame *self,
                                     GAsyncResult *result,
                                     GError **error);

### ide_frame_foreach_page ()

    void
    ide_frame_foreach_page (IdeFrame *self,
                            GtkCallback callback,
                            gpointer user_data);

This function will call `callback` for every page found in `self` .

#### Parameters

self | a IdeFrame |
callback | A callback for each page. | [scope call][closure user_data]
user_data | user data for `callback` |

Since: 3.32

### ide_frame_add_with_depth ()

    void
    ide_frame_add_with_depth (IdeFrame *self,
                              GtkWidget *widget,
                              guint position);

### ide_frame_set_placeholder ()

    void
    ide_frame_set_placeholder (IdeFrame *self,
                               GtkWidget *placeholder);

## Types and Values

### IDE_TYPE_FRAME

    #define IDE_TYPE_FRAME (ide_frame_get_type())

### struct IdeFrameClass

    struct IdeFrameClass {
      GtkBoxClass parent_class;

      void     (*agree_to_close_async)  (IdeFrame             *stack,
                                         GCancellable         *cancellable,
                                         GAsyncReadyCallback   callback,
                                         gpointer              user_data);
      gboolean (*agree_to_close_finish) (IdeFrame             *stack,
                                         GAsyncResult         *result,
                                         GError              **error);
    };

### IdeFrame

    typedef struct _IdeFrame IdeFrame;

## Property Details

### The `“has-page”` property

      “has-page”                 gboolean

Owner: IdeFrame

Flags: Read

Default value: FALSE

### The `“visible-child”` property

      “visible-child”            IdePage *

The current page to be displayed.

Owner: IdeFrame

Flags: Read / Write

## Signal Details

### The `“change-current-page”` signal

    void
    user_function (IdeFrame *ideframe,
                   gint      arg1,
                   gpointer  user_data)

Flags: Action