45#include "RConfigure.h" 
   49                                    "Text files",    
"*.txt",
 
   61class TGTextEditHist : 
public TList {
 
   65   virtual ~TGTextEditHist() { 
Delete(); }
 
   79class TGTextEditCommand : 
public TObject {
 
   85   TGTextEditCommand(
TGTextEdit *te) : fEdit(te) {
 
   93class TInsCharCom : 
public TGTextEditCommand {
 
   96   TInsCharCom(
TGTextEdit *te, 
char ch) : TGTextEditCommand(te) {
 
  108class TDelCharCom : 
public TGTextEditCommand {
 
  114   TDelCharCom(
TGTextEdit *te) : TGTextEditCommand(te)  {
 
  132class TBreakLineCom : 
public TGTextEditCommand {
 
  135   TBreakLineCom(
TGTextEdit *te) : TGTextEditCommand(te)  {
 
  149class TInsTextCom : 
public TGTextEditCommand {
 
  156   TInsTextCom(
TGTextEdit *te) : TGTextEditCommand(te), fChar(0)  {
 
  168      } 
else if (fPos.
fY != fEndPos.
fY) {
 
  178class TDelTextCom : 
public TGTextEditCommand {
 
  190   TDelTextCom(
const TDelTextCom &dtc) : TGTextEditCommand(dtc) {
 
  191      fText = 
new TGText(dtc.fText);
 
  192      fBreakLine = dtc.fBreakLine;
 
  194   virtual ~TDelTextCom() { 
delete fText; }
 
  196   TDelTextCom &
operator=(
const TDelTextCom &dtc) {
 
  198         if (fText) 
delete fText;
 
  199         fText = 
new TGText(dtc.fText);
 
  200         fBreakLine = dtc.fBreakLine;
 
  209   void SetBreakLine(
Bool_t on) { fBreakLine = on; }
 
  213      start_src.
fX = start_src.
fY = 0;
 
  263     TGTextView(parent, w, 
h, string, id, sboptions, back)
 
  391      if (untitled || saveas) {
 
  491         if (len < 0) len = 0;
 
  493         buf2 = 
new char[len + 2];
 
  494         strncpy(buf2, buf1, (
UInt_t)len);
 
  497         while (buf2[i] != 
'\0') {
 
  498            if (buf2[i] == 
'\t') {
 
  500               while (buf2[j] == 16)
 
  503               strcpy(buf2+i+1, buf2+j);
 
  507         fwrite(buf2, 
sizeof(
char), strlen(buf2)+1, p);
 
  516      msg.
Form(
"Printed: %s\nLines: %ld\nUsing: %s -P%s",
 
  546      new TDelCharCom(
this);
 
  556   if (endPos.
fX == -1) {
 
  572   TDelTextCom *dcom = 
new TDelTextCom(
this, 
fClipText);
 
  574   dcom->SetEndPos(endPos);
 
  583      dcom->SetBreakLine(
kTRUE);
 
  600   th = th < 0 ? 0 : th;
 
  601   ys = ys < 0 ? 0 : ys;
 
  651         msg.
Form(
"Couldn't find \"%s\"", 
string);
 
  696                           const char *newText, 
Bool_t direction, 
Bool_t caseSensitive)
 
  699   if (!
fText->
Replace(textPos, oldText, newText, direction, caseSensitive)) {
 
  838      if (count == -1 || count == 
'\t') {
 
  953   if (!nchar) 
return kTRUE;
 
  963   start_src.
fY = start_src.
fX = 0;
 
  967   if (end_src.
fX < 0) {
 
  972   TInsTextCom *icom = 
new TInsTextCom(
this);
 
  984   if (start_src.
fY == end_src.
fY) {
 
  988   icom->SetEndPos(pos);
 
 1061         char *word = 
line->GetWord(pos.
fX);
 
 1160   if (
line[i] == 
' ' || 
line[i] == 
'\t') {
 
 1161      while (start >= 0) {
 
 1162         if (
line[start] == 
' ' || 
line[start] == 
'\t') --start;
 
 1166      while (end < (
Int_t)len) {
 
 1167         if (
line[end] == 
' ' || 
line[end] == 
'\t') ++end;
 
 1170   } 
else if (isalnum(
line[i])) {
 
 1171      while (start >= 0) {
 
 1172         if (isalnum(
line[start])) --start;
 
 1176      while (end < (
Int_t)len) {
 
 1177         if (isalnum(
line[end])) ++end;
 
 1181      while (start >= 0) {
 
 1182         if (isalnum(
line[start]) || 
line[start] == 
' ' || 
line[start] == 
'\t') {
 
 1189      while (end < (
Int_t)len) {
 
 1190         if (isalnum(
line[end]) || 
line[end] == 
' ' || 
line[end] == 
'\t') {
 
 1204   char *word = 
new char[len + 1];
 
 1269      gVirtualX->LookupString(event, input, 
sizeof(input), keysym);
 
 1287         switch((
EKeySym)keysym & ~0x20) {   
 
 1308                  new TDelCharCom(
this);
 
 1382      if (
n && keysym >= 32 && keysym < 127 &&     
 
 1390         new TInsCharCom(
this, input[0]);
 
 1416                  new TDelCharCom(
this);
 
 1421               new TBreakLineCom(
this);
 
 1424               new TInsCharCom(
this, 
'\t');
 
 1431                     new TDelCharCom(
this);
 
 1569                                                        fCanvas, 400, 150, srch, &ret);
 
 1572                                          this, 
"Search(char *,Bool_t,Bool_t)");
 
 1602                        msg2.
Form(
"Save \"%s\"?",
 
 1700                     printf(
"No action implemented for menu id %ld\n", parm1);
 
 1721   char *charstring = 0;
 
 1724   if (character == 
'\t') {
 
 1729      while (pos.
fX & 0x7) {
 
 1748         new TDelCharCom(
this);
 
 1753      charstring = 
new char[2];
 
 1754      charstring[1] = 
'\0';
 
 1755      charstring[0] = character;
 
 1768                               charstring, strlen(charstring));
 
 1774         if (lineStart < currentLine->GetLineLength()) {
 
 1775            const char *textToRender = currentLine->GetText(lineStart, currentLine->GetLineLength() - lineStart);
 
 1783            delete [] textToRender;
 
 1802                            charstring, strlen(charstring));
 
 1806   delete [] charstring;
 
 2204   out << 
"   TGTextEdit *";
 
 2207       << 
");"<< std::endl;
 
 2208   if (option && strstr(option, 
"keep_names"))
 
 2209      out << 
"   " << 
GetName() << 
"->SetName(\"" << 
GetName() << 
"\");" << std::endl;
 
 2212      out << 
"   " << 
GetName() << 
"->SetReadOnly(kTRUE);" << std::endl;
 
 2216      out << 
"   " << 
GetName() << 
"->EnableMenu(kFALSE);" << std::endl;
 
 2234   out << 
"   " << 
GetName() << 
"->LoadFile(" << quote << fn.
Data() << quote << 
");" << std::endl;
 
const Mask_t kKeyShiftMask
const Mask_t kKeyControlMask
include TDocParser_001 C image html pict1_TDocParser_001 png width
static const char * gFiletypes[]
static char * gPrintCommand
R__EXTERN void * gTQSender
Binding & operator=(OUT(*fun)(void))
char * StrDup(const char *str)
Duplicate the string str.
R__EXTERN TSystem * gSystem
virtual Bool_t Notify()
'Notify' all objects in this collection.
const TGWindow * GetDefaultRoot() const
Returns the root (i.e.
Bool_t IsEditable() const
const TGResourcePool * GetResourcePool() const
void NeedRedraw(TGWindow *w, Bool_t force=kFALSE)
Set redraw flags.
virtual void SendMessage(const TGWindow *w, Long_t msg, Long_t parm1, Long_t parm2)
Send message (i.e.
static Time_t fgLastClick
virtual Pixel_t GetBackground() const
static Pixel_t fgWhitePixel
void SetFunction(EGraphicsFunction v)
Set graphics context drawing function.
Cursor_t GetTextCursor() const
virtual TGSearchType * GetType() const
static TGSearchDialog *& SearchDialog()
Return global search dialog.
TGTextEditHist * fHistory
virtual Bool_t HandleFocusChange(Event_t *event)
Handle focus change event in text edit widget.
virtual Bool_t Goto(Long_t line, Long_t column=0)
Goto the specified line.
virtual Bool_t HandleDoubleClick(Event_t *event)
Handle double click event.
static TGGC * fgCursor0GC
static const TGGC & GetCursor1GC()
Return default graphics context for text cursor.
virtual Bool_t ProcessMessage(Long_t msg, Long_t parm1, Long_t parm2)
Process context menu messages.
virtual Bool_t Replace(TGLongPosition pos, const char *oldText, const char *newText, Bool_t direction, Bool_t caseSensitive)
Replace text starting at textPos.
virtual void DrawCursor(Int_t mode)
Draw cursor. If mode = 1 draw cursor, if mode = 2 erase cursor.
virtual Bool_t Copy()
Copy text.
TList * GetHistory() const
virtual void AdjustPos()
Adjust current position.
virtual Bool_t SaveFile(const char *fname, Bool_t saveas=kFALSE)
Save file.
EInsertMode GetInsertMode() const
virtual void DrawRegion(Int_t x, Int_t y, UInt_t width, UInt_t height)
Redraw the text edit widget.
virtual Bool_t HandleCrossing(Event_t *event)
Handle mouse crossing event.
virtual void SetMenuState()
Enable/disable menu items in function of what is possible.
virtual Bool_t Cut()
Cut text.
TGLongPosition GetCurrentPos() const
virtual Long_t ReturnLongestLineWidth()
Return width of longest line in widget.
virtual void Print(Option_t *="") const
Send current buffer to printer.
virtual void DelChar()
Delete a character from the text edit widget.
virtual Bool_t HandleSelection(Event_t *event)
Handle selection notify event.
virtual Bool_t HandleKey(Event_t *event)
The key press event handler converts a key press to some line editor action.
virtual void LineDown()
Move one line down.
virtual void Clear(Option_t *="")
Clear text edit widget.
virtual void ScreenDown()
Move one screen down.
virtual void Delete(Option_t *="")
Delete selection.
virtual void SavePrimitive(std::ostream &out, Option_t *="")
Save a text edit widget as a C++ statement(s) on output stream out.
virtual Bool_t HandleMotion(Event_t *event)
Handle mouse motion event in text edit widget.
virtual void LineUp()
Make current position first line in window by scrolling up.
virtual void CursorOn()
Turn cursor on.
virtual void SetCurrent(TGLongPosition new_coord)
Make the specified position the current position.
virtual void NextChar()
Go to next character.
virtual void ScreenUp()
Move one screen up.
virtual void BreakLine()
Break a line.
virtual ~TGTextEdit()
Cleanup text edit widget.
TGTextEdit(const TGTextEdit &)
virtual void InsChar(char character)
Insert a character in the text edit widget.
virtual void SetInsertMode(EInsertMode mode=kInsert)
Sets the mode how characters are entered.
virtual void CursorOff()
If cursor if on, turn it off.
virtual Bool_t Search(const char *string, Bool_t direction=kTRUE, Bool_t caseSensitive=kFALSE)
Search for string in the specified direction.
virtual void PrevChar()
Go to the previous character.
virtual Bool_t Paste()
Paste text into widget.
virtual Bool_t IsMenuEnabled() const
virtual Bool_t HandleButton(Event_t *event)
Handle mouse button event in text edit widget.
virtual void ScrollCanvas(Int_t newTop, Int_t direction)
Scroll the canvas to new_top in the kVertical or kHorizontal direction.
Bool_t fEnableCursorWithoutFocus
virtual void Home()
Move to beginning of line.
static TGGC * fgCursor1GC
virtual void End()
Move to end of line.
void Init()
Initiliaze a text edit widget.
static const TGGC & GetCursor0GC()
Return selection graphics context for text cursor.
virtual Bool_t HandleTimer(TTimer *t)
Handle timer cursor blink timer.
char * GetText(ULong_t pos, ULong_t length)
Get length characters from line starting at pos.
virtual void Update()
update the whole window of text view
virtual void UnMark()
Clear marked region.
virtual Long_t ToObjXCoord(Long_t xCoord, Long_t line)
Convert x screen coordinate to column in specified line.
virtual void SetHsbPosition(Long_t newPos)
Set position of horizontal scrollbar.
virtual Bool_t LoadFile(const char *fname, long startpos=0, long length=-1)
Load a file in the text view widget.
virtual void Mark(Long_t xPos, Long_t yPos)
Mark a text region from xPos to yPos.
virtual Long_t ToScrYCoord(Long_t yCoord)
Convert line number to screen coordinate.
virtual Long_t ReturnLongestLineWidth()
Return width of longest line.
static const TGGC & GetDefaultSelectedGC()
Return selection graphics context in use.
virtual Bool_t HandleMotion(Event_t *event)
Handle mouse motion event in the text editor widget.
static const TGGC & GetDefaultGC()
Return default graphics context in use.
virtual Bool_t HandleCrossing(Event_t *event)
Handle mouse crossing event.
virtual void Clicked(const char *word)
virtual Bool_t SelectAll()
Select all text in the viewer.
virtual void SetVsbPosition(Long_t newPos)
Set position of vertical scrollbar.
TGLongPosition fMarkedEnd
virtual void DrawRegion(Int_t x, Int_t y, UInt_t w, UInt_t h)
Draw lines in exposed region.
virtual Long_t ToScrXCoord(Long_t xCoord, Long_t line)
Convert column number in specified line to screen coordinate.
virtual void Clear(Option_t *="")
Clear text view widget.
virtual void Marked(Bool_t mark)
virtual void DataChanged()
Bool_t IsReadOnly() const
virtual Bool_t Copy()
Copy selected text to clipboard.
virtual void DoubleClicked(const char *word)
virtual Bool_t HandleTimer(TTimer *t)
Handle scroll timer.
virtual Bool_t HandleButton(Event_t *event)
Handle mouse button event in text editor.
virtual void SetSBRange(Int_t direction)
Set the range for the kVertical or kHorizontal scrollbar.
TGLongPosition fMarkedStart
virtual Long_t ToObjYCoord(Long_t yCoord)
Convert y screen coordinate to line number.
Bool_t InsChar(TGLongPosition pos, char c)
Insert character c at the specified position pos.
void ReTab(Long_t row)
Redo all tabs in a line. Needed after a new tab is inserted.
Bool_t DelText(TGLongPosition start, TGLongPosition end)
Delete text between start and end positions.
Bool_t Search(TGLongPosition *foundPos, TGLongPosition start, const char *searchString, Bool_t direction, Bool_t caseSensitive)
Search for string searchString starting at the specified position going in forward (direction = true)...
Bool_t DelLine(ULong_t pos)
Delete specified row. Returns false if row does not exist.
Bool_t Save(const char *fn)
Save text buffer to file fn.
Bool_t Replace(TGLongPosition start, const char *oldText, const char *newText, Bool_t direction, Bool_t caseSensitive)
Replace oldText by newText. Returns false if nothing replaced.
Bool_t DelChar(TGLongPosition pos)
Delete character at specified position pos.
Bool_t BreakLine(TGLongPosition pos)
Break line at position pos. Returns false if pos is not valid.
Bool_t InsText(TGLongPosition pos, const char *buf)
Insert single line at specified position.
char * GetLine(TGLongPosition pos, ULong_t length)
Return string at position pos.
char GetChar(TGLongPosition pos)
Get character a position pos. If charcater not valid return -1.
Bool_t LoadBuffer(const char *txtbuf)
Load a 0 terminated buffer. Lines will be split at ' '.
void Clear()
Clear text buffer.
TGTextLine * GetCurrentLine() const
const char * GetFileName() const
Long_t GetLineLength(Long_t row)
Get length of specified line. Returns -1 if row does not exist.
TString AsString()
Returns content as ROOT string.
virtual Bool_t ProcessMessage(Long_t msg, Long_t parm1, Long_t parm2)
Process scrollbar messages.
TGLongPosition fScrollVal
virtual void UpdateRegion(Int_t x, Int_t y, UInt_t w, UInt_t h)
update a part of view
virtual void ScrollCanvas(Int_t newTop, Int_t direction)
Scroll the canvas to new_top in the kVertical or kHorizontal direction.
TGRectangle fExposedRegion
virtual const char * GetName() const
Return unique name, used in SavePrimitive methods.
virtual Bool_t IsMapped()
Returns kTRUE if window is mapped on screen, kFALSE otherwise.
virtual void Add(TObject *obj)
virtual void RemoveLast()
Remove the last object of the list.
virtual TObject * Last() const
Return the last object in the list. Returns 0 when list is empty.
virtual void Delete(Option_t *option="")
Remove all objects from the list AND delete all heap based objects.
Mother of all ROOT objects.
virtual Bool_t Notify()
This method must be overridden to handle object notification.
Bool_t Connect(const char *signal, const char *receiver_class, void *receiver, const char *slot)
Non-static method is used to connect from the signal of this object to the receiver slot.
Bool_t Disconnect(const char *signal=0, void *receiver=0, const char *slot=0)
Disconnects signal of this object from slot of receiver.
const char * Data() const
static TString Format(const char *fmt,...)
Static method which formats a string using a printf style format descriptor and return a TString.
void Form(const char *fmt,...)
Formats a string using a printf style format descriptor.
virtual Bool_t ExpandPathName(TString &path)
Expand a pathname getting rid of special shell characters like ~.
virtual FILE * OpenPipe(const char *command, const char *mode)
Open a pipe.
virtual const char * UnixPathName(const char *unixpathname)
Convert from a Unix pathname to a local pathname.
virtual void AddTimer(TTimer *t)
Add timer to list of system timers.
virtual int ClosePipe(FILE *pipe)
Close the pipe.
Handles synchronous and a-synchronous timer events.
void Reset()
Reset the timer.