public :
wxMacEditHelper( NSView* textView )
{
- m_textView = textView ;
+ m_textView = textView;
+ m_formerState = YES;
if ( textView )
{
m_formerState = [textView isEditable];
m_lastKeyDownEvent = formerEvent;
}
-void wxNSTextViewControl::SetFont( const wxFont & font , const wxColour& foreground , long windowStyle, bool ignoreBlack )
+void wxNSTextViewControl::SetFont( const wxFont & font , const wxColour& WXUNUSED(foreground) , long WXUNUSED(windowStyle), bool WXUNUSED(ignoreBlack) )
{
if ([m_textView respondsToSelector:@selector(setFont:)])
[m_textView setFont: font.OSXGetNSFont()];
}
+bool wxNSTextViewControl::GetStyle(long position, wxTextAttr& style)
+{
+ if (m_textView) {
+ NSTextStorage* storage = [m_textView textStorage];
+ NSFont* font = [storage attribute:NSFontAttributeName atIndex:position effectiveRange:NULL];
+ if (font)
+ style.SetFont(wxFont(font));
+ NSColor* bgcolor = [storage attribute:NSBackgroundColorAttributeName atIndex:position effectiveRange:NULL];
+ if (bgcolor)
+ style.SetBackgroundColour(wxColour(bgcolor));
+ NSColor* fgcolor = [storage attribute:NSForegroundColorAttributeName atIndex:position effectiveRange:NULL];
+ style.SetTextColour(wxColour(fgcolor));
+ return true;
+ }
+
+ return false;
+}
+
+void wxNSTextViewControl::SetStyle(long start,
+ long end,
+ const wxTextAttr& style)
+{
+ if (m_textView) {
+ NSRange range = NSMakeRange(start, end-start);
+ NSTextStorage* storage = [m_textView textStorage];
+
+ wxFont font = style.GetFont();
+ if (font.IsOk())
+ [storage addAttribute:NSFontAttributeName value:style.GetFont().OSXGetNSFont() range:range];
+
+ wxColour bgcolor = style.GetBackgroundColour();
+ if (bgcolor.IsOk())
+ [storage addAttribute:NSBackgroundColorAttributeName value:bgcolor.OSXGetNSColor() range:range];
+
+ wxColour fgcolor = style.GetTextColour();
+ if (fgcolor.IsOk())
+ [storage addAttribute:NSForegroundColorAttributeName value:fgcolor.OSXGetNSColor() range:range];
+ }
+}
// wxNSTextFieldControl
wxWidgetImplType* wxWidgetImpl::CreateTextControl( wxTextCtrl* wxpeer,
wxWindowMac* WXUNUSED(parent),
wxWindowID WXUNUSED(id),
- const wxString& str,
+ const wxString& WXUNUSED(str),
const wxPoint& pos,
const wxSize& size,
long style,
wxNSTextScrollView* v = nil;
v = [[wxNSTextScrollView alloc] initWithFrame:r];
c = new wxNSTextViewControl( wxpeer, v );
- static_cast<wxNSTextViewControl*>(c)->SetStringValue(str);
}
else
{
[v setBordered:NO];
c = new wxNSTextFieldControl( wxpeer, v );
- static_cast<wxNSTextFieldControl*>(c)->SetStringValue(str);
}
return c;