1///////////////////////////////////////////////////////////////////////////// 2// Name: mactext.h 3// Purpose: private wxMacTextControl base class 4// Author: Stefan Csomor 5// Modified by: 6// Created: 03/02/99 7// RCS-ID: $Id: 8// Copyright: (c) Stefan Csomor 9// Licence: wxWindows licence 10///////////////////////////////////////////////////////////////////////////// 11 12#ifndef _WX_MAC_PRIVATE_MACTEXT_H_ 13#define _WX_MAC_PRIVATE_MACTEXT_H_ 14 15#include "wx/mac/private.h" 16 17// common interface for all implementations 18class wxMacTextControl : public wxMacControl 19{ 20public : 21 wxMacTextControl( wxTextCtrl *peer ) ; 22 virtual ~wxMacTextControl() ; 23 24 virtual wxString GetStringValue() const = 0 ; 25 virtual void SetStringValue( const wxString &val ) = 0 ; 26 virtual void SetSelection( long from, long to ) = 0 ; 27 virtual void GetSelection( long* from, long* to ) const = 0 ; 28 virtual void WriteText( const wxString& str ) = 0 ; 29 30 virtual void SetStyle( long start, long end, const wxTextAttr& style ) ; 31 virtual void Copy() ; 32 virtual void Cut() ; 33 virtual void Paste() ; 34 virtual bool CanPaste() const ; 35 virtual void SetEditable( bool editable ) ; 36 virtual wxTextPos GetLastPosition() const ; 37 virtual void Replace( long from, long to, const wxString &str ) ; 38 virtual void Remove( long from, long to ) ; 39 40 41 virtual bool HasOwnContextMenu() const 42 { return false ; } 43 44 virtual bool SetupCursor( const wxPoint& pt ) 45 { return false ; } 46 47 virtual void Clear() ; 48 virtual bool CanUndo() const; 49 virtual void Undo() ; 50 virtual bool CanRedo() const; 51 virtual void Redo() ; 52 virtual int GetNumberOfLines() const ; 53 virtual long XYToPosition(long x, long y) const; 54 virtual bool PositionToXY(long pos, long *x, long *y) const ; 55 virtual void ShowPosition(long WXUNUSED(pos)) ; 56 virtual int GetLineLength(long lineNo) const ; 57 virtual wxString GetLineText(long lineNo) const ; 58 virtual void CheckSpelling(bool check) { } 59 virtual void SetFont( const wxFont & font , const wxColour& foreground , long windowStyle ); 60 61#ifndef __WXMAC_OSX__ 62 virtual void MacControlUserPaneDrawProc(wxInt16 part) = 0 ; 63 virtual wxInt16 MacControlUserPaneHitTestProc(wxInt16 x, wxInt16 y) = 0 ; 64 virtual wxInt16 MacControlUserPaneTrackingProc(wxInt16 x, wxInt16 y, void* actionProc) = 0 ; 65 virtual void MacControlUserPaneIdleProc() = 0 ; 66 virtual wxInt16 MacControlUserPaneKeyDownProc(wxInt16 keyCode, wxInt16 charCode, wxInt16 modifiers) = 0 ; 67 virtual void MacControlUserPaneActivateProc(bool activating) = 0 ; 68 virtual wxInt16 MacControlUserPaneFocusProc(wxInt16 action) = 0 ; 69 virtual void MacControlUserPaneBackgroundProc(void* info) = 0 ; 70#endif 71} ; 72 73#if TARGET_API_MAC_OSX 74 75class wxMacUnicodeTextControl : public wxMacTextControl 76{ 77public : 78 wxMacUnicodeTextControl( wxTextCtrl *wxPeer ) ; 79 wxMacUnicodeTextControl( wxTextCtrl *wxPeer, 80 const wxString& str, 81 const wxPoint& pos, 82 const wxSize& size, long style ) ; 83 virtual ~wxMacUnicodeTextControl(); 84 85 virtual bool Create( wxTextCtrl *wxPeer, 86 const wxString& str, 87 const wxPoint& pos, 88 const wxSize& size, long style ) ; 89 virtual void VisibilityChanged(bool shown); 90 virtual wxString GetStringValue() const ; 91 virtual void SetStringValue( const wxString &str) ; 92 virtual void Copy(); 93 virtual void Cut(); 94 virtual void Paste(); 95 virtual bool CanPaste() const; 96 virtual void SetEditable(bool editable) ; 97 virtual void GetSelection( long* from, long* to) const ; 98 virtual void SetSelection( long from , long to ) ; 99 virtual void WriteText(const wxString& str) ; 100 101protected : 102 virtual void CreateControl( wxTextCtrl* peer, const Rect* bounds, CFStringRef cfr ); 103 104 // contains the tag for the content (is different for password and non-password controls) 105 OSType m_valueTag ; 106 WXEVENTHANDLERREF m_macTextCtrlEventHandler ; 107public : 108 ControlEditTextSelectionRec m_selection ; 109}; 110 111#endif // TARGET_API_MAC_OSX 112 113#endif // _WX_MAC_PRIVATE_MACTEXT_H_ 114