+EditPopupTitleColor::EditPopupTitleColor(MWindow *mwindow, EditPopup *popup)
+ : BC_MenuItem(_("Bar Color..."))
+{
+ this->mwindow = mwindow;
+ this->popup = popup;
+ color_picker = 0;
+}
+EditPopupTitleColor::~EditPopupTitleColor()
+{
+ delete color_picker;
+}
+
+int EditPopupTitleColor::handle_event()
+{
+ if( popup->edit ) {
+ int color = popup->mwindow->get_title_color(popup->edit);
+ if( !color ) color = popup->mwindow->theme->get_color_title_bg();
+ delete color_picker;
+ color_picker = new EditTitleColorPicker(popup, color);
+ int alpha = (~color>>24) & 0xff;
+ color_picker->start_window(color & 0xffffff, alpha, 1);
+ }
+ return 1;
+}
+
+EditTitleColorDefault::EditTitleColorDefault(
+ EditTitleColorPicker *color_picker, int x, int y)
+ : BC_GenericButton(x, y, _("default"))
+{
+ this->color_picker = color_picker;
+}
+
+int EditTitleColorDefault::handle_event()
+{
+ const int color = 0, alpha = 0;
+ color_picker->color = color | (~alpha << 24);
+ color_picker->update_gui(color, alpha);
+ return 1;
+}
+
+EditTitleColorPicker::EditTitleColorPicker(EditPopup *popup, int color)
+ : ColorPicker(1, _("Bar Color"))
+{
+ this->popup = popup;
+ this->color = color;
+}
+EditTitleColorPicker::~EditTitleColorPicker()
+{
+}
+void EditTitleColorPicker::create_objects(ColorWindow *gui)
+{
+ int y = gui->get_h() - BC_CancelButton::calculate_h() + 10;
+ int x = gui->get_w() - BC_CancelButton::calculate_w() - 10;
+ x -= BC_GenericButton::calculate_w(gui, _("default")) + 15;
+ gui->add_subwindow(new EditTitleColorDefault(this, x, y));
+}
+
+int EditTitleColorPicker::handle_new_color(int color, int alpha)
+{
+ this->color = color | (~alpha << 24);
+ return 1;
+}
+
+void EditTitleColorPicker::handle_done_event(int result)
+{
+ if( !result ) {
+ EDL *edl = popup->mwindow->edl;
+ int count = 0;
+ for( Track *track=edl->tracks->first; track; track=track->next ) {
+ if( !track->record ) continue;
+ for( Edit *edit=track->edits->first; edit; edit=edit->next ) {
+ if( !edit->is_selected ) continue;
+ edit->color = color;
+ ++count;
+ }
+ }
+ if( count )
+ edl->tracks->clear_selected_edits();
+ else
+ popup->edit->color = color;
+ }
+ MWindowGUI *mwindow_gui = popup->mwindow->gui;
+ mwindow_gui->lock_window("GWindowColorUpdate::run");
+ mwindow_gui->draw_trackmovement();
+ mwindow_gui->unlock_window();
+}
+
+