Subversion Repositories Scribus

Rev

Rev 23652 | Details | Compare with Previous | Last modification | View Log | RSS feed

Rev Author Line No. Line
12868 fschmid 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.,                                        *
18122 mrdocs 24
*   51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.              *
12868 fschmid 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
 
13805 jghali 35
class ScribusDoc;
36
 
12868 fschmid 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();
23652 craig 49
                bool run(ScribusDoc* doc, const QString& target = QString()) override;
23705 craig 50
                QString fullTrName() const override;
23652 craig 51
                const AboutData* getAboutData() const override;
52
                void deleteAboutData(const AboutData* about) const override;
53
                void languageChange() override;
54
                void addToMainWindowMenu(ScribusMainWindow *) override {};
12868 fschmid 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);
18326 jghali 60
 
23210 craig 61
                PageItem* m_item1 {nullptr};
62
                PageItem* m_item2 {nullptr};
63
                ScribusDoc* m_doc {nullptr};
12868 fschmid 64
                FPointArray originalPath1;
65
                FPointArray originalPath2;
23210 craig 66
                double originalXPos {0.0};
67
                double originalYPos {0.0};
68
                bool firstUpdate {false};
69
 
12868 fschmid 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