aboutsummaryrefslogtreecommitdiffstats
path: root/src/gui
diff options
context:
space:
mode:
Diffstat (limited to 'src/gui')
-rw-r--r--src/gui/MachinaGUI.cpp5
-rw-r--r--src/gui/NodePropertiesWindow.cpp7
-rw-r--r--src/gui/NodePropertiesWindow.hpp12
-rw-r--r--src/gui/WidgetFactory.hpp (renamed from src/gui/GladeXml.hpp)27
-rw-r--r--src/gui/machina.ui (renamed from src/gui/machina.glade)550
-rw-r--r--src/gui/wscript2
6 files changed, 297 insertions, 306 deletions
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 <limits.h>
#include <pthread.h>
#include <libgnomecanvasmm.h>
-#include <libglademm/xml.h>
#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<Machina::Engine> engine)
{
_canvas = boost::shared_ptr<MachinaCanvas>(new MachinaCanvas(this, 1600*2, 1200*2));
- Glib::RefPtr<Gnome::Glade::Xml> xml = GladeXml::create();
+ Glib::RefPtr<Gtk::Builder> 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 <string>
#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<Gnome::Glade::Xml>& xml)
+NodePropertiesWindow::NodePropertiesWindow(BaseObjectType* cobject,
+ const Glib::RefPtr<Gtk::Builder>& xml)
: Gtk::Dialog(cobject)
{
property_visible() = false;
@@ -108,7 +109,7 @@ void
NodePropertiesWindow::present(Gtk::Window* parent, SharedPtr<Machina::Client::ClientObject> node)
{
if (!_instance) {
- Glib::RefPtr<Gnome::Glade::Xml> xml = GladeXml::create();
+ Glib::RefPtr<Gtk::Builder> 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 <gtkmm.h>
-#include <libglademm/xml.h>
-
#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<Machina::Client::ClientObject> node);
+ NodePropertiesWindow(BaseObjectType* cobject,
+ const Glib::RefPtr<Gtk::Builder>& xml);
-private:
- friend class Gnome::Glade::Xml;
- NodePropertiesWindow(BaseObjectType* cobject, const Glib::RefPtr<Gnome::Glade::Xml>& glade_xml);
~NodePropertiesWindow();
+ static void present(Gtk::Window* parent,
+ SharedPtr<Machina::Client::ClientObject> node);
+
+private:
void set_node(SharedPtr<Machina::Client::ClientObject> node);
void apply_clicked();
diff --git a/src/gui/GladeXml.hpp b/src/gui/WidgetFactory.hpp
index a889693..79d7412 100644
--- a/src/gui/GladeXml.hpp
+++ b/src/gui/WidgetFactory.hpp
@@ -20,27 +20,26 @@
#include <string>
#include <gtkmm.h>
-#include <libglademm/xml.h>
#include "machina-config.h"
-class GladeXml
+class WidgetFactory
{
public:
- static Glib::RefPtr<Gnome::Glade::Xml> create() {
- Glib::RefPtr<Gnome::Glade::Xml> xml;
+ static Glib::RefPtr<Gtk::Builder> create() {
+ Glib::RefPtr<Gtk::Builder> 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
+ // 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();
- glade_filename = MACHINA_DATA_DIR;
- glade_filename += "/machina.glade";
+ ui_filename = MACHINA_DATA_DIR;
+ ui_filename += "/machina.ui";
- fs.open(glade_filename.c_str());
+ fs.open(ui_filename.c_str());
if (fs.fail()) {
- std::cerr << "Unable to find machina.glade in current directory or "
+ std::cerr << "Unable to find machina.ui in current directory or "
<< MACHINA_DATA_DIR << "." << std::endl;
exit(EXIT_FAILURE);
}
@@ -48,8 +47,8 @@ public:
}
try {
- xml = Gnome::Glade::Xml::create(glade_filename);
- } catch(const Gnome::Glade::XmlError& ex) {
+ xml = Gtk::Builder::create_from_file(ui_filename);
+ } catch(const Gtk::BuilderError& ex) {
std::cerr << ex.what() << std::endl;
throw ex;
}
diff --git a/src/gui/machina.glade b/src/gui/machina.ui
index 4cfc5a7..61e7d95 100644
--- a/src/gui/machina.glade
+++ b/src/gui/machina.ui
@@ -1,640 +1,608 @@
-<?xml version="1.0" encoding="UTF-8" standalone="no"?>
-<!DOCTYPE glade-interface SYSTEM "glade-2.0.dtd">
-<!--*- mode: xml -*-->
-<glade-interface>
- <widget class="GtkWindow" id="machina_win">
+<?xml version="1.0"?>
+<interface>
+ <!-- interface-requires gtk+ 2.10 -->
+ <!-- interface-naming-policy toplevel-contextual -->
+ <object class="GtkWindow" id="machina_win">
<property name="border_width">1</property>
<property name="title" translatable="yes">Machina</property>
<property name="default_width">640</property>
<property name="default_height">480</property>
<property name="icon">machina.svg</property>
<child>
- <widget class="GtkVBox" id="main_vbox">
+ <object class="GtkVBox" id="main_vbox">
<property name="visible">True</property>
<child>
- <widget class="GtkMenuBar" id="menubar">
+ <object class="GtkMenuBar" id="menubar">
<property name="visible">True</property>
<child>
- <widget class="GtkMenuItem" id="file_menu">
+ <object class="GtkMenuItem" id="file_menu">
<property name="visible">True</property>
<property name="label" translatable="yes">_File</property>
<property name="use_underline">True</property>
- <child>
- <widget class="GtkMenu" id="file_menu_menu">
+ <child type="submenu">
+ <object class="GtkMenu" id="file_menu_menu">
<child>
- <widget class="GtkImageMenuItem" id="open_menuitem">
- <property name="visible">True</property>
- <property name="tooltip" translatable="yes">Open a saved machine</property>
+ <object class="GtkImageMenuItem" id="open_menuitem">
<property name="label">gtk-open</property>
+ <property name="visible">True</property>
<property name="use_underline">True</property>
<property name="use_stock">True</property>
<signal name="activate" handler="on_open_session_menuitem_activate"/>
- </widget>
+ </object>
</child>
<child>
- <widget class="GtkImageMenuItem" id="save_menuitem">
- <property name="visible">True</property>
- <property name="tooltip" translatable="yes">Save machine</property>
+ <object class="GtkImageMenuItem" id="save_menuitem">
<property name="label">gtk-save</property>
+ <property name="visible">True</property>
<property name="use_underline">True</property>
<property name="use_stock">True</property>
<signal name="activate" handler="on_save_session_menuitem_activate"/>
- </widget>
+ </object>
</child>
<child>
- <widget class="GtkImageMenuItem" id="save_as_menuitem">
- <property name="visible">True</property>
- <property name="tooltip" translatable="yes">Save machine to file</property>
+ <object class="GtkImageMenuItem" id="save_as_menuitem">
<property name="label">gtk-save-as</property>
+ <property name="visible">True</property>
<property name="use_underline">True</property>
<property name="use_stock">True</property>
<signal name="activate" handler="on_save_session_as_menuitem_activate"/>
- </widget>
+ </object>
</child>
<child>
- <widget class="GtkSeparatorMenuItem" id="separator5">
+ <object class="GtkSeparatorMenuItem" id="separator5">
<property name="visible">True</property>
- </widget>
+ </object>
</child>
<child>
- <widget class="GtkImageMenuItem" id="import_midi_menuitem">
+ <object class="GtkImageMenuItem" id="import_midi_menuitem">
+ <property name="label">_Import MIDI...</property>
<property name="visible">True</property>
- <property name="tooltip" translatable="yes">Import a MIDI file</property>
- <property name="label" translatable="yes">_Import MIDI...</property>
<property name="use_underline">True</property>
+ <property name="use_stock">True</property>
+ <accelerator key="I" signal="activate" modifiers="GDK_CONTROL_MASK"/>
<signal name="activate" handler="on_learn_midi_menuitem_activate"/>
- <accelerator key="I" modifiers="GDK_CONTROL_MASK" signal="activate"/>
- <child internal-child="image">
- <widget class="GtkImage" id="image26">
- <property name="visible">True</property>
- <property name="stock">gtk-media-record</property>
- <property name="icon_size">1</property>
- </widget>
- </child>
- </widget>
+ </object>
</child>
<child>
- <widget class="GtkImageMenuItem" id="export_midi_menuitem">
+ <object class="GtkImageMenuItem" id="export_midi_menuitem">
+ <property name="label">_Export MIDI...</property>
<property name="visible">True</property>
- <property name="tooltip" translatable="yes">Export a MIDI file</property>
- <property name="label" translatable="yes">_Export MIDI...</property>
<property name="use_underline">True</property>
+ <property name="use_stock">True</property>
+ <accelerator key="E" signal="activate" modifiers="GDK_CONTROL_MASK"/>
<signal name="activate" handler="on_export_midi_menuitem_activate"/>
- <accelerator key="E" modifiers="GDK_CONTROL_MASK" signal="activate"/>
- <child internal-child="image">
- <widget class="GtkImage" id="image27">
- <property name="visible">True</property>
- <property name="stock">gtk-convert</property>
- <property name="icon_size">1</property>
- </widget>
- </child>
- </widget>
+ </object>
</child>
<child>
- <widget class="GtkSeparatorMenuItem" id="separator7">
+ <object class="GtkSeparatorMenuItem" id="separator7">
<property name="visible">True</property>
- </widget>
+ </object>
</child>
<child>
- <widget class="GtkImageMenuItem" id="export_graphviz_menuitem">
+ <object class="GtkImageMenuItem" id="export_graphviz_menuitem">
+ <property name="label">Export _GraphViz...</property>
<property name="visible">True</property>
- <property name="tooltip" translatable="yes">Export a DOT file for rendering with GraphViz</property>
- <property name="label" translatable="yes">Export _GraphViz...</property>
<property name="use_underline">True</property>
+ <property name="use_stock">True</property>
+ <accelerator key="G" signal="activate" modifiers="GDK_CONTROL_MASK"/>
<signal name="activate" handler="on_export_graphviz_menuitem_activate"/>
- <accelerator key="G" modifiers="GDK_CONTROL_MASK" signal="activate"/>
- <child internal-child="image">
- <widget class="GtkImage" id="image28">
- <property name="visible">True</property>
- <property name="stock">gtk-convert</property>
- <property name="icon_size">1</property>
- </widget>
- </child>
- </widget>
+ </object>
</child>
<child>
- <widget class="GtkSeparatorMenuItem" id="separator6">
+ <object class="GtkSeparatorMenuItem" id="separator6">
<property name="visible">True</property>
- </widget>
+ </object>
</child>
<child>
- <widget class="GtkImageMenuItem" id="quit_menuitem">
- <property name="visible">True</property>
- <property name="tooltip" translatable="yes">Exit Machina</property>
+ <object class="GtkImageMenuItem" id="quit_menuitem">
<property name="label">gtk-quit</property>
+ <property name="visible">True</property>
<property name="use_underline">True</property>
<property name="use_stock">True</property>
<signal name="activate" handler="on_quit1_activate"/>
- </widget>
+ </object>
</child>
- </widget>
+ </object>
</child>
- </widget>
+ </object>
</child>
<child>
- <widget class="GtkMenuItem" id="view_menu">
+ <object class="GtkMenuItem" id="view_menu">
<property name="visible">True</property>
<property name="label" translatable="yes">_View</property>
<property name="use_underline">True</property>
- <child>
- <widget class="GtkMenu" id="view_menu_menu">
+ <child type="submenu">
+ <object class="GtkMenu" id="view_menu_menu">
<child>
- <widget class="GtkCheckMenuItem" id="view_time_edges_menuitem">
+ <object class="GtkCheckMenuItem" id="view_time_edges_menuitem">
<property name="visible">True</property>
<property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>
- <property name="tooltip" translatable="yes">Lay out the graph with edge length corresponding to tail node duration</property>
<property name="label" translatable="yes">_Time Based Edges</property>
<property name="use_underline">True</property>
- </widget>
+ </object>
</child>
<child>
- <widget class="GtkCheckMenuItem" id="view_labels_menuitem">
+ <object class="GtkCheckMenuItem" id="view_labels_menuitem">
<property name="visible">True</property>
- <property name="tooltip" translatable="yes">Show labels on canvas</property>
<property name="label" translatable="yes">_Labels</property>
<property name="use_underline">True</property>
+ <accelerator key="L" signal="activate" modifiers="GDK_CONTROL_MASK"/>
<signal name="activate" handler="on_view_edge_labels_menuitem_activate"/>
- <accelerator key="L" modifiers="GDK_CONTROL_MASK" signal="activate"/>
- </widget>
+ </object>
</child>
<child>
- <widget class="GtkCheckMenuItem" id="view_toolbar_menuitem">
+ <object class="GtkCheckMenuItem" id="view_toolbar_menuitem">
<property name="visible">True</property>
<property name="label" translatable="yes">_Toolbar</property>
<property name="use_underline">True</property>
<property name="active">True</property>
+ <accelerator key="T" signal="activate" modifiers="GDK_CONTROL_MASK"/>
<signal name="activate" handler="on_toolbar2_activate"/>
- <accelerator key="T" modifiers="GDK_CONTROL_MASK" signal="activate"/>
- </widget>
+ </object>
</child>
- </widget>
+ </object>
</child>
- </widget>
+ </object>
</child>
<child>
- <widget class="GtkMenuItem" id="help_menu">
+ <object class="GtkMenuItem" id="help_menu">
<property name="visible">True</property>
<property name="label" translatable="yes">_Help</property>
<property name="use_underline">True</property>
- <child>
- <widget class="GtkMenu" id="help_menu_menu">
+ <child type="submenu">
+ <object class="GtkMenu" id="help_menu_menu">
<child>
- <widget class="GtkImageMenuItem" id="help_help_menuitem">
- <property name="visible">True</property>
+ <object class="GtkImageMenuItem" id="help_help_menuitem">
<property name="label">gtk-help</property>
+ <property name="visible">True</property>
<property name="use_underline">True</property>
<property name="use_stock">True</property>
<signal name="activate" handler="on_help_about_menuitem_activate"/>
- </widget>
+ </object>
</child>
<child>
- <widget class="GtkImageMenuItem" id="help_about_menuitem">
- <property name="visible">True</property>
+ <object class="GtkImageMenuItem" id="help_about_menuitem">
<property name="label">gtk-about</property>
+ <property name="visible">True</property>
<property name="use_underline">True</property>
<property name="use_stock">True</property>
<signal name="activate" handler="on_about1_activate"/>
- </widget>
+ </object>
</child>
- </widget>
+ </object>
</child>
- </widget>
+ </object>
</child>
- </widget>
+ </object>
<packing>
<property name="expand">False</property>
<property name="fill">False</property>
+ <property name="position">0</property>
</packing>
</child>
<child>
- <widget class="GtkHBox" id="hbox2">
+ <object class="GtkHBox" id="hbox2">
<property name="visible">True</property>
<property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>
<child>
- <widget class="GtkToolbar" id="toolbar">
+ <object class="GtkToolbar" id="toolbar">
<property name="visible">True</property>
- <property name="toolbar_style">GTK_TOOLBAR_ICONS</property>
+ <property name="toolbar_style">icons</property>
<property name="show_arrow">False</property>
<child>
- <widget class="GtkToggleToolButton" id="record_but">
+ <object class="GtkToggleToolButton" id="record_but">
<property name="visible">True</property>
- <property name="tooltip" translatable="yes">Record</property>
<property name="stock_id">gtk-media-record</property>
- </widget>
+ </object>
<packing>
<property name="expand">False</property>
+ <property name="homogeneous">True</property>
</packing>
</child>
<child>
- <widget class="GtkToolButton" id="stop_but">
+ <object class="GtkToolButton" id="stop_but">
<property name="visible">True</property>
- <property name="tooltip" translatable="yes">Stop playback or recording</property>
<property name="stock_id">gtk-media-stop</property>
- </widget>
+ </object>
<packing>
<property name="expand">False</property>
+ <property name="homogeneous">True</property>
</packing>
</child>
<child>
- <widget class="GtkToggleToolButton" id="play_but">
+ <object class="GtkToggleToolButton" id="play_but">
<property name="visible">True</property>
- <property name="tooltip" translatable="yes">Play</property>
<property name="stock_id">gtk-media-play</property>
<property name="active">True</property>
- </widget>
+ </object>
<packing>
<property name="expand">False</property>
+ <property name="homogeneous">True</property>
</packing>
</child>
<child>
- <widget class="GtkSeparatorToolItem" id="separatortoolitem4">
+ <object class="GtkSeparatorToolItem" id="separatortoolitem4">
<property name="visible">True</property>
- </widget>
+ </object>
<packing>
<property name="expand">False</property>
- <property name="homogeneous">False</property>
</packing>
</child>
<child>
- <widget class="GtkToggleToolButton" id="step_record_checkbutton">
+ <object class="GtkToggleToolButton" id="step_record_checkbutton">
<property name="visible">True</property>
<property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>
- <property name="tooltip" translatable="yes">Step recording</property>
<property name="stock_id">gtk-add</property>
- </widget>
+ </object>
<packing>
<property name="expand">False</property>
+ <property name="homogeneous">True</property>
</packing>
</child>
- <child>
- <widget class="GtkSeparatorToolItem" id="separatortoolitem4">
+ <child>
+ <object class="GtkSeparatorToolItem" id="separatortoolitem1">
<property name="visible">True</property>
- </widget>
+ </object>
<packing>
<property name="expand">False</property>
- <property name="homogeneous">False</property>
</packing>
</child>
<child>
- <widget class="GtkToolItem" id="toolitem1">
+ <object class="GtkToolItem" id="toolitem1">
<property name="visible">True</property>
<child>
- <widget class="GtkHBox" id="hbox3">
+ <object class="GtkHBox" id="hbox3">
<property name="visible">True</property>
<child>
- <widget class="GtkCheckButton" id="clock_checkbutton">
+ <object class="GtkCheckButton" id="clock_checkbutton">
<property name="visible">True</property>
<property name="can_focus">True</property>
+ <property name="receives_default">False</property>
<property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>
- <property name="tooltip" translatable="yes">Internal clock</property>
- <property name="response_id">0</property>
<property name="active">True</property>
<property name="draw_indicator">True</property>
- </widget>
+ </object>
+ <packing>
+ <property name="position">0</property>
+ </packing>
</child>
<child>
- <widget class="GtkSpinButton" id="bpm_spinbutton">
+ <object class="GtkSpinButton" id="bpm_spinbutton">
<property name="visible">True</property>
<property name="can_focus">True</property>
- <property name="tooltip" translatable="yes">Set internal tempo</property>
- <property name="adjustment">120 1 640 1 10 0</property>
+ <property name="adjustment"></property>
<property name="climb_rate">1</property>
- </widget>
+ </object>
<packing>
<property name="position">1</property>
</packing>
</child>
<child>
- <widget class="GtkLabel" id="label8">
+ <object class="GtkLabel" id="label8">
<property name="visible">True</property>
<property name="label" translatable="yes"> BPM</property>
- </widget>
+ </object>
<packing>
<property name="expand">False</property>
<property name="fill">False</property>
<property name="position">2</property>
</packing>
</child>
- </widget>
+ </object>
</child>
- </widget>
+ </object>
<packing>
<property name="expand">False</property>
- <property name="homogeneous">False</property>
</packing>
</child>
<child>
- <widget class="GtkSeparatorToolItem" id="separatortoolitem2">
+ <object class="GtkSeparatorToolItem" id="separatortoolitem2">
<property name="visible">True</property>
- </widget>
+ </object>
<packing>
<property name="expand">False</property>
- <property name="homogeneous">False</property>
</packing>
</child>
<child>
- <widget class="GtkToolItem" id="toolitem3">
+ <object class="GtkToolItem" id="toolitem3">
<property name="visible">True</property>
<child>
- <widget class="GtkHBox" id="hbox4">
+ <object class="GtkHBox" id="hbox4">
<property name="visible">True</property>
<property name="border_width">4</property>
<child>
- <widget class="GtkCheckButton" id="quantize_checkbutton">
+ <object class="GtkCheckButton" id="quantize_checkbutton">
+ <property name="label" translatable="yes">1/</property>
<property name="visible">True</property>
<property name="can_focus">True</property>
- <property name="tooltip" translatable="yes">Quantize recording (beats)</property>
- <property name="label" translatable="yes">1/</property>
+ <property name="receives_default">False</property>
<property name="use_underline">True</property>
- <property name="response_id">0</property>
<property name="draw_indicator">True</property>
- </widget>
+ </object>
<packing>
<property name="expand">False</property>
<property name="fill">False</property>
+ <property name="position">0</property>
</packing>
</child>
<child>
- <widget class="GtkSpinButton" id="quantize_spinbutton">
+ <object class="GtkSpinButton" id="quantize_spinbutton">
<property name="visible">True</property>
<property name="sensitive">False</property>
<property name="can_focus">True</property>
- <property name="adjustment">1 1 99 1 4 0</property>
+ <property name="adjustment"></property>
<property name="climb_rate">1</property>
- </widget>
+ </object>
<packing>
<property name="position">1</property>
</packing>
</child>
- </widget>
+ </object>
</child>
- </widget>
+ </object>
<packing>
<property name="expand">False</property>
- <property name="homogeneous">False</property>
</packing>
</child>
<child>
- <widget class="GtkSeparatorToolItem" id="separatortoolitem3">
+ <object class="GtkSeparatorToolItem" id="separatortoolitem3">
<property name="visible">True</property>
- </widget>
+ </object>
<packing>
<property name="expand">False</property>
- <property name="homogeneous">False</property>
</packing>
</child>
<child>
- <widget class="GtkToolButton" id="zoom_normal_but">
+ <object class="GtkToolButton" id="zoom_normal_but">
<property name="visible">True</property>
- <property name="tooltip" translatable="yes">Zoom to normal size</property>
<property name="stock_id">gtk-zoom-100</property>
- </widget>
+ </object>
<packing>
<property name="expand">False</property>
+ <property name="homogeneous">True</property>
</packing>
</child>
<child>
- <widget class="GtkToolButton" id="zoom_full_but">
+ <object class="GtkToolButton" id="zoom_full_but">
<property name="visible">True</property>
- <property name="tooltip" translatable="yes">Zoom to fit entire machine</property>
<property name="stock_id">gtk-zoom-fit</property>
- </widget>
+ </object>
<packing>
<property name="expand">False</property>
+ <property name="homogeneous">True</property>
</packing>
</child>
<child>
- <widget class="GtkToolButton" id="arrange_but">
+ <object class="GtkToolButton" id="arrange_but">
<property name="visible">True</property>
- <property name="tooltip" translatable="yes">Automatically arrange nodes</property>
<property name="stock_id">gtk-refresh</property>
- </widget>
+ </object>
<packing>
<property name="expand">False</property>
+ <property name="homogeneous">True</property>
</packing>
</child>
- </widget>
+ </object>
+ <packing>
+ <property name="position">0</property>
+ </packing>
</child>
<child>
- <widget class="GtkToolbar" id="evolve_toolbar">
+ <object class="GtkToolbar" id="evolve_toolbar">
<property name="visible">True</property>
<property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>
- <property name="toolbar_style">GTK_TOOLBAR_ICONS</property>
+ <property name="toolbar_style">icons</property>
<property name="show_arrow">False</property>
- <property name="icon_size">GTK_ICON_SIZE_SMALL_TOOLBAR</property>
+ <property name="icon_size">0</property>
<property name="icon_size_set">True</property>
<child>
- <widget class="GtkSeparatorToolItem" id="toolbutton7">
+ <object class="GtkSeparatorToolItem" id="toolbutton7">
<property name="visible">True</property>
<property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>
- </widget>
+ </object>
<packing>
<property name="expand">False</property>
</packing>
</child>
<child>
- <widget class="GtkToolButton" id="load_target_but">
+ <object class="GtkToolButton" id="load_target_but">
<property name="visible">True</property>
<property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>
- <property name="tooltip" translatable="yes">Load MIDI file as evolutionary goal</property>
<property name="stock_id">gtk-open</property>
- </widget>
+ </object>
<packing>
<property name="expand">False</property>
+ <property name="homogeneous">True</property>
</packing>
</child>
<child>
- <widget class="GtkSeparatorToolItem" id="toolbutton5">
+ <object class="GtkSeparatorToolItem" id="toolbutton5">
<property name="visible">True</property>
<property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>
- </widget>
+ </object>
<packing>
<property name="expand">False</property>
- <property name="homogeneous">False</property>
</packing>
</child>
<child>
- <widget class="GtkToggleToolButton" id="evolve_but">
+ <object class="GtkToggleToolButton" id="evolve_but">
<property name="visible">True</property>
<property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>
<property name="label" translatable="yes">Evolve machine (towards target MIDI)</property>
<property name="stock_id">gtk-execute</property>
- </widget>
+ </object>
<packing>
<property name="expand">False</property>
+ <property name="homogeneous">True</property>
</packing>
</child>
<child>
- <widget class="GtkSeparatorToolItem" id="toolbutton4">
+ <object class="GtkSeparatorToolItem" id="toolbutton4">
<property name="visible">True</property>
<property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>
- </widget>
+ </object>
<packing>
<property name="expand">False</property>
- <property name="homogeneous">False</property>
</packing>
</child>
<child>
- <widget class="GtkToolButton" id="mutate_but">
+ <object class="GtkToolButton" id="mutate_but">
<property name="visible">True</property>
<property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>
- <property name="tooltip" translatable="yes">Random mutation</property>
<property name="stock_id">gtk-dialog-warning</property>
- <accelerator key="m" modifiers="GDK_CONTROL_MASK" signal="clicked"/>
- </widget>
+ <accelerator key="m" signal="clicked" modifiers="GDK_CONTROL_MASK"/>
+ </object>
<packing>
<property name="expand">False</property>
+ <property name="homogeneous">True</property>
</packing>
</child>
<child>
- <widget class="GtkSeparatorToolItem" id="toolbutton3">
+ <object class="GtkSeparatorToolItem" id="toolbutton3">
<property name="visible">True</property>
<property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>
- </widget>
+ </object>
<packing>
<property name="expand">False</property>
- <property name="homogeneous">False</property>
</packing>
</child>
<child>
- <widget class="GtkToolButton" id="compress_but">
+ <object class="GtkToolButton" id="compress_but">
<property name="visible">True</property>
<property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>
- <property name="tooltip" translatable="yes">Compress (merge identical nodes)</property>
<property name="stock_id">gtk-convert</property>
- </widget>
+ </object>
<packing>
<property name="expand">False</property>
+ <property name="homogeneous">True</property>
</packing>
</child>
<child>
- <widget class="GtkSeparatorToolItem" id="toolbutton2">
+ <object class="GtkSeparatorToolItem" id="toolbutton2">
<property name="visible">True</property>
<property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>
- </widget>
+ </object>
<packing>
<property name="expand">False</property>
- <property name="homogeneous">False</property>
</packing>
</child>
<child>
- <widget class="GtkToolButton" id="add_node_but">
+ <object class="GtkToolButton" id="add_node_but">
<property name="visible">True</property>
<property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>
- <property name="tooltip" translatable="yes">Create node</property>
<property name="label" translatable="yes">Add Node</property>
<property name="stock_id">gtk-new</property>
- </widget>
+ </object>
<packing>
<property name="expand">False</property>
+ <property name="homogeneous">True</property>
</packing>
</child>
<child>
- <widget class="GtkToolButton" id="remove_node_but">
+ <object class="GtkToolButton" id="remove_node_but">
<property name="visible">True</property>
<property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>
- <property name="tooltip" translatable="yes">Delete node</property>
<property name="label" translatable="yes">Delete Node</property>
<property name="stock_id">gtk-delete</property>
- </widget>
+ </object>
<packing>
<property name="expand">False</property>
+ <property name="homogeneous">True</property>
</packing>
</child>
<child>
- <widget class="GtkToolButton" id="adjust_node_but">
+ <object class="GtkToolButton" id="adjust_node_but">
<property name="visible">True</property>
<property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>
- <property name="tooltip" translatable="yes">Adjust node</property>
<property name="label" translatable="yes">Adjust Node</property>
<property name="stock_id">gtk-edit</property>
- </widget>
+ </object>
<packing>
<property name="expand">False</property>
+ <property name="homogeneous">True</property>
</packing>
</child>
<child>
- <widget class="GtkSeparatorToolItem" id="toolbutton1">
+ <object class="GtkSeparatorToolItem" id="toolbutton1">
<property name="visible">True</property>
<property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>
- </widget>
+ </object>
<packing>
<property name="expand">False</property>
- <property name="homogeneous">False</property>
</packing>
</child>
<child>
- <widget class="GtkToolButton" id="add_edge_but">
+ <object class="GtkToolButton" id="add_edge_but">
<property name="visible">True</property>
<property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>
- <property name="tooltip" translatable="yes">Add edge</property>
<property name="label" translatable="yes">Add Edge</property>
<property name="stock_id">gtk-connect</property>
- </widget>
+ </object>
<packing>
<property name="expand">False</property>
+ <property name="homogeneous">True</property>
</packing>
</child>
<child>
- <widget class="GtkToolButton" id="remove_edge_but">
+ <object class="GtkToolButton" id="remove_edge_but">
<property name="visible">True</property>
<property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>
- <property name="tooltip" translatable="yes">Remove edge</property>
<property name="label" translatable="yes">Remove Edge</property>
<property name="stock_id">gtk-disconnect</property>
- </widget>
+ </object>
<packing>
<property name="expand">False</property>
+ <property name="homogeneous">True</property>
</packing>
</child>
<child>
- <widget class="GtkToolButton" id="adjust_edge_but">
+ <object class="GtkToolButton" id="adjust_edge_but">
<property name="visible">True</property>
<property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>
- <property name="tooltip" translatable="yes">Adjust edge</property>
<property name="label" translatable="yes">Adjust Edge</property>
<property name="stock_id">gtk-select-color</property>
- </widget>
+ </object>
<packing>
<property name="expand">False</property>
+ <property name="homogeneous">True</property>
</packing>
</child>
- </widget>
+ </object>
<packing>
<property name="expand">False</property>
<property name="position">1</property>
</packing>
</child>
- </widget>
+ </object>
<packing>
<property name="expand">False</property>
<property name="position">1</property>
</packing>
</child>
<child>
- <widget class="GtkScrolledWindow" id="canvas_scrolledwindow">
+ <object class="GtkScrolledWindow" id="canvas_scrolledwindow">
<property name="visible">True</property>
<property name="can_focus">True</property>
<property name="has_focus">True</property>
<property name="can_default">True</property>
<property name="has_default">True</property>
- <property name="shadow_type">GTK_SHADOW_IN</property>
+ <property name="shadow_type">in</property>
<child>
<placeholder/>
</child>
- </widget>
+ </object>
<packing>
<property name="padding">2</property>
<property name="position">2</property>
</packing>
</child>
- </widget>
+ </object>
</child>
- </widget>
- <widget class="GtkAboutDialog" id="about_win">
+ </object>
+ <object class="GtkAboutDialog" id="about_win">
<property name="destroy_with_parent">True</property>
- <property name="type_hint">GDK_WINDOW_TYPE_HINT_NORMAL</property>
- <property name="copyright" translatable="yes">© 2007 David Robillard &lt;http://drobilla.net&gt;</property>
+ <property name="type_hint">normal</property>
+ <property name="copyright" translatable="yes">&#xA9; 2007 David Robillard &lt;http://drobilla.net&gt;</property>
<property name="comments" translatable="yes">A MIDI sequencer based on
probabilistic finite-state automata</property>
<property name="website">http://drobilla.net/software/machina</property>
@@ -657,30 +625,30 @@ along with Machina; if not, write to the Free Software Foundation, Inc.,
<property name="translator_credits" translatable="yes" comments="TRANSLATORS: Replace this string with your names, one name per line.">translator-credits</property>
<property name="logo">machina.svg</property>
<child internal-child="vbox">
- <widget class="GtkVBox" id="dialog-vbox1">
+ <object class="GtkVBox" id="dialog-vbox1">
<child internal-child="action_area">
- <widget class="GtkHButtonBox" id="dialog-action_area1">
- </widget>
+ <object class="GtkHButtonBox" id="dialog-action_area1"/>
<packing>
<property name="expand">False</property>
- <property name="pack_type">GTK_PACK_END</property>
+ <property name="pack_type">end</property>
+ <property name="position">0</property>
</packing>
</child>
- </widget>
+ </object>
</child>
- </widget>
- <widget class="GtkDialog" id="help_dialog">
+ </object>
+ <object class="GtkDialog" id="help_dialog">
<property name="border_width">8</property>
<property name="title" translatable="yes">Machina Help</property>
<property name="resizable">False</property>
- <property name="window_position">GTK_WIN_POS_CENTER_ON_PARENT</property>
+ <property name="window_position">center-on-parent</property>
<property name="icon_name">gtk-help</property>
- <property name="type_hint">GDK_WINDOW_TYPE_HINT_DIALOG</property>
+ <property name="type_hint">dialog</property>
<child internal-child="vbox">
- <widget class="GtkVBox" id="dialog-vbox1">
+ <object class="GtkVBox" id="dialog-vbox2">
<property name="visible">True</property>
<child>
- <widget class="GtkLabel" id="label5">
+ <object class="GtkLabel" id="label5">
<property name="visible">True</property>
<property name="xalign">0</property>
<property name="yalign">0</property>
@@ -695,64 +663,73 @@ Selector nodes are shown in green.
- 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</property>
- </widget>
+ </object>
<packing>
<property name="padding">8</property>
<property name="position">2</property>
</packing>
</child>
<child internal-child="action_area">
- <widget class="GtkHButtonBox" id="dialog-action_area1">
+ <object class="GtkHButtonBox" id="dialog-action_area2">
<property name="visible">True</property>
- <property name="layout_style">GTK_BUTTONBOX_END</property>
+ <property name="layout_style">end</property>
<child>
- <widget class="GtkButton" id="closebutton1">
+ <object class="GtkButton" id="closebutton1">
+ <property name="label">gtk-close</property>
<property name="visible">True</property>
<property name="can_focus">True</property>
<property name="can_default">True</property>
- <property name="label">gtk-close</property>
+ <property name="receives_default">False</property>
<property name="use_stock">True</property>
- <property name="response_id">-7</property>
- </widget>
+ </object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">False</property>
+ <property name="position">0</property>
+ </packing>
</child>
- </widget>
+ </object>
<packing>
<property name="expand">False</property>
- <property name="pack_type">GTK_PACK_END</property>
+ <property name="pack_type">end</property>
+ <property name="position">0</property>
</packing>
</child>
- </widget>
+ </object>
</child>
- </widget>
- <widget class="GtkDialog" id="node_properties_dialog">
+ <action-widgets>
+ <action-widget response="-7">closebutton1</action-widget>
+ </action-widgets>
+ </object>
+ <object class="GtkDialog" id="node_properties_dialog">
<property name="border_width">8</property>
<property name="title" translatable="yes">dialog1</property>
<property name="resizable">False</property>
<property name="icon">machina.svg</property>
- <property name="type_hint">GDK_WINDOW_TYPE_HINT_DIALOG</property>
+ <property name="type_hint">dialog</property>
<property name="skip_taskbar_hint">True</property>
<property name="skip_pager_hint">True</property>
<child internal-child="vbox">
- <widget class="GtkVBox" id="dialog-vbox3">
+ <object class="GtkVBox" id="dialog-vbox3">
<property name="visible">True</property>
<property name="spacing">8</property>
<child>
- <widget class="GtkTable" id="table1">
+ <object class="GtkTable" id="table1">
<property name="visible">True</property>
<property name="n_rows">2</property>
<property name="n_columns">2</property>
<property name="column_spacing">4</property>
<property name="row_spacing">8</property>
<child>
- <widget class="GtkSpinButton" id="node_properties_duration_spinbutton">
+ <object class="GtkSpinButton" id="node_properties_duration_spinbutton">
<property name="visible">True</property>
<property name="can_focus">True</property>
<property name="has_focus">True</property>
- <property name="adjustment">1 0 999999 1 10 0</property>
+ <property name="adjustment"></property>
<property name="climb_rate">1</property>
<property name="digits">2</property>
<property name="numeric">True</property>
- </widget>
+ </object>
<packing>
<property name="left_attach">1</property>
<property name="right_attach">2</property>
@@ -762,11 +739,11 @@ Selector nodes are shown in green.
</packing>
</child>
<child>
- <widget class="GtkLabel" id="label7">
+ <object class="GtkLabel" id="label7">
<property name="visible">True</property>
<property name="xalign">0</property>
<property name="label" translatable="yes">Duration: </property>
- </widget>
+ </object>
<packing>
<property name="top_attach">1</property>
<property name="bottom_attach">2</property>
@@ -775,83 +752,98 @@ Selector nodes are shown in green.
</packing>
</child>
<child>
- <widget class="GtkLabel" id="label6">
+ <object class="GtkLabel" id="label6">
<property name="visible">True</property>
<property name="xalign">0</property>
<property name="label" translatable="yes">Note: </property>
- </widget>
+ </object>
<packing>
<property name="x_options">GTK_FILL</property>
<property name="y_options"></property>
</packing>
</child>
<child>
- <widget class="GtkSpinButton" id="node_properties_note_spinbutton">
+ <object class="GtkSpinButton" id="node_properties_note_spinbutton">
<property name="visible">True</property>
<property name="can_focus">True</property>
- <property name="adjustment">60 0 127 1 10 0</property>
+ <property name="adjustment"></property>
<property name="climb_rate">1</property>
<property name="numeric">True</property>
- </widget>
+ </object>
<packing>
<property name="left_attach">1</property>
<property name="right_attach">2</property>
<property name="y_options"></property>
</packing>
</child>
- </widget>
+ </object>
<packing>
<property name="position">2</property>
</packing>
</child>
<child internal-child="action_area">
- <widget class="GtkHButtonBox" id="dialog-action_area3">
+ <object class="GtkHButtonBox" id="dialog-action_area3">
<property name="visible">True</property>
- <property name="layout_style">GTK_BUTTONBOX_END</property>
+ <property name="layout_style">end</property>
<child>
- <widget class="GtkButton" id="node_properties_apply_button">
+ <object class="GtkButton" id="node_properties_apply_button">
+ <property name="label">gtk-apply</property>
<property name="visible">True</property>
<property name="can_focus">True</property>
<property name="can_default">True</property>
- <property name="label">gtk-apply</property>
+ <property name="receives_default">False</property>
<property name="use_stock">True</property>
- <property name="response_id">-10</property>
- </widget>
+ </object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">False</property>
+ <property name="position">0</property>
+ </packing>
</child>
<child>
- <widget class="GtkButton" id="node_properties_cancel_button">
+ <object class="GtkButton" id="node_properties_cancel_button">
+ <property name="label">gtk-cancel</property>
<property name="visible">True</property>
<property name="can_focus">True</property>
<property name="can_default">True</property>
- <property name="label">gtk-cancel</property>
+ <property name="receives_default">False</property>
<property name="use_stock">True</property>
- <property name="response_id">-6</property>
- </widget>
+ </object>
<packing>
+ <property name="expand">False</property>
+ <property name="fill">False</property>
<property name="position">1</property>
</packing>
</child>
<child>
- <widget class="GtkButton" id="node_properties_ok_button">
+ <object class="GtkButton" id="node_properties_ok_button">
+ <property name="label">gtk-ok</property>
<property name="visible">True</property>
<property name="can_focus">True</property>
<property name="can_default">True</property>
<property name="has_default">True</property>
- <property name="label">gtk-ok</property>
+ <property name="receives_default">False</property>
<property name="use_stock">True</property>
- <property name="response_id">-5</property>
- </widget>
+ </object>
<packing>
+ <property name="expand">False</property>
+ <property name="fill">False</property>
<property name="position">2</property>
</packing>
</child>
- </widget>
+ </object>
<packing>
<property name="expand">False</property>
- <property name="pack_type">GTK_PACK_END</property>
+ <property name="pack_type">end</property>
+ <property name="position">0</property>
</packing>
</child>
- </widget>
+ </object>
</child>
- </widget>
-</glade-interface>
+ <action-widgets>
+ <action-widget response="-10">node_properties_apply_button</action-widget>
+ <action-widget response="-6">node_properties_cancel_button</action-widget>
+ <action-widget response="-5">node_properties_ok_button</action-widget>
+ </action-widgets>
+ </object>
+</interface>
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