summaryrefslogtreecommitdiffstats
path: root/ClientWindow.cc
diff options
context:
space:
mode:
authorLennart Poettering <lennart@poettering.net>2004-08-12 23:26:31 +0000
committerLennart Poettering <lennart@poettering.net>2004-08-12 23:26:31 +0000
commit4d38b0a057c9c78c3e400c953b6ab5ea6d2a37b0 (patch)
tree1ee7b5dbf2b1f210169ce7453b8f11d098581150 /ClientWindow.cc
parent1f9bb4bea5427c1bf236e8698855048ef35f3a81 (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 'ClientWindow.cc')
-rw-r--r--ClientWindow.cc59
1 files changed, 59 insertions, 0 deletions
diff --git a/ClientWindow.cc b/ClientWindow.cc
new file mode 100644
index 0000000..88e2ad3
--- /dev/null
+++ b/ClientWindow.cc
@@ -0,0 +1,59 @@
+#include <iostream>
+
+#include "paman.hh"
+#include "ClientWindow.hh"
+
+#define GLADE_NAME "clientWindow"
+
+ClientWindow::ClientWindow(BaseObjectType* cobject, const Glib::RefPtr<Gnome::Glade::Xml>& refGlade) :
+ Gtk::Window(cobject),
+ nameLabel(NULL),
+ protocolLabel(NULL),
+ indexLabel(NULL),
+ ownerModuleLabel(NULL),
+ closeButton(NULL),
+ toOwnerModuleButton(NULL) {
+
+ refGlade->get_widget("nameLabel", nameLabel);
+ refGlade->get_widget("protocolLabel", protocolLabel);
+ refGlade->get_widget("indexLabel", indexLabel);
+ refGlade->get_widget("ownerModuleLabel", ownerModuleLabel);
+ refGlade->get_widget("closeButton", closeButton);
+ refGlade->get_widget("toOwnerModuleButton", toOwnerModuleButton);
+
+ closeButton->signal_clicked().connect(sigc::mem_fun(*this, &ClientWindow::onCloseButton));
+ toOwnerModuleButton->signal_clicked().connect(sigc::mem_fun(*this, &ClientWindow::onToOwnerModuleButton));
+}
+
+ClientWindow* ClientWindow::create() {
+ ClientWindow *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 ClientWindow::updateInfo(const ClientInfo &i) {
+ char t[20], ss[PA_SAMPLE_SNPRINT_MAX_LENGTH];
+
+ nameLabel->set_text(i.name);
+ protocolLabel->set_text(i.protocol_name);
+ snprintf(t, sizeof(t), "#%u", i.index);
+ indexLabel->set_text(t);
+
+ snprintf(t, sizeof(t), "#%u", i.owner_module);
+ ownerModuleLabel->set_text(t);
+
+ set_title("Client: "+i.name);
+
+ owner_module = i.owner_module;
+ toOwnerModuleButton->set_sensitive(owner_module != (uint32_t) -1);
+}
+
+void ClientWindow::onCloseButton() {
+ hide();
+}
+
+void ClientWindow::onToOwnerModuleButton() {
+ if (owner_module != (uint32_t) -1)
+ serverInfoManager->showModuleWindow(owner_module);
+}