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 "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:375
R__EXTERN TApplication * gApplication
Definition: TApplication.h:165
const char * kBStr
const char * kDStr
const char * kSStr
Option_t Option_t TPoint TPoint const char GetTextMagnitude GetFillStyle GetLineColor GetLineWidth GetMarkerStyle GetTextAlign GetTextColor GetTextSize void char Point_t Rectangle_t WindowAttributes_t Float_t Float_t Float_t Int_t Int_t UInt_t UInt_t Rectangle_t Int_t Int_t Window_t TString Int_t GCValues_t GetPrimarySelectionOwner GetDisplay GetScreen GetColormap GetNativeEvent const char const char dpyName wid window const char font_name cursor keysym reg const char only_if_exist regb h Point_t winding char text const char depth char const char Int_t count const char ColorStruct_t color const char Pixmap_t Pixmap_t PictureAttributes_t attr const char char ret_data h unsigned char height h Atom_t Int_t ULong_t ULong_t unsigned char prop_list Atom_t Atom_t Atom_t Time_t type
char * Strip(const char *str, char c=' ')
Strip leading and trailing c (blanks by default) from a string.
Definition: TString.cxx:2479
#define gPad
Definition: TVirtualPad.h:288
virtual Longptr_t ProcessLine(const char *line, Bool_t sync=kFALSE, Int_t *error=nullptr)
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:893
const char * Data() const
Definition: TString.h:369
Bool_t IsNull() const
Definition: TString.h:407
static constexpr double s