lgrAnnotationBar.h
Go to the documentation of this file.
00001 /******************************************************************************
00002 ** Copyright (c) 1992-2010 VT MAK
00003 ** All rights reserved.
00004 ******************************************************************************/
00005 
00009 
00010 #ifndef lgrAnnotationBar_H_
00011 #define lgrAnnotationBar_H_
00012 
00013 #include "lgrAnn.h"
00014 #include "overlapSlider.h"
00015 #include "absoluteTime.h"
00016 
00017 #include <map>
00018 
00019 class QContextMenuEvent;
00020 
00021 namespace MAKLogger
00022 {
00023 
00024    class DtLgrAnnotationComponent;
00025    class DtLgrAnnotation;
00026    class DtSliderBar;
00027    class DtLgrAnnotationSliderBar;
00028    class DtLgrAnnotationSlots;
00029 
00032    class DT_DLL_LGRANN DtLgrAnnotationBar : public DtOverlapSlider
00033    {
00034       Q_OBJECT
00035 
00036    public:
00037       DtLgrAnnotationBar(DtLgrAnnotationComponent*,
00038          QWidget* p);
00039 
00041       virtual ~DtLgrAnnotationBar();
00042    
00043    private:
00045       DtLgrAnnotationBar(const DtLgrAnnotationBar&);
00047       DtLgrAnnotationBar& operator=(const DtLgrAnnotationBar&);
00048    public:
00049 
00051       void connectSlots(DtLgrAnnotationSlots* annSlots);
00052    
00054       virtual void addAnnotation(DtLgrAnnotation* annotation);
00055 
00057       virtual void removeAnnotation(DtLgrAnnotation* annotation);
00058 
00060       virtual void updateAnnotation(DtLgrAnnotation* annotation);
00061 
00063       virtual void clearAnnotations();
00064 
00067       virtual DtLgrAnnotation* selectedAnnotation();
00068 
00070       virtual void selectBar(DtSliderBar* bar);
00071 
00073       virtual void unselectAll();
00074 
00075    public slots:
00076 
00078       virtual void selectAnnotation(DtLgrAnnotation* annotation);      
00079 
00081       virtual void timesChanged();
00082 
00084       virtual void barMoved(DtSliderBar*);
00085 
00087       virtual void barSizeChanged(DtSliderBar*);
00088 
00089    signals:
00090 
00091       virtual void attemptModifyAnnotation();
00092 
00093       // Signal emitted when the selected annotation changes.  If no annotation
00094       // is selected, the pointer will be null.
00095       virtual void selectedAnnotationChanged(DtLgrAnnotation* annotation);
00096 
00097    protected:
00098 
00099       virtual void draw(QPainter& painter,QRect boundingRect);
00100 
00102       virtual void drawBox(QPainter& painter,DtSliderBox* box) const;   
00103 
00105       void updateRanges();
00106 
00109       virtual void showAnnotationActionMenu(QPoint position);
00110 
00112       virtual void showSelectAnnotationMenu(QPoint position);
00113 
00115       virtual void mouseDoubleClickEvent( QMouseEvent * );
00116 
00117       virtual void contextMenuEvent(QContextMenuEvent* event);
00118 
00120       virtual void drawBar(QPainter& painter,DtSliderBar* bar) const;
00121 
00122    protected:
00123 
00124 
00125       virtual void barToTimes(const DtSliderBar* bar,DtAbsoluteTime& firstTime,
00126          DtAbsoluteTime& lastTime);
00127 
00128       typedef std::map<DtLgrAnnotation*, DtLgrAnnotationSliderBar*> AnnotationBarMap;
00129 
00130       DtLgrAnnotationComponent* myAnnotationComponent;     
00131       AnnotationBarMap myAnnotationBars;
00132       DtLgrAnnotation* mySelectedAnnotation;
00133       DtLgrAnnotationSlots* mySlots;
00134    };
00135 
00136 }
00137 
00138 #endif

Document ID: Generated on Tue Oct 11 19:41:03 EDT 2011 from SVN revision 107422
Copyright © 2005-2011 VT MÄK Inc. All Rights Reserved (www.mak.com)