#############################################################################
## Name: XS/ListCtrl.xs
## Purpose: XS for Wx::ListCtrl, Wx::ListItem
## Author: Mattia Barbon
## Modified by:
## Created: 04/02/2001
## RCS-ID: $Id: ListCtrl.xs 3447 2013-03-29 22:18:44Z mdootson $
## Copyright: (c) 2001-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/colour.h>
#include <wx/listctrl.h>
#if WXPERL_W_VERSION_LT( 2, 6, 0 )
#define wxListCtrlNameStr wxT("listCtrl")
#endif
MODULE=Wx_Evt PACKAGE=Wx::ListEvent
wxListEvent*
wxListEvent::new( eventType = wxEVT_NULL, id = 0 )
wxEventType eventType
int id
#if WXPERL_W_VERSION_GE( 2, 5, 1 )
bool
wxListEvent::IsEditCancelled()
#endif
long
wxListEvent::GetCacheFrom()
long
wxListEvent::GetCacheTo()
long
wxListEvent::GetIndex()
int
wxListEvent::GetColumn()
int
wxListEvent::GetKeyCode()
wxPoint*
wxListEvent::GetPoint()
CODE:
RETVAL = new wxPoint( THIS->GetPoint() );
OUTPUT:
RETVAL
wxString
wxListEvent::GetLabel()
wxString
wxListEvent::GetText()
int
wxListEvent::GetImage()
long
wxListEvent::GetData()
long
wxListEvent::GetMask()
wxListItem*
wxListEvent::GetItem()
CODE:
RETVAL = new wxListItem( THIS->GetItem() );
OUTPUT:
RETVAL
MODULE=Wx PACKAGE=Wx::ListItem
wxListItem*
wxListItem::new()
static void
wxListItem::CLONE()
CODE:
wxPli_thread_sv_clone( aTHX_ CLASS, (wxPliCloneSV)wxPli_detach_object );
## // thread OK
void
wxListItem::DESTROY()
CODE:
wxPli_thread_sv_unregister( aTHX_ "Wx::ListItem", THIS, ST(0) );
delete THIS;
void
wxListItem::Clear()
void
wxListItem::ClearAttributes()
void
wxListItem::SetMask( mask )
long mask
void
wxListItem::SetId( id )
long id
void
wxListItem::SetColumn( column )
int column
void
wxListItem::SetState( state )
long state
void
wxListItem::SetStateMask( stateMask )
long stateMask
void
wxListItem::SetText( text )
wxString text
void
wxListItem::SetImage( image )
int image
void
wxListItem::SetData( data )
long data
void
wxListItem::SetWidth( width )
int width
void
wxListItem::SetAlign( align )
wxListColumnFormat align
void
wxListItem::SetTextColour( colour )
wxColour colour
void
wxListItem::SetBackgroundColour( colour )
wxColour colour
void
wxListItem::SetFont( font )
wxFont* font
C_ARGS: *font
long
wxListItem::GetMask()
long
wxListItem::GetId()
int
wxListItem::GetColumn()
long
wxListItem::GetState()
wxString
wxListItem::GetText()
int
wxListItem::GetImage()
long
wxListItem::GetData()
int
wxListItem::GetWidth()
wxListColumnFormat
wxListItem::GetAlign()
wxColour*
wxListItem::GetTextColour()
CODE:
RETVAL = new wxColour( THIS->GetTextColour() );
OUTPUT:
RETVAL
wxColour*
wxListItem::GetBackgroundColour()
CODE:
RETVAL = new wxColour( THIS->GetBackgroundColour() );
OUTPUT:
RETVAL
wxFont*
wxListItem::GetFont()
CODE:
RETVAL = new wxFont( THIS->GetFont() );
OUTPUT:
RETVAL
MODULE=Wx PACKAGE=Wx::ListItemAttr
wxListItemAttr*
wxListItemAttr::new( ... )
CASE: items == 1
CODE:
RETVAL = new wxListItemAttr();
OUTPUT:
RETVAL
CASE: items == 4
INPUT:
wxColour text = NO_INIT
wxColour back = NO_INIT
wxFont* font = NO_INIT
CODE:
text = *(wxColour *) wxPli_sv_2_object( aTHX_ ST(1), "Wx::Colour" );
back = *(wxColour *) wxPli_sv_2_object( aTHX_ ST(2), "Wx::Colour" );
font = (wxFont *) wxPli_sv_2_object( aTHX_ ST(3), "Wx::Font" );
RETVAL = new wxListItemAttr( text, back, *font );
OUTPUT:
RETVAL
CASE:
CODE:
croak( "Usage: Wx::ListItemAttr::new(THIS [, text, back, font ] )" );
static void
wxListItemAttr::CLONE()
CODE:
wxPli_thread_sv_clone( aTHX_ CLASS, (wxPliCloneSV)wxPli_detach_object );
## // thread OK
void
wxListItemAttr::DESTROY()
CODE:
wxPli_thread_sv_unregister( aTHX_ "Wx::ListItemAttr", THIS, ST(0) );
delete THIS;
void
wxListItemAttr::SetTextColour( text )
wxColour text
void
wxListItemAttr::SetBackgroundColour( back )
wxColour back
void
wxListItemAttr::SetFont( font )
wxFont* font
CODE:
THIS->SetFont( *font );
bool
wxListItemAttr::HasTextColour()
bool
wxListItemAttr::HasBackgroundColour()
bool
wxListItemAttr::HasFont()
wxColour*
wxListItemAttr::GetTextColour()
CODE:
RETVAL = new wxColour( THIS->GetTextColour() );
OUTPUT:
RETVAL
wxColour*
wxListItemAttr::GetBackgroundColour()
CODE:
RETVAL = new wxColour( THIS->GetBackgroundColour() );
OUTPUT:
RETVAL
wxFont*
wxListItemAttr::GetFont()
CODE:
RETVAL = new wxFont( THIS->GetFont() );
OUTPUT:
RETVAL
MODULE=Wx PACKAGE=Wx::ListCtrl
#!sub OnGetItemText
#!sub OnGetItemImage
#!sub OnGetItemAttr
#!sub OnGetItemColumnImage
void
new( ... )
PPCODE:
BEGIN_OVERLOAD()
MATCH_VOIDM_REDISP( newDefault )
MATCH_ANY_REDISP( newFull )
END_OVERLOAD( "Wx::ListCtrl::new" )
wxListCtrl*
newDefault( CLASS )
PlClassName CLASS
CODE:
RETVAL = new wxPliListCtrl( CLASS );
wxPli_create_evthandler( aTHX_ RETVAL, CLASS );
OUTPUT: RETVAL
wxListCtrl*
newFull( CLASS, parent, id = wxID_ANY, pos = wxDefaultPosition, size = wxDefaultSize, style = wxLC_ICON, validator = (wxValidator*)&wxDefaultValidator, name = wxListCtrlNameStr )
PlClassName CLASS
wxWindow* parent
wxWindowID id
wxPoint pos
wxSize size
long style
wxValidator* validator
wxString name
CODE:
RETVAL = new wxPliListCtrl( CLASS, parent, id, pos, size, style,
*validator, name );
wxPli_create_evthandler( aTHX_ RETVAL, CLASS );
OUTPUT:
RETVAL
bool
wxListCtrl::Create( parent, id = wxID_ANY, pos = wxDefaultPosition, size = wxDefaultSize, style = wxLC_ICON, validator = (wxValidator*)&wxDefaultValidator, name = wxListCtrlNameStr )
wxWindow* parent
wxWindowID id
wxPoint pos
wxSize size
long style
wxValidator* validator
wxString name
C_ARGS: parent, id, pos, size, style, *validator, name
bool
wxListCtrl::Arrange( flag = wxLIST_ALIGN_DEFAULT )
int flag
void
wxListCtrl::AssignImageList( imagelist, which )
wxImageList* imagelist
int which
CODE:
wxPli_object_set_deleteable( aTHX_ ST(1), false );
THIS->AssignImageList( imagelist, which );
void
wxListCtrl::ClearAll()
bool
wxListCtrl::DeleteItem( item )
long item
bool
wxListCtrl::DeleteAllItems()
bool
wxListCtrl::DeleteColumn( col )
int col
void
wxListCtrl::EditLabel( item )
long item
bool
wxListCtrl::EnsureVisible( item )
long item
long
wxListCtrl::FindItem( start, str, partial = false )
long start
wxString str
bool partial
CODE:
RETVAL = THIS->FindItem( start, str, partial );
OUTPUT:
RETVAL
long
wxListCtrl::FindItemData( start, data )
long start
wxUIntPtr data
CODE:
RETVAL = THIS->FindItem( start, data );
OUTPUT:
RETVAL
long
wxListCtrl::FindItemAtPos( start, pt, direction )
long start
wxPoint pt
int direction
CODE:
RETVAL = THIS->FindItem( start, pt, direction );
OUTPUT:
RETVAL
wxListItem*
wxListCtrl::GetColumn( col )
int col
PREINIT:
wxListItem item;
CODE:
item.SetMask( wxLIST_MASK_TEXT|wxLIST_MASK_IMAGE|wxLIST_MASK_FORMAT );
if( THIS->GetColumn( col, item ) )
{
RETVAL = new wxListItem( item );
}
else
{
RETVAL = 0;
}
OUTPUT:
RETVAL
int
wxListCtrl::GetColumnCount()
int
wxListCtrl::GetColumnWidth( col )
int col
int
wxListCtrl::GetCountPerPage()
#if defined( __WXMSW__ ) || defined( __WXPERL_FORCE__ )
wxTextCtrl*
wxListCtrl::GetEditControl()
#endif
wxImageList*
wxListCtrl::GetImageList( which )
int which
CODE:
RETVAL = (wxImageList*)THIS->GetImageList( which );
OUTPUT:
RETVAL
CLEANUP:
wxPli_object_set_deleteable( aTHX_ ST(0), false );
wxListItem*
wxListCtrl::GetItem( id, col = -1 )
long id
int col
PREINIT:
wxListItem item;
CODE:
item.SetId( id );
if( col != -1 ) { item.SetColumn( col ); }
item.SetMask( wxLIST_MASK_TEXT|wxLIST_MASK_DATA|wxLIST_MASK_IMAGE|
wxLIST_MASK_STATE );
if( THIS->GetItem( item ) )
{
RETVAL = new wxListItem( item );
}
else
{
RETVAL = 0;
}
OUTPUT:
RETVAL
#if WXPERL_W_VERSION_GE( 2, 8, 4 )
wxUIntPtr
wxListCtrl::GetItemData( item )
long item
bool
wxListCtrl::SetItemPtrData( item, data )
long item
wxUIntPtr data
bool
wxListCtrl::SetItemData( item, data )
long item
wxUIntPtr data
CODE:
RETVAL = THIS->SetItemPtrData( item, data);
OUTPUT:
RETVAL
#else
long
wxListCtrl::GetItemData( item )
long item
bool
wxListCtrl::SetItemData( item, data )
long item
long data
#endif
wxPoint*
wxListCtrl::GetItemPosition( item )
long item
PREINIT:
wxPoint point;
CODE:
if( THIS->GetItemPosition( item, point ) )
{
RETVAL = new wxPoint( point );
}
else
{
RETVAL = 0;
}
OUTPUT:
RETVAL
wxRect*
wxListCtrl::GetItemRect( item, code = wxLIST_RECT_BOUNDS )
long item
int code
PREINIT:
wxRect rect;
CODE:
if( THIS->GetItemRect( item, rect, code ) )
{
RETVAL = new wxRect( rect );
}
else
{
RETVAL = 0;
}
OUTPUT: RETVAL
#if WXPERL_W_VERSION_GE( 2, 7, 2 ) && defined(__WXMSW__)
wxRect*
wxListCtrl::GetSubItemRect( item, subItem, code = wxLIST_RECT_BOUNDS )
long item
long subItem
int code
PREINIT:
wxRect rect;
CODE:
if( THIS->GetSubItemRect( item, subItem, rect, code ) )
{
RETVAL = new wxRect( rect );
}
else
{
RETVAL = 0;
}
OUTPUT: RETVAL
#endif
int
wxListCtrl::GetItemState( item, stateMask )
long item
long stateMask
int
wxListCtrl::GetItemCount()
#if WXPERL_W_VERSION_LE( 2, 5, 1 )
int
wxListCtrl::GetItemSpacing( isSmall )
bool isSmall
#else
wxSize*
wxListCtrl::GetItemSpacing()
CODE:
RETVAL = new wxSize( THIS->GetItemSpacing() );
OUTPUT: RETVAL
#endif
wxString
wxListCtrl::GetItemText( item )
long item
wxFont*
wxListCtrl::GetItemFont( item )
long item
CODE:
RETVAL = new wxFont( THIS->GetItemFont( item ) );
OUTPUT:
RETVAL
wxColour*
wxListCtrl::GetItemTextColour( item )
long item
CODE:
RETVAL = new wxColour( THIS->GetItemTextColour( item ) );
OUTPUT:
RETVAL
wxColour*
wxListCtrl::GetItemBackgroundColour( item )
long item
CODE:
RETVAL = new wxColour( THIS->GetItemBackgroundColour( item ) );
OUTPUT:
RETVAL
void
wxListCtrl::SetItemTextColour( item, colour )
long item
wxColour* colour
CODE:
THIS->SetItemTextColour( item, *colour );
void
wxListCtrl::SetItemBackgroundColour( item, colour )
long item
wxColour* colour
CODE:
THIS->SetItemBackgroundColour( item, *colour );
long
wxListCtrl::GetNextItem( item, geometry = wxLIST_NEXT_ALL, state = wxLIST_STATE_DONTCARE )
long item
int geometry
int state
int
wxListCtrl::GetSelectedItemCount()
wxColour*
wxListCtrl::GetTextColour()
CODE:
RETVAL = new wxColour( THIS->GetTextColour() );
OUTPUT:
RETVAL
long
wxListCtrl::GetTopItem()
#if WXPERL_W_VERSION_GE( 2, 5, 1 )
wxRect*
wxListCtrl::GetViewRect()
CODE:
RETVAL = new wxRect( THIS->GetViewRect() );
OUTPUT: RETVAL
#endif
void
wxListCtrl::HitTest( point )
wxPoint point
PREINIT:
int flags;
long item;
#if WXPERL_W_VERSION_GE( 2, 7, 2 )
long subitem;
#endif
PPCODE:
#if WXPERL_W_VERSION_GE( 2, 7, 2 )
item = THIS->HitTest( point, flags, &subitem );
#else
item = THIS->HitTest( point, flags );
#endif
EXTEND( SP, 3 );
PUSHs( sv_2mortal( newSViv( item ) ) );
PUSHs( sv_2mortal( newSViv( flags ) ) );
#if WXPERL_W_VERSION_GE( 2, 7, 2 )
PUSHs( sv_2mortal( newSViv( subitem ) ) );
#endif
void
wxListCtrl::InsertColumn( ... )
PPCODE:
BEGIN_OVERLOAD()
MATCH_REDISP( wxPliOvl_n_wlci, InsertColumnInfo )
MATCH_REDISP_COUNT_ALLOWMORE( wxPliOvl_n_s_n_n, InsertColumnString, 2 )
END_OVERLOAD( Wx::ListCtrl::InsertColumn )
long
wxListCtrl::InsertColumnInfo( col, info )
int col
wxListItem* info
CODE:
RETVAL = THIS->InsertColumn( col, *info );
OUTPUT:
RETVAL
long
wxListCtrl::InsertColumnString( col, heading, format = wxLIST_FORMAT_LEFT, width = -1 )
int col
wxString heading
int format
int width
CODE:
RETVAL = THIS->InsertColumn( col, heading, format, width );
OUTPUT:
RETVAL
long
wxListCtrl::InsertItem( info )
wxListItem* info
CODE:
RETVAL = THIS->InsertItem( *info );
OUTPUT:
RETVAL
long
wxListCtrl::InsertStringItem( index, label )
long index
wxString label
CODE:
RETVAL = THIS->InsertItem( index, label );
OUTPUT:
RETVAL
long
wxListCtrl::InsertImageItem( index, image )
long index
int image
CODE:
RETVAL = THIS->InsertItem( index, image );
OUTPUT:
RETVAL
long
wxListCtrl::InsertImageStringItem( index, label, image )
long index
wxString label
int image
CODE:
RETVAL = THIS->InsertItem( index, label, image );
OUTPUT:
RETVAL
bool
wxListCtrl::IsVirtual()
void
wxListCtrl::RefreshItem( item )
long item
void
wxListCtrl::RefreshItems( itemFrom, itemTo )
long itemFrom
long itemTo
bool
wxListCtrl::ScrollList( dx, dy )
int dx
int dy
bool
wxListCtrl::SetColumn( col, item )
int col
wxListItem* item
CODE:
RETVAL = THIS->SetColumn( col, *item );
OUTPUT:
RETVAL
bool
wxListCtrl::SetColumnWidth( col, width )
int col
int width
void
wxListCtrl::SetImageList( imagelist, which )
wxImageList* imagelist
int which
void
wxListCtrl::SetItemCount( count )
long count
void
wxListCtrl::SetItem( ... )
PPCODE:
BEGIN_OVERLOAD()
MATCH_REDISP( wxPliOvl_wlci, SetItemInfo )
MATCH_REDISP_COUNT_ALLOWMORE( wxPliOvl_n_n_s_n, SetItemString, 3 )
END_OVERLOAD( Wx::ListCtrl::SetItem )
bool
wxListCtrl::SetItemInfo( info )
wxListItem* info
CODE:
RETVAL = THIS->SetItem( *info );
OUTPUT:
RETVAL
bool
wxListCtrl::SetItemString( index, col, label, image = -1 )
long index
int col
wxString label
int image
CODE:
RETVAL = THIS->SetItem( index, col, label, image );
OUTPUT:
RETVAL
bool
wxListCtrl::SetItemImage( item, image, selImage )
long item
int image
int selImage
#if WXPERL_W_VERSION_GE( 2, 7, 2 )
bool
wxListCtrl::SetItemColumnImage( item, column, image )
long item
long column
int image
#endif
bool
wxListCtrl::SetItemPosition( item, pos )
long item
wxPoint pos
bool
wxListCtrl::SetItemState( item, state, stateMask )
long item
long state
long stateMask
void
wxListCtrl::SetItemText( item, text )
long item
wxString text
void
wxListCtrl::SetItemFont( item, font )
long item
wxFont* font
CODE:
THIS->SetItemFont( item, *font );
void
wxListCtrl::SetSingleStyle( style, add = true )
long style
bool add
void
wxListCtrl::SetTextColour( colour )
wxColour colour
void
wxListCtrl::SetWindowStyleFlag( style )
long style
bool
wxListCtrl::SortItems( function )
SV* function
CODE:
RETVAL = THIS->SortItems( (wxListCtrlCompare)&ListCtrlCompareFn,
PTR2IV( function ) );
OUTPUT:
RETVAL
MODULE=Wx PACKAGE=Wx::ListView
void
new( ... )
PPCODE:
BEGIN_OVERLOAD()
MATCH_VOIDM_REDISP( newDefault )
MATCH_ANY_REDISP( newFull )
END_OVERLOAD( "Wx::ListView::new" )
wxListView*
newDefault( CLASS )
PlClassName CLASS
CODE:
RETVAL = new wxPliListView( CLASS );
wxPli_create_evthandler( aTHX_ RETVAL, CLASS );
OUTPUT: RETVAL
wxListView*
newFull( CLASS, parent, id = wxID_ANY, pos = wxDefaultPosition, size = wxDefaultSize, style = wxLC_REPORT, validator = (wxValidator*)&wxDefaultValidator, name = wxListCtrlNameStr )
PlClassName CLASS
wxWindow* parent
wxWindowID id
wxPoint pos
wxSize size
long style
wxValidator* validator
wxString name
CODE:
RETVAL = new wxPliListView( CLASS, parent, id, pos, size, style,
*validator, name );
wxPli_create_evthandler( aTHX_ RETVAL, CLASS );
OUTPUT:
RETVAL
bool
wxListView::Create( parent, id = wxID_ANY, pos = wxDefaultPosition, size = wxDefaultSize, style = wxLC_REPORT, validator = (wxValidator*)&wxDefaultValidator, name = wxListCtrlNameStr )
wxWindow* parent
wxWindowID id
wxPoint pos
wxSize size
long style
wxValidator* validator
wxString name
C_ARGS: parent, id, pos, size, style, *validator, name
void
wxListView::Select( n, on )
long n
bool on
void
wxListView::SetColumnImage( col, image )
int col
int image
void
wxListView::ClearColumnImage( col )
int col
void
wxListView::Focus( index )
long index
long
wxListView::GetFocusedItem()
long
wxListView::GetFirstSelected()
long
wxListView::GetNextSelected( item )
long item
bool
wxListView::IsSelected( index )
long index