Public Member Functions | Public Attributes | Protected Member Functions | Protected Attributes | Friends

FlatView::AuxDataEditor Class Reference

Inheritance diagram for FlatView::AuxDataEditor:
CallBacker

List of all members.

Public Member Functions

 AuxDataEditor (Viewer &, MouseEventHandler &)
virtual ~AuxDataEditor ()
int addAuxData (FlatView::Annotation::AuxData *, bool doedit)
void removeAuxData (int id)
void enableEdit (int id, bool allowadd, bool allowmove, bool allowdelete)
void enablePolySel (int id, bool allowsel)
void setAddAuxData (int id)
 Added points will be added to this set.
int getAddAuxData () const
void setView (const Rect &wv, const Geom::Rectangle< int > &mouserect)
const Geom::PixRectangle< int > & getMouseArea () const
Rect getWorldRect (int dataid) const
void limitMovement (const Rect *)
bool isDragging () const
int getSelPtDataID () const
const TypeSet< int > & getSelPtIdx () const
const PointgetSelPtPos () const
void setSelectionPolygonRectangle (bool)
 If not rectangle, it's a polygon.
bool getSelectionPolygonRectangle () const
 If not rectangle, it's a polygon.
const LineStylegetSelectionPolygonLineStyle () const
void setSelectionPolygonLineStyle (const LineStyle &)
void getPointSelections (TypeSet< int > &ids, TypeSet< int > &idxs) const
const Viewerviewer () const
Viewerviewer ()
Sowersower ()
void setSelActive (bool yn)
bool isSelActive () const
const TypeSet< int > & getIds () const
const ObjectSet
< Annotation::AuxData > & 
getAuxData () const
void removePolygonSelected (int dataid)
 If dataid ==-1, all pts inside polygon is removed.
void setMenuHandler (MenuHandler *)
MenuHandlergetMenuHandler ()
MouseEventHandlermouseEventHandler ()

Public Attributes

Notifier< AuxDataEditoraddAuxDataChange
Notifier< AuxDataEditormovementStarted
Notifier< AuxDataEditormovementFinished
CNotifier< AuxDataEditor, bool > removeSelected

Protected Member Functions

void getPointSelections (const ObjectSet< Annotation::AuxData > &polygon, TypeSet< int > &ids, TypeSet< int > &idxs) const
bool removeSelectionPolygon ()
 Returns true if viewer must be notified.
void mousePressCB (CallBacker *)
void mouseReleaseCB (CallBacker *)
void mouseMoveCB (CallBacker *)
void findSelection (const Geom::Point2D< int > &, int &seldatasetidx, TypeSet< int > *selptidxlist) const
bool updateSelection (const Geom::Point2D< int > &)
int dataSetIdxAt (const Geom::Point2D< int > &) const

Protected Attributes

Viewerviewer_
Sowersower_
ObjectSet< Annotation::AuxDataauxdata_
TypeSet< int > ids_
BoolTypeSet allowadd_
BoolTypeSet allowmove_
BoolTypeSet allowremove_
BoolTypeSet allowpolysel_
BoolTypeSet doedit_
int addauxdataid_
ObjectSet< Annotation::AuxDatapolygonsel_
LineStyle polygonsellst_
bool polygonselrect_
bool isselactive_
Annotation::AuxDatafeedback_
Geom::Point2D< int > prevpt_
Geom::PixRectangle< int > mousearea_
Rect curview_
MouseEventHandlermousehandler_
bool mousedown_
bool hasmoved_
int seldatasetidx_
TypeSet< int > selptidx_
Point selptcoord_
Rectmovementlimit_
MenuHandlermenuhandler_

Friends

class Sower

Detailed Description

Editor for FlatView::Annotation::AuxData. Allows the enduser to click-drag-release the points in data. Users of the class have the choice if the editor should do the changes for them, or if they want to do changes themself, driven by the callback.


Constructor & Destructor Documentation

FlatView::AuxDataEditor::AuxDataEditor ( Viewer ,
MouseEventHandler  
)
virtual FlatView::AuxDataEditor::~AuxDataEditor (  )  [virtual]

Member Function Documentation

