upgrade: all volumes list tree related functions/data moved from TG4MainFrame to...
authorivana <ivana@f7af4fe6-9843-0410-8265-dc069ae4e863>
Wed, 8 Aug 2001 11:39:05 +0000 (11:39 +0000)
committerivana <ivana@f7af4fe6-9843-0410-8265-dc069ae4e863>
Wed, 8 Aug 2001 11:39:05 +0000 (11:39 +0000)
TGeant4/TG4GeometryGUI.cxx
TGeant4/TG4ListTreeFrame.cxx
TGeant4/TG4ListTreeFrame.h
TGeant4/TG4MainFrame.cxx
TGeant4/TG4MainFrame.h

index 6507518..673e2c4 100644 (file)
@@ -14,6 +14,7 @@
 #include "TG4GeometryGUI.h"
 #include "TG4GuiVolume.h"
 #include "TG4MainFrame.h"
+#include "TG4ListTreeFrame.h"
 #include "TG4VolumesFrames.h"
 #include "TG4MaterialsFrames.h"
 #include "TG4Globals.h"
@@ -92,7 +93,8 @@ void TG4GeometryGUI::ReadGeometryTree()
 
     G4String vname = top->GetName();
     volume = new TG4GuiVolume( vname, top);//--->TObject
-    itemi = fPanel->AddItem(volume,0,vname, kOpenFolder, kFolder);
+    itemi = fPanel->GetListTreeFrame()
+      ->AddItem(volume,0,vname, kOpenFolder, kFolder);
  
     RegisterLogicalVolume( top, itemi);
     
@@ -138,7 +140,8 @@ TG4StringSet     lVolumeNames;     //set of names of solids
     if ( (lVolumeNames.find(vname)) == (lVolumeNames.end()) ) {
 
       volume = new TG4GuiVolume( vname, lDaughter);
-      itemi = fPanel->AddItem(volume, itemv, vname, kOpenFolder, kFolder);
+      itemi = fPanel->GetListTreeFrame()
+        ->AddItem(volume, itemv, vname, kOpenFolder, kFolder);
       
       itemi->SetUserData(volume);
       
index 3da082d..677507f 100644 (file)
@@ -2,6 +2,7 @@
 // Category: interfaces
 //
 // Author: D. Adamova
+//
 //========================================================
 //
 //------------TG4ListTreeFrame.cxx--------------------------------//
 
 #include <TGListTree.h>
 #include <TGCanvas.h>
+#include <TGTab.h>
 
 #include <G4LogicalVolume.hh>
 #include <G4UImanager.hh>
 
 ClassImp(TG4ListTreeFrame)
 
-TG4ListTreeFrame::TG4ListTreeFrame( TGCompositeFrame* Parent, TGMainFrame* ActionFrame)
+TG4ListTreeFrame::TG4ListTreeFrame( TGTab* Tab, TGMainFrame* ActionFrame)
 {
 //------>canvas for the ListTree
+   TGCompositeFrame* Parent= Tab->AddTab("Volumes");
    fCanvasWindow = new TGCanvas( Parent, 400, 240);   
    ULong_t back= TGFrame::GetWhitePixel(); 
    fCanvasWindow->ChangeBackground(back);
@@ -65,13 +68,63 @@ TG4ListTreeFrame::~TG4ListTreeFrame()
    delete fCanvasWindow;
    delete fVolumesListTree;   
 
-}   
-
+}
 
