diff --git a/campcaster/src/products/gLiveSupport/src/MasterPanelWindow.cxx b/campcaster/src/products/gLiveSupport/src/MasterPanelWindow.cxx index f35965cbd..e3c22e2c6 100644 --- a/campcaster/src/products/gLiveSupport/src/MasterPanelWindow.cxx +++ b/campcaster/src/products/gLiveSupport/src/MasterPanelWindow.cxx @@ -127,17 +127,21 @@ MasterPanelWindow :: MasterPanelWindow (Ptr::Ref gLiveSupport, nowPlayingBin->add(*nowPlayingAlignment); nowPlayingBin->set_size_request(-1, 104); +/* temporarily disabled // set up the VU meter widget vuMeterWidget = Gtk::manage(new Gtk::Label("")); vuMeterBin = Gtk::manage(widgetFactory->createBlueBin()); vuMeterBin->add(*vuMeterWidget); vuMeterBin->set_size_request(200, 40); +*/ +/* temporarily disabled // set up the next playing widget nextPlayingWidget = Gtk::manage(new Gtk::Label("")); nextPlayingBin = Gtk::manage(widgetFactory->createBlueBin()); nextPlayingBin->add(*nextPlayingWidget); nextPlayingBin->set_size_request(200, 59); +*/ // create the bottom bar bottomBar = Gtk::manage(new Gtk::HBox()); @@ -168,12 +172,12 @@ MasterPanelWindow :: MasterPanelWindow (Ptr::Ref gLiveSupport, layout->attach(*nowPlayingBin, 1, 2, 0, 2, Gtk::EXPAND|Gtk::FILL, Gtk::SHRINK, 5, 0); - layout->attach(*vuMeterBin, 2, 3, 0, 1, - Gtk::SHRINK, Gtk::SHRINK, - 0, 0); - layout->attach(*nextPlayingBin, 2, 3, 1, 2, - Gtk::SHRINK, Gtk::SHRINK, - 0, 0); +// layout->attach(*vuMeterBin, 2, 3, 0, 1, +// Gtk::SHRINK, Gtk::SHRINK, +// 0, 0); +// layout->attach(*nextPlayingBin, 2, 3, 1, 2, +// Gtk::SHRINK, Gtk::SHRINK, +// 0, 0); layout->attach(*radioLogoWidget, 3, 4, 0, 2, Gtk::SHRINK, Gtk::SHRINK, 5, 0); diff --git a/campcaster/src/products/gLiveSupport/src/MasterPanelWindow.h b/campcaster/src/products/gLiveSupport/src/MasterPanelWindow.h index 243637abb..d7833c568 100644 --- a/campcaster/src/products/gLiveSupport/src/MasterPanelWindow.h +++ b/campcaster/src/products/gLiveSupport/src/MasterPanelWindow.h @@ -137,22 +137,22 @@ class MasterPanelWindow : public Gtk::Window, public LocalizedObject /** * The container for the VU meter widget */ - BlueBin * vuMeterBin; +// BlueBin * vuMeterBin; /** * The VU meter display. */ - Gtk::Widget * vuMeterWidget; +// Gtk::Widget * vuMeterWidget; /** * The container for the next playing widget. */ - BlueBin * nextPlayingBin; +// BlueBin * nextPlayingBin; /** * The 'next playing' display. */ - Gtk::Widget * nextPlayingWidget; +// Gtk::Widget * nextPlayingWidget; /** * The user info alignment helper. diff --git a/campcaster/src/products/gLiveSupport/src/NowPlaying.cxx b/campcaster/src/products/gLiveSupport/src/NowPlaying.cxx index b84492da6..d920c5e76 100644 --- a/campcaster/src/products/gLiveSupport/src/NowPlaying.cxx +++ b/campcaster/src/products/gLiveSupport/src/NowPlaying.cxx @@ -93,29 +93,31 @@ NowPlaying :: NowPlaying(Ptr::Ref gLiveSupport, isActive = false; isPaused = false; - titleLabel = Gtk::manage(new Gtk::Label); - titleLabel->set_use_markup(true); + titleLabel = createFormattedLabel(14); titleLabel->set_ellipsize(Pango::ELLIPSIZE_END); - titleLabel->set_markup(""); - creatorLabel = Gtk::manage(new Gtk::Label); - creatorLabel->set_use_markup(true); + creatorLabel = createFormattedLabel(8); creatorLabel->set_ellipsize(Pango::ELLIPSIZE_END); - creatorLabel->set_markup(""); - Gtk::Label * elapsedLabel = createFormattedLabel(8); - Gtk::Label * remainsLabel = createFormattedLabel(8); - elapsedTime = createFormattedLabel(12); - remainsTime = createFormattedLabel(12); + playlistLabel = createFormattedLabel(8); + playlistLabel->set_ellipsize(Pango::ELLIPSIZE_END); + + Gtk::Label * elapsedLabel = createFormattedLabel(7); + Gtk::Label * remainsLabel = createFormattedLabel(7); + elapsedTime = createFormattedLabel(16); + remainsTime = createFormattedLabel(16); + + Gtk::HBox * elapsedTimeHBox = Gtk::manage(new Gtk::HBox); + Gtk::VBox * elapsedTimeVBox = Gtk::manage(new Gtk::VBox); + elapsedTimeHBox->pack_start(*elapsedTime, Gtk::PACK_SHRINK, 5); + elapsedTimeVBox->pack_start(*elapsedTimeHBox, Gtk::PACK_SHRINK, 2); remainsTimeBox = Gtk::manage(new Gtk::EventBox); Gtk::HBox * remainsTimeHBox = Gtk::manage(new Gtk::HBox); Gtk::VBox * remainsTimeVBox = Gtk::manage(new Gtk::VBox); - Gtk::HBox * remainsTimeOuterBox = Gtk::manage(new Gtk::HBox); - remainsTimeHBox->pack_start(*remainsTime, Gtk::PACK_SHRINK, 4); + remainsTimeHBox->pack_start(*remainsTime, Gtk::PACK_SHRINK, 5); remainsTimeVBox->pack_start(*remainsTimeHBox, Gtk::PACK_SHRINK, 2); remainsTimeBox->add(*remainsTimeVBox); - remainsTimeOuterBox->pack_start(*remainsTimeBox, Gtk::PACK_EXPAND_PADDING); resetRemainsTimeState(); try { @@ -126,24 +128,44 @@ NowPlaying :: NowPlaying(Ptr::Ref gLiveSupport, std::exit(1); } + Gtk::Box * titleBox = Gtk::manage(new Gtk::HBox); + titleBox->pack_start(*titleLabel, Gtk::PACK_EXPAND_WIDGET, 5); + + Gtk::Box * creatorBox = Gtk::manage(new Gtk::HBox); + creatorBox->pack_start(*creatorLabel, Gtk::PACK_EXPAND_WIDGET, 5); + + Gtk::Box * extraSpace = Gtk::manage(new Gtk::HBox); + + Gtk::Box * playlistBox = Gtk::manage(new Gtk::HBox); + playlistBox->pack_start(*playlistLabel, Gtk::PACK_EXPAND_WIDGET, 5); + + Gtk::Box * elapsedTextBox = Gtk::manage(new Gtk::HBox); + elapsedTextBox->pack_start(*elapsedLabel, Gtk::PACK_EXPAND_WIDGET, 5); + elapsedTextBox->set_size_request(150); // set a fixed width + Gtk::Box * elapsedBox = Gtk::manage(new Gtk::VBox); - elapsedBox->pack_start(*elapsedLabel, Gtk::PACK_EXPAND_WIDGET, 2); - elapsedBox->pack_start(*elapsedTime, Gtk::PACK_EXPAND_WIDGET, 2); + elapsedBox->pack_start(*elapsedTextBox, Gtk::PACK_SHRINK, 0); + elapsedBox->pack_start(*elapsedTimeVBox, Gtk::PACK_SHRINK, 0); + + Gtk::Box * remainsTextBox = Gtk::manage(new Gtk::HBox); + remainsTextBox->pack_start(*remainsLabel, Gtk::PACK_EXPAND_WIDGET, 5); Gtk::Box * remainsBox = Gtk::manage(new Gtk::VBox); - remainsBox->pack_start(*remainsLabel, Gtk::PACK_EXPAND_WIDGET, 2); - remainsBox->pack_start(*remainsTimeOuterBox, Gtk::PACK_EXPAND_WIDGET, 0); + remainsBox->pack_start(*remainsTextBox, Gtk::PACK_SHRINK, 0); + remainsBox->pack_start(*remainsTimeBox, Gtk::PACK_SHRINK, 0); Gtk::Box * timeBox = Gtk::manage(new Gtk::HBox); - timeBox->pack_start(*elapsedBox, Gtk::PACK_EXPAND_WIDGET, 2); - timeBox->pack_start(*remainsBox, Gtk::PACK_EXPAND_WIDGET, 2); + timeBox->pack_start(*elapsedBox, Gtk::PACK_SHRINK, 0); + timeBox->pack_start(*remainsBox, Gtk::PACK_SHRINK, 0); Gtk::Box * textBox = Gtk::manage(new Gtk::VBox); - textBox->pack_start(*titleLabel, Gtk::PACK_EXPAND_PADDING, 2); - textBox->pack_start(*creatorLabel, Gtk::PACK_EXPAND_PADDING, 2); - textBox->pack_start(*timeBox, Gtk::PACK_EXPAND_PADDING, 2); + textBox->pack_start(*titleBox, Gtk::PACK_SHRINK, 0); + textBox->pack_start(*creatorBox, Gtk::PACK_SHRINK, 0); + textBox->pack_start(*extraSpace, Gtk::PACK_SHRINK, 2); + textBox->pack_start(*timeBox, Gtk::PACK_SHRINK, 0); + textBox->pack_start(*playlistBox, Gtk::PACK_SHRINK, 0); - pack_end(*textBox, Gtk::PACK_EXPAND_WIDGET, 5); + pack_end(*textBox, Gtk::PACK_EXPAND_WIDGET, 0); pack_end(*stopButton, Gtk::PACK_SHRINK, 0); pack_end(*playButton, Gtk::PACK_SHRINK, 2); } @@ -163,26 +185,16 @@ NowPlaying :: setPlayable(Ptr::Ref playable) throw () } isActive = true; isPaused = false; - - Ptr::Ref infoString(new Glib::ustring); - - infoString->assign(""); - infoString->append(Glib::Markup::escape_text(*playable->getTitle())); - infoString->append(""); - titleLabel->set_markup(*infoString); + + titleLabel->set_text(*playable->getTitle()); Ptr::Ref creator = playable->getMetadata("dc:creator"); if (creator) { - infoString->assign(""); - infoString->append(Glib::Markup::escape_text(*creator)); - infoString->append(""); + creatorLabel->set_text(*creator); } else { - infoString->assign(""); + creatorLabel->set_text(""); } - creatorLabel->set_markup(*infoString); audioLength = TimeConversion::roundToNearestSecond( playable->getPlaylength()); @@ -195,8 +207,8 @@ NowPlaying :: setPlayable(Ptr::Ref playable) throw () playButton->show(); isActive = false; } - titleLabel->set_markup(""); - creatorLabel->set_markup(""); + titleLabel->set_text(""); + creatorLabel->set_text(""); elapsedTime->set_text(""); remainsTime->set_text(""); resetRemainsTimeState(); @@ -259,7 +271,8 @@ NowPlaying :: onStopButtonClicked(void) throw () Gtk::Label * NowPlaying :: createFormattedLabel(int fontSize) throw () { - Gtk::Label * label = Gtk::manage(new Gtk::Label); + Gtk::Label * label = Gtk::manage(new Gtk::Label("", Gtk::ALIGN_LEFT, + Gtk::ALIGN_CENTER)); Pango::FontDescription fontDescription; fontDescription.set_family("Bitstream Vera Sans"); @@ -303,7 +316,7 @@ NowPlaying :: onUpdateTime(void) throw () // just act as if nothing has happened return; } - + Ptr::Ref remains(new time_duration( *audioLength - *elapsed )); switch (remainsTimeState) { diff --git a/campcaster/src/products/gLiveSupport/src/NowPlaying.h b/campcaster/src/products/gLiveSupport/src/NowPlaying.h index 7474d47af..603f58499 100644 --- a/campcaster/src/products/gLiveSupport/src/NowPlaying.h +++ b/campcaster/src/products/gLiveSupport/src/NowPlaying.h @@ -98,6 +98,12 @@ class NowPlaying : public Gtk::HBox, */ Gtk::Label * creatorLabel; + /** + * The label holding the playlist containing the audio clip + * which is playing now (if any). + */ + Gtk::Label * playlistLabel; + /** * The label holding the elapsed time. */