X-Git-Url: https://git.cinelerra-gg.org/git/?a=blobdiff_plain;f=cinelerra-5.1%2Fcinelerra%2Flabeledit.C;h=22c5252a802dac626ce676ad56e20ef01c7bd4ad;hb=b9f98da8f1cd8b7b31ead02fa41f299b56cac3da;hp=3ba5257276e40ea8afa548622a52dbe7c493cfb4;hpb=0b78779e9e75131eee81d2e4689b98df0e91c092;p=goodguy%2Fhistory.git diff --git a/cinelerra-5.1/cinelerra/labeledit.C b/cinelerra-5.1/cinelerra/labeledit.C index 3ba52572..22c5252a 100644 --- a/cinelerra-5.1/cinelerra/labeledit.C +++ b/cinelerra-5.1/cinelerra/labeledit.C @@ -1,91 +1,80 @@ - /* * CINELERRA * Copyright (C) 2006 Pierre Dumuid - * + * Copyright (C) 1997-2012 Adam Williams + * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 2 of the License, or * (at your option) any later version. - * + * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. - * + * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA - * + * */ #include "awindow.h" #include "awindowgui.h" +#include "bcdialog.h" #include "labeledit.h" -#include "edl.h" -#include "fonts.h" #include "language.h" -#include "localsession.h" -#include "mainsession.h" #include "mwindow.h" #include "mwindowgui.h" #include "vwindow.h" #include "vwindowgui.h" - LabelEdit::LabelEdit(MWindow *mwindow, AWindow *awindow, VWindow *vwindow) - : Thread() + : BC_DialogThread() { this->mwindow = mwindow; this->awindow = awindow; this->vwindow = vwindow; - this->label = 0; + label = 0; + label_edit_window = 0; } LabelEdit::~LabelEdit() { + close_window(); } -void LabelEdit::edit_label(Label *label) +void LabelEdit::start(Label *label, int x, int y) { -// Allow more than one window so we don't have to delete the clip in handle_event - if(label) - { - this->label = label; - Thread::start(); - } + this->label = label; + this->x = x; this->y = y; + + BC_DialogThread::start(); } -void LabelEdit::run() +void LabelEdit::handle_close_event(int result) { - if(label) - { - LabelEditWindow *window = new LabelEditWindow(mwindow, this); - window->create_objects(); - /*int result = */ window->run_window(); - delete window; - if (awindow) awindow->gui->async_update_assets(); - } + label_edit_window = 0; } +void LabelEdit::handle_done_event(int result) +{ + awindow->gui->async_update_assets(); +} - - - +BC_Window *LabelEdit::new_gui() +{ + label_edit_window = new LabelEditWindow(mwindow, this); + label_edit_window->create_objects(); + return label_edit_window; +} LabelEditWindow::LabelEditWindow(MWindow *mwindow, LabelEdit *thread) : BC_Window(_(PROGRAM_NAME ": Label Info"), - mwindow->gui->get_abs_cursor_x(1) - 400 / 2, - mwindow->gui->get_abs_cursor_y(1) - 350 / 2, - 400, - 350, - 400, - 430, - 0, - 0, - 1) + thread->x - 400/2, thread->y - 350/2, + 400, 350, 400, 430, 0, 0, 1) { this->mwindow = mwindow; this->thread = thread; @@ -95,9 +84,9 @@ LabelEditWindow::~LabelEditWindow() { } - void LabelEditWindow::create_objects() { + lock_window("LabelEditWindow::create_objects"); this->label = thread->label; int x = 10, y = 10; @@ -107,24 +96,16 @@ void LabelEditWindow::create_objects() add_subwindow(title = new BC_Title(x1, y, _("Label Text:"))); y += title->get_h() + 5; - add_subwindow(textbox = new LabelEditComments(this, - x1, - y, - get_w() - x1 * 2, + add_subwindow(textbox = new LabelEditComments(this, x1, y, get_w() - x1 * 2, BC_TextBox::pixels_to_rows(this, MEDIUMFONT, get_h() - 10 - 40 - y))); - add_subwindow(new BC_OKButton(this)); add_subwindow(new BC_CancelButton(this)); show_window(); textbox->activate(); + unlock_window(); } - - - - - LabelEditComments::LabelEditComments(LabelEditWindow *window, int x, int y, int w, int rows) : BC_TextBox(x, y, w, rows, window->label->textstr, 1, MEDIUMFONT, 1) { @@ -136,3 +117,4 @@ int LabelEditComments::handle_event() strcpy(window->label->textstr, get_text()); return 1; } +