18 #ifndef __otbImageViewerZoomWidget_h
19 #define __otbImageViewerZoomWidget_h
21 #include "vcl_deprecated_header.h"
27 #include <FL/fl_draw.H>
31 template <
class TPixel,
class TLabel>
class ImageViewerBase;
45 template <
class TPixel,
class TLabel>
73 virtual int handle(
int event)
85 m_Parent->UpdateZoomWidget();
86 m_Parent->ClearPixLocVal();
92 if (m_MouseMoveCount % m_ValueUpdateFrequency == 0)
94 m_MousePos[0] = Fl::event_x();
95 m_MousePos[1] = Fl::event_y();
96 IndexType newIndex = this->WindowToImageCoordinates(m_MousePos);
97 m_Parent->ReportPixel(newIndex);
105 int dy = Fl::event_dy();
108 this->SetZoomFactor(this->GetOpenGlIsotropicZoom() + m_ZoomStep);
112 if (this->GetOpenGlIsotropicZoom() - m_ZoomStep >= 1)
114 this->SetZoomFactor(this->GetOpenGlIsotropicZoom() - m_ZoomStep);
118 this->SetZoomFactor(1.0);
134 IndexType newIndex = this->GetViewedRegion().GetIndex();
135 SizeType newSize = this->GetViewedRegion().GetSize();
136 newIndex[0] = newIndex[0] + newSize[0] / 2;
137 newIndex[1] = newIndex[1] + newSize[1] / 2;
138 switch (Fl::event_key())
142 newIndex[1] = newIndex[1] + newSize[1] / 8;
147 newIndex[1] = newIndex[1] - newSize[1] / 8;
152 newIndex[0] = newIndex[0] - newSize[0] / 8;
157 newIndex[0] = newIndex[0] + newSize[0] / 8;
161 m_Parent->ChangeZoomViewedRegion(newIndex);
168 virtual void resize(
int x,
int y,
int w,
int h)
170 Superclass::resize(x, y, w, h);
171 if (m_Parent->GetBuilt()) m_Parent->Update();
183 m_MouseMoveCount = 0;
184 m_ValueUpdateFrequency = 5;