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

marble

  • sources
  • kde-4.14
  • kdeedu
  • marble
  • src
  • plugins
  • render
  • annotate
PlacemarkTextAnnotation.cpp
Go to the documentation of this file.
1 //
2 // This file is part of the Marble Virtual Globe.
3 //
4 // This program is free software licensed under the GNU LGPL. You can
5 // find a copy of this license in LICENSE.txt in the top directory of
6 // the source code.
7 //
8 // Copyright 2009 Andrew Manson <g.real.ate@gmail.com>
9 // Copyright 2013 Thibaut Gridel <tgridel@free.fr>
10 //
11 
12 #include "PlacemarkTextAnnotation.h"
13 
14 
15 #include "AbstractProjection.h"
16 #include "GeoDataPlacemark.h"
17 #include "GeoDocument.h"
18 #include "GeoPainter.h"
19 #include "GeoWidgetBubble.h"
20 #include "ViewportParams.h"
21 #include "MarbleDirs.h"
22 #include "MarbleDebug.h"
23 #include "SceneGraphicsTypes.h"
24 
25 #include <QPixmap>
26 
27 
28 namespace Marble
29 {
30 
31 PlacemarkTextAnnotation::PlacemarkTextAnnotation( GeoDataPlacemark *placemark )
32  : SceneGraphicsItem( placemark ),
33  bubble( new GeoWidgetBubble( placemark ) )
34 {
35 }
36 
37 PlacemarkTextAnnotation::~PlacemarkTextAnnotation()
38 {
39  delete bubble;
40 }
41 
42 void PlacemarkTextAnnotation::paint( GeoPainter *painter, const ViewportParams *viewport )
43 {
44 
45  painter->drawPixmap( placemark()->coordinate(), QPixmap( MarbleDirs::path( "bitmaps/annotation.png" ) ) );
46 
47  qreal x, y;
48  bool hidden;
49  bool visible = viewport->currentProjection()->screenCoordinates( placemark()->coordinate(), viewport, x, y, hidden );
50 
51  QList<QRegion> list;
52  list.append( QRegion( x -10 , y -10 , 20 , 20 ) );
53  setRegions( list );
54 
55  if( visible && !hidden ) {
56  bubble->moveTo( QPoint( x, y ) );
57  bubble->paint( painter );
58  } else {
59  bubble->setHidden(true );
60  }
61 }
62 
63 const char *PlacemarkTextAnnotation::graphicType() const
64 {
65  return SceneGraphicTypes::SceneGraphicPlacemark;
66 }
67 
68 bool PlacemarkTextAnnotation::mousePressEvent( QMouseEvent* event )
69 {
70  Q_UNUSED( event );
71  bubble->setHidden( !bubble->isHidden() );
72  return true;
73 }
74 
75 bool PlacemarkTextAnnotation::mouseMoveEvent( QMouseEvent *event )
76 {
77  Q_UNUSED( event );
78  return true;
79 }
80 
81 bool PlacemarkTextAnnotation::mouseReleaseEvent( QMouseEvent *event )
82 {
83  Q_UNUSED( event );
84  return true;
85 }
86 
87 
88 }
SceneGraphicsTypes.h
Marble::PlacemarkTextAnnotation::mouseReleaseEvent
virtual bool mouseReleaseEvent(QMouseEvent *event)
Definition: PlacemarkTextAnnotation.cpp:81
Marble::PlacemarkTextAnnotation::PlacemarkTextAnnotation
PlacemarkTextAnnotation(GeoDataPlacemark *placemark)
Definition: PlacemarkTextAnnotation.cpp:31
Marble::MarbleDirs::path
static QString path(const QString &relativePath)
Definition: MarbleDirs.cpp:59
Marble::GeoPainter
A painter that allows to draw geometric primitives on the map.
Definition: GeoPainter.h:98
Marble::GeoWidgetBubble
Definition: GeoWidgetBubble.h:24
GeoWidgetBubble.h
Marble::SceneGraphicsItem::setRegions
void setRegions(const QList< QRegion > &regions)
A setter for the m_regions private member.
Definition: SceneGraphicsItem.cpp:36
QPoint
QMouseEvent
MarbleDebug.h
AbstractProjection.h
This file contains the headers for AbstractProjection.
Marble::GeoWidgetBubble::moveTo
void moveTo(const QPoint &screenPos)
Definition: GeoWidgetBubble.cpp:84
Marble::PlacemarkTextAnnotation::mouseMoveEvent
virtual bool mouseMoveEvent(QMouseEvent *event)
Definition: PlacemarkTextAnnotation.cpp:75
QList::append
void append(const T &value)
Marble::GeoGraphicsItem::visible
bool visible() const
Definition: GeoGraphicsItem.cpp:33
Marble::SceneGraphicsItem
This is the base class for all scene graphics included within the annotate plugin.
Definition: SceneGraphicsItem.h:34
MarbleDirs.h
GeoDocument.h
Marble::GeoWidgetBubble::paint
void paint(QPainter *p)
Definition: GeoWidgetBubble.cpp:40
Marble::GeoWidgetBubble::setHidden
void setHidden(bool hide)
Definition: GeoWidgetBubble.cpp:89
Marble::ViewportParams::currentProjection
const AbstractProjection * currentProjection() const
Definition: ViewportParams.cpp:134
QList< QRegion >
GeoPainter.h
GeoDataPlacemark.h
Marble::ViewportParams
A public class that controls what is visible in the viewport of a Marble map.
Definition: ViewportParams.h:44
QPixmap
Marble::AbstractProjection::screenCoordinates
bool screenCoordinates(const qreal lon, const qreal lat, const ViewportParams *viewport, qreal &x, qreal &y) const
Get the screen coordinates corresponding to geographical coordinates in the map.
Definition: AbstractProjection.cpp:118
Marble::PlacemarkTextAnnotation::paint
virtual void paint(GeoPainter *painter, const ViewportParams *viewport)
Paints the item using the given GeoPainter.
Definition: PlacemarkTextAnnotation.cpp:42
Marble::SceneGraphicTypes::SceneGraphicPlacemark
const char * SceneGraphicPlacemark
Definition: SceneGraphicsTypes.cpp:22
ViewportParams.h
This file contains the headers for ViewportParams.
Marble::SceneGraphicsItem::placemark
const GeoDataPlacemark * placemark() const
SceneGraphicItem class, when called from one of its derived classes' constructors, takes as a parameter a pointer to the placemark of the graphic element.
Definition: SceneGraphicsItem.cpp:41
Marble::GeoWidgetBubble::isHidden
bool isHidden() const
Definition: GeoWidgetBubble.cpp:103
PlacemarkTextAnnotation.h
Marble::PlacemarkTextAnnotation::mousePressEvent
virtual bool mousePressEvent(QMouseEvent *event)
Pure virtual functions which handle the mouse events, all of which are re-implemented in every SceneG...
Definition: PlacemarkTextAnnotation.cpp:68
Marble::PlacemarkTextAnnotation::graphicType
virtual const char * graphicType() const
Provides information for downcasting a SceneGraphicsItem.
Definition: PlacemarkTextAnnotation.cpp:63
Marble::GeoDataPlacemark
a class representing a point of interest on the map
Definition: GeoDataPlacemark.h:54
Marble::GeoPainter::drawPixmap
void drawPixmap(const GeoDataCoordinates &centerPosition, const QPixmap &pixmap)
Draws a pixmap at the given position. The pixmap is placed with its center located at the given cente...
Definition: GeoPainter.cpp:452
Marble::PlacemarkTextAnnotation::~PlacemarkTextAnnotation
~PlacemarkTextAnnotation()
Definition: PlacemarkTextAnnotation.cpp:37
QRegion
coordinate
Coordinate coordinate
Definition: tools/osm-addresses/OsmParser.cpp:39
This file is part of the KDE documentation.
Documentation copyright © 1996-2020 The KDE developers.
Generated on Mon Jun 22 2020 13:13:41 by doxygen 1.8.7 written by Dimitri van Heesch, © 1997-2006

KDE's Doxygen guidelines are available online.

marble

Skip menu "marble"
  • Main Page
  • Namespace List
  • Namespace Members
  • Alphabetical List
  • Class List
  • Class Hierarchy
  • Class Members
  • File List
  • File Members
  • Related Pages

kdeedu API Reference

Skip menu "kdeedu API Reference"
  • Analitza
  •     lib
  • kalgebra
  • kalzium
  •   libscience
  • kanagram
  • kig
  •   lib
  • klettres
  • 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