|
|
|
/*
|
|
|
|
This is an encapsulation of the Netscape plugin API.
|
|
|
|
|
|
|
|
Copyright (c) 2000 Stefan Schimanski <1Stein@gmx.de>
|
|
|
|
|
|
|
|
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., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
|
|
|
|
|
|
|
|
*/
|
|
|
|
#include <stdio.h>
|
|
|
|
|
|
|
|
#include <tqstring.h>
|
|
|
|
#include <kapplication.h>
|
|
|
|
#include <kcmdlineargs.h>
|
|
|
|
#include <dcopclient.h>
|
|
|
|
#include <kdebug.h>
|
|
|
|
#include <kstdaction.h>
|
|
|
|
#include <kaction.h>
|
|
|
|
|
|
|
|
#include "testnsplugin.h"
|
|
|
|
#include "../NSPluginClassIface_stub.h"
|
|
|
|
#include "../nspluginloader.h"
|
|
|
|
|
|
|
|
|
|
|
|
TestNSPlugin::TestNSPlugin()
|
|
|
|
{
|
|
|
|
m_loader = NSPluginLoader::instance();
|
|
|
|
|
|
|
|
// client area
|
|
|
|
m_client = new TQWidget( this, "m_client" );
|
|
|
|
setCentralWidget( m_client );
|
|
|
|
m_client->show();
|
|
|
|
m_tqlayout = new TQHBoxLayout( m_client );
|
|
|
|
|
|
|
|
// file menu
|
|
|
|
KStdAction::openNew( this, TQT_SLOT(newView()), actionCollection());
|
|
|
|
KStdAction::close( this, TQT_SLOT(closeView()), actionCollection());
|
|
|
|
KStdAction::quit( kapp, TQT_SLOT(quit()), actionCollection());
|
|
|
|
|
|
|
|
createGUI( "testnspluginui.rc" );
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
TestNSPlugin::~TestNSPlugin()
|
|
|
|
{
|
|
|
|
kdDebug() << "-> TestNSPlugin::~TestNSPlugin" << endl;
|
|
|
|
m_loader->release();
|
|
|
|
kdDebug() << "<- TestNSPlugin::~TestNSPlugin" << endl;
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
void TestNSPlugin::newView()
|
|
|
|
{
|
|
|
|
TQStringList _argn, _argv;
|
|
|
|
|
|
|
|
//TQString src = "file:/home/sschimanski/kimble_themovie.swf";
|
|
|
|
//TQString src = "file:/home/sschimanski/in_ani.swf";
|
|
|
|
//TQString src = "http://homepages.tig.com.au/~dkl/swf/promo.swf";
|
|
|
|
//TQString mime = "application/x-shockwave-flash";
|
|
|
|
|
|
|
|
_argn << "name" << "controls" << "console";
|
|
|
|
_argv << "audio" << "ControlPanel" << "Clip1";
|
|
|
|
TQString src = "http://welt.is-kunden.de:554/ramgen/welt/avmedia/realaudio/0701lw177135.rm";
|
|
|
|
// TQString src = "nothing";
|
|
|
|
TQString mime = "audio/x-pn-realaudio-plugin";
|
|
|
|
|
|
|
|
_argn << "SRC" << "TYPE" << "WIDTH" << "HEIGHT";
|
|
|
|
_argv << src << mime << "400" << "100";
|
|
|
|
TQWidget *win = m_loader->newInstance( m_client, src, mime, 1, _argn, _argv, "appid", "callbackid" );
|
|
|
|
|
|
|
|
/*
|
|
|
|
_argn << "TYPE" << "WIDTH" << "HEIGHT" << "java_docbase" << "CODE";
|
|
|
|
_argv << "application/x-java-applet" << "450" << "350" << "file:///none" << "sun/plugin/panel/ControlPanelApplet.class";
|
|
|
|
TQWidget *win = loader->NewInstance(0, "", "application/x-java-applet", 1, _argn, _argv);
|
|
|
|
*/
|
|
|
|
|
|
|
|
if ( win )
|
|
|
|
{
|
|
|
|
m_plugins.append( win );
|
|
|
|
connect( win, TQT_SIGNAL(destroyed(NSPluginInstance *)),
|
|
|
|
this, TQT_SLOT(viewDestroyed(NSPluginInstance *)) );
|
|
|
|
m_tqlayout->addWidget( win );
|
|
|
|
win->show();
|
|
|
|
} else
|
|
|
|
{
|
|
|
|
kdDebug() << "No widget created" << endl;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
void TestNSPlugin::closeView()
|
|
|
|
{
|
|
|
|
kdDebug() << "closeView" << endl;
|
|
|
|
TQWidget *win = m_plugins.last();
|
|
|
|
if ( win )
|
|
|
|
{
|
|
|
|
m_plugins.remove( win );
|
|
|
|
delete win;
|
|
|
|
} else
|
|
|
|
{
|
|
|
|
kdDebug() << "No widget available" << endl;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
void TestNSPlugin::viewDestroyed( NSPluginInstance *inst )
|
|
|
|
{
|
|
|
|
kdDebug() << "TestNSPlugin::viewDestroyed" << endl;
|
|
|
|
m_plugins.remove( inst );
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
int main(int argc, char *argv[])
|
|
|
|
{
|
|
|
|
kdDebug() << "main" << endl;
|
|
|
|
setvbuf( stderr, NULL, _IONBF, 0 );
|
|
|
|
KCmdLineArgs::init(argc, argv, "nsplugin", "A Netscape Plugin test program", "0.1");
|
|
|
|
|
|
|
|
KApplication app("nsplugin");
|
|
|
|
|
|
|
|
app.dcopClient()->attach();
|
|
|
|
app.dcopClient()->registerAs(app.name());
|
|
|
|
app.dcopClient()->setNotifications(true);
|
|
|
|
|
|
|
|
TestNSPlugin *win = new TestNSPlugin;
|
|
|
|
app.setMainWidget( win );
|
|
|
|
win->show();
|
|
|
|
app.exec();
|
|
|
|
|
|
|
|
delete win;
|
|
|
|
}
|
|
|
|
|
|
|
|
#include "testnsplugin.moc"
|