/usr/include/root/TGSplitter.h is in libroot-gui-dev 5.34.14-1build1.
This file is owned by root:root, with mode 0o644.
The actual contents of the file can be viewed below.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 | // @(#)root/gui:$Id$
// Author: Fons Rademakers 6/09/2000
/*************************************************************************
* 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_TGSplitter
#define ROOT_TGSplitter
//////////////////////////////////////////////////////////////////////////
// //
// TGSplitter, TGVSplitter and TGHSplitter //
// //
// A splitter allows the frames left and right or above and below of //
// it to be resized. The frame to be resized must have the kFixedWidth //
// or kFixedHeight property set. //
// //
//////////////////////////////////////////////////////////////////////////
#ifndef ROOT_TGFrame
#include "TGFrame.h"
#endif
class TGSplitter : public TGFrame {
protected:
Cursor_t fSplitCursor; // split cursor
Bool_t fDragging; // true if in dragging mode
Bool_t fExternalHandler; // true when splitter movement is handled externally
const TGPicture *fSplitterPic; // picture to draw splitter
private:
TGSplitter(const TGSplitter&); // not implemented
TGSplitter& operator=(const TGSplitter&); // not implemented
public:
TGSplitter(const TGWindow *p = 0, UInt_t w = 2, UInt_t h = 4,
UInt_t options = kChildFrame,
Pixel_t back = GetDefaultFrameBackground());
virtual ~TGSplitter() { }
virtual void SetFrame(TGFrame *frame, Bool_t prev) = 0;
virtual Bool_t HandleButton(Event_t *event) = 0;
virtual Bool_t HandleMotion(Event_t *event) = 0;
virtual Bool_t HandleCrossing(Event_t *event) = 0;
void DragStarted(); // *SIGNAL*
void Moved(Int_t delta); // *SIGNAL*
Bool_t GetExternalHandler() const { return fExternalHandler; }
void SetExternalHandler(Bool_t x) { fExternalHandler = x; }
ClassDef(TGSplitter,0) //A frame splitter abstract base class
};
class TGVSplitter : public TGSplitter {
private:
TGVSplitter(const TGVSplitter&); // not implemented
TGVSplitter& operator=(const TGVSplitter&); // not implemented
protected:
Int_t fStartX; // x position when dragging starts
UInt_t fFrameWidth; // width of frame to be resized
UInt_t fFrameHeight; // height of frame to be resized
Int_t fMin; // min x position frame can be resized to
Int_t fMax; // max x position frame can be resized to
TGFrame *fFrame; // frame that should be resized
Bool_t fLeft; // true if frame is on the left of splitter
public:
TGVSplitter(const TGWindow *p = 0, UInt_t w = 4, UInt_t h = 4,
UInt_t options = kChildFrame,
Pixel_t back = GetDefaultFrameBackground());
TGVSplitter(const TGWindow *p, UInt_t w, UInt_t h, Bool_t external);
virtual ~TGVSplitter();
virtual void DrawBorder();
virtual void SetFrame(TGFrame *frame, Bool_t left);
const TGFrame *GetFrame() const { return fFrame; }
Bool_t GetLeft() const { return fLeft; }
Bool_t IsLeft() const { return fLeft; }
virtual void SavePrimitive(ostream &out, Option_t *option = "");
virtual Bool_t HandleButton(Event_t *event);
virtual Bool_t HandleMotion(Event_t *event);
virtual Bool_t HandleCrossing(Event_t *event);
ClassDef(TGVSplitter,0) //A vertical frame splitter
};
class TGHSplitter : public TGSplitter {
private:
TGHSplitter(const TGHSplitter&); // not implemented
TGHSplitter& operator=(const TGHSplitter&); // not implemented
protected:
Int_t fStartY; // y position when dragging starts
UInt_t fFrameWidth; // width of frame to be resized
UInt_t fFrameHeight; // height of frame to be resized
Int_t fMin; // min y position frame can be resized to
Int_t fMax; // max y position frame can be resized to
TGFrame *fFrame; // frame that should be resized
Bool_t fAbove; // true if frame is above the splitter
public:
TGHSplitter(const TGWindow *p = 0, UInt_t w = 4, UInt_t h = 4,
UInt_t options = kChildFrame,
Pixel_t back = GetDefaultFrameBackground());
TGHSplitter(const TGWindow *p, UInt_t w, UInt_t h, Bool_t external);
virtual ~TGHSplitter();
virtual void DrawBorder();
virtual void SetFrame(TGFrame *frame, Bool_t above);
const TGFrame *GetFrame() const { return fFrame; }
Bool_t GetAbove() const { return fAbove; }
Bool_t IsAbove() const { return fAbove; }
virtual void SavePrimitive(ostream &out, Option_t *option = "");
virtual Bool_t HandleButton(Event_t *event);
virtual Bool_t HandleMotion(Event_t *event);
virtual Bool_t HandleCrossing(Event_t *event);
ClassDef(TGHSplitter,0) //A horizontal frame splitter
};
class TGVFileSplitter : public TGVSplitter {
public:
TGVFileSplitter(const TGWindow *p = 0, UInt_t w = 4, UInt_t h = 4,
UInt_t options = kChildFrame,
Pixel_t back = GetDefaultFrameBackground());
virtual ~TGVFileSplitter();
virtual Bool_t HandleDoubleClick(Event_t *);
virtual Bool_t HandleButton(Event_t *event);
virtual Bool_t HandleMotion(Event_t *event);
virtual void SavePrimitive(ostream &out, Option_t *option = "");
void LayoutHeader(TGFrame *f); //*SIGNAL*
void LayoutListView(); //*SIGNAL*
void ButtonPressed(); //*SIGNAL*
void ButtonReleased(); //*SIGNAL*
void DoubleClicked(TGVFileSplitter* frame); //*SIGNAL*
ClassDef(TGVFileSplitter,0) //A vertical file frame splitter
};
#endif
|