/////////////////////////////////////////////////////////////////////////////// // // File : libkvitheme.cpp // Created on Sat 30 Dec 2006 14:54:56 by Szymon Stefanek // // This toolbar is part of the KVirc irc client distribution // Copyright (C) 2006 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 "kvi_locale.h" #include "kvi_qstring.h" #include "kvi_parameterlist.h" #include "kvi_cmdformatter.h" #include "kvi_qstring.h" #include "kvi_error.h" #include "kvi_out.h" #include "kvi_iconmanager.h" #include "kvi_mirccntrl.h" #include "kvi_config.h" #include "kvi_sourcesdate.h" #include "kvi_fileutils.h" #include "kvi_filedialog.h" #include "managementdialog.h" #include "themefunctions.h" #include TQRect g_rectManagementDialogGeometry(0,0,0,0); /* @doc: theme.install @type: command @title: theme.install @short: Shows the theme theme management editor @syntax: theme.install @description: Attempts to install the themes in the package specified by . */ static bool theme_kvs_cmd_install(KviKvsModuleCommandCall * c) { TQString szThemePackFile; KVSM_PARAMETERS_BEGIN(c) KVSM_PARAMETER("package_path",KVS_PT_STRING,0,szThemePackFile) KVSM_PARAMETERS_END(c) TQString szError; if(!KviThemeFunctions::installThemePackage(szThemePackFile,szError)) { c->error(__tr2qs_ctx("Error installing theme package: %Q","theme"),&szError); return false; } return true; } /* @doc: theme.screenshot @type: command @title: theme.screenshot @short: Makes a screenshot of the KVIrc window @syntax: theme.screenshot [file_name_path:string] @description: Makes a screenshot of the KVIrc main window and saves it in the specified file. If [file_name_path] is not specified then a save file dialog is shown. */ static bool theme_kvs_cmd_screenshot(KviKvsModuleCommandCall * c) { TQString szFileName; KVSM_PARAMETERS_BEGIN(c) KVSM_PARAMETER("file_name_path",KVS_PT_STRING,KVS_PF_OPTIONAL,szFileName) KVSM_PARAMETERS_END(c) KviFileUtils::adjustFilePath(szFileName); TQString szTmp; c->enterBlockingSection(); bool bResult = KviFileDialog::askForSaveFileName(szTmp,__tr2qs_ctx("Choose a file to save the screenshot to","theme"),szFileName,"*.png"); if(!c->leaveBlockingSection())return false; // need to stop immediately if(!bResult)return true; szFileName = szTmp; if(szFileName.isEmpty())return true; // done KviFileUtils::adjustFilePath(szFileName); if(TQFileInfo(szFileName).extension(false)!="png") szFileName+=".png"; TQString szError; if(!KviThemeFunctions::makeKVIrcScreenshot(szFileName)) { c->error(__tr2qs_ctx("Error making screenshot","theme")); // FIXME: a nicer error ? return false; } return true; } /* @doc: theme.dialog @type: command @title: theme.dialog @short: Shows the theme theme management editor @syntax: theme.dialog @description: Shows the theme theme management editor */ static bool theme_kvs_cmd_dialog(KviKvsModuleCommandCall * c) { KviThemeManagementDialog::display(); return true; } static bool theme_module_init(KviModule *m) { KVSM_REGISTER_SIMPLE_COMMAND(m,"dialog",theme_kvs_cmd_dialog); KVSM_REGISTER_SIMPLE_COMMAND(m,"install",theme_kvs_cmd_install); KVSM_REGISTER_SIMPLE_COMMAND(m,"screenshot",theme_kvs_cmd_screenshot); TQString szBuf; m->getDefaultConfigFileName(szBuf); KviConfig cfg(szBuf,KviConfig::Read); g_rectManagementDialogGeometry = cfg.readRectEntry("EditorGeometry",TQRect(10,10,390,440)); return true; } static bool theme_module_cleanup(KviModule *m) { KviThemeManagementDialog::cleanup(); TQString szBuf; m->getDefaultConfigFileName(szBuf); KviConfig cfg(szBuf,KviConfig::Write); cfg.writeEntry("EditorGeometry",g_rectManagementDialogGeometry); return true; } static bool theme_module_can_unload(KviModule * m) { return (!KviThemeManagementDialog::instance()); } KVIRC_MODULE( "theme", // module name "1.0.0", // module version "Copyright (C) 2006 Szymon Stefanek (pragma at kvirc dot net)", // author & (C) "Theme management functions", theme_module_init, theme_module_can_unload, 0, theme_module_cleanup )