ROOT logo
// @(#)root/gui:$Id: TGTextBuffer.h 23115 2008-04-10 13:35:37Z rdm $
// Author: Fons Rademakers   05/05/98

/*************************************************************************
 * 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_TGTextBuffer
#define ROOT_TGTextBuffer


//////////////////////////////////////////////////////////////////////////
//                                                                      //
// TGTextBuffer                                                         //
//                                                                      //
// A text buffer is used in several widgets, like TGTextEntry,          //
// TGFileDialog, etc. It is a little wrapper around the powerful        //
// TString class and used for sinlge line texts. For multi line texts   //
// use TGText.                                                          //
//                                                                      //
//////////////////////////////////////////////////////////////////////////

#ifndef ROOT_TString
#include "TString.h"
#endif


class TGTextBuffer {

private:
   TString    *fBuffer;

protected:
   TGTextBuffer(const TGTextBuffer& tb): fBuffer(tb.fBuffer) { }
   TGTextBuffer& operator=(const TGTextBuffer& tb)
     {if(this!=&tb) fBuffer=tb.fBuffer; return *this;}

public:
   TGTextBuffer(): fBuffer(new TString) { }
   TGTextBuffer(Int_t length): fBuffer(new TString(length)) { }
   virtual ~TGTextBuffer() { delete fBuffer; }

   UInt_t GetTextLength() const { return fBuffer->Length(); }
   UInt_t GetBufferLength() const { return fBuffer->Capacity(); }
   const char *GetString() const { return fBuffer->Data(); }

   void AddText(Int_t pos, const char *text) { fBuffer->Insert(pos, text); }
   void AddText(Int_t pos, const char *text, Int_t length) { fBuffer->Insert(pos, text, length); }
   void RemoveText(Int_t pos, Int_t length) { fBuffer->Remove(pos, length); }
   void Clear() { fBuffer->Remove(0, fBuffer->Length()); }

   ClassDef(TGTextBuffer,0)  // Text buffer used by widgets like TGTextEntry, etc.
};

#endif
 TGTextBuffer.h:1
 TGTextBuffer.h:2
 TGTextBuffer.h:3
 TGTextBuffer.h:4
 TGTextBuffer.h:5
 TGTextBuffer.h:6
 TGTextBuffer.h:7
 TGTextBuffer.h:8
 TGTextBuffer.h:9
 TGTextBuffer.h:10
 TGTextBuffer.h:11
 TGTextBuffer.h:12
 TGTextBuffer.h:13
 TGTextBuffer.h:14
 TGTextBuffer.h:15
 TGTextBuffer.h:16
 TGTextBuffer.h:17
 TGTextBuffer.h:18
 TGTextBuffer.h:19
 TGTextBuffer.h:20
 TGTextBuffer.h:21
 TGTextBuffer.h:22
 TGTextBuffer.h:23
 TGTextBuffer.h:24
 TGTextBuffer.h:25
 TGTextBuffer.h:26
 TGTextBuffer.h:27
 TGTextBuffer.h:28
 TGTextBuffer.h:29
 TGTextBuffer.h:30
 TGTextBuffer.h:31
 TGTextBuffer.h:32
 TGTextBuffer.h:33
 TGTextBuffer.h:34
 TGTextBuffer.h:35
 TGTextBuffer.h:36
 TGTextBuffer.h:37
 TGTextBuffer.h:38
 TGTextBuffer.h:39
 TGTextBuffer.h:40
 TGTextBuffer.h:41
 TGTextBuffer.h:42
 TGTextBuffer.h:43
 TGTextBuffer.h:44
 TGTextBuffer.h:45
 TGTextBuffer.h:46
 TGTextBuffer.h:47
 TGTextBuffer.h:48
 TGTextBuffer.h:49
 TGTextBuffer.h:50
 TGTextBuffer.h:51
 TGTextBuffer.h:52
 TGTextBuffer.h:53
 TGTextBuffer.h:54
 TGTextBuffer.h:55
 TGTextBuffer.h:56
 TGTextBuffer.h:57
 TGTextBuffer.h:58
 TGTextBuffer.h:59