casa  5.7.0-16
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
Public Member Functions | Protected Member Functions | Private Member Functions | Private Attributes | List of all members
casa::MWCPannerTool Class Reference

#include <MWCPannerTool.h>

Inheritance diagram for casa::MWCPannerTool:
casa::MultiWCTool casa::DTVisible casa::DisplayTool casa::WCPositionEH casa::WCMotionEH casa::WCRefreshEH casa::DisplayEH

Public Member Functions

 MWCPannerTool (Display::KeySym keysym=Display::K_Pointer_Button1, casacore::Bool scrollingAllowed=true)
 Constructor. More...
 
virtual ~MWCPannerTool ()
 Destructor. More...
 
virtual void reset (casacore::Bool skipRefresh=false)
 Reset to non-showing, non-active. More...
 
- Public Member Functions inherited from casa::MultiWCTool
 MultiWCTool (const Display::KeySym &keysym=Display::K_Pointer_Button1, bool enable_events=true)
 Constructor taking the primary key to which this tool will respond. More...
 
virtual ~MultiWCTool ()
 Destructor. More...
 
virtual void addWorldCanvas (WorldCanvas &worldcanvas)
 Add/remove a WorldCanvas from the control of this tool. More...
 
virtual void removeWorldCanvas (WorldCanvas &worldcanvas)
 
virtual void addWorldCanvases (PanelDisplay *pdisp)
 Add/Remove a list of WorldCanvases from PanelDisplay. More...
 
virtual void removeWorldCanvases (PanelDisplay *pdisp)
 
virtual void enable ()
 Switch the tool on/off - this simply registers or unregisters the event handlers on the WorldCanvases. More...
 
virtual void disable ()
 
virtual void operator() (const WCPositionEvent &ev)
 Required operators for event handling - these are called when events occur, and distribute the events to the "user-level" methods. More...
 
virtual void operator() (const WCMotionEvent &ev)
 default sends event to cout More...
 
virtual void operator() (const WCRefreshEvent &ev)
 original handler interface (still used for WCRefreshEvents) More...
 
- Public Member Functions inherited from casa::DisplayTool
virtual ~DisplayTool ()
 Destructor. More...
 
virtual void setKey (const Display::KeySym &keysym)
 Set/get which key to catch. More...
 
virtual Display::KeySym getKey () const
 
- Public Member Functions inherited from casa::WCPositionEH
 WCPositionEH ()
 Default Constructor Required. More...
 
virtual ~WCPositionEH ()
 Destructor. More...
 
- Public Member Functions inherited from casa::WCMotionEH
 WCMotionEH ()
 Default Constructor Required. More...
 
virtual ~WCMotionEH ()
 Destructor. More...
 
- Public Member Functions inherited from casa::WCRefreshEH
 WCRefreshEH ()
 Default Constructor Required. More...
 
virtual ~WCRefreshEH ()
 Destructor. More...
 
- Public Member Functions inherited from casa::DisplayEH
virtual void handleEvent (DisplayEvent &)
 Classes that contain this interface (i.e., derive from it) can override this method to implement actions for whatever types of DisplayEvent they're interested in. More...
 
virtual ~DisplayEH ()
 
- Public Member Functions inherited from casa::DTVisible
 DTVisible ()
 Default constructor. More...
 
virtual ~DTVisible ()
 Destructor. More...
 
virtual casacore::String drawColor () const
 Return the color to use. More...
 
virtual casacore::Int lineWidth () const
 Return the line width to use. More...
 
virtual casacore::Double doubleClickInterval () const
 Return the double click interval (in seconds). More...
 

Protected Member Functions

virtual void keyPressed (const WCPositionEvent &)
 Functions called by the base class mouse event handling operators - these maintain the state of the pan vector and order it to be drawn via refresh(), send the pan request to the WC, and pass on notice of the pan (zoomed()) when it is complete. More...
 
virtual void keyReleased (const WCPositionEvent &)
 
virtual void moved (const WCMotionEvent &, const viewer::region::region_list_type &)
 
virtual void otherKeyPressed (const WCPositionEvent &)
 
virtual void draw (const WCRefreshEvent &, const viewer::region::region_list_type &)
 draw the pan vector on a PixelCanvas. More...
 
virtual void zoomed (const casacore::Vector< casacore::Double > &, const casacore::Vector< casacore::Double > &)
 Output callback to indicate that we have zoomed. More...
 
- Protected Member Functions inherited from casa::MultiWCTool
virtual void otherKeyReleased (const WCPositionEvent &)
 
virtual void updateRegion ()
 
virtual void clicked (casacore::Int, casacore::Int)
 
virtual void doubleClicked (casacore::Int, casacore::Int)
 
