00001 #ifndef _QG_PLOT_LIST_WINDOW_HH_ 00002 #define _QG_PLOT_LIST_WINDOW_HH_ 00003 00011 #include "QGWindow.hh" 00012 #include <map> 00013 00014 class QGPlot; 00015 class QGPlotListEntryFrame; 00016 class TGCanvas; 00017 class TGVerticalFrame; 00018 00019 class QGPlotListWindow : public QGWindow { 00020 public: 00022 static QGPlotListWindow *Instance(); 00023 00025 virtual ~QGPlotListWindow(); 00026 00028 void AddEntry(QGPlot *plot); 00029 00031 void Clear(); 00032 00034 void GeneratePlotList(); 00035 00037 static bool IsVisible() {return fMe != 0;} 00038 00040 void Refresh(); 00041 00043 void RemoveEntry(QGPlot *plot); 00044 00046 static void Update(); 00047 00048 private: 00050 static QGPlotListWindow *fMe; 00051 00053 QGPlotListWindow(const TGWindow *p = 0, UInt_t w = 450, UInt_t h = 300); 00054 00056 TGVerticalFrame *fContainerFrame; 00057 00059 std::map<QGPlot*, QGPlotListEntryFrame*> fEntries; 00060 00062 TGCanvas *fScrollableFrame; 00063 00064 ClassDef(QGPlotListWindow, 0) 00065 }; 00066 00067 #endif