// @(#)root/gui:$Id$
// Author: Fons Rademakers   06/01/98

/*************************************************************************
 * Copyright (C) 1995-2000, Rene Brun and Fons Rademakers.               *
 * All rights reserved.                                                  *
 *                                                                       *
 * For the licensing terms see $ROOTSYS/LICENSE.                         *
 * For the list of contributors see $ROOTSYS/README/CREDITS.             *
 *************************************************************************/

#ifndef ROOT_TGButton
#define ROOT_TGButton


//////////////////////////////////////////////////////////////////////////
//                                                                      //
// TGButton, TGTextButton, TGPictureButton, TGCheckButton TGRadioButton //
// and TGSplitButton                                                    //
//                                                                      //
// This header defines all GUI button widgets.                          //
//                                                                      //
// TGButton is a button abstract base class. It defines general button  //
// behaviour.                                                           //
//                                                                      //
// Selecting a text or picture button will generate the event:          //
// kC_COMMAND, kCM_BUTTON, button id, user data.                        //
//                                                                      //
// Selecting a check button will generate the event:                    //
// kC_COMMAND, kCM_CHECKBUTTON, button id, user data.                   //
//                                                                      //
// Selecting a radio button will generate the event:                    //
// kC_COMMAND, kCM_RADIOBUTTON, button id, user data.                   //
//                                                                      //
// If a command string has been specified (via SetCommand()) then this  //
// command string will be executed via the interpreter whenever a       //
// button is selected. A command string can contain the macros:         //
// $MSG   -- kC_COMMAND, kCM[CHECK|RADIO]BUTTON packed message          //
//           (use GET_MSG() and GET_SUBMSG() to unpack)                 //
// $PARM1 -- button id                                                  //
// $PARM2 -- user data pointer                                          //
// Before executing these macros are expanded into the respective       //
// Long_t's                                                             //
//                                                                      //
//////////////////////////////////////////////////////////////////////////

#ifndef ROOT_TGFrame
#include "TGFrame.h"
#endif
#ifndef ROOT_TGWidget
#include "TGWidget.h"
#endif

//--- Button states

enum EButtonState {
   kButtonUp,
   kButtonDown,
   kButtonEngaged,
   kButtonDisabled
};


class TGWidget;
class TGHotString;
class TGPicture;
class TGToolTip;
class TGButtonGroup;
class TGPopupMenu;
class TGTextLayout;

class TGButton : public TGFrame, public TGWidget {

friend class TGButtonGroup;

protected:
   UInt_t         fTWidth;      // button width
   UInt_t         fTHeight;     // button height
   EButtonState   fState;       // button state
   Bool_t         fStayDown;    // true if button has to stay down
   GContext_t     fNormGC;      // graphics context used for drawing button
   void          *fUserData;    // pointer to user data structure
   TGToolTip     *fTip;         // tool tip associated with button
   TGButtonGroup *fGroup;       // button group this button belongs to
   Pixel_t        fBgndColor;   // actual background color
   Pixel_t        fHighColor;   // highlight color
   UInt_t         fStyle;       // button style (modern or classic)

   virtual void   SetToggleButton(Bool_t) { }
   virtual void   EmitSignals(Bool_t wasUp);

   static const TGGC *fgDefaultGC;
   static const TGGC *fgHibckgndGC;

   static Window_t fgReleaseBtn; // the last released button

private:
   TGButton(const TGButton&);             // not implemented
   TGButton& operator=(const TGButton&);  // not implemented

public:
   static const TGGC   &GetDefaultGC();
   static const TGGC   &GetHibckgndGC();

   TGButton(const TGWindow *p = 0, Int_t id = -1, GContext_t norm = GetDefaultGC()(),
            UInt_t option = kRaisedFrame | kDoubleBorder);
   virtual ~TGButton();

