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);
protected:
NSScrollView* m_scrollView;
virtual void GetSelection( long* from, long* to ) const = 0 ;
virtual void WriteText( const wxString& str ) = 0 ;
+ virtual bool GetStyle( long position, wxTextAttr& style);
virtual void SetStyle( long start, long end, const wxTextAttr& style ) ;
virtual void Copy() ;
virtual void Cut() ;
// methods apply the given text style to the given selection or to
// set/get the style which will be used for all appended text
virtual bool SetFont( const wxFont &font );
+ virtual bool GetStyle(long position, wxTextAttr& style);
virtual bool SetStyle(long start, long end, const wxTextAttr& style);
virtual bool SetDefaultStyle(const wxTextAttr& style);
[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
return wxSize(wText, hText);
}
+bool wxTextCtrl::GetStyle(long position, wxTextAttr& style)
+{
+ return GetTextPeer()->GetStyle(position, style);
+}
+
// ----------------------------------------------------------------------------
// Undo/redo
// ----------------------------------------------------------------------------
// implementation base class
// ----------------------------------------------------------------------------
+bool wxTextWidgetImpl::GetStyle(long WXUNUSED(position),
+ wxTextAttr& WXUNUSED(style))
+{
+ return false;
+}
+
void wxTextWidgetImpl::SetStyle(long WXUNUSED(start),
long WXUNUSED(end),
const wxTextAttr& WXUNUSED(style))