Logo ROOT   6.18/05
Reference Guide
TGSplitter.cxx
Go to the documentation of this file.
1// @(#)root/gui:$Id$
2// Author: Fons Rademakers 6/09/2000
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//////////////////////////////////////////////////////////////////////////
13// //
14// TGSplitter, TGVSplitter and TGHSplitter //
15// //
16// A splitter allows the frames left and right or above and below of //
17// it to be resized. The frame to be resized must have the kFixedWidth //
18// or kFixedHeight property set. //
19// //
20//////////////////////////////////////////////////////////////////////////
21
22#include "TGSplitter.h"
23#include "TGPicture.h"
24#include "Riostream.h"
25
26
31
32
33////////////////////////////////////////////////////////////////////////////////
34/// Create a splitter.
35
37 UInt_t options, ULong_t back) :
38 TGFrame(p, w, h, options, back),
39 fDragging (kFALSE),
40 fExternalHandler (kFALSE),
41 fSplitterPic (0)
42{
45}
46
47////////////////////////////////////////////////////////////////////////////////
48/// Emit DragStarted signal.
49
51{
52 Emit("DragStarted()");
53}
54
55////////////////////////////////////////////////////////////////////////////////
56/// Emit Moved signal.
57
59{
60 Emit("Moved(Int_t)", delta);
61}
62
63////////////////////////////////////////////////////////////////////////////////
64/// Create a vertical splitter.
65
67 UInt_t options, ULong_t back) : TGSplitter(p, w, h, options, back)
68{
70 fSplitterPic = fClient->GetPicture("splitterv.xpm");
72 fFrameWidth = w;
73 fLeft = kTRUE;
74 fMax = fMin = 0;
75 fStartX = 0;
76 fFrame = 0;
77
78 if (!fSplitterPic)
79 Error("TGVSplitter", "splitterv.xpm not found");
80
81 if (p && !p->InheritsFrom(TGCompositeFrame::Class())) {
82 Error("TGVSplitter", "parent must inherit from a TGCompositeFrame");
83 return;
84 }
85 if (p && !(((TGCompositeFrame*)p)->GetOptions() & kHorizontalFrame)) {
86 Error("TGVSplitter", "parent must have a horizontal layout manager");
87 return;
88 }
89
90 fSplitCursor = gVirtualX->CreateCursor(kArrowHor);
91
95
97}
98
99////////////////////////////////////////////////////////////////////////////////
100/// Create a vertical splitter.
101
103 TGSplitter(p, w, h, kChildFrame, GetDefaultFrameBackground())
104{
105 fExternalHandler = external;
106
108 fSplitterPic = fClient->GetPicture("splitterv.xpm");
109
110 if (!fSplitterPic)
111 Error("TGVSplitter", "splitterv.xpm not found");
112
113 fSplitCursor = gVirtualX->CreateCursor(kArrowHor);
114 fFrame = 0;
115 fFrameHeight = h;
116 fFrameWidth = w;
117 fLeft = kTRUE;
118 fMax = fMin = 0;
119 fStartX = 0;
120
121 gVirtualX->GrabButton(fId, kAnyButton, kAnyModifier,
124
126}
127
128////////////////////////////////////////////////////////////////////////////////
129/// Delete vertical splitter widget.
130
132{
134}
135
136////////////////////////////////////////////////////////////////////////////////
137/// Set frame to be resized. If frame is on the left of the splitter
138/// set left to true.
139
141{
142 fFrame = frame;
143 fLeft = left;
144
146 Error("SetFrame", "resize frame must have kFixedWidth option set");
147}
148
149////////////////////////////////////////////////////////////////////////////////
150/// Handle mouse button event in vertical splitter.
151
153{
154 if (fSplitCursor == kNone) return kTRUE;
155
156 if (!fExternalHandler && !fFrame) {
157 Error("HandleButton", "frame to be resized not set");
158 return kTRUE;
159 }
160
161 if (event->fType == kButtonPress) {
162 fStartX = event->fXRoot;
164
165 if (fExternalHandler) {
166 fMin = 0;
167 fMax = 99999;
168 DragStarted();
169 } else {
170 Int_t x, y;
171 gVirtualX->GetWindowSize(fFrame->GetId(), x, y, fFrameWidth, fFrameHeight);
172
173 // get fMin and fMax in root coordinates
174 Int_t xroot, yroot;
175 UInt_t w, h;
176 Window_t wdum;
177 gVirtualX->GetWindowSize(fParent->GetId(), x, y, w, h);
178 gVirtualX->TranslateCoordinates(fParent->GetParent()->GetId(),
180 x, y, xroot, yroot, wdum);
181 fMin = xroot;
182 fMax = xroot + w - 2;
183 }
184
185 // last argument kFALSE forces all specified events to this window
188 kTRUE, kFALSE);
189 } else {
191 gVirtualX->GrabPointer(0, 0, 0, 0, kFALSE); // ungrab pointer
192 }
193 return kTRUE;
194}
195
196////////////////////////////////////////////////////////////////////////////////
197/// Handle mouse motion event in vertical splitter.
198
200{
201 if (fDragging) {
202 Int_t xr = event->fXRoot;
203 if (xr > fMax) xr = fMax;
204 if (xr < fMin) xr = fMin;
205 Int_t delta = xr - fStartX;
206 if (fExternalHandler) {
207 if (delta != 0) {
208 Moved(delta);
209 fStartX = xr;
210 }
211 } else {
212 Int_t w = (Int_t) fFrameWidth;
213 if (fLeft)
214 w += delta;
215 else
216 w -= delta;
217 if (w < 0) w = 0;
218 fStartX = xr;
219
220 if (delta != 0) {
221 fFrameWidth = w;
223
225 p->Layout();
226 }
227 }
228 }
229 return kTRUE;
230}
231
232////////////////////////////////////////////////////////////////////////////////
233/// Handle mouse motion event in vertical splitter.
234
236{
237 if (event->fType == kEnterNotify)
238 gVirtualX->SetCursor(fId, fSplitCursor);
239 else
240 gVirtualX->SetCursor(fId, kNone);
241
242 return kTRUE;
243}
244
245////////////////////////////////////////////////////////////////////////////////
246/// Draw vertical splitter.
247
249{
250 if (fSplitterPic) {
251 Int_t posx = (fWidth/2)-(fSplitterPic->GetWidth()/2);
252 Int_t posy = (fHeight/2)-(fSplitterPic->GetHeight()/2);
253 fSplitterPic->Draw(fId, GetBckgndGC()(), posx, posy);
254 }
255}
256
257
258////////////////////////////////////////////////////////////////////////////////
259/// Create a horizontal splitter.
260
262 UInt_t options, ULong_t back) : TGSplitter(p, w, h, options, back)
263{
265 fSplitterPic = 0;
266 fSplitCursor = 0;
267 fFrame = 0;
268 fFrameHeight = h;
269 fFrameWidth = w;
270 fAbove = kTRUE;
271 fMax = fMin = 0;
272 fStartY = 0;
273
274 if (p && !p->InheritsFrom(TGCompositeFrame::Class())) {
275 Error("TGHSplitter", "parent must inherit from a TGCompositeFrame");
276 return;
277 }
278 if (p && !(((TGCompositeFrame*)p)->GetOptions() & kVerticalFrame)) {
279 Error("TGHSplitter", "parent must have a vertical layout manager");
280 return;
281 }
282
283 fSplitterPic = fClient->GetPicture("splitterh.xpm");
284
285 if (!fSplitterPic)
286 Error("TGHSplitter", "splitterh.xpm not found");
287
288 fSplitCursor = gVirtualX->CreateCursor(kArrowVer);
289
290 gVirtualX->GrabButton(fId, kAnyButton, kAnyModifier,
293
295}
296
297////////////////////////////////////////////////////////////////////////////////
298/// Create a horizontal splitter.
299
301 TGSplitter(p, w, h, kChildFrame, GetDefaultFrameBackground())
302{
303 fExternalHandler = external;
304
306
307 fSplitterPic = fClient->GetPicture("splitterh.xpm");
308
309 if (!fSplitterPic)
310 Error("TGHSplitter", "splitterh.xpm not found");
311
312 fSplitCursor = gVirtualX->CreateCursor(kArrowVer);
313 fFrame = 0;
314 fFrameHeight = h;
315 fFrameWidth = w;
316 fAbove = kTRUE;
317 fMax = fMin = 0;
318 fStartY = 0;
319
320 gVirtualX->GrabButton(fId, kAnyButton, kAnyModifier,
323
325}
326
327////////////////////////////////////////////////////////////////////////////////
328/// Delete horizontal splitter widget.
329
331{
333}
334
335////////////////////////////////////////////////////////////////////////////////
336/// Set frame to be resized. If frame is above the splitter
337/// set above to true.
338
340{
341 fFrame = frame;
342 fAbove = above;
343
345 Error("SetFrame", "resize frame must have kFixedHeight option set");
346}
347
348////////////////////////////////////////////////////////////////////////////////
349/// Handle mouse button event in horizontal splitter.
350
352{
353 if (fSplitCursor == kNone) return kTRUE;
354
355 if (!fExternalHandler && !fFrame) {
356 Error("HandleButton", "frame to be resized not set");
357 return kTRUE;
358 }
359
360 if (event->fType == kButtonPress) {
361 fStartY = event->fYRoot;
363
364 if (fExternalHandler) {
365 fMin = 0;
366 fMax = 99999;
367 DragStarted();
368 } else {
369 Int_t x, y;
370 gVirtualX->GetWindowSize(fFrame->GetId(), x, y, fFrameWidth, fFrameHeight);
371
372 // get fMin and fMax in root coordinates
373 Int_t xroot, yroot;
374 UInt_t w, h;
375 Window_t wdum;
376 gVirtualX->GetWindowSize(fParent->GetId(), x, y, w, h);
377 gVirtualX->TranslateCoordinates(fParent->GetParent()->GetId(),
379 x, y, xroot, yroot, wdum);
380 fMin = yroot;
381 fMax = yroot + h - 2;
382 }
383
384 // last argument kFALSE forces all specified events to this window
387 kTRUE, kFALSE);
388 } else {
390 gVirtualX->GrabPointer(0, 0, 0, 0, kFALSE); // ungrab pointer
391 }
392 return kTRUE;
393}
394
395////////////////////////////////////////////////////////////////////////////////
396/// Handle mouse motion event in horizontal splitter.
397
399{
400 if (fDragging) {
401 Int_t yr = event->fYRoot;
402 if (yr > fMax) yr = fMax;
403 if (yr < fMin) yr = fMin;
404 Int_t delta = yr - fStartY;
405 if (fExternalHandler) {
406 if (delta != 0) {
407 Moved(delta);
408 fStartY = yr;
409 }
410 } else {
412 if (fAbove)
413 h += delta;
414 else
415 h -= delta;
416 if (h < 0) h = 0;
417 fStartY = yr;
418
419 if (delta != 0) {
420 fFrameHeight = h;
422
424 p->Layout();
425 }
426 }
427 }
428 return kTRUE;
429}
430
431////////////////////////////////////////////////////////////////////////////////
432/// Handle mouse motion event in horizontal splitter.
433
435{
436 if (event->fType == kEnterNotify)
437 gVirtualX->SetCursor(fId, fSplitCursor);
438 else
439 gVirtualX->SetCursor(fId, kNone);
440
441 return kTRUE;
442}
443
444////////////////////////////////////////////////////////////////////////////////
445/// Draw horizontal splitter.
446
448{
449 if (fSplitterPic) {
450 Int_t posx = (fWidth/2)-(fSplitterPic->GetWidth()/2);
451 Int_t posy = (fHeight/2)-(fSplitterPic->GetHeight()/2);
452 fSplitterPic->Draw(fId, GetBckgndGC()(), posx, posy);
453 }
454}
455
456////////////////////////////////////////////////////////////////////////////////
457/// fSplitterPic = fClient->GetPicture("filesplitterv.xpm");
458
460 UInt_t options, Pixel_t back):
461 TGVSplitter(p, w, h, options, back)
462{
463// if (!fSplitterPic)
464// Error("TGVFileSplitter", "filesplitterv.xpm not found");
465}
466
467////////////////////////////////////////////////////////////////////////////////
468/// if (fSplitterPic) fClient->FreePicture(fSplitterPic);
469
471{
472}
473
474////////////////////////////////////////////////////////////////////////////////
475/// Handle mouse motion event in vertical splitter.
476
478{
479 fMin = 30;
480
481 if (fDragging) {
482 Int_t xr = event->fXRoot;
483 if (xr > fMax) xr = fMax;
484 if (xr < fMin) xr = fMin;
485 Int_t delta = xr - fStartX;
486 Int_t w = (Int_t) fFrameWidth;
487 if (fLeft)
488 w += delta;
489 else
490 w -= delta;
491
492 if (w < 0) w = 0;
493 fStartX = xr;
494
495 if (delta != 0) {
496 delta = w - fFrameWidth;
497 fFrameWidth = w;
498
500 p->Resize( p->GetWidth() + delta, p->GetHeight() );
501
503
504 p->Layout();
506 }
507 }
508 return kTRUE;
509}
510
511////////////////////////////////////////////////////////////////////////////////
512/// Handle mouse button event in vertical splitter.
513
515{
516 if ( event->fType == kButtonPress) {
518 } else if ( event->fType == kButtonRelease) {
519 LayoutHeader(0);
522 } else if ( event->fType == kButtonDoubleClick ) {
523 DoubleClicked(this);
524 }
525 return TGVSplitter::HandleButton(event);
526}
527
528////////////////////////////////////////////////////////////////////////////////
529/// Emit LayoutFeader() signal.
530
532{
533 Emit("LayoutHeader(TGFrame*)", (Long_t)f);
534}
535
536////////////////////////////////////////////////////////////////////////////////
537/// Emit LayoutListView() signal.
538
540{
541 Emit("LayoutListView()");
542}
543
544////////////////////////////////////////////////////////////////////////////////
545/// Emit ButtonPressed() signal.
546
548{
549 Emit("ButtonPressed()");
550}
551
552////////////////////////////////////////////////////////////////////////////////
553/// Emit ButtonReleased() signal.
554
556{
557 Emit("ButtonReleased()");
558}
559
560////////////////////////////////////////////////////////////////////////////////
561/// Emit DoubleClicked() signal.
562
564{
565 Emit("DoubleClicked(TGVFileSplitter*)", (Long_t) splitter);
566}
567
568////////////////////////////////////////////////////////////////////////////////
569/// Handle double click mouse event in splitter.
570
572{
573 DoubleClicked(this);
574 return kTRUE;
575}
576
577////////////////////////////////////////////////////////////////////////////////
578/// Save a splitter widget as a C++ statement(s) on output stream out.
579
580void TGVSplitter::SavePrimitive(std::ostream &out, Option_t *option /*= ""*/)
581{
583
584 out << " TGVSplitter *";
585 out << GetName() <<" = new TGVSplitter("<< fParent->GetName()
586 << "," << GetWidth() << "," << GetHeight();
587
589 if (!GetOptions()) {
590 out <<");" << std::endl;
591 } else {
592 out << "," << GetOptionString() <<");" << std::endl;
593 }
594 } else {
595 out << "," << GetOptionString() << ",ucolor);" << std::endl;
596 }
597 if (option && strstr(option, "keep_names"))
598 out << " " << GetName() << "->SetName(\"" << GetName() << "\");" << std::endl;
599 // TGVSplitter->SetFrame( theframe ) can only be saved here
600 // if fFrame is the frame on the left (since the frame on the
601 // right will only be saved afterwards)... The other case is
602 // handled in TGCompositeFrame::SavePrimitiveSubframes()
603 if (GetLeft()) {
604 out << " " << GetName() << "->SetFrame(" << GetFrame()->GetName();
605 if (GetLeft()) out << ",kTRUE);" << std::endl;
606 else out << ",kFALSE);"<< std::endl;
607 }
608}
609
610////////////////////////////////////////////////////////////////////////////////
611/// Save a splitter widget as a C++ statement(s) on output stream out.
612
613void TGHSplitter::SavePrimitive(std::ostream &out, Option_t *option /*= ""*/)
614{
616
617 out << " TGHSplitter *";
618 out << GetName() <<" = new TGHSplitter("<< fParent->GetName()
619 << "," << GetWidth() << "," << GetHeight();
620
622 if (!GetOptions()) {
623 out <<");" << std::endl;
624 } else {
625 out << "," << GetOptionString() <<");" << std::endl;
626 }
627 } else {
628 out << "," << GetOptionString() << ",ucolor);" << std::endl;
629 }
630 if (option && strstr(option, "keep_names"))
631 out << " " << GetName() << "->SetName(\"" << GetName() << "\");" << std::endl;
632 // TGHSplitter->SetFrame( theframe ) can only be saved here
633 // if fFrame is the frame above (since the frame below will
634 // only be saved afterwards)... The other case is handled in
635 // TGCompositeFrame::SavePrimitiveSubframes()
636 if (GetAbove()) {
637 out << " " << GetName() << "->SetFrame(" << GetFrame()->GetName();
638 if (GetAbove()) out << ",kTRUE);" << std::endl;
639 else out << ",kFALSE);"<< std::endl;
640 }
641}
642
643////////////////////////////////////////////////////////////////////////////////
644/// Save a splitter widget as a C++ statement(s) on output stream out.
645
646void TGVFileSplitter::SavePrimitive(std::ostream &out, Option_t *option /*= ""*/)
647{
649
650 out << " TGVFileSplitter *";
651 out << GetName() <<" = new TGVFileSplitter("<< fParent->GetName()
652 << "," << GetWidth() << "," << GetHeight();
653
655 if (!GetOptions()) {
656 out <<");" << std::endl;
657 } else {
658 out << "," << GetOptionString() <<");" << std::endl;
659 }
660 } else {
661 out << "," << GetOptionString() << ",ucolor);" << std::endl;
662 }
663 if (option && strstr(option, "keep_names"))
664 out << " " << GetName() << "->SetName(\"" << GetName() << "\");" << std::endl;
665
666 out << " " << GetName() << "->SetFrame(" << GetFrame()->GetName();
667 if (GetLeft()) out << ",kTRUE);" << std::endl;
668 else out << ",kFALSE);"<< std::endl;
669}
670
void Class()
Definition: Class.C:29
@ kButtonRelease
Definition: GuiTypes.h:59
@ kButtonPress
Definition: GuiTypes.h:59
@ kButtonDoubleClick
Definition: GuiTypes.h:63
@ kEnterNotify
Definition: GuiTypes.h:60
const Mask_t kButtonPressMask
Definition: GuiTypes.h:160
const Mask_t kAnyModifier
Definition: GuiTypes.h:209
const Mask_t kPointerMotionMask
Definition: GuiTypes.h:162
const Handle_t kNone
Definition: GuiTypes.h:87
const Mask_t kLeaveWindowMask
Definition: GuiTypes.h:167
const Mask_t kButtonReleaseMask
Definition: GuiTypes.h:161
const Mask_t kEnterWindowMask
Definition: GuiTypes.h:166
ULong_t Pixel_t
Definition: GuiTypes.h:39
@ kAnyButton
Definition: GuiTypes.h:213
Handle_t Window_t
Definition: GuiTypes.h:28
#define f(i)
Definition: RSha256.hxx:104
#define h(i)
Definition: RSha256.hxx:106
int Int_t
Definition: RtypesCore.h:41
unsigned int UInt_t
Definition: RtypesCore.h:42
const Bool_t kFALSE
Definition: RtypesCore.h:88
unsigned long ULong_t
Definition: RtypesCore.h:51
long Long_t
Definition: RtypesCore.h:50
bool Bool_t
Definition: RtypesCore.h:59
const Bool_t kTRUE
Definition: RtypesCore.h:87
const char Option_t
Definition: RtypesCore.h:62
#define ClassImp(name)
Definition: Rtypes.h:365
@ kChildFrame
Definition: TGFrame.h:57
@ kVerticalFrame
Definition: TGFrame.h:59
@ kFixedWidth
Definition: TGFrame.h:65
@ kHorizontalFrame
Definition: TGFrame.h:60
@ kFixedHeight
Definition: TGFrame.h:67
#define gVirtualX
Definition: TVirtualX.h:345
@ kArrowVer
Definition: TVirtualX.h:46
@ kArrowHor
Definition: TVirtualX.h:46
const TGWindow * GetDefaultRoot() const
Returns the root (i.e.
Definition: TGClient.cxx:234
const TGPicture * GetPicture(const char *name)
Get picture from the picture pool.
Definition: TGClient.cxx:289
void FreePicture(const TGPicture *pic)
Free picture resource.
Definition: TGClient.cxx:308
virtual void Layout()
Layout the elements of the composite frame.
Definition: TGFrame.cxx:1239
void AddInput(UInt_t emask)
Add events specified in the emask to the events the frame should handle.
Definition: TGFrame.cxx:321
UInt_t fHeight
Definition: TGFrame.h:135
static Pixel_t GetDefaultFrameBackground()
Get default frame background.
Definition: TGFrame.cxx:665
virtual UInt_t GetOptions() const
Definition: TGFrame.h:244
TString GetOptionString() const
Returns a frame option string - used in SavePrimitive().
Definition: TGFrame.cxx:2460
virtual void Resize(UInt_t w=0, UInt_t h=0)
Resize the frame.
Definition: TGFrame.cxx:587
UInt_t fWidth
Definition: TGFrame.h:134
UInt_t GetHeight() const
Definition: TGFrame.h:272
UInt_t GetWidth() const
Definition: TGFrame.h:271
void SaveUserColor(std::ostream &out, Option_t *)
Save a user color in a C++ macro file - used in SavePrimitive().
Definition: TGFrame.cxx:2433
Pixel_t fBackground
Definition: TGFrame.h:142
static const TGGC & GetBckgndGC()
Get background color graphics context.
Definition: TGFrame.cxx:757
virtual void SavePrimitive(std::ostream &out, Option_t *option="")
Save a splitter widget as a C++ statement(s) on output stream out.
Definition: TGSplitter.cxx:613
const TGFrame * GetFrame() const
Definition: TGSplitter.h:124
UInt_t fFrameHeight
Definition: TGSplitter.h:109
virtual void SetFrame(TGFrame *frame, Bool_t above)
Set frame to be resized.
Definition: TGSplitter.cxx:339
virtual void DrawBorder()
Draw horizontal splitter.
Definition: TGSplitter.cxx:447
TGHSplitter(const TGHSplitter &)
TGFrame * fFrame
Definition: TGSplitter.h:112
Bool_t GetAbove() const
Definition: TGSplitter.h:125
Bool_t fAbove
Definition: TGSplitter.h:113
Int_t fStartY
Definition: TGSplitter.h:107
Int_t fMin
Definition: TGSplitter.h:110
virtual Bool_t HandleCrossing(Event_t *event)
Handle mouse motion event in horizontal splitter.
Definition: TGSplitter.cxx:434
virtual ~TGHSplitter()
Delete horizontal splitter widget.
Definition: TGSplitter.cxx:330
virtual Bool_t HandleButton(Event_t *event)
Handle mouse button event in horizontal splitter.
Definition: TGSplitter.cxx:351
UInt_t fFrameWidth
Definition: TGSplitter.h:108
Int_t fMax
Definition: TGSplitter.h:111
virtual Bool_t HandleMotion(Event_t *event)
Handle mouse motion event in horizontal splitter.
Definition: TGSplitter.cxx:398
TGClient * fClient
Definition: TGObject.h:37
Handle_t GetId() const
Definition: TGObject.h:47
Handle_t fId
Definition: TGObject.h:36
UInt_t GetHeight() const
Definition: TGPicture.h:64
void Draw(Option_t *="")
Default Draw method for all objects.
Definition: TGPicture.h:57
UInt_t GetWidth() const
Definition: TGPicture.h:63
TGSplitter(const TGSplitter &)
Cursor_t fSplitCursor
Definition: TGSplitter.h:32
void DragStarted()
Emit DragStarted signal.
Definition: TGSplitter.cxx:50
void Moved(Int_t delta)
Emit Moved signal.
Definition: TGSplitter.cxx:58
const TGPicture * fSplitterPic
Definition: TGSplitter.h:35
Bool_t fDragging
Definition: TGSplitter.h:33
Bool_t fExternalHandler
Definition: TGSplitter.h:34
void ButtonPressed()
Emit ButtonPressed() signal.
Definition: TGSplitter.cxx:547
virtual ~TGVFileSplitter()
if (fSplitterPic) fClient->FreePicture(fSplitterPic);
Definition: TGSplitter.cxx:470
virtual Bool_t HandleButton(Event_t *event)
Handle mouse button event in vertical splitter.
Definition: TGSplitter.cxx:514
void DoubleClicked(TGVFileSplitter *frame)
Emit DoubleClicked() signal.
Definition: TGSplitter.cxx:563
void LayoutListView()
Emit LayoutListView() signal.
Definition: TGSplitter.cxx:539
void ButtonReleased()
Emit ButtonReleased() signal.
Definition: TGSplitter.cxx:555
virtual Bool_t HandleDoubleClick(Event_t *)
Handle double click mouse event in splitter.
Definition: TGSplitter.cxx:571
TGVFileSplitter(const TGWindow *p=0, UInt_t w=4, UInt_t h=4, UInt_t options=kChildFrame, Pixel_t back=GetDefaultFrameBackground())
fSplitterPic = fClient->GetPicture("filesplitterv.xpm");
Definition: TGSplitter.cxx:459
virtual Bool_t HandleMotion(Event_t *event)
Handle mouse motion event in vertical splitter.
Definition: TGSplitter.cxx:477
void LayoutHeader(TGFrame *f)
Emit LayoutFeader() signal.
Definition: TGSplitter.cxx:531
virtual void SavePrimitive(std::ostream &out, Option_t *option="")
Save a splitter widget as a C++ statement(s) on output stream out.
Definition: TGSplitter.cxx:646
Int_t fMin
Definition: TGSplitter.h:73
UInt_t fFrameHeight
Definition: TGSplitter.h:72
TGVSplitter(const TGVSplitter &)
virtual ~TGVSplitter()
Delete vertical splitter widget.
Definition: TGSplitter.cxx:131
const TGFrame * GetFrame() const
Definition: TGSplitter.h:87
virtual void SetFrame(TGFrame *frame, Bool_t left)
Set frame to be resized.
Definition: TGSplitter.cxx:140
virtual Bool_t HandleButton(Event_t *event)
Handle mouse button event in vertical splitter.
Definition: TGSplitter.cxx:152
virtual Bool_t HandleCrossing(Event_t *event)
Handle mouse motion event in vertical splitter.
Definition: TGSplitter.cxx:235
Bool_t GetLeft() const
Definition: TGSplitter.h:88
TGFrame * fFrame
Definition: TGSplitter.h:75
Int_t fMax
Definition: TGSplitter.h:74
UInt_t fFrameWidth
Definition: TGSplitter.h:71
Int_t fStartX
Definition: TGSplitter.h:70
virtual void SavePrimitive(std::ostream &out, Option_t *option="")
Save a splitter widget as a C++ statement(s) on output stream out.
Definition: TGSplitter.cxx:580
Bool_t fLeft
Definition: TGSplitter.h:76
virtual Bool_t HandleMotion(Event_t *event)
Handle mouse motion event in vertical splitter.
Definition: TGSplitter.cxx:199
virtual void DrawBorder()
Draw vertical splitter.
Definition: TGSplitter.cxx:248
virtual const char * GetName() const
Return unique name, used in SavePrimitive methods.
Definition: TGWindow.cxx:221
const TGWindow * fParent
Definition: TGWindow.h:37
const TGWindow * GetParent() const
Definition: TGWindow.h:85
UInt_t fEditDisabled
Definition: TGWindow.h:41
virtual Bool_t InheritsFrom(const char *classname) const
Returns kTRUE if object inherits from class "classname".
Definition: TObject.cxx:443
virtual void Error(const char *method, const char *msgfmt,...) const
Issue error message.
Definition: TObject.cxx:880
void Emit(const char *signal, const T &arg)
Activate signal with single parameter.
Definition: TQObject.h:164
Double_t y[n]
Definition: legend1.C:17
Double_t x[n]
Definition: legend1.C:17
EGEventType fType
Definition: GuiTypes.h:174
REAL splitter
Definition: triangle.c:616