68 class TGButton :
public TGFrame,
public TGWidget {
70 friend class TGButtonGroup;
80 TGButtonGroup *fGroup;
85 virtual void SetToggleButton(Bool_t) { }
86 virtual void EmitSignals(Bool_t wasUp);
88 static const TGGC *fgDefaultGC;
89 static const TGGC *fgHibckgndGC;
91 static Window_t fgReleaseBtn;
94 TGButton(
const TGButton&);
95 TGButton& operator=(
const TGButton&);
98 static const TGGC &GetDefaultGC();
99 static const TGGC &GetHibckgndGC();
101 TGButton(
const TGWindow *p = 0, Int_t
id = -1, GContext_t norm = GetDefaultGC()(),
102 UInt_t option = kRaisedFrame | kDoubleBorder);
105 virtual Bool_t HandleButton(Event_t *event);
106 virtual Bool_t HandleCrossing(Event_t *event);
107 virtual void SetUserData(
void *userData) { fUserData = userData; }
108 virtual void *GetUserData()
const {
return fUserData; }
109 virtual void SetToolTipText(
const char *text, Long_t delayms = 400);
110 virtual TGToolTip *GetToolTip()
const {
return fTip; }
111 virtual void SetState(EButtonState state, Bool_t emit = kFALSE);
112 virtual EButtonState GetState()
const {
return fState; }
113 virtual void AllowStayDown(Bool_t a) { fStayDown = a; }
114 virtual void SetGroup(TGButtonGroup *gr);
115 TGButtonGroup *GetGroup()
const {
return fGroup; }
117 virtual Bool_t IsDown()
const;
118 virtual void SetDown(Bool_t on = kTRUE, Bool_t emit = kFALSE);
119 virtual Bool_t IsOn()
const {
return IsDown(); }
120 virtual void SetOn(Bool_t on = kTRUE, Bool_t emit = kFALSE) { SetDown(on, emit); }
121 virtual Bool_t IsToggleButton()
const {
return kFALSE; }
122 virtual Bool_t IsExclusiveToggle()
const {
return kFALSE; }
123 virtual void Toggle(Bool_t emit = kFALSE) { SetDown(IsDown() ? kFALSE : kTRUE, emit); }
124 virtual void SetEnabled(Bool_t e = kTRUE);
125 virtual UInt_t GetStyle()
const {
return fStyle; }
126 virtual void SetStyle(UInt_t newstyle);
127 virtual void SetStyle(
const char *style);
129 virtual void SavePrimitive(std::ostream &out, Option_t *option =
"");
131 GContext_t GetNormGC()
const {
return fNormGC; }
133 virtual void Pressed() { Emit(
"Pressed()"); }
134 virtual void Released() { Emit(
"Released()"); }
135 virtual void Clicked() { Emit(
"Clicked()"); }
136 virtual void Toggled(Bool_t on) { Emit(
"Toggled(Bool_t)", on); }
142 class TGTextButton :
public TGButton {
153 TGTextLayout *fTLayout;
154 FontStruct_t fFontStruct;
159 static const TGFont *fgDefaultFont;
162 virtual void DoRedraw();
165 TGTextButton(
const TGTextButton&);
166 TGTextButton& operator=(
const TGTextButton&);
169 static FontStruct_t GetDefaultFontStruct();
171 TGTextButton(
const TGWindow *p, TGHotString *s, Int_t
id = -1,
172 GContext_t norm = GetDefaultGC()(),
173 FontStruct_t font = GetDefaultFontStruct(),
174 UInt_t option = kRaisedFrame | kDoubleBorder);
175 TGTextButton(
const TGWindow *p = 0,
const char *s = 0, Int_t
id = -1,
176 GContext_t norm = GetDefaultGC()(),
177 FontStruct_t font = GetDefaultFontStruct(),
178 UInt_t option = kRaisedFrame | kDoubleBorder);
179 TGTextButton(
const TGWindow *p,
const char *s,
const char *cmd,
180 Int_t
id = -1, GContext_t norm = GetDefaultGC()(),
181 FontStruct_t font = GetDefaultFontStruct(),
182 UInt_t option = kRaisedFrame | kDoubleBorder);
184 virtual ~TGTextButton();
186 virtual TGDimension GetDefaultSize()
const;
188 virtual Bool_t HandleKey(Event_t *event);
189 const TGHotString *GetText()
const {
return fLabel; }
190 virtual const char *GetTitle()
const {
return fLabel->Data(); }
191 TString GetString()
const {
return TString(fLabel->GetString()); }
192 virtual void SetTextJustify(Int_t tmode);
193 Int_t GetTextJustify()
const {
return fTMode; }
194 virtual void SetText(TGHotString *new_label);
195 virtual void SetText(
const TString &new_label);
196 virtual void SetTitle(
const char *label) { SetText(label); }
197 virtual void SetFont(FontStruct_t font, Bool_t global = kFALSE);
198 virtual void SetFont(
const char *fontName, Bool_t global = kFALSE);
199 virtual void SetTextColor(Pixel_t color, Bool_t global = kFALSE);
200 virtual void SetForegroundColor(Pixel_t fore) { SetTextColor(fore); }
201 Bool_t HasOwnFont()
const;
202 void SetWrapLength(Int_t wl) { fWrapLength = wl; Layout(); }
203 Int_t GetWrapLength()
const {
return fWrapLength; }
204 void SetMargins(Int_t left=0, Int_t right=0, Int_t top=0, Int_t bottom=0)
205 { fMLeft = left; fMRight = right; fMTop = top; fMBottom = bottom; }
207 virtual void SetLeftMargin(Int_t val) { fMLeft = val; }
208 virtual void SetRightMargin(Int_t val) { fMRight = val; }
209 virtual void SetTopMargin(Int_t val) { fMTop = val; }
210 virtual void SetBottomMargin(Int_t val) { fMBottom = val; }
212 Int_t GetLeftMargin()
const {
return fMLeft; }
213 Int_t GetRightMargin()
const {
return fMRight; }
214 Int_t GetTopMargin()
const {
return fMTop; }
215 Int_t GetBottomMargin()
const {
return fMBottom; }
217 void ChangeText(
const char *title) { SetTitle(title); }
219 FontStruct_t GetFontStruct()
const {
return fFontStruct; }
221 virtual void Layout();
222 virtual void SavePrimitive(std::ostream &out, Option_t *option =
"");
224 ClassDef(TGTextButton,0)
228 class TGPictureButton :
public TGButton {
231 const TGPicture *fPic;
232 const TGPicture *fPicD;
233 Bool_t fOwnDisabledPic;
235 virtual void DoRedraw();
236 virtual void CreateDisabledPicture();
239 TGPictureButton(
const TGPictureButton&);
240 TGPictureButton& operator=(
const TGPictureButton&);
243 TGPictureButton(
const TGWindow *p,
const TGPicture *pic, Int_t
id = -1,
244 GContext_t norm = GetDefaultGC()(),
245 UInt_t option = kRaisedFrame | kDoubleBorder);
246 TGPictureButton(
const TGWindow *p,
const TGPicture *pic,
const char *cmd,
247 Int_t
id = -1, GContext_t norm = GetDefaultGC()(),
248 UInt_t option = kRaisedFrame | kDoubleBorder);
249 TGPictureButton(
const TGWindow *p = 0,
const char* pic = 0, Int_t
id = -1,
250 GContext_t norm = GetDefaultGC()(),
251 UInt_t option = kRaisedFrame | kDoubleBorder);
252 virtual ~TGPictureButton();
254 virtual void SetPicture(
const TGPicture *new_pic);
255 virtual void SetDisabledPicture(
const TGPicture *pic);
256 const TGPicture *GetPicture()
const {
return fPic; };
257 const TGPicture *GetDisabledPicture()
const {
return fPicD; };
258 virtual void SavePrimitive(std::ostream &out, Option_t *option =
"");
260 ClassDef(TGPictureButton,0)
264 class TGCheckButton :
public TGTextButton {
268 TGCheckButton(
const TGCheckButton&);
269 TGCheckButton& operator=(
const TGCheckButton&);
272 EButtonState fPrevState;
273 const TGPicture *fOn;
274 const TGPicture *fOff;
275 const TGPicture *fDisOn;
276 const TGPicture *fDisOff;
280 void PSetState(EButtonState state, Bool_t emit);
281 virtual void DoRedraw();
282 virtual void EmitSignals(Bool_t wasUp = kTRUE);
284 static const TGFont *fgDefaultFont;
285 static const TGGC *fgDefaultGC;
288 static FontStruct_t GetDefaultFontStruct();
289 static const TGGC &GetDefaultGC();
291 TGCheckButton(
const TGWindow *p, TGHotString *s, Int_t
id = -1,
292 GContext_t norm = GetDefaultGC()(),
293 FontStruct_t font = GetDefaultFontStruct(),
295 TGCheckButton(
const TGWindow *p = 0,
const char *s = 0, Int_t
id = -1,
296 GContext_t norm = GetDefaultGC()(),
297 FontStruct_t font = GetDefaultFontStruct(),
299 TGCheckButton(
const TGWindow *p,
const char *s,
const char *cmd, Int_t
id = -1,
300 GContext_t norm = GetDefaultGC()(),
301 FontStruct_t font = GetDefaultFontStruct(),
303 virtual ~TGCheckButton();
305 virtual TGDimension GetDefaultSize()
const;
307 virtual Bool_t HandleButton(Event_t *event);
308 virtual Bool_t HandleKey(Event_t *event);
309 virtual Bool_t HandleCrossing(Event_t *event);
310 virtual Bool_t IsToggleButton()
const {
return kTRUE; }
311 virtual Bool_t IsOn()
const {
return fState == kButtonDown; }
312 virtual Bool_t IsDown()
const {
return fState == kButtonDown; }
313 virtual Bool_t IsDisabledAndSelected()
const {
return ((fState == kButtonDisabled) && fStateOn); }
314 virtual void SetDisabledAndSelected(Bool_t);
315 virtual void SetState(EButtonState state, Bool_t emit = kFALSE);
316 virtual void SavePrimitive(std::ostream &out, Option_t *option =
"");
318 ClassDef(TGCheckButton,0)
322 class TGRadioButton :
public TGTextButton {
325 TGRadioButton(
const TGRadioButton&);
326 TGRadioButton& operator=(
const TGRadioButton&);
329 EButtonState fPrevState;
330 const TGPicture *fOn;
331 const TGPicture *fOff;
332 const TGPicture *fDisOn;
333 const TGPicture *fDisOff;
336 void PSetState(EButtonState state, Bool_t emit);
337 virtual void DoRedraw();
338 virtual void EmitSignals(Bool_t wasUp = kTRUE);
340 static const TGFont *fgDefaultFont;
341 static const TGGC *fgDefaultGC;
344 static FontStruct_t GetDefaultFontStruct();
345 static const TGGC &GetDefaultGC();
347 TGRadioButton(
const TGWindow *p, TGHotString *s, Int_t
id = -1,
348 GContext_t norm = GetDefaultGC()(),
349 FontStruct_t font = GetDefaultFontStruct(),
351 TGRadioButton(
const TGWindow *p = 0,
const char *s = 0, Int_t
id = -1,
352 GContext_t norm = GetDefaultGC()(),
353 FontStruct_t font = GetDefaultFontStruct(),
355 TGRadioButton(
const TGWindow *p,
const char *s,
const char *cmd, Int_t
id = -1,
356 GContext_t norm = GetDefaultGC()(),
357 FontStruct_t font = GetDefaultFontStruct(),
359 virtual ~TGRadioButton();
361 virtual TGDimension GetDefaultSize()
const;
363 virtual Bool_t HandleButton(Event_t *event);
364 virtual Bool_t HandleKey(Event_t *event);
365 virtual Bool_t HandleCrossing(Event_t *event);
366 virtual void SetState(EButtonState state, Bool_t emit = kFALSE);
367 virtual void SetDisabledAndSelected(Bool_t);
368 virtual Bool_t IsToggleButton()
const {
return kTRUE; }
369 virtual Bool_t IsExclusiveToggle()
const {
return kTRUE; }
370 virtual Bool_t IsOn()
const {
return fStateOn; }
371 virtual Bool_t IsDown()
const {
return fStateOn; }
372 virtual Bool_t IsDisabledAndSelected()
const {
return ((fState == kButtonDisabled) && fStateOn); }
373 virtual void SavePrimitive(std::ostream &out, Option_t *option =
"");
375 ClassDef(TGRadioButton,0)
379 class TGSplitButton :
public TGTextButton {
381 friend class TGPopupMenu;
384 TGSplitButton(
const TGSplitButton&);
385 TGSplitButton& operator=(
const TGSplitButton&);
388 void DrawTriangle(
const GContext_t gc, Int_t x, Int_t y);
389 Bool_t HandleSButton(Event_t *event);
390 Bool_t HandleSCrossing(Event_t *event);
391 Bool_t HandleSKey(Event_t *event);
392 void SetMenuState(Bool_t state) ;
397 EButtonState fMBState;
400 TGPopupMenu *fPopMenu;
402 TGHotString *fMenuLabel;
403 Cursor_t fDefaultCursor;
405 TGString fWidestLabel;
406 TGString fHeighestLabel;
408 virtual void DoRedraw();
410 void BindKeys(Bool_t on = kTRUE);
411 void BindMenuKeys(Bool_t on = kTRUE);
414 TGSplitButton(
const TGWindow *p, TGHotString *menulabel,
415 TGPopupMenu *popmenu, Bool_t split = kTRUE,
416 Int_t
id = -1, GContext_t norm = GetDefaultGC()(),
417 FontStruct_t fontstruct = GetDefaultFontStruct(),
418 UInt_t option = kRaisedFrame | kDoubleBorder);
420 virtual ~TGSplitButton();
422 virtual TGDimension GetDefaultSize()
const ;
424 virtual void SetText(TGHotString *new_label);
425 virtual void SetText(
const TString &new_label);
426 virtual void SetFont(FontStruct_t font, Bool_t global = kFALSE);
427 virtual void SetFont(
const char *fontName, Bool_t global = kFALSE);
428 virtual void SetMBState(EButtonState state);
429 virtual void SetSplit(Bool_t split);
430 Bool_t IsSplit() {
return fSplit; }
431 virtual Bool_t HandleButton(Event_t *event);
432 virtual Bool_t HandleCrossing(Event_t *event);
433 virtual Bool_t HandleKey(Event_t *event);
434 virtual Bool_t HandleMotion(Event_t *event);
435 virtual void Layout();
437 virtual void MBPressed() { Emit(
"MBPressed()"); }
438 virtual void MBReleased() { Emit(
"MBReleased()"); }
439 virtual void MBClicked() { Emit(
"MBClicked()"); }
440 virtual void ItemClicked(Int_t
id) { Emit(
"ItemClicked(Int_t)",
id); }
443 void HandleMenu(Int_t
id) ;
445 ClassDef(TGSplitButton, 0)