Logo ROOT  
Reference Guide
 
Loading...
Searching...
No Matches
TControlBarButton.cxx
Go to the documentation of this file.
1// @(#)root/gpad:$Id$
2// Author: Nenad Buncic 20/02/96
3
4/*************************************************************************
5 * Copyright (C) 1995-2000, Rene Brun and Fons Rademakers. *
6 * All rights reserved. *
7 * *
8 * For the licensing terms see $ROOTSYS/LICENSE. *
9 * For the list of contributors see $ROOTSYS/README/CREDITS. *
10 *************************************************************************/
11
12/** \class TControlBarButton
13\ingroup gpad
14This class defines the control bar buttons
15
16Created by the TControlBar. Not for general consumption.
17*/
18
19#include "TControlBarButton.h"
20#include "TVirtualPad.h"
21#include "TError.h"
22#include "TApplication.h"
23
24#include <cctype>
25
26const char *kBStr = "BUTTON";
27const char *kDStr = "DRAWNBUTTON";
28const char *kSStr = "SEPARATOR";
29
30
32
33////////////////////////////////////////////////////////////////////////////////
34/// Default control bar button ctor.
35
37{
38 fType = 0;
39}
40
41////////////////////////////////////////////////////////////////////////////////
42/// Create control bar button.
43
44TControlBarButton::TControlBarButton(const char *label, const char *action,
45 const char *hint, const char *type)
46 : TNamed(label, hint)
47{
49 SetAction(action);
50}
51
52////////////////////////////////////////////////////////////////////////////////
53/// Execute control bar button command.
54
56{
57 if (!fAction.IsNull()) {
58
60
61 if (gPad) gPad->Update();
62 }
63}
64
65////////////////////////////////////////////////////////////////////////////////
66/// Set action to be executed by this button.
67
68void TControlBarButton::SetAction(const char *action)
69{
70 if (action) {
71 char *s = Strip(action);
72 fAction = s;
73 delete [] s;
74 } else
75 Error("SetAction", "action missing");
76}
77
78
79////////////////////////////////////////////////////////////////////////////////
80/// Set button type. Type can be either "button", "drawnbutton" or
81/// "separator". String is case insensitive. Default is "button".
82
84{
85 fType = kButton;
86
87 if (type && *type) {
88 if (!strcasecmp(type, kBStr))
89 fType = kButton;
90 else if (!strcasecmp(type, kDStr))
92 else if (!strcasecmp(type, kSStr))
94 else
95 Error("SetType", "unknown type '%s' !\n\t(choice of: %s, %s, %s)",
97 }
98}
99
100////////////////////////////////////////////////////////////////////////////////
101/// Set button type. Type can be either kButton, kDrawnButton or kSeparator.
102/// Default is kButton.
103
105{
106 switch (type) {
107
108 case kButton:
109 case kDrawnButton:
110 case kSeparator:
111 fType = type;
112 break;
113
114 default:
115 fType = kButton;
116 Error("SetType", "unknown type: %d !\n\t(choice of: %d, %d, %d)",
118 }
119}
#define ClassImp(name)
Definition Rtypes.h:364
R__EXTERN TApplication * gApplication
const char * kBStr
const char * kDStr
const char * kSStr
int type
Definition TGX11.cxx:121
char * Strip(const char *str, char c=' ')
Strip leading and trailing c (blanks by default) from a string.
Definition TString.cxx:2479
#define gPad
virtual Longptr_t ProcessLine(const char *line, Bool_t sync=kFALSE, Int_t *error=0)
Process a single command line, either a C++ statement or an interpreter command starting with a "....
This class defines the control bar buttons.
virtual void SetType(const char *type)
Set button type.
virtual void SetAction(const char *action)
Set action to be executed by this button.
Int_t fType
button type
TControlBarButton()
Default control bar button ctor.
TString fAction
action to be executed
virtual void Action()
Execute control bar button command.
The TNamed class is the base class for all named ROOT classes.
Definition TNamed.h:29
virtual void Error(const char *method, const char *msgfmt,...) const
Issue error message.
Definition TObject.cxx:963
const char * Data() const
Definition TString.h:369
Bool_t IsNull() const
Definition TString.h:407