EntryTestDlg Class Reference

Collaboration diagram for EntryTestDlg:

Collaboration graph
[legend]
List of all members.

Public Member Functions

 EntryTestDlg (const TGWindow *p, const TGWindow *main)
virtual ~EntryTestDlg ()
void CloseWindow ()
void SetLimits ()
void DoOK ()

Private Attributes

TGTransientFrame * fMain
TGVerticalFrame * fF1
TGVerticalFrame * fF2
TGHorizontalFrame * fF [13]
TGLayoutHints * fL1
TGLayoutHints * fL2
TGLayoutHints * fL3
TGLabel * fLabel [13]
TGNumberEntry * fNumericEntries [13]
TGCheckButton * fLowerLimit
TGCheckButton * fUpperLimit
TGNumberEntry * fLimits [2]
TGCheckButton * fPositive
TGCheckButton * fNonNegative
TGButton * fSetButton
TGButton * fExitButton

Detailed Description

Definition at line 454 of file guitest.C.


Constructor & Destructor Documentation

EntryTestDlg::EntryTestDlg ( const TGWindow *  p,
const TGWindow *  main 
)

Definition at line 2313 of file guitest.C.

02314 {
02315    // build widgets
02316    fMain = new TGTransientFrame(p, main, 10, 10, kHorizontalFrame);
02317    fMain->Connect("CloseWindow()", "EntryTestDlg", this, "CloseWindow()");
02318    fMain->DontCallClose(); // to avoid double deletions.
02319 
02320    // use hierarchical cleaning
02321    fMain->SetCleanup(kDeepCleanup);
02322 
02323    TGGC myGC = *gClient->GetResourcePool()->GetFrameGC();
02324    TGFont *myfont = gClient->GetFont("-adobe-helvetica-bold-r-*-*-12-*-*-*-*-*-iso8859-1");
02325    if (myfont) myGC.SetFont(myfont->GetFontHandle());
02326 
02327    fF1 = new TGVerticalFrame(fMain, 200, 300);
02328    fL1 = new TGLayoutHints(kLHintsTop | kLHintsLeft, 2, 2, 2, 2);
02329    fMain->AddFrame(fF1, fL1);
02330    fL2 = new TGLayoutHints(kLHintsCenterY | kLHintsLeft, 2, 2, 2, 2);
02331    for (int i = 0; i < 13; i++) {
02332       fF[i] = new TGHorizontalFrame(fF1, 200, 30);
02333       fF1->AddFrame(fF[i], fL2);
02334       fNumericEntries[i] = new TGNumberEntry(fF[i], numinit[i], 12, i + 20,
02335                                              (TGNumberFormat::EStyle) i);
02336       fF[i]->AddFrame(fNumericEntries[i], fL2);
02337       fLabel[i] = new TGLabel(fF[i], numlabel[i], myGC(), myfont->GetFontStruct());
02338       fF[i]->AddFrame(fLabel[i], fL2);
02339    }
02340    fF2 = new TGVerticalFrame(fMain, 200, 500);
02341    fL3 = new TGLayoutHints(kLHintsTop | kLHintsLeft, 2, 2, 2, 2);
02342    fMain->AddFrame(fF2, fL3);
02343    fLowerLimit = new TGCheckButton(fF2, "lower limit:", 4);
02344    fF2->AddFrame(fLowerLimit, fL3);
02345    fLimits[0] = new TGNumberEntry(fF2, 0, 12, 10);
02346    fLimits[0]->SetLogStep(kFALSE);
02347    fF2->AddFrame(fLimits[0], fL3);
02348    fUpperLimit = new TGCheckButton(fF2, "upper limit:", 5);
02349    fF2->AddFrame(fUpperLimit, fL3);
02350    fLimits[1] = new TGNumberEntry(fF2, 0, 12, 11);
02351    fLimits[1]->SetLogStep(kFALSE);
02352    fF2->AddFrame(fLimits[1], fL3);
02353    fPositive = new TGCheckButton(fF2, "Positive", 6);
02354    fF2->AddFrame(fPositive, fL3);
02355    fNonNegative = new TGCheckButton(fF2, "Non negative", 7);
02356    fF2->AddFrame(fNonNegative, fL3);
02357    fSetButton = new TGTextButton(fF2, " Set ", 2);
02358    fSetButton->Connect("Clicked()", "EntryTestDlg", this, "SetLimits()");
02359    fF2->AddFrame(fSetButton, fL3);
02360    fExitButton = new TGTextButton(fF2, " Close ", 1);
02361    fExitButton->Connect("Clicked()", "EntryTestDlg", this, "DoOK()");
02362    fF2->AddFrame(fExitButton, fL3);
02363 
02364    // set dialog box title
02365    fMain->SetWindowName("Number Entry Test");
02366    fMain->SetIconName("Number Entry Test");
02367    fMain->SetClassHints("NumberEntryDlg", "NumberEntryDlg");
02368    // resize & move to center
02369    fMain->MapSubwindows();
02370    UInt_t width = fMain->GetDefaultWidth();
02371    UInt_t height = fMain->GetDefaultHeight();
02372    fMain->Resize(width, height);
02373    fMain->CenterOnParent();
02374    // make the message box non-resizable
02375    fMain->SetWMSize(width, height);
02376    fMain->SetWMSizeHints(width, height, width, height, 0, 0);
02377    fMain->SetMWMHints(kMWMDecorAll | kMWMDecorResizeH | kMWMDecorMaximize |
02378                       kMWMDecorMinimize | kMWMDecorMenu,
02379                       kMWMFuncAll | kMWMFuncResize | kMWMFuncMaximize |
02380                       kMWMFuncMinimize, kMWMInputModeless);
02381 
02382    fMain->MapWindow();
02383    gClient->WaitFor(fMain);
02384 }

