|  | /*
  ==============================================================================
   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
 |