virtual void refresh ()
 Copy back-to-front buffer (erasing all MWCTool drawings), then cause this (and all MWCTools on current WC's PC) to draw (or not draw) themselves, according to their current state. More...
 
virtual void setClipToDrawArea ()
 Cause subsequent drawing commands to be clipped to the current WC (or its drawing area). More...
 
virtual void setClipToWC ()
 
virtual void resetClip ()
 
- Protected Member Functions inherited from casa::DisplayTool
 DisplayTool (const Display::KeySym &keysym=Display::K_Pointer_Button1)
 
Constructor taking a key to which this tool will initially be

attached, typically one of the pointer buttons. More...

 
 DisplayTool (const DisplayTool &other)
 Copy constructor - construct a new DisplayTool from other, using copy semantics. More...
 
DisplayTooloperator= (const DisplayTool &other)
 Copy assignment using copy semantics. More...
 
Display::KeyModifier keyModifiers ()
 Return the modifier mask. More...
 
- Protected Member Functions inherited from casa::DTVisible
 DTVisible (const DTVisible &other)
 (Required) copy constructor. More...
 
DTVisibleoperator= (const DTVisible &other)
 (Required) copy assignment. More...
 

Private Member Functions

virtual void pan (casacore::Vector< casacore::Double > &shift)
 execute the pan. More...
 

Private Attributes

casacore::Bool itsActive
 Should we respond to mouse movement and button release? Should we draw? Set when the button is pushed in one of the tool's WCs. More...
 
casacore::Int itsX1
 pixel coordinates of the pan vector. More...
 
casacore::Int itsY1
 
casacore::Int itsX2
 
casacore::Int itsY2
 
casacore::Bool itsScrollingAllowed
 allow scrolling via arrow keys, et. More...
 
casacore::Double itsLastScrollTime
 prevents key repeat from piling up scroll events, if refresh can't keep up with them More...
 
casacore::Int itsLastKey
 

Additional Inherited Members

- Protected Attributes inherited from casa::MultiWCTool
WorldCanvasitsCurrentWC
 WC being (or to be) drawn on (may be 0 initially). More...
 

Detailed Description

Intended use:

Public interface

Review Status

Date Reviewed:
yyyy/mm/dd

<prerequisites> MWCTool </prerequisites>

Etymology

MWCPannerTool stands for MultiWorldCanvas Panner Tool

Synopsis

This class provides panning functionality. The zoomed() function should be overriden to catch the event, if needed.

The pan line is drawn by dragging the mouse from one point to another. The release of the mouse button triggers the movement of the image by the same displacement.

The Tool also responds to the arrow keys, scroll wheel, et. al., moving the zoom window in the same direction through the image. A constructor parameter is provided to turn these features off, if needed.

Example

Motivation

Panning is a common function in most visualization applications

Definition at line 81 of file MWCPannerTool.h.

Constructor & Destructor Documentation

casa::MWCPannerTool::MWCPannerTool ( Display::KeySym  keysym = Display::K_Pointer_Button1,
casacore::Bool  scrollingAllowed = true 
)

Constructor.

virtual casa::MWCPannerTool::~MWCPannerTool ( )
virtual

Destructor.

Member Function Documentation

virtual void casa::MWCPannerTool::draw ( const WCRefreshEvent ,
const viewer::region::region_list_type  
)
protectedvirtual

draw the pan vector on a PixelCanvas.

(To be called only by the base class refresh event handler).

Reimplemented from casa::MultiWCTool.

virtual void casa::MWCPannerTool::keyPressed ( const WCPositionEvent )
protectedvirtual

Functions called by the base class mouse event handling operators - these maintain the state of the pan vector and order it to be drawn via refresh(), send the pan request to the WC, and pass on notice of the pan (zoomed()) when it is complete.

functions

Reimplemented from casa::MultiWCTool.

virtual void casa::MWCPannerTool::keyReleased ( const WCPositionEvent )
protectedvirtual

Reimplemented from casa::MultiWCTool.

virtual void casa::MWCPannerTool::moved ( const WCMotionEvent ,
const viewer::region::region_list_type  
)
protectedvirtual

Reimplemented from casa::MultiWCTool.

virtual void casa::MWCPannerTool::otherKeyPressed ( const WCPositionEvent )
protectedvirtual

Reimplemented from casa::MultiWCTool.

virtual void casa::MWCPannerTool::pan ( casacore::Vector< casacore::Double > &  shift)
privatevirtual

execute the pan.

shift is the (2-element) shift vector for the zoom window, in linear coordinates. Resets the tool, removing the line (if any) from screen

virtual void casa::MWCPannerTool::reset ( casacore::Bool  skipRefresh = false)
virtual

Reset to non-showing, non-active.

Refreshes if necessary to erase (unless skipRefresh==true). (Does not unregister from WCs or disable future event handling).

Reimplemented from casa::MultiWCTool.

virtual void casa::MWCPannerTool::zoomed ( const casacore::Vector< casacore::Double > &  ,
const casacore::Vector< casacore::Double > &   
)
inlineprotectedvirtual

Output callback to indicate that we have zoomed.

Override to handle, if needed.

Definition at line 116 of file MWCPannerTool.h.

Member Data Documentation

casacore::Bool casa::MWCPannerTool::itsActive
private

Should we respond to mouse movement and button release? Should we draw? Set when the button is pushed in one of the tool's WCs.

Definition at line 128 of file MWCPannerTool.h.

casacore::Int casa::MWCPannerTool::itsLastKey
private

Definition at line 140 of file MWCPannerTool.h.

casacore::Double casa::MWCPannerTool::itsLastScrollTime
private

prevents key repeat from piling up scroll events, if refresh can't keep up with them

Definition at line 139 of file MWCPannerTool.h.

casacore::Bool casa::MWCPannerTool::itsScrollingAllowed
private

allow scrolling via arrow keys, et.

al.?

Definition at line 134 of file MWCPannerTool.h.

casacore::Int casa::MWCPannerTool::itsX1
private

pixel coordinates of the pan vector.

1 = anchor, 2 = new position.

Definition at line 131 of file MWCPannerTool.h.

casacore::Int casa::MWCPannerTool::itsX2
private

Definition at line 131 of file MWCPannerTool.h.

casacore::Int casa::MWCPannerTool::itsY1
private

Definition at line 131 of file MWCPannerTool.h.

casacore::Int casa::MWCPannerTool::itsY2
private

Definition at line 131 of file MWCPannerTool.h.


The documentation for this class was generated from the following file: