diff options
author | Lennart Poettering <lennart@poettering.net> | 2004-08-12 23:26:31 +0000 |
---|---|---|
committer | Lennart Poettering <lennart@poettering.net> | 2004-08-12 23:26:31 +0000 |
commit | 4d38b0a057c9c78c3e400c953b6ab5ea6d2a37b0 (patch) | |
tree | 1ee7b5dbf2b1f210169ce7453b8f11d098581150 /ModuleWindow.cc | |
parent | 1f9bb4bea5427c1bf236e8698855048ef35f3a81 (diff) |
add support for listing clients and modules
git-svn-id: file:///home/lennart/svn/public/paman/trunk@5 cdefa82f-4ce1-0310-97f5-ab6066f37c3c
Diffstat (limited to 'ModuleWindow.cc')
-rw-r--r-- | ModuleWindow.cc | 58 |
1 files changed, 58 insertions, 0 deletions
diff --git a/ModuleWindow.cc b/ModuleWindow.cc new file mode 100644 index 0000000..04d8fb5 --- /dev/null +++ b/ModuleWindow.cc @@ -0,0 +1,58 @@ +#include <iostream> + +#include "paman.hh" +#include "ModuleWindow.hh" + +#define GLADE_NAME "moduleWindow" + +ModuleWindow::ModuleWindow(BaseObjectType* cobject, const Glib::RefPtr<Gnome::Glade::Xml>& refGlade) : + Gtk::Window(cobject), + nameLabel(NULL), + argumentLabel(NULL), + indexLabel(NULL), + autoloadedLabel(NULL), + usageLabel(NULL), + closeButton(NULL) { + + refGlade->get_widget("nameLabel", nameLabel); + refGlade->get_widget("argumentLabel", argumentLabel); + refGlade->get_widget("indexLabel", indexLabel); + refGlade->get_widget("autoloadedLabel", autoloadedLabel); + refGlade->get_widget("usageLabel", usageLabel); + refGlade->get_widget("closeButton", closeButton); + + closeButton->signal_clicked().connect(sigc::mem_fun(*this, &ModuleWindow::onCloseButton)); +} + +ModuleWindow* ModuleWindow::create() { + ModuleWindow *w = NULL; + Glib::RefPtr<Gnome::Glade::Xml> refXml = Gnome::Glade::Xml::create(GLADE_FILE, GLADE_NAME); + refXml->get_widget_derived(GLADE_NAME, w); + return w; +} + +void ModuleWindow::updateInfo(const ModuleInfo &i) { + char t[20], ss[PA_SAMPLE_SNPRINT_MAX_LENGTH]; + + nameLabel->set_text(i.name); + if (!i.argument.empty()) + argumentLabel->set_text(i.argument); + else + argumentLabel->set_markup("<i>None specified</i>"); + + snprintf(t, sizeof(t), "#%u", i.index); + indexLabel->set_text(t); + autoloadedLabel->set_text(i.autoloaded ? "Yes" : "No"); + + if (i.used != (uint32_t) -1) { + snprintf(t, sizeof(t), "%u", i.used); + usageLabel->set_text(t); + } else + usageLabel->set_markup("<i>n/a</i>"); + + set_title("Module: "+i.name); +} + +void ModuleWindow::onCloseButton() { + hide(); +} |