summaryrefslogtreecommitdiffstats
path: root/src/gui/WidgetFactory.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/gui/WidgetFactory.cpp')
-rw-r--r--src/gui/WidgetFactory.cpp80
1 files changed, 0 insertions, 80 deletions
diff --git a/src/gui/WidgetFactory.cpp b/src/gui/WidgetFactory.cpp
deleted file mode 100644
index afb6a07f..00000000
--- a/src/gui/WidgetFactory.cpp
+++ /dev/null
@@ -1,80 +0,0 @@
-/*
- This file is part of Ingen.
- Copyright 2007-2015 David Robillard <http://drobilla.net/>
-
- Ingen is free software: you can redistribute it and/or modify it under the
- terms of the GNU Affero General Public License as published by the Free
- Software Foundation, either version 3 of the License, or any later version.
-
- Ingen 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 Affero General Public License for details.
-
- You should have received a copy of the GNU Affero General Public License
- along with Ingen. If not, see <http://www.gnu.org/licenses/>.
-*/
-
-#include <fstream>
-#include <string>
-
-#include "ingen/Log.hpp"
-#include "ingen/runtime_paths.hpp"
-
-#include "WidgetFactory.hpp"
-
-namespace Ingen {
-namespace GUI {
-
-Glib::ustring WidgetFactory::ui_filename = "";
-
-inline static bool
-is_readable(const std::string& filename)
-{
- std::ifstream fs(filename.c_str());
- const bool fail = fs.fail();
- fs.close();
- return !fail;
-}
-
-void
-WidgetFactory::find_ui_file()
-{
- // Try file in bundle (directory where executable resides)
- ui_filename = Ingen::bundle_file_path("ingen_gui.ui");
- if (is_readable(ui_filename)) {
- return;
- }
-
- // Try ENGINE_UI_PATH from the environment
- const char* const env_path = getenv("INGEN_UI_PATH");
- if (env_path && is_readable(env_path)) {
- ui_filename = env_path;
- return;
- }
-
- // Try the default system installed path
- ui_filename = Ingen::data_file_path("ingen_gui.ui");
- if (is_readable(ui_filename)) {
- return;
- }
-
- throw std::runtime_error((fmt("Unable to find ingen_gui.ui in %1%\n")
- % INGEN_DATA_DIR).str());
-}
-
-Glib::RefPtr<Gtk::Builder>
-WidgetFactory::create(const std::string& toplevel_widget)
-{
- if (ui_filename.empty()) {
- find_ui_file();
- }
-
- if (toplevel_widget.empty()) {
- return Gtk::Builder::create_from_file(ui_filename);
- } else {
- return Gtk::Builder::create_from_file(ui_filename, toplevel_widget.c_str());
- }
-}
-
-} // namespace GUI
-} // namespace Ingen