#############################################################################
## Name: XS/VScrolledWindow.xsp
## Purpose: XS++ for Wx::[HV]ScrolledWindow
## Author: Mattia Barbon
## Modified by:
## Created: 18/09/2006
## RCS-ID: $Id: VScrolledWindow.xsp 3039 2011-03-19 14:40:15Z mdootson $
## Copyright: (c) 2006-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
#############################################################################
%module{Wx};
%typemap{wxVScrolledWindow*}{simple};
%typemap{wxHScrolledWindow*}{simple};
%typemap{wxHVScrolledWindow*}{simple};
%typemap{wxPlVScrolledWindow*}{simple};
%typemap{wxPlHScrolledWindow*}{simple};
%typemap{wxPlHVScrolledWindow*}{simple};
#if WXPERL_W_VERSION_GE( 2, 5, 0 )
#include <wx/vscroll.h>
#if WXPERL_W_VERSION_GE( 2, 9, 0 )
%name{Wx::HScrolledWindow} class wxHScrolledWindow
{
bool Create( wxWindow *parent, wxWindowID id = wxID_ANY,
const wxPoint& pos = wxDefaultPosition,
const wxSize& size = wxDefaultSize,
long style = 0,
const wxString& name = wxPanelNameStr );
## wxVarScrollHelperBase
INCLUDE_COMMAND: $^X -pe "s/VarScrollHelperBase/HScrolledWindow/g" XS/VarScrollHelperBase.xs
## wxVarHScrollHelper
INCLUDE_COMMAND: $^X -pe "s/VarHScrollHelper/HScrolledWindow/g" XS/VarHScrollHelper.xs
};
#endif
%name{Wx::VScrolledWindow} class wxVScrolledWindow
{
bool Create( wxWindow *parent, wxWindowID id = wxID_ANY,
const wxPoint& pos = wxDefaultPosition,
const wxSize& size = wxDefaultSize,
long style = 0,
const wxString& name = wxPanelNameStr );
#if WXPERL_W_VERSION_GE( 2, 9, 0 )
## compatibility with < 2.9
%name{SetLineCount} void SetRowCount( size_t count );
%name{ScrollToLine} bool ScrollToRow( size_t line );
%name{RefreshLine} void RefreshRow( size_t line );
%name{RefreshLines} void RefreshRows( size_t from, size_t to );
%name{GetLineCount} size_t GetRowCount() const;
%name{GetFirstVisibleLine} size_t GetVisibleRowsBegin() const;
%name{GetLastVisibleLine} size_t GetVisibleRowsEnd() const;
%name{ScrollLines} bool ScrollRows( int lines );
%name{ScrollPages} bool ScrollRowPages( int pages );
## wxVarScrollHelperBase
INCLUDE_COMMAND: $^X -pe "s/VarScrollHelperBase/VScrolledWindow/g" XS/VarScrollHelperBase.xs
## wxVarVScrollHelper
INCLUDE_COMMAND: $^X -pe "s/VarVScrollHelper/VScrolledWindow/g" XS/VarVScrollHelper.xs
#else
## old interface
void SetLineCount( size_t count );
bool ScrollToLine( size_t line );
void RefreshLine( size_t line );
void RefreshLines( size_t from, size_t to );
size_t GetLineCount() const;
size_t GetFirstVisibleLine() const;
size_t GetLastVisibleLine() const;
bool ScrollLines( int lines );
bool ScrollPages( int pages );
## forward compatibilty with 2.9
%name{SetRowCount} void SetLineCount( size_t count );
%name{ScrollToRow} bool ScrollToLine( size_t line );
%name{RefreshRow} void RefreshLine( size_t line );
%name{RefreshRows} void RefreshLines( size_t from, size_t to );
%name{GetRowCount} size_t GetLineCount() const;
%name{GetVisibleRowsBegin} size_t GetFirstVisibleLine() const;
%name{GetVisibleRowsEnd} size_t GetLastVisibleLine() const;
%name{ScrollRows} bool ScrollLines( int lines );
%name{ScrollRowPages} bool ScrollPages( int pages );
## already in wxVarScrollHelperBase
void RefreshAll();
#if WXPERL_W_VERSION_GE( 2, 6, 0 )
size_t GetVisibleBegin() const;
size_t GetVisibleEnd() const;
#endif
bool IsVisible( size_t line ) const;
%name{IsRowVisible} bool IsVisible( size_t line ) const;
#endif
int HitTest( const wxPoint& pt ) const;
bool Layout();
};
#if WXPERL_W_VERSION_GE( 2, 9, 0 )
%name{Wx::HVScrolledWindow} class wxHVScrolledWindow
{
bool Create( wxWindow *parent, wxWindowID id = wxID_ANY,
const wxPoint& pos = wxDefaultPosition,
const wxSize& size = wxDefaultSize,
long style = 0,
const wxString& name = wxPanelNameStr );
## poor man's MI support; should use dynamic_cast<> in typemap
## wxVarHScrollHelper
INCLUDE_COMMAND: $^X -pe "s/VarHScrollHelper/HVScrolledWindow/g" XS/VarHScrollHelper.xs
## wxVarVScrollHelper
INCLUDE_COMMAND: $^X -pe "s/VarVScrollHelper/HVScrolledWindow/g" XS/VarVScrollHelper.xs
## wxVarHVScrollHelper
INCLUDE_COMMAND: $^X -pe "s/VarHVScrollHelper/HVScrolledWindow/g" XS/VarHVScrollHelper.xs
};
#endif
%file{xspp/vscrl.h};
%{
#if WXPERL_W_VERSION_GE( 2, 9, 0 )
class wxPlHScrolledWindow : public wxHScrolledWindow {
WXPLI_DECLARE_DYNAMIC_CLASS( wxPlHScrolledWindow );
WXPLI_DECLARE_V_CBACK();
public:
WXPLI_DEFAULT_CONSTRUCTOR( wxPlHScrolledWindow, "Wx::HScrolledWindow",
true );
WXPLI_CONSTRUCTOR_6( wxPlHScrolledWindow, "Wx::HScrolledWindow", true,
wxWindow*, wxWindowID, const wxPoint&,
const wxSize&, long, const wxString& );
// wxVarHScrollHelper
DEC_V_CBACK_WXCOORD__SIZET_const( OnGetColumnWidth );
DEC_V_CBACK_VOID__SIZET_SIZET_const( OnGetColumnsWidthHint );
DEC_V_CBACK_WXCOORD__VOID_const( EstimateTotalWidth );
};
// wxVarHScrollHelper
DEF_V_CBACK_WXCOORD__SIZET_const_pure( wxPlHScrolledWindow, wxHScrolledWindow,
OnGetColumnWidth );
DEF_V_CBACK_VOID__SIZET_SIZET_const( wxPlHScrolledWindow, wxHScrolledWindow,
OnGetColumnsWidthHint );
DEF_V_CBACK_WXCOORD__VOID_const( wxPlHScrolledWindow, wxHScrolledWindow,
EstimateTotalWidth );
WXPLI_IMPLEMENT_DYNAMIC_CLASS( wxPlHScrolledWindow, wxHScrolledWindow );
#endif
class wxPlVScrolledWindow : public wxVScrolledWindow {
WXPLI_DECLARE_DYNAMIC_CLASS( wxPlVScrolledWindow );
WXPLI_DECLARE_V_CBACK();
public:
WXPLI_DEFAULT_CONSTRUCTOR( wxPlVScrolledWindow, "Wx::VScrolledWindow",
true );
WXPLI_CONSTRUCTOR_6( wxPlVScrolledWindow, "Wx::VScrolledWindow", true,
wxWindow*, wxWindowID, const wxPoint&,
const wxSize&, long, const wxString& );
// < 2.9
#if WXPERL_W_VERSION_LT( 2, 9, 0 ) || WXWIN_COMPATIBILITY_2_8
DEC_V_CBACK_WXCOORD__SIZET_const( OnGetLineHeight );
DEC_V_CBACK_VOID__SIZET_SIZET_const( OnGetLinesHint );
#endif
// wxVarVScrollHelper
#if WXPERL_W_VERSION_GE( 2, 9, 0 )
DEC_V_CBACK_WXCOORD__SIZET_const( OnGetRowHeight );
DEC_V_CBACK_VOID__SIZET_SIZET_const( OnGetRowsHeightHint );
#endif
DEC_V_CBACK_WXCOORD__VOID_const( EstimateTotalHeight );
};
// < 2.9
#if WXPERL_W_VERSION_LT( 2, 9, 0 ) || WXWIN_COMPATIBILITY_2_8
DEF_V_CBACK_WXCOORD__SIZET_const_pure( wxPlVScrolledWindow, wxVScrolledWindow,
OnGetLineHeight );
DEF_V_CBACK_VOID__SIZET_SIZET_const( wxPlVScrolledWindow, wxVScrolledWindow,
OnGetLinesHint );
#endif
// wxVarVScrollHelper
#if WXPERL_W_VERSION_GE( 2, 9, 0 )
DEF_V_CBACK_WXCOORD__SIZET_const_pure( wxPlVScrolledWindow, wxVScrolledWindow,
OnGetRowHeight );
DEF_V_CBACK_VOID__SIZET_SIZET_const( wxPlVScrolledWindow, wxVScrolledWindow,
OnGetRowsHeightHint );
#endif
DEF_V_CBACK_WXCOORD__VOID_const( wxPlVScrolledWindow, wxVScrolledWindow,
EstimateTotalHeight );
WXPLI_IMPLEMENT_DYNAMIC_CLASS( wxPlVScrolledWindow, wxVScrolledWindow );
#if WXPERL_W_VERSION_GE( 2, 9, 0 )
class wxPlHVScrolledWindow : public wxHVScrolledWindow {
WXPLI_DECLARE_DYNAMIC_CLASS( wxPlHVScrolledWindow );
WXPLI_DECLARE_V_CBACK();
public:
WXPLI_DEFAULT_CONSTRUCTOR( wxPlHVScrolledWindow, "Wx::HVScrolledWindow",
true );
WXPLI_CONSTRUCTOR_6( wxPlHVScrolledWindow, "Wx::HVScrolledWindow", true,
wxWindow*, wxWindowID, const wxPoint&,
const wxSize&, long, const wxString& );
// wxVarHScrollHelper
DEC_V_CBACK_WXCOORD__SIZET_const( OnGetColumnWidth );
DEC_V_CBACK_VOID__SIZET_SIZET_const( OnGetColumnsWidthHint );
DEC_V_CBACK_WXCOORD__VOID_const( EstimateTotalWidth );
// wxVarVScrollHelper
DEC_V_CBACK_WXCOORD__SIZET_const( OnGetRowHeight );
DEC_V_CBACK_VOID__SIZET_SIZET_const( OnGetRowsHeightHint );
DEC_V_CBACK_WXCOORD__VOID_const( EstimateTotalHeight );
};
// wxVarHScrollHelper
DEF_V_CBACK_WXCOORD__SIZET_const_pure( wxPlHVScrolledWindow, wxHVScrolledWindow,
OnGetColumnWidth );
DEF_V_CBACK_VOID__SIZET_SIZET_const( wxPlHVScrolledWindow, wxHVScrolledWindow,
OnGetColumnsWidthHint );
DEF_V_CBACK_WXCOORD__VOID_const( wxPlHVScrolledWindow, wxHVScrolledWindow,
EstimateTotalWidth );
// wxVarVScrollHelper
DEF_V_CBACK_WXCOORD__SIZET_const_pure( wxPlHVScrolledWindow, wxHVScrolledWindow,
OnGetRowHeight );
DEF_V_CBACK_VOID__SIZET_SIZET_const( wxPlHVScrolledWindow, wxHVScrolledWindow,
OnGetRowsHeightHint );
DEF_V_CBACK_WXCOORD__VOID_const( wxPlHVScrolledWindow, wxHVScrolledWindow,
EstimateTotalHeight );
WXPLI_IMPLEMENT_DYNAMIC_CLASS( wxPlHVScrolledWindow, wxHVScrolledWindow );
#endif
%}
%file{-};
#include "cpp/overload.h"
#include "xspp/vscrl.h"
#if WXPERL_W_VERSION_GE( 2, 9, 0 )
%name{Wx::PlHScrolledWindow} class wxPlHScrolledWindow
{
%{
void
new( ... )
PPCODE:
BEGIN_OVERLOAD()
MATCH_VOIDM_REDISP( newDefault )
MATCH_ANY_REDISP( newFull )
END_OVERLOAD( "Wx::PlHScrolledWindow::new" )
%}
%name{newDefault} wxPlHScrolledWindow()
%code{% RETVAL = new wxPlHScrolledWindow( CLASS );
wxPli_create_evthandler( aTHX_ RETVAL, CLASS );
%};
%name{newFull} wxPlHScrolledWindow( wxWindow *parent,
wxWindowID id = wxID_ANY,
const wxPoint& pos = wxDefaultPosition,
const wxSize& size = wxDefaultSize,
long style = 0,
const wxString& name = wxPanelNameStr )
%code{% RETVAL = new wxPlHScrolledWindow( CLASS, parent, id, pos, size,
style, name );
wxPli_create_evthandler( aTHX_ RETVAL, CLASS );
%};
};
#endif
%name{Wx::PlVScrolledWindow} class wxPlVScrolledWindow
{
%{
void
new( ... )
PPCODE:
BEGIN_OVERLOAD()
MATCH_VOIDM_REDISP( newDefault )
MATCH_ANY_REDISP( newFull )
END_OVERLOAD( "Wx::PlVScrolledWindow::new" )
%}
%name{newDefault} wxPlVScrolledWindow()
%code{% RETVAL = new wxPlVScrolledWindow( CLASS );
wxPli_create_evthandler( aTHX_ RETVAL, CLASS );
%};
%name{newFull} wxPlVScrolledWindow( wxWindow *parent,
wxWindowID id = wxID_ANY,
const wxPoint& pos = wxDefaultPosition,
const wxSize& size = wxDefaultSize,
long style = 0,
const wxString& name = wxPanelNameStr )
%code{% RETVAL = new wxPlVScrolledWindow( CLASS, parent, id, pos, size,
style, name );
wxPli_create_evthandler( aTHX_ RETVAL, CLASS );
%};
};
#if WXPERL_W_VERSION_GE( 2, 9, 0 )
%name{Wx::PlHVScrolledWindow} class wxPlHVScrolledWindow
{
%{
void
new( ... )
PPCODE:
BEGIN_OVERLOAD()
MATCH_VOIDM_REDISP( newDefault )
MATCH_ANY_REDISP( newFull )
END_OVERLOAD( "Wx::PlHVScrolledWindow::new" )
%}
%name{newDefault} wxPlHVScrolledWindow()
%code{% RETVAL = new wxPlHVScrolledWindow( CLASS );
wxPli_create_evthandler( aTHX_ RETVAL, CLASS );
%};
%name{newFull} wxPlHVScrolledWindow( wxWindow *parent,
wxWindowID id = wxID_ANY,
const wxPoint& pos = wxDefaultPosition,
const wxSize& size = wxDefaultSize,
long style = 0,
const wxString& name = wxPanelNameStr )
%code{% RETVAL = new wxPlHVScrolledWindow( CLASS, parent, id, pos,
size, style, name );
wxPli_create_evthandler( aTHX_ RETVAL, CLASS );
%};
};
#endif
#endif