diff options
Diffstat (limited to 'src/MainWindow.hh')
-rw-r--r-- | src/MainWindow.hh | 117 |
1 files changed, 117 insertions, 0 deletions
diff --git a/src/MainWindow.hh b/src/MainWindow.hh new file mode 100644 index 0000000..2d5f173 --- /dev/null +++ b/src/MainWindow.hh @@ -0,0 +1,117 @@ +#ifndef foomainwindowhhfoo +#define foomainwindowhhfoo + +#include <gtkmm.h> +#include <libglademm.h> +#include <polyp/polyplib.h> + +class MainWinow; + +#include "ServerInfo.hh" + +class MainWindow : public Gtk::Window { +public: + MainWindow(BaseObjectType* cobject, const Glib::RefPtr<Gnome::Glade::Xml>& refGlade); + virtual ~MainWindow(); + static MainWindow* create(); + + Gtk::Label *statusLabel, + *serverNameLabel, + *serverVersionLabel, + *defaultSampleTypeLabel, + *userNameLabel, + *hostNameLabel; + + Gtk::Button *deviceOpenButton, + *clientOpenButton, + *moduleOpenButton, + *connectButton; + + Gtk::TreeView *deviceTreeView, + *clientTreeView, + *moduleTreeView; + +protected: + + class DeviceTreeModelColumns : public Gtk::TreeModel::ColumnRecord { + public: + + DeviceTreeModelColumns() { + add(name); + add(description); + add(index); + add(type); + } + + Gtk::TreeModelColumn<Glib::ustring> name; + Gtk::TreeModelColumn<Glib::ustring> description; + Gtk::TreeModelColumn<uint32_t> index; + Gtk::TreeModelColumn<int> type; + }; + + DeviceTreeModelColumns deviceTreeModelColumns; + Glib::RefPtr<Gtk::TreeStore> deviceTreeStore; + Gtk::TreeRowReference sinkRef, sourceRef; + + class ClientTreeModelColumns : public Gtk::TreeModel::ColumnRecord { + public: + ClientTreeModelColumns() { + add(name); + add(index); + } + + Gtk::TreeModelColumn<Glib::ustring> name; + Gtk::TreeModelColumn<uint32_t> index; + }; + + ClientTreeModelColumns clientTreeModelColumns; + Glib::RefPtr<Gtk::TreeStore> clientTreeStore; + + class ModuleTreeModelColumns : public Gtk::TreeModel::ColumnRecord { + public: + ModuleTreeModelColumns() { + add(name); + add(argument); + add(index); + } + + Gtk::TreeModelColumn<Glib::ustring> name; + Gtk::TreeModelColumn<Glib::ustring> argument; + Gtk::TreeModelColumn<uint32_t> index; + }; + + ModuleTreeModelColumns moduleTreeModelColumns; + Glib::RefPtr<Gtk::TreeStore> moduleTreeStore; + +public: + virtual void updateInfo(const struct pa_server_info &i); + virtual void updateInfo(SinkInfo &i); + virtual void updateInfo(SourceInfo &i); + virtual void updateInfo(ClientInfo &i); + virtual void updateInfo(ModuleInfo &i); + + virtual void removeInfo(SinkInfo &i); + virtual void removeInfo(SourceInfo &i); + virtual void removeInfo(ClientInfo &i); + virtual void removeInfo(ModuleInfo &i); + + virtual void onDeviceTreeViewCursorChanged(); + virtual void onDeviceTreeViewRowActivated(const Gtk::TreeModel::Path& path, Gtk::TreeViewColumn* /* column */); + virtual void onClientTreeViewRowActivated(const Gtk::TreeModel::Path& path, Gtk::TreeViewColumn* /* column */); + virtual void onModuleTreeViewRowActivated(const Gtk::TreeModel::Path& path, Gtk::TreeViewColumn* /* column */); + + virtual void showSuccess(const char *t); + virtual void showFailure(const char *t); + virtual void clearAllData(); + + virtual void onDeviceOpenButton(); + virtual void onClientOpenButton(); + virtual void onModuleOpenButton(); + virtual void onConnectButton(); + + virtual void showDeviceWindow(const Gtk::TreePath &p); + virtual void showClientWindow(const Gtk::TreePath &p); + virtual void showModuleWindow(const Gtk::TreePath &p); +}; + +#endif |