   virtual Bool_t       HandleButton(Event_t *event);
   virtual Bool_t       HandleCrossing(Event_t *event);
   virtual void         SetUserData(void *userData) { fUserData = userData; }
   virtual void        *GetUserData() const { return fUserData; }
   virtual void         SetToolTipText(const char *text, Long_t delayms = 400);  //*MENU*
   virtual TGToolTip   *GetToolTip() const { return fTip; }
   virtual void         SetState(EButtonState state, Bool_t emit = kFALSE);
   virtual EButtonState GetState() const { return fState; }
   virtual void         AllowStayDown(Bool_t a) { fStayDown = a; }
   virtual void         SetGroup(TGButtonGroup *gr);
   TGButtonGroup       *GetGroup() const { return fGroup; }

   virtual Bool_t       IsDown() const;// { return !(fOptions & kRaisedFrame); }
   virtual void         SetDown(Bool_t on = kTRUE, Bool_t emit = kFALSE);
   virtual Bool_t       IsOn() const { return IsDown(); }
   virtual void         SetOn(Bool_t on = kTRUE,  Bool_t emit = kFALSE) { SetDown(on, emit); }
   virtual Bool_t       IsToggleButton() const { return kFALSE; }
   virtual Bool_t       IsExclusiveToggle() const { return kFALSE; }
   virtual void         Toggle(Bool_t emit = kFALSE) { SetDown(IsDown() ? kFALSE : kTRUE, emit); }
   virtual void         SetEnabled(Bool_t e = kTRUE); //*TOGGLE* *GETTER=IsEnabled
   virtual UInt_t       GetStyle() const { return fStyle; }
   virtual void         SetStyle(UInt_t newstyle);
   virtual void         SetStyle(const char *style);

   virtual void         SavePrimitive(std::ostream &out, Option_t *option = "");

   GContext_t GetNormGC() const { return fNormGC; }

   virtual void Pressed()  { Emit("Pressed()"); }   // *SIGNAL*
   virtual void Released() { Emit("Released()"); }  // *SIGNAL*
   virtual void Clicked()  { Emit("Clicked()"); }   // *SIGNAL*
   virtual void Toggled(Bool_t on) { Emit("Toggled(Bool_t)", on); }  // *SIGNAL*

   ClassDef(TGButton,0)  // Button widget abstract base class
};


class TGTextButton : public TGButton {

protected:
   TGHotString   *fLabel;         // button text
   Int_t          fMLeft;         // margin left
   Int_t          fMRight;        // margin right
   Int_t          fMTop;          // margin top
   Int_t          fMBottom;       // margin bottom
   Int_t          fTMode;         // text justify mode
   Int_t          fWrapLength;    // wrap length
   Int_t          fHKeycode;      // hotkey
   TGTextLayout  *fTLayout;       // text layout
   FontStruct_t   fFontStruct;    // font to draw text
   Bool_t         fHasOwnFont;    // kTRUE - font defined locally,  kFALSE - globally
   Bool_t         fStateOn;       // bit to save the state across disable/enable
   Bool_t         fPrevStateOn;   // bit to save previos state On/Off

   static const TGFont *fgDefaultFont;

   void Init();
   virtual void DoRedraw();

private:
   TGTextButton(const TGTextButton&);              // not implemented
   TGTextButton& operator=(const TGTextButton&);   // not implemented

public:
   static FontStruct_t GetDefaultFontStruct();

   TGTextButton(const TGWindow *p, TGHotString *s, Int_t id = -1,
                GContext_t norm = GetDefaultGC()(),
                FontStruct_t font = GetDefaultFontStruct(),
                UInt_t option = kRaisedFrame | kDoubleBorder);
   TGTextButton(const TGWindow *p = 0, const char *s = 0, Int_t id = -1,
                GContext_t norm = GetDefaultGC()(),
                FontStruct_t font = GetDefaultFontStruct(),
                UInt_t option = kRaisedFrame | kDoubleBorder);
   TGTextButton(const TGWindow *p, const char *s, const char *cmd,
                Int_t id = -1, GContext_t norm = GetDefaultGC()(),
                FontStruct_t font = GetDefaultFontStruct(),
                UInt_t option = kRaisedFrame | kDoubleBorder);

