--- /dev/null
+#############################################################################
+## Name: ext/richtext/XS/RichTextBuffer.xsp
+## Purpose: XS++ for Wx::RichTextBuffer
+## Author: Mattia Barbon
+## Modified by:
+## Created: 03/09/2007
+## RCS-ID: $Id: RichTextBuffer.xsp 2738 2010-01-03 20:03:42Z mbarbon $
+## Copyright: (c) 2007, 2010 Mattia Barbon
+## Licence: This program is free software; you can redistribute it and/or
+## modify it under the same terms as Perl itself
+#############################################################################
+
+#include <wx/event.h>
+#include <wx/richtext/richtextbuffer.h>
+
+%module{Wx};
+
+## DECLARE_OVERLOAD( wrta, Wx::RichTextAttr )
+## DECLARE_OVERLOAD( wrtr, Wx::RichTextRange )
+## DECLARE_OVERLOAD( wtae, Wx::TextAttrEx )
+
+%name{Wx::RichTextBuffer} class wxRichTextBuffer
+{
+ bool AddEventHandler( wxEvtHandler* handler );
+ void AddHandler( wxRichTextFileHandler* handler );
+
+#if WXPERL_W_VERSION_GE( 2, 7, 1 )
+ %name{SetStyleRange} bool SetStyle
+ ( const wxRichTextRange& range, const wxTextAttrEx& style,
+ int flags = wxRICHTEXT_SETSTYLE_WITH_UNDO );
+ %name{SetStyleExRange} bool SetStyle
+ ( const wxRichTextRange& range, const wxRichTextAttr& style,
+ int flags = wxRICHTEXT_SETSTYLE_WITH_UNDO );
+%{
+void
+wxRichTextBuffer::SetStyle( ... )
+ PPCODE:
+ BEGIN_OVERLOAD()
+ MATCH_REDISP( wxPliOvl_wrtr_wrta_n, SetStyleRange )
+ MATCH_REDISP( wxPliOvl_wrtr_wtae_n, SetStyleExRange )
+ END_OVERLOAD( "Wx::RichTextBuffer::SetStyle" )
+
+%}
+#endif
+
+ bool InsertTextWithUndo( long pos, const wxString& text,
+ wxRichTextCtrl* ctrl, int flags = 0 );
+ bool InsertNewlineWithUndo( long pos, wxRichTextCtrl* ctrl,
+ int flags = 0 );
+
+ const wxTextAttrEx& GetBasicStyle() const;
+ const wxTextAttrEx& GetDefaultStyle() const;
+
+ bool BeginStyle( const wxTextAttrEx& style );
+ bool EndStyle();
+ bool EndAllStyles();
+ bool BeginBold();
+ bool EndBold();
+ bool BeginItalic();
+ bool EndItalic();
+ bool BeginUnderline();
+ bool EndUnderline();
+ bool BeginFontSize( int pointSize );
+ bool EndFontSize();
+ bool BeginFont( const wxFont& font );
+ bool EndFont();
+ bool BeginTextColour( const wxColour& colour );
+ bool EndTextColour();
+ bool BeginAlignment( wxTextAttrAlignment alignment );
+ bool EndAlignment();
+ bool BeginLeftIndent( int leftIndent, int leftSubIndent = 0 );
+ bool EndLeftIndent();
+ bool BeginRightIndent( int rightIndent );
+ bool EndRightIndent();
+ bool BeginParagraphSpacing( int before, int after );
+ bool EndParagraphSpacing();
+ bool BeginLineSpacing( int lineSpacing );
+ bool EndLineSpacing();
+ bool BeginNumberedBullet( int bulletNumber, int leftIndent,
+ int leftSubIndent,
+ int bulletStyle = wxTEXT_ATTR_DEFAULT_NUMBERED_BULLET );
+ bool EndNumberedBullet();
+#if WXPERL_W_VERSION_GE( 2, 7, 2 )
+ bool BeginSymbolBullet( const wxString& symbol, int leftIndent,
+ int leftSubIndent, int bulletStyle = wxTEXT_ATTR_BULLET_STYLE_SYMBOL );
+#else
+ bool BeginSymbolBullet( wxChar symbol, int leftIndent,
+ int leftSubIndent, int bulletStyle = wxTEXT_ATTR_BULLET_STYLE_SYMBOL );
+#endif
+ bool EndSymbolBullet();
+#if WXPERL_W_VERSION_GE( 2, 7, 2 )
+ bool BeginStandardBullet( const wxString& bulletName, int leftIndent,
+ int leftSubIndent, int bulletStyle = wxTEXT_ATTR_BULLET_STYLE_STANDARD );
+ bool EndStandardBullet();
+#endif
+ bool BeginCharacterStyle( const wxString& characterStyle );
+ bool EndCharacterStyle();
+ bool BeginParagraphStyle( const wxString& paragraphStyle );
+ bool EndParagraphStyle();
+#if WXPERL_W_VERSION_GE( 2, 7, 2 )
+ bool BeginListStyle( const wxString& listStyle, int level = 1,
+ int number = 1 );
+ bool EndListStyle();
+ bool BeginURL( const wxString& url,
+ const wxString& characterStyle = wxEmptyString );
+ bool EndURL();
+#endif
+#if WXPERL_W_VERSION_GE( 2, 7, 2 )
+ bool ClearListStyle( const wxRichTextRange& range,
+ int flags = wxRICHTEXT_SETSTYLE_WITH_UNDO );
+#endif
+
+ wxRichTextRange AddParagraph( const wxString& text );
+ wxRichTextRange AddImage( const wxImage& image );
+
+ bool BeginBatchUndo( const wxString& cmdName );
+ bool EndBatchUndo();
+ bool BatchingUndo() const;
+ bool BeginSuppressUndo();
+ bool EndSuppressUndo();
+ bool SuppressingUndo() const;
+
+ void SetStyleSheet( wxRichTextStyleSheet* styleSheet );
+ wxRichTextStyleSheetDisown* GetStyleSheet() const;
+
+#if WXPERL_W_VERSION_GE( 2, 7, 2 )
+ bool PushStyleSheet( wxRichTextStyleSheetDisown* styleSheet );
+ wxRichTextStyleSheetDisown* PopStyleSheet();
+#endif
+
+ %name{SetBasicStyleRich} void SetBasicStyle( const wxRichTextAttr& style );
+ %name{SetBasicStyleEx} void SetBasicStyle( const wxTextAttrEx& style );
+%{
+void
+wxRichTextBuffer::SetBasicStyle( ... )
+ PPCODE:
+ BEGIN_OVERLOAD()
+ MATCH_REDISP( wxPliOvl_wrta, SetBasicStyleRich )
+ MATCH_REDISP( wxPliOvl_wtae, SetBasicStyleEx )
+ END_OVERLOAD( "Wx::RichTextBuffer::SetBasicStyle" )
+
+%}
+
+};
+
+%{
+void
+wxRichTextCtrl::GetRichTextAttrStyle( position )
+ long position
+ PPCODE:
+ wxRichTextAttr attr;
+ bool retval = THIS->GetStyle( position, attr );
+ EXTEND( SP, 2 );
+ PUSHs( newSViv( retval ) );
+ PUSHs( retval ? wxPli_non_object_2_sv( aTHX_ sv_newmortal(),
+ new wxRichTextAttr( attr ),
+ "Wx::RichTextAttr" ) :
+ &PL_sv_undef );
+
+void
+wxRichTextCtrl::GetTextAttrExStyle( position )
+ long position
+ PPCODE:
+ wxTextAttrEx attr;
+ bool retval = THIS->GetStyle( position, attr );
+ EXTEND( SP, 2 );
+ PUSHs( newSViv( retval ) );
+ PUSHs( retval ? wxPli_non_object_2_sv( aTHX_ sv_newmortal(),
+ new wxTextAttrEx( attr ),
+ "Wx::TextAttrEx" ) :
+ &PL_sv_undef );
+
+#if WXPERL_W_VERSION_GE( 2, 7, 1 )
+
+void
+wxRichTextCtrl::GetRichTextAttrUncombinedStyle( position )
+ long position
+ PPCODE:
+ wxRichTextAttr attr;
+ bool retval = THIS->GetUncombinedStyle( position, attr );
+ EXTEND( SP, 2 );
+ PUSHs( newSViv( retval ) );
+ PUSHs( retval ? wxPli_non_object_2_sv( aTHX_ sv_newmortal(),
+ new wxRichTextAttr( attr ),
+ "Wx::RichTextAttr" ) :
+ &PL_sv_undef );
+
+void
+wxRichTextCtrl::GetTextAttrExUncombinedStyle( position )
+ long position
+ PPCODE:
+ wxTextAttrEx attr;
+ bool retval = THIS->GetUncombinedStyle( position, attr );
+ EXTEND( SP, 2 );
+ PUSHs( newSViv( retval ) );
+ PUSHs( retval ? wxPli_non_object_2_sv( aTHX_ sv_newmortal(),
+ new wxTextAttrEx( attr ),
+ "Wx::TextAttrEx" ) :
+ &PL_sv_undef );
+
+#endif
+
+#if WXPERL_W_VERSION_GE( 2, 8, 0 )
+
+void
+wxRichTextCtrl::GetRichTextAttrStyleForRange( range )
+ wxRichTextRange* range
+ PPCODE:
+ wxRichTextAttr attr;
+ bool retval = THIS->GetStyleForRange( *range, attr );
+ EXTEND( SP, 2 );
+ PUSHs( newSViv( retval ) );
+ PUSHs( retval ? wxPli_non_object_2_sv( aTHX_ sv_newmortal(),
+ new wxRichTextAttr( attr ),
+ "Wx::RichTextAttr" ) :
+ &PL_sv_undef );
+
+void
+wxRichTextCtrl::GetTextAttrExStyleForRange( range )
+ wxRichTextRange* range
+ PPCODE:
+ wxTextAttrEx attr;
+ bool retval = THIS->GetStyleForRange( *range, attr );
+ EXTEND( SP, 2 );
+ PUSHs( newSViv( retval ) );
+ PUSHs( retval ? wxPli_non_object_2_sv( aTHX_ sv_newmortal(),
+ new wxTextAttrEx( attr ),
+ "Wx::TextAttrEx" ) :
+ &PL_sv_undef );
+
+#endif
+
+%}