#ifndef __DEMO_DBUS_BROWSER_H #define __DEMO_DBUS_BROWSER_H #include #include #include #include "dbus-glue.h" class DBusInspector : public DBus::IntrospectableProxy, public DBus::ObjectProxy { public: DBusInspector(DBus::Connection &conn, const char *path, const char *service) : DBus::ObjectProxy(conn, path, service) {} }; class DBusBrowser : public org::freedesktop::DBus_proxy, public DBus::IntrospectableProxy, public DBus::ObjectProxy, public Gtk::Window { public: DBusBrowser(::DBus::Connection &); private: void NameOwnerChanged(const std::string &, const std::string &, const std::string &); void NameLost(const std::string &); void NameAcquired(const std::string &); void on_select_busname(); void _inspect_append(Gtk::TreeModel::Row *, const std::string &, const std::string &); private: class InspectRecord : public Gtk::TreeModel::ColumnRecord { public: InspectRecord() { add(name); } Gtk::TreeModelColumn name; }; Gtk::VBox _vbox; Gtk::ScrolledWindow _sc_tree; Gtk::ComboBoxText _cb_busnames; Gtk::TreeView _tv_inspect; Glib::RefPtr _tm_inspect; InspectRecord _records; }; #endif//__DEMO_DBUS_BROWSER_H