00001 // @(#):$Id: TGeoNodeEditor.h 20882 2007-11-19 11:31:26Z rdm $ 00002 // Author: M.Gheata 00003 00004 /************************************************************************* 00005 * Copyright (C) 1995-2002, Rene Brun and Fons Rademakers. * 00006 * All rights reserved. * 00007 * * 00008 * For the licensing terms see $ROOTSYS/LICENSE. * 00009 * For the list of contributors see $ROOTSYS/README/CREDITS. * 00010 *************************************************************************/ 00011 00012 #ifndef ROOT_TGeoNodeEditor 00013 #define ROOT_TGeoNodeEditor 00014 00015 ////////////////////////////////////////////////////////////////////////// 00016 // // 00017 // TGeoNodeEditor // 00018 // // 00019 // Editor for a TGeoNode. // 00020 // // 00021 ////////////////////////////////////////////////////////////////////////// 00022 00023 #ifndef ROOT_TGButton 00024 #include "TGWidget.h" 00025 #endif 00026 #ifndef ROOT_TGeoGedFrame 00027 #include "TGeoGedFrame.h" 00028 #endif 00029 00030 class TGeoNode; 00031 class TGeoVolume; 00032 class TGeoMatrix; 00033 class TGTextEntry; 00034 class TGNumberEntry; 00035 class TGTab; 00036 class TGComboBox; 00037 class TGTextButton; 00038 class TGPictureButton; 00039 class TGCheckButton; 00040 class TGeoTabManager; 00041 00042 class TGeoNodeEditor : public TGeoGedFrame { 00043 00044 protected: 00045 00046 TGeoNode *fNode; // Node object 00047 00048 Bool_t fIsEditable; // Flag that the medium can be changed 00049 TGTextEntry *fNodeName; // Node name text entry 00050 TGNumberEntry *fNodeNumber; // Copy number 00051 TGeoVolume *fSelectedVolume; // Selected volume 00052 TGLabel *fLSelVolume; // Selected volume label 00053 TGPictureButton *fBSelVolume; // Button for selecting a volume 00054 TGeoVolume *fSelectedMother; // Selected mother 00055 TGLabel *fLSelMother; // Selected mother label 00056 TGPictureButton *fBSelMother; // Button for selecting a mother volume 00057 TGeoMatrix *fSelectedMatrix; // Selected matrix 00058 TGLabel *fLSelMatrix; // Selected matrix label 00059 TGPictureButton *fBSelMatrix; // Button for selecting a matrix 00060 TGTextButton *fEditMother; // Check button for editing mother volume 00061 TGTextButton *fEditVolume; // Check button for volume editing 00062 TGTextButton *fEditMatrix; // Check button for matrix editing 00063 TGTextButton *fApply; // Apply-Button to accept changes 00064 TGTextButton *fCancel; // Cancel-Button 00065 TGTextButton *fUndo; // Undo-Button 00066 00067 virtual void ConnectSignals2Slots(); // Connect the signals to the slots 00068 00069 public: 00070 TGeoNodeEditor(const TGWindow *p = 0, 00071 Int_t width = 140, Int_t height = 30, 00072 UInt_t options = kChildFrame, 00073 Pixel_t back = GetDefaultFrameBackground()); 00074 virtual ~TGeoNodeEditor(); 00075 virtual void SetModel(TObject *obj); 00076 00077 void DoEditMother(); 00078 void DoEditVolume(); 00079 void DoEditMatrix(); 00080 void DoSelectMother(); 00081 void DoSelectVolume(); 00082 void DoSelectMatrix(); 00083 void DoNodeName(); 00084 void DoNodeNumber(); 00085 void DoApply(); 00086 void DoUndo(); 00087 00088 ClassDef(TGeoNodeEditor,0) // TGeoNode editor 00089 }; 00090 00091 #endif