diff options
Diffstat (limited to 'tdehtml/java/kjavaappletserver.h')
-rw-r--r-- | tdehtml/java/kjavaappletserver.h | 180 |
1 files changed, 180 insertions, 0 deletions
diff --git a/tdehtml/java/kjavaappletserver.h b/tdehtml/java/kjavaappletserver.h new file mode 100644 index 000000000..63463b040 --- /dev/null +++ b/tdehtml/java/kjavaappletserver.h @@ -0,0 +1,180 @@ +// -*- c++ -*- + +/* This file is part of the KDE project + * + * Copyright (C) 2000 Richard Moore <rich@kde.org> + * 2000 Wynn Wilkes <wynnw@caldera.com> + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Library General Public + * License as published by the Free Software Foundation; either + * version 2 of the License, or (at your option) any later version. + * + * This library 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 + * Library General Public License for more details. + * + * You should have received a copy of the GNU Library General Public License + * along with this library; see the file COPYING.LIB. If not, write to + * the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, + * Boston, MA 02110-1301, USA. + */ + +#ifndef KJAVAAPPLETSERVER_H +#define KJAVAAPPLETSERVER_H + +#include "kjavaprocess.h" +#include <tqobject.h> +#include <tqmap.h> + + +/** + * @short Communicates with a KJAS server to display and control Java applets. + * + * @author Richard J. Moore, rich@kde.org + */ + +class KJavaAppletContext; +class KJavaAppletServerPrivate; +class JSStackFrame; + +class KJavaAppletServer : public TQObject +{ +Q_OBJECT + +public: + /** + * Create the applet server. These shouldn't be used directly, + * use allocateJavaServer instead + */ + KJavaAppletServer(); + ~KJavaAppletServer(); + + /** + * A factory method that returns the default server. This is the way this + * class is usually instantiated. + */ + static KJavaAppletServer *allocateJavaServer(); + + /** + * When you are done using your reference to the AppletServer, you must + * dereference it by calling freeJavaServer(). + */ + static void freeJavaServer(); + + /** + * This allows the KJavaAppletWidget to display some feedback in a QLabel + * while the applet is being loaded. If the java process could not be + * started, an error message is displayed instead. + */ + static TQString getAppletLabel(); + + /** + * Create an applet context with the specified id. + */ + void createContext( int contextId, KJavaAppletContext* context ); + + /** + * Destroy the applet context with the specified id. All the applets in the + * context will be destroyed as well. + */ + void destroyContext( int contextId ); + + /** + * Create an applet in the specified context with the specified id. The applet + * name, class etc. are specified in the same way as in the HTML APPLET tag. + */ + bool createApplet( int contextId, int appletId, + const TQString & name, const TQString & clazzName, + const TQString & baseURL, const TQString & user, + const TQString & password, const TQString & authname, + const TQString & codeBase, const TQString & jarFile, + TQSize size, const TQMap<TQString, TQString>& params, + const TQString & windowTitle ); + + /** + * This should be called by the KJavaAppletWidget + */ + void initApplet( int contextId, int appletId ); + + /** + * Destroy an applet in the specified context with the specified id. + */ + void destroyApplet( int contextId, int appletId ); + + /** + * Start the specified applet. + */ + void startApplet( int contextId, int appletId ); + + /** + * Stop the specified applet. + */ + void stopApplet( int contextId, int appletId ); + + /** + * Show java console. + */ + void showConsole(); + + /** + * Send data we got back from a KJavaDownloader back to the appropriate + * class loader. + */ + void sendURLData( int loaderID, int code, const TQByteArray& data ); + /** + * Removes KJavaDownloader from the list (deletes it too). + */ + void removeDataJob( int loaderID ); + + /** + * Shut down the KJAS server. + */ + void quit(); + KJavaProcess* javaProcess() { return process; } + + TQString appletLabel(); + + void waitForReturnData(JSStackFrame *); + void endWaitForReturnData(); + + bool getMember(TQStringList & args, TQStringList & ret_args); + bool putMember(TQStringList & args); + bool callMember(TQStringList & args, TQStringList & ret_args); + void derefObject(TQStringList & args); + + bool usingKIO(); +protected: + void setupJava( KJavaProcess* p ); + + KJavaProcess* process; + +protected slots: + void slotJavaRequest( const TQByteArray& qb ); + void checkShutdown(); + void timerEvent(TQTimerEvent *); + +private: + KJavaAppletServerPrivate* d; + +}; + + +class PermissionDialog : public TQObject +{ + Q_OBJECT +public: + PermissionDialog( TQWidget* ); + ~PermissionDialog(); + + TQCString exec( const TQString & cert, const TQString & perm ); + +private slots: + void clicked(); + +private: + TQCString m_button; +}; + +#endif // KJAVAAPPLETSERVER_H |