Logo ROOT  
Reference Guide
TGTextEntry.h
Go to the documentation of this file.
1// @(#)root/gui:$Id$
2// Author: Fons Rademakers 08/01/98
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#ifndef ROOT_TGTextEntry
13#define ROOT_TGTextEntry
14
15
16//////////////////////////////////////////////////////////////////////////
17// //
18// TGTextEntry //
19// //
20// A TGTextEntry is a one line text input widget. //
21// //
22// Changing text in the text entry widget will generate the event: //
23// kC_TEXTENTRY, kTE_TEXTCHANGED, widget id, 0. //
24// Hitting the enter key will generate: //
25// kC_TEXTENTRY, kTE_ENTER, widget id, 0. //
26// Hitting the tab key will generate: //
27// kC_TEXTENTRY, kTE_TAB, widget id, 0. //
28// //
29//////////////////////////////////////////////////////////////////////////
30
31#include "TGFrame.h"
32#include "TGWidget.h"
33#include "TGTextBuffer.h"
34
35class TBlinkTimer;
36class TGToolTip;
37class TColor;
38
39class TGTextEntry : public TGFrame, public TGWidget {
40
41public:
44
45protected:
46 TGTextBuffer *fText; // text buffer
47 Int_t fStartX; // selection begin in pixels
48 Int_t fEndX; // selection end in pixels
49 Int_t fStartIX; // selection begin in characters
50 Int_t fEndIX; // selection end in characters
51 Bool_t fSelectionOn; // selection status (on/off)
52 Int_t fOffset; // start position of text (in pixels)
53 Int_t fCursorX; // cursor position in pixels
54 Int_t fCursorIX; // cursor position in characters
55 Bool_t fCursorOn; // cursor status (on/off)
57 TGGC fNormGC; // normal drawing context
58 TGGC fSelGC; // selected text drawing context
59 GContext_t fSelbackGC; // selected background drawing context
60 Atom_t fClipboard; // clipboard property
61 TBlinkTimer *fCurBlink; // cursor blink timer
62 TGToolTip *fTip; // associated tooltip
63 Int_t fMaxLen; // maximum length of text
64 Bool_t fEdited; // kFALSE, if the line edit's contents have not been changed since the construction
65 Bool_t fFrameDrawn; // kTRUE draw itself inside a two-pixel frame, kFALSE draw without any frame
66 EEchoMode fEchoMode; // *OPTION={GetMethod="GetEchoMode";SetMethod="SetEchoMode";Items=(kNormal="Normal",kNoEcho="No Echo",kPassword="Password")}*
67 EInsertMode fInsertMode; // *OPTION={GetMethod="GetInsertMode";SetMethod="SetInsertMode";Items=(kInsert="Insert",kReplace="Replace")}*
68 ETextJustification fAlignment; // *OPTION={GetMethod="GetAlignment";SetMethod="SetAlignment";Items=(kTextLeft="Left",kTextCenterX="Center",kTextRight="Right")}*
69 Bool_t fHasOwnFont; // kTRUE - font defined locally, kFALSE - globally
70 UInt_t fDefWidth; // default width
71 UInt_t fDefHeight; // default height
72
73 void CopyText() const;
74 virtual void DoRedraw();
76 virtual void Init();
77 virtual Bool_t IsCursorOutOfFrame();
78 void Paste();
79 virtual void PastePrimary(Window_t wid, Atom_t property, Bool_t del);
80 virtual void ScrollByChar();
81 virtual void UpdateOffset();
82
83 static TString *fgClipboardText; // application clipboard text
84 static const TGFont *fgDefaultFont;
87 static const TGGC *fgDefaultGC;
88
89 static const TGGC &GetDefaultSelectedGC();
91
92private:
93 TGTextEntry(const TGTextEntry&); // not implemented
94 TGTextEntry& operator=(const TGTextEntry&); // not implemented
95
96public:
98 static const TGGC &GetDefaultGC();
99
100 TGTextEntry(const TGWindow *p, TGTextBuffer *text, Int_t id = -1,
101 GContext_t norm = GetDefaultGC()(),
104 Pixel_t back = GetWhitePixel());
105
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);
108
109 virtual ~TGTextEntry();
110
111 virtual TGDimension GetDefaultSize() const;
112 virtual void SetDefaultSize(UInt_t w, UInt_t h);
113
114 virtual void AppendText(const char *text);
115 void Backspace();
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);
121 void Cut();
122 void Del();
123 void Deselect();
124 virtual void DrawBorder();
125 void End(Bool_t mark = kFALSE);
127 TGTextBuffer *GetBuffer() const { return fText; }
129 TString GetDisplayText() const;
130 EEchoMode GetEchoMode() const { return fEchoMode; }
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); }
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);
150 void Remove();
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); //*MENU*
158 virtual void SetToolTipText(const char *text, Long_t delayms = 500); //*MENU*
159 virtual void SetMaxLength(Int_t maxlen); //*MENU*
160 virtual void SelectAll();
161 virtual void SetAlignment(ETextJustification mode = kTextLeft); //*SUBMENU*
162 virtual void SetInsertMode(EInsertMode mode = kInsert); //*SUBMENU*
163 virtual void SetEchoMode(EEchoMode mode = kNormal); //*SUBMENU*
164 void SetEnabled(Bool_t flag = kTRUE) { SetState( flag ); } //*TOGGLE* *GETTER=IsEnabled
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); }
173 Bool_t HasOwnFont() const { return fHasOwnFont; }
174
175 virtual void SavePrimitive(std::ostream &out, Option_t *option = "");
176
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);
188
189 virtual void TextChanged(const char *text = 0); //*SIGNAL*
190 virtual void ReturnPressed(); //*SIGNAL*
191 virtual void TabPressed(); //*SIGNAL*
192 virtual void ShiftTabPressed(); //*SIGNAL*
193 virtual void CursorOutLeft(); //*SIGNAL*
194 virtual void CursorOutRight(); //*SIGNAL*
195 virtual void CursorOutUp(); //*SIGNAL*
196 virtual void CursorOutDown(); //*SIGNAL*
197 virtual void DoubleClicked(); //*SIGNAL*
198
199 ClassDef(TGTextEntry,0) // The TGTextEntry widget is a simple line editor for inputting text
200};
201
202#endif
Handle_t Atom_t
Definition: GuiTypes.h:36
Handle_t GContext_t
Definition: GuiTypes.h:37
Handle_t FontStruct_t
Definition: GuiTypes.h:38
ULong_t Pixel_t
Definition: GuiTypes.h:39
Handle_t Window_t
Definition: GuiTypes.h:28
#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
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 ClassDef(name, id)
Definition: Rtypes.h:326
@ kSunkenFrame
Definition: TGFrame.h:61
@ kDoubleBorder
Definition: TGFrame.h:63
ETextJustification
Definition: TGWidget.h:33
@ kTextLeft
Definition: TGWidget.h:34
The color creation and management class.
Definition: TColor.h:19
Definition: TGFont.h:149
static Pixel_t GetWhitePixel()
Get white pixel value.
Definition: TGFrame.cxx:691
Definition: TGGC.h:31
Pixel_t GetForeground() const
Definition: TGGC.h:82
const char * GetString() const
Definition: TGTextBuffer.h:47
virtual void SetState(Bool_t state)
Set state of widget. If kTRUE=enabled, kFALSE=disabled.
Int_t fOffset
Definition: TGTextEntry.h:52
virtual void SetFocus()
Set focus to this text entry.
virtual void SetForegroundColor(Pixel_t fore)
Definition: TGTextEntry.h:171
virtual Bool_t HandleKey(Event_t *event)
The key press event handler converts a key press to some line editor action.
void CursorLeft(Bool_t mark=kFALSE, Int_t steps=1)
Moves the cursor leftwards one or more characters.
void SetEdited(Bool_t flag=kTRUE)
Definition: TGTextEntry.h:166
Bool_t fFrameDrawn
Definition: TGTextEntry.h:65
void CursorRight(Bool_t mark=kFALSE, Int_t steps=1)
Moves the cursor rightwards one or more characters.
Bool_t HasMarkedText() const
Definition: TGTextEntry.h:137
Int_t fStartIX
Definition: TGTextEntry.h:49
virtual void SetEchoMode(EEchoMode mode=kNormal)
The echo modes available are:
virtual void SetDefaultSize(UInt_t w, UInt_t h)
Set the default / minimal size of the widget.
UInt_t fDefHeight
Definition: TGTextEntry.h:71
virtual void SetMaxLength(Int_t maxlen)
Set the maximum length of the text in the editor.
EEchoMode fEchoMode
Definition: TGTextEntry.h:66
static FontStruct_t GetDefaultFontStruct()
Return default font structure in use.
virtual void RemoveText(Int_t start, Int_t end)
Removes text at the range, clears the selection and moves the cursor to the end of the line.
Int_t fStartX
Definition: TGTextEntry.h:47
virtual Bool_t HandleSelectionRequest(Event_t *event)
Handle request to send current clipboard contents to requestor window.
TGTextBuffer * fText
Definition: TGTextEntry.h:46
Int_t GetCursorPosition() const
Definition: TGTextEntry.h:128
TString GetDisplayText() const
Returns the text that's currently displayed.
UInt_t fDefWidth
Definition: TGTextEntry.h:70
virtual ~TGTextEntry()
Delete a text entry widget.
virtual Bool_t HandleConfigureNotify(Event_t *event)
Handles resize events for this widget.
TGGC fNormGC
Definition: TGTextEntry.h:57
Bool_t fHasOwnFont
Definition: TGTextEntry.h:69
void Deselect()
Deselects all text (i.e.
TBlinkTimer * fCurBlink
Definition: TGTextEntry.h:61
void CopyText() const
Copies the marked text to the clipboard, if there is any and GetEchoMode() is kNormal.
virtual Bool_t HandleCrossing(Event_t *event)
Handle mouse crossing event.
static TString * fgClipboardText
Definition: TGTextEntry.h:83
virtual void UpdateOffset()
Updates start text offset according GetAlignment() mode, if cursor is out of frame => scroll the text...
TGTextBuffer * GetBuffer() const
Definition: TGTextEntry.h:127
const char * GetText() const
Definition: TGTextEntry.h:134
virtual void TabPressed()
This signal is emitted when the <TAB> key is pressed.
void CursorWordBackward(Bool_t mark=kFALSE)
Moves the cursor one word to the left.
virtual void SetCursorPosition(Int_t pos)
Set the cursor position to newPos.
void Backspace()
Deletes the character on the left side of the text cursor and moves the cursor one position to the le...
TString GetMarkedText() const
Returns the text marked by the user (e.g.
virtual Bool_t HandleFocusChange(Event_t *event)
Handle focus change event in text entry widget.
void Del()
Deletes the character on the right side of the text cursor.
Bool_t fCursorOn
Definition: TGTextEntry.h:55
static const TGFont * fgDefaultFont
Definition: TGTextEntry.h:84
virtual const char * GetTitle() const
Returns title of object.
Definition: TGTextEntry.h:136
TGToolTip * fTip
Definition: TGTextEntry.h:62
virtual Bool_t HandleTimer(TTimer *t)
Handle cursor blink timer.
void NewMark(Int_t pos)
New character mark at position pos.
Bool_t IsFrameDrawn() const
Definition: TGTextEntry.h:143
virtual void SetTitle(const char *label)
Definition: TGTextEntry.h:170
TGTextEntry(const TGTextEntry &)
virtual Bool_t HandleMotion(Event_t *event)
Handle mouse motion event in the text entry widget.
static const TGGC & GetDefaultSelectedBackgroundGC()
Return graphics context for highlighted frame background.
virtual void AppendText(const char *text)
Appends text to the end of text entry, clears the selection and moves the cursor to the end of the li...
virtual void SavePrimitive(std::ostream &out, Option_t *option="")
Save a text entry widget as a C++ statement(s) on output stream out.
void SetEnabled(Bool_t flag=kTRUE)
Definition: TGTextEntry.h:164
virtual void SelectAll()
Selects all text (i.e.
virtual void CursorOutRight()
This signal is emitted when cursor is going out of right side.
virtual Bool_t HandleSelectionClear(Event_t *event)
Handle selection clear event.
void Paste()
Inserts text at the cursor position, deleting any previous marked text.
TGTextEntry & operator=(const TGTextEntry &)
virtual void SetFrameDrawn(Bool_t flag=kTRUE)
Sets the text entry to draw itself inside a two-pixel frame if enable is kTRUE, and to draw itself wi...
EInsertMode fInsertMode
Definition: TGTextEntry.h:67
virtual void SetAlignment(ETextJustification mode=kTextLeft)
Sets the alignment of the text entry.
Int_t fEndIX
Definition: TGTextEntry.h:50
Atom_t fClipboard
Definition: TGTextEntry.h:60
virtual TGToolTip * GetToolTip() const
Definition: TGTextEntry.h:135
ETextJustification GetAlignment() const
Definition: TGTextEntry.h:126
virtual void ScrollByChar()
Shift position of cursor by one character.
Int_t GetCharacterIndex(Int_t xcoord)
Returns the index of the character to whose left edge xcoord is closest.
EInsertMode GetInsertMode() const
Definition: TGTextEntry.h:131
virtual void ShiftTabPressed()
This signal is emitted when SHIFT and TAB keys are pressed.
Int_t fEndX
Definition: TGTextEntry.h:48
virtual void ReturnPressed()
This signal is emitted when the return or enter key is pressed.
virtual void TextChanged(const char *text=0)
This signal is emitted every time the text has changed.
static const TGGC * fgDefaultSelectedGC
Definition: TGTextEntry.h:85
FontStruct_t GetFontStruct() const
Definition: TGTextEntry.h:139
GContext_t fSelbackGC
Definition: TGTextEntry.h:59
virtual void SetToolTipText(const char *text, Long_t delayms=500)
Set tool tip text associated with this text entry.
EEchoMode GetEchoMode() const
Definition: TGTextEntry.h:130
ETextJustification fAlignment
Definition: TGTextEntry.h:68
Bool_t fSelectionOn
Definition: TGTextEntry.h:51
virtual void SetTextColor(Pixel_t color, Bool_t local=kTRUE)
Changes text color.
Pixel_t GetTextColor() const
Definition: TGTextEntry.h:138
virtual void SetText(const char *text, Bool_t emit=kTRUE)
Sets text entry to text, clears the selection and moves the cursor to the end of the line.
Bool_t HasOwnFont() const
Definition: TGTextEntry.h:173
FontStruct_t fFontStruct
Definition: TGTextEntry.h:56
virtual void CursorOutLeft()
This signal is emitted when cursor is going out of left side.
virtual TGDimension GetDefaultSize() const
Return the default / minimal size of the widget.
Pixel_t GetForeground() const
Return frame foreground color.
Definition: TGTextEntry.h:172
Int_t MaxMark() const
Definition: TGTextEntry.h:147
void Clear(Option_t *option="")
Clears up the text entry.
void Cut()
Copies the marked text to the clipboard and deletes it, if there is any.
static const TGGC * fgDefaultGC
Definition: TGTextEntry.h:87
void End(Bool_t mark=kFALSE)
Moves the text cursor to the right end of the line.
virtual void InsertText(const char *text, Int_t pos)
Inserts text at position pos, clears the selection and moves the cursor to the end of the line.
virtual void CursorOutDown()
This signal is emitted when cursor is going out of bottom side.
virtual void SetFont(TGFont *font, Bool_t local=kTRUE)
Changes text font specified by pointer to TGFont object.
virtual Bool_t IsCursorOutOfFrame()
Returns kTRUE if cursor is out of frame.
virtual void SetInsertMode(EInsertMode mode=kInsert)
Sets the mode how characters are entered to the text entry.
void CursorWordForward(Bool_t mark=kFALSE)
Moves the cursor one word to the right.
virtual void Insert(const char *)
Removes any currently selected text, inserts newText, sets it as the new contents of the text entry.
virtual void Init()
Do default initialization.
virtual Bool_t HandleSelection(Event_t *event)
Handle text selection event.
Bool_t fEdited
Definition: TGTextEntry.h:64
Int_t MinMark() const
Definition: TGTextEntry.h:148
void MarkWord(Int_t pos)
Marks the word nearest to cursor position.
Bool_t IsEdited() const
Definition: TGTextEntry.h:144
void Home(Bool_t mark=kFALSE)
Moves the text cursor to the left end of the line.
virtual Bool_t HandleDoubleClick(Event_t *event)
Handle mouse double click event in the text entry widget.
virtual Bool_t HandleButton(Event_t *event)
Handle mouse button event in text entry widget.
virtual void DoubleClicked()
This signal is emitted when widget is double clicked.
virtual void PastePrimary(Window_t wid, Atom_t property, Bool_t del)
Paste text from selection (either primary or cut buffer) into text entry widget.
Int_t fCursorX
Definition: TGTextEntry.h:53
static const TGGC & GetDefaultSelectedGC()
Return selection graphics context.
virtual void CursorOutUp()
This signal is emitted when cursor is going out of upper side.
static const TGGC & GetDefaultGC()
Return default graphics context.
Int_t GetMaxLength() const
Definition: TGTextEntry.h:133
Int_t fMaxLen
Definition: TGTextEntry.h:63
Int_t fCursorIX
Definition: TGTextEntry.h:54
virtual void Layout()
Definition: TGTextEntry.h:145
virtual void DoRedraw()
Draw the text entry widget.
virtual void DrawBorder()
Draw the border of the text entry widget.
void Remove()
Deletes all characters on the right side of the cursor.
static const TGGC * fgDefaultSelectedBackgroundGC
Definition: TGTextEntry.h:86
Basic string class.
Definition: TString.h:131
Handles synchronous and a-synchronous timer events.
Definition: TTimer.h:51
TText * text
#define mark(osub)
Definition: triangle.c:1206