X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/911e17c6cf31c0e9e7ab4cdb8e03d66203ebbab8..1a42f89c41256c9de765b5e7671f4d1e94dbdc51:/src/cocoa/textctrl.mm diff --git a/src/cocoa/textctrl.mm b/src/cocoa/textctrl.mm index 1036882df4..5028866515 100644 --- a/src/cocoa/textctrl.mm +++ b/src/cocoa/textctrl.mm @@ -13,6 +13,7 @@ #ifndef WX_PRECOMP #include "wx/app.h" #include "wx/textctrl.h" + #include "wx/log.h" #endif //WX_PRECOMP #include "wx/cocoa/string.h" @@ -22,6 +23,8 @@ #import #import +#include + IMPLEMENT_DYNAMIC_CLASS(wxTextCtrl, wxControl) BEGIN_EVENT_TABLE(wxTextCtrl, wxControl) END_EVENT_TABLE() @@ -41,7 +44,8 @@ bool wxTextCtrl::Create(wxWindow *parent, wxWindowID winid, m_cocoaNSView = NULL; SetNSTextField([[NSTextField alloc] initWithFrame:MakeDefaultNSRect(size)]); [m_cocoaNSView release]; - [GetNSTextField() setStringValue:[NSString stringWithCString:value.c_str()]]; + [GetNSTextField() setStringValue:wxNSStringWithWxString(value)]; + [GetNSControl() sizeToFit]; NSRect currentFrame = [m_cocoaNSView frame]; if(currentFrame.size.width < 70) @@ -72,6 +76,10 @@ void wxTextCtrl::SetEditable(bool) { } +void wxTextCtrl::MarkDirty() +{ +} + void wxTextCtrl::DiscardEdits() { } @@ -196,6 +204,19 @@ bool wxTextCtrl::CanUndo() const wxString wxTextCtrl::GetValue() const { wxAutoNSAutoreleasePool pool; - return wxString([[GetNSTextField() stringValue] lossyCString]); + return wxStringWithNSString([GetNSTextField() stringValue]); +} + +wxSize wxTextCtrl::DoGetBestSize() const +{ + wxAutoNSAutoreleasePool pool; + wxASSERT(GetNSControl()); + NSCell *cell = [GetNSControl() cell]; + wxASSERT(cell); + NSSize cellSize = [cell cellSize]; + wxSize size(100,(int)ceilf(cellSize.height)); + + wxLogTrace(wxTRACE_COCOA_Window_Size,wxT("wxTextCtrl=%p::DoGetBestSize()==(%d,%d)"),this,size.x,size.y); + return size; }