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.
tdelibs/tdecore/kapplication_win.cpp

118 lines
3.8 KiB

/*
This file is part of the KDE libraries
Copyright (C) 2004 Jaroslaw Staniek <js@iidea.pl>
This library is free software; you can redistribute it and/or
modify it under the terms of the GNU Library General Public
License version 2 as published by the Free Software Foundation.
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.
*/
#include <tdeapplication.h>
#include <kstandarddirs.h>
#include <tdelocale.h>
#include <kurl.h>
#include "kcheckaccelerators.h"
#include "tdeappdcopinterface.h"
#include <qassistantclient.h>
#include <tqdir.h>
#include "windows.h"
#include "shellapi.h"
/**
* MS Windows-related actions for TDEApplication startup.
*
* - Use Qt translation which will be usable for TQFileDialog
* and other Qt-only GUIs. The "qt_<language>.qm" file should be stored
* in the same place as .po files for a given language.
*
* @internal
*/
void TDEApplication_init_windows(bool /*GUIenabled*/)
{
TQString qt_transl_file = ::locate( "locale", TDEGlobal::locale()->language()
+ "/LC_MESSAGES/qt_" + TDEGlobal::locale()->language() + ".qm" );
QTranslator *qt_transl = new QTranslator();
if (qt_transl->load( qt_transl_file, ""))
kapp->installTranslator( qt_transl );
else
delete qt_transl;
}
//unsafe; create kapplication_p.h instead!
typedef void* IceIOErrorHandler;
class TDEApplicationPrivate
{
public:
TDEApplicationPrivate();
~TDEApplicationPrivate();
bool actionRestrictions : 1;
bool guiEnabled : 1;
int refCount;
IceIOErrorHandler oldIceIOErrorHandler;
KCheckAccelerators* checkAccelerators;
TQString overrideStyle;
TQString geometry_arg;
TQCString startup_id;
TQTimer* app_started_timer;
TDEAppDCOPInterface *m_TDEAppDCOPInterface;
bool session_save;
QAssistantClient* qassistantclient;
};
void TDEApplication::invokeHelp( const TQString& anchor,
const TQString& _appname, const TQCString& startup_id ) const
{
if (!d->qassistantclient) {
d->qassistantclient = new QAssistantClient(
TDEStandardDirs::findExe( "assistant" ), 0);
TQStringList args;
args << "-profile";
args << TQDir::convertSeparators( locate("html", TQString(name())+"/"+TQString(name())+".adp") );
d->qassistantclient->setArguments(args);
}
d->qassistantclient->openAssistant();
}
// on win32, for invoking browser we're using win32 API
// see kapplication_win.cpp
void TDEApplication::invokeBrowser( const TQString &url, const TQCString& startup_id )
{
TQCString s = url.latin1();
const unsigned short *l = (const unsigned short *)s.data();
ShellExecuteA(0, "open", s.data(), 0, 0, SW_NORMAL);
}
void TDEApplication::invokeMailer(const TQString &to, const TQString &cc, const TQString &bcc,
const TQString &subject, const TQString &body,
const TQString & /*messageFile TODO*/, const TQStringList &attachURLs,
const TQCString& startup_id )
{
KURL url("mailto:"+to);
url.setQuery("?subject="+subject);
url.addQueryItem("cc", cc);
url.addQueryItem("bcc", bcc);
url.addQueryItem("body", body);
for (TQStringList::ConstIterator it = attachURLs.constBegin(); it != attachURLs.constEnd(); ++it)
url.addQueryItem("attach", KURL::encode_string(*it));
TQCString s = url.url().latin1();
const unsigned short *l = (const unsigned short *)s.data();
ShellExecuteA(0, "open", s.data(), 0, 0, SW_NORMAL);
}