   virtual ~TGTextButton();

   virtual TGDimension GetDefaultSize() const;

   virtual Bool_t     HandleKey(Event_t *event);
   const TGHotString *GetText() const { return fLabel; }
   virtual const char *GetTitle() const { return fLabel->Data(); }
   TString            GetString() const { return TString(fLabel->GetString()); }
   virtual void       SetTextJustify(Int_t tmode);
   Int_t GetTextJustify() const { return fTMode; }
   virtual void       SetText(TGHotString *new_label);
   virtual void       SetText(const TString &new_label);
   virtual void       SetTitle(const char *label) { SetText(label); }
   virtual void       SetFont(FontStruct_t font, Bool_t global = kFALSE);
   virtual void       SetFont(const char *fontName, Bool_t global = kFALSE);
   virtual void       SetTextColor(Pixel_t color, Bool_t global = kFALSE);
   virtual void       SetForegroundColor(Pixel_t fore) { SetTextColor(fore); }
   Bool_t             HasOwnFont() const;
   void               SetWrapLength(Int_t wl) { fWrapLength = wl; Layout(); }
   Int_t              GetWrapLength() const { return fWrapLength; }
   void               SetMargins(Int_t left=0, Int_t right=0, Int_t top=0, Int_t bottom=0)
                        { fMLeft = left; fMRight = right; fMTop = top; fMBottom = bottom; }

   virtual void       SetLeftMargin(Int_t val)   { fMLeft = val; }
   virtual void       SetRightMargin(Int_t val)  { fMRight = val; }
   virtual void       SetTopMargin(Int_t val)    { fMTop = val; }
   virtual void       SetBottomMargin(Int_t val) { fMBottom = val; }

   Int_t              GetLeftMargin() const { return fMLeft; }
   Int_t              GetRightMargin() const { return fMRight; }
   Int_t              GetTopMargin() const { return fMTop; }
   Int_t              GetBottomMargin() const { return fMBottom; }

   void               ChangeText(const char *title)  { SetTitle(title); } //*MENU*icon=bld_rename.png*

   FontStruct_t GetFontStruct() const { return fFontStruct; }

   virtual void       Layout();
   virtual void       SavePrimitive(std::ostream &out, Option_t *option = "");

   ClassDef(TGTextButton,0)  // A text button widget
};


class TGPictureButton : public TGButton {

protected:
   const TGPicture   *fPic;            // picture to be put in button
   const TGPicture   *fPicD;           // picture shown when button disabled
   Bool_t             fOwnDisabledPic; // kTRUE if disabled picture was autogenerated

   virtual void DoRedraw();
   virtual void CreateDisabledPicture();

private:
   TGPictureButton(const TGPictureButton&);             // not implemented
   TGPictureButton& operator=(const TGPictureButton&);  // not implemented

public:
   TGPictureButton(const TGWindow *p, const TGPicture *pic, Int_t id = -1,
                   GContext_t norm = GetDefaultGC()(),
                   UInt_t option = kRaisedFrame | kDoubleBorder);
   TGPictureButton(const TGWindow *p, const TGPicture *pic, const char *cmd,
                   Int_t id = -1, GContext_t norm = GetDefaultGC()(),
                   UInt_t option = kRaisedFrame | kDoubleBorder);
   TGPictureButton(const TGWindow *p = 0, const char* pic = 0, Int_t id = -1,
                   GContext_t norm = GetDefaultGC()(),
                   UInt_t option = kRaisedFrame | kDoubleBorder);
   virtual ~TGPictureButton();

   virtual void     SetPicture(const TGPicture *new_pic);
   virtual void     SetDisabledPicture(const TGPicture *pic);
   const TGPicture *GetPicture() const { return fPic; };
   const TGPicture *GetDisabledPicture() const { return fPicD; };
   virtual void     SavePrimitive(std::ostream &out, Option_t *option = "");

