~ubuntu-branches/ubuntu/oneiric/rhythmbox/oneiric

« back to all changes in this revision

Viewing changes to plugins/iradio/rb-iradio-plugin.c

  • Committer: Bazaar Package Importer
  • Author(s): Rico Tzschichholz
  • Date: 2011-07-29 16:41:38 UTC
  • mto: This revision was merged to the branch mainline in revision 191.
  • Revision ID: james.westby@ubuntu.com-20110729164138-wwicy8nqalm18ck7
Tags: upstream-2.90.1~20110802
ImportĀ upstreamĀ versionĀ 2.90.1~20110802

Show diffs side-by-side

added added

removed removed

Lines of Context:
38
38
#include <glib.h>
39
39
#include <glib-object.h>
40
40
 
41
 
#include "rb-plugin.h"
 
41
#include "rb-plugin-macros.h"
42
42
#include "rb-debug.h"
43
43
#include "rb-shell.h"
44
44
#include "rb-dialog.h"
45
45
#include "rb-iradio-source.h"
 
46
#include "rb-iradio-source-search.h"
 
47
#include "rb-station-properties-dialog.h"
46
48
#include "rb-file-helpers.h"
47
49
#include "rb-display-page-group.h"
48
50
 
56
58
 
57
59
typedef struct
58
60
{
59
 
        RBPlugin parent;
 
61
        PeasExtensionBase parent;
 
62
 
60
63
        RBSource *source;
61
64
        guint ui_merge_id;
62
65
} RBIRadioPlugin;
63
66
 
64
67
typedef struct
65
68
{
66
 
        RBPluginClass parent_class;
 
69
        PeasExtensionBaseClass parent_class;
67
70
} RBIRadioPluginClass;
68
71
 
69
72
 
70
 
G_MODULE_EXPORT GType register_rb_plugin (GTypeModule *module);
71
 
GType   rb_iradio_plugin_get_type               (void) G_GNUC_CONST;
72
 
 
73
 
 
74
 
static void impl_activate (RBPlugin *plugin, RBShell *shell);
75
 
static void impl_deactivate (RBPlugin *plugin, RBShell *shell);
76
 
 
77
 
RB_PLUGIN_REGISTER(RBIRadioPlugin, rb_iradio_plugin)
 
73
G_MODULE_EXPORT void peas_register_types (PeasObjectModule *module);
 
74
 
 
75
RB_DEFINE_PLUGIN(RB_TYPE_IRADIO_PLUGIN, RBIRadioPlugin, rb_iradio_plugin,)
78
76
 
79
77
static void
80
78
rb_iradio_plugin_init (RBIRadioPlugin *plugin)
83
81
}
84
82
 
85
83
static void
86
 
rb_iradio_plugin_finalize (GObject *object)
87
 
{
88
 
/*
89
 
        RBIRadioPlugin *plugin = RB_IRADIO_PLUGIN (object);
90
 
*/
91
 
        rb_debug ("RBIRadioPlugin finalising");
92
 
 
93
 
        G_OBJECT_CLASS (rb_iradio_plugin_parent_class)->finalize (object);
94
 
}
95
 
 
96
 
 
97
 
 
98
 
static void
99
 
impl_activate (RBPlugin *plugin,
100
 
               RBShell *shell)
 
84
impl_activate (PeasActivatable *plugin)
101
85
{
102
86
        RBIRadioPlugin *pi = RB_IRADIO_PLUGIN (plugin);
103
87
        GtkUIManager *uimanager;
104
88
        char *filename;
 
89
        RBShell *shell;
105
90
 
106
 
        pi->source = rb_iradio_source_new (shell, plugin);
 
91
        g_object_get (pi, "object", &shell, NULL);
 
92
        pi->source = rb_iradio_source_new (shell, G_OBJECT (plugin));
107
93
        rb_shell_append_display_page (shell, RB_DISPLAY_PAGE (pi->source), RB_DISPLAY_PAGE_GROUP_LIBRARY);
108
94
 
109
95
        g_object_get (shell, "ui-manager", &uimanager, NULL);
110
 
        filename = rb_plugin_find_file (plugin, "iradio-ui.xml");
 
96
        filename = rb_find_plugin_data_file (G_OBJECT (plugin), "iradio-ui.xml");
111
97
        if (filename != NULL) {
112
98
                pi->ui_merge_id = gtk_ui_manager_add_ui_from_file (uimanager,
113
99
                                                             filename,
118
104
 
119
105
        g_free (filename);
120
106
        g_object_unref (uimanager);
 
107
        g_object_unref (shell);
121
108
}
122
109
 
123
110
static void
124
 
impl_deactivate (RBPlugin *plugin,
125
 
                 RBShell *shell)
 
111
impl_deactivate (PeasActivatable *plugin)
126
112
{
127
113
        RBIRadioPlugin *pi = RB_IRADIO_PLUGIN (plugin);
128
114
        GtkUIManager *uimanager;
 
115
        RBShell *shell;
 
116
 
 
117
        g_object_get (pi, "object", &shell, NULL);
129
118
 
130
119
        g_object_get (shell, "ui-manager", &uimanager, NULL);
131
120
        gtk_ui_manager_remove_ui (uimanager, pi->ui_merge_id);
133
122
 
134
123
        rb_display_page_delete_thyself (RB_DISPLAY_PAGE (pi->source));
135
124
        pi->source = NULL;
 
125
 
 
126
        g_object_unref (shell);
136
127
}
137
128
 
138
 
 
139
 
static void
140
 
rb_iradio_plugin_class_init (RBIRadioPluginClass *klass)
 
129
G_MODULE_EXPORT void
 
130
peas_register_types (PeasObjectModule *module)
141
131
{
142
 
        GObjectClass *object_class = G_OBJECT_CLASS (klass);
143
 
        RBPluginClass *plugin_class = RB_PLUGIN_CLASS (klass);
144
 
 
145
 
        object_class->finalize = rb_iradio_plugin_finalize;
146
 
 
147
 
        plugin_class->activate = impl_activate;
148
 
        plugin_class->deactivate = impl_deactivate;
 
132
        rb_iradio_plugin_register_type (G_TYPE_MODULE (module));
 
133
        _rb_iradio_source_register_type (G_TYPE_MODULE (module));
 
134
        _rb_iradio_source_search_register_type (G_TYPE_MODULE (module));
 
135
        _rb_station_properties_dialog_register_type (G_TYPE_MODULE (module));
 
136
        peas_object_module_register_extension_type (module,
 
137
                                                    PEAS_TYPE_ACTIVATABLE,
 
138
                                                    RB_TYPE_IRADIO_PLUGIN);
149
139
}
150