]> git.saurik.com Git - wxWidgets.git/blob - src/cocoa/textctrl.mm
m_font may not have been set yet. Default to letting GetTextExtent
[wxWidgets.git] / src / cocoa / textctrl.mm
1 /////////////////////////////////////////////////////////////////////////////
2 // Name: cocoa/textctrl.mm
3 // Purpose: wxTextCtrl
4 // Author: David Elliott
5 // Modified by:
6 // Created: 2003/03/16
7 // RCS-ID: $Id:
8 // Copyright: (c) 2003 David Elliott
9 // Licence: wxWindows license
10 /////////////////////////////////////////////////////////////////////////////
11
12 #include "wx/wxprec.h"
13 #ifndef WX_PRECOMP
14 #include "wx/app.h"
15 #include "wx/textctrl.h"
16 #endif //WX_PRECOMP
17
18 #include "wx/cocoa/string.h"
19
20 #include "wx/cocoa/autorelease.h"
21
22 #import <Foundation/NSString.h>
23 #import <AppKit/NSTextField.h>
24
25 IMPLEMENT_DYNAMIC_CLASS(wxTextCtrl, wxControl)
26 BEGIN_EVENT_TABLE(wxTextCtrl, wxControl)
27 END_EVENT_TABLE()
28 WX_IMPLEMENT_COCOA_OWNER(wxTextCtrl,NSTextField,NSControl,NSView)
29
30 bool wxTextCtrl::Create(wxWindow *parent, wxWindowID winid,
31 const wxString& value,
32 const wxPoint& pos,
33 const wxSize& size,
34 long style,
35 const wxValidator& validator,
36 const wxString& name)
37 {
38 wxAutoNSAutoreleasePool pool;
39 if(!CreateControl(parent,winid,pos,size,style,validator,name))
40 return false;
41 m_cocoaNSView = NULL;
42 SetNSTextField([[NSTextField alloc] initWithFrame:MakeDefaultNSRect(size)]);
43 [m_cocoaNSView release];
44 [GetNSTextField() setStringValue:wxNSStringWithWxString(value)];
45
46 [GetNSControl() sizeToFit];
47 NSRect currentFrame = [m_cocoaNSView frame];
48 if(currentFrame.size.width < 70)
49 {
50 currentFrame.size.width = 70;
51 [m_cocoaNSView setFrame:currentFrame];
52 }
53 if(m_parent)
54 m_parent->CocoaAddChild(this);
55 SetInitialFrameRect(pos,size);
56 return true;
57 }
58
59 wxTextCtrl::~wxTextCtrl()
60 {
61 DisassociateNSTextField(GetNSTextField());
62 }
63
64 void wxTextCtrl::Cocoa_didChangeText(void)
65 {
66 }
67
68 void wxTextCtrl::AppendText(wxString const&)
69 {
70 }
71
72 void wxTextCtrl::SetEditable(bool)
73 {
74 }
75
76 void wxTextCtrl::MarkDirty()
77 {
78 }
79
80 void wxTextCtrl::DiscardEdits()
81 {
82 }
83
84 void wxTextCtrl::SetSelection(long, long)
85 {
86 }
87
88 void wxTextCtrl::ShowPosition(long)
89 {
90 }
91
92 void wxTextCtrl::SetInsertionPoint(long)
93 {
94 }
95
96 void wxTextCtrl::SetInsertionPointEnd()
97 {
98 }
99
100 void wxTextCtrl::Cut()
101 {
102 }
103
104 void wxTextCtrl::Copy()
105 {
106 }
107
108 void wxTextCtrl::Redo()
109 {
110 }
111
112 void wxTextCtrl::Undo()
113 {
114 }
115
116 void wxTextCtrl::Clear()
117 {
118 }
119
120 void wxTextCtrl::Paste()
121 {
122 }
123
124 void wxTextCtrl::Remove(long, long)
125 {
126 }
127
128 void wxTextCtrl::Replace(long, long, wxString const&)
129 {
130 }
131
132 void wxTextCtrl::SetValue(wxString const& value)
133 {
134 wxAutoNSAutoreleasePool pool;
135 [GetNSTextField() setStringValue: wxNSStringWithWxString(value)];
136 }
137
138 void wxTextCtrl::WriteText(wxString const&)
139 {
140 }
141
142 bool wxTextCtrl::IsEditable() const
143 {
144 return true;
145 }
146
147 bool wxTextCtrl::IsModified() const
148 {
149 return false;
150 }
151
152 wxString wxTextCtrl::GetLineText(long) const
153 {
154 return wxEmptyString;
155 }
156
157 void wxTextCtrl::GetSelection(long*, long*) const
158 {
159 }
160
161 bool wxTextCtrl::PositionToXY(long, long*, long*) const
162 {
163 return false;
164 }
165
166 long wxTextCtrl::XYToPosition(long, long) const
167 {
168 return 0;
169 }
170
171 int wxTextCtrl::GetLineLength(long) const
172 {
173 return 0;
174 }
175
176 long wxTextCtrl::GetLastPosition() const
177 {
178 return 0;
179 }
180
181 int wxTextCtrl::GetNumberOfLines() const
182 {
183 return 0;
184 }
185
186 long wxTextCtrl::GetInsertionPoint() const
187 {
188 return 0;
189 }
190
191 bool wxTextCtrl::CanRedo() const
192 {
193 return false;
194 }
195
196 bool wxTextCtrl::CanUndo() const
197 {
198 return false;
199 }
200
201 wxString wxTextCtrl::GetValue() const
202 {
203 wxAutoNSAutoreleasePool pool;
204 return wxStringWithNSString([GetNSTextField() stringValue]);
205 }
206