   ClassDef(TGPictureButton,0)  // A picture button widget
};


class TGCheckButton : public TGTextButton {

private:

   TGCheckButton(const TGCheckButton&); // Not implemented
   TGCheckButton& operator=(const TGCheckButton&); // Not implemented

protected:
   EButtonState       fPrevState;     // previous check button state
   const TGPicture   *fOn;            // button ON picture
   const TGPicture   *fOff;           // button OFF picture
   const TGPicture   *fDisOn;         // button disabled and was ON picture
   const TGPicture   *fDisOff;        // button disabled and was OFF picture


   void Init();
   void PSetState(EButtonState state, Bool_t emit);
   virtual void DoRedraw();
   virtual void EmitSignals(Bool_t wasUp = kTRUE);

   static const TGFont *fgDefaultFont;
   static const TGGC   *fgDefaultGC;

public:
   static FontStruct_t  GetDefaultFontStruct();
   static const TGGC   &GetDefaultGC();

   TGCheckButton(const TGWindow *p, TGHotString *s, Int_t id = -1,
                 GContext_t norm = GetDefaultGC()(),
                 FontStruct_t font = GetDefaultFontStruct(),
                 UInt_t option = 0);
   TGCheckButton(const TGWindow *p = 0, const char *s = 0, Int_t id = -1,
                 GContext_t norm = GetDefaultGC()(),
                 FontStruct_t font = GetDefaultFontStruct(),
                 UInt_t option = 0);
   TGCheckButton(const TGWindow *p, const char *s, const char *cmd, Int_t id = -1,
                 GContext_t norm = GetDefaultGC()(),
                 FontStruct_t font = GetDefaultFontStruct(),
                 UInt_t option = 0);
   virtual ~TGCheckButton();

   virtual TGDimension GetDefaultSize() const;

   virtual Bool_t HandleButton(Event_t *event);
   virtual Bool_t HandleKey(Event_t *event);
   virtual Bool_t HandleCrossing(Event_t *event);
   virtual Bool_t IsToggleButton() const { return kTRUE; }
   virtual Bool_t IsOn() const { return fState == kButtonDown; }
   virtual Bool_t IsDown() const { return fState == kButtonDown; }
   virtual Bool_t IsDisabledAndSelected() const { return kButtonDisabled && fStateOn; }
   virtual void   SetDisabledAndSelected(Bool_t);
   virtual void   SetState(EButtonState state, Bool_t emit = kFALSE);
   virtual void   SavePrimitive(std::ostream &out, Option_t *option = "");

   ClassDef(TGCheckButton,0)  // A check button widget
};


class TGRadioButton : public TGTextButton {

private:
   TGRadioButton(const TGRadioButton&);
   TGRadioButton& operator=(const TGRadioButton&);

protected:
   EButtonState       fPrevState;   // previous radio button state
   const TGPicture   *fOn;          // button ON picture
   const TGPicture   *fOff;         // button OFF picture
   const TGPicture   *fDisOn;       // button disabled and was ON picture
   const TGPicture   *fDisOff;      // button disabled and was OFF picture

   void Init();
   void PSetState(EButtonState state, Bool_t emit);
   virtual void DoRedraw();
   virtual void EmitSignals(Bool_t wasUp = kTRUE);

   static const TGFont *fgDefaultFont;
   static const TGGC   *fgDefaultGC;

public:
   static FontStruct_t  GetDefaultFontStruct();
   static const TGGC   &GetDefaultGC();

   TGRadioButton(const TGWindow *p, TGHotString *s, Int_t id = -1,
                 GContext_t norm = GetDefaultGC()(),
                 FontStruct_t font = GetDefaultFontStruct(),
                 UInt_t option = 0);
   TGRadioButton(const TGWindow *p = 0, const char *s = 0, Int_t id = -1,
                 GContext_t norm = GetDefaultGC()(),
                 FontStruct_t font = GetDefaultFontStruct(),
                 UInt_t option = 0);
   TGRadioButton(const TGWindow *p, const char *s, const char *cmd, Int_t id = -1,
                 GContext_t norm = GetDefaultGC()(),
                 FontStruct_t font = GetDefaultFontStruct(),
                 UInt_t option = 0);
   virtual ~TGRadioButton();

