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)