QuickTimeMovieComponent after setUsingNativeTitleBar( true )


#1

I recently ran into a bug that took me a good two days of trial and error to figure out.

I’ve found that when my DocumentWindow component calls setUsingNativeTitleBar( true ) that QuickTimeMovieComponents no longer show in the main component

MainWindow::MainWindow()
    : DocumentWindow (T("Main Window"),
                      Colours::white,
                      DocumentWindow::allButtons,
                      true)
{
    setResizable (true, false); // resizability is a property of ResizableWindow
 
    setResizeLimits (500, 500, 8192, 8192);

    setContentComponent ( new MainComponent() );

    setVisible ( true );

    setUsingNativeTitleBar( true );

}
class MainComponent : public Component
{
public:
    MainComponent();
    ~MainComponent();
    void resized();
private:
    QuickTimeMovieComponent mMoviePlayer;
};

MainComponent::MainComponent ()
    : Component (T("Main Component"))
{
    addAndMakeVisible( &mMoviePlayer );
    setSize (1200, 800);
}

MainComponent::~MainComponent ()
{
}

MainComponent::resized()
{
    mMoviePlayer.setBounds( 10, 10, 400, 400 );
}

I’m using Windows XP, the Quicktime 7 SDK and Visual Studio 2008.
It doesn’t look like anyone has had this problem previously.
Any ideas why it breaks?


#2

This is my code. It works fine. I am using juce 1.50 release version.

My code

The window class

[code]

DQWin::DQWin(const juce::String& sAppName, const juce::Colour& cBgColour,
const int iRequiredButtons, const bool bAddToDesktop )
:DocumentWindow(sAppName,cBgColour,iRequiredButtons,bAddToDesktop)
{
_pComponentHolder = new ComponentHolder();
setContentComponent(_pComponentHolder);
setResizable(true,true);
setTitleBarHeight(28);
setUsingNativeTitleBar(true);
}[/code]

content component class

ComponentHolder::ComponentHolder()
{
	_pQuickTimeComponent = new juce::QuickTimeMovieComponent();
	addAndMakeVisible(_pQuickTimeComponent );
	
	_pButton = new juce::TextButton(T("Load"),T("Load"));
	_pButton->addButtonListener(this);
	addAndMakeVisible(_pButton);		
}

void ComponentHolder::resized()
{
	if (_pQuickTimeComponent != 0L)
	{
		_pQuickTimeComponent ->setBounds(40,40,getWidth() - 80,getHeight() - 80);
	}
		
	if (_pButton != 0L )
		_pButton->setBounds(20,20,80,20);
}

void ComponentHolder::buttonClicked (juce::Button *button)
{
	if (_pQuickTimeComponent != 0L)
	{
		juce::File theMovie(T("D:\\video.mov"));
		bool status = _pQuickTimeComponent ->loadMovie (theMovie,true);
		while(! _pQuickTimeComponent ->isMovieOpen());
			_pQuickTimeComponent ->play ();
	}	
}

Am working on windows XP visual studio 2005. Don’t think IDE should be a problem.


#3