12 #ifndef ROOT_TGTextEntry
13 #define ROOT_TGTextEntry
39 class TGTextEntry :
public TGFrame,
public TGWidget {
42 enum EEchoMode { kNormal, kNoEcho, kPassword };
43 enum EInsertMode { kInsert, kReplace };
56 FontStruct_t fFontStruct;
59 GContext_t fSelbackGC;
61 TBlinkTimer *fCurBlink;
67 EInsertMode fInsertMode;
68 ETextJustification fAlignment;
73 void CopyText()
const;
74 virtual void DoRedraw();
75 Int_t GetCharacterIndex(Int_t xcoord);
77 virtual Bool_t IsCursorOutOfFrame();
79 virtual void PastePrimary(Window_t wid, Atom_t property, Bool_t del);
80 virtual void ScrollByChar();
81 virtual void UpdateOffset();
83 static TString *fgClipboardText;
84 static const TGFont *fgDefaultFont;
85 static const TGGC *fgDefaultSelectedGC;
86 static const TGGC *fgDefaultSelectedBackgroundGC;
87 static const TGGC *fgDefaultGC;
89 static const TGGC &GetDefaultSelectedGC();
90 static const TGGC &GetDefaultSelectedBackgroundGC();
93 TGTextEntry(
const TGTextEntry&);
94 TGTextEntry& operator=(
const TGTextEntry&);
97 static FontStruct_t GetDefaultFontStruct();
98 static const TGGC &GetDefaultGC();
100 TGTextEntry(
const TGWindow *p, TGTextBuffer *text, Int_t
id = -1,
101 GContext_t norm = GetDefaultGC()(),
102 FontStruct_t font = GetDefaultFontStruct(),
103 UInt_t option = kSunkenFrame | kDoubleBorder,
104 Pixel_t back = GetWhitePixel());
106 TGTextEntry(
const TGWindow *parent = 0,
const char *text = 0, Int_t
id = -1);
107 TGTextEntry(
const TString &contents,
const TGWindow *parent, Int_t
id = -1);
109 virtual ~TGTextEntry();
111 virtual TGDimension GetDefaultSize()
const;
112 virtual void SetDefaultSize(UInt_t w, UInt_t h);
114 virtual void AppendText(
const char *text);
116 void Clear(Option_t *option=
"");
117 void CursorLeft(Bool_t mark = kFALSE , Int_t steps = 1);
118 void CursorRight(Bool_t mark = kFALSE , Int_t steps = 1);
119 void CursorWordForward(Bool_t mark = kFALSE);
120 void CursorWordBackward(Bool_t mark = kFALSE);
124 virtual void DrawBorder();
125 void End(Bool_t mark = kFALSE);
126 ETextJustification GetAlignment()
const {
return fAlignment; }
127 TGTextBuffer *GetBuffer()
const {
return fText; }
128 Int_t GetCursorPosition()
const {
return fCursorIX; }
129 TString GetDisplayText()
const;
130 EEchoMode GetEchoMode()
const {
return fEchoMode; }
131 EInsertMode GetInsertMode()
const {
return fInsertMode; }
132 TString GetMarkedText()
const;
133 Int_t GetMaxLength()
const {
return fMaxLen; }
134 const char *GetText()
const {
return fText->GetString(); }
135 virtual TGToolTip *GetToolTip()
const {
return fTip; }
136 virtual const char *GetTitle()
const {
return GetText(); }
137 Bool_t HasMarkedText()
const {
return fSelectionOn && (fStartIX != fEndIX); }
138 Pixel_t GetTextColor()
const {
return fNormGC.GetForeground(); }
139 FontStruct_t GetFontStruct()
const {
return fFontStruct; }
140 void Home(Bool_t mark = kFALSE);
141 virtual void Insert(
const char *);
142 virtual void InsertText(
const char *text, Int_t pos);
143 Bool_t IsFrameDrawn()
const {
return fFrameDrawn; }
144 Bool_t IsEdited()
const {
return fEdited; }
145 virtual void Layout() { UpdateOffset(); }
146 void MarkWord(Int_t pos);
147 Int_t MaxMark()
const {
return fStartIX > fEndIX ? fStartIX : fEndIX; }
148 Int_t MinMark()
const {
return fStartIX < fEndIX ? fStartIX : fEndIX; }
149 void NewMark(Int_t pos);
151 virtual void RemoveText(Int_t start, Int_t end);
152 virtual void SetFont(TGFont *font, Bool_t local = kTRUE);
153 virtual void SetFont(FontStruct_t font, Bool_t local = kTRUE);
154 virtual void SetFont(
const char *fontName, Bool_t local = kTRUE);
155 virtual void SetTextColor(Pixel_t color, Bool_t local = kTRUE);
156 virtual void SetTextColor(TColor *color, Bool_t local = kTRUE);
157 virtual void SetText(
const char *text, Bool_t emit = kTRUE);
158 virtual void SetToolTipText(
const char *text, Long_t delayms = 500);
159 virtual void SetMaxLength(Int_t maxlen);
160 virtual void SelectAll();
161 virtual void SetAlignment(ETextJustification mode = kTextLeft);
162 virtual void SetInsertMode(EInsertMode mode = kInsert);
163 virtual void SetEchoMode(EEchoMode mode = kNormal);
164 void SetEnabled(Bool_t flag = kTRUE) { SetState( flag ); }
165 virtual void SetCursorPosition(Int_t pos);
166 void SetEdited(Bool_t flag = kTRUE) { fEdited = flag; }
167 virtual void SetFocus();
168 virtual void SetFrameDrawn(Bool_t flag = kTRUE);
169 virtual void SetState(Bool_t state);
170 virtual void SetTitle(
const char *label) { SetText(label); }
171 virtual void SetForegroundColor(Pixel_t fore) { SetTextColor(fore, kFALSE); }
172 Pixel_t GetForeground()
const {
return fNormGC.GetForeground(); }
173 Bool_t HasOwnFont()
const {
return fHasOwnFont; }
175 virtual void SavePrimitive(std::ostream &out, Option_t *option =
"");
177 virtual Bool_t HandleButton(Event_t *event);
178 virtual Bool_t HandleDoubleClick(Event_t *event);
179 virtual Bool_t HandleCrossing(Event_t *event);
180 virtual Bool_t HandleMotion(Event_t *event);
181 virtual Bool_t HandleKey(Event_t *event);
182 virtual Bool_t HandleFocusChange(Event_t *event);
183 virtual Bool_t HandleSelection(Event_t *event);
184 virtual Bool_t HandleSelectionClear(Event_t *event);
185 virtual Bool_t HandleSelectionRequest(Event_t *event);
186 virtual Bool_t HandleTimer(TTimer *t);
187 virtual Bool_t HandleConfigureNotify(Event_t *event);
189 virtual void TextChanged(
const char *text = 0);
190 virtual void ReturnPressed();
191 virtual void TabPressed();
192 virtual void ShiftTabPressed();
193 virtual void CursorOutLeft();
194 virtual void CursorOutRight();
195 virtual void CursorOutUp();
196 virtual void CursorOutDown();
197 virtual void DoubleClicked();
199 ClassDef(TGTextEntry,0)