From 9f896b86b671b3a05314d2013a315d996b456f95 Mon Sep 17 00:00:00 2001 From: manuel Date: Sat, 9 Apr 2011 15:03:50 +0200 Subject: add toggle audio icon --- pacman-c++/client.cpp | 29 +++++++++++++++++++++++++++++ 1 file changed, 29 insertions(+) (limited to 'pacman-c++/client.cpp') diff --git a/pacman-c++/client.cpp b/pacman-c++/client.cpp index e4978f7..7827591 100644 --- a/pacman-c++/client.cpp +++ b/pacman-c++/client.cpp @@ -1,5 +1,6 @@ #include "client.h" #include "audioplayer.h" +#include "clicklabel.h" Client::Client() { @@ -9,10 +10,38 @@ Client::Client() QMenu *fileMenu = menuBar()->addMenu("File"); fileMenu->addAction(quitAction); + ClickLabel *toggleSound = new ClickLabel("Toggle Sound", this); + toggleSound->setFixedWidth(20); + toggleSound->setFixedHeight(16); + toggleSound->setAlignment(Qt::AlignBottom); + bool sound = AudioPlayer::self()->isWorking(); + QImage img(sound ? ":/soundon" : ":/soundoff"); + img.setColor(1, menuBar()->palette().color(sound ? QPalette::Active : QPalette::Disabled, + QPalette::ButtonText).rgba()); + toggleSound->setPixmap(QPixmap::fromImage(img)); + if (sound) + connect(toggleSound, SIGNAL(clicked()), this, SLOT(toggleSound())); + + menuBar()->setCornerWidget(toggleSound); + m_mainWidget = new MainWidget(); setCentralWidget(m_mainWidget); } +void Client::toggleSound() const +{ + if (!AudioPlayer::self()->isWorking()) + return; + + bool muted = AudioPlayer::self()->isMuted(); + QImage img(muted ? ":/soundon" : ":/soundoff"); + img.setColor(1, menuBar()->palette().color(muted ? QPalette::Active : QPalette::Disabled, + QPalette::ButtonText).rgba()); + ClickLabel *tmp = qobject_cast(menuBar()->cornerWidget()); + tmp->setPixmap(QPixmap::fromImage(img)); + AudioPlayer::self()->setMuted(!muted); +} + int main(int argc, char ** argv) { QApplication app(argc, argv); -- cgit v1.2.3