summaryrefslogtreecommitdiffstats
path: root/src/sinkinputwidget.cc
diff options
context:
space:
mode:
Diffstat (limited to 'src/sinkinputwidget.cc')
-rw-r--r--src/sinkinputwidget.cc14
1 files changed, 10 insertions, 4 deletions
diff --git a/src/sinkinputwidget.cc b/src/sinkinputwidget.cc
index 0c9054f..ec5c55d 100644
--- a/src/sinkinputwidget.cc
+++ b/src/sinkinputwidget.cc
@@ -30,9 +30,9 @@
SinkInputWidget::SinkInputWidget(BaseObjectType* cobject, const Glib::RefPtr<Gnome::Glade::Xml>& x) :
StreamWidget(cobject, x),
- mainWindow(NULL),
titleMenuItem(_("_Move Stream..."), true),
- killMenuItem(_("_Terminate Stream"), true) {
+ killMenuItem(_("_Terminate Stream"), true),
+ mpMainWindow(NULL) {
directionLabel->set_label(_("<i>Playing on </i> "));
@@ -45,14 +45,20 @@ SinkInputWidget::SinkInputWidget(BaseObjectType* cobject, const Glib::RefPtr<Gno
killMenuItem.signal_activate().connect(sigc::mem_fun(*this, &SinkInputWidget::onKill));
}
+void SinkInputWidget::init(MainWindow* mainWindow) {
+ mpMainWindow = mainWindow;
+ deviceCombo->set_model(mpMainWindow->sinkTree);
+}
+
SinkInputWidget::~SinkInputWidget() {
clearMenu();
}
-SinkInputWidget* SinkInputWidget::create() {
+SinkInputWidget* SinkInputWidget::create(MainWindow* mainWindow) {
SinkInputWidget* w;
Glib::RefPtr<Gnome::Glade::Xml> x = Gnome::Glade::Xml::create(GLADE_FILE, "streamWidget");
x->get_widget_derived("streamWidget", w);
+ w->init(mainWindow);
return w;
}
@@ -97,7 +103,7 @@ void SinkInputWidget::clearMenu() {
}
void SinkInputWidget::buildMenu() {
- for (std::map<uint32_t, SinkWidget*>::iterator i = mainWindow->sinkWidgets.begin(); i != mainWindow->sinkWidgets.end(); ++i) {
+ for (std::map<uint32_t, SinkWidget*>::iterator i = mpMainWindow->sinkWidgets.begin(); i != mpMainWindow->sinkWidgets.end(); ++i) {
SinkMenuItem *m;
sinkMenuItems[i->second->index] = m = new SinkMenuItem(this, i->second->description.c_str(), i->second->index, i->second->index == sinkIndex);
submenu.append(m->menuItem);