summaryrefslogtreecommitdiffstats
path: root/nsplugins/test
diff options
context:
space:
mode:
authortoma <toma@283d02a7-25f6-0310-bc7c-ecb5cbfe19da>2009-11-25 17:56:58 +0000
committertoma <toma@283d02a7-25f6-0310-bc7c-ecb5cbfe19da>2009-11-25 17:56:58 +0000
commit4aed2c8219774f5d797760606b8489a92ddc5163 (patch)
tree3f8c130f7d269626bf6a9447407ef6c35954426a /nsplugins/test
downloadtdebase-4aed2c8219774f5d797760606b8489a92ddc5163.tar.gz
tdebase-4aed2c8219774f5d797760606b8489a92ddc5163.zip
Copy the KDE 3.5 branch to branches/trinity for new KDE 3.5 features.
BUG:215923 git-svn-id: svn://anonsvn.kde.org/home/kde/branches/trinity/kdebase@1054174 283d02a7-25f6-0310-bc7c-ecb5cbfe19da
Diffstat (limited to 'nsplugins/test')
-rw-r--r--nsplugins/test/Makefile.am11
-rw-r--r--nsplugins/test/testnsplugin.cpp143
-rw-r--r--nsplugins/test/testnsplugin.h56
-rw-r--r--nsplugins/test/testnsplugin.rc15
4 files changed, 225 insertions, 0 deletions
diff --git a/nsplugins/test/Makefile.am b/nsplugins/test/Makefile.am
new file mode 100644
index 000000000..bee1570c4
--- /dev/null
+++ b/nsplugins/test/Makefile.am
@@ -0,0 +1,11 @@
+INCLUDES = -I$(top_srcdir)/libltdl -I.. $(all_includes)
+METASOURCES = AUTO
+noinst_HEADERS = testnsplugin.h
+
+check_PROGRAMS = testnsplugin
+testnsplugin_SOURCES = testnsplugin.cpp
+testnsplugin_LDFLAGS = $(all_libraries) $(KDE_RPATH)
+testnsplugin_LDADD = $(LIB_KDEUI) ../libnsplugin.la
+
+$(srcdir)/testnsplugin.cpp: ../NSPluginClassIface_stub.h
+
diff --git a/nsplugins/test/testnsplugin.cpp b/nsplugins/test/testnsplugin.cpp
new file mode 100644
index 000000000..561b4d02d
--- /dev/null
+++ b/nsplugins/test/testnsplugin.cpp
@@ -0,0 +1,143 @@
+/*
+ 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 <qstring.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 QWidget( this, "m_client" );
+ setCentralWidget( m_client );
+ m_client->show();
+ m_layout = new QHBoxLayout( m_client );
+
+ // file menu
+ KStdAction::openNew( this, SLOT(newView()), actionCollection());
+ KStdAction::close( this, SLOT(closeView()), actionCollection());
+ KStdAction::quit( kapp, SLOT(quit()), actionCollection());
+
+ createGUI( "testnspluginui.rc" );
+}
+
+
+TestNSPlugin::~TestNSPlugin()
+{
+ kdDebug() << "-> TestNSPlugin::~TestNSPlugin" << endl;
+ m_loader->release();
+ kdDebug() << "<- TestNSPlugin::~TestNSPlugin" << endl;
+}
+
+
+void TestNSPlugin::newView()
+{
+ QStringList _argn, _argv;
+
+ //QString src = "file:/home/sschimanski/kimble_themovie.swf";
+ //QString src = "file:/home/sschimanski/in_ani.swf";
+ //QString src = "http://homepages.tig.com.au/~dkl/swf/promo.swf";
+ //QString mime = "application/x-shockwave-flash";
+
+ _argn << "name" << "controls" << "console";
+ _argv << "audio" << "ControlPanel" << "Clip1";
+ QString src = "http://welt.is-kunden.de:554/ramgen/welt/avmedia/realaudio/0701lw177135.rm";
+// QString src = "nothing";
+ QString mime = "audio/x-pn-realaudio-plugin";
+
+ _argn << "SRC" << "TYPE" << "WIDTH" << "HEIGHT";
+ _argv << src << mime << "400" << "100";
+ QWidget *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";
+ QWidget *win = loader->NewInstance(0, "", "application/x-java-applet", 1, _argn, _argv);
+*/
+
+ if ( win )
+ {
+ m_plugins.append( win );
+ connect( win, SIGNAL(destroyed(NSPluginInstance *)),
+ this, SLOT(viewDestroyed(NSPluginInstance *)) );
+ m_layout->addWidget( win );
+ win->show();
+ } else
+ {
+ kdDebug() << "No widget created" << endl;
+ }
+}
+
+void TestNSPlugin::closeView()
+{
+ kdDebug() << "closeView" << endl;
+ QWidget *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"
diff --git a/nsplugins/test/testnsplugin.h b/nsplugins/test/testnsplugin.h
new file mode 100644
index 000000000..ac123c175
--- /dev/null
+++ b/nsplugins/test/testnsplugin.h
@@ -0,0 +1,56 @@
+/*
+ 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.
+
+*/
+
+
+#ifndef __TESTNSPLUGIN_H__
+#define __TESTNSPLUGIN_H__
+
+#include <qstring.h>
+#include <qwidget.h>
+#include <kmainwindow.h>
+#include <qlayout.h>
+#include <qptrlist.h>
+
+class NSPluginLoader;
+class NSPluginInstance;
+
+class TestNSPlugin : public KMainWindow
+{
+ Q_OBJECT
+
+public:
+ TestNSPlugin();
+ virtual ~TestNSPlugin();
+
+public slots:
+ void newView();
+ void closeView();
+ void viewDestroyed( NSPluginInstance *inst );
+
+protected:
+ NSPluginLoader *m_loader;
+ QPtrList<QWidget> m_plugins;
+ QWidget *m_client;
+ QBoxLayout *m_layout;
+};
+
+
+#endif
diff --git a/nsplugins/test/testnsplugin.rc b/nsplugins/test/testnsplugin.rc
new file mode 100644
index 000000000..46bb5f86a
--- /dev/null
+++ b/nsplugins/test/testnsplugin.rc
@@ -0,0 +1,15 @@
+<!DOCTYPE kpartgui>
+<kpartgui name="testnsplugin">
+
+<MenuBar>
+ <Menu name="file"><text>&amp;File</text>
+ </Menu>
+</MenuBar>
+
+<ToolBar noMerge="1" name="mainToolBar">
+ <Action name="file_new"/>
+ <Action name="file_close"/>
+ <Action name="file_quit"/>
+</ToolBar>
+
+</kpartgui>