Subversion Repositories Scribus

Rev

Rev 13805 | Go to most recent revision | Details | 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.,                                        *
24
*   59 Temple Place - Suite 330, Boston, MA  02111-1307, 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 "selection.h"
34
#include "scribuscore.h"
35
#include "scribusdoc.h"
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
                virtual bool run(ScribusDoc* doc, QString target = QString::null);
50
                virtual const QString fullTrName() const;
51
                virtual const AboutData* getAboutData() const;
52
                virtual void deleteAboutData(const AboutData* about) const;
53
                virtual void languageChange();
54
                virtual void addToMainWindowMenu(ScribusMainWindow *) {};
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
                PageItem *Item1;
61
                PageItem *Item2;
62
                FPointArray originalPath1;
63
                FPointArray originalPath2;
64
                double originalXPos;
65
                double originalYPos;
66
                ScribusDoc* currDoc;
67
                bool firstUpdate;
68
        private slots:
69
                void updateEffect(int effectType, int pointOne, int pointTwo, int mode);
70
};
71
 
72
extern "C" PLUGIN_API int pathconnect_getPluginAPIVersion();
73
extern "C" PLUGIN_API ScPlugin* pathconnect_getPlugin();
74
extern "C" PLUGIN_API void pathconnect_freePlugin(ScPlugin* plugin);
75
 
76
#endif