#!/usr/bin/env python
# -*- coding: utf-8 -*-

import wx
print(wx.VERSION_STRING)

import wx.dataview as dv

if 'phoenix' in wx.PlatformInfo:
    dviModel = dv.DataViewIndexListModel
else:
    dviModel = dv.PyDataViewIndexListModel


class Model(dviModel):
    def __init__(self):
        self.data = [str(n) for n in range(100)]
        super(Model, self).__init__()

    def GetValueByRow(self, row, col):
        return self.data[row]

    def GetColumnCount(self):
        return 1

    def GetCount(self):
        return 100


class List(dv.DataViewCtrl):
    def __init__(self, parent):
        super(List, self).__init__(parent)
        self.model = Model()
        self.AssociateModel(self.model)
        self.column = self.AppendTextColumn('Test', 0)
        self.model.Reset(100)

        wx.CallLater(2000, self.scroll)

    def scroll(self):
        try:
            print('POS1', self.GetScrollPos(wx.VERTICAL))
        except wx._core.PyAssertionError as err:
            print('ERROR', err)

        print('SCROLL', self.ScrollLines(20))

        try:
            print('POS2', self.GetScrollPos(wx.VERTICAL))
        except wx._core.PyAssertionError as err:
            print('ERROR', err)


app = wx.App()
frame = wx.Frame(None)
List(frame)
frame.Show()
app.MainLoop()