-TGListTree* TG4ListTreeFrame::GetVolumesListTree() const
+TGListTreeItem*  TG4ListTreeFrame::
+AddItem(TObject* obj, TGListTreeItem* parent, const char* name, 
+                       const TGPicture* open, const TGPicture* closed)
 {
-//---> get VolumesListTree for use in the MainFrame
-  return fVolumesListTree;
+//----->Add item to the list tree
+    return fVolumesListTree->AddItem(parent, name, obj, open, closed);
+} 
+  
+Bool_t TG4ListTreeFrame::ProcessSubMessage(Long_t msg, Long_t parm1)
+{
+//---> Processes events generated by the ListTree widget
+
+       switch (GET_SUBMSG(msg)) {
+
+//----->Cases to Handle mouse click
+   //-->case 1 
+       case kCT_ITEMCLICK: 
+    //---> Button 1: Select volume
+            if (parm1 == kButton1){
+           TGListTreeItem* item = fVolumesListTree->GetSelected();
+             if (item) {
+            
+            TG4GuiVolume* volume=((TG4GuiVolume*) item->GetUserData());   
+            G4LogicalVolume* lvolume = volume->GetLogicalVolume();
+
+             if  ( lvolume ) {
+              G4cout << "The selected logical volume name is   " 
+                   << lvolume->GetName() << G4endl;
+                 };
+             };
+           }; 
+             
+    //---> Button 3: Draw Volume
+            if (parm1 == kButton3){
+             TGListTreeItem* item = fVolumesListTree->GetSelected();
+            if (item){
+                DrawSelectedVolume(item);};
+           }; 
+                 
+           break;
+           
+   //-->case 2     
+       case kCT_ITEMDBLCLICK:
+           if (parm1 == kButton1) {
+               if (fVolumesListTree->GetSelected() != 0) {
+                   gClient->NeedRedraw(fVolumesListTree);
+               };
+           };
+           break;
+   //-->default for GET_SUBMSG     
+       default:
+           break;
+       }
+       
+    return kTRUE;      
 }
 
 void  TG4ListTreeFrame::DrawSelectedVolume(TGListTreeItem* item)
@@ -130,6 +183,5 @@ void  TG4ListTreeFrame::DrawSelectedVolume(TGListTreeItem* item)
       };
       
 }
-             
+
+
index b6e2d94..4cb9fbd 100644 (file)
@@ -2,6 +2,7 @@
 // Category: interfaces
 //
 // Author: D. Adamova
+//
 //======================================================
 //
 //------------TG4ListTreeFrame.h--------------------------------//
 class TGListTreeItem;
 class TGListTree;
 class TGCanvas;
-
+class TGTab;
+class TGPicture;
 
 class TG4ListTreeFrame : public TObject {
 public:   
 
-    TG4ListTreeFrame( TGCompositeFrame* parent, TGMainFrame* actionFrame);
+    TG4ListTreeFrame( TGTab* tab, TGMainFrame* actionFrame);
     virtual ~TG4ListTreeFrame();
 
-    TGListTree* GetVolumesListTree() const;    
+    Bool_t ProcessSubMessage(Long_t msg, Long_t parm1);  
     void DrawSelectedVolume(TGListTreeItem* item);
+    TGListTreeItem*
+        AddItem(TObject* obj, TGListTreeItem* parent,const char* name,
+                const TGPicture* open, const TGPicture* closed);    
 //---------------------------------------------------------------------------
 
 protected:
index ed008d9..559b56f 100644 (file)
@@ -18,7 +18,6 @@
 #include "TG4GuiVolume.h"
 #include "TG4Globals.h"
 
-#include <TGListTree.h>
 #include <TGTab.h>
 #include <TGMenu.h>
 #include <TApplication.h>
@@ -66,18 +65,14 @@ TG4MainFrame::TG4MainFrame(const TGWindow* p, UInt_t w, UInt_t h)
    AddFrame(fTab, lTabLayout);
 
 //------->Frame for ListTree of logical volumes
-   TGCompositeFrame* tf = fTab->AddTab("Volumes");
-   flistTreeFrame = new TG4ListTreeFrame( tf, this);
-   fVolumesListTree=flistTreeFrame->GetVolumesListTree();
+   flistTreeFrame = new TG4ListTreeFrame( fTab, this);
 
 //----->Frame for volumes properties
-   tf = fTab->AddTab("Volumes Properties");
-   fvolumesFrames = new TG4VolumesFrames( tf, this);
+   fvolumesFrames = new TG4VolumesFrames( fTab, this);
 
 
 //----->Frame for materials properties
-   tf = fTab->AddTab("Materials Properties");
-   fmaterialsFrames = new TG4MaterialsFrames( tf, this);
+   fmaterialsFrames = new TG4MaterialsFrames( fTab, this);
 
 //----->Window name and final mapping
    SetWindowName("ALICE Geant4 Browser");
@@ -122,7 +117,6 @@ TG4MainFrame::~TG4MainFrame()
    delete fMenuBar;
    delete fTab;
 
-   delete fVolumesListTree;
    delete flistTreeFrame;
    delete fvolumesFrames;   
    delete fmaterialsFrames;
@@ -140,12 +134,10 @@ TG4MaterialsFrames* TG4MainFrame::GetMaterialsFrames() const
    return fmaterialsFrames;
 }
 
