Scribus
Open source desktop publishing at your fingertips
pathconnect.h
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 
41 class PLUGIN_API PathConnectPlugin : public ScActionPlugin
42 {
43  Q_OBJECT
44 
45  public:
46  // Standard plugin implementation
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();
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;
62  PageItem* m_item2;
63  ScribusDoc* m_doc;
64 
65  FPointArray originalPath1;
66  FPointArray originalPath2;
67  double originalXPos;
68  double originalYPos;
69 
70  bool firstUpdate;
71  private slots:
72  void updateEffect(int effectType, int pointOne, int pointTwo, int mode);
73 };
74 
75 extern "C" PLUGIN_API int pathconnect_getPluginAPIVersion();
76 extern "C" PLUGIN_API ScPlugin* pathconnect_getPlugin();
77 extern "C" PLUGIN_API void pathconnect_freePlugin(ScPlugin* plugin);
78 
79 #endif
virtual void addToMainWindowMenu(ScribusMainWindow *)
Allow plugins to add to a main menu.
Definition: pathconnect.h:54
A plug-in that performs a single action.
Definition: scplugin.h:248
virtual const QString fullTrName() const =0
Plug-in's human-readable, translated name.
Abstract super class for all Scribus plug-ins.
Definition: scplugin.h:90
This Class is the base class for your application. It sets up the main window and providing a menubar...
Definition: scribus.h:123
virtual bool run(ScribusDoc *doc, QString target=QString::null)=0
Run the plug-in's main action.
virtual void languageChange()=0
Update all user-visible text to reflect current UI language.
the Document Class
Definition: scribusdoc.h:90
This is a simple "Path Connect" plugin for Scribus 1.3 and later.
Definition: pathconnect.h:41
ScPlugin provides an interface to ask plugins for information about themselves.
Definition: scplugin.h:103
virtual const AboutData * getAboutData() const =0
Return descriptive information about the plug-in.
Definition: pageitem.h:92
Definition: fpointarray.h:42