EntryTestDlg::~EntryTestDlg (  )  [virtual]

Definition at line 2386 of file guitest.C.

02387 {
02388    // dtor
02389 
02390    fMain->DeleteWindow();
02391 }


Member Function Documentation

void EntryTestDlg::CloseWindow (  ) 

Definition at line 2393 of file guitest.C.

02394 {
02395    delete this;
02396 }

void EntryTestDlg::SetLimits (  ) 

Definition at line 2405 of file guitest.C.

02406 {
02407    Double_t min = fLimits[0]->GetNumber();
02408    Bool_t low = (fLowerLimit->GetState() == kButtonDown);
02409    Double_t max = fLimits[1]->GetNumber();
02410    Bool_t high = (fUpperLimit->GetState() == kButtonDown);
02411    TGNumberFormat::ELimit lim;
02412    if (low && high) {
02413       lim = TGNumberFormat::kNELLimitMinMax;
02414    } else if (low) {
02415       lim = TGNumberFormat::kNELLimitMin;
02416    } else if (high) {
02417       lim = TGNumberFormat::kNELLimitMax;
02418    } else {
02419       lim = TGNumberFormat::kNELNoLimits;
02420    }
02421    Bool_t pos = (fPositive->GetState() == kButtonDown);
02422    Bool_t nneg = (fNonNegative->GetState() == kButtonDown);
02423    TGNumberFormat::EAttribute attr;
02424    if (pos) {
02425       attr = TGNumberFormat::kNEAPositive;
02426    } else if (nneg) {
02427       attr = TGNumberFormat::kNEANonNegative;
02428    } else {
02429       attr = TGNumberFormat::kNEAAnyNumber;
02430    }
02431    for (int i = 0; i < 13; i++) {
02432       fNumericEntries[i]->SetFormat(fNumericEntries[i]->GetNumStyle(), attr);
02433       fNumericEntries[i]->SetLimits(lim, min, max);
02434    }
02435 }

void EntryTestDlg::DoOK (  ) 

Definition at line 2398 of file guitest.C.

02399 {
02400    // Handle ok button.
02401 
02402    fMain->SendCloseMessage();
02403 }


Member Data Documentation

TGTransientFrame* EntryTestDlg::fMain [private]

Definition at line 457 of file guitest.C.

Referenced by DoOK(), EntryTestDlg(), and ~EntryTestDlg().

TGVerticalFrame* EntryTestDlg::fF1 [private]

Definition at line 458 of file guitest.C.

Referenced by EntryTestDlg().

TGVerticalFrame* EntryTestDlg::fF2 [private]

Definition at line 459 of file guitest.C.

Referenced by EntryTestDlg().

TGHorizontalFrame* EntryTestDlg::fF[13] [private]

Definition at line 460 of file guitest.C.

Referenced by EntryTestDlg().

TGLayoutHints* EntryTestDlg::fL1 [private]

Definition at line 461 of file guitest.C.

Referenced by EntryTestDlg().

TGLayoutHints* EntryTestDlg::fL2 [private]

Definition at line 462 of file guitest.C.

Referenced by EntryTestDlg().

TGLayoutHints* EntryTestDlg::fL3 [private]

Definition at line 463 of file guitest.C.

Referenced by EntryTestDlg().

TGLabel* EntryTestDlg::fLabel[13] [private]

Definition at line 464 of file guitest.C.

Referenced by EntryTestDlg().

TGNumberEntry* EntryTestDlg::fNumericEntries[13] [private]

Definition at line 465 of file guitest.C.

Referenced by EntryTestDlg(), and SetLimits().

TGCheckButton* EntryTestDlg::fLowerLimit [private]

Definition at line 466 of file guitest.C.

Referenced by EntryTestDlg(), and SetLimits().

TGCheckButton* EntryTestDlg::fUpperLimit [private]

Definition at line 467 of file guitest.C.

Referenced by EntryTestDlg(), and SetLimits().

TGNumberEntry* EntryTestDlg::fLimits[2] [private]

Definition at line 468 of file guitest.C.

Referenced by EntryTestDlg(), and SetLimits().

TGCheckButton* EntryTestDlg::fPositive [private]

Definition at line 469 of file guitest.C.

Referenced by EntryTestDlg(), and SetLimits().

TGCheckButton* EntryTestDlg::fNonNegative [private]

Definition at line 470 of file guitest.C.

Referenced by EntryTestDlg(), and SetLimits().

TGButton* EntryTestDlg::fSetButton [private]

Definition at line 471 of file guitest.C.

Referenced by EntryTestDlg().

TGButton* EntryTestDlg::fExitButton [private]

Definition at line 472 of file guitest.C.

Referenced by EntryTestDlg().


The documentation for this class was generated from the following file:
Generated on Mon Jan 7 13:18:16 2013 for MicromegasFramework by  doxygen 1.4.7