/* ============================================================================== This file is part of the JUCE library - "Jules' Utility Class Extensions" Copyright 2004-9 by Raw Material Software Ltd. ------------------------------------------------------------------------------ JUCE can be redistributed and/or modified under the terms of the GNU General Public License (Version 2), as published by the Free Software Foundation. A copy of the license is included in the JUCE distribution, or can be found online at www.gnu.org/licenses. JUCE 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. ------------------------------------------------------------------------------ To release a closed-source product which uses JUCE, commercial licenses are available: visit www.rawmaterialsoftware.com/juce for more information. ============================================================================== */ #include "../jucedemo_headers.h" #if JUCE_QUICKTIME && ! JUCE_LINUX //============================================================================== // so that we can easily have two QT windows each with a file browser, wrap this up as a class.. class QuickTimeWindowWithFileBrowser : public Component, public FilenameComponentListener { public: QuickTimeWindowWithFileBrowser() : fileChooser ("movie", File::nonexistent, true, false, false, "*", String::empty, "(choose a video file to play)") { addAndMakeVisible (&qtComp); addAndMakeVisible (&fileChooser); fileChooser.addListener (this); fileChooser.setBrowseButtonText ("browse"); } ~QuickTimeWindowWithFileBrowser() { } void resized() { qtComp.setBounds (0, 0, getWidth(), getHeight() - 30); fileChooser.setBounds (0, getHeight() - 24, getWidth(), 24); } void filenameComponentChanged (FilenameComponent*) { // this is called when the user changes the filename in the file chooser box if (qtComp.loadMovie (fileChooser.getCurrentFile(), true)) { // loaded the file ok, so let's start it playing.. qtComp.play(); } else { AlertWindow::showMessageBox (AlertWindow::WarningIcon, "Couldn't load the file!", "Sorry, QuickTime didn't manage to load that file!"); } } private: QuickTimeMovieComponent qtComp; FilenameComponent fileChooser; }; //============================================================================== class QuickTimeDemo : public Component { public: //============================================================================== QuickTimeDemo() { setName ("QuickTime"); // add a movie component.. addAndMakeVisible (&qtComp1); addAndMakeVisible (&qtComp2); } ~QuickTimeDemo() { qtComp1.setVisible (false); qtComp2.setVisible (false); } void resized() { qtComp1.setBoundsRelative (0.05f, 0.05f, 0.425f, 0.9f); qtComp2.setBoundsRelative (0.525f, 0.05f, 0.425f, 0.9f); } private: //============================================================================== QuickTimeWindowWithFileBrowser qtComp1, qtComp2; }; //============================================================================== Component* createQuickTimeDemo() { return new QuickTimeDemo(); } #endif