• Skip to content
  • Skip to link menu
KDE API Reference
  • KDE API Reference
  • kdeedu API Reference
  • KDE Home
  • Contact Us
 

kig

  • sources
  • kde-4.12
  • kdeedu
  • kig
  • kig
kig_commands.h
Go to the documentation of this file.
1 /*
2  This file is part of Kig, a KDE program for Interactive Geometry...
3  Copyright (C) 2002 Dominique Devriese <devriese@kde.org>
4 
5  This program is free software; you can redistribute it and/or modify
6  it under the terms of the GNU General Public License as published by
7  the Free Software Foundation; either version 2 of the License, or
8  (at your option) any later version.
9 
10  This program is distributed in the hope that it will be useful,
11  but WITHOUT ANY WARRANTY; without even the implied warranty of
12  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13  GNU General Public License for more details.
14 
15  You should have received a copy of the GNU General Public License
16  along with this program; if not, write to the Free Software
17  Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301
18  USA
19 */
20 
21 
22 #ifndef KIG_COMMANDS_H
23 #define KIG_COMMANDS_H
24 
25 #include <qundostack.h>
26 
27 #include <klocale.h>
28 #include <kdebug.h>
29 
30 #include "../objects/object_holder.h"
31 
32 class KigDocument;
33 class KigPart;
34 class CoordinateSystem;
35 
36 class KigCommandTask;
37 class KigWidget;
38 class Rect;
39 
44 class KigCommand
45  : public QUndoCommand
46 {
47  class Private;
48  Private* d;
49 public:
50  KigCommand( KigPart& inDoc, const QString& name );
51  ~KigCommand();
52 
57  static KigCommand* addCommand( KigPart& doc, const std::vector<ObjectHolder*>& os );
61  static KigCommand* addCommand( KigPart& doc, ObjectHolder* os );
67  static KigCommand* removeCommand( KigPart& doc, const std::vector<ObjectHolder*>& os );
71  static KigCommand* removeCommand( KigPart& doc, ObjectHolder* o );
72 
78  static KigCommand* changeCoordSystemCommand( KigPart& doc, CoordinateSystem* s );
79 
80  void addTask( KigCommandTask* );
81 
82  void redo();
83  void undo();
84 private:
85  Q_DISABLE_COPY( KigCommand )
86 };
87 
91 class KigCommandTask
92 {
93 public:
94  KigCommandTask();
95  virtual ~KigCommandTask();
96 
97  virtual void execute( KigPart& doc ) = 0;
98  virtual void unexecute( KigPart& doc ) = 0;
99 };
100 
101 class AddObjectsTask
102  : public KigCommandTask
103 {
104 public:
105  AddObjectsTask( const std::vector<ObjectHolder*>& os);
106  ~AddObjectsTask ();
107  void execute( KigPart& doc );
108  void unexecute( KigPart& doc );
109 protected:
110  bool undone;
111 
112  std::vector<ObjectHolder*> mobjs;
113 };
114 
115 class RemoveObjectsTask
116  : public AddObjectsTask
117 {
118 public:
119  RemoveObjectsTask( const std::vector<ObjectHolder*>& os );
120  void execute( KigPart& );
121  void unexecute( KigPart& );
122 };
123 
124 class ChangeObjectConstCalcerTask
125  : public KigCommandTask
126 {
127 public:
128  ChangeObjectConstCalcerTask( ObjectConstCalcer* calcer, ObjectImp* newimp );
129  ~ChangeObjectConstCalcerTask();
130 
131  void execute( KigPart& );
132  void unexecute( KigPart& );
133 protected:
134  ObjectConstCalcer::shared_ptr mcalcer;
135  ObjectImp* mnewimp;
136 };
137 
153 class MonitorDataObjects
154 {
155  class Private;
156  Private* d;
157 public:
161  MonitorDataObjects( const std::vector<ObjectCalcer*>& objs );
162  MonitorDataObjects( ObjectCalcer* c );
163  ~MonitorDataObjects();
164 
169  void monitor( const std::vector<ObjectCalcer*>& objs );
170 
175  void finish( KigCommand* comm );
176 };
177 
181 class ChangeCoordSystemTask
182  : public KigCommandTask
183 {
184  CoordinateSystem* mcs;
185 public:
189  ChangeCoordSystemTask( CoordinateSystem* s );
190  ~ChangeCoordSystemTask();
191 
192  void execute( KigPart& doc );
193  void unexecute( KigPart& doc );
194 };
195 
196 class ChangeParentsAndTypeTask
197  : public KigCommandTask
198 {
199  class Private;
200  Private* d;
201 public:
202  ChangeParentsAndTypeTask( ObjectTypeCalcer* o, const std::vector<ObjectCalcer*>& newparents,
203  const ObjectType* newtype );
204  ~ChangeParentsAndTypeTask();
205 
206  void execute( KigPart& doc );
207  void unexecute( KigPart& doc );
208 };
209 
210 class KigViewShownRectChangeTask
211  : public KigCommandTask
212 {
213  class Private;
214  Private* d;
215 public:
216  KigViewShownRectChangeTask( KigWidget& v, const Rect& newrect );
217  ~KigViewShownRectChangeTask();
218 
219  void execute( KigPart& doc );
220  void unexecute( KigPart& doc );
221 };
222 
223 class ChangeObjectDrawerTask
224  : public KigCommandTask
225 {
226  ObjectHolder* mholder;
227  ObjectDrawer* mnewdrawer;
228 public:
229  ChangeObjectDrawerTask( ObjectHolder* holder, ObjectDrawer* newdrawer );
230  ~ChangeObjectDrawerTask();
231 
232  void execute( KigPart& doc );
233  void unexecute( KigPart& doc );
234 };
235 
236 #endif
KigCommandTask::unexecute
virtual void unexecute(KigPart &doc)=0
KigCommandTask::execute
virtual void execute(KigPart &doc)=0
ChangeObjectDrawerTask::unexecute
void unexecute(KigPart &doc)
Definition: kig_commands.cpp:379
CoordinateSystem
a CoordinateSystem is what the user sees: it is kept by KigPart to show the user a grid...
Definition: coordinate_system.h:60
KigCommand::undo
void undo()
Definition: kig_commands.cpp:67
AddObjectsTask::undone
bool undone
Definition: kig_commands.h:110
KigViewShownRectChangeTask
Definition: kig_commands.h:210
ChangeObjectDrawerTask::~ChangeObjectDrawerTask
~ChangeObjectDrawerTask()
Definition: kig_commands.cpp:363
KigCommand::KigCommand
KigCommand(KigPart &inDoc, const QString &name)
Definition: kig_commands.cpp:48
ChangeParentsAndTypeTask::unexecute
void unexecute(KigPart &doc)
Definition: kig_commands.cpp:324
KigCommand::~KigCommand
~KigCommand()
Definition: kig_commands.cpp:53
KigCommand
a KigCommand represents almost every action performed in Kig.
Definition: kig_commands.h:44
ObjectConstCalcer
This is an ObjectCalcer that keeps an ObjectImp, and never calculates a new one.
Definition: object_calcer.h:232
RemoveObjectsTask::unexecute
void unexecute(KigPart &)
Definition: kig_commands.cpp:170
KigCommandTask::KigCommandTask
KigCommandTask()
Definition: kig_commands.cpp:126
RemoveObjectsTask
Definition: kig_commands.h:115
RemoveObjectsTask::RemoveObjectsTask
RemoveObjectsTask(const std::vector< ObjectHolder * > &os)
Definition: kig_commands.cpp:159
KigCommand::removeCommand
static KigCommand * removeCommand(KigPart &doc, const std::vector< ObjectHolder * > &os)
make sure that when you delete something, you are also deleting its parents.
Definition: kig_commands.cpp:93
KigViewShownRectChangeTask::execute
void execute(KigPart &doc)
Definition: kig_commands.cpp:349
KigCommand::addTask
void addTask(KigCommandTask *)
Definition: kig_commands.cpp:74
Rect
This file is part of Kig, a KDE program for Interactive Geometry...
Definition: rect.h:34
ChangeObjectConstCalcerTask
Definition: kig_commands.h:124
ChangeParentsAndTypeTask::execute
void execute(KigPart &doc)
Definition: kig_commands.cpp:297
KigCommandTask
This represents a single task to be executed in a KigCommand.
Definition: kig_commands.h:91
ChangeObjectConstCalcerTask::mnewimp
ObjectImp * mnewimp
Definition: kig_commands.h:135
ObjectTypeCalcer
This is an ObjectCalcer that uses one of the various ObjectType's to calculate its ObjectImp...
Definition: object_calcer.h:183
ChangeCoordSystemTask::~ChangeCoordSystemTask
~ChangeCoordSystemTask()
Definition: kig_commands.cpp:268
AddObjectsTask::mobjs
std::vector< ObjectHolder * > mobjs
Definition: kig_commands.h:112
myboost::intrusive_ptr< ObjectConstCalcer >
MonitorDataObjects::monitor
void monitor(const std::vector< ObjectCalcer * > &objs)
add objs to the list of objs to be watched, and save their current imp's.
Definition: kig_commands.cpp:217
ChangeObjectConstCalcerTask::~ChangeObjectConstCalcerTask
~ChangeObjectConstCalcerTask()
Definition: kig_commands.cpp:394
ChangeObjectConstCalcerTask::unexecute
void unexecute(KigPart &)
Definition: kig_commands.cpp:192
ChangeObjectDrawerTask
Definition: kig_commands.h:223
MonitorDataObjects::MonitorDataObjects
MonitorDataObjects(const std::vector< ObjectCalcer * > &objs)
all the DataObjects in objs will be watched.
Definition: kig_commands.cpp:211
KigViewShownRectChangeTask::unexecute
void unexecute(KigPart &doc)
Definition: kig_commands.cpp:358
ObjectHolder
An ObjectHolder represents an object as it is known to the document.
Definition: object_holder.h:40
ChangeCoordSystemTask::unexecute
void unexecute(KigPart &doc)
Definition: kig_commands.cpp:263
ObjectCalcer
An ObjectCalcer is an object that represents an algorithm for calculating an ObjectImp from other Obj...
Definition: object_calcer.h:66
MonitorDataObjects
this class monitors a set of DataObjects for changes and returns an appropriate ChangeObjectImpsComma...
Definition: kig_commands.h:153
AddObjectsTask::unexecute
void unexecute(KigPart &doc)
Definition: kig_commands.cpp:145
ChangeParentsAndTypeTask::~ChangeParentsAndTypeTask
~ChangeParentsAndTypeTask()
Definition: kig_commands.cpp:281
KigWidget
This class is the real widget showing the document.
Definition: kig_view.h:50
KigCommand::changeCoordSystemCommand
static KigCommand * changeCoordSystemCommand(KigPart &doc, CoordinateSystem *s)
This creates directly a command to change the coordinate system to s .
Definition: kig_commands.cpp:118
AddObjectsTask::execute
void execute(KigPart &doc)
Definition: kig_commands.cpp:139
MonitorDataObjects::~MonitorDataObjects
~MonitorDataObjects()
Definition: kig_commands.cpp:243
MonitorDataObjects::finish
void finish(KigCommand *comm)
add the generated KigCommandTasks to the command comm .
Definition: kig_commands.cpp:227
ChangeCoordSystemTask::execute
void execute(KigPart &doc)
Definition: kig_commands.cpp:254
ObjectType
The ObjectType class is a thing that represents the "behaviour" for a certain type.
Definition: object_type.h:32
RemoveObjectsTask::execute
void execute(KigPart &)
Definition: kig_commands.cpp:165
ChangeCoordSystemTask
A task to change the coordinate system.
Definition: kig_commands.h:181
ObjectDrawer
A class holding some information about how a certain object is drawn on the window.
Definition: object_drawer.h:47
ChangeObjectConstCalcerTask::ChangeObjectConstCalcerTask
ChangeObjectConstCalcerTask(ObjectConstCalcer *calcer, ObjectImp *newimp)
Definition: kig_commands.cpp:175
KigCommandTask::~KigCommandTask
virtual ~KigCommandTask()
Definition: kig_commands.cpp:130
AddObjectsTask::AddObjectsTask
AddObjectsTask(const std::vector< ObjectHolder * > &os)
Definition: kig_commands.cpp:134
ChangeObjectConstCalcerTask::execute
void execute(KigPart &)
Definition: kig_commands.cpp:180
KigCommand::addCommand
static KigCommand * addCommand(KigPart &doc, const std::vector< ObjectHolder * > &os)
To avoid confusion, this doesn't add a command to anything, this creates an AddCommand ;) ...
Definition: kig_commands.cpp:106
KigViewShownRectChangeTask::~KigViewShownRectChangeTask
~KigViewShownRectChangeTask()
Definition: kig_commands.cpp:344
KigCommand::redo
void redo()
Definition: kig_commands.cpp:60
KigViewShownRectChangeTask::KigViewShownRectChangeTask
KigViewShownRectChangeTask(KigWidget &v, const Rect &newrect)
Definition: kig_commands.cpp:337
ChangeParentsAndTypeTask::ChangeParentsAndTypeTask
ChangeParentsAndTypeTask(ObjectTypeCalcer *o, const std::vector< ObjectCalcer * > &newparents, const ObjectType *newtype)
Definition: kig_commands.cpp:286
KigDocument
KigDocument is the class holding the real data in a Kig document.
Definition: kig_document.h:36
AddObjectsTask
Definition: kig_commands.h:101
ChangeObjectDrawerTask::ChangeObjectDrawerTask
ChangeObjectDrawerTask(ObjectHolder *holder, ObjectDrawer *newdrawer)
Definition: kig_commands.cpp:368
ChangeParentsAndTypeTask
Definition: kig_commands.h:196
ChangeCoordSystemTask::ChangeCoordSystemTask
ChangeCoordSystemTask(CoordinateSystem *s)
a command that changes the coordinate-system to s .
Definition: kig_commands.cpp:249
ChangeObjectConstCalcerTask::mcalcer
ObjectConstCalcer::shared_ptr mcalcer
Definition: kig_commands.h:134
ObjectImp
The ObjectImp class represents the behaviour of an object after it is calculated. ...
Definition: object_imp.h:226
KigPart
This is a "Part".
Definition: kig_part.h:68
QUndoCommand
ChangeObjectDrawerTask::execute
void execute(KigPart &doc)
Definition: kig_commands.cpp:374
AddObjectsTask::~AddObjectsTask
~AddObjectsTask()
Definition: kig_commands.cpp:151
This file is part of the KDE documentation.
Documentation copyright © 1996-2014 The KDE developers.
Generated on Tue Oct 14 2014 22:35:39 by doxygen 1.8.7 written by Dimitri van Heesch, © 1997-2006

KDE's Doxygen guidelines are available online.

kig

Skip menu "kig"
  • Main Page
  • Namespace List
  • Namespace Members
  • Alphabetical List
  • Class List
  • Class Hierarchy
  • Class Members
  • File List
  • File Members

kdeedu API Reference

Skip menu "kdeedu API Reference"
  • Analitza
  •     lib
  • kalgebra
  • kalzium
  •   libscience
  • kanagram
  • kig
  •   lib
  • klettres
  • kstars
  • libkdeedu
  •   keduvocdocument
  • marble
  • parley
  • rocs
  •   App
  •   RocsCore
  •   VisualEditor
  •   stepcore

Search



Report problems with this website to our bug tracking system.
Contact the specific authors with questions and comments about the page contents.

KDE® and the K Desktop Environment® logo are registered trademarks of KDE e.V. | Legal