00001 #ifndef _QG_CUTS_FRAME_ 00002 #define _QG_CUTS_FRAME_ 00003 00011 #include <map> 00012 #include <string> 00013 #include <vector> 00014 #include "TGFrame.h" 00015 00016 class QGDropDownBox; 00017 class TGLabel; 00018 class TGListBox; 00019 class TGPictureButton; 00020 00021 class QGCutsFrame : public TGCompositeFrame { 00022 public: 00024 QGCutsFrame(TGWindow *p = 0, UInt_t w = 100, UInt_t h = 100); 00025 00027 virtual ~QGCutsFrame(); 00028 00030 void AddCut(const std::string& cut); 00031 00033 static void ClearCopiedCuts(); 00034 00036 static void CopyCut(const std::string& cut); 00037 00039 static const std::vector<std::string>& GetCopiedCuts() {return fCopiedCuts;} 00040 00042 std::vector<std::string> GetCuts(); 00043 00045 TGListBox *GetCutsListBox() {return fCutsListBox;} 00046 00048 QGDropDownBox *GetDropDownBox() {return fDropDownBox;} 00049 00051 std::vector<Int_t> GetSelectedEntries(); 00052 00054 void HandleCopyButton(); 00055 00057 void HandleDropDownBox(); 00058 00060 void HandleEditButton(); 00061 00063 void HandlePasteButton(); 00064 00066 void HandleRemoveButton(); 00067 00069 void SetCuts(const std::vector<std::string>& cuts); 00070 00072 void SetLabel(const std::string& label); 00073 00074 private: 00076 TGPictureButton *fAddButton; 00077 00079 TGHorizontalFrame *fAddEditFrame; 00080 00082 TGHorizontalFrame *fButtonsFrame; 00083 00085 static std::vector<std::string> fCopiedCuts; 00086 00088 TGPictureButton *fCopyButton; 00089 00091 std::map<Int_t, std::string> fCuts; 00092 00094 TGListBox *fCutsListBox; 00095 00097 QGDropDownBox *fDropDownBox; 00098 00100 TGPictureButton *fEditButton; 00101 00103 Int_t fEditId; 00104 00106 Int_t fId; 00107 00109 TGLabel *fLabel; 00110 00112 TGPictureButton *fPasteButton; 00113 00115 TGPictureButton *fRemoveButton; 00116 00117 ClassDef(QGCutsFrame, 0) 00118 }; 00119 00120 #endif