1 /* 2 For general Scribus (>=1.3.2) copyright and licensing information please refer 3 to the COPYING file provided with the program. Following this notice may exist 4 a copyright and/or license notice that predates the release of Scribus 1.3.2 5 for which a new license (GPL+exception) is in place. 6 */ 7 /*************************************************************************** 8 * Copyright (C) 2008 by Franz Schmid * 9 * franz.schmid@altmuehlnet.de * 10 * * 11 * This program is free software; you can redistribute it and/or modify * 12 * it under the terms of the GNU General Public License as published by * 13 * the Free Software Foundation; either version 2 of the License, or * 14 * (at your option) any later version. * 15 * * 16 * This program is distributed in the hope that it will be useful, * 17 * but WITHOUT ANY WARRANTY; without even the implied warranty of * 18 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * 19 * GNU General Public License for more details. * 20 * * 21 * You should have received a copy of the GNU General Public License * 22 * along with this program; if not, write to the * 23 * Free Software Foundation, Inc., * 24 * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. * 25 ****************************************************************************/ 26 27 #ifndef PATHCONNECT_H 28 #define PATHCONNECT_H 29 30 #include "fpointarray.h" 31 #include "pluginapi.h" 32 #include "scplugin.h" 33 #include "scribuscore.h" 34 35 class ScribusDoc; 36 37 /** \brief This is a simple "Path Connect" plugin for Scribus 1.3 and later. 38 \author Franz Schmid 39 \date November 2008 40 */ 41 class PLUGIN_API PathConnectPlugin : public ScActionPlugin 42 { 43 Q_OBJECT 44 45 public: 46 // Standard plugin implementation 47 PathConnectPlugin(); 48 virtual ~PathConnectPlugin(); 49 bool run(ScribusDoc* doc, const QString& target = QString()) override; 50 QString fullTrName() const override; 51 const AboutData* getAboutData() const override; 52 void deleteAboutData(const AboutData* about) const override; 53 void languageChange() override; addToMainWindowMenu(ScribusMainWindow *)54 void addToMainWindowMenu(ScribusMainWindow *) override {}; 55 56 // Special features (none) 57 private: 58 FPointArray computePath(int pointOne, int pointTwo, int mode, FPointArray &p1, FPointArray &p2); 59 FPointArray reversePath(FPointArray &path); 60 61 PageItem* m_item1 {nullptr}; 62 PageItem* m_item2 {nullptr}; 63 ScribusDoc* m_doc {nullptr}; 64 FPointArray originalPath1; 65 FPointArray originalPath2; 66 double originalXPos {0.0}; 67 double originalYPos {0.0}; 68 bool firstUpdate {false}; 69 70 private slots: 71 void updateEffect(int effectType, int pointOne, int pointTwo, int mode); 72 }; 73 74 extern "C" PLUGIN_API int pathconnect_getPluginAPIVersion(); 75 extern "C" PLUGIN_API ScPlugin* pathconnect_getPlugin(); 76 extern "C" PLUGIN_API void pathconnect_freePlugin(ScPlugin* plugin); 77 78 #endif 79