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

marble

  • sources
  • kde-4.12
  • 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 
24 #include <QPixmap>
25 
26 namespace Marble
27 {
28 
29 PlacemarkTextAnnotation::PlacemarkTextAnnotation( GeoDataPlacemark *placemark )
30  : SceneGraphicsItem( placemark ),
31  bubble( new GeoWidgetBubble( placemark ) )
32 {
33 }
34 
35 PlacemarkTextAnnotation::~PlacemarkTextAnnotation()
36 {
37  delete bubble;
38 }
39 
40 void PlacemarkTextAnnotation::paint( GeoPainter *painter,
41  const ViewportParams *viewport )
42 {
43 
44  painter->drawPixmap( placemark()->coordinate(), QPixmap( MarbleDirs::path( "bitmaps/annotation.png" ) ) );
45 
46  qreal x, y;
47  bool hidden;
48  bool visible = viewport->currentProjection()->screenCoordinates( placemark()->coordinate(), viewport, x, y, hidden );
49 
50  QList<QRegion> list;
51  list.append( QRegion( x -10 , y-10 , 20 , 20 ) );
52  setRegions( list );
53 
54  if( visible && !hidden ) {
55  bubble->moveTo( QPoint( x, y ) );
56  bubble->paint( painter );
57  } else {
58  bubble->setHidden(true );
59  }
60 }
61 
62 bool PlacemarkTextAnnotation::mousePressEvent( QMouseEvent* event )
63 {
64  Q_UNUSED(event);
65  bubble->setHidden( !bubble->isHidden() );
66  return true;
67 }
68 
69 }
Marble::PlacemarkTextAnnotation::PlacemarkTextAnnotation
PlacemarkTextAnnotation(GeoDataPlacemark *placemark)
Definition: PlacemarkTextAnnotation.cpp:29
Marble::MarbleDirs::path
static QString path(const QString &relativePath)
Definition: MarbleDirs.cpp:53
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)
Definition: SceneGraphicsItem.cpp:76
MarbleDebug.h
AbstractProjection.h
This file contains the headers for AbstractProjection.
Marble::GeoWidgetBubble::moveTo
void moveTo(const QPoint &screenPos)
Definition: GeoWidgetBubble.cpp:87
Marble::GeoGraphicsItem::visible
bool visible() const
Definition: GeoGraphicsItem.cpp:33
Marble::SceneGraphicsItem
Definition: SceneGraphicsItem.h:28
MarbleDirs.h
GeoDocument.h
Marble::GeoWidgetBubble::paint
void paint(QPainter *p)
Definition: GeoWidgetBubble.cpp:39
Marble::GeoWidgetBubble::setHidden
void setHidden(bool hide)
Definition: GeoWidgetBubble.cpp:92
Marble::ViewportParams::currentProjection
const AbstractProjection * currentProjection() const
Definition: ViewportParams.cpp:134
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
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:93
Marble::PlacemarkTextAnnotation::paint
virtual void paint(GeoPainter *painter, const ViewportParams *viewport)
Paints the item using the given GeoPainter.
Definition: PlacemarkTextAnnotation.cpp:40
ViewportParams.h
This file contains the headers for ViewportParams.
Marble::SceneGraphicsItem::placemark
GeoDataPlacemark * placemark()
Definition: SceneGraphicsItem.cpp:36
Marble::GeoWidgetBubble::isHidden
bool isHidden() const
Definition: GeoWidgetBubble.cpp:106
PlacemarkTextAnnotation.h
Marble::PlacemarkTextAnnotation::mousePressEvent
virtual bool mousePressEvent(QMouseEvent *event)
Definition: PlacemarkTextAnnotation.cpp:62
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:35
coordinate
Coordinate coordinate
Definition: tools/osm-addresses/OsmParser.cpp:38
This file is part of the KDE documentation.
Documentation copyright © 1996-2014 The KDE developers.
Generated on Tue Oct 14 2014 22:38:52 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
  • 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