30 #ifndef _CEGUIMultiLineEditbox_h_ 
   31 #define _CEGUIMultiLineEditbox_h_ 
   33 #include "../CEGUIBase.h" 
   34 #include "../CEGUIWindow.h" 
   35 #include "../CEGUIFont.h" 
   36 #include "CEGUIMultiLineEditboxProperties.h" 
   42 #       pragma warning(push) 
   43 #       pragma warning(disable : 4251) 
   71     virtual Rect getTextRenderArea(
void) 
const = 0;
 
  130         bool    hasInputFocus(
void) 
const;
 
  162         size_t  getSelectionStartIndex(
void) 
const;
 
  173         size_t  getSelectionEndIndex(
void) 
const;
 
  183         size_t  getSelectionLength(
void) 
const;
 
  204         bool    isWordWrapped(
void) 
const;
 
  228         bool    isVertScrollbarAlwaysShown(
void) 
const;
 
  252     Rect    getTextRenderArea(
void) 
const;
 
  255     const LineList& getFormattedLines(
void)
 const   {
return d_lines;}
 
  262     size_t  getLineNumberFromIndex(
size_t index) 
const;
 
  277         virtual void    initialiseComponents(
void);
 
  291         void    setReadOnly(
bool setting);
 
  305         void    setCaratIndex(
size_t carat_pos);
 
  323         void    setSelection(
size_t start_pos, 
size_t end_pos);
 
  336         void    setMaxTextLength(
size_t max_len);
 
  343         void    ensureCaratIsVisible(
void);
 
  357         void    setWordWrapping(
bool setting);
 
  370         void    setShowVertScrollbar(
bool setting);
 
  373     void setSelectionBrushImage(
const Image* image);
 
  374     const Image* getSelectionBrushImage() 
const;
 
  383         MultiLineEditbox(
const String& type, 
const String& name);
 
  390         virtual ~MultiLineEditbox(
void);
 
  415         void    formatText(
void);
 
  428         size_t  getNextTokenLength(
const String& text, 
size_t start_idx) 
const;
 
  435         void    configureScrollbars(
void);
 
  448         size_t  getTextIndexFromPosition(
const Point& pt) 
const;
 
  455         void    clearSelection(
void);
 
  465         void    eraseSelectedText(
bool modify_text = 
true);
 
  472         void    handleBackspace(
void);
 
  479         void    handleDelete(
void);
 
  486         void    handleCharLeft(uint sysKeys);
 
  493         void    handleWordLeft(uint sysKeys);
 
  500         void    handleCharRight(uint sysKeys);
 
  507         void    handleWordRight(uint sysKeys);
 
  514         void    handleDocHome(uint sysKeys);
 
  521         void    handleDocEnd(uint sysKeys);
 
  528         void    handleLineHome(uint sysKeys);
 
  535         void    handleLineEnd(uint sysKeys);
 
  542         void    handleLineUp(uint sysKeys);
 
  549         void    handleLineDown(uint sysKeys);
 
  556         void    handleNewLine(uint sysKeys);
 
  563     void    handlePageUp(uint sysKeys);
 
  570     void    handlePageDown(uint sysKeys);
 
  583         virtual bool    testClassName_impl(
const String& class_name)
 const 
  585                 if ((class_name==
"MultiLineEditBox") ||
 
  586                         (class_name==
"MultiLineEditbox"))
 
  598     bool handle_scrollChange(
const EventArgs& args);
 
  601     virtual bool validateWindowRenderer(
const String& name)
 const 
  603         return (name == EventNamespace);
 
  722         void    addMultiLineEditboxProperties(
void);
 
  727 #if defined(_MSC_VER) 
  728 #       pragma warning(pop) 
  731 #endif  // end of guard _CEGUIMultiLineEditbox_h_