All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Groups Pages
PaperModel.cpp
Go to the documentation of this file.
1 /* Copyright (C) 2001-2014 National Institute For Space Research (INPE) - Brazil.
2 
3  This file is part of the TerraLib - a Framework for building GIS enabled applications.
4 
5  TerraLib is free software: you can redistribute it and/or modify
6  it under the terms of the GNU Lesser General Public License as published by
7  the Free Software Foundation, either version 3 of the License,
8  or (at your option) any later version.
9 
10  TerraLib 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 Lesser General Public License for more details.
14 
15  You should have received a copy of the GNU Lesser General Public License
16  along with TerraLib. See COPYING. If not, write to
17  TerraLib Team at <terralib-team@terralib.org>.
18  */
19 
20 /*!
21  \file PaperModel.cpp
22 
23  \brief
24 
25  \ingroup layout
26 */
27 
28 // TerraLib
29 #include "PaperModel.h"
30 #include "ContextItem.h"
31 #include "Context.h"
32 #include "PaperConfig.h"
33 #include "../../../maptools/Canvas.h"
34 
36  m_paperConfig(0)
37 {
38  setName("PAPER_A4");
39 
40  m_shadowPadding = 10.;
41 
42  m_backgroundColor = te::color::RGBAColor(255, 255, 255, 255);
43  m_shadowColor = te::color::RGBAColor(0, 0, 0, 255);
44 
45 
46  config();
47 }
48 
50  m_paperConfig(paperConfig)
51 {
52 
53  setName("PAPER_A4");
54 
55  m_shadowPadding = 10.;
56 
57  m_backgroundColor = te::color::RGBAColor(255, 255, 255, 255);
58  m_shadowColor = te::color::RGBAColor(0, 0, 0, 255);
59 
60  config();
61 }
62 
64 {
65 
66 }
67 
69 {
70  te::color::RGBAColor** pixmap = 0;
71 
73  Utils* utils = Context::getInstance()->getUtils();
74 
75  if(context.isResizeCanvas())
76  utils->configCanvas(m_box);
77 
78  canvas->setPolygonContourColor(m_shadowColor);
79  canvas->setPolygonFillColor(m_shadowColor);
80 
81  utils->drawRectW(m_boxShadow);
82 
83  canvas->setPolygonContourColor(m_borderColor);
84  canvas->setPolygonFillColor(m_backgroundColor);
85 
86  utils->drawRectW(m_boxPaper);
87 
88  if(context.isResizeCanvas())
89  pixmap = utils->getImageW(m_box);
90 
91  ContextItem contextNotify;
92  contextNotify.setPixmap(pixmap);
93  notifyAll(contextNotify);
94 }
95 
97 {
98  if(!m_paperConfig)
99  return;
100 
101  double pw = 0.;
102  double ph = 0.;
103 
104  m_paperConfig->getPaperSize(pw, ph);
105 
106  double width = m_shadowPadding + pw;
107  double height = m_shadowPadding + ph;
108 
109  m_boxPaper = te::gm::Envelope(0, m_shadowPadding, pw, height);
110  m_boxShadow = te::gm::Envelope(m_shadowPadding, 0, width, ph);
111  m_box = te::gm::Envelope(0., 0., width, height);
112 }
113 
115 {
116  return m_shadowColor;
117 }
118 
120 {
121  m_shadowColor = color;
122 }
123 
125 {
126  m_paperConfig = pConfig;
127  config();
128 }
129 
131 {
132  return m_paperConfig;
133 }
134 
136 {
137  m_shadowPadding = padding;
138 }
139 
141 {
142  return m_shadowPadding;
143 }
144 
void setPixmap(te::color::RGBAColor **pixmap)
Definition: ContextItem.cpp:77
virtual void setPolygonFillColor(const te::color::RGBAColor &color)=0
It sets the color used to fill the draw of polygon geometries.
virtual void drawRectW(te::gm::Envelope box)
Definition: Utils.cpp:49
virtual void setShadowPadding(double padding)
Definition: PaperModel.cpp:135
virtual void draw(ContextItem context)
Definition: PaperModel.cpp:68
virtual void configCanvas(te::gm::Envelope box, bool resize=true)
Definition: Utils.cpp:124
virtual void setShadowColor(te::color::RGBAColor color)
Definition: PaperModel.cpp:119
te::color::RGBAColor m_shadowColor
Definition: PaperModel.h:67
virtual void setPaperConfig(PaperConfig *pConfig)
Definition: PaperModel.cpp:124
An Envelope defines a 2D rectangular region.
Definition: Envelope.h:51
virtual void config()
Definition: PaperModel.cpp:96
Utils * getUtils()
Definition: Context.cpp:126
te::color::RGBAColor m_backgroundColor
virtual void setName(std::string name)
virtual double getShadowPadding()
Definition: PaperModel.cpp:140
A canvas is an abstraction of a drawing area.
Definition: Canvas.h:91
virtual te::color::RGBAColor ** getImageW(te::gm::Envelope boxmm)
Definition: Utils.cpp:97
virtual void setPolygonContourColor(const te::color::RGBAColor &color)=0
It sets the pen color used to draw the boundary of polygon geometries.
A helper class for 32-bit RGBA (Red-Green-Blue-Alpha channel) color.
Definition: RGBAColor.h:57
virtual te::color::RGBAColor getShadowColor()
Definition: PaperModel.cpp:114
virtual PaperConfig * getPaperConfig() const
Definition: PaperModel.cpp:130
static Context * getInstance()
This function is called to create an instance of the class.
Definition: Context.cpp:46
te::map::Canvas * getCanvas()
Definition: Context.cpp:116