| # khtml Library API Documentation
Overview | Class Hierarchy | Classes | Classes (annotated) | Members | Namespaces | Source Files

# kjavaapplet.cpp

    00001 /* This file is part of the KDE project
    00002  *
    00003  * Copyright (C) 2000 Richard Moore <rich@kde.org>
    00004  *               2000 Wynn Wilkes <wynnw@caldera.com>
    00005  *
    00006  * This library is free software; you can redistribute it and/or
    00007  * modify it under the terms of the GNU Library General Public
    00008  * License as published by the Free Software Foundation; either
    00009  * version 2 of the License, or (at your option) any later version.
    00010  *
    00011  * This library is distributed in the hope that it will be useful,
    00012  * but WITHOUT ANY WARRANTY; without even the implied warranty of
    00013  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
    00014  * Library General Public License for more details.
    00015  *
    00016  * You should have received a copy of the GNU Library General Public License
    00017  * along with this library; see the file COPYING.LIB.  If not, write to
    00018  * the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
    00019  * Boston, MA 02111-1307, USA.
    00020  */
    00021
    00022 #include "kjavaappletwidget.h"
    00023 #include "kjavaappletcontext.h"
    00024
    00025 #include <klocale.h>
    00026 #include <kdebug.h>
    00027 #include <kparts/browserextension.h>
    00028
    00029
    00030
    00031 class KJavaAppletPrivate
    00032 {
    00033 public:
    00034    bool    reallyExists;
    00035    QString className;
    00036    QString appName;
    00037    QString baseURL;
    00038    QString codeBase;
    00039    QString archives;
    00040    QSize   size;
    00041    QString windowName;
    00042    KJavaApplet::AppletState state;
    00043    bool    failed;
    00044
    00045    KJavaAppletWidget* UIwidget;
    00046 };
    00047
    00048
    00049 KJavaApplet::KJavaApplet( KJavaAppletWidget* _parent,
    00050                           KJavaAppletContext* _context )
    00051     : params()
    00052 {
    00053     d = new KJavaAppletPrivate;
    00054
    00055     d->UIwidget = _parent;
    00056     d->state = UNKNOWN;
    00057     d->failed = false;
    00058
    00059     if( _context )
    00060         setAppletContext( _context );
    00061
    00062     d->reallyExists = false;
    00063 }
    00064
    00065 KJavaApplet::~KJavaApplet()
    00066 {
    00067     if ( d->reallyExists )
    00068         context->destroy( this );
    00069
    00070     delete d;
    00071 }
    00072
    00073 bool KJavaApplet::isCreated()
    00074 {
    00075     return d->reallyExists;
    00076 }
    00077
    00078 void KJavaApplet::setAppletContext( KJavaAppletContext* _context )
    00079 {
    00080     context = _context;
    00081     context->registerApplet( this );
    00082 }
    00083
    00084 void KJavaApplet::setAppletClass( const QString& _className )
    00085 {
    00086     d->className = _className;
    00087 }
    00088
    00089 QString& KJavaApplet::appletClass()
    00090 {
    00091     return d->className;
    00092 }
    00093
    00094 QString& KJavaApplet::parameter( const QString& name )
    00095 {
    00096     return params[ name ];
    00097 }
    00098
    00099 void KJavaApplet::setParameter( const QString& name, const QString& value )
    00100 {
    00101     params.insert( name, value );
    00102 }
    00103
    00104 QMap<QString,QString>& KJavaApplet::getParams()
    00105 {
    00106     return params;
    00107 }
    00108
    00109 void KJavaApplet::setBaseURL( const QString& baseURL )
    00110 {
    00111     d->baseURL = baseURL;
    00112 }
    00113
    00114 QString& KJavaApplet::baseURL()
    00115 {
    00116     return d->baseURL;
    00117 }
    00118
    00119 void KJavaApplet::setCodeBase( const QString& codeBase )
    00120 {
    00121     d->codeBase = codeBase;
    00122 }
    00123
    00124 QString& KJavaApplet::codeBase()
    00125 {
    00126     return d->codeBase;
    00127 }
    00128
    00129 void KJavaApplet::setSize( QSize size )
    00130 {
    00131     d->size = size;
    00132 }
    00133
    00134 QSize KJavaApplet::size()
    00135 {
    00136     return d->size;
    00137 }
    00138
    00139 void KJavaApplet::setArchives( const QString& _archives )
    00140 {
    00141     d->archives = _archives;
    00142 }
    00143
    00144 QString& KJavaApplet::archives()
    00145 {
    00146     return d->archives;
    00147 }
    00148
    00149 void KJavaApplet::resizeAppletWidget( int width, int height )
    00150 {
    00151     kdDebug(6100) << "KJavaApplet, id = " << id << ", ::resizeAppletWidget to " << width << ", " << height << endl;
    00152
    00153     QStringList sl;
    00154     sl.push_back( QString::number( 0 ) ); // applet itself has id 0
    00155     sl.push_back( QString( "eval" ) );    // evaluate next script
    00156     sl.push_back( QString::number( KParts::LiveConnectExtension::TypeString ) );
    00157     sl.push_back( QString( "this.setAttribute('WIDTH',%1);this.setAttribute('HEIGHT',%2)" ).arg( width ).arg( height ) );
    00158     jsData( sl );
    00159 }
    00160
    00161 void KJavaApplet::setAppletName( const QString& name )
    00162 {
    00163     d->appName = name;
    00164 }
    00165
    00166 void KJavaApplet::setWindowName( const QString& title )
    00167 {
    00168     d->windowName = title;
    00169 }
    00170
    00171 QString& KJavaApplet::getWindowName()
    00172 {
    00173     return d->windowName;
    00174 }
    00175
    00176 QString& KJavaApplet::appletName()
    00177 {
    00178     return d->appName;
    00179 }
    00180
    00181 void KJavaApplet::create( )
    00182 {
    00183     if (  !context->create( this ) )
    00184         setFailed();
    00185     d->reallyExists = true;
    00186 }
    00187
    00188 void KJavaApplet::init()
    00189 {
    00190     context->init( this );
    00191 }
    00192
    00193 void KJavaApplet::start()
    00194 {
    00195     context->start( this );
    00196 }
    00197
    00198 void KJavaApplet::stop()
    00199 {
    00200     context->stop( this );
    00201 }
    00202
    00203 int KJavaApplet::appletId()
    00204 {
    00205     return id;
    00206 }
    00207
    00208 void KJavaApplet::setAppletId( int _id )
    00209 {
    00210     id = _id;
    00211 }
    00212
    00213 void KJavaApplet::stateChange( const int newStateInt ) {
    00214     AppletState newState = (AppletState)newStateInt;
    00215     bool ok = false;
    00216     if (d->failed) {
    00217         return;
    00218     }
    00219     switch ( newState ) {
    00220         case CLASS_LOADED:
    00221             ok = (d->state == UNKNOWN);
    00222             break;
    00223         case INSTANCIATED:
    00224             if (ok) {
    00225                 showStatus(i18n("Initializing Applet \"%1\"...").arg(appletName()));
    00226             }
    00227             ok = (d->state == CLASS_LOADED);
    00228             break;
    00229         case INITIALIZED:
    00230             ok = (d->state == INSTANCIATED);
    00231             if (ok) {
    00232                 showStatus(i18n("Starting Applet \"%1\"...").arg(appletName()));
    00233                 start();
    00234             }
    00235             break;
    00236         case STARTED:
    00237             ok = (d->state == INITIALIZED || d->state == STOPPED);
    00238             if (ok) {
    00239                 showStatus(i18n("Applet \"%1\" started").arg(appletName()));
    00240             }
    00241             break;
    00242         case STOPPED:
    00243             ok = (d->state == INITIALIZED || d->state == STARTED);
    00244             if (ok) {
    00245                 showStatus(i18n("Applet \"%1\" stopped").arg(appletName()));
    00246             }
    00247             break;
    00248         case DESTROYED:
    00249             ok = true;
    00250             break;
    00251         default:
    00252             break;
    00253     }
    00254     if (ok) {
    00255         d->state = newState;
    00256     } else {
    00257         kdError(6100) << "KJavaApplet::stateChange : don't want to switch from state "
    00258             << d->state << " to " << newState << endl;
    00259     }
    00260 }
    00261
    00262 void KJavaApplet::showStatus(const QString &msg) {
    00263     QStringList args;
    00264     args << msg;
    00265     context->processCmd("showstatus", args);
    00266 }
    00267
    00268 void KJavaApplet::setFailed() {
    00269     d->failed = true;
    00270 }
    00271
    00272 bool KJavaApplet::isAlive() const {
    00273    return (
    00274         !d->failed
    00275         && d->state >= INSTANCIATED
    00276         && d->state < STOPPED
    00277    );
    00278 }
    00279
    00280 KJavaApplet::AppletState KJavaApplet::state() const {
    00281     return d->state;
    00282 }
    00283
    00284 bool KJavaApplet::failed() const {
    00285     return d->failed;
    00286 }
    00287
    00288 #include "kjavaapplet.moc"

This file is part of the documentation for khtml Library Version 3.4.1.
Documentation copyright © 1996-2004 the KDE developers.
Generated on Sat Jun 11 20:33:16 2005 by doxygen 1.4.1 written by Dimitri van Heesch, © 1997-2003