}
void
-Editor::midi_panic_toggle ()
+Editor::midi_panic_button_pressed ()
{
if (session) {
session->midi_panic();
- midi_panic_button.set_active (false);
- midi_panic_button.set_state (STATE_NORMAL);
}
}
+void Editor::midi_sound_notes_toggled ()
+{
+ cerr << "toggle sound notes" << endl;
+}
+
void
Editor::setup_midi_toolbar ()
{
midi_tool_button_box.pack_start(midi_tool_pencil_button, true, true);
midi_tool_button_box.pack_start(midi_tool_select_button, true, true);
midi_tool_button_box.pack_start(midi_tool_resize_button, true, true);
- midi_tool_button_box.pack_start(midi_tool_erase_button, true, true);
+ midi_tool_button_box.pack_start(midi_tool_erase_button , true, true);
midi_tool_button_box.set_homogeneous(true);
midi_tool_pencil_button.set_name ("MouseModeButton");
midi_tool_select_button.set_name ("MouseModeButton");
midi_tool_resize_button.set_name ("MouseModeButton");
- midi_tool_erase_button.set_name ("MouseModeButton");
+ midi_tool_erase_button .set_name ("MouseModeButton");
ARDOUR_UI::instance()->tooltips().set_tip (midi_tool_pencil_button, _("Add/Move/Stretch Notes"));
ARDOUR_UI::instance()->tooltips().set_tip (midi_tool_select_button, _("Select/Move Notes"));
ARDOUR_UI::instance()->tooltips().set_tip (midi_tool_resize_button, _("Resize Notes"));
- ARDOUR_UI::instance()->tooltips().set_tip (midi_tool_erase_button, _("Erase Notes"));
+ ARDOUR_UI::instance()->tooltips().set_tip (midi_tool_erase_button, _("Erase Notes"));
midi_tool_pencil_button.unset_flags (CAN_FOCUS);
midi_tool_select_button.unset_flags (CAN_FOCUS);
midi_tool_erase_button.signal_toggled().connect (bind (mem_fun(*this,
&Editor::midi_edit_mode_toggled), Editing::MidiEditErase));
+
+ /* Midi sound notes */
+ midi_sound_notes.add (*(manage (new Image (::get_icon("midi_sound_notes")))));
+ midi_sound_notes.set_relief(Gtk::RELIEF_NONE);
+ ARDOUR_UI::instance()->tooltips().set_tip (midi_sound_notes, _("Sound Notes"));
+ midi_sound_notes.unset_flags (CAN_FOCUS);
+ midi_sound_notes.signal_toggled().connect (mem_fun(*this,
+ &Editor::midi_sound_notes_toggled));
+
/* Panic */
- VBox* panic_box = manage (new VBox);
+ HBox* panic_box = manage (new HBox);
midi_panic_button.set_name("MidiPanicButton");
midi_panic_button.signal_pressed().connect (
- mem_fun(this, &Editor::midi_panic_toggle));
+ mem_fun(this, &Editor::midi_panic_button_pressed));
+ panic_box->pack_start (midi_sound_notes , true, true);
panic_box->pack_start (midi_panic_button, true, true);
/* Pack everything in... */
Gtk::ToggleButton midi_tool_select_button;
Gtk::ToggleButton midi_tool_resize_button;
Gtk::ToggleButton midi_tool_erase_button;
- Gtk::ToggleButton midi_panic_button;
+ Gtk::Button midi_panic_button;
+ Gtk::ToggleButton midi_sound_notes;
GroupedButtons *midi_tool_button_set;
void midi_edit_mode_toggled (Editing::MidiEditMode m);
+ void midi_panic_button_pressed ();
+ void midi_sound_notes_toggled();
+
bool ignore_midi_edit_mode_toggle;
Gtkmm2ext::TearOff* midi_tools_tearoff;
Gtk::EventBox midi_toolbar_base;
Gtk::Frame midi_toolbar_frame;
- void midi_panic_toggle ();
void setup_midi_toolbar ();
/* selection process */
#include "midi_channel_selector.h"
#include "gtkmm/separator.h"
#include "i18n.h"
+#include "rgb_macros.h"
using namespace std;
using namespace Gtk;
{
}
+void
+MidiChannelSelector::set_channel_colors(const uint32_t new_channel_colors[16])
+{
+ for (int row = 0; row < 4; ++row) {
+ for (int column = 0; column < 4; ++column) {
+ char color_normal[8];
+ char color_active[8];
+ snprintf(color_normal, 8, "#%x", UINT_INTERPOLATE(new_channel_colors[row * 4 + column], 0x000000ff, 0.6));
+ snprintf(color_active, 8, "#%x", new_channel_colors[row * 4 + column]);
+ _buttons[row][column].modify_bg(STATE_NORMAL, Gdk::Color(color_normal));
+ _buttons[row][column].modify_bg(STATE_ACTIVE, Gdk::Color(color_active));
+ }
+ }
+}
+
+void
+MidiChannelSelector::set_default_channel_color()
+{
+ for (int row = 0; row < 4; ++row) {
+ for (int column = 0; column < 4; ++column) {
+ _buttons[row][column].unset_bg(STATE_NORMAL);
+ _buttons[row][column].unset_bg(STATE_ACTIVE);
+ }
+ }
+}
+
SingleMidiChannelSelector::SingleMidiChannelSelector(uint8_t active_channel)
: MidiChannelSelector()
{