diff options
author | David Robillard <d@drobilla.net> | 2020-11-29 18:31:45 +0100 |
---|---|---|
committer | David Robillard <d@drobilla.net> | 2020-11-29 18:31:45 +0100 |
commit | 98e2535b82ab601081a56c8a22d789d2da25cfd8 (patch) | |
tree | 5627e1219725342edd6aba36cd48ba24a256ba1c /src/PatchagePort.hpp | |
parent | 178d1cbe1dfc9e7b66c36cbb75590e1cee419174 (diff) | |
download | patchage-98e2535b82ab601081a56c8a22d789d2da25cfd8.tar.gz patchage-98e2535b82ab601081a56c8a22d789d2da25cfd8.tar.bz2 patchage-98e2535b82ab601081a56c8a22d789d2da25cfd8.zip |
Use more reasonable class names
Diffstat (limited to 'src/PatchagePort.hpp')
-rw-r--r-- | src/PatchagePort.hpp | 125 |
1 files changed, 0 insertions, 125 deletions
diff --git a/src/PatchagePort.hpp b/src/PatchagePort.hpp deleted file mode 100644 index 0ef6752..0000000 --- a/src/PatchagePort.hpp +++ /dev/null @@ -1,125 +0,0 @@ -/* This file is part of Patchage. - * Copyright 2007-2020 David Robillard <d@drobilla.net> - * - * Patchage is free software: you can redistribute it and/or modify it under - * the terms of the GNU General Public License as published by the Free - * Software Foundation, either version 3 of the License, or (at your option) - * any later version. - * - * Patchage is distributed in the hope that it will be useful, but WITHOUT ANY - * WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS - * FOR A PARTICULAR PURPOSE. See the GNU General Public License for details. - * - * You should have received a copy of the GNU General Public License - * along with Patchage. If not, see <http://www.gnu.org/licenses/>. - */ - -#ifndef PATCHAGE_PATCHAGEPORT_HPP -#define PATCHAGE_PATCHAGEPORT_HPP - -#include "Configuration.hpp" -#include "PatchageCanvas.hpp" -#include "PatchageModule.hpp" -#include "PortID.hpp" -#include "warnings.hpp" - -PATCHAGE_DISABLE_GANV_WARNINGS -#include "ganv/Module.hpp" -#include "ganv/Port.hpp" -PATCHAGE_RESTORE_WARNINGS - -#include <gtkmm/menu.h> -#include <gtkmm/menushell.h> - -#include <string> - -namespace patchage { - -/// A port on a PatchageModule -class PatchagePort : public Ganv::Port -{ -public: - PatchagePort(Ganv::Module& module, - PortType type, - PortID id, - const std::string& name, - const std::string& human_name, - bool is_input, - uint32_t color, - bool show_human_name, - boost::optional<int> order = boost::optional<int>()) - : Port(module, - (show_human_name && !human_name.empty()) ? human_name : name, - is_input, - color) - , _type(type) - , _id(std::move(id)) - , _name(name) - , _human_name(human_name) - , _order(order) - { - signal_event().connect(sigc::mem_fun(this, &PatchagePort::on_event)); - } - - PatchagePort(const PatchagePort&) = delete; - PatchagePort& operator=(const PatchagePort&) = delete; - - PatchagePort(PatchagePort&&) = delete; - PatchagePort& operator=(PatchagePort&&) = delete; - - ~PatchagePort() override = default; - - /** Returns the name of the module/client this port is one */ - std::string module_name() const - { - auto* pmod = dynamic_cast<PatchageModule*>(get_module()); - return std::string(pmod->name()); - } - - /** Returns the full name of this port, as "modulename:portname" */ - std::string full_name() const - { - auto* pmod = dynamic_cast<PatchageModule*>(get_module()); - return std::string(pmod->name()) + ":" + _name; - } - - void show_human_name(bool human) - { - if (human && !_human_name.empty()) { - set_label(_human_name.c_str()); - } else { - set_label(_name.c_str()); - } - } - - bool on_event(GdkEvent* ev) override - { - if (ev->type != GDK_BUTTON_PRESS || ev->button.button != 3) { - return false; - } - - Gtk::Menu* menu = Gtk::manage(new Gtk::Menu()); - menu->items().push_back(Gtk::Menu_Helpers::MenuElem( - "Disconnect", sigc::mem_fun(this, &Port::disconnect))); - - menu->popup(ev->button.button, ev->button.time); - return true; - } - - PortType type() const { return _type; } - PortID id() const { return _id; } - const std::string& name() const { return _name; } - const std::string& human_name() const { return _human_name; } - const boost::optional<int>& order() const { return _order; } - -private: - PortType _type; - PortID _id; - std::string _name; - std::string _human_name; - boost::optional<int> _order; -}; - -} // namespace patchage - -#endif // PATCHAGE_PATCHAGEPORT_HPP |