]> git.saurik.com Git - wxWidgets.git/blobdiff - include/wx/mac/carbon/textctrl.h
Patch from Hartwig for wxMac implementation
[wxWidgets.git] / include / wx / mac / carbon / textctrl.h
index 59d42e72b7fb0f1f3a2e19353244ba8ca259415a..0c0bb754641d7c098c4c87ce9811980a5e581da6 100644 (file)
@@ -1,5 +1,5 @@
 /////////////////////////////////////////////////////////////////////////////
-// Name:        textctrl.h
+// Name:        wx/mac/carbon/textctrl.h
 // Purpose:     wxTextCtrl class
 // Author:      Stefan Csomor
 // Modified by:
 #define _WX_TEXTCTRL_H_
 
 #if wxUSE_SYSTEM_OPTIONS
-    // set this to true if you want to use the 'classic' mlte based implementation
-    // instead of the HIView based implementation in 10.3 and upwards, the former
-    // has more features (backgrounds etc.) but may show redraw artefacts and other 
-    // problems depending on your usage, default is 'false'
+    // set this to 'true' if you want to use the 'classic' MLTE-based implementation
+    // instead of the HIView-based implementation in 10.3 and upwards, the former
+    // has more features (backgrounds etc.), but may show redraw artefacts and other
+    // problems depending on your usage; hence, the default is 'false'.
     #define wxMAC_TEXTCONTROL_USE_MLTE wxT("mac.textcontrol-use-mlte")
 #endif
 
 #include "wx/control.h"
+#include "wx/textctrl.h"
 
-WXDLLEXPORT_DATA(extern const wxChar) wxTextCtrlNameStr[];
+class wxMacTextControl;
 
-class wxMacTextControl ;
 
