## BtMainWindow

BtMainWindow — root buzztard editor window

## Synopsis

    #include "bt-edit.h"

                        BtMainWindow;
    BtMainWindow *      bt_main_window_new                  (const BtEditApplication *app);
    gboolean            bt_main_window_run                  (const BtMainWindow *self);
    gboolean            bt_main_window_check_quit           (const BtMainWindow *self);
    void                bt_main_window_new_song             (const BtMainWindow *self);
    void                bt_main_window_open_song            (const BtMainWindow *self);
    void                bt_main_window_save_song            (const BtMainWindow *self);
    void                bt_main_window_save_song_as         (const BtMainWindow *self);

## Object Hierarchy

      GObject
       +----GInitiallyUnowned
             +----GtkObject
                   +----GtkWidget
                         +----GtkContainer
                               +----GtkBin
                                     +----GtkWindow
                                           +----BtMainWindow

## Implemented Interfaces

BtMainWindow implements AtkImplementorIface and GtkBuildable.

## Properties

      "app"                      BtEditApplication*    : Read / Write / Construct Only
      "pages"                    BtMainPages*          : Read
      "statusbar"                BtMainStatusbar*      : Read
      "toolbar"                  BtMainToolbar*        : Read

## Description

The main window class is a container for the BtMainMenu, the BtMainToolbar, the BtMainStatusbar and the BtMainPages tabbed notebook.

## Details

### BtMainWindow

    typedef struct _BtMainWindow BtMainWindow;

the root window for the editor application

### bt_main_window_new ()

    BtMainWindow *      bt_main_window_new                  (const BtEditApplication *app);

Create a new instance

`app` : | the application the window belongs to
Returns : | the new instance or `NULL` in case of an error

### bt_main_window_run ()

    gboolean            bt_main_window_run                  (const BtMainWindow *self);

build, show and run the main window

`self` : | the window instance to setup and run
Returns : | true for success

### bt_main_window_check_quit ()

    gboolean            bt_main_window_check_quit           (const BtMainWindow *self);

Displays a dialog box, that asks the user to confirm exiting the application.

`self` : | the main window instance
Returns : | `TRUE` if the user has confirmed to exit

### bt_main_window_new_song ()

    void                bt_main_window_new_song             (const BtMainWindow *self);

Prepares a new song. Triggers cleaning up the old song and refreshes the ui.

`self` : | the main window instance

### bt_main_window_open_song ()

    void                bt_main_window_open_song            (const BtMainWindow *self);

Opens a dialog box, where the user can choose a song to load. If the dialog is not canceld, the old song will be freed, the new song will be loaded and the ui will be refreshed upon success.

`self` : | the main window instance

### bt_main_window_save_song ()

    void                bt_main_window_save_song            (const BtMainWindow *self);

Save the song to disk. If it is a new song it will ask for a file_name and location.

`self` : | the main window instance

### bt_main_window_save_song_as ()

    void                bt_main_window_save_song_as         (const BtMainWindow *self);

Opens a dialog box, where the user can choose a file_name and location to save the song under.

`self` : | the main window instance

## Property Details

### The `"app"` property

      "app"                      BtEditApplication*    : Read / Write / Construct Only

Set application object, the window belongs to.

### The `"pages"` property

      "pages"                    BtMainPages*          : Read

Get the pages widget.

### The `"statusbar"` property

      "statusbar"                BtMainStatusbar*      : Read

Get the status bar.

### The `"toolbar"` property

      "toolbar"                  BtMainToolbar*        : Read

Get the toolbar.