+ZoomPatch::ZoomPatch(MWindow *mwindow, PatchGUI *patch, int x, int y)
+ : BC_Tumbler(x, y, mwindow->theme->get_image_set("tumblepatch_data"))
+{
+ this->mwindow = mwindow;
+ this->patch = patch;
+ set_tooltip(_("Track Data Height"));
+}
+
+int ZoomPatch::handle_up_event()
+{
+ patch->track->data_h *= 2;
+ bclamp(patch->track->data_h, MIN_TRACK_ZOOM, MAX_TRACK_ZOOM);
+ mwindow->edl->tracks->update_y_pixels(mwindow->theme);
+ mwindow->gui->draw_trackmovement();
+ return 1;
+}
+int ZoomPatch::handle_down_event()
+{
+ patch->track->data_h /= 2;
+ bclamp(patch->track->data_h, MIN_TRACK_ZOOM, MAX_TRACK_ZOOM);
+ mwindow->edl->tracks->update_y_pixels(mwindow->theme);
+ mwindow->gui->draw_trackmovement();
+ return 1;
+}
+
+
+MasterPatch::MasterPatch(MWindow *mwindow, PatchGUI *patch, int x, int y)
+ : BC_Toggle(x, y, mwindow->theme->get_image_set("masterpatch_data"),
+ patch->track->master, "", 0, 0, 0)
+{
+ this->mwindow = mwindow;
+ this->patch = patch;
+ set_tooltip(_("Master Track"));
+// *** CONTEXT_HELP ***
+ context_help_set_keyword("Displaying tracks: Ganged mode");
+}
+
+int MasterPatch::handle_event()
+{
+ patch->track->master = patch->track->master ? 0 : 1;
+ mwindow->draw_trackmovement(); // delayed, can delete *this
+ return 1;
+}
+