You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
144 lines
4.3 KiB
144 lines
4.3 KiB
/*
|
|
* Copyright (C) 2003, Richard J. Moore <rich@kde.org>
|
|
*
|
|
* 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 QT_ONLY
|
|
|
|
#include <kcolordialog.h>
|
|
#include <tdefiledialog.h>
|
|
#include <kpropertiesdialog.h>
|
|
|
|
#else
|
|
|
|
#include <tqfiledialog.h>
|
|
#define KFileDialog TQFileDialog
|
|
|
|
#endif // QT_ONLY
|
|
|
|
#include <kjsembed/jsbinding.h>
|
|
#include <kjsembed/global.h>
|
|
|
|
#include "stddialog_imp.h"
|
|
|
|
namespace KJSEmbed {
|
|
namespace BuiltIns {
|
|
|
|
StdDialogImp::StdDialogImp( KJS::ExecState *exec, int mid )
|
|
: JSProxyImp(exec), id(mid)
|
|
{
|
|
}
|
|
|
|
StdDialogImp::~StdDialogImp() {}
|
|
|
|
void StdDialogImp::addBindings( KJS::ExecState *exec, KJS::Object &parent )
|
|
{
|
|
StdDialogImp *sdi;
|
|
|
|
sdi = new StdDialogImp( exec, StdDialogImp::MethodGetOpenFileName );
|
|
parent.put( exec, "getOpenFileName", KJS::Object( sdi ) );
|
|
sdi = new StdDialogImp( exec, StdDialogImp::MethodGetSaveFileName );
|
|
parent.put( exec, "getSaveFileName", KJS::Object( sdi ) );
|
|
|
|
sdi = new StdDialogImp( exec, StdDialogImp::MethodGetOpenURL );
|
|
parent.put( exec, "getOpenURL", KJS::Object( sdi ) );
|
|
sdi = new StdDialogImp( exec, StdDialogImp::MethodGetSaveURL );
|
|
parent.put( exec, "getSaveURL", KJS::Object( sdi ) );
|
|
|
|
sdi = new StdDialogImp( exec, StdDialogImp::MethodGetExistingDirectory );
|
|
parent.put( exec, "getExistingDirectory", KJS::Object( sdi ) );
|
|
sdi = new StdDialogImp( exec, StdDialogImp::MethodGetExistingURL );
|
|
parent.put( exec, "getExistingURL", KJS::Object( sdi ) );
|
|
|
|
sdi = new StdDialogImp( exec, StdDialogImp::MethodGetImageOpenURL );
|
|
parent.put( exec, "getImageOpenURL", KJS::Object( sdi ) );
|
|
|
|
sdi = new StdDialogImp( exec, StdDialogImp::MethodGetColor );
|
|
parent.put( exec, "getColor", KJS::Object( sdi ) );
|
|
|
|
sdi = new StdDialogImp( exec, StdDialogImp::MethodShowProperties );
|
|
parent.put( exec, "showProperties", KJS::Object( sdi ) );
|
|
}
|
|
|
|
KJS::Value StdDialogImp::call( KJS::ExecState *exec, KJS::Object &/*self*/, const KJS::List &args )
|
|
{
|
|
TQString arg0 = (args.size() > 0) ? args[0].toString(exec).qstring() : TQString::null;
|
|
TQString arg1 = (args.size() > 1) ? args[1].toString(exec).qstring() : TQString::null;
|
|
|
|
switch( id ) {
|
|
case MethodGetOpenFileName:
|
|
{
|
|
TQString s = KFileDialog::getOpenFileName( arg0, arg1 );
|
|
return KJS::String( s );
|
|
}
|
|
case MethodGetSaveFileName:
|
|
{
|
|
TQString s = KFileDialog::getSaveFileName( arg0, arg1 );
|
|
return KJS::String( s );
|
|
}
|
|
case MethodGetExistingDirectory:
|
|
{
|
|
TQString s = KFileDialog::getExistingDirectory( arg0 );
|
|
return KJS::String( s );
|
|
}
|
|
#ifndef QT_ONLY
|
|
case MethodGetColor:
|
|
{
|
|
TQColor col;
|
|
int res = KColorDialog::getColor( col );
|
|
if ( res == TQDialog::Accepted )
|
|
return convertToValue( exec, TQVariant(col) );
|
|
}
|
|
case MethodGetOpenURL:
|
|
{
|
|
KURL u = KFileDialog::getOpenURL( arg0, arg1 );
|
|
return KJS::String( u.url() );
|
|
}
|
|
case MethodGetSaveURL:
|
|
{
|
|
KURL u = KFileDialog::getSaveURL( arg0, arg1 );
|
|
return KJS::String( u.url() );
|
|
}
|
|
case MethodGetExistingURL:
|
|
{
|
|
KURL u = KFileDialog::getExistingURL( arg0 );
|
|
return KJS::String( u.url() );
|
|
}
|
|
case MethodGetImageOpenURL:
|
|
{
|
|
KURL u = KFileDialog::getImageOpenURL( arg0 );
|
|
return KJS::String( u.url() );
|
|
}
|
|
case MethodShowProperties:
|
|
{
|
|
// The default args mean this dialog auto-shows
|
|
/*KPropertiesDialog *dlg =*/ new KPropertiesDialog( KURL(arg0) );
|
|
return KJS::Null();
|
|
}
|
|
#endif // QT_ONLY
|
|
default:
|
|
kdWarning() << "StdDialogImp has no method " << id << endl;
|
|
}
|
|
|
|
kdWarning() << "StdDialogImp returning null" << endl;
|
|
|
|
return KJS::Null();
|
|
}
|
|
|
|
} // namespace KJSEmbed::BuiltIns
|
|
} // namespace KJSEmbed
|