#include "gtkmm2ext/keyboard.h"
#include "ardour/instrument_info.h"
+#include "midi++/midnam_patch.h"
#include "ardour_ui.h"
#include "midi_region_view.h"
parent,
height,
(active_channel
- ? ARDOUR_UI::config()->canvasvar_MidiPatchChangeOutline.get()
- : ARDOUR_UI::config()->canvasvar_MidiPatchChangeInactiveChannelOutline.get()),
+ ? ARDOUR_UI::config()->get_canvasvar_MidiPatchChangeOutline()
+ : ARDOUR_UI::config()->get_canvasvar_MidiPatchChangeInactiveChannelOutline()),
(active_channel
- ? ARDOUR_UI::config()->canvasvar_MidiPatchChangeFill.get()
- : ARDOUR_UI::config()->canvasvar_MidiPatchChangeInactiveChannelFill.get()),
+ ? ARDOUR_UI::config()->get_canvasvar_MidiPatchChangeFill()
+ : ARDOUR_UI::config()->get_canvasvar_MidiPatchChangeInactiveChannelFill()),
x,
y)
, _info (info)
++bank) {
Gtk::Menu& patch_bank_menu = *manage(new Gtk::Menu());
- const PatchBank::PatchNameList& patches = (*bank)->patch_name_list();
+ const PatchNameList& patches = (*bank)->patch_name_list();
Gtk::Menu::MenuList& patch_menus = patch_bank_menu.items();
- for (PatchBank::PatchNameList::const_iterator patch = patches.begin();
+ for (PatchNameList::const_iterator patch = patches.begin();
patch != patches.end();
++patch) {
std::string name = (*patch)->name();
} else {
/* only one patch bank, so make it the initial menu */
- const PatchBank::PatchNameList& patches = patch_banks.front()->patch_name_list();
+ const PatchNameList& patches = patch_banks.front()->patch_name_list();
Gtk::Menu::MenuList& patch_menus = _popup.items();
- for (PatchBank::PatchNameList::const_iterator patch = patches.begin();
+ for (PatchNameList::const_iterator patch = patches.begin();
patch != patches.end();
++patch) {
std::string name = (*patch)->name();
bool
CanvasPatchChange::on_event (GdkEvent* ev)
{
- Editor* e;
+ /* XXX: icky dcast */
+ Editor* e = dynamic_cast<Editor*> (&_region.get_time_axis_view().editor());
+
+ if (!in_edit_mode(e)) {
+ return false;
+ }
switch (ev->type) {
case GDK_BUTTON_PRESS:
- /* XXX: icky dcast */
- e = dynamic_cast<Editor*> (&_region.get_time_axis_view().editor());
- if (in_edit_mode(e)) {
-
- if (Gtkmm2ext::Keyboard::is_delete_event (&ev->button)) {
-
- _region.delete_patch_change (this);
- return true;
-
- } else if (Gtkmm2ext::Keyboard::is_edit_event (&ev->button)) {
-
- _region.edit_patch_change (this);
- return true;
-
- } else if (ev->button.button == 1) {
- e->drags()->set (new PatchChangeDrag (e, this, &_region), ev);
- return true;
- }
+ if (Gtkmm2ext::Keyboard::is_delete_event (&ev->button)) {
+
+ _region.delete_patch_change (this);
+ return true;
+
+ } else if (Gtkmm2ext::Keyboard::is_edit_event (&ev->button)) {
+
+ _region.edit_patch_change (this);
+ return true;
+
+ } else if (ev->button.button == 1) {
+ e->drags()->set (new PatchChangeDrag (e, this, &_region), ev);
+ return true;
}
if (ev->button.button == 3) {
break;
case GDK_SCROLL:
- /* XXX: icky dcast */
- e = dynamic_cast<Editor*> (&_region.get_time_axis_view().editor());
- if (in_edit_mode(e)) {
- if (ev->scroll.direction == GDK_SCROLL_UP) {
- if (Keyboard::modifier_state_contains (ev->scroll.state, Keyboard::PrimaryModifier)) {
- _region.previous_bank (*this);
- } else {
- _region.previous_patch (*this);
- }
- } else if (ev->scroll.direction == GDK_SCROLL_DOWN) {
+ if (ev->scroll.direction == GDK_SCROLL_UP) {
+ if (Keyboard::modifier_state_contains (ev->scroll.state, Keyboard::PrimaryModifier)) {
+ _region.previous_bank (*this);
+ } else {
+ _region.previous_patch (*this);
+ }
+ } else if (ev->scroll.direction == GDK_SCROLL_DOWN) {
if (Keyboard::modifier_state_contains (ev->scroll.state, Keyboard::PrimaryModifier)) {
_region.next_bank (*this);
} else {
_region.next_patch (*this);
}
- }
- return true;
- break;
}
- break;
+ return true;
case GDK_ENTER_NOTIFY:
_region.patch_entered (this);