X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/16671f229af4d3ff3ca2a6612a8ebc6c89f45c24..f78b3d1fc09db60a1b06d7be92bc971f303d579b:/include/wx/osx/cocoa/private/textimpl.h diff --git a/include/wx/osx/cocoa/private/textimpl.h b/include/wx/osx/cocoa/private/textimpl.h index 7505bc9882..0cd220b0ea 100644 --- a/include/wx/osx/cocoa/private/textimpl.h +++ b/include/wx/osx/cocoa/private/textimpl.h @@ -1,5 +1,5 @@ ///////////////////////////////////////////////////////////////////////////// -// Name: textimpl.h +// Name: wx/osx/cocoa/private/textimpl.h // Purpose: textcontrol implementation classes that have to be exposed // Author: Stefan Csomor // Modified by: @@ -12,6 +12,7 @@ #ifndef _WX_OSX_COCOA_PRIVATE_TEXTIMPL_H_ #define _WX_OSX_COCOA_PRIVATE_TEXTIMPL_H_ +#include "wx/combobox.h" #include "wx/osx/private.h" // implementation exposed, so that search control can pull it @@ -19,9 +20,17 @@ class wxNSTextFieldControl : public wxWidgetCocoaImpl, public wxTextWidgetImpl { public : - wxNSTextFieldControl( wxTextCtrl *wxPeer, WXWidget w ); + // wxNSTextFieldControl must always be associated with a wxTextEntry. If + // it's associated with a wxTextCtrl then we can get the associated entry + // from it but otherwise the second ctor should be used to explicitly pass + // us the entry. + wxNSTextFieldControl( wxTextCtrl *text, WXWidget w ); + wxNSTextFieldControl( wxWindow *wxPeer, wxTextEntry *entry, WXWidget w ); virtual ~wxNSTextFieldControl(); + virtual bool CanClipMaxLength() const { return true; } + virtual void SetMaxLength(unsigned long len); + virtual wxString GetStringValue() const ; virtual void SetStringValue( const wxString &str) ; virtual void Copy() ; @@ -32,12 +41,19 @@ public : virtual void GetSelection( long* from, long* to) const ; virtual void SetSelection( long from , long to ); virtual void WriteText(const wxString& str) ; + virtual bool HasOwnContextMenu() const { return true; } + virtual bool SetHint(const wxString& hint); virtual void controlAction(WXWidget slf, void* _cmd, void *sender); + protected : NSTextField* m_textField; long m_selStart; long m_selEnd; + +private: + // Common part of both ctors. + void Init(WXWidget w); }; class wxNSTextViewControl : public wxWidgetCocoaImpl, public wxTextWidgetImpl @@ -57,13 +73,46 @@ public: virtual void SetSelection( long from , long to ); virtual void WriteText(const wxString& str) ; virtual void SetFont( const wxFont & font , const wxColour& foreground , long windowStyle, bool ignoreBlack = true ); - + virtual bool GetStyle(long position, wxTextAttr& style); virtual void SetStyle(long start, long end, const wxTextAttr& style); + virtual bool CanFocus() const; + + virtual bool HasOwnContextMenu() const { return true; } + + virtual void CheckSpelling(bool check); + virtual wxSize GetBestSize() const; + protected: NSScrollView* m_scrollView; NSTextView* m_textView; }; +class wxNSComboBoxControl : public wxNSTextFieldControl, public wxComboWidgetImpl +{ +public : + wxNSComboBoxControl( wxComboBox *wxPeer, WXWidget w ); + virtual ~wxNSComboBoxControl(); + + virtual int GetSelectedItem() const; + virtual void SetSelectedItem(int item); + + virtual int GetNumberOfItems() const; + + virtual void InsertItem(int pos, const wxString& item); + virtual void RemoveItem(int pos); + + virtual void Clear(); + + virtual wxString GetStringAtIndex(int pos) const; + + virtual int FindString(const wxString& text) const; + virtual void Popup(); + virtual void Dismiss(); + +private: + NSComboBox* m_comboBox; +}; + #endif // _WX_OSX_COCOA_PRIVATE_TEXTIMPL_H_