## RBShellClipboard

RBShellClipboard — cut and paste handling

## Synopsis

                        RBShellClipboard;
                        RBShellClipboardClass;
    RBShellClipboard *  rb_shell_clipboard_new              (GtkActionGroup *actiongroup,
                                                             GtkUIManager *ui_mgr,
                                                             RhythmDB *db);
    void                rb_shell_clipboard_set_source       (RBShellClipboard *clipboard,
                                                             RBSource *source);

## Object Hierarchy

      GObject
       +----RBShellClipboard

## Properties

      "action-group"             GtkActionGroup*       : Read / Write / Construct Only
      "db"                       RhythmDB*             : Read / Write / Construct Only
      "playlist-manager"         RBPlaylistManager*    : Read / Write
      "queue-source"             RBPlaylistSource*     : Read / Write
      "source"                   RBSource*             : Read / Write
      "ui-manager"               GtkUIManager*         : Read / Write / Construct Only

## Description

The clipboard is primarily responsible for handling cut and paste actions, as well as various other actions that relate to a selected set of entries from a source, such as move to trash, delete, and add to playlist.

It updates the sensitivity of the various actions it handles when the selected source changes, and when the track list selection changes. The actual action handlers are fairly simple, mostly calling RBSource methods.

For the 'add to playlist' action, the clipboard builds a menu containing the available playlists that entries can be added to from the current selected source.

## Details

### RBShellClipboard

    typedef struct _RBShellClipboard RBShellClipboard;

### RBShellClipboardClass

    typedef struct {
    	GObjectClass parent_class;
    } RBShellClipboardClass;

### rb_shell_clipboard_new ()

    RBShellClipboard *  rb_shell_clipboard_new              (GtkActionGroup *actiongroup,
                                                             GtkUIManager *ui_mgr,
                                                             RhythmDB *db);

Creates the RBShellClipboard instance

`actiongroup` : | the GtkActionGroup to use
`ui_mgr` : | the GtkUIManager instance
`db` : | the RhythmDB instance
Returns : | the RBShellClipboard

### rb_shell_clipboard_set_source ()

    void                rb_shell_clipboard_set_source       (RBShellClipboard *clipboard,
                                                             RBSource *source);

Updates the clipboard to reflect a newly selected source.

`clipboard` : | the RBShellClipboard
`source` : | the new selected RBSource

## Property Details

### The `"action-group"` property

      "action-group"             GtkActionGroup*       : Read / Write / Construct Only

GtkActionGroup object.

### The `"db"` property

      "db"                       RhythmDB*             : Read / Write / Construct Only

RhythmDB database.

### The `"playlist-manager"` property

      "playlist-manager"         RBPlaylistManager*    : Read / Write

RBPlaylistManager object.

### The `"queue-source"` property

      "queue-source"             RBPlaylistSource*     : Read / Write

RBPlaylistSource object.

### The `"source"` property

      "source"                   RBSource*             : Read / Write

RBSource object.

### The `"ui-manager"` property

      "ui-manager"               GtkUIManager*         : Read / Write / Construct Only

GtkUIManager object.