Logo ROOT  
Reference Guide
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 "TCanvas.h"
21#include "TError.h"
22#include "TApplication.h"
23
24#include <ctype.h>
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:361
R__EXTERN TApplication * gApplication
Definition: TApplication.h:166
const char * kBStr
const char * kDStr
const char * kSStr
int type
Definition: TGX11.cxx:120
char * Strip(const char *str, char c=' ')
Strip leading and trailing c (blanks by default) from a string.
Definition: TString.cxx:2454
#define gPad
Definition: TVirtualPad.h:287
virtual Long_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:891
const char * Data() const
Definition: TString.h:364
Bool_t IsNull() const
Definition: TString.h:402
static constexpr double s