From e86465f6b554033be89e7e0a0b8c50fd1105c80a Mon Sep 17 00:00:00 2001 From: David Robillard Date: Fri, 20 May 2011 03:27:08 +0000 Subject: Remove dependency on glade and glademm (migrate to GtkBuilder). git-svn-id: http://svn.drobilla.net/lad/trunk/machina@3295 a436a847-0d15-0410-975c-d299462d15a1 --- src/gui/GladeXml.hpp | 60 --- src/gui/MachinaGUI.cpp | 5 +- src/gui/NodePropertiesWindow.cpp | 7 +- src/gui/NodePropertiesWindow.hpp | 12 +- src/gui/WidgetFactory.hpp | 59 +++ src/gui/machina.glade | 857 --------------------------------------- src/gui/machina.ui | 849 ++++++++++++++++++++++++++++++++++++++ src/gui/wscript | 2 +- wscript | 6 +- 9 files changed, 923 insertions(+), 934 deletions(-) delete mode 100644 src/gui/GladeXml.hpp create mode 100644 src/gui/WidgetFactory.hpp delete mode 100644 src/gui/machina.glade create mode 100644 src/gui/machina.ui diff --git a/src/gui/GladeXml.hpp b/src/gui/GladeXml.hpp deleted file mode 100644 index a889693..0000000 --- a/src/gui/GladeXml.hpp +++ /dev/null @@ -1,60 +0,0 @@ -/* This file is part of Machina. - * Copyright 2007-2011 David Robillard - * - * Machina 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. - * - * Machina 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 more details. - * - * You should have received a copy of the GNU General Public License - * along with Machina. If not, see . - */ - -#include -#include -#include - -#include -#include - -#include "machina-config.h" - -class GladeXml -{ -public: - static Glib::RefPtr create() { - Glib::RefPtr xml; - - // Check for the .glade file in current directory - std::string glade_filename = "./machina.glade"; - std::ifstream fs(glade_filename.c_str()); - if (fs.fail()) { // didn't find it, check PKGDATADIR - fs.clear(); - glade_filename = MACHINA_DATA_DIR; - glade_filename += "/machina.glade"; - - fs.open(glade_filename.c_str()); - if (fs.fail()) { - std::cerr << "Unable to find machina.glade in current directory or " - << MACHINA_DATA_DIR << "." << std::endl; - exit(EXIT_FAILURE); - } - fs.close(); - } - - try { - xml = Gnome::Glade::Xml::create(glade_filename); - } catch(const Gnome::Glade::XmlError& ex) { - std::cerr << ex.what() << std::endl; - throw ex; - } - - return xml; - } -}; - diff --git a/src/gui/MachinaGUI.cpp b/src/gui/MachinaGUI.cpp index d4c4841..779bcfc 100644 --- a/src/gui/MachinaGUI.cpp +++ b/src/gui/MachinaGUI.cpp @@ -23,7 +23,6 @@ #include #include #include -#include #include "sord/sordmm.hpp" #include "machina/Controller.hpp" #include "machina/Engine.hpp" @@ -31,7 +30,7 @@ #include "machina/Mutation.hpp" #include "machina/Updates.hpp" #include "client/ClientModel.hpp" -#include "GladeXml.hpp" +#include "WidgetFactory.hpp" #include "MachinaGUI.hpp" #include "MachinaCanvas.hpp" #include "NodeView.hpp" @@ -54,7 +53,7 @@ MachinaGUI::MachinaGUI(SharedPtr engine) { _canvas = boost::shared_ptr(new MachinaCanvas(this, 1600*2, 1200*2)); - Glib::RefPtr xml = GladeXml::create(); + Glib::RefPtr xml = WidgetFactory::create(); xml->get_widget("machina_win", _main_window); xml->get_widget("about_win", _about_window); diff --git a/src/gui/NodePropertiesWindow.cpp b/src/gui/NodePropertiesWindow.cpp index 2a16899..90e1269 100644 --- a/src/gui/NodePropertiesWindow.cpp +++ b/src/gui/NodePropertiesWindow.cpp @@ -17,14 +17,15 @@ #include #include "NodePropertiesWindow.hpp" -#include "GladeXml.hpp" +#include "WidgetFactory.hpp" using namespace std; using namespace Machina; NodePropertiesWindow* NodePropertiesWindow::_instance = NULL; -NodePropertiesWindow::NodePropertiesWindow(BaseObjectType* cobject, const Glib::RefPtr& xml) +NodePropertiesWindow::NodePropertiesWindow(BaseObjectType* cobject, + const Glib::RefPtr& xml) : Gtk::Dialog(cobject) { property_visible() = false; @@ -108,7 +109,7 @@ void NodePropertiesWindow::present(Gtk::Window* parent, SharedPtr node) { if (!_instance) { - Glib::RefPtr xml = GladeXml::create(); + Glib::RefPtr xml = WidgetFactory::create(); xml->get_widget_derived("node_properties_dialog", _instance); diff --git a/src/gui/NodePropertiesWindow.hpp b/src/gui/NodePropertiesWindow.hpp index 0651d01..2b61d03 100644 --- a/src/gui/NodePropertiesWindow.hpp +++ b/src/gui/NodePropertiesWindow.hpp @@ -20,8 +20,6 @@ #include -#include - #include "raul/SharedPtr.hpp" namespace Machina { namespace Client { class ClientObject; } } @@ -29,13 +27,15 @@ namespace Machina { namespace Client { class ClientObject; } } class NodePropertiesWindow : public Gtk::Dialog { public: - static void present(Gtk::Window* parent, SharedPtr node); + NodePropertiesWindow(BaseObjectType* cobject, + const Glib::RefPtr& xml); -private: - friend class Gnome::Glade::Xml; - NodePropertiesWindow(BaseObjectType* cobject, const Glib::RefPtr& glade_xml); ~NodePropertiesWindow(); + static void present(Gtk::Window* parent, + SharedPtr node); + +private: void set_node(SharedPtr node); void apply_clicked(); diff --git a/src/gui/WidgetFactory.hpp b/src/gui/WidgetFactory.hpp new file mode 100644 index 0000000..79d7412 --- /dev/null +++ b/src/gui/WidgetFactory.hpp @@ -0,0 +1,59 @@ +/* This file is part of Machina. + * Copyright 2007-2011 David Robillard + * + * Machina 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. + * + * Machina 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 more details. + * + * You should have received a copy of the GNU General Public License + * along with Machina. If not, see . + */ + +#include +#include +#include + +#include + +#include "machina-config.h" + +class WidgetFactory +{ +public: + static Glib::RefPtr create() { + Glib::RefPtr xml; + + // Check for the .ui file in current directory + std::string ui_filename = "./machina.ui"; + std::ifstream fs(ui_filename.c_str()); + if (fs.fail()) { // didn't find it, check MACHINA_DATA_DIR + fs.clear(); + ui_filename = MACHINA_DATA_DIR; + ui_filename += "/machina.ui"; + + fs.open(ui_filename.c_str()); + if (fs.fail()) { + std::cerr << "Unable to find machina.ui in current directory or " + << MACHINA_DATA_DIR << "." << std::endl; + exit(EXIT_FAILURE); + } + fs.close(); + } + + try { + xml = Gtk::Builder::create_from_file(ui_filename); + } catch(const Gtk::BuilderError& ex) { + std::cerr << ex.what() << std::endl; + throw ex; + } + + return xml; + } +}; + diff --git a/src/gui/machina.glade b/src/gui/machina.glade deleted file mode 100644 index 4cfc5a7..0000000 --- a/src/gui/machina.glade +++ /dev/null @@ -1,857 +0,0 @@ - - - - - - 1 - Machina - 640 - 480 - machina.svg - - - True - - - True - - - True - _File - True - - - - - True - Open a saved machine - gtk-open - True - True - - - - - - True - Save machine - gtk-save - True - True - - - - - - True - Save machine to file - gtk-save-as - True - True - - - - - - True - - - - - True - Import a MIDI file - _Import MIDI... - True - - - - - True - gtk-media-record - 1 - - - - - - - True - Export a MIDI file - _Export MIDI... - True - - - - - True - gtk-convert - 1 - - - - - - - True - - - - - True - Export a DOT file for rendering with GraphViz - Export _GraphViz... - True - - - - - True - gtk-convert - 1 - - - - - - - True - - - - - True - Exit Machina - gtk-quit - True - True - - - - - - - - - - True - _View - True - - - - - True - GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK - Lay out the graph with edge length corresponding to tail node duration - _Time Based Edges - True - - - - - True - Show labels on canvas - _Labels - True - - - - - - - True - _Toolbar - True - True - - - - - - - - - - - True - _Help - True - - - - - True - gtk-help - True - True - - - - - - True - gtk-about - True - True - - - - - - - - - - False - False - - - - - True - GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK - - - True - GTK_TOOLBAR_ICONS - False - - - True - Record - gtk-media-record - - - False - - - - - True - Stop playback or recording - gtk-media-stop - - - False - - - - - True - Play - gtk-media-play - True - - - False - - - - - True - - - False - False - - - - - True - GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK - Step recording - gtk-add - - - False - - - - - True - - - False - False - - - - - True - - - True - - - True - True - GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK - Internal clock - 0 - True - True - - - - - True - True - Set internal tempo - 120 1 640 1 10 0 - 1 - - - 1 - - - - - True - BPM - - - False - False - 2 - - - - - - - False - False - - - - - True - - - False - False - - - - - True - - - True - 4 - - - True - True - Quantize recording (beats) - 1/ - True - 0 - True - - - False - False - - - - - True - False - True - 1 1 99 1 4 0 - 1 - - - 1 - - - - - - - False - False - - - - - True - - - False - False - - - - - True - Zoom to normal size - gtk-zoom-100 - - - False - - - - - True - Zoom to fit entire machine - gtk-zoom-fit - - - False - - - - - True - Automatically arrange nodes - gtk-refresh - - - False - - - - - - - True - GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK - GTK_TOOLBAR_ICONS - False - GTK_ICON_SIZE_SMALL_TOOLBAR - True - - - True - GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK - - - False - - - - - True - GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK - Load MIDI file as evolutionary goal - gtk-open - - - False - - - - - True - GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK - - - False - False - - - - - True - GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK - Evolve machine (towards target MIDI) - gtk-execute - - - False - - - - - True - GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK - - - False - False - - - - - True - GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK - Random mutation - gtk-dialog-warning - - - - False - - - - - True - GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK - - - False - False - - - - - True - GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK - Compress (merge identical nodes) - gtk-convert - - - False - - - - - True - GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK - - - False - False - - - - - True - GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK - Create node - Add Node - gtk-new - - - False - - - - - True - GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK - Delete node - Delete Node - gtk-delete - - - False - - - - - True - GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK - Adjust node - Adjust Node - gtk-edit - - - False - - - - - True - GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK - - - False - False - - - - - True - GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK - Add edge - Add Edge - gtk-connect - - - False - - - - - True - GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK - Remove edge - Remove Edge - gtk-disconnect - - - False - - - - - True - GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK - Adjust edge - Adjust Edge - gtk-select-color - - - False - - - - - False - 1 - - - - - False - 1 - - - - - True - True - True - True - True - GTK_SHADOW_IN - - - - - - 2 - 2 - - - - - - - True - GDK_WINDOW_TYPE_HINT_NORMAL - © 2007 David Robillard <http://drobilla.net> - A MIDI sequencer based on - probabilistic finite-state automata - http://drobilla.net/software/machina - Website: - Machina 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 2 of the License, or -(at your option) any later version. - -Machina 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 more details. - -You should have received a copy of the GNU General Public License -along with Machina; if not, write to the Free Software Foundation, Inc., -51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA - - David Robillard <d@drobilla.net> - translator-credits - machina.svg - - - - - - - False - GTK_PACK_END - - - - - - - 8 - Machina Help - False - GTK_WIN_POS_CENTER_ON_PARENT - gtk-help - GDK_WINDOW_TYPE_HINT_DIALOG - - - True - - - True - 0 - 0 - Initial nodes are shown with a thick border. -Selector nodes are shown in green. - -- Right click canvas to create a new node -- Middle click nodes to learn a MIDI note for that node -- Right click two nodes in succession to connect nodes -- Double click a node to show its properties dialog -- Ctrl+Left click a node to make it an initial node -- Ctrl+Right click a node to make it a selector node -- Ctrl+Left click edge probabilities to decrease -- Ctrl+Right click edge probabilities to increase - - - 8 - 2 - - - - - True - GTK_BUTTONBOX_END - - - True - True - True - gtk-close - True - -7 - - - - - False - GTK_PACK_END - - - - - - - 8 - dialog1 - False - machina.svg - GDK_WINDOW_TYPE_HINT_DIALOG - True - True - - - True - 8 - - - True - 2 - 2 - 4 - 8 - - - True - True - True - 1 0 999999 1 10 0 - 1 - 2 - True - - - 1 - 2 - 1 - 2 - - - - - - True - 0 - Duration: - - - 1 - 2 - GTK_FILL - - - - - - True - 0 - Note: - - - GTK_FILL - - - - - - True - True - 60 0 127 1 10 0 - 1 - True - - - 1 - 2 - - - - - - 2 - - - - - True - GTK_BUTTONBOX_END - - - True - True - True - gtk-apply - True - -10 - - - - - True - True - True - gtk-cancel - True - -6 - - - 1 - - - - - True - True - True - True - gtk-ok - True - -5 - - - 2 - - - - - False - GTK_PACK_END - - - - - - diff --git a/src/gui/machina.ui b/src/gui/machina.ui new file mode 100644 index 0000000..61e7d95 --- /dev/null +++ b/src/gui/machina.ui @@ -0,0 +1,849 @@ + + + + + + 1 + Machina + 640 + 480 + machina.svg + + + True + + + True + + + True + _File + True + + + + + gtk-open + True + True + True + + + + + + gtk-save + True + True + True + + + + + + gtk-save-as + True + True + True + + + + + + True + + + + + _Import MIDI... + True + True + True + + + + + + + _Export MIDI... + True + True + True + + + + + + + True + + + + + Export _GraphViz... + True + True + True + + + + + + + True + + + + + gtk-quit + True + True + True + + + + + + + + + + True + _View + True + + + + + True + GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK + _Time Based Edges + True + + + + + True + _Labels + True + + + + + + + True + _Toolbar + True + True + + + + + + + + + + + True + _Help + True + + + + + gtk-help + True + True + True + + + + + + gtk-about + True + True + True + + + + + + + + + + False + False + 0 + + + + + True + GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK + + + True + icons + False + + + True + gtk-media-record + + + False + True + + + + + True + gtk-media-stop + + + False + True + + + + + True + gtk-media-play + True + + + False + True + + + + + True + + + False + + + + + True + GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK + gtk-add + + + False + True + + + + + True + + + False + + + + + True + + + True + + + True + True + False + GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK + True + True + + + 0 + + + + + True + True + + 1 + + + 1 + + + + + True + BPM + + + False + False + 2 + + + + + + + False + + + + + True + + + False + + + + + True + + + True + 4 + + + 1/ + True + True + False + True + True + + + False + False + 0 + + + + + True + False + True + + 1 + + + 1 + + + + + + + False + + + + + True + + + False + + + + + True + gtk-zoom-100 + + + False + True + + + + + True + gtk-zoom-fit + + + False + True + + + + + True + gtk-refresh + + + False + True + + + + + 0 + + + + + True + GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK + icons + False + 0 + True + + + True + GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK + + + False + + + + + True + GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK + gtk-open + + + False + True + + + + + True + GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK + + + False + + + + + True + GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK + Evolve machine (towards target MIDI) + gtk-execute + + + False + True + + + + + True + GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK + + + False + + + + + True + GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK + gtk-dialog-warning + + + + False + True + + + + + True + GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK + + + False + + + + + True + GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK + gtk-convert + + + False + True + + + + + True + GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK + + + False + + + + + True + GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK + Add Node + gtk-new + + + False + True + + + + + True + GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK + Delete Node + gtk-delete + + + False + True + + + + + True + GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK + Adjust Node + gtk-edit + + + False + True + + + + + True + GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK + + + False + + + + + True + GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK + Add Edge + gtk-connect + + + False + True + + + + + True + GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK + Remove Edge + gtk-disconnect + + + False + True + + + + + True + GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK + Adjust Edge + gtk-select-color + + + False + True + + + + + False + 1 + + + + + False + 1 + + + + + True + True + True + True + True + in + + + + + + 2 + 2 + + + + + + + True + normal + © 2007 David Robillard <http://drobilla.net> + A MIDI sequencer based on + probabilistic finite-state automata + http://drobilla.net/software/machina + Website: + Machina 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 2 of the License, or +(at your option) any later version. + +Machina 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 more details. + +You should have received a copy of the GNU General Public License +along with Machina; if not, write to the Free Software Foundation, Inc., +51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA + + David Robillard <d@drobilla.net> + translator-credits + machina.svg + + + + + + False + end + 0 + + + + + + + 8 + Machina Help + False + center-on-parent + gtk-help + dialog + + + True + + + True + 0 + 0 + Initial nodes are shown with a thick border. +Selector nodes are shown in green. + +- Right click canvas to create a new node +- Middle click nodes to learn a MIDI note for that node +- Right click two nodes in succession to connect nodes +- Double click a node to show its properties dialog +- Ctrl+Left click a node to make it an initial node +- Ctrl+Right click a node to make it a selector node +- Ctrl+Left click edge probabilities to decrease +- Ctrl+Right click edge probabilities to increase + + + 8 + 2 + + + + + True + end + + + gtk-close + True + True + True + False + True + + + False + False + 0 + + + + + False + end + 0 + + + + + + closebutton1 + + + + 8 + dialog1 + False + machina.svg + dialog + True + True + + + True + 8 + + + True + 2 + 2 + 4 + 8 + + + True + True + True + + 1 + 2 + True + + + 1 + 2 + 1 + 2 + + + + + + True + 0 + Duration: + + + 1 + 2 + GTK_FILL + + + + + + True + 0 + Note: + + + GTK_FILL + + + + + + True + True + + 1 + True + + + 1 + 2 + + + + + + 2 + + + + + True + end + + + gtk-apply + True + True + True + False + True + + + False + False + 0 + + + + + gtk-cancel + True + True + True + False + True + + + False + False + 1 + + + + + gtk-ok + True + True + True + True + False + True + + + False + False + 2 + + + + + False + end + 0 + + + + + + node_properties_apply_button + node_properties_cancel_button + node_properties_ok_button + + + diff --git a/src/gui/wscript b/src/gui/wscript index 089a70b..a728ce1 100644 --- a/src/gui/wscript +++ b/src/gui/wscript @@ -29,7 +29,7 @@ def build(bld): ''') # GUI runtime files - bld.install_files('${DATADIR}/machina', 'machina.glade') + bld.install_files('${DATADIR}/machina', 'machina.ui') bld.install_files('${DATADIR}/machina', 'machina.svg') # Executable diff --git a/wscript b/wscript index a0637ac..3d89c27 100644 --- a/wscript +++ b/wscript @@ -27,15 +27,13 @@ def configure(conf): autowaf.check_pkg(conf, 'gthread-2.0', uselib_store='GTHREAD', atleast_version='2.14.0', mandatory=True) autowaf.check_pkg(conf, 'gtkmm-2.4', uselib_store='GTKMM', - atleast_version='2.11.12', mandatory=False) + atleast_version='2.12.0', mandatory=False) autowaf.check_pkg(conf, 'jack', uselib_store='JACK', atleast_version='0.109.0', mandatory=True) autowaf.check_pkg(conf, 'raul', uselib_store='RAUL', atleast_version='0.5.1', mandatory=True) autowaf.check_pkg(conf, 'flowcanvas', uselib_store='FLOWCANVAS', atleast_version='0.5.1', mandatory=False) - autowaf.check_pkg(conf, 'libglademm-2.4', uselib_store='GLADEMM', - atleast_version='2.6.0', mandatory=False) autowaf.check_pkg(conf, 'sord-0', uselib_store='SORD', atleast_version='0.2.0', mandatory=False) #autowaf.check_pkg(conf, 'eugene', uselib_store='EUGENE', @@ -47,7 +45,7 @@ def configure(conf): define_name='HAVE_POSIX_MEMALIGN', mandatory=False) - if conf.is_defined('HAVE_GLADEMM') and conf.is_defined('HAVE_FLOWCANVAS'): + if conf.is_defined('HAVE_GTKMM') and conf.is_defined('HAVE_FLOWCANVAS'): autowaf.define(conf, 'MACHINA_BUILD_GUI', 1) autowaf.define(conf, 'MACHINA_PPQN', 19200) -- cgit v1.2.1