Hi, Maxim. sorry .... tooo russian ....
all improvements are welcome.
I added what you sent to my development code.
Thank you. Valeriy
> Hi Maxim,
> just FYI, we are going to rewrite TGText et al. classes completly.
> New itnerface will allow syntax highliting, paragraths, embedding other widgets
> (e.g. root canvas), undo/redo capability ... hopefully html rendering.
>
> Regards. Valeriy
>
> > Dear ROOT developers,
> >
> > I suppose, invocation of LongestLine() from
> > Bool_t TGText::InsText(TGLongPosition pos, const char *buffer)
> > is not a optimal way to determine length of a longest line. Comparison
> > with the length of the line to add is faster. If you agree, apply the
> > patch attached. Just type from the root/gui source directory
> >
> > patch -p1 < TGText.patch
> >
> > --
> > Maxim Nikulin
> >
>
>
> --------------------------------------------------------------------------------
>
>
> > Index: gui/inc/TGText.h
> > ===================================================================
> > RCS file: /user/cvs/root/gui/inc/TGText.h,v
> > retrieving revision 1.6
> > diff -a -u -r1.6 TGText.h
> > --- gui/inc/TGText.h 28 May 2003 11:55:31 -0000 1.6
> > +++ gui/inc/TGText.h 23 Sep 2004 08:37:22 -0000
> > @@ -98,7 +98,7 @@
> > char GetChar(TGLongPosition pos);
> >
> > Bool_t DelText(TGLongPosition start, TGLongPosition end);
> > - Bool_t InsText(TGLongPosition pos, const char *buf);
> > + Bool_t InsText(TGLongPosition const& pos, const char *buf);
> > Bool_t InsText(TGLongPosition ins_pos, TGText *src, TGLongPosition start_src, TGLongPosition end_src);
> > Bool_t AddText(TGText *text);
> >
> > Index: gui/src/TGText.cxx
> > ===================================================================
> > RCS file: /user/cvs/root/gui/src/TGText.cxx,v
> > retrieving revision 1.14
> > diff -a -u -r1.14 TGText.cxx
> > --- gui/src/TGText.cxx 24 May 2004 11:45:08 -0000 1.14
> > +++ gui/src/TGText.cxx 23 Sep 2004 08:37:23 -0000
> > @@ -738,7 +738,7 @@
> > }
> >
> > //______________________________________________________________________________
> > -Bool_t TGText::InsText(TGLongPosition pos, const char *buffer)
> > +Bool_t TGText::InsText(TGLongPosition const& pos, const char *buffer)
> > {
> > // Insert single line at specified position. Return false in case position
> > // is out of bounds.
> > @@ -751,11 +751,16 @@
> > fCurrent->fNext = new TGTextLine(buffer);
> > fCurrent->fNext->fPrev = fCurrent;
> > fRowCount++;
> > + if ((Long_t)fCurrent->fNext->fLength > fColCount) {
> > + fColCount = fCurrent->fNext->fLength;
> > + }
> > } else {
> > SetCurrentRow(pos.fY);
> > fCurrent->InsText(pos.fX, buffer);
> > + if ((Long_t)fCurrent->fLength > fColCount) {
> > + fColCount = fCurrent->fLength;
> > + }
> > }
> > - LongestLine();
> > fIsSaved = kFALSE;
> > return kTRUE;
> > }
> >
>
This archive was generated by hypermail 2b29 : Sun Jan 02 2005 - 05:50:09 MET