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.
kvirc/src/modules/objects/class_tbrowser.cpp

144 lines
4.8 KiB

//mdm:
// File : class_tbrowser.cpp
// Creation date : Fri Jan 28 14:21:48 CEST 2005
// by Tonino Imbesi(Grifisx) and Alessandro Carbone(Noldor)
//
// This file is part of the KVirc irc client distribution
// Copyright (C) 1999-2005 Szymon Stefanek (pragma at kvirc dot net)
//
// 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 opinion) 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 <tqtextbrowser.h>
#include "class_tbrowser.h"
#include "kvi_error.h"
#include "kvi_debug.h"
#include "kvi_locale.h"
#include "kvi_iconmanager.h"
/*
@doc: textbrowser
@keyterms:
textbrowser browser widget class,
@title:
textbrowser class
@type:
class
@short:
Provides a class that can display html pages.
@inherits:
[class]widget[/class]
@description:
Provides a class that can display html pages with hypertext navigation.
@functions:
!fn: $setSource(<file_name:string>)
With this you can display the page at szFile location (szFile include the path).
!fn: $backward()
Changes the document displayed to the previous document in the list of documents built by navigating links.
!fn: $forward()
Changes the document displayed to the next document in the list of documents built by navigating links.
!fn: $home()
Changes the document displayed to be the first document the browser displayed.
!fn: $reload()
Reloads the current set source.
!fn: $linkClickedEvent(<link_href:string>)
Triggered when a link is clicked by the user. The default implementation of this function
emits the "linkClicked" signal.
@signals:
!sg: $linkClicked(<link_href:string>)
This signal is emitted by the default implementation of the [classfnc]$linkClickedEvent[/classfnc]() function.
*/
KVSO_BEGIN_REGISTERCLASS(KviKvsObject_textbrowser,"textbrowser","multilineedit")
KVSO_REGISTER_HANDLER(KviKvsObject_textbrowser,"setSource",function_setSource)
KVSO_REGISTER_HANDLER(KviKvsObject_textbrowser,"forward",function_forward)
KVSO_REGISTER_HANDLER(KviKvsObject_textbrowser,"backward",function_backward)
KVSO_REGISTER_HANDLER(KviKvsObject_textbrowser,"home",function_home)
KVSO_REGISTER_HANDLER(KviKvsObject_textbrowser,"reload",function_reload)
KVSO_REGISTER_HANDLER(KviKvsObject_textbrowser,"linkClickedEvent",function_linkClickedEvent)
KVSO_END_REGISTERCLASS(KviKvsObject_textbrowser)
KVSO_BEGIN_CONSTRUCTOR(KviKvsObject_textbrowser,KviKvsObject_mledit)
KVSO_END_CONSTRUCTOR(KviKvsObject_textbrowser)
KVSO_BEGIN_DESTRUCTOR(KviKvsObject_textbrowser)
KVSO_END_CONSTRUCTOR(KviKvsObject_textbrowser)
bool KviKvsObject_textbrowser::init(KviKvsRunTimeContext * pContext,KviKvsVariantList *pParams)
{
TQTextBrowser * tb = new TQTextBrowser(parentScriptWidget(), name());
setObject(TQT_TQOBJECT(tb), true);
connect(tb,TQT_SIGNAL(anchorClicked(const TQString &,const TQString &)),this,TQT_SLOT(anchorClicked(const TQString &,const TQString &)));
return true;
}
bool KviKvsObject_textbrowser::function_setSource(KviKvsObjectFunctionCall *c)
{
TQString szFile;
KVSO_PARAMETERS_BEGIN(c)
KVSO_PARAMETER("file_name",KVS_PT_STRING,0,szFile)
KVSO_PARAMETERS_END(c)
if(!TQFile::exists(szFile))
{
c->warning(__tr2qs("I can't find the specified file '%Q'."),&szFile);
return true;
}
if (widget()) ((TQTextBrowser *)widget())->setSource(szFile);
return true;
}
bool KviKvsObject_textbrowser::function_forward(KviKvsObjectFunctionCall *c)
{
if (widget()) ((TQTextBrowser *)widget())->forward();
return true;
}
bool KviKvsObject_textbrowser::function_backward(KviKvsObjectFunctionCall *c)
{
if (widget()) ((TQTextBrowser *)widget())->backward();
return true;
}
bool KviKvsObject_textbrowser::function_home(KviKvsObjectFunctionCall *c)
{
if (widget()) ((TQTextBrowser *)widget())->home();
return true;
}
bool KviKvsObject_textbrowser::function_reload(KviKvsObjectFunctionCall *c)
{
if (widget()) ((TQTextBrowser *)widget())->reload();
return true;
}
void KviKvsObject_textbrowser::anchorClicked(const TQString &szName,const TQString &szLink)
{
KviKvsVariantList parms(new KviKvsVariant(szLink));
callFunction(this,"linkClickedEvent",0,&parms);
}
bool KviKvsObject_textbrowser::function_linkClickedEvent(KviKvsObjectFunctionCall *c)
{
emitSignal("linkClicked",c,c->params());
return true;
}
#include "m_class_tbrowser.moc"