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/filetransferwindow/libkvifiletransferwindow.cpp

162 lines
4.0 KiB

//==================================================================================
//
// File : libkvifiletransferwindow.cpp
// Creation date : Mon Apr 21 2003 23:14:12 CEST by Szymon Stefanek
//
// Copyright (C) 2003 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 "kvi_module.h"
#include "filetransferwindow.h"
#include "kvi_app.h"
#include "kvi_frame.h"
#include "kvi_window.h"
#include "kvi_locale.h"
#include "kvi_iconmanager.h"
#include <tqsplitter.h>
KviFileTransferWindow * g_pFileTransferWindow = 0;
static KviModuleExtension * filetransferwindow_extension_alloc(KviModuleExtensionAllocStruct * s)
{
bool bCreateMinimized = false;
bool bNoRaise = false;
if(!g_pFileTransferWindow)
{
if(s->pParams)
{
if(TQVariant * v = s->pParams->find("bCreateMinimized"))
{
if(v->isValid())
{
if(v->type() == TQVariant::Bool)
{
bCreateMinimized = v->toBool();
}
}
}
}
g_pFileTransferWindow = new KviFileTransferWindow(s->pDescriptor,g_pFrame);
g_pFrame->addWindow(g_pFileTransferWindow,!bCreateMinimized);
if(bCreateMinimized)g_pFileTransferWindow->minimize();
return g_pFileTransferWindow;
}
if(s->pParams)
{
if(TQVariant * v = s->pParams->find("bNoRaise"))
{
if(v)
{
if(v->isValid() && v->type() == TQVariant::Bool)
bNoRaise = v->toBool();
}
}
}
if(!bNoRaise)g_pFileTransferWindow->delayedAutoRaise();
return g_pFileTransferWindow;
}
/*
@doc: filetransferwindow.open
@type:
command
@title:
filetransferwindow.open
@short:
Opens the file transfer window
@syntax:
filetransferwindow.open [-m] [-n]
@switches:
!sw: -m
Causes the window to be created as minimized
!sw: -n
Causes the window to be not raised if already open
@description:
Opens the file transfer window
*/
static bool filetransferwindow_kvs_cmd_open(KviKvsModuleCommandCall * c)
{
KviModuleExtensionDescriptor * d = c->module()->findExtensionDescriptor("tool",KVI_FILE_TRANSFER_WINDOW_EXTENSION_NAME);
if(d)
{
KviPointerHashTable<TQString,TQVariant> dict(17,true);
dict.setAutoDelete(true);
TQString dummy;
dict.replace("bCreateMinimized",new TQVariant(c->hasSwitch('m',dummy)));
dict.replace("bNoRaise",new TQVariant(c->hasSwitch('n',dummy)));
d->allocate(c->window(),&dict,0);
} else {
c->warning(__tr("Ops.. internal error"));
}
return true;
}
static bool filetransferwindow_module_init(KviModule * m)
{
KviModuleExtensionDescriptor * d = m->registerExtension("tool",
KVI_FILE_TRANSFER_WINDOW_EXTENSION_NAME,
__tr2qs("Manage File &Transfers"),
filetransferwindow_extension_alloc);
if(d)d->setIcon(*(g_pIconManager->getSmallIcon(KVI_SMALLICON_FILETRANSFER)));
KVSM_REGISTER_SIMPLE_COMMAND(m,"open",filetransferwindow_kvs_cmd_open);
return true;
}
static bool filetransferwindow_module_cleanup(KviModule *m)
{
if(g_pFileTransferWindow)
{
delete g_pFileTransferWindow;
g_pFileTransferWindow = 0;
}
return true;
}
static bool filetransferwindow_module_can_unload(KviModule *m)
{
return (!g_pFileTransferWindow);
}
KVIRC_MODULE(
"FileTransferWindow",
"1.0.0",
"Copyright (C) 2003 Szymon Stefanek (pragma at kvirc dot net)",
"Links window extension",
filetransferwindow_module_init,
filetransferwindow_module_can_unload,
0,
filetransferwindow_module_cleanup
)