-// Single-line text item
 class WXDLLEXPORT wxTextCtrl: public wxTextCtrlBase
 {
   DECLARE_DYNAMIC_CLASS(wxTextCtrl)
 
 public:
-    wxTextCtrl() { Init(); }
-    wxTextCtrl(wxWindow *parent, wxWindowID id,
-             const wxString& value = wxEmptyString,
-             const wxPoint& pos = wxDefaultPosition,
-             const wxSize& size = wxDefaultSize, long style = 0,
-             const wxValidator& validator = wxDefaultValidator,
-             const wxString& name = wxTextCtrlNameStr)
+    wxTextCtrl()
+    { Init(); }
+
+    wxTextCtrl(wxWindow *parent,
+        wxWindowID id,
+        const wxString& value = wxEmptyString,
+        const wxPoint& pos = wxDefaultPosition,
+        const wxSize& size = wxDefaultSize,
+        long style = 0,
+        const wxValidator& validator = wxDefaultValidator,
+        const wxString& name = wxTextCtrlNameStr)
     {
         Init();
         Create(parent, id, value, pos, size, style, validator, name);
     }
 
-    ~wxTextCtrl();
+    virtual ~wxTextCtrl();
 
-    bool Create(wxWindow *parent, wxWindowID id,
-         const wxString& value = wxEmptyString,
-         const wxPoint& pos = wxDefaultPosition,
-         const wxSize& size = wxDefaultSize, long style = 0,
-         const wxValidator& validator = wxDefaultValidator,
-         const wxString& name = wxTextCtrlNameStr);
+    bool Create(wxWindow *parent,
+        wxWindowID id,
+        const wxString& value = wxEmptyString,
+        const wxPoint& pos = wxDefaultPosition,
+        const wxSize& size = wxDefaultSize,
+        long style = 0,
+        const wxValidator& validator = wxDefaultValidator,
+        const wxString& name = wxTextCtrlNameStr);
 
     // accessors
     // ---------
-    virtual wxString GetValue() const ;
-    virtual void SetValue(const wxString& value);
+    virtual wxString GetValue() const;
 
     virtual int GetLineLength(long lineNo) const;
     virtual wxString GetLineText(long lineNo) const;
@@ -72,26 +76,22 @@ public:
     // ----------
 
     // editing
-
     virtual void Clear();
     virtual void Replace(long from, long to, const wxString& value);
     virtual void Remove(long from, long to);
 
-    // load the controls contents from the file
-    virtual bool LoadFile(const wxString& file);
-
     // sets/clears the dirty flag
     virtual void MarkDirty();
     virtual void DiscardEdits();
 
     // set the max number of characters which may be entered
     // in a single line text control
-    virtual void SetMaxLength(unsigned long len) ;
+    virtual void SetMaxLength(unsigned long len);
 
     // text control under some platforms supports the text styles: these
-    // methods allow to apply the given text style to the given selection or to
+    // methods apply the given text style to the given selection or to
     // set/get the style which will be used for all appended text
-    virtual bool SetFont( const wxFont &font ) ;
+    virtual bool SetFont( const wxFont &font );
     virtual bool SetStyle(long start, long end, const wxTextAttr& style);
     virtual bool SetDefaultStyle(const wxTextAttr& style);
 
@@ -100,7 +100,7 @@ public:
     virtual void WriteText(const wxString& text);
     virtual void AppendText(const wxString& text);
 
-    // translate between the position (which is just an index in the text ctrl
+    // translate between the position (which is just an index into the textctrl
     // considering all its contents as a single strings) and (x, y) coordinates
     // which represent column and line.
     virtual long XYToPosition(long x, long y) const;
@@ -150,7 +150,7 @@ public:
     void OnRedo(wxCommandEvent& event);
     void OnDelete(wxCommandEvent& event);
     void OnSelectAll(wxCommandEvent& event);
-    
+
     void OnUpdateCut(wxUpdateUIEvent& event);
     void OnUpdateCopy(wxUpdateUIEvent& event);
     void OnUpdatePaste(wxUpdateUIEvent& event);
@@ -159,29 +159,32 @@ public:
     void OnUpdateDelete(wxUpdateUIEvent& event);
     void OnUpdateSelectAll(wxUpdateUIEvent& event);
 
-    void OnEraseBackground(wxEraseEvent& event) ;
+    void OnEraseBackground(wxEraseEvent& event);
     void OnContextMenu(wxContextMenuEvent& event);
 
-    virtual bool MacCanFocus() const { return true ; }
+    virtual bool MacCanFocus() const
+    { return true; }
 
-    virtual bool MacSetupCursor( const wxPoint& pt ) ;
+    virtual bool MacSetupCursor( const wxPoint& pt );
 
-    virtual void MacVisibilityChanged() ;
-    virtual void MacEnabledStateChanged() ;
-    virtual void MacSuperChangedPosition() ;
+    virtual void MacVisibilityChanged();
+    virtual void MacEnabledStateChanged();
+    virtual void MacSuperChangedPosition();
+    virtual void MacCheckSpelling(bool check);
 
 #ifndef __WXMAC_OSX__
-    virtual void MacControlUserPaneDrawProc(wxInt16 part) ;
-    virtual wxInt16 MacControlUserPaneHitTestProc(wxInt16 x, wxInt16 y) ;
-    virtual wxInt16 MacControlUserPaneTrackingProc(wxInt16 x, wxInt16 y, void* actionProc) ;
-    virtual void MacControlUserPaneIdleProc() ;
-    virtual wxInt16 MacControlUserPaneKeyDownProc(wxInt16 keyCode, wxInt16 charCode, wxInt16 modifiers) ;
-    virtual void MacControlUserPaneActivateProc(bool activating) ;
-    virtual wxInt16 MacControlUserPaneFocusProc(wxInt16 action) ;
-    virtual void MacControlUserPaneBackgroundProc(void* info) ;
+    virtual void MacControlUserPaneDrawProc(wxInt16 part);
+    virtual wxInt16 MacControlUserPaneHitTestProc(wxInt16 x, wxInt16 y);
+    virtual wxInt16 MacControlUserPaneTrackingProc(wxInt16 x, wxInt16 y, void* actionProc);
+    virtual void MacControlUserPaneIdleProc();
+    virtual wxInt16 MacControlUserPaneKeyDownProc(wxInt16 keyCode, wxInt16 charCode, wxInt16 modifiers);
+    virtual void MacControlUserPaneActivateProc(bool activating);
+    virtual wxInt16 MacControlUserPaneFocusProc(wxInt16 action);
+    virtual void MacControlUserPaneBackgroundProc(void* info);
 #endif
 
-    wxMacTextControl * GetPeer() const { return (wxMacTextControl*) m_peer; }
+    wxMacTextControl * GetPeer() const
+    { return (wxMacTextControl*) m_peer; }
 
 protected:
     // common part of all ctors
@@ -189,13 +192,29 @@ protected:
 
     virtual wxSize DoGetBestSize() const;
 
-    bool  m_editable ;
+    virtual void CreatePeer(const wxString& str, const wxPoint& pos, const wxSize& size, long style );
+       
+    virtual void DoSetValue(const wxString& value, int flags = 0);
+
+    bool  m_editable;
 
     // flag is set to true when the user edits the controls contents
     bool m_dirty;
 
-    unsigned long  m_maxLength ;
   // need to make this public because of the current implementation via callbacks
+    unsigned long  m_maxLength;
+
+    bool GetTriggerOnSetValue() const
+    {
+        return m_triggerOnSetValue;
+    }
+
+    void SetTriggerOnSetValue(bool trigger)
+    {
+        m_triggerOnSetValue = trigger;
+    }
+
+    bool m_triggerOnSetValue ;
 
 private :
   wxMenu  *m_privateContextMenu;
@@ -203,5 +222,4 @@ private :
   DECLARE_EVENT_TABLE()
 };
 
-#endif
-    // _WX_TEXTCTRL_H_
+#endif // _WX_TEXTCTRL_H_