TGuiBldGeometryFrame.cxx

Go to the documentation of this file.
00001 // @(#)root/guibuilder:$Id: TGuiBldGeometryFrame.cxx 30063 2009-09-08 12:15:59Z bellenot $
00002 // Author: Valeriy Onuchin, Lucie Flekova   12/09/04
00003 
00004 /*************************************************************************
00005  * Copyright (C) 1995-2004, 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 #include "TGuiBldEditor.h"
00013 #include "TGuiBldHintsEditor.h"
00014 #include "TGuiBldNameFrame.h"
00015 #include "TGResourcePool.h"
00016 #include "TGTab.h"
00017 #include "TGLabel.h"
00018 #include "TGButtonGroup.h"
00019 #include "TGNumberEntry.h"
00020 #include "TG3DLine.h"
00021 #include "TGColorSelect.h"
00022 #include "TGColorDialog.h"
00023 #include "TGuiBldGeometryFrame.h"
00024 #include "TRootGuiBuilder.h"
00025 #include "TGuiBldDragManager.h"
00026 #include "TGFrame.h"
00027 
00028 ClassImp(TGuiBldGeometryFrame)
00029 
00030 //______________________________________________________________________________
00031 TGuiBldGeometryFrame::TGuiBldGeometryFrame(const TGWindow *p, TGuiBldEditor *ed)
00032    : TGVerticalFrame(p, 1, 1)
00033 {
00034    // Constructor.
00035 
00036    fEditor = ed;
00037    fBuilder = (TRootGuiBuilder*)TRootGuiBuilder::Instance();
00038    fDragManager = (TGuiBldDragManager *)gDragManager;
00039    fSelected = fEditor->GetSelected();
00040    fEditDisabled = 1;
00041    SetCleanup(kDeepCleanup);
00042 
00043    TGGroupFrame *fGroupFrame = new TGGroupFrame(this, "Size");
00044 
00045    TGHorizontalFrame *hf = new TGHorizontalFrame(fGroupFrame);
00046 
00047    hf->AddFrame(new TGLabel(hf, " Width "), new TGLayoutHints(kLHintsLeft | 
00048                 kLHintsCenterY, 2, 2, 2, 2));
00049    fNEWidth = new TGNumberEntry(hf, 0.0, 4, -1, (TGNumberFormat::EStyle)5);
00050    hf->AddFrame(fNEWidth, new TGLayoutHints(kLHintsLeft | kLHintsCenterY,
00051                 2, 2, 2, 2));
00052 
00053    hf->AddFrame(new TGLabel(hf, " Height "), new TGLayoutHints(kLHintsLeft | 
00054                 kLHintsCenterY, 2, 2, 2, 2));
00055    fNEHeight = new TGNumberEntry(hf, 0.0, 4, -1, (TGNumberFormat::EStyle)5);
00056    hf->AddFrame(fNEHeight, new TGLayoutHints(kLHintsLeft | kLHintsCenterY,
00057                 2, 2, 2, 2));
00058 
00059    fGroupFrame->AddFrame(hf, new TGLayoutHints(kLHintsExpandX | kLHintsExpandY, 
00060                          0, 0, 5, 0));
00061 
00062    AddFrame(fGroupFrame, new TGLayoutHints(kLHintsExpandX | kLHintsTop));
00063    
00064    fNEWidth->GetNumberEntry()->Connect("ReturnPressed()", "TGuiBldGeometryFrame",
00065                                        this, "ResizeSelected()");
00066    fNEWidth->Connect("ValueSet(Long_t)", "TGuiBldGeometryFrame", this,
00067                      "ResizeSelected()");
00068    fNEHeight->GetNumberEntry()->Connect("ReturnPressed()", "TGuiBldGeometryFrame",
00069                                         this, "ResizeSelected()");
00070    fNEHeight->Connect("ValueSet(Long_t)", "TGuiBldGeometryFrame", this,
00071                       "ResizeSelected()");
00072 
00073    if (!fSelected) {
00074       fNEWidth->SetNumber(0);
00075       fNEHeight->SetNumber(0);
00076    }
00077    else {
00078       fNEWidth->SetNumber(fSelected->GetWidth());
00079       fNEHeight->SetNumber(fSelected->GetHeight());
00080    }
00081 }
00082 
00083 //______________________________________________________________________________
00084 void TGuiBldGeometryFrame::ResizeSelected()
00085 {
00086    // Resize and redraw selected frame.
00087 
00088    if (!fEditor)
00089       return;
00090 
00091    fSelected = fEditor->GetSelected();
00092 
00093    if (!fSelected)
00094       return;
00095 
00096    Int_t w = fNEWidth->GetIntNumber();
00097    Int_t h = fNEHeight->GetIntNumber();
00098 
00099    if ((w > 0) && (h > 0)) {
00100       fSelected->MoveResize(fSelected->GetX(), fSelected->GetY(), w, h);
00101       fClient->NeedRedraw(fSelected, kTRUE);
00102       TGWindow *root = (TGWindow*)fClient->GetRoot();
00103       fClient->NeedRedraw(root, kTRUE);
00104       fDragManager->DrawGrabRectangles(fSelected);
00105       if (fBuilder) {
00106          fClient->NeedRedraw(fBuilder, kTRUE);
00107       }
00108    } else {
00109       fNEWidth->SetNumber(fSelected->GetWidth());
00110       fNEHeight->SetNumber(fSelected->GetHeight());
00111    }
00112 }
00113 
00114 //______________________________________________________________________________
00115 void TGuiBldGeometryFrame::ChangeSelected(TGFrame *frame)
00116 {
00117    // Update number entries when new frame selected.
00118 
00119    if (!frame) {
00120       fNEWidth->SetNumber(0);
00121       fNEHeight->SetNumber(0);
00122    } else {
00123       fNEWidth->SetNumber(frame->GetWidth());
00124       fNEHeight->SetNumber(frame->GetHeight());
00125    }
00126 }
00127 
00128 

Generated on Tue Jul 5 14:22:14 2011 for ROOT_528-00b_version by  doxygen 1.5.1