int FlatView::AuxDataEditor::addAuxData ( FlatView::Annotation::AuxData ,
bool  doedit 
)
Parameters:
doedit says whether this object should change the auxdata, or if the user of the objects should do it.
Returns:
an id of the new set.
int FlatView::AuxDataEditor::dataSetIdxAt ( const Geom::Point2D< int > &   )  const [protected]
void FlatView::AuxDataEditor::enableEdit ( int  id,
bool  allowadd,
bool  allowmove,
bool  allowdelete 
)
void FlatView::AuxDataEditor::enablePolySel ( int  id,
bool  allowsel 
)
void FlatView::AuxDataEditor::findSelection ( const Geom::Point2D< int > &  ,
int &  seldatasetidx,
TypeSet< int > *  selptidxlist 
) const [protected]
int FlatView::AuxDataEditor::getAddAuxData (  )  const
Returns:
the id of the set that new points will be added to
const ObjectSet<Annotation::AuxData>& FlatView::AuxDataEditor::getAuxData (  )  const
const TypeSet<int>& FlatView::AuxDataEditor::getIds (  )  const
MenuHandler* FlatView::AuxDataEditor::getMenuHandler (  ) 
const Geom::PixRectangle<int>& FlatView::AuxDataEditor::getMouseArea (  )  const [inline]
void FlatView::AuxDataEditor::getPointSelections ( TypeSet< int > &  ids,
TypeSet< int > &  idxs 
) const

Each point within the limits of the polygons will be put in the typesets.

void FlatView::AuxDataEditor::getPointSelections ( const ObjectSet< Annotation::AuxData > &  polygon,
TypeSet< int > &  ids,
TypeSet< int > &  idxs 
) const [protected]

Each point within the limits of the polygons will be put in the typesets.

const LineStyle& FlatView::AuxDataEditor::getSelectionPolygonLineStyle (  )  const
bool FlatView::AuxDataEditor::getSelectionPolygonRectangle (  )  const

If not rectangle, it's a polygon.

int FlatView::AuxDataEditor::getSelPtDataID (  )  const
const TypeSet<int>& FlatView::AuxDataEditor::getSelPtIdx (  )  const
const Point& FlatView::AuxDataEditor::getSelPtPos (  )  const
Rect FlatView::AuxDataEditor::getWorldRect ( int  dataid  )  const
bool FlatView::AuxDataEditor::isDragging (  )  const [inline]
bool FlatView::AuxDataEditor::isSelActive (  )  const [inline]
void FlatView::AuxDataEditor::limitMovement ( const Rect  ) 

When movement starts, the movement is unlimited. Movement can be limited once the movement started by calling limitMovement.

MouseEventHandler& FlatView::AuxDataEditor::mouseEventHandler (  )  [inline]
void FlatView::AuxDataEditor::mouseMoveCB ( CallBacker  )  [protected]
void FlatView::AuxDataEditor::mousePressCB ( CallBacker  )  [protected]
void FlatView::AuxDataEditor::mouseReleaseCB ( CallBacker  )  [protected]
void FlatView::AuxDataEditor::removeAuxData ( int  id  ) 
void FlatView::AuxDataEditor::removePolygonSelected ( int  dataid  ) 

If dataid ==-1, all pts inside polygon is removed.

bool FlatView::AuxDataEditor::removeSelectionPolygon (  )  [protected]

Returns true if viewer must be notified.

void FlatView::AuxDataEditor::setAddAuxData ( int  id  ) 

Added points will be added to this set.

void FlatView::AuxDataEditor::setMenuHandler ( MenuHandler  ) 
void FlatView::AuxDataEditor::setSelActive ( bool  yn  )  [inline]
void FlatView::AuxDataEditor::setSelectionPolygonLineStyle ( const LineStyle  ) 
void FlatView::AuxDataEditor::setSelectionPolygonRectangle ( bool   ) 

If not rectangle, it's a polygon.

void FlatView::AuxDataEditor::setView ( const Rect wv,
const Geom::Rectangle< int > &  mouserect 
)

User of the class must ensure that both the wv and the mouserect are up to date at all times.

Sower& FlatView::AuxDataEditor::sower (  )  [inline]
bool FlatView::AuxDataEditor::updateSelection ( const Geom::Point2D< int > &   )  [protected]
Returns:
true if something is selected
const Viewer& FlatView::AuxDataEditor::viewer (  )  const [inline]
Viewer& FlatView::AuxDataEditor::viewer (  )  [inline]

Friends And Related Function Documentation

friend class Sower [friend]

Member Data Documentation

BoolTypeSet FlatView::AuxDataEditor::allowadd_ [protected]
BoolTypeSet FlatView::AuxDataEditor::allowmove_ [protected]
BoolTypeSet FlatView::AuxDataEditor::allowpolysel_ [protected]
BoolTypeSet FlatView::AuxDataEditor::allowremove_ [protected]
BoolTypeSet FlatView::AuxDataEditor::doedit_ [protected]

if getSelPtDataID==-1 selection polygon changed else If selPtIdx()==-1, position should be added, else point moved. Boolean is true if this is the end of user interaction