X-Git-Url: http://git.cinelerra-gg.org/git/?a=blobdiff_plain;f=cinelerra-5.1%2Fcinelerra%2Flevelwindowgui.C;fp=cinelerra-5.1%2Fcinelerra%2Flevelwindowgui.C;h=02419e613f52e2ada93f3cdbf82dab176becd940;hb=30bdb85eb33a8ee7ba675038a86c6be59c43d7bd;hp=0000000000000000000000000000000000000000;hpb=52fcc46226f9df46f9ce9d0566dc568455a7db0b;p=goodguy%2Fhistory.git diff --git a/cinelerra-5.1/cinelerra/levelwindowgui.C b/cinelerra-5.1/cinelerra/levelwindowgui.C new file mode 100644 index 00000000..02419e61 --- /dev/null +++ b/cinelerra-5.1/cinelerra/levelwindowgui.C @@ -0,0 +1,128 @@ + +/* + * CINELERRA + * Copyright (C) 1997-2011 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 "edl.h" +#include "edlsession.h" +#include "language.h" +#include "levelwindow.h" +#include "levelwindowgui.h" +#include "mainmenu.h" +#include "mainsession.h" +#include "meterpanel.h" +#include "mwindow.h" +#include "mwindowgui.h" +#include "preferences.h" +#include "theme.h" + +LevelWindowGUI::LevelWindowGUI(MWindow *mwindow, LevelWindow *thread) + : BC_Window(_(PROGRAM_NAME ": Levels"), + mwindow->session->lwindow_x, + mwindow->session->lwindow_y, + mwindow->session->lwindow_w, + mwindow->session->lwindow_h, + 10, + 10, + 1, + 0, + 1) +{ + this->thread = thread; + this->mwindow = mwindow; +} + +LevelWindowGUI::~LevelWindowGUI() +{ + delete panel; +} + +void LevelWindowGUI::create_objects() +{ + int border = mwindow->theme->widget_border; + lock_window("LevelWindowGUI::create_objects"); + mwindow->theme->draw_lwindow_bg(this); + panel = new MeterPanel(mwindow, + this, + border, + border, + get_w() - border * 2, + get_h() - border * 2, + mwindow->edl->session->audio_channels, + 1, + 0, + 1); + panel->create_objects(); + unlock_window(); +} + + +int LevelWindowGUI::resize_event(int w, int h) +{ + int border = mwindow->theme->widget_border; + mwindow->session->lwindow_x = get_x(); + mwindow->session->lwindow_y = get_y(); + mwindow->session->lwindow_w = w; + mwindow->session->lwindow_h = h; + + mwindow->theme->draw_lwindow_bg(this); + + panel->reposition_window(panel->x, + panel->y, + w - border * 2, + h - border * 2); + + BC_WindowBase::resize_event(w, h); + return 1; +} + +int LevelWindowGUI::translation_event() +{ + mwindow->session->lwindow_x = get_x(); + mwindow->session->lwindow_y = get_y(); + return 0; +} + +int LevelWindowGUI::close_event() +{ + hide_window(); + mwindow->session->show_lwindow = 0; + mwindow->gui->lock_window(); + mwindow->gui->mainmenu->show_lwindow->set_checked(0); + mwindow->gui->unlock_window(); + mwindow->save_defaults(); + return 1; +} + +int LevelWindowGUI::keypress_event() +{ + if(get_keypress() == 'w' || get_keypress() == 'W') + { + close_event(); + return 1; + } + return 0; +} + + +int LevelWindowGUI::reset_over() +{ + return 0; +} +