+const char *EditPanelGangTracks::gang_tips[TOTAL_GANGS] = {
+ N_("Currently: Gang None\n Click to: Gang Channels"),
+ N_("Currently: Gang Channels\n Click to: Gang Media"),
+ N_("Currently: Gang Media\n Click to: Gang None"),
+};
+
+EditPanelGangTracks::EditPanelGangTracks(MWindow *mwindow, EditPanel *panel,
+ int x, int y)
+ : BC_Button(x, y, get_images(mwindow))
+{
+ this->mwindow = mwindow;
+ this->panel = panel;
+ int gang = mwindow->edl->session->gang_tracks;
+ set_tooltip(_(gang_tips[gang]));
+}
+
+EditPanelGangTracks::~EditPanelGangTracks()
+{
+}
+
+VFrame **EditPanelGangTracks::gang_images[TOTAL_GANGS];
+
+VFrame **EditPanelGangTracks::get_images(MWindow *mwindow)
+{
+ gang_images[GANG_NONE] = mwindow->theme->get_image_set("gang0");
+ gang_images[GANG_MEDIA] = mwindow->theme->get_image_set("gang1");
+ gang_images[GANG_CHANNELS] = mwindow->theme->get_image_set("gang2");
+ int gang = mwindow->edl->session->gang_tracks;
+ return gang_images[gang];
+}
+
+void EditPanelGangTracks::update(int gang)
+{
+ set_images(gang_images[gang]);
+ draw_face();
+ set_tooltip(_(gang_tips[gang]));
+}
+
+int EditPanelGangTracks::handle_event()
+{
+ int gang = mwindow->edl->session->gang_tracks;
+ if( !shift_down() ) {
+ if( ++gang > GANG_MEDIA ) gang = GANG_NONE;
+ }
+ else {
+ if( --gang < GANG_NONE ) gang = GANG_MEDIA;
+ }
+ update(gang);
+ panel->panel_set_gang_tracks(gang);
+ return 1;
+}
+