-TGListTreeItem*  TG4MainFrame::
-AddItem(TObject* obj, TGListTreeItem* parent, const char* name, 
-                       const TGPicture* open, const TGPicture* closed)
+TG4ListTreeFrame* TG4MainFrame::GetListTreeFrame() const
 {
-//----->Add item to the list tree
-    return fVolumesListTree->AddItem(parent, name, obj, open, closed);
+//---> For use in TG4GeometryGUI
+   return flistTreeFrame;
 }
 
 void TG4MainFrame::CloseWindow()
@@ -187,7 +179,7 @@ const char *editortxt =
 
 
 //=================================================================
-//----->Process messages to widgets
+//----->Process messages from widgets
     switch (GET_MSG(msg)) {
     
     case kC_TEXTENTRY:
@@ -276,48 +268,9 @@ const char *editortxt =
 
 //----->case Handle volumes ListTree
     case kC_LISTTREE:
-       switch (GET_SUBMSG(msg)) {
-
-//----->Cases to Handle mouse click
-   //-->case 1 
-       case kCT_ITEMCLICK: 
-    //---> Button 1: Select volume
-            if (parm1 == kButton1){
-           TGListTreeItem* item = fVolumesListTree->GetSelected();
-             if (item) {
-            
-            TG4GuiVolume* volume=((TG4GuiVolume*) item->GetUserData());   
-            G4LogicalVolume* lvolume = volume->GetLogicalVolume();
-
-             if  ( lvolume ) {
-              G4cout << "The selected logical volume name is   " 
-                   << lvolume->GetName() << G4endl;
-                 };
-             };
-           }; 
-             
-    //---> Button 3: Draw Volume
-            if (parm1 == kButton3){
-             TGListTreeItem* item = fVolumesListTree->GetSelected();
-            if (item){
-                flistTreeFrame->DrawSelectedVolume(item);};
-           }; 
-                 
-           break;
-
-   //-->case 2     
-       case kCT_ITEMDBLCLICK:
-           if (parm1 == kButton1) {
-               if (fVolumesListTree->GetSelected() != 0) {
-                   gClient->NeedRedraw(fVolumesListTree);
-               };
-           };
-           break;
-   //-->default for GET_SUBMSG     
-       default:
-           break;
-       }
+        flistTreeFrame->ProcessSubMessage( msg, parm1);    
        break;
+
 //---->default for GET_MSG     
     default:
        break;
index 48ec13c..114bfab 100644 (file)
 class TG4ListTreeFrame;
 class TG4VolumesFrames;
 class TG4MaterialsFrames;
+class TG4ListTreeFrame;
 class TObject;
-class TGListTreeItem;
-class TGPicture;
-class TGListTree;
 class TGTab;
 class TGMenuBar;
 class TGPopupMenu;
@@ -33,13 +31,11 @@ public:
     
     TG4MainFrame(const TGWindow *p, UInt_t w, UInt_t h);
     ~TG4MainFrame();
-    TGListTreeItem*
-        AddItem(TObject* obj, TGListTreeItem* parent,const char* name,
-                const TGPicture* open, const TGPicture* closed);
                
      TG4VolumesFrames* GetVolumesFrames() const;
      TG4MaterialsFrames* GetMaterialsFrames() const;
+     TG4ListTreeFrame* GetListTreeFrame() const;
+
      void CloseWindow();                                           
      Bool_t ProcessMessage(Long_t msg, Long_t parm1, Long_t parm2);
 //---------------------------------------------------------------------------
@@ -64,8 +60,6 @@ private:
     
     TGTab*      fTab;           // tab widget
     
-    TGListTree*     fVolumesListTree;     // volumes list tree 
-    
     TG4VolumesFrames*   fvolumesFrames;   // service class for adding vols subframes 
     TG4MaterialsFrames* fmaterialsFrames; // service class for adding mats subframes 
     TG4ListTreeFrame*   flistTreeFrame;          // service class for volumes list tree