kjs_mozilla.cpp00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021 #include <klocale.h>
00022 #include <kdebug.h>
00023
00024 #include "kjs_mozilla.h"
00025 #include "kjs/lookup.h"
00026 #include "kjs_binding.h"
00027 #include "khtml_part.h"
00028 #include "kjs_mozilla.lut.h"
00029
00030 using namespace KJS;
00031
00032 namespace KJS {
00033
00034 const ClassInfo MozillaSidebarExtension::info = { "sidebar", 0, &MozillaSidebarExtensionTable, 0 };
00035
00036
00037
00038
00039
00040 }
00041 IMPLEMENT_PROTOFUNC_DOM(MozillaSidebarExtensionFunc)
00042
00043 MozillaSidebarExtension::MozillaSidebarExtension(ExecState *exec, KHTMLPart *p)
00044 : ObjectImp(exec->interpreter()->builtinObjectPrototype()), m_part(p) { }
00045
00046 Value MozillaSidebarExtension::get(ExecState *exec, const Identifier &propertyName) const
00047 {
00048 #ifdef KJS_VERBOSE
00049 kdDebug(6070) << "MozillaSidebarExtension::get " << propertyName.ascii() << endl;
00050 #endif
00051 return lookupGet<MozillaSidebarExtensionFunc,MozillaSidebarExtension,ObjectImp>(exec,propertyName,&MozillaSidebarExtensionTable,this);
00052 }
00053
00054 Value MozillaSidebarExtension::getValueProperty(ExecState *exec, int token) const
00055 {
00056 Q_UNUSED(exec);
00057 switch (token) {
00058 default:
00059 kdDebug(6070) << "WARNING: Unhandled token in MozillaSidebarExtension::getValueProperty : " << token << endl;
00060 return Value();
00061 }
00062 }
00063
00064 Value MozillaSidebarExtensionFunc::tryCall(ExecState *exec, Object &thisObj, const List &args)
00065 {
00066 KJS_CHECK_THIS( KJS::MozillaSidebarExtension, thisObj );
00067 MozillaSidebarExtension *mse = static_cast<MozillaSidebarExtension*>(thisObj.imp());
00068
00069 KHTMLPart *part = mse->part();
00070 if (!part)
00071 return Undefined();
00072
00073
00074 KParts::BrowserExtension *ext = part->browserExtension();
00075 if (ext) {
00076 QString url, name;
00077 if (args.size() == 1) {
00078 name = QString::null;
00079 url = args[0].toString(exec).qstring();
00080 } else if (args.size() == 2 || args.size() == 3) {
00081 name = args[0].toString(exec).qstring();
00082 url = args[1].toString(exec).qstring();
00083
00084 } else {
00085 return Boolean(false);
00086 }
00087 emit ext->addWebSideBar(KURL( url ), name);
00088 return Boolean(true);
00089 }
00090
00091 return Undefined();
00092 }
00093
00094
|