summaryrefslogtreecommitdiffstats
path: root/src/gui/GraphWindow.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/gui/GraphWindow.cpp')
-rw-r--r--src/gui/GraphWindow.cpp77
1 files changed, 77 insertions, 0 deletions
diff --git a/src/gui/GraphWindow.cpp b/src/gui/GraphWindow.cpp
new file mode 100644
index 00000000..0767f76d
--- /dev/null
+++ b/src/gui/GraphWindow.cpp
@@ -0,0 +1,77 @@
+/*
+ This file is part of Ingen.
+ Copyright 2007-2012 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 "ingen/client/ClientStore.hpp"
+#include "ingen/client/GraphModel.hpp"
+
+#include "App.hpp"
+#include "GraphCanvas.hpp"
+#include "GraphView.hpp"
+#include "GraphWindow.hpp"
+#include "WindowFactory.hpp"
+
+namespace Ingen {
+namespace GUI {
+
+GraphWindow::GraphWindow(BaseObjectType* cobject,
+ const Glib::RefPtr<Gtk::Builder>& xml)
+ : Window(cobject)
+ , _box(NULL)
+ , _position_stored(false)
+ , _x(0)
+ , _y(0)
+{
+ property_visible() = false;
+
+ xml->get_widget_derived("graph_win_vbox", _box);
+
+ set_title("Ingen");
+}
+
+GraphWindow::~GraphWindow()
+{
+ delete _box;
+}
+
+void
+GraphWindow::init_window(App& app)
+{
+ Window::init_window(app);
+ _box->init_box(app);
+ _box->set_window(this);
+}
+
+void
+GraphWindow::on_show()
+{
+ if (_position_stored)
+ move(_x, _y);
+
+ Gtk::Window::on_show();
+
+ _box->view()->canvas()->widget().grab_focus();
+}
+
+void
+GraphWindow::on_hide()
+{
+ _position_stored = true;
+ get_position(_x, _y);
+ Gtk::Window::on_hide();
+}
+
+} // namespace GUI
+} // namespace Ingen