   virtual TGDimension GetDefaultSize() const;

   virtual Bool_t HandleButton(Event_t *event);
   virtual Bool_t HandleKey(Event_t *event);
   virtual Bool_t HandleCrossing(Event_t *event);
   virtual void   SetState(EButtonState state, Bool_t emit = kFALSE);
   virtual void   SetDisabledAndSelected(Bool_t);
   virtual Bool_t IsToggleButton() const { return kTRUE; }
   virtual Bool_t IsExclusiveToggle() const { return kTRUE; }
   virtual Bool_t IsOn() const { return fStateOn; }
   virtual Bool_t IsDown() const { return fStateOn; }
   virtual Bool_t IsDisabledAndSelected() const { return kButtonDisabled && fStateOn; }
   virtual void   SavePrimitive(std::ostream &out, Option_t *option = "");

   ClassDef(TGRadioButton,0)  // A radio button widget
};


class TGSplitButton : public TGTextButton {

friend class TGPopupMenu;

private:
   TGSplitButton(const TGSplitButton&);            // Not implemented
   TGSplitButton& operator=(const TGSplitButton&); // Not implemented

   void CalcSize();
   void DrawTriangle(const GContext_t gc, Int_t x, Int_t y);
   Bool_t HandleSButton(Event_t *event);
   Bool_t HandleSCrossing(Event_t *event);
   Bool_t HandleSKey(Event_t *event);
   void SetMenuState(Bool_t state) ;

protected:
   // Data members for menu functionality
   Bool_t       fSplit;         // kTRUE if menu is in split mode
   EButtonState fMBState;       // state for menu button in split mode
   UInt_t       fTBWidth;       // width of text button
   UInt_t       fMBWidth;       // width of menu button
   TGPopupMenu *fPopMenu;       // pointer to popup menu
   Int_t        fEntryId;       // Id of the currently active menu entry
   TGHotString *fMenuLabel;     // Label of the menu;
   Cursor_t     fDefaultCursor; // Default Cursor
   Bool_t       fKeyNavigate;   // kTRUE is keynavigation is being used
   TGString     fWidestLabel;  // Longest label that can be on the button
   TGString     fHeighestLabel; // Heighest label that can be on the button

   virtual void DoRedraw();
   void Init();
   void BindKeys(Bool_t on = kTRUE);
   void BindMenuKeys(Bool_t on = kTRUE);

public:
   TGSplitButton(const TGWindow *p, TGHotString *menulabel,
                TGPopupMenu *popmenu, Bool_t split = kTRUE,
                Int_t id = -1, GContext_t norm = GetDefaultGC()(),
                FontStruct_t fontstruct = GetDefaultFontStruct(),
                UInt_t option = kRaisedFrame | kDoubleBorder);

   virtual ~TGSplitButton();

   virtual TGDimension GetDefaultSize() const ;

   virtual void   SetText(TGHotString *new_label);
   virtual void   SetText(const TString &new_label);
   virtual void   SetFont(FontStruct_t font, Bool_t global = kFALSE);
   virtual void   SetFont(const char *fontName, Bool_t global = kFALSE);
   virtual void   SetMBState(EButtonState state);
   virtual void   SetSplit(Bool_t split);
   Bool_t         IsSplit() { return fSplit; }
   virtual Bool_t HandleButton(Event_t *event);
   virtual Bool_t HandleCrossing(Event_t *event);
   virtual Bool_t HandleKey(Event_t *event);
   virtual Bool_t HandleMotion(Event_t *event);
   virtual void   Layout();

