]> git.saurik.com Git - wxWidgets.git/blobdiff - include/wx/mac/carbon/textctrl.h
new native toolbar implementation (turned off by default, not supporting embedded...
[wxWidgets.git] / include / wx / mac / carbon / textctrl.h
index a8e14fc8645443c8120d49c31d726179ef32b763..1727b0051dd2c2bb8bb5daa28da4ba58ce4cc566 100644 (file)
 #pragma interface "textctrl.h"
 #endif
 
+#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'
+    #define wxMAC_TEXTCONTROL_USE_MLTE _T("mac.textcontrol-use-mlte")
+#endif
+
 #include "wx/control.h"
 
 WXDLLEXPORT_DATA(extern const wxChar*) wxTextCtrlNameStr;
 
+class wxMacTextControl ;
+
 // Single-line text item
 class WXDLLEXPORT wxTextCtrl: public wxTextCtrlBase
 {
   DECLARE_DYNAMIC_CLASS(wxTextCtrl)
-    
+
 public:
   // creation
   // --------
@@ -41,14 +51,14 @@ public:
 
       Create(parent, id, value, pos, size, style, validator, name);
   }
-  
+
   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 ;
@@ -108,7 +118,7 @@ public:
   virtual void Copy();
   virtual void Cut();
   virtual void Paste();
-  
+
   virtual bool CanCopy() const;
   virtual bool CanCut() const;
   virtual bool CanPaste() const;
@@ -124,7 +134,7 @@ public:
   virtual void SetInsertionPoint(long pos);
   virtual void SetInsertionPointEnd();
   virtual long GetInsertionPoint() const;
-  virtual long GetLastPosition() const;
+  virtual wxTextPos GetLastPosition() const;
 
   virtual void SetSelection(long from, long to);
   virtual void SetEditable(bool editable);
@@ -147,19 +157,27 @@ public:
     void OnPaste(wxCommandEvent& event);
     void OnUndo(wxCommandEvent& event);
     void OnRedo(wxCommandEvent& event);
-
+    void OnDelete(wxCommandEvent& event);
+    void OnSelectAll(wxCommandEvent& event);
+    
     void OnUpdateCut(wxUpdateUIEvent& event);
     void OnUpdateCopy(wxUpdateUIEvent& event);
     void OnUpdatePaste(wxUpdateUIEvent& event);
     void OnUpdateUndo(wxUpdateUIEvent& event);
     void OnUpdateRedo(wxUpdateUIEvent& event);
+    void OnUpdateDelete(wxUpdateUIEvent& event);
+    void OnUpdateSelectAll(wxUpdateUIEvent& event);
+
+    void OnEraseBackground(wxEraseEvent& event) ;
+    void OnContextMenu(wxContextMenuEvent& event);
 
     virtual bool MacCanFocus() const { return true ; }
     virtual bool MacSetupCursor( const wxPoint& pt ) ;
 
     virtual void         MacVisibilityChanged() ;
     virtual void         MacEnabledStateChanged() ;
-
+    virtual void         MacSuperChangedPosition() ;
+#ifndef __WXMAC_OSX__
     virtual void            MacControlUserPaneDrawProc(wxInt16 part) ;
     virtual wxInt16         MacControlUserPaneHitTestProc(wxInt16 x, wxInt16 y) ;
     virtual wxInt16         MacControlUserPaneTrackingProc(wxInt16 x, wxInt16 y, void* actionProc) ;
@@ -168,25 +186,25 @@ public:
     virtual void            MacControlUserPaneActivateProc(bool activating) ;
     virtual wxInt16         MacControlUserPaneFocusProc(wxInt16 action) ;
     virtual void            MacControlUserPaneBackgroundProc(void* info) ;
+#endif
 
+  wxMacTextControl*         GetPeer() const { return (wxMacTextControl*) m_peer ; }
 protected:
     // common part of all ctors
     void Init();
 
-  virtual wxSize DoGetBestSize() const;
+  virtual wxSize            DoGetBestSize() const;
 
   bool  m_editable ;
 
   // flag is set to true when the user edits the controls contents
   bool m_dirty;
 
-  // one of the following objects is used for representation, the other one is NULL
-  void*  m_macTXN ;
   unsigned long  m_maxLength ;
   // need to make this public because of the current implementation via callbacks
-public :  
-  void*  m_macTXNvars ;
 private :
+  wxMenu  *m_privateContextMenu;
+
   DECLARE_EVENT_TABLE()
 };