• 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
  • modes
construct_mode.h
Go to the documentation of this file.
1 // Copyright (C) 2003 Dominique Devriese <devriese@kde.org>
2 
3 // This program is free software; you can redistribute it and/or
4 // modify it under the terms of the GNU General Public License
5 // as published by the Free Software Foundation; either version 2
6 // of the License, or (at your option) any later version.
7 
8 // This program is distributed in the hope that it will be useful,
9 // but WITHOUT ANY WARRANTY; without even the implied warranty of
10 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
11 // GNU General Public License for more details.
12 
13 // You should have received a copy of the GNU General Public License
14 // along with this program; if not, write to the Free Software
15 // Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
16 // 02110-1301, USA.
17 
18 #ifndef KIG_MODES_CONSTRUCT_MODE_H
19 #define KIG_MODES_CONSTRUCT_MODE_H
20 
21 #include "base_mode.h"
22 
23 #include "../objects/object_calcer.h"
24 
25 class ArgsParserObjectType;
26 class ObjectConstructor;
27 class ObjectCalcer;
28 
29 class PointConstructMode
30  : public BaseMode
31 {
36  ObjectTypeCalcer::shared_ptr mpt;
37 public:
38  PointConstructMode( KigPart& d );
39  ~PointConstructMode();
40 
41  using BaseMode::midClicked;
42  using BaseMode::rightClicked;
43  using BaseMode::mouseMoved;
44 
45 protected:
46  void leftClickedObject( ObjectHolder* o, const QPoint& p,
47  KigWidget& w, bool ctrlOrShiftDown );
48  void midClicked( const QPoint& p, KigWidget& w );
49  void rightClicked( const std::vector<ObjectHolder*>& oco, const QPoint& p, KigWidget& w );
50  void mouseMoved( const std::vector<ObjectHolder*>& os, const QPoint& p, KigWidget& w, bool shiftpressed );
51 
52  void enableActions();
53  void cancelConstruction();
54 
55  void redrawScreen( KigWidget* );
56 };
57 
58 class BaseConstructMode
59  : public BaseMode
60 {
65  ObjectTypeCalcer::shared_ptr mpt;
74  ObjectTypeCalcer* mcursor;
75  // we also allocate here the corresponding objectholder, since the
76  // only sensible place where to deallocate it is in the destructor
77  // of this class
78 // ObjectHolder* mcursorholder;
79  std::vector<ObjectHolder*> mparents;
80 
81  void leftReleased( QMouseEvent* e, KigWidget* v );
82 
83 public:
84  using BaseMode::midClicked;
85  using BaseMode::rightClicked;
86  using BaseMode::mouseMoved;
87  void selectObject( ObjectHolder* o, KigWidget& w );
88  void selectObjects( const std::vector<ObjectHolder*>& os, KigWidget& w );
89  virtual ~BaseConstructMode();
90 
91 protected:
92  BaseConstructMode( KigPart& d );
93 protected:
94  void leftClickedObject( ObjectHolder* o, const QPoint& p,
95  KigWidget& w, bool ctrlOrShiftDown );
96  void midClicked( const QPoint& p, KigWidget& w );
97  void rightClicked( const std::vector<ObjectHolder*>& oco, const QPoint& p, KigWidget& w );
98  void mouseMoved( const std::vector<ObjectHolder*>& os, const QPoint& p, KigWidget& w, bool shiftpressed );
99 
100  void enableActions();
101  void cancelConstruction();
102  void finish();
103 
104 protected:
105  virtual void handlePrelim( const std::vector<ObjectCalcer*>& os, const QPoint& p, KigPainter&, KigWidget& w ) = 0;
106  virtual QString selectStatement( const std::vector<ObjectCalcer*>& args, const KigWidget& w ) = 0;
107  virtual int isAlreadySelectedOK( const std::vector<ObjectCalcer*>&, const int& ) = 0;
108  virtual int wantArgs( const std::vector<ObjectCalcer*>&, KigDocument& d, KigWidget& w ) = 0;
109  virtual void handleArgs( const std::vector<ObjectCalcer*>& args, KigWidget& w ) = 0;
110 
111  void redrawScreen( KigWidget* );
112 };
113 
114 class ConstructMode
115  : public BaseConstructMode
116 {
117  const ObjectConstructor* mctor;
118 public:
119  ConstructMode( KigPart& d, const ObjectConstructor* ctor );
120  ~ConstructMode();
121 
122  void handlePrelim( const std::vector<ObjectCalcer*>& os, const QPoint& p, KigPainter&, KigWidget& w );
123  QString selectStatement( const std::vector<ObjectCalcer*>& args, const KigWidget& w );
124  int isAlreadySelectedOK( const std::vector<ObjectCalcer*>&, const int& );
125  int wantArgs( const std::vector<ObjectCalcer*>&, KigDocument& d, KigWidget& w );
126  void handleArgs( const std::vector<ObjectCalcer*>& args, KigWidget& w );
127 };
128 
141 class TestConstructMode
142  : public BaseConstructMode
143 {
144  const ArgsParserObjectType* mtype;
145  ObjectCalcer::shared_ptr mresult;
146 public:
147  TestConstructMode( KigPart& d, const ArgsParserObjectType* type );
148  ~TestConstructMode();
149 
150  using BaseMode::midClicked;
151  using BaseMode::rightClicked;
152  using BaseMode::mouseMoved;
153 
154  void handlePrelim( const std::vector<ObjectCalcer*>& os, const QPoint& p, KigPainter&, KigWidget& w );
155  QString selectStatement( const std::vector<ObjectCalcer*>& args, const KigWidget& w );
156  int isAlreadySelectedOK( const std::vector<ObjectCalcer*>&, const int& );
157  int wantArgs( const std::vector<ObjectCalcer*>&, KigDocument& d, KigWidget& w );
158  void handleArgs( const std::vector<ObjectCalcer*>& args, KigWidget& w );
159 
160  void leftClickedObject( ObjectHolder* o, const QPoint& p,
161  KigWidget& w, bool ctrlOrShiftDown );
162  void midClicked( const QPoint& p, KigWidget& w );
163  void rightClicked( const std::vector<ObjectHolder*>& oco, const QPoint& p, KigWidget& w );
164  void mouseMoved( const std::vector<ObjectHolder*>& os, const QPoint& p, KigWidget& w, bool shiftpressed );
165 };
166 
167 #endif
BaseConstructMode::handleArgs
virtual void handleArgs(const std::vector< ObjectCalcer * > &args, KigWidget &w)=0
BaseConstructMode::midClicked
void midClicked(const QPoint &p, KigWidget &w)
Definition: construct_mode.cc:163
BaseConstructMode::cancelConstruction
void cancelConstruction()
Definition: construct_mode.cc:360
TestConstructMode::handleArgs
void handleArgs(const std::vector< ObjectCalcer * > &args, KigWidget &w)
Definition: construct_mode.cc:477
BaseMode::mouseMoved
void mouseMoved(QMouseEvent *e, KigWidget *v)
mouse moved without any buttons down...
Definition: base_mode.cc:128
BaseConstructMode
Definition: construct_mode.h:58
ConstructMode::handleArgs
void handleArgs(const std::vector< ObjectCalcer * > &args, KigWidget &w)
Definition: construct_mode.cc:460
PointConstructMode::redrawScreen
void redrawScreen(KigWidget *)
Redraw the document on KigWidget w .
Definition: construct_mode.cc:581
ArgsParserObjectType
This is a convenience subclass of ObjectType that a type should inherit from if its parents can be sp...
Definition: object_type.h:113
TestConstructMode
This class constructs a test object.
Definition: construct_mode.h:141
PointConstructMode::mouseMoved
void mouseMoved(const std::vector< ObjectHolder * > &os, const QPoint &p, KigWidget &w, bool shiftpressed)
Definition: construct_mode.cc:331
TestConstructMode::selectStatement
QString selectStatement(const std::vector< ObjectCalcer * > &args, const KigWidget &w)
Definition: construct_mode.cc:570
BaseConstructMode::handlePrelim
virtual void handlePrelim(const std::vector< ObjectCalcer * > &os, const QPoint &p, KigPainter &, KigWidget &w)=0
BaseConstructMode::finish
void finish()
Definition: construct_mode.cc:411
TestConstructMode::~TestConstructMode
~TestConstructMode()
Definition: construct_mode.cc:456
PointConstructMode
Definition: construct_mode.h:29
BaseConstructMode::mouseMoved
void mouseMoved(const std::vector< ObjectHolder * > &os, const QPoint &p, KigWidget &w, bool shiftpressed)
Definition: construct_mode.cc:184
BaseConstructMode::redrawScreen
void redrawScreen(KigWidget *)
Redraw the document on KigWidget w .
Definition: construct_mode.cc:586
PointConstructMode::cancelConstruction
void cancelConstruction()
Definition: construct_mode.cc:373
PointConstructMode::PointConstructMode
PointConstructMode(KigPart &d)
Definition: construct_mode.cc:293
ConstructMode::ConstructMode
ConstructMode(KigPart &d, const ObjectConstructor *ctor)
Definition: construct_mode.cc:416
PointConstructMode::rightClicked
void rightClicked(const std::vector< ObjectHolder * > &oco, const QPoint &p, KigWidget &w)
Definition: construct_mode.cc:325
BaseMode
The BaseMode is a particular mode that allows an easy mapping of the mouse actions to real...
Definition: base_mode.h:33
ObjectTypeCalcer
This is an ObjectCalcer that uses one of the various ObjectType's to calculate its ObjectImp...
Definition: object_calcer.h:183
PointConstructMode::enableActions
void enableActions()
actions: we enable the actions we want when our mode is made active.
Definition: construct_mode.cc:366
myboost::intrusive_ptr< ObjectTypeCalcer >
TestConstructMode::isAlreadySelectedOK
int isAlreadySelectedOK(const std::vector< ObjectCalcer * > &, const int &)
Definition: construct_mode.cc:466
ObjectConstructor
This class represents a way to construct a set of objects from a set of other objects.
Definition: object_constructor.h:44
BaseMode::oco
std::vector< ObjectHolder * > oco()
Definition: base_mode.cc:153
TestConstructMode::TestConstructMode
TestConstructMode(KigPart &d, const ArgsParserObjectType *type)
Definition: construct_mode.cc:451
ConstructMode::isAlreadySelectedOK
int isAlreadySelectedOK(const std::vector< ObjectCalcer * > &, const int &)
Definition: construct_mode.cc:400
KigPainter
KigPainter is an extended QPainter.
Definition: kigpainter.h:51
TestConstructMode::handlePrelim
void handlePrelim(const std::vector< ObjectCalcer * > &os, const QPoint &p, KigPainter &, KigWidget &w)
Definition: construct_mode.cc:428
ObjectHolder
An ObjectHolder represents an object as it is known to the document.
Definition: object_holder.h:40
ObjectCalcer
An ObjectCalcer is an object that represents an algorithm for calculating an ObjectImp from other Obj...
Definition: object_calcer.h:66
TestConstructMode::mouseMoved
void mouseMoved(const std::vector< ObjectHolder * > &os, const QPoint &p, KigWidget &w, bool shiftpressed)
Definition: construct_mode.cc:543
KigWidget
This class is the real widget showing the document.
Definition: kig_view.h:50
BaseConstructMode::selectObject
void selectObject(ObjectHolder *o, KigWidget &w)
Definition: construct_mode.cc:280
TestConstructMode::wantArgs
int wantArgs(const std::vector< ObjectCalcer * > &, KigDocument &d, KigWidget &w)
Definition: construct_mode.cc:472
base_mode.h
BaseConstructMode::leftClickedObject
void leftClickedObject(ObjectHolder *o, const QPoint &p, KigWidget &w, bool ctrlOrShiftDown)
Definition: construct_mode.cc:108
PointConstructMode::~PointConstructMode
~PointConstructMode()
Definition: construct_mode.cc:306
ConstructMode::handlePrelim
void handlePrelim(const std::vector< ObjectCalcer * > &os, const QPoint &p, KigPainter &, KigWidget &w)
Definition: construct_mode.cc:388
BaseMode::midClicked
void midClicked(QMouseEvent *e, KigWidget *v)
Definition: base_mode.cc:97
BaseConstructMode::~BaseConstructMode
virtual ~BaseConstructMode()
Definition: construct_mode.cc:64
ConstructMode::selectStatement
QString selectStatement(const std::vector< ObjectCalcer * > &args, const KigWidget &w)
Definition: construct_mode.cc:565
BaseConstructMode::wantArgs
virtual int wantArgs(const std::vector< ObjectCalcer * > &, KigDocument &d, KigWidget &w)=0
TestConstructMode::leftClickedObject
void leftClickedObject(ObjectHolder *o, const QPoint &p, KigWidget &w, bool ctrlOrShiftDown)
Definition: construct_mode.cc:484
BaseConstructMode::selectStatement
virtual QString selectStatement(const std::vector< ObjectCalcer * > &args, const KigWidget &w)=0
PointConstructMode::leftClickedObject
void leftClickedObject(ObjectHolder *o, const QPoint &p, KigWidget &w, bool ctrlOrShiftDown)
Definition: construct_mode.cc:310
BaseConstructMode::enableActions
void enableActions()
actions: we enable the actions we want when our mode is made active.
Definition: construct_mode.cc:353
KigDocument
KigDocument is the class holding the real data in a Kig document.
Definition: kig_document.h:36
BaseConstructMode::selectObjects
void selectObjects(const std::vector< ObjectHolder * > &os, KigWidget &w)
Definition: construct_mode.cc:378
KigPart
This is a "Part".
Definition: kig_part.h:68
BaseConstructMode::isAlreadySelectedOK
virtual int isAlreadySelectedOK(const std::vector< ObjectCalcer * > &, const int &)=0
BaseConstructMode::BaseConstructMode
BaseConstructMode(KigPart &d)
Definition: construct_mode.cc:54
BaseMode::rightClicked
void rightClicked(QMouseEvent *, KigWidget *)
Definition: base_mode.cc:114
ConstructMode
Definition: construct_mode.h:114
ConstructMode::~ConstructMode
~ConstructMode()
Definition: construct_mode.cc:421
BaseConstructMode::rightClicked
void rightClicked(const std::vector< ObjectHolder * > &oco, const QPoint &p, KigWidget &w)
Definition: construct_mode.cc:179
TestConstructMode::midClicked
void midClicked(const QPoint &p, KigWidget &w)
Definition: construct_mode.cc:525
ConstructMode::wantArgs
int wantArgs(const std::vector< ObjectCalcer * > &, KigDocument &d, KigWidget &w)
Definition: construct_mode.cc:406
TestConstructMode::rightClicked
void rightClicked(const std::vector< ObjectHolder * > &oco, const QPoint &p, KigWidget &w)
Definition: construct_mode.cc:534
PointConstructMode::midClicked
void midClicked(const QPoint &p, KigWidget &w)
Definition: construct_mode.cc:320
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