   virtual void MBPressed()  { Emit("MBPressed()"); }   // *SIGNAL*
   virtual void MBReleased() { Emit("MBReleased()"); }  // *SIGNAL*
   virtual void MBClicked()  { Emit("MBClicked()"); }   // *SIGNAL*
   virtual void ItemClicked(Int_t id) { Emit("ItemClicked(Int_t)", id); } // *SIGNAL*

   // Slots
   void HandleMenu(Int_t id) ;

   ClassDef(TGSplitButton, 0) //a split button widget
};

#endif
 TGButton.h:1
 TGButton.h:2
 TGButton.h:3
 TGButton.h:4
 TGButton.h:5
 TGButton.h:6
 TGButton.h:7
 TGButton.h:8
 TGButton.h:9
 TGButton.h:10
 TGButton.h:11
 TGButton.h:12
 TGButton.h:13
 TGButton.h:14
 TGButton.h:15
 TGButton.h:16
 TGButton.h:17
 TGButton.h:18
 TGButton.h:19
 TGButton.h:20
 TGButton.h:21
 TGButton.h:22
 TGButton.h:23
 TGButton.h:24
 TGButton.h:25
 TGButton.h:26
 TGButton.h:27
 TGButton.h:28
 TGButton.h:29
 TGButton.h:30
 TGButton.h:31
 TGButton.h:32
 TGButton.h:33
 TGButton.h:34
 TGButton.h:35
 TGButton.h:36
 TGButton.h:37
 TGButton.h:38
 TGButton.h:39
 TGButton.h:40
 TGButton.h:41
 TGButton.h:42
 TGButton.h:43
 TGButton.h:44
 TGButton.h:45
 TGButton.h:46
 TGButton.h:47
 TGButton.h:48
 TGButton.h:49
 TGButton.h:50
 TGButton.h:51
 TGButton.h:52
 TGButton.h:53
 TGButton.h:54
 TGButton.h:55
 TGButton.h:56
 TGButton.h:57
 TGButton.h:58
 TGButton.h:59
 TGButton.h:60
 TGButton.h:61
 TGButton.h:62
 TGButton.h:63
 TGButton.h:64
 TGButton.h:65
 TGButton.h:66
 TGButton.h:67
 TGButton.h:68
 TGButton.h:69
 TGButton.h:70
 TGButton.h:71
 TGButton.h:72
 TGButton.h:73
 TGButton.h:74
 TGButton.h:75
 TGButton.h:76
 TGButton.h:77
 TGButton.h:78
 TGButton.h:79
 TGButton.h:80
 TGButton.h:81
 TGButton.h:82
 TGButton.h:83
 TGButton.h:84
 TGButton.h:85
 TGButton.h:86
 TGButton.h:87
 TGButton.h:88
 TGButton.h:89
 TGButton.h:90
 TGButton.h:91
 TGButton.h:92
 TGButton.h:93
 TGButton.h:94
 TGButton.h:95
 TGButton.h:96
 TGButton.h:97
 TGButton.h:98
 TGButton.h:99
 TGButton.h:100
 TGButton.h:101
 TGButton.h:102
 TGButton.h:103
 TGButton.h:104
 TGButton.h:105
 TGButton.h:106
 TGButton.h:107
 TGButton.h:108
 TGButton.h:109
 TGButton.h:110
 TGButton.h:111
 TGButton.h:112
 TGButton.h:113
 TGButton.h:114
 TGButton.h:115
 TGButton.h:116
 TGButton.h:117
 TGButton.h:118
 TGButton.h:119
 TGButton.h:120
 TGButton.h:121
 TGButton.h:122
 TGButton.h:123
 TGButton.h:124
 TGButton.h:125
 TGButton.h:126
 TGButton.h:127
 TGButton.h:128
 TGButton.h:129
 TGButton.h:130
 TGButton.h:131
 TGButton.h:132
 TGButton.h:133
 TGButton.h:134
 TGButton.h:135
 TGButton.h:136
 TGButton.h:137
 TGButton.h:138
 TGButton.h:139
 TGButton.h:140
 TGButton.h:141
 TGButton.h:142
 TGButton.h:143
 TGButton.h:144
 TGButton.h:145
 TGButton.h:146
 TGButton.h:147
 TGButton.h:148
 TGButton.h:149
 TGButton.h:150
 TGButton.h:151
 TGButton.h:152
 TGButton.h:153
 TGButton.h:154
 TGButton.h:155
 TGButton.h:156
 TGButton.h:157
 TGButton.h:158
 TGButton.h:159
 TGButton.h:160
 TGButton.h:161
 TGButton.h:162
 TGButton.h:163
 TGButton.h:164
 TGButton.h:165
 TGButton.h:166
 TGButton.h:167
 TGButton.h:168
 TGButton.h:169
 TGButton.h:170
 TGButton.h:171
 TGButton.h:172
 TGButton.h:173
 TGButton.h:174
 TGButton.h:175
 TGButton.h:176
 TGButton.h:177
 TGButton.h:178
 TGButton.h:179
 TGButton.h:180
 TGButton.h:181
 TGButton.h:182
 TGButton.h:183
 TGButton.h:184
 TGButton.h:185
 TGButton.h:186
 TGButton.h:187
 TGButton.h:188
 TGButton.h:189
 TGButton.h:190
 TGButton.h:191
 TGButton.h:192
 TGButton.h:193
 TGButton.h:194
 TGButton.h:195
 TGButton.h:196
 TGButton.h:197
 TGButton.h:198
 TGButton.h:199
 TGButton.h:200
 TGButton.h:201
 TGButton.h:202
 TGButton.h:203
 TGButton.h:204
 TGButton.h:205
 TGButton.h:206
 TGButton.h:207
 TGButton.h:208
 TGButton.h:209
 TGButton.h:210
 TGButton.h:211
 TGButton.h:212
 TGButton.h:213
 TGButton.h:214
 TGButton.h:215
 TGButton.h:216
 TGButton.h:217
 TGButton.h:218
 TGButton.h:219
 TGButton.h:220
 TGButton.h:221
 TGButton.h:222
 TGButton.h:223
 TGButton.h:224
 TGButton.h:225
 TGButton.h:226
 TGButton.h:227
 TGButton.h:228
 TGButton.h:229
 TGButton.h:230
 TGButton.h:231
 TGButton.h:232
 TGButton.h:233
 TGButton.h:234
 TGButton.h:235
 TGButton.h:236
 TGButton.h:237
 TGButton.h:238
 TGButton.h:239
 TGButton.h:240
 TGButton.h:241
 TGButton.h:242
 TGButton.h:243
 TGButton.h:244
 TGButton.h:245
 TGButton.h:246
 TGButton.h:247
 TGButton.h:248
 TGButton.h:249
 TGButton.h:250
 TGButton.h:251
 TGButton.h:252
 TGButton.h:253
 TGButton.h:254
 TGButton.h:255
 TGButton.h:256
 TGButton.h:257
 TGButton.h:258
 TGButton.h:259
 TGButton.h:260
 TGButton.h:261
 TGButton.h:262
 TGButton.h:263
 TGButton.h:264
 TGButton.h:265
 TGButton.h:266
 TGButton.h:267
 TGButton.h:268
 TGButton.h:269
 TGButton.h:270
 TGButton.h:271
 TGButton.h:272
 TGButton.h:273
 TGButton.h:274
 TGButton.h:275
 TGButton.h:276
 TGButton.h:277
 TGButton.h:278
 TGButton.h:279
 TGButton.h:280
 TGButton.h:281
 TGButton.h:282
 TGButton.h:283
 TGButton.h:284
 TGButton.h:285
 TGButton.h:286
 TGButton.h:287
 TGButton.h:288
 TGButton.h:289
 TGButton.h:290
 TGButton.h:291
 TGButton.h:292
 TGButton.h:293
 TGButton.h:294
 TGButton.h:295
 TGButton.h:296
 TGButton.h:297
 TGButton.h:298
 TGButton.h:299
 TGButton.h:300
 TGButton.h:301
 TGButton.h:302
 TGButton.h:303
 TGButton.h:304
 TGButton.h:305
 TGButton.h:306
 TGButton.h:307
 TGButton.h:308
 TGButton.h:309
 TGButton.h:310
 TGButton.h:311
 TGButton.h:312
 TGButton.h:313
 TGButton.h:314
 TGButton.h:315
 TGButton.h:316
 TGButton.h:317
 TGButton.h:318
 TGButton.h:319
 TGButton.h:320
 TGButton.h:321
 TGButton.h:322
 TGButton.h:323
 TGButton.h:324
 TGButton.h:325
 TGButton.h:326
 TGButton.h:327
 TGButton.h:328
 TGButton.h:329
 TGButton.h:330
 TGButton.h:331
 TGButton.h:332
 TGButton.h:333
 TGButton.h:334
 TGButton.h:335
 TGButton.h:336
 TGButton.h:337
 TGButton.h:338
 TGButton.h:339
 TGButton.h:340
 TGButton.h:341
 TGButton.h:342
 TGButton.h:343
 TGButton.h:344
 TGButton.h:345
 TGButton.h:346
 TGButton.h:347
 TGButton.h:348
 TGButton.h:349
 TGButton.h:350
 TGButton.h:351
 TGButton.h:352
 TGButton.h:353
 TGButton.h:354
 TGButton.h:355
 TGButton.h:356
 TGButton.h:357
 TGButton.h:358
 TGButton.h:359
 TGButton.h:360
 TGButton.h:361
 TGButton.h:362
 TGButton.h:363
 TGButton.h:364
 TGButton.h:365
 TGButton.h:366
 TGButton.h:367
 TGButton.h:368
 TGButton.h:369
 TGButton.h:370
 TGButton.h:371
 TGButton.h:372
 TGButton.h:373
 TGButton.h:374
 TGButton.h:375
 TGButton.h:376
 TGButton.h:377
 TGButton.h:378
 TGButton.h:379
 TGButton.h:380
 TGButton.h:381
 TGButton.h:382
 TGButton.h:383
 TGButton.h:384
 TGButton.h:385
 TGButton.h:386
 TGButton.h:387
 TGButton.h:388
 TGButton.h:389
 TGButton.h:390
 TGButton.h:391
 TGButton.h:392
 TGButton.h:393
 TGButton.h:394
 TGButton.h:395
 TGButton.h:396
 TGButton.h:397
 TGButton.h:398
 TGButton.h:399
 TGButton.h:400
 TGButton.h:401
 TGButton.h:402
 TGButton.h:403
 TGButton.h:404
 TGButton.h:405
 TGButton.h:406
 TGButton.h:407
 TGButton.h:408
 TGButton.h:409
 TGButton.h:410
 TGButton.h:411
 TGButton.h:412
 TGButton.h:413
 TGButton.h:414
 TGButton.h:415
 TGButton.h:416
 TGButton.h:417
 TGButton.h:418
 TGButton.h:419
 TGButton.h:420
 TGButton.h:421
 TGButton.h:422
 TGButton.h:423
 TGButton.h:424
 TGButton.h:425
 TGButton.h:426
 TGButton.h:427
 TGButton.h:428
 TGButton.h:429
 TGButton.h:430
 TGButton.h:431
 TGButton.h:432
 TGButton.h:433
 TGButton.h:434
 TGButton.h:435
 TGButton.h:436
 TGButton.h:437
 TGButton.h:438
 TGButton.h:439
 TGButton.h:440
 TGButton.h:441
 TGButton.h:442
 TGButton.h:443
 TGButton.h:444
 TGButton.h:445
 TGButton.h:446
 TGButton.h:447
 TGButton.h:448
 TGButton.h:449
 TGButton.h:450
 TGButton.h:451
 TGButton.h:452