## RBShellPreferences RBShellPreferences — preferences dialog |

## Synopsis

                        RBShellPreferences;
                        RBShellPreferencesClass;
    GtkWidget *         rb_shell_preferences_new            (GList *views);
    void                rb_shell_preferences_append_page    (RBShellPreferences *prefs,
                                                             const char *name,
                                                             GtkWidget *widget);

## Object Hierarchy

      GObject
       +----GInitiallyUnowned
             +----GtkObject
                   +----GtkWidget
                         +----GtkContainer
                               +----GtkBin
                                     +----GtkWindow
                                           +----GtkDialog
                                                 +----RBShellPreferences

## Implemented Interfaces

RBShellPreferences implements AtkImplementorIface and GtkBuildable.

## Description

The preferences dialog is built around a GtkNotebook widget, with two built-in pages and additional pages for various sources.

The 'general' preferences page controls the set of browser views that are visible (artist and album; genre and artist; or genre, artist, and album), the columns that are visible, and the appearance of buttons in the main toolbar. The browser and column settings apply to all sources.

The 'playback' preferences page controls whether the crossfading player backend is used, and if enabled, the crossfade duration and network buffer size.

Currently, the library and podcast sources add pages to the notebook, for configuring the location and layout of the library and the podcast download location and update frequency.

## Details

### RBShellPreferences

    typedef struct _RBShellPreferences RBShellPreferences;

### RBShellPreferencesClass

    typedef struct {
    	GtkDialogClass parent_class;
    } RBShellPreferencesClass;

### rb_shell_preferences_new ()

    GtkWidget *         rb_shell_preferences_new            (GList *views);

Creates the RBShellPreferences instance, populating it with the preferences pages for the sources in the list.

`views` : | list of RBSource objects to check for preferences pages
Returns : | the RBShellPreferences instance

### rb_shell_preferences_append_page ()

    void                rb_shell_preferences_append_page    (RBShellPreferences *prefs,
                                                             const char *name,
                                                             GtkWidget *widget);

Appends a new page to the preferences dialog notebook.

`prefs` : | the RBShellPreferences instance
`name` : | name of the page to append
`widget` : | the GtkWidget to use as the contents of the page