1 ///////////////////////////////////////////////////////////////////////////// 
   2 // Name:        wx/mac/carbon/textctrl.h 
   3 // Purpose:     wxTextCtrl class 
   4 // Author:      Stefan Csomor 
   8 // Copyright:   (c) Stefan Csomor 
   9 // Licence:     wxWindows licence 
  10 ///////////////////////////////////////////////////////////////////////////// 
  12 #ifndef _WX_TEXTCTRL_H_ 
  13 #define _WX_TEXTCTRL_H_ 
  15 #if wxUSE_SYSTEM_OPTIONS 
  16     // set this to 'true' if you want to use the 'classic' MLTE-based implementation 
  17     // instead of the HIView-based implementation in 10.3 and upwards, the former 
  18     // has more features (backgrounds etc.), but may show redraw artefacts and other 
  19     // problems depending on your usage; hence, the default is 'false'. 
  20     #define wxMAC_TEXTCONTROL_USE_MLTE wxT("mac.textcontrol-use-mlte") 
  21     // set this to 'true' if you want editable text controls to have spell checking turned 
  22     // on by default, you can change this setting individually on a control using MacCheckSpelling 
  23     #define wxMAC_TEXTCONTROL_USE_SPELL_CHECKER wxT("mac.textcontrol-use-spell-checker") 
  26 #include "wx/control.h" 
  27 #include "wx/textctrl.h" 
  29 // forward decl for wxListWidgetImpl implementation type. 
  30 class WXDLLIMPEXP_FWD_CORE wxTextWidgetImpl
; 
  32 class WXDLLIMPEXP_CORE wxTextCtrl
: public wxTextCtrlBase
 
  34   DECLARE_DYNAMIC_CLASS(wxTextCtrl
) 
  40     wxTextCtrl(wxWindow 
*parent
, 
  42         const wxString
& value 
= wxEmptyString
, 
  43         const wxPoint
& pos 
= wxDefaultPosition
, 
  44         const wxSize
& size 
= wxDefaultSize
, 
  46         const wxValidator
& validator 
= wxDefaultValidator
, 
  47         const wxString
& name 
= wxTextCtrlNameStr
) 
  50         Create(parent
, id
, value
, pos
, size
, style
, validator
, name
); 
  53     virtual ~wxTextCtrl(); 
  55     bool Create(wxWindow 
*parent
, 
  57         const wxString
& value 
= wxEmptyString
, 
  58         const wxPoint
& pos 
= wxDefaultPosition
, 
  59         const wxSize
& size 
= wxDefaultSize
, 
  61         const wxValidator
& validator 
= wxDefaultValidator
, 
  62         const wxString
& name 
= wxTextCtrlNameStr
); 
  66     virtual wxString 
GetValue() const; 
  68     virtual int GetLineLength(long lineNo
) const; 
  69     virtual wxString 
GetLineText(long lineNo
) const; 
  70     virtual int GetNumberOfLines() const; 
  72     virtual bool IsModified() const; 
  73     virtual bool IsEditable() const; 
  75     // If the return values from and to are the same, there is no selection. 
  76     virtual void GetSelection(long* from
, long* to
) const; 
  83     virtual void Replace(long from
, long to
, const wxString
& value
); 
  84     virtual void Remove(long from
, long to
); 
  86     // sets/clears the dirty flag 
  87     virtual void MarkDirty(); 
  88     virtual void DiscardEdits(); 
  90     // set the max number of characters which may be entered 
  91     // in a single line text control 
  92     virtual void SetMaxLength(unsigned long len
); 
  94     // text control under some platforms supports the text styles: these 
  95     // methods apply the given text style to the given selection or to 
  96     // set/get the style which will be used for all appended text 
  97     virtual bool SetFont( const wxFont 
&font 
); 
  98     virtual bool SetStyle(long start
, long end
, const wxTextAttr
& style
); 
  99     virtual bool SetDefaultStyle(const wxTextAttr
& style
); 
 101     // writing text inserts it at the current position; 
 102     // appending always inserts it at the end 
 103     virtual void WriteText(const wxString
& text
); 
 104     virtual void AppendText(const wxString
& text
); 
 106     // translate between the position (which is just an index into the textctrl 
 107     // considering all its contents as a single strings) and (x, y) coordinates 
 108     // which represent column and line. 
 109     virtual long XYToPosition(long x
, long y
) const; 
 110     virtual bool PositionToXY(long pos
, long *x
, long *y
) const; 
 112     virtual void ShowPosition(long pos
); 
 114     // Clipboard operations 
 117     virtual void Paste(); 
 119     virtual bool CanCopy() const; 
 120     virtual bool CanCut() const; 
 121     virtual bool CanPaste() const; 
 127     virtual bool CanUndo() const; 
 128     virtual bool CanRedo() const; 
 131     virtual void SetInsertionPoint(long pos
); 
 132     virtual void SetInsertionPointEnd(); 
 133     virtual long GetInsertionPoint() const; 
 134     virtual wxTextPos 
GetLastPosition() const; 
 136     virtual void SetSelection(long from
, long to
); 
 137     virtual void SetEditable(bool editable
); 
 141     virtual void Command(wxCommandEvent
& event
); 
 143     virtual bool AcceptsFocus() const; 
 146     void OnDropFiles(wxDropFilesEvent
& event
); 
 147     void OnChar(wxKeyEvent
& event
); // Process 'enter' if required 
 149     void OnCut(wxCommandEvent
& event
); 
 150     void OnCopy(wxCommandEvent
& event
); 
 151     void OnPaste(wxCommandEvent
& event
); 
 152     void OnUndo(wxCommandEvent
& event
); 
 153     void OnRedo(wxCommandEvent
& event
); 
 154     void OnDelete(wxCommandEvent
& event
); 
 155     void OnSelectAll(wxCommandEvent
& event
); 
 157     void OnUpdateCut(wxUpdateUIEvent
& event
); 
 158     void OnUpdateCopy(wxUpdateUIEvent
& event
); 
 159     void OnUpdatePaste(wxUpdateUIEvent
& event
); 
 160     void OnUpdateUndo(wxUpdateUIEvent
& event
); 
 161     void OnUpdateRedo(wxUpdateUIEvent
& event
); 
 162     void OnUpdateDelete(wxUpdateUIEvent
& event
); 
 163     void OnUpdateSelectAll(wxUpdateUIEvent
& event
); 
 165     void OnContextMenu(wxContextMenuEvent
& event
); 
 167     virtual bool MacSetupCursor( const wxPoint
& pt 
); 
 169     virtual void MacVisibilityChanged(); 
 170     virtual void MacSuperChangedPosition(); 
 171     virtual void MacCheckSpelling(bool check
); 
 173     wxTextWidgetImpl 
* GetTextPeer() const; 
 175     // common part of all ctors 
 178     virtual wxSize 
DoGetBestSize() const; 
 180     virtual void DoSetValue(const wxString
& value
, int flags 
= 0); 
 184     // flag is set to true when the user edits the controls contents 
 187   // need to make this public because of the current implementation via callbacks 
 188     unsigned long  m_maxLength
; 
 190     bool GetTriggerOnSetValue() const 
 192         return m_triggerOnSetValue
; 
 195     void SetTriggerOnSetValue(bool trigger
) 
 197         m_triggerOnSetValue 
= trigger
; 
 200     bool m_triggerOnSetValue 
; 
 203   wxMenu  
*m_privateContextMenu
; 
 205   DECLARE_EVENT_TABLE() 
 208 #endif // _WX_TEXTCTRL_H_