#############################################################################
## 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 3293 2012-05-16 20:02:24Z mdootson $
## 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 )
%loadplugin{build::Wx::XSP::Overload};
%name{Wx::RichTextBuffer} class wxRichTextBuffer
{
%{
static void
wxRichTextBuffer::CLONE()
CODE:
wxPli_thread_sv_clone( aTHX_ CLASS, (wxPliCloneSV)wxPli_detach_object );
%}
// allow copy of wxRichTextBuffer
wxRichTextBuffer(const wxRichTextBuffer& obj);
%name{Destroy} virtual ~wxRichTextBuffer()
%code%{ wxPli_thread_sv_unregister( aTHX_ "Wx::RichTextBuffer", THIS, ST(0) );
if( wxPli_object_is_deleteable( aTHX_ ST(0) ) )
delete THIS;
%};
virtual void ResetAndClearCommands();
bool AddEventHandler( wxEvtHandler* handler );
void AddHandler( wxRichTextFileHandler* handler );
#if WXPERL_W_VERSION_GE( 2, 7, 1 )
%name{SetStyleEx} bool SetStyle
( const wxRichTextRange& range, const wxTextAttrEx& style,
int flags = wxRICHTEXT_SETSTYLE_WITH_UNDO );
%name{SetStyleRich} bool SetStyle
( const wxRichTextRange& range, const wxRichTextAttr& style,
int flags = wxRICHTEXT_SETSTYLE_WITH_UNDO );
%{
void
wxRichTextBuffer::SetStyle( ... )
PPCODE:
BEGIN_OVERLOAD()
MATCH_REDISP_COUNT_ALLOWMORE( wxPliOvl_wrtr_wrta_n, SetStyleRich, 2 )
MATCH_REDISP_COUNT_ALLOWMORE( wxPliOvl_wrtr_wtae_n, SetStyleEx, 2 )
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
wxRichTextBuffer::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 );
#if WXPERL_W_VERSION_LT( 2, 9, 2 )
void
wxRichTextBuffer::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 );
#endif
#if WXPERL_W_VERSION_GE( 2, 7, 1 )
void
wxRichTextBuffer::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 );
#if WXPERL_W_VERSION_LT( 2, 9, 2 )
void
wxRichTextBuffer::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
#endif
#if WXPERL_W_VERSION_GE( 2, 8, 0 ) && WXPERL_W_VERSION_LT( 2, 9, 2 )
void
wxRichTextBuffer::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
#if WXPERL_W_VERSION_GE( 2, 9, 2 )
void
wxRichTextBuffer::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 );
#endif
%}