X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/8cf73271dd6f442a98e86b559d4a55c37e25b99f..db12374b74cd88666f0f37b6a27828009ae7e34e:/include/wx/mac/carbon/textctrl.h diff --git a/include/wx/mac/carbon/textctrl.h b/include/wx/mac/carbon/textctrl.h index df3a964339..1727b0051d 100644 --- a/include/wx/mac/carbon/textctrl.h +++ b/include/wx/mac/carbon/textctrl.h @@ -16,15 +16,25 @@ #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 ; @@ -87,6 +97,7 @@ public: // text control under some platforms supports the text styles: these // methods allow to 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 SetStyle(long start, long end, const wxTextAttr& style); virtual bool SetDefaultStyle(const wxTextAttr& style); @@ -107,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; @@ -123,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); @@ -146,37 +157,54 @@ 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); - virtual bool MacCanFocus() const { return true ; } + void OnEraseBackground(wxEraseEvent& event) ; + void OnContextMenu(wxContextMenuEvent& event); + + virtual bool MacCanFocus() const { return true ; } virtual bool MacSetupCursor( const wxPoint& pt ) ; - virtual void MacSuperShown( bool show ) ; - virtual bool Show(bool show = TRUE) ; + 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) ; + 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 ; } 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_macTE ; - void* m_macTXN ; - void* m_macTXNvars ; - bool m_macUsesTXN ; unsigned long m_maxLength ; - + // need to make this public because of the current implementation via callbacks +private : + wxMenu *m_privateContextMenu; + DECLARE_EVENT_TABLE() };