Updated wxColumnSorterMixin to also be able to place sort icons on the
column headers, and updated the wxListCtrl demo to show it off by using wxColumnSorterMixin. Other odds and ends... git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@11549 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
This commit is contained in:
@@ -19,7 +19,7 @@ Added XRCed to the wxPython Tools directory, contributed by Roman
|
|||||||
Rolinsky.
|
Rolinsky.
|
||||||
|
|
||||||
Added a new "constructor" to most of the window classes that calls the
|
Added a new "constructor" to most of the window classes that calls the
|
||||||
default C++ contructor, (the on with no parameters) and also added the
|
default C++ contructor, (the one with no parameters) and also added the
|
||||||
coresponding Create(...) method. This allows you to do a 2-step
|
coresponding Create(...) method. This allows you to do a 2-step
|
||||||
creation of windows which is sometimes required for doing things such
|
creation of windows which is sometimes required for doing things such
|
||||||
as setting extended style flags before the window is created, or for
|
as setting extended style flags before the window is created, or for
|
||||||
@@ -31,6 +31,10 @@ etc.
|
|||||||
Updated to version 1.39 of Scintilla and updated wxStyledTextCtrl
|
Updated to version 1.39 of Scintilla and updated wxStyledTextCtrl
|
||||||
accordingly.
|
accordingly.
|
||||||
|
|
||||||
|
Updated wxColumnSorterMixin to also be able to place sort icons on the
|
||||||
|
column headers, and updated the wxListCtrl demo to show it off by
|
||||||
|
using wxColumnSorterMixin.
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
2.3.1
|
2.3.1
|
||||||
|
@@ -73,9 +73,12 @@ include src/gtk/*.cpp
|
|||||||
include src/gtk/*.h
|
include src/gtk/*.h
|
||||||
include src/gtk/*.py
|
include src/gtk/*.py
|
||||||
|
|
||||||
# src/motif/*.cpp
|
include tools/*.py
|
||||||
# src/motif/*.h
|
tools\XRCed\CHANGES
|
||||||
# src/motif/*.py
|
tools\XRCed\TODO
|
||||||
|
tools\XRCed\README
|
||||||
|
tools\XRCed\*.py
|
||||||
|
tools\XRCed\*.xrc
|
||||||
|
|
||||||
|
|
||||||
include contrib/glcanvas/*.i
|
include contrib/glcanvas/*.i
|
||||||
|
@@ -24,12 +24,13 @@ import images
|
|||||||
_treeList = [
|
_treeList = [
|
||||||
('New since last release', ['ContextHelp',
|
('New since last release', ['ContextHelp',
|
||||||
'PyCrust',
|
'PyCrust',
|
||||||
'VirtualListCtrl'
|
'VirtualListCtrl',
|
||||||
|
'wxListCtrl',
|
||||||
]),
|
]),
|
||||||
|
|
||||||
('Managed Windows', ['wxFrame', 'wxDialog', 'wxMiniFrame']),
|
('Windows', ['wxFrame', 'wxDialog', 'wxMiniFrame',
|
||||||
|
'',
|
||||||
('Non-Managed Windows', ['wxGrid', 'wxSashWindow',
|
'wxGrid', 'wxSashWindow',
|
||||||
'wxScrolledWindow', 'wxSplitterWindow',
|
'wxScrolledWindow', 'wxSplitterWindow',
|
||||||
'wxStatusBar', 'wxNotebook',
|
'wxStatusBar', 'wxNotebook',
|
||||||
'wxHtmlWindow',
|
'wxHtmlWindow',
|
||||||
|
BIN
wxPython/demo/bmp_source/sm_down.bmp
Normal file
BIN
wxPython/demo/bmp_source/sm_down.bmp
Normal file
Binary file not shown.
After Width: | Height: | Size: 246 B |
BIN
wxPython/demo/bmp_source/sm_up.bmp
Normal file
BIN
wxPython/demo/bmp_source/sm_up.bmp
Normal file
Binary file not shown.
After Width: | Height: | Size: 246 B |
@@ -48,6 +48,9 @@ command_lines = [
|
|||||||
|
|
||||||
"-a -n GridBG bmp_source/GridBG.gif images.py",
|
"-a -n GridBG bmp_source/GridBG.gif images.py",
|
||||||
|
|
||||||
|
"-a -n SmallUpArrow -m #0000FF bmp_source/sm_up.bmp images.py",
|
||||||
|
"-a -n SmallDnArrow -m #0000FF bmp_source/sm_down.bmp images.py",
|
||||||
|
|
||||||
]
|
]
|
||||||
|
|
||||||
|
|
||||||
|
File diff suppressed because it is too large
Load Diff
@@ -12,6 +12,7 @@
|
|||||||
#----------------------------------------------------------------------------
|
#----------------------------------------------------------------------------
|
||||||
|
|
||||||
from wxPython.wx import *
|
from wxPython.wx import *
|
||||||
|
from wxPython.lib.mixins.listctrl import wxColumnSorterMixin
|
||||||
|
|
||||||
#---------------------------------------------------------------------------
|
#---------------------------------------------------------------------------
|
||||||
|
|
||||||
@@ -59,7 +60,7 @@ musicdata = {
|
|||||||
|
|
||||||
import images
|
import images
|
||||||
|
|
||||||
class TestListCtrlPanel(wxPanel):
|
class TestListCtrlPanel(wxPanel, wxColumnSorterMixin):
|
||||||
def __init__(self, parent, log):
|
def __init__(self, parent, log):
|
||||||
wxPanel.__init__(self, parent, -1, style=wxWANTS_CHARS)
|
wxPanel.__init__(self, parent, -1, style=wxWANTS_CHARS)
|
||||||
|
|
||||||
@@ -70,6 +71,11 @@ class TestListCtrlPanel(wxPanel):
|
|||||||
bmp = images.getSmilesBitmap()
|
bmp = images.getSmilesBitmap()
|
||||||
#idx1 = self.il.AddWithColourMask(bmp, wxWHITE)
|
#idx1 = self.il.AddWithColourMask(bmp, wxWHITE)
|
||||||
idx1 = self.il.Add(bmp)
|
idx1 = self.il.Add(bmp)
|
||||||
|
bmp = images.getSmallUpArrowBitmap()
|
||||||
|
self.sm_up = self.il.Add(bmp)
|
||||||
|
bmp = images.getSmallDnArrowBitmap()
|
||||||
|
self.sm_dn = self.il.Add(bmp)
|
||||||
|
|
||||||
|
|
||||||
self.list = wxListCtrl(self, tID,
|
self.list = wxListCtrl(self, tID,
|
||||||
style=wxLC_REPORT|wxSUNKEN_BORDER)#|wxLC_VRULES|wxLC_HRULES)
|
style=wxLC_REPORT|wxSUNKEN_BORDER)#|wxLC_VRULES|wxLC_HRULES)
|
||||||
@@ -78,9 +84,29 @@ class TestListCtrlPanel(wxPanel):
|
|||||||
# Why doesn't this show up on MSW???
|
# Why doesn't this show up on MSW???
|
||||||
self.list.SetToolTip(wxToolTip("This is a ToolTip!"))
|
self.list.SetToolTip(wxToolTip("This is a ToolTip!"))
|
||||||
|
|
||||||
|
if 0:
|
||||||
|
# for normal simple columns, you can add them like this:
|
||||||
self.list.InsertColumn(0, "Artist")
|
self.list.InsertColumn(0, "Artist")
|
||||||
self.list.InsertColumn(1, "Title", wxLIST_FORMAT_RIGHT)
|
self.list.InsertColumn(1, "Title", wxLIST_FORMAT_RIGHT)
|
||||||
self.list.InsertColumn(2, "Genre")
|
self.list.InsertColumn(2, "Genre")
|
||||||
|
else:
|
||||||
|
# but since we want images on the column header we have to do it the hard way:
|
||||||
|
info = wxListItem()
|
||||||
|
info.m_mask = wxLIST_MASK_TEXT | wxLIST_MASK_IMAGE | wxLIST_MASK_FORMAT
|
||||||
|
info.m_image = -1
|
||||||
|
info.m_format = 0
|
||||||
|
info.m_text = "Artist"
|
||||||
|
self.list.InsertColumnInfo(0, info)
|
||||||
|
|
||||||
|
info.m_format = wxLIST_FORMAT_RIGHT
|
||||||
|
info.m_text = "Title"
|
||||||
|
self.list.InsertColumnInfo(1, info)
|
||||||
|
|
||||||
|
info.m_format = 0
|
||||||
|
info.m_text = "Genre"
|
||||||
|
self.list.InsertColumnInfo(2, info)
|
||||||
|
|
||||||
|
|
||||||
items = musicdata.items()
|
items = musicdata.items()
|
||||||
for x in range(len(items)):
|
for x in range(len(items)):
|
||||||
key, data = items[x]
|
key, data = items[x]
|
||||||
@@ -89,20 +115,22 @@ class TestListCtrlPanel(wxPanel):
|
|||||||
self.list.SetStringItem(x, 2, data[2])
|
self.list.SetStringItem(x, 2, data[2])
|
||||||
self.list.SetItemData(x, key)
|
self.list.SetItemData(x, key)
|
||||||
|
|
||||||
|
# Now that the list exists we can init the other base class,
|
||||||
|
# see wxPython/lib/mixins/listctrl.py
|
||||||
|
self.itemDataMap = musicdata
|
||||||
|
wxColumnSorterMixin.__init__(self, 3)
|
||||||
|
#self.SortListItems(0, true)
|
||||||
|
|
||||||
self.list.SetColumnWidth(0, wxLIST_AUTOSIZE)
|
self.list.SetColumnWidth(0, wxLIST_AUTOSIZE)
|
||||||
self.list.SetColumnWidth(1, wxLIST_AUTOSIZE)
|
self.list.SetColumnWidth(1, wxLIST_AUTOSIZE)
|
||||||
##self.list.SetColumnWidth(2, wxLIST_AUTOSIZE)
|
|
||||||
|
|
||||||
|
# show how to select an item
|
||||||
self.list.SetItemState(5, wxLIST_STATE_SELECTED, wxLIST_STATE_SELECTED)
|
self.list.SetItemState(5, wxLIST_STATE_SELECTED, wxLIST_STATE_SELECTED)
|
||||||
|
|
||||||
#self.list.SetItemState(25, wxLIST_STATE_SELECTED, wxLIST_STATE_SELECTED)
|
# show how to change the colour of a couple items
|
||||||
#self.list.EnsureVisible(25)
|
|
||||||
|
|
||||||
# show how to change the colour of an item
|
|
||||||
item = self.list.GetItem(1)
|
item = self.list.GetItem(1)
|
||||||
item.SetTextColour(wxBLUE)
|
item.SetTextColour(wxBLUE)
|
||||||
self.list.SetItem(item)
|
self.list.SetItem(item)
|
||||||
|
|
||||||
item = self.list.GetItem(4)
|
item = self.list.GetItem(4)
|
||||||
item.SetTextColour(wxRED)
|
item.SetTextColour(wxRED)
|
||||||
self.list.SetItem(item)
|
self.list.SetItem(item)
|
||||||
@@ -113,6 +141,11 @@ class TestListCtrlPanel(wxPanel):
|
|||||||
EVT_LIST_ITEM_ACTIVATED(self, tID, self.OnItemActivated)
|
EVT_LIST_ITEM_ACTIVATED(self, tID, self.OnItemActivated)
|
||||||
EVT_LIST_DELETE_ITEM(self, tID, self.OnItemDelete)
|
EVT_LIST_DELETE_ITEM(self, tID, self.OnItemDelete)
|
||||||
EVT_LIST_COL_CLICK(self, tID, self.OnColClick)
|
EVT_LIST_COL_CLICK(self, tID, self.OnColClick)
|
||||||
|
EVT_LIST_COL_RIGHT_CLICK(self, tID, self.OnColRightClick)
|
||||||
|
EVT_LIST_COL_BEGIN_DRAG(self, tID, self.OnColBeginDrag)
|
||||||
|
EVT_LIST_COL_DRAGGING(self, tID, self.OnColDragging)
|
||||||
|
EVT_LIST_COL_END_DRAG(self, tID, self.OnColEndDrag)
|
||||||
|
|
||||||
EVT_LEFT_DCLICK(self.list, self.OnDoubleClick)
|
EVT_LEFT_DCLICK(self.list, self.OnDoubleClick)
|
||||||
EVT_RIGHT_DOWN(self.list, self.OnRightDown)
|
EVT_RIGHT_DOWN(self.list, self.OnRightDown)
|
||||||
|
|
||||||
@@ -123,6 +156,16 @@ class TestListCtrlPanel(wxPanel):
|
|||||||
EVT_RIGHT_UP(self.list, self.OnRightClick)
|
EVT_RIGHT_UP(self.list, self.OnRightClick)
|
||||||
|
|
||||||
|
|
||||||
|
# Used by the wxColumnSorterMixin, see wxPython/lib/mixins/listctrl.py
|
||||||
|
def GetListCtrl(self):
|
||||||
|
return self.list
|
||||||
|
|
||||||
|
# Used by the wxColumnSorterMixin, see wxPython/lib/mixins/listctrl.py
|
||||||
|
def GetSortImages(self):
|
||||||
|
return (self.sm_dn, self.sm_up)
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
def OnRightDown(self, event):
|
def OnRightDown(self, event):
|
||||||
self.x = event.GetX()
|
self.x = event.GetX()
|
||||||
self.y = event.GetY()
|
self.y = event.GetY()
|
||||||
@@ -156,19 +199,19 @@ class TestListCtrlPanel(wxPanel):
|
|||||||
self.log.WriteText("OnItemDelete\n")
|
self.log.WriteText("OnItemDelete\n")
|
||||||
|
|
||||||
def OnColClick(self, event):
|
def OnColClick(self, event):
|
||||||
self.log.WriteText("OnColClick: %d\n" % event.m_col)
|
self.log.WriteText("OnColClick: %d\n" % event.GetColumn())
|
||||||
self.col = event.m_col
|
|
||||||
self.list.SortItems(self.ColumnSorter)
|
|
||||||
|
|
||||||
def ColumnSorter(self, key1, key2):
|
def OnColRightClick(self, event):
|
||||||
item1 = musicdata[key1][self.col]
|
self.log.WriteText("OnColRightClick: %d\n" % event.GetColumn())
|
||||||
item2 = musicdata[key2][self.col]
|
|
||||||
|
|
||||||
# when the items are identical, compare someting else to make the sort key unique...
|
def OnColBeginDrag(self, event):
|
||||||
if item1 == item2: return key1 - key2
|
self.log.WriteText("OnColBeginDrag\n")
|
||||||
elif item1 < item2: return -1
|
|
||||||
else: return 1
|
|
||||||
|
|
||||||
|
def OnColDragging(self, event):
|
||||||
|
self.log.WriteText("OnColDragging\n")
|
||||||
|
|
||||||
|
def OnColEndDrag(self, event):
|
||||||
|
self.log.WriteText("OnColEndDrag\n")
|
||||||
|
|
||||||
def OnDoubleClick(self, event):
|
def OnDoubleClick(self, event):
|
||||||
self.log.WriteText("OnDoubleClick item %s\n" % self.list.GetItemText(self.currentItem))
|
self.log.WriteText("OnDoubleClick item %s\n" % self.list.GetItemText(self.currentItem))
|
||||||
|
@@ -113,6 +113,11 @@ Source: "%(WXDIR)s\docs\htmlhelp\wx.chm"; DestDir: "{app}\wxPython\docs"; Comp
|
|||||||
Source: "%(WXDIR)s\docs\htmlhelp\ogl.chm"; DestDir: "{app}\wxPython\docs"; Components: docs
|
Source: "%(WXDIR)s\docs\htmlhelp\ogl.chm"; DestDir: "{app}\wxPython\docs"; Components: docs
|
||||||
|
|
||||||
Source: "tools\*.py"; DestDir: "{app}\wxPython\tools"; Components: tools
|
Source: "tools\*.py"; DestDir: "{app}\wxPython\tools"; Components: tools
|
||||||
|
Source: "tools\XRCed\CHANGES"; DestDir: "{app}\wxPython\tools\XRCed"; Components: tools
|
||||||
|
Source: "tools\XRCed\TODO"; DestDir: "{app}\wxPython\tools\XRCed"; Components: tools
|
||||||
|
Source: "tools\XRCed\README"; DestDir: "{app}\wxPython\tools\XRCed"; Components: tools
|
||||||
|
Source: "tools\XRCed\*.py"; DestDir: "{app}\wxPython\tools\XRCed"; Components: tools
|
||||||
|
Source: "tools\XRCed\*.xrc"; DestDir: "{app}\wxPython\tools\XRCed"; Components: tools
|
||||||
|
|
||||||
Source: "samples\doodle\*.py"; DestDir: "{app}\wxPython\samples\doodle"; Components: samples
|
Source: "samples\doodle\*.py"; DestDir: "{app}\wxPython\samples\doodle"; Components: samples
|
||||||
Source: "samples\doodle\*.txt"; DestDir: "{app}\wxPython\samples\doodle"; Components: samples
|
Source: "samples\doodle\*.txt"; DestDir: "{app}\wxPython\samples\doodle"; Components: samples
|
||||||
|
@@ -60,6 +60,11 @@ enum {
|
|||||||
wxEVT_COMMAND_LIST_ITEM_MIDDLE_CLICK,
|
wxEVT_COMMAND_LIST_ITEM_MIDDLE_CLICK,
|
||||||
wxEVT_COMMAND_LIST_ITEM_ACTIVATED,
|
wxEVT_COMMAND_LIST_ITEM_ACTIVATED,
|
||||||
wxEVT_COMMAND_LIST_CACHE_HINT,
|
wxEVT_COMMAND_LIST_CACHE_HINT,
|
||||||
|
wxEVT_COMMAND_LIST_COL_RIGHT_CLICK,
|
||||||
|
wxEVT_COMMAND_LIST_COL_BEGIN_DRAG,
|
||||||
|
wxEVT_COMMAND_LIST_COL_DRAGGING,
|
||||||
|
wxEVT_COMMAND_LIST_COL_END_DRAG,
|
||||||
|
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
@@ -103,6 +108,18 @@ def EVT_LIST_INSERT_ITEM(win, id, func):
|
|||||||
def EVT_LIST_COL_CLICK(win, id, func):
|
def EVT_LIST_COL_CLICK(win, id, func):
|
||||||
win.Connect(id, -1, wxEVT_COMMAND_LIST_COL_CLICK, func)
|
win.Connect(id, -1, wxEVT_COMMAND_LIST_COL_CLICK, func)
|
||||||
|
|
||||||
|
def EVT_LIST_COL_RIGHT_CLICK(win, id, func):
|
||||||
|
win.Connect(id, -1, wxEVT_COMMAND_LIST_COL_RIGHT_CLICK, func)
|
||||||
|
|
||||||
|
def EVT_LIST_COL_BEGIN_DRAG(win, id, func):
|
||||||
|
win.Connect(id, -1, wxEVT_COMMAND_LIST_COL_BEGIN_DRAG, func)
|
||||||
|
|
||||||
|
def EVT_LIST_COL_DRAGGING(win, id, func):
|
||||||
|
win.Connect(id, -1, wxEVT_COMMAND_LIST_COL_DRAGGING, func)
|
||||||
|
|
||||||
|
def EVT_LIST_COL_END_DRAG(win, id, func):
|
||||||
|
win.Connect(id, -1, wxEVT_COMMAND_LIST_COL_END_DRAG, func)
|
||||||
|
|
||||||
def EVT_LIST_ITEM_RIGHT_CLICK(win, id, func):
|
def EVT_LIST_ITEM_RIGHT_CLICK(win, id, func):
|
||||||
win.Connect(id, -1, wxEVT_COMMAND_LIST_ITEM_RIGHT_CLICK, func)
|
win.Connect(id, -1, wxEVT_COMMAND_LIST_ITEM_RIGHT_CLICK, func)
|
||||||
|
|
||||||
@@ -142,6 +159,7 @@ enum {
|
|||||||
wxLC_MASK_ALIGN,
|
wxLC_MASK_ALIGN,
|
||||||
wxLC_MASK_SORT,
|
wxLC_MASK_SORT,
|
||||||
|
|
||||||
|
wxLC_USER_TEXT,
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
@@ -308,6 +326,8 @@ public:
|
|||||||
|
|
||||||
class wxListEvent: public wxNotifyEvent {
|
class wxListEvent: public wxNotifyEvent {
|
||||||
public:
|
public:
|
||||||
|
wxListEvent(wxEventType commandType = wxEVT_NULL, int id = 0);
|
||||||
|
|
||||||
int m_code;
|
int m_code;
|
||||||
long m_itemIndex;
|
long m_itemIndex;
|
||||||
long m_oldItemIndex;
|
long m_oldItemIndex;
|
||||||
@@ -329,6 +349,9 @@ public:
|
|||||||
long GetData();
|
long GetData();
|
||||||
long GetMask();
|
long GetMask();
|
||||||
const wxListItem& GetItem();
|
const wxListItem& GetItem();
|
||||||
|
|
||||||
|
long GetCacheFrom();
|
||||||
|
long GetCacheTo();
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
@@ -633,11 +656,42 @@ public:
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
%pragma(python) addtoclass = "
|
||||||
|
# Some helpers...
|
||||||
|
|
||||||
|
def Select(self, idx, on=true):
|
||||||
|
'''[de]select an item'''
|
||||||
|
if on: state = wxLIST_STATE_SELECTED
|
||||||
|
else: state = 0
|
||||||
|
self.SetItemState(idx, state, wxLIST_STATE_SELECTED)
|
||||||
|
|
||||||
|
def Focus(self, idx):
|
||||||
|
'''Focus and show the given item'''
|
||||||
|
self.SetItemState(idx, wxLIST_STATE_FOCUSED, wxLIST_STATE_FOCUSED)
|
||||||
|
self.EnsureVisible(idx)
|
||||||
|
|
||||||
|
def GetFocusedItem(self):
|
||||||
|
'''get the currently focused item or -1 if none'''
|
||||||
|
return self.GetNextItem(-1, wxLIST_NEXT_ALL, wxLIST_STATE_FOCUSED)
|
||||||
|
|
||||||
|
def IsSelected(self, idx):
|
||||||
|
'''return TRUE if the item is selected'''
|
||||||
|
return self.GetItemState(idx, wxLIST_STATE_SELECTED) != 0
|
||||||
|
|
||||||
|
def SetColumnImage(self, col, image):
|
||||||
|
item = wxListItem()
|
||||||
|
item.SetMask(wxLIST_MASK_IMAGE)
|
||||||
|
item.SetImage(image)
|
||||||
|
self.SetColumn(col, item)
|
||||||
|
|
||||||
|
def ClearColumnImage(self, col):
|
||||||
|
self.SetColumnImage(col, -1)
|
||||||
|
"
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
%{
|
%{ // Python aware sorting function for wxPyListCtrl
|
||||||
int wxCALLBACK wxPyListCtrl_SortItems(long item1, long item2, long funcPtr) {
|
int wxCALLBACK wxPyListCtrl_SortItems(long item1, long item2, long funcPtr) {
|
||||||
int retval = 0;
|
int retval = 0;
|
||||||
PyObject* func = (PyObject*)funcPtr;
|
PyObject* func = (PyObject*)funcPtr;
|
||||||
@@ -657,6 +711,50 @@ public:
|
|||||||
|
|
||||||
%}
|
%}
|
||||||
|
|
||||||
|
//----------------------------------------------------------------------
|
||||||
|
|
||||||
|
class wxListView : public wxPyListCtrl
|
||||||
|
{
|
||||||
|
public:
|
||||||
|
wxListView( wxWindow *parent,
|
||||||
|
wxWindowID id = -1,
|
||||||
|
const wxPoint& pos = wxDefaultPosition,
|
||||||
|
const wxSize& size = wxDefaultSize,
|
||||||
|
long style = wxLC_REPORT,
|
||||||
|
const wxValidator& validator = wxDefaultValidator,
|
||||||
|
const wxString &name = "listctrl" );
|
||||||
|
%name(wxPreListView)wxListView();
|
||||||
|
|
||||||
|
bool Create( wxWindow *parent,
|
||||||
|
wxWindowID id = -1,
|
||||||
|
const wxPoint& pos = wxDefaultPosition,
|
||||||
|
const wxSize& size = wxDefaultSize,
|
||||||
|
long style = wxLC_REPORT,
|
||||||
|
const wxValidator& validator = wxDefaultValidator,
|
||||||
|
const wxString &name = "listctrl" );
|
||||||
|
|
||||||
|
|
||||||
|
// [de]select an item
|
||||||
|
void Select(long n, bool on = TRUE);
|
||||||
|
|
||||||
|
// focus and show the given item
|
||||||
|
void Focus(long index);
|
||||||
|
|
||||||
|
// get the currently focused item or -1 if none
|
||||||
|
long GetFocusedItem() const;
|
||||||
|
|
||||||
|
// get first and subsequent selected items, return -1 when no more
|
||||||
|
long GetNextSelected(long item) const;
|
||||||
|
long GetFirstSelected() const;
|
||||||
|
|
||||||
|
// return TRUE if the item is selected
|
||||||
|
bool IsSelected(long index);
|
||||||
|
|
||||||
|
void SetColumnImage(int col, int image);
|
||||||
|
void ClearColumnImage(int col);
|
||||||
|
};
|
||||||
|
|
||||||
|
|
||||||
//----------------------------------------------------------------------
|
//----------------------------------------------------------------------
|
||||||
|
|
||||||
// wxTreeCtrl flags
|
// wxTreeCtrl flags
|
||||||
|
@@ -129,7 +129,7 @@ IMPLEMENT_ABSTRACT_CLASS(wxPyListCtrl, wxListCtrl);
|
|||||||
IMP_PYCALLBACK_STRING_LONGLONG(wxPyListCtrl, wxListCtrl, OnGetItemText);
|
IMP_PYCALLBACK_STRING_LONGLONG(wxPyListCtrl, wxListCtrl, OnGetItemText);
|
||||||
IMP_PYCALLBACK_INT_LONG(wxPyListCtrl, wxListCtrl, OnGetItemImage);
|
IMP_PYCALLBACK_INT_LONG(wxPyListCtrl, wxListCtrl, OnGetItemImage);
|
||||||
IMP_PYCALLBACK_LISTATTR_LONG(wxPyListCtrl, wxListCtrl, OnGetItemAttr);
|
IMP_PYCALLBACK_LISTATTR_LONG(wxPyListCtrl, wxListCtrl, OnGetItemAttr);
|
||||||
|
// Python aware sorting function for wxPyListCtrl
|
||||||
int wxCALLBACK wxPyListCtrl_SortItems(long item1, long item2, long funcPtr) {
|
int wxCALLBACK wxPyListCtrl_SortItems(long item1, long item2, long funcPtr) {
|
||||||
int retval = 0;
|
int retval = 0;
|
||||||
PyObject* func = (PyObject*)funcPtr;
|
PyObject* func = (PyObject*)funcPtr;
|
||||||
@@ -2154,6 +2154,34 @@ static void *SwigwxListEventTowxObject(void *ptr) {
|
|||||||
return (void *) dest;
|
return (void *) dest;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#define new_wxListEvent(_swigarg0,_swigarg1) (new wxListEvent(_swigarg0,_swigarg1))
|
||||||
|
static PyObject *_wrap_new_wxListEvent(PyObject *self, PyObject *args, PyObject *kwargs) {
|
||||||
|
PyObject * _resultobj;
|
||||||
|
wxListEvent * _result;
|
||||||
|
wxEventType _arg0 = (wxEventType ) wxEVT_NULL;
|
||||||
|
int _arg1 = (int ) 0;
|
||||||
|
char *_kwnames[] = { "commandType","id", NULL };
|
||||||
|
char _ptemp[128];
|
||||||
|
|
||||||
|
self = self;
|
||||||
|
if(!PyArg_ParseTupleAndKeywords(args,kwargs,"|ii:new_wxListEvent",_kwnames,&_arg0,&_arg1))
|
||||||
|
return NULL;
|
||||||
|
{
|
||||||
|
wxPy_BEGIN_ALLOW_THREADS;
|
||||||
|
_result = (wxListEvent *)new_wxListEvent(_arg0,_arg1);
|
||||||
|
|
||||||
|
wxPy_END_ALLOW_THREADS;
|
||||||
|
if (PyErr_Occurred()) return NULL;
|
||||||
|
} if (_result) {
|
||||||
|
SWIG_MakePtr(_ptemp, (char *) _result,"_wxListEvent_p");
|
||||||
|
_resultobj = Py_BuildValue("s",_ptemp);
|
||||||
|
} else {
|
||||||
|
Py_INCREF(Py_None);
|
||||||
|
_resultobj = Py_None;
|
||||||
|
}
|
||||||
|
return _resultobj;
|
||||||
|
}
|
||||||
|
|
||||||
#define wxListEvent_m_code_set(_swigobj,_swigval) (_swigobj->m_code = _swigval,_swigval)
|
#define wxListEvent_m_code_set(_swigobj,_swigval) (_swigobj->m_code = _swigval,_swigval)
|
||||||
static PyObject *_wrap_wxListEvent_m_code_set(PyObject *self, PyObject *args, PyObject *kwargs) {
|
static PyObject *_wrap_wxListEvent_m_code_set(PyObject *self, PyObject *args, PyObject *kwargs) {
|
||||||
PyObject * _resultobj;
|
PyObject * _resultobj;
|
||||||
@@ -2957,6 +2985,62 @@ static PyObject *_wrap_wxListEvent_GetItem(PyObject *self, PyObject *args, PyObj
|
|||||||
return _resultobj;
|
return _resultobj;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#define wxListEvent_GetCacheFrom(_swigobj) (_swigobj->GetCacheFrom())
|
||||||
|
static PyObject *_wrap_wxListEvent_GetCacheFrom(PyObject *self, PyObject *args, PyObject *kwargs) {
|
||||||
|
PyObject * _resultobj;
|
||||||
|
long _result;
|
||||||
|
wxListEvent * _arg0;
|
||||||
|
PyObject * _argo0 = 0;
|
||||||
|
char *_kwnames[] = { "self", NULL };
|
||||||
|
|
||||||
|
self = self;
|
||||||
|
if(!PyArg_ParseTupleAndKeywords(args,kwargs,"O:wxListEvent_GetCacheFrom",_kwnames,&_argo0))
|
||||||
|
return NULL;
|
||||||
|
if (_argo0) {
|
||||||
|
if (_argo0 == Py_None) { _arg0 = NULL; }
|
||||||
|
else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxListEvent_p")) {
|
||||||
|
PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxListEvent_GetCacheFrom. Expected _wxListEvent_p.");
|
||||||
|
return NULL;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
{
|
||||||
|
wxPy_BEGIN_ALLOW_THREADS;
|
||||||
|
_result = (long )wxListEvent_GetCacheFrom(_arg0);
|
||||||
|
|
||||||
|
wxPy_END_ALLOW_THREADS;
|
||||||
|
if (PyErr_Occurred()) return NULL;
|
||||||
|
} _resultobj = Py_BuildValue("l",_result);
|
||||||
|
return _resultobj;
|
||||||
|
}
|
||||||
|
|
||||||
|
#define wxListEvent_GetCacheTo(_swigobj) (_swigobj->GetCacheTo())
|
||||||
|
static PyObject *_wrap_wxListEvent_GetCacheTo(PyObject *self, PyObject *args, PyObject *kwargs) {
|
||||||
|
PyObject * _resultobj;
|
||||||
|
long _result;
|
||||||
|
wxListEvent * _arg0;
|
||||||
|
PyObject * _argo0 = 0;
|
||||||
|
char *_kwnames[] = { "self", NULL };
|
||||||
|
|
||||||
|
self = self;
|
||||||
|
if(!PyArg_ParseTupleAndKeywords(args,kwargs,"O:wxListEvent_GetCacheTo",_kwnames,&_argo0))
|
||||||
|
return NULL;
|
||||||
|
if (_argo0) {
|
||||||
|
if (_argo0 == Py_None) { _arg0 = NULL; }
|
||||||
|
else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxListEvent_p")) {
|
||||||
|
PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxListEvent_GetCacheTo. Expected _wxListEvent_p.");
|
||||||
|
return NULL;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
{
|
||||||
|
wxPy_BEGIN_ALLOW_THREADS;
|
||||||
|
_result = (long )wxListEvent_GetCacheTo(_arg0);
|
||||||
|
|
||||||
|
wxPy_END_ALLOW_THREADS;
|
||||||
|
if (PyErr_Occurred()) return NULL;
|
||||||
|
} _resultobj = Py_BuildValue("l",_result);
|
||||||
|
return _resultobj;
|
||||||
|
}
|
||||||
|
|
||||||
static void *SwigwxPyListCtrlTowxControl(void *ptr) {
|
static void *SwigwxPyListCtrlTowxControl(void *ptr) {
|
||||||
wxPyListCtrl *src;
|
wxPyListCtrl *src;
|
||||||
wxControl *dest;
|
wxControl *dest;
|
||||||
@@ -5219,6 +5303,486 @@ static PyObject *_wrap_wxListCtrl_SortItems(PyObject *self, PyObject *args, PyOb
|
|||||||
return _resultobj;
|
return _resultobj;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static void *SwigwxListViewTowxPyListCtrl(void *ptr) {
|
||||||
|
wxListView *src;
|
||||||
|
wxPyListCtrl *dest;
|
||||||
|
src = (wxListView *) ptr;
|
||||||
|
dest = (wxPyListCtrl *) src;
|
||||||
|
return (void *) dest;
|
||||||
|
}
|
||||||
|
|
||||||
|
static void *SwigwxListViewTowxControl(void *ptr) {
|
||||||
|
wxListView *src;
|
||||||
|
wxControl *dest;
|
||||||
|
src = (wxListView *) ptr;
|
||||||
|
dest = (wxControl *) src;
|
||||||
|
return (void *) dest;
|
||||||
|
}
|
||||||
|
|
||||||
|
static void *SwigwxListViewTowxWindow(void *ptr) {
|
||||||
|
wxListView *src;
|
||||||
|
wxWindow *dest;
|
||||||
|
src = (wxListView *) ptr;
|
||||||
|
dest = (wxWindow *) src;
|
||||||
|
return (void *) dest;
|
||||||
|
}
|
||||||
|
|
||||||
|
static void *SwigwxListViewTowxEvtHandler(void *ptr) {
|
||||||
|
wxListView *src;
|
||||||
|
wxEvtHandler *dest;
|
||||||
|
src = (wxListView *) ptr;
|
||||||
|
dest = (wxEvtHandler *) src;
|
||||||
|
return (void *) dest;
|
||||||
|
}
|
||||||
|
|
||||||
|
static void *SwigwxListViewTowxObject(void *ptr) {
|
||||||
|
wxListView *src;
|
||||||
|
wxObject *dest;
|
||||||
|
src = (wxListView *) ptr;
|
||||||
|
dest = (wxObject *) src;
|
||||||
|
return (void *) dest;
|
||||||
|
}
|
||||||
|
|
||||||
|
#define new_wxListView(_swigarg0,_swigarg1,_swigarg2,_swigarg3,_swigarg4,_swigarg5,_swigarg6) (new wxListView(_swigarg0,_swigarg1,_swigarg2,_swigarg3,_swigarg4,_swigarg5,_swigarg6))
|
||||||
|
static PyObject *_wrap_new_wxListView(PyObject *self, PyObject *args, PyObject *kwargs) {
|
||||||
|
PyObject * _resultobj;
|
||||||
|
wxListView * _result;
|
||||||
|
wxWindow * _arg0;
|
||||||
|
wxWindowID _arg1 = (wxWindowID ) -1;
|
||||||
|
wxPoint * _arg2 = (wxPoint *) &wxDefaultPosition;
|
||||||
|
wxSize * _arg3 = (wxSize *) &wxDefaultSize;
|
||||||
|
long _arg4 = (long ) (wxLC_REPORT);
|
||||||
|
wxValidator * _arg5 = (wxValidator *) &wxDefaultValidator;
|
||||||
|
wxString * _arg6 = (wxString *) &"listctrl";
|
||||||
|
PyObject * _argo0 = 0;
|
||||||
|
wxPoint temp;
|
||||||
|
PyObject * _obj2 = 0;
|
||||||
|
wxSize temp0;
|
||||||
|
PyObject * _obj3 = 0;
|
||||||
|
PyObject * _argo5 = 0;
|
||||||
|
PyObject * _obj6 = 0;
|
||||||
|
char *_kwnames[] = { "parent","id","pos","size","style","validator","name", NULL };
|
||||||
|
char _ptemp[128];
|
||||||
|
|
||||||
|
self = self;
|
||||||
|
if(!PyArg_ParseTupleAndKeywords(args,kwargs,"O|iOOlOO:new_wxListView",_kwnames,&_argo0,&_arg1,&_obj2,&_obj3,&_arg4,&_argo5,&_obj6))
|
||||||
|
return NULL;
|
||||||
|
if (_argo0) {
|
||||||
|
if (_argo0 == Py_None) { _arg0 = NULL; }
|
||||||
|
else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxWindow_p")) {
|
||||||
|
PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of new_wxListView. Expected _wxWindow_p.");
|
||||||
|
return NULL;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if (_obj2)
|
||||||
|
{
|
||||||
|
_arg2 = &temp;
|
||||||
|
if (! wxPoint_helper(_obj2, &_arg2))
|
||||||
|
return NULL;
|
||||||
|
}
|
||||||
|
if (_obj3)
|
||||||
|
{
|
||||||
|
_arg3 = &temp0;
|
||||||
|
if (! wxSize_helper(_obj3, &_arg3))
|
||||||
|
return NULL;
|
||||||
|
}
|
||||||
|
if (_argo5) {
|
||||||
|
if (_argo5 == Py_None) { _arg5 = NULL; }
|
||||||
|
else if (SWIG_GetPtrObj(_argo5,(void **) &_arg5,"_wxValidator_p")) {
|
||||||
|
PyErr_SetString(PyExc_TypeError,"Type error in argument 6 of new_wxListView. Expected _wxValidator_p.");
|
||||||
|
return NULL;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if (_obj6)
|
||||||
|
{
|
||||||
|
#if PYTHON_API_VERSION >= 1009
|
||||||
|
char* tmpPtr; int tmpSize;
|
||||||
|
if (!PyString_Check(_obj6) && !PyUnicode_Check(_obj6)) {
|
||||||
|
PyErr_SetString(PyExc_TypeError, wxStringErrorMsg);
|
||||||
|
return NULL;
|
||||||
|
}
|
||||||
|
if (PyString_AsStringAndSize(_obj6, &tmpPtr, &tmpSize) == -1)
|
||||||
|
return NULL;
|
||||||
|
_arg6 = new wxString(tmpPtr, tmpSize);
|
||||||
|
#else
|
||||||
|
if (!PyString_Check(_obj6)) {
|
||||||
|
PyErr_SetString(PyExc_TypeError, wxStringErrorMsg);
|
||||||
|
return NULL;
|
||||||
|
}
|
||||||
|
_arg6 = new wxString(PyString_AS_STRING(_obj6), PyString_GET_SIZE(_obj6));
|
||||||
|
#endif
|
||||||
|
}
|
||||||
|
{
|
||||||
|
wxPy_BEGIN_ALLOW_THREADS;
|
||||||
|
_result = (wxListView *)new_wxListView(_arg0,_arg1,*_arg2,*_arg3,_arg4,*_arg5,*_arg6);
|
||||||
|
|
||||||
|
wxPy_END_ALLOW_THREADS;
|
||||||
|
if (PyErr_Occurred()) return NULL;
|
||||||
|
} if (_result) {
|
||||||
|
SWIG_MakePtr(_ptemp, (char *) _result,"_wxListView_p");
|
||||||
|
_resultobj = Py_BuildValue("s",_ptemp);
|
||||||
|
} else {
|
||||||
|
Py_INCREF(Py_None);
|
||||||
|
_resultobj = Py_None;
|
||||||
|
}
|
||||||
|
{
|
||||||
|
if (_obj6)
|
||||||
|
delete _arg6;
|
||||||
|
}
|
||||||
|
return _resultobj;
|
||||||
|
}
|
||||||
|
|
||||||
|
#define new_wxPreListView() (new wxListView())
|
||||||
|
static PyObject *_wrap_new_wxPreListView(PyObject *self, PyObject *args, PyObject *kwargs) {
|
||||||
|
PyObject * _resultobj;
|
||||||
|
wxListView * _result;
|
||||||
|
char *_kwnames[] = { NULL };
|
||||||
|
char _ptemp[128];
|
||||||
|
|
||||||
|
self = self;
|
||||||
|
if(!PyArg_ParseTupleAndKeywords(args,kwargs,":new_wxPreListView",_kwnames))
|
||||||
|
return NULL;
|
||||||
|
{
|
||||||
|
wxPy_BEGIN_ALLOW_THREADS;
|
||||||
|
_result = (wxListView *)new_wxPreListView();
|
||||||
|
|
||||||
|
wxPy_END_ALLOW_THREADS;
|
||||||
|
if (PyErr_Occurred()) return NULL;
|
||||||
|
} if (_result) {
|
||||||
|
SWIG_MakePtr(_ptemp, (char *) _result,"_wxListView_p");
|
||||||
|
_resultobj = Py_BuildValue("s",_ptemp);
|
||||||
|
} else {
|
||||||
|
Py_INCREF(Py_None);
|
||||||
|
_resultobj = Py_None;
|
||||||
|
}
|
||||||
|
return _resultobj;
|
||||||
|
}
|
||||||
|
|
||||||
|
#define wxListView_Create(_swigobj,_swigarg0,_swigarg1,_swigarg2,_swigarg3,_swigarg4,_swigarg5,_swigarg6) (_swigobj->Create(_swigarg0,_swigarg1,_swigarg2,_swigarg3,_swigarg4,_swigarg5,_swigarg6))
|
||||||
|
static PyObject *_wrap_wxListView_Create(PyObject *self, PyObject *args, PyObject *kwargs) {
|
||||||
|
PyObject * _resultobj;
|
||||||
|
bool _result;
|
||||||
|
wxListView * _arg0;
|
||||||
|
wxWindow * _arg1;
|
||||||
|
wxWindowID _arg2 = (wxWindowID ) -1;
|
||||||
|
wxPoint * _arg3 = (wxPoint *) &wxDefaultPosition;
|
||||||
|
wxSize * _arg4 = (wxSize *) &wxDefaultSize;
|
||||||
|
long _arg5 = (long ) (wxLC_REPORT);
|
||||||
|
wxValidator * _arg6 = (wxValidator *) &wxDefaultValidator;
|
||||||
|
wxString * _arg7 = (wxString *) &"listctrl";
|
||||||
|
PyObject * _argo0 = 0;
|
||||||
|
PyObject * _argo1 = 0;
|
||||||
|
wxPoint temp;
|
||||||
|
PyObject * _obj3 = 0;
|
||||||
|
wxSize temp0;
|
||||||
|
PyObject * _obj4 = 0;
|
||||||
|
PyObject * _argo6 = 0;
|
||||||
|
PyObject * _obj7 = 0;
|
||||||
|
char *_kwnames[] = { "self","parent","id","pos","size","style","validator","name", NULL };
|
||||||
|
|
||||||
|
self = self;
|
||||||
|
if(!PyArg_ParseTupleAndKeywords(args,kwargs,"OO|iOOlOO:wxListView_Create",_kwnames,&_argo0,&_argo1,&_arg2,&_obj3,&_obj4,&_arg5,&_argo6,&_obj7))
|
||||||
|
return NULL;
|
||||||
|
if (_argo0) {
|
||||||
|
if (_argo0 == Py_None) { _arg0 = NULL; }
|
||||||
|
else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxListView_p")) {
|
||||||
|
PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxListView_Create. Expected _wxListView_p.");
|
||||||
|
return NULL;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if (_argo1) {
|
||||||
|
if (_argo1 == Py_None) { _arg1 = NULL; }
|
||||||
|
else if (SWIG_GetPtrObj(_argo1,(void **) &_arg1,"_wxWindow_p")) {
|
||||||
|
PyErr_SetString(PyExc_TypeError,"Type error in argument 2 of wxListView_Create. Expected _wxWindow_p.");
|
||||||
|
return NULL;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if (_obj3)
|
||||||
|
{
|
||||||
|
_arg3 = &temp;
|
||||||
|
if (! wxPoint_helper(_obj3, &_arg3))
|
||||||
|
return NULL;
|
||||||
|
}
|
||||||
|
if (_obj4)
|
||||||
|
{
|
||||||
|
_arg4 = &temp0;
|
||||||
|
if (! wxSize_helper(_obj4, &_arg4))
|
||||||
|
return NULL;
|
||||||
|
}
|
||||||
|
if (_argo6) {
|
||||||
|
if (_argo6 == Py_None) { _arg6 = NULL; }
|
||||||
|
else if (SWIG_GetPtrObj(_argo6,(void **) &_arg6,"_wxValidator_p")) {
|
||||||
|
PyErr_SetString(PyExc_TypeError,"Type error in argument 7 of wxListView_Create. Expected _wxValidator_p.");
|
||||||
|
return NULL;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if (_obj7)
|
||||||
|
{
|
||||||
|
#if PYTHON_API_VERSION >= 1009
|
||||||
|
char* tmpPtr; int tmpSize;
|
||||||
|
if (!PyString_Check(_obj7) && !PyUnicode_Check(_obj7)) {
|
||||||
|
PyErr_SetString(PyExc_TypeError, wxStringErrorMsg);
|
||||||
|
return NULL;
|
||||||
|
}
|
||||||
|
if (PyString_AsStringAndSize(_obj7, &tmpPtr, &tmpSize) == -1)
|
||||||
|
return NULL;
|
||||||
|
_arg7 = new wxString(tmpPtr, tmpSize);
|
||||||
|
#else
|
||||||
|
if (!PyString_Check(_obj7)) {
|
||||||
|
PyErr_SetString(PyExc_TypeError, wxStringErrorMsg);
|
||||||
|
return NULL;
|
||||||
|
}
|
||||||
|
_arg7 = new wxString(PyString_AS_STRING(_obj7), PyString_GET_SIZE(_obj7));
|
||||||
|
#endif
|
||||||
|
}
|
||||||
|
{
|
||||||
|
wxPy_BEGIN_ALLOW_THREADS;
|
||||||
|
_result = (bool )wxListView_Create(_arg0,_arg1,_arg2,*_arg3,*_arg4,_arg5,*_arg6,*_arg7);
|
||||||
|
|
||||||
|
wxPy_END_ALLOW_THREADS;
|
||||||
|
if (PyErr_Occurred()) return NULL;
|
||||||
|
} _resultobj = Py_BuildValue("i",_result);
|
||||||
|
{
|
||||||
|
if (_obj7)
|
||||||
|
delete _arg7;
|
||||||
|
}
|
||||||
|
return _resultobj;
|
||||||
|
}
|
||||||
|
|
||||||
|
#define wxListView_Select(_swigobj,_swigarg0,_swigarg1) (_swigobj->Select(_swigarg0,_swigarg1))
|
||||||
|
static PyObject *_wrap_wxListView_Select(PyObject *self, PyObject *args, PyObject *kwargs) {
|
||||||
|
PyObject * _resultobj;
|
||||||
|
wxListView * _arg0;
|
||||||
|
long _arg1;
|
||||||
|
bool _arg2 = (bool ) TRUE;
|
||||||
|
PyObject * _argo0 = 0;
|
||||||
|
int tempbool2 = (int) TRUE;
|
||||||
|
char *_kwnames[] = { "self","n","on", NULL };
|
||||||
|
|
||||||
|
self = self;
|
||||||
|
if(!PyArg_ParseTupleAndKeywords(args,kwargs,"Ol|i:wxListView_Select",_kwnames,&_argo0,&_arg1,&tempbool2))
|
||||||
|
return NULL;
|
||||||
|
if (_argo0) {
|
||||||
|
if (_argo0 == Py_None) { _arg0 = NULL; }
|
||||||
|
else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxListView_p")) {
|
||||||
|
PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxListView_Select. Expected _wxListView_p.");
|
||||||
|
return NULL;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
_arg2 = (bool ) tempbool2;
|
||||||
|
{
|
||||||
|
wxPy_BEGIN_ALLOW_THREADS;
|
||||||
|
wxListView_Select(_arg0,_arg1,_arg2);
|
||||||
|
|
||||||
|
wxPy_END_ALLOW_THREADS;
|
||||||
|
if (PyErr_Occurred()) return NULL;
|
||||||
|
} Py_INCREF(Py_None);
|
||||||
|
_resultobj = Py_None;
|
||||||
|
return _resultobj;
|
||||||
|
}
|
||||||
|
|
||||||
|
#define wxListView_Focus(_swigobj,_swigarg0) (_swigobj->Focus(_swigarg0))
|
||||||
|
static PyObject *_wrap_wxListView_Focus(PyObject *self, PyObject *args, PyObject *kwargs) {
|
||||||
|
PyObject * _resultobj;
|
||||||
|
wxListView * _arg0;
|
||||||
|
long _arg1;
|
||||||
|
PyObject * _argo0 = 0;
|
||||||
|
char *_kwnames[] = { "self","index", NULL };
|
||||||
|
|
||||||
|
self = self;
|
||||||
|
if(!PyArg_ParseTupleAndKeywords(args,kwargs,"Ol:wxListView_Focus",_kwnames,&_argo0,&_arg1))
|
||||||
|
return NULL;
|
||||||
|
if (_argo0) {
|
||||||
|
if (_argo0 == Py_None) { _arg0 = NULL; }
|
||||||
|
else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxListView_p")) {
|
||||||
|
PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxListView_Focus. Expected _wxListView_p.");
|
||||||
|
return NULL;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
{
|
||||||
|
wxPy_BEGIN_ALLOW_THREADS;
|
||||||
|
wxListView_Focus(_arg0,_arg1);
|
||||||
|
|
||||||
|
wxPy_END_ALLOW_THREADS;
|
||||||
|
if (PyErr_Occurred()) return NULL;
|
||||||
|
} Py_INCREF(Py_None);
|
||||||
|
_resultobj = Py_None;
|
||||||
|
return _resultobj;
|
||||||
|
}
|
||||||
|
|
||||||
|
#define wxListView_GetFocusedItem(_swigobj) (_swigobj->GetFocusedItem())
|
||||||
|
static PyObject *_wrap_wxListView_GetFocusedItem(PyObject *self, PyObject *args, PyObject *kwargs) {
|
||||||
|
PyObject * _resultobj;
|
||||||
|
long _result;
|
||||||
|
wxListView * _arg0;
|
||||||
|
PyObject * _argo0 = 0;
|
||||||
|
char *_kwnames[] = { "self", NULL };
|
||||||
|
|
||||||
|
self = self;
|
||||||
|
if(!PyArg_ParseTupleAndKeywords(args,kwargs,"O:wxListView_GetFocusedItem",_kwnames,&_argo0))
|
||||||
|
return NULL;
|
||||||
|
if (_argo0) {
|
||||||
|
if (_argo0 == Py_None) { _arg0 = NULL; }
|
||||||
|
else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxListView_p")) {
|
||||||
|
PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxListView_GetFocusedItem. Expected _wxListView_p.");
|
||||||
|
return NULL;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
{
|
||||||
|
wxPy_BEGIN_ALLOW_THREADS;
|
||||||
|
_result = (long )wxListView_GetFocusedItem(_arg0);
|
||||||
|
|
||||||
|
wxPy_END_ALLOW_THREADS;
|
||||||
|
if (PyErr_Occurred()) return NULL;
|
||||||
|
} _resultobj = Py_BuildValue("l",_result);
|
||||||
|
return _resultobj;
|
||||||
|
}
|
||||||
|
|
||||||
|
#define wxListView_GetNextSelected(_swigobj,_swigarg0) (_swigobj->GetNextSelected(_swigarg0))
|
||||||
|
static PyObject *_wrap_wxListView_GetNextSelected(PyObject *self, PyObject *args, PyObject *kwargs) {
|
||||||
|
PyObject * _resultobj;
|
||||||
|
long _result;
|
||||||
|
wxListView * _arg0;
|
||||||
|
long _arg1;
|
||||||
|
PyObject * _argo0 = 0;
|
||||||
|
char *_kwnames[] = { "self","item", NULL };
|
||||||
|
|
||||||
|
self = self;
|
||||||
|
if(!PyArg_ParseTupleAndKeywords(args,kwargs,"Ol:wxListView_GetNextSelected",_kwnames,&_argo0,&_arg1))
|
||||||
|
return NULL;
|
||||||
|
if (_argo0) {
|
||||||
|
if (_argo0 == Py_None) { _arg0 = NULL; }
|
||||||
|
else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxListView_p")) {
|
||||||
|
PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxListView_GetNextSelected. Expected _wxListView_p.");
|
||||||
|
return NULL;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
{
|
||||||
|
wxPy_BEGIN_ALLOW_THREADS;
|
||||||
|
_result = (long )wxListView_GetNextSelected(_arg0,_arg1);
|
||||||
|
|
||||||
|
wxPy_END_ALLOW_THREADS;
|
||||||
|
if (PyErr_Occurred()) return NULL;
|
||||||
|
} _resultobj = Py_BuildValue("l",_result);
|
||||||
|
return _resultobj;
|
||||||
|
}
|
||||||
|
|
||||||
|
#define wxListView_GetFirstSelected(_swigobj) (_swigobj->GetFirstSelected())
|
||||||
|
static PyObject *_wrap_wxListView_GetFirstSelected(PyObject *self, PyObject *args, PyObject *kwargs) {
|
||||||
|
PyObject * _resultobj;
|
||||||
|
long _result;
|
||||||
|
wxListView * _arg0;
|
||||||
|
PyObject * _argo0 = 0;
|
||||||
|
char *_kwnames[] = { "self", NULL };
|
||||||
|
|
||||||
|
self = self;
|
||||||
|
if(!PyArg_ParseTupleAndKeywords(args,kwargs,"O:wxListView_GetFirstSelected",_kwnames,&_argo0))
|
||||||
|
return NULL;
|
||||||
|
if (_argo0) {
|
||||||
|
if (_argo0 == Py_None) { _arg0 = NULL; }
|
||||||
|
else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxListView_p")) {
|
||||||
|
PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxListView_GetFirstSelected. Expected _wxListView_p.");
|
||||||
|
return NULL;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
{
|
||||||
|
wxPy_BEGIN_ALLOW_THREADS;
|
||||||
|
_result = (long )wxListView_GetFirstSelected(_arg0);
|
||||||
|
|
||||||
|
wxPy_END_ALLOW_THREADS;
|
||||||
|
if (PyErr_Occurred()) return NULL;
|
||||||
|
} _resultobj = Py_BuildValue("l",_result);
|
||||||
|
return _resultobj;
|
||||||
|
}
|
||||||
|
|
||||||
|
#define wxListView_IsSelected(_swigobj,_swigarg0) (_swigobj->IsSelected(_swigarg0))
|
||||||
|
static PyObject *_wrap_wxListView_IsSelected(PyObject *self, PyObject *args, PyObject *kwargs) {
|
||||||
|
PyObject * _resultobj;
|
||||||
|
bool _result;
|
||||||
|
wxListView * _arg0;
|
||||||
|
long _arg1;
|
||||||
|
PyObject * _argo0 = 0;
|
||||||
|
char *_kwnames[] = { "self","index", NULL };
|
||||||
|
|
||||||
|
self = self;
|
||||||
|
if(!PyArg_ParseTupleAndKeywords(args,kwargs,"Ol:wxListView_IsSelected",_kwnames,&_argo0,&_arg1))
|
||||||
|
return NULL;
|
||||||
|
if (_argo0) {
|
||||||
|
if (_argo0 == Py_None) { _arg0 = NULL; }
|
||||||
|
else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxListView_p")) {
|
||||||
|
PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxListView_IsSelected. Expected _wxListView_p.");
|
||||||
|
return NULL;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
{
|
||||||
|
wxPy_BEGIN_ALLOW_THREADS;
|
||||||
|
_result = (bool )wxListView_IsSelected(_arg0,_arg1);
|
||||||
|
|
||||||
|
wxPy_END_ALLOW_THREADS;
|
||||||
|
if (PyErr_Occurred()) return NULL;
|
||||||
|
} _resultobj = Py_BuildValue("i",_result);
|
||||||
|
return _resultobj;
|
||||||
|
}
|
||||||
|
|
||||||
|
#define wxListView_SetColumnImage(_swigobj,_swigarg0,_swigarg1) (_swigobj->SetColumnImage(_swigarg0,_swigarg1))
|
||||||
|
static PyObject *_wrap_wxListView_SetColumnImage(PyObject *self, PyObject *args, PyObject *kwargs) {
|
||||||
|
PyObject * _resultobj;
|
||||||
|
wxListView * _arg0;
|
||||||
|
int _arg1;
|
||||||
|
int _arg2;
|
||||||
|
PyObject * _argo0 = 0;
|
||||||
|
char *_kwnames[] = { "self","col","image", NULL };
|
||||||
|
|
||||||
|
self = self;
|
||||||
|
if(!PyArg_ParseTupleAndKeywords(args,kwargs,"Oii:wxListView_SetColumnImage",_kwnames,&_argo0,&_arg1,&_arg2))
|
||||||
|
return NULL;
|
||||||
|
if (_argo0) {
|
||||||
|
if (_argo0 == Py_None) { _arg0 = NULL; }
|
||||||
|
else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxListView_p")) {
|
||||||
|
PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxListView_SetColumnImage. Expected _wxListView_p.");
|
||||||
|
return NULL;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
{
|
||||||
|
wxPy_BEGIN_ALLOW_THREADS;
|
||||||
|
wxListView_SetColumnImage(_arg0,_arg1,_arg2);
|
||||||
|
|
||||||
|
wxPy_END_ALLOW_THREADS;
|
||||||
|
if (PyErr_Occurred()) return NULL;
|
||||||
|
} Py_INCREF(Py_None);
|
||||||
|
_resultobj = Py_None;
|
||||||
|
return _resultobj;
|
||||||
|
}
|
||||||
|
|
||||||
|
#define wxListView_ClearColumnImage(_swigobj,_swigarg0) (_swigobj->ClearColumnImage(_swigarg0))
|
||||||
|
static PyObject *_wrap_wxListView_ClearColumnImage(PyObject *self, PyObject *args, PyObject *kwargs) {
|
||||||
|
PyObject * _resultobj;
|
||||||
|
wxListView * _arg0;
|
||||||
|
int _arg1;
|
||||||
|
PyObject * _argo0 = 0;
|
||||||
|
char *_kwnames[] = { "self","col", NULL };
|
||||||
|
|
||||||
|
self = self;
|
||||||
|
if(!PyArg_ParseTupleAndKeywords(args,kwargs,"Oi:wxListView_ClearColumnImage",_kwnames,&_argo0,&_arg1))
|
||||||
|
return NULL;
|
||||||
|
if (_argo0) {
|
||||||
|
if (_argo0 == Py_None) { _arg0 = NULL; }
|
||||||
|
else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxListView_p")) {
|
||||||
|
PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxListView_ClearColumnImage. Expected _wxListView_p.");
|
||||||
|
return NULL;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
{
|
||||||
|
wxPy_BEGIN_ALLOW_THREADS;
|
||||||
|
wxListView_ClearColumnImage(_arg0,_arg1);
|
||||||
|
|
||||||
|
wxPy_END_ALLOW_THREADS;
|
||||||
|
if (PyErr_Occurred()) return NULL;
|
||||||
|
} Py_INCREF(Py_None);
|
||||||
|
_resultobj = Py_None;
|
||||||
|
return _resultobj;
|
||||||
|
}
|
||||||
|
|
||||||
#define new_wxTreeItemAttr(_swigarg0,_swigarg1,_swigarg2) (new wxTreeItemAttr(_swigarg0,_swigarg1,_swigarg2))
|
#define new_wxTreeItemAttr(_swigarg0,_swigarg1,_swigarg2) (new wxTreeItemAttr(_swigarg0,_swigarg1,_swigarg2))
|
||||||
static PyObject *_wrap_new_wxTreeItemAttr(PyObject *self, PyObject *args, PyObject *kwargs) {
|
static PyObject *_wrap_new_wxTreeItemAttr(PyObject *self, PyObject *args, PyObject *kwargs) {
|
||||||
PyObject * _resultobj;
|
PyObject * _resultobj;
|
||||||
@@ -9180,6 +9744,17 @@ static PyMethodDef controls2cMethods[] = {
|
|||||||
{ "wxTreeItemAttr_SetBackgroundColour", (PyCFunction) _wrap_wxTreeItemAttr_SetBackgroundColour, METH_VARARGS | METH_KEYWORDS },
|
{ "wxTreeItemAttr_SetBackgroundColour", (PyCFunction) _wrap_wxTreeItemAttr_SetBackgroundColour, METH_VARARGS | METH_KEYWORDS },
|
||||||
{ "wxTreeItemAttr_SetTextColour", (PyCFunction) _wrap_wxTreeItemAttr_SetTextColour, METH_VARARGS | METH_KEYWORDS },
|
{ "wxTreeItemAttr_SetTextColour", (PyCFunction) _wrap_wxTreeItemAttr_SetTextColour, METH_VARARGS | METH_KEYWORDS },
|
||||||
{ "new_wxTreeItemAttr", (PyCFunction) _wrap_new_wxTreeItemAttr, METH_VARARGS | METH_KEYWORDS },
|
{ "new_wxTreeItemAttr", (PyCFunction) _wrap_new_wxTreeItemAttr, METH_VARARGS | METH_KEYWORDS },
|
||||||
|
{ "wxListView_ClearColumnImage", (PyCFunction) _wrap_wxListView_ClearColumnImage, METH_VARARGS | METH_KEYWORDS },
|
||||||
|
{ "wxListView_SetColumnImage", (PyCFunction) _wrap_wxListView_SetColumnImage, METH_VARARGS | METH_KEYWORDS },
|
||||||
|
{ "wxListView_IsSelected", (PyCFunction) _wrap_wxListView_IsSelected, METH_VARARGS | METH_KEYWORDS },
|
||||||
|
{ "wxListView_GetFirstSelected", (PyCFunction) _wrap_wxListView_GetFirstSelected, METH_VARARGS | METH_KEYWORDS },
|
||||||
|
{ "wxListView_GetNextSelected", (PyCFunction) _wrap_wxListView_GetNextSelected, METH_VARARGS | METH_KEYWORDS },
|
||||||
|
{ "wxListView_GetFocusedItem", (PyCFunction) _wrap_wxListView_GetFocusedItem, METH_VARARGS | METH_KEYWORDS },
|
||||||
|
{ "wxListView_Focus", (PyCFunction) _wrap_wxListView_Focus, METH_VARARGS | METH_KEYWORDS },
|
||||||
|
{ "wxListView_Select", (PyCFunction) _wrap_wxListView_Select, METH_VARARGS | METH_KEYWORDS },
|
||||||
|
{ "wxListView_Create", (PyCFunction) _wrap_wxListView_Create, METH_VARARGS | METH_KEYWORDS },
|
||||||
|
{ "new_wxPreListView", (PyCFunction) _wrap_new_wxPreListView, METH_VARARGS | METH_KEYWORDS },
|
||||||
|
{ "new_wxListView", (PyCFunction) _wrap_new_wxListView, METH_VARARGS | METH_KEYWORDS },
|
||||||
{ "wxListCtrl_SortItems", (PyCFunction) _wrap_wxListCtrl_SortItems, METH_VARARGS | METH_KEYWORDS },
|
{ "wxListCtrl_SortItems", (PyCFunction) _wrap_wxListCtrl_SortItems, METH_VARARGS | METH_KEYWORDS },
|
||||||
{ "wxListCtrl_ScrollList", (PyCFunction) _wrap_wxListCtrl_ScrollList, METH_VARARGS | METH_KEYWORDS },
|
{ "wxListCtrl_ScrollList", (PyCFunction) _wrap_wxListCtrl_ScrollList, METH_VARARGS | METH_KEYWORDS },
|
||||||
{ "wxListCtrl_SetItemCount", (PyCFunction) _wrap_wxListCtrl_SetItemCount, METH_VARARGS | METH_KEYWORDS },
|
{ "wxListCtrl_SetItemCount", (PyCFunction) _wrap_wxListCtrl_SetItemCount, METH_VARARGS | METH_KEYWORDS },
|
||||||
@@ -9243,6 +9818,8 @@ static PyMethodDef controls2cMethods[] = {
|
|||||||
{ "wxListCtrl_Create", (PyCFunction) _wrap_wxListCtrl_Create, METH_VARARGS | METH_KEYWORDS },
|
{ "wxListCtrl_Create", (PyCFunction) _wrap_wxListCtrl_Create, METH_VARARGS | METH_KEYWORDS },
|
||||||
{ "new_wxPreListCtrl", (PyCFunction) _wrap_new_wxPreListCtrl, METH_VARARGS | METH_KEYWORDS },
|
{ "new_wxPreListCtrl", (PyCFunction) _wrap_new_wxPreListCtrl, METH_VARARGS | METH_KEYWORDS },
|
||||||
{ "new_wxListCtrl", (PyCFunction) _wrap_new_wxListCtrl, METH_VARARGS | METH_KEYWORDS },
|
{ "new_wxListCtrl", (PyCFunction) _wrap_new_wxListCtrl, METH_VARARGS | METH_KEYWORDS },
|
||||||
|
{ "wxListEvent_GetCacheTo", (PyCFunction) _wrap_wxListEvent_GetCacheTo, METH_VARARGS | METH_KEYWORDS },
|
||||||
|
{ "wxListEvent_GetCacheFrom", (PyCFunction) _wrap_wxListEvent_GetCacheFrom, METH_VARARGS | METH_KEYWORDS },
|
||||||
{ "wxListEvent_GetItem", (PyCFunction) _wrap_wxListEvent_GetItem, METH_VARARGS | METH_KEYWORDS },
|
{ "wxListEvent_GetItem", (PyCFunction) _wrap_wxListEvent_GetItem, METH_VARARGS | METH_KEYWORDS },
|
||||||
{ "wxListEvent_GetMask", (PyCFunction) _wrap_wxListEvent_GetMask, METH_VARARGS | METH_KEYWORDS },
|
{ "wxListEvent_GetMask", (PyCFunction) _wrap_wxListEvent_GetMask, METH_VARARGS | METH_KEYWORDS },
|
||||||
{ "wxListEvent_GetData", (PyCFunction) _wrap_wxListEvent_GetData, METH_VARARGS | METH_KEYWORDS },
|
{ "wxListEvent_GetData", (PyCFunction) _wrap_wxListEvent_GetData, METH_VARARGS | METH_KEYWORDS },
|
||||||
@@ -9270,6 +9847,7 @@ static PyMethodDef controls2cMethods[] = {
|
|||||||
{ "wxListEvent_m_itemIndex_set", (PyCFunction) _wrap_wxListEvent_m_itemIndex_set, METH_VARARGS | METH_KEYWORDS },
|
{ "wxListEvent_m_itemIndex_set", (PyCFunction) _wrap_wxListEvent_m_itemIndex_set, METH_VARARGS | METH_KEYWORDS },
|
||||||
{ "wxListEvent_m_code_get", (PyCFunction) _wrap_wxListEvent_m_code_get, METH_VARARGS | METH_KEYWORDS },
|
{ "wxListEvent_m_code_get", (PyCFunction) _wrap_wxListEvent_m_code_get, METH_VARARGS | METH_KEYWORDS },
|
||||||
{ "wxListEvent_m_code_set", (PyCFunction) _wrap_wxListEvent_m_code_set, METH_VARARGS | METH_KEYWORDS },
|
{ "wxListEvent_m_code_set", (PyCFunction) _wrap_wxListEvent_m_code_set, METH_VARARGS | METH_KEYWORDS },
|
||||||
|
{ "new_wxListEvent", (PyCFunction) _wrap_new_wxListEvent, METH_VARARGS | METH_KEYWORDS },
|
||||||
{ "wxListItem_m_width_get", (PyCFunction) _wrap_wxListItem_m_width_get, METH_VARARGS | METH_KEYWORDS },
|
{ "wxListItem_m_width_get", (PyCFunction) _wrap_wxListItem_m_width_get, METH_VARARGS | METH_KEYWORDS },
|
||||||
{ "wxListItem_m_width_set", (PyCFunction) _wrap_wxListItem_m_width_set, METH_VARARGS | METH_KEYWORDS },
|
{ "wxListItem_m_width_set", (PyCFunction) _wrap_wxListItem_m_width_set, METH_VARARGS | METH_KEYWORDS },
|
||||||
{ "wxListItem_m_format_get", (PyCFunction) _wrap_wxListItem_m_format_get, METH_VARARGS | METH_KEYWORDS },
|
{ "wxListItem_m_format_get", (PyCFunction) _wrap_wxListItem_m_format_get, METH_VARARGS | METH_KEYWORDS },
|
||||||
@@ -9394,6 +9972,7 @@ static struct { char *n1; char *n2; void *(*pcnv)(void *); } _swig_mapping[] = {
|
|||||||
{ "_wxObject","_wxPyTreeCtrl",SwigwxPyTreeCtrlTowxObject},
|
{ "_wxObject","_wxPyTreeCtrl",SwigwxPyTreeCtrlTowxObject},
|
||||||
{ "_wxObject","_wxTreeEvent",SwigwxTreeEventTowxObject},
|
{ "_wxObject","_wxTreeEvent",SwigwxTreeEventTowxObject},
|
||||||
{ "_wxObject","_wxPyTreeItemData",SwigwxPyTreeItemDataTowxObject},
|
{ "_wxObject","_wxPyTreeItemData",SwigwxPyTreeItemDataTowxObject},
|
||||||
|
{ "_wxObject","_wxListView",SwigwxListViewTowxObject},
|
||||||
{ "_wxObject","_wxPyListCtrl",SwigwxPyListCtrlTowxObject},
|
{ "_wxObject","_wxPyListCtrl",SwigwxPyListCtrlTowxObject},
|
||||||
{ "_wxObject","_wxListEvent",SwigwxListEventTowxObject},
|
{ "_wxObject","_wxListEvent",SwigwxListEventTowxObject},
|
||||||
{ "_wxObject","_wxListItem",SwigwxListItemTowxObject},
|
{ "_wxObject","_wxListItem",SwigwxListItemTowxObject},
|
||||||
@@ -9401,6 +9980,7 @@ static struct { char *n1; char *n2; void *(*pcnv)(void *); } _swig_mapping[] = {
|
|||||||
{ "_signed_short","_short",0},
|
{ "_signed_short","_short",0},
|
||||||
{ "_unsigned_char","_byte",0},
|
{ "_unsigned_char","_byte",0},
|
||||||
{ "_wxControl","_wxPyTreeCtrl",SwigwxPyTreeCtrlTowxControl},
|
{ "_wxControl","_wxPyTreeCtrl",SwigwxPyTreeCtrlTowxControl},
|
||||||
|
{ "_wxControl","_wxListView",SwigwxListViewTowxControl},
|
||||||
{ "_wxControl","_wxPyListCtrl",SwigwxPyListCtrlTowxControl},
|
{ "_wxControl","_wxPyListCtrl",SwigwxPyListCtrlTowxControl},
|
||||||
{ "_unsigned_int","_wxCoord",0},
|
{ "_unsigned_int","_wxCoord",0},
|
||||||
{ "_unsigned_int","_wxPrintQuality",0},
|
{ "_unsigned_int","_wxPrintQuality",0},
|
||||||
@@ -9446,9 +10026,12 @@ static struct { char *n1; char *n2; void *(*pcnv)(void *); } _swig_mapping[] = {
|
|||||||
{ "_wxCoord","_size_t",0},
|
{ "_wxCoord","_size_t",0},
|
||||||
{ "_wxCoord","_time_t",0},
|
{ "_wxCoord","_time_t",0},
|
||||||
{ "_wxCoord","_wxPrintQuality",0},
|
{ "_wxCoord","_wxPrintQuality",0},
|
||||||
|
{ "_wxPyListCtrl","_wxListView",SwigwxListViewTowxPyListCtrl},
|
||||||
{ "_wxEvtHandler","_wxPyTreeCtrl",SwigwxPyTreeCtrlTowxEvtHandler},
|
{ "_wxEvtHandler","_wxPyTreeCtrl",SwigwxPyTreeCtrlTowxEvtHandler},
|
||||||
|
{ "_wxEvtHandler","_wxListView",SwigwxListViewTowxEvtHandler},
|
||||||
{ "_wxEvtHandler","_wxPyListCtrl",SwigwxPyListCtrlTowxEvtHandler},
|
{ "_wxEvtHandler","_wxPyListCtrl",SwigwxPyListCtrlTowxEvtHandler},
|
||||||
{ "_wxWindow","_wxPyTreeCtrl",SwigwxPyTreeCtrlTowxWindow},
|
{ "_wxWindow","_wxPyTreeCtrl",SwigwxPyTreeCtrlTowxWindow},
|
||||||
|
{ "_wxWindow","_wxListView",SwigwxListViewTowxWindow},
|
||||||
{ "_wxWindow","_wxPyListCtrl",SwigwxPyListCtrlTowxWindow},
|
{ "_wxWindow","_wxPyListCtrl",SwigwxPyListCtrlTowxWindow},
|
||||||
{0,0,0}};
|
{0,0,0}};
|
||||||
|
|
||||||
@@ -9478,6 +10061,10 @@ SWIGEXPORT(void) initcontrols2c() {
|
|||||||
PyDict_SetItemString(d,"wxEVT_COMMAND_LIST_ITEM_MIDDLE_CLICK", PyInt_FromLong((long) wxEVT_COMMAND_LIST_ITEM_MIDDLE_CLICK));
|
PyDict_SetItemString(d,"wxEVT_COMMAND_LIST_ITEM_MIDDLE_CLICK", PyInt_FromLong((long) wxEVT_COMMAND_LIST_ITEM_MIDDLE_CLICK));
|
||||||
PyDict_SetItemString(d,"wxEVT_COMMAND_LIST_ITEM_ACTIVATED", PyInt_FromLong((long) wxEVT_COMMAND_LIST_ITEM_ACTIVATED));
|
PyDict_SetItemString(d,"wxEVT_COMMAND_LIST_ITEM_ACTIVATED", PyInt_FromLong((long) wxEVT_COMMAND_LIST_ITEM_ACTIVATED));
|
||||||
PyDict_SetItemString(d,"wxEVT_COMMAND_LIST_CACHE_HINT", PyInt_FromLong((long) wxEVT_COMMAND_LIST_CACHE_HINT));
|
PyDict_SetItemString(d,"wxEVT_COMMAND_LIST_CACHE_HINT", PyInt_FromLong((long) wxEVT_COMMAND_LIST_CACHE_HINT));
|
||||||
|
PyDict_SetItemString(d,"wxEVT_COMMAND_LIST_COL_RIGHT_CLICK", PyInt_FromLong((long) wxEVT_COMMAND_LIST_COL_RIGHT_CLICK));
|
||||||
|
PyDict_SetItemString(d,"wxEVT_COMMAND_LIST_COL_BEGIN_DRAG", PyInt_FromLong((long) wxEVT_COMMAND_LIST_COL_BEGIN_DRAG));
|
||||||
|
PyDict_SetItemString(d,"wxEVT_COMMAND_LIST_COL_DRAGGING", PyInt_FromLong((long) wxEVT_COMMAND_LIST_COL_DRAGGING));
|
||||||
|
PyDict_SetItemString(d,"wxEVT_COMMAND_LIST_COL_END_DRAG", PyInt_FromLong((long) wxEVT_COMMAND_LIST_COL_END_DRAG));
|
||||||
PyDict_SetItemString(d,"wxLC_VRULES", PyInt_FromLong((long) wxLC_VRULES));
|
PyDict_SetItemString(d,"wxLC_VRULES", PyInt_FromLong((long) wxLC_VRULES));
|
||||||
PyDict_SetItemString(d,"wxLC_HRULES", PyInt_FromLong((long) wxLC_HRULES));
|
PyDict_SetItemString(d,"wxLC_HRULES", PyInt_FromLong((long) wxLC_HRULES));
|
||||||
PyDict_SetItemString(d,"wxLC_ICON", PyInt_FromLong((long) wxLC_ICON));
|
PyDict_SetItemString(d,"wxLC_ICON", PyInt_FromLong((long) wxLC_ICON));
|
||||||
@@ -9497,6 +10084,7 @@ SWIGEXPORT(void) initcontrols2c() {
|
|||||||
PyDict_SetItemString(d,"wxLC_MASK_TYPE", PyInt_FromLong((long) wxLC_MASK_TYPE));
|
PyDict_SetItemString(d,"wxLC_MASK_TYPE", PyInt_FromLong((long) wxLC_MASK_TYPE));
|
||||||
PyDict_SetItemString(d,"wxLC_MASK_ALIGN", PyInt_FromLong((long) wxLC_MASK_ALIGN));
|
PyDict_SetItemString(d,"wxLC_MASK_ALIGN", PyInt_FromLong((long) wxLC_MASK_ALIGN));
|
||||||
PyDict_SetItemString(d,"wxLC_MASK_SORT", PyInt_FromLong((long) wxLC_MASK_SORT));
|
PyDict_SetItemString(d,"wxLC_MASK_SORT", PyInt_FromLong((long) wxLC_MASK_SORT));
|
||||||
|
PyDict_SetItemString(d,"wxLC_USER_TEXT", PyInt_FromLong((long) wxLC_USER_TEXT));
|
||||||
PyDict_SetItemString(d,"wxLIST_MASK_STATE", PyInt_FromLong((long) wxLIST_MASK_STATE));
|
PyDict_SetItemString(d,"wxLIST_MASK_STATE", PyInt_FromLong((long) wxLIST_MASK_STATE));
|
||||||
PyDict_SetItemString(d,"wxLIST_MASK_TEXT", PyInt_FromLong((long) wxLIST_MASK_TEXT));
|
PyDict_SetItemString(d,"wxLIST_MASK_TEXT", PyInt_FromLong((long) wxLIST_MASK_TEXT));
|
||||||
PyDict_SetItemString(d,"wxLIST_MASK_IMAGE", PyInt_FromLong((long) wxLIST_MASK_IMAGE));
|
PyDict_SetItemString(d,"wxLIST_MASK_IMAGE", PyInt_FromLong((long) wxLIST_MASK_IMAGE));
|
||||||
|
@@ -53,6 +53,18 @@ def EVT_LIST_INSERT_ITEM(win, id, func):
|
|||||||
def EVT_LIST_COL_CLICK(win, id, func):
|
def EVT_LIST_COL_CLICK(win, id, func):
|
||||||
win.Connect(id, -1, wxEVT_COMMAND_LIST_COL_CLICK, func)
|
win.Connect(id, -1, wxEVT_COMMAND_LIST_COL_CLICK, func)
|
||||||
|
|
||||||
|
def EVT_LIST_COL_RIGHT_CLICK(win, id, func):
|
||||||
|
win.Connect(id, -1, wxEVT_COMMAND_LIST_COL_RIGHT_CLICK, func)
|
||||||
|
|
||||||
|
def EVT_LIST_COL_BEGIN_DRAG(win, id, func):
|
||||||
|
win.Connect(id, -1, wxEVT_COMMAND_LIST_COL_BEGIN_DRAG, func)
|
||||||
|
|
||||||
|
def EVT_LIST_COL_DRAGGING(win, id, func):
|
||||||
|
win.Connect(id, -1, wxEVT_COMMAND_LIST_COL_DRAGGING, func)
|
||||||
|
|
||||||
|
def EVT_LIST_COL_END_DRAG(win, id, func):
|
||||||
|
win.Connect(id, -1, wxEVT_COMMAND_LIST_COL_END_DRAG, func)
|
||||||
|
|
||||||
def EVT_LIST_ITEM_RIGHT_CLICK(win, id, func):
|
def EVT_LIST_ITEM_RIGHT_CLICK(win, id, func):
|
||||||
win.Connect(id, -1, wxEVT_COMMAND_LIST_ITEM_RIGHT_CLICK, func)
|
win.Connect(id, -1, wxEVT_COMMAND_LIST_ITEM_RIGHT_CLICK, func)
|
||||||
|
|
||||||
@@ -371,6 +383,12 @@ class wxListEventPtr(wxNotifyEventPtr):
|
|||||||
def GetItem(self, *_args, **_kwargs):
|
def GetItem(self, *_args, **_kwargs):
|
||||||
val = apply(controls2c.wxListEvent_GetItem,(self,) + _args, _kwargs)
|
val = apply(controls2c.wxListEvent_GetItem,(self,) + _args, _kwargs)
|
||||||
return val
|
return val
|
||||||
|
def GetCacheFrom(self, *_args, **_kwargs):
|
||||||
|
val = apply(controls2c.wxListEvent_GetCacheFrom,(self,) + _args, _kwargs)
|
||||||
|
return val
|
||||||
|
def GetCacheTo(self, *_args, **_kwargs):
|
||||||
|
val = apply(controls2c.wxListEvent_GetCacheTo,(self,) + _args, _kwargs)
|
||||||
|
return val
|
||||||
def __setattr__(self,name,value):
|
def __setattr__(self,name,value):
|
||||||
if name == "m_code" :
|
if name == "m_code" :
|
||||||
controls2c.wxListEvent_m_code_set(self,value)
|
controls2c.wxListEvent_m_code_set(self,value)
|
||||||
@@ -413,8 +431,9 @@ class wxListEventPtr(wxNotifyEventPtr):
|
|||||||
def __repr__(self):
|
def __repr__(self):
|
||||||
return "<C wxListEvent instance at %s>" % (self.this,)
|
return "<C wxListEvent instance at %s>" % (self.this,)
|
||||||
class wxListEvent(wxListEventPtr):
|
class wxListEvent(wxListEventPtr):
|
||||||
def __init__(self,this):
|
def __init__(self,*_args,**_kwargs):
|
||||||
self.this = this
|
self.this = apply(controls2c.new_wxListEvent,_args,_kwargs)
|
||||||
|
self.thisown = 1
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
@@ -618,6 +637,37 @@ class wxListCtrlPtr(wxControlPtr):
|
|||||||
val.thisown = 1
|
val.thisown = 1
|
||||||
return val
|
return val
|
||||||
|
|
||||||
|
|
||||||
|
# Some helpers...
|
||||||
|
|
||||||
|
def Select(self, idx, on=true):
|
||||||
|
'''[de]select an item'''
|
||||||
|
if on: state = wxLIST_STATE_SELECTED
|
||||||
|
else: state = 0
|
||||||
|
self.SetItemState(idx, state, wxLIST_STATE_SELECTED)
|
||||||
|
|
||||||
|
def Focus(self, idx):
|
||||||
|
'''Focus and show the given item'''
|
||||||
|
self.SetItemState(idx, wxLIST_STATE_FOCUSED, wxLIST_STATE_FOCUSED)
|
||||||
|
self.EnsureVisible(idx)
|
||||||
|
|
||||||
|
def GetFocusedItem(self):
|
||||||
|
'''get the currently focused item or -1 if none'''
|
||||||
|
return self.GetNextItem(-1, wxLIST_NEXT_ALL, wxLIST_STATE_FOCUSED)
|
||||||
|
|
||||||
|
def IsSelected(self, idx):
|
||||||
|
'''return TRUE if the item is selected'''
|
||||||
|
return self.GetItemState(idx, wxLIST_STATE_SELECTED) != 0
|
||||||
|
|
||||||
|
def SetColumnImage(self, col, image):
|
||||||
|
item = wxListItem()
|
||||||
|
item.SetMask(wxLIST_MASK_IMAGE)
|
||||||
|
item.SetImage(image)
|
||||||
|
self.SetColumn(col, item)
|
||||||
|
|
||||||
|
def ClearColumnImage(self, col):
|
||||||
|
self.SetColumnImage(col, -1)
|
||||||
|
|
||||||
class wxListCtrl(wxListCtrlPtr):
|
class wxListCtrl(wxListCtrlPtr):
|
||||||
def __init__(self,*_args,**_kwargs):
|
def __init__(self,*_args,**_kwargs):
|
||||||
self.this = apply(controls2c.new_wxListCtrl,_args,_kwargs)
|
self.this = apply(controls2c.new_wxListCtrl,_args,_kwargs)
|
||||||
@@ -632,6 +682,52 @@ def wxPreListCtrl(*_args,**_kwargs):
|
|||||||
return val
|
return val
|
||||||
|
|
||||||
|
|
||||||
|
class wxListViewPtr(wxListCtrlPtr):
|
||||||
|
def __init__(self,this):
|
||||||
|
self.this = this
|
||||||
|
self.thisown = 0
|
||||||
|
def Create(self, *_args, **_kwargs):
|
||||||
|
val = apply(controls2c.wxListView_Create,(self,) + _args, _kwargs)
|
||||||
|
return val
|
||||||
|
def Select(self, *_args, **_kwargs):
|
||||||
|
val = apply(controls2c.wxListView_Select,(self,) + _args, _kwargs)
|
||||||
|
return val
|
||||||
|
def Focus(self, *_args, **_kwargs):
|
||||||
|
val = apply(controls2c.wxListView_Focus,(self,) + _args, _kwargs)
|
||||||
|
return val
|
||||||
|
def GetFocusedItem(self, *_args, **_kwargs):
|
||||||
|
val = apply(controls2c.wxListView_GetFocusedItem,(self,) + _args, _kwargs)
|
||||||
|
return val
|
||||||
|
def GetNextSelected(self, *_args, **_kwargs):
|
||||||
|
val = apply(controls2c.wxListView_GetNextSelected,(self,) + _args, _kwargs)
|
||||||
|
return val
|
||||||
|
def GetFirstSelected(self, *_args, **_kwargs):
|
||||||
|
val = apply(controls2c.wxListView_GetFirstSelected,(self,) + _args, _kwargs)
|
||||||
|
return val
|
||||||
|
def IsSelected(self, *_args, **_kwargs):
|
||||||
|
val = apply(controls2c.wxListView_IsSelected,(self,) + _args, _kwargs)
|
||||||
|
return val
|
||||||
|
def SetColumnImage(self, *_args, **_kwargs):
|
||||||
|
val = apply(controls2c.wxListView_SetColumnImage,(self,) + _args, _kwargs)
|
||||||
|
return val
|
||||||
|
def ClearColumnImage(self, *_args, **_kwargs):
|
||||||
|
val = apply(controls2c.wxListView_ClearColumnImage,(self,) + _args, _kwargs)
|
||||||
|
return val
|
||||||
|
def __repr__(self):
|
||||||
|
return "<C wxListView instance at %s>" % (self.this,)
|
||||||
|
class wxListView(wxListViewPtr):
|
||||||
|
def __init__(self,*_args,**_kwargs):
|
||||||
|
self.this = apply(controls2c.new_wxListView,_args,_kwargs)
|
||||||
|
self.thisown = 1
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
def wxPreListView(*_args,**_kwargs):
|
||||||
|
val = wxListViewPtr(apply(controls2c.new_wxPreListView,_args,_kwargs))
|
||||||
|
val.thisown = 1
|
||||||
|
return val
|
||||||
|
|
||||||
|
|
||||||
class wxTreeItemAttrPtr :
|
class wxTreeItemAttrPtr :
|
||||||
def __init__(self,this):
|
def __init__(self,this):
|
||||||
self.this = this
|
self.this = this
|
||||||
@@ -1048,6 +1144,10 @@ wxEVT_COMMAND_LIST_ITEM_RIGHT_CLICK = controls2c.wxEVT_COMMAND_LIST_ITEM_RIGHT_C
|
|||||||
wxEVT_COMMAND_LIST_ITEM_MIDDLE_CLICK = controls2c.wxEVT_COMMAND_LIST_ITEM_MIDDLE_CLICK
|
wxEVT_COMMAND_LIST_ITEM_MIDDLE_CLICK = controls2c.wxEVT_COMMAND_LIST_ITEM_MIDDLE_CLICK
|
||||||
wxEVT_COMMAND_LIST_ITEM_ACTIVATED = controls2c.wxEVT_COMMAND_LIST_ITEM_ACTIVATED
|
wxEVT_COMMAND_LIST_ITEM_ACTIVATED = controls2c.wxEVT_COMMAND_LIST_ITEM_ACTIVATED
|
||||||
wxEVT_COMMAND_LIST_CACHE_HINT = controls2c.wxEVT_COMMAND_LIST_CACHE_HINT
|
wxEVT_COMMAND_LIST_CACHE_HINT = controls2c.wxEVT_COMMAND_LIST_CACHE_HINT
|
||||||
|
wxEVT_COMMAND_LIST_COL_RIGHT_CLICK = controls2c.wxEVT_COMMAND_LIST_COL_RIGHT_CLICK
|
||||||
|
wxEVT_COMMAND_LIST_COL_BEGIN_DRAG = controls2c.wxEVT_COMMAND_LIST_COL_BEGIN_DRAG
|
||||||
|
wxEVT_COMMAND_LIST_COL_DRAGGING = controls2c.wxEVT_COMMAND_LIST_COL_DRAGGING
|
||||||
|
wxEVT_COMMAND_LIST_COL_END_DRAG = controls2c.wxEVT_COMMAND_LIST_COL_END_DRAG
|
||||||
wxLC_VRULES = controls2c.wxLC_VRULES
|
wxLC_VRULES = controls2c.wxLC_VRULES
|
||||||
wxLC_HRULES = controls2c.wxLC_HRULES
|
wxLC_HRULES = controls2c.wxLC_HRULES
|
||||||
wxLC_ICON = controls2c.wxLC_ICON
|
wxLC_ICON = controls2c.wxLC_ICON
|
||||||
@@ -1067,6 +1167,7 @@ wxLC_SORT_DESCENDING = controls2c.wxLC_SORT_DESCENDING
|
|||||||
wxLC_MASK_TYPE = controls2c.wxLC_MASK_TYPE
|
wxLC_MASK_TYPE = controls2c.wxLC_MASK_TYPE
|
||||||
wxLC_MASK_ALIGN = controls2c.wxLC_MASK_ALIGN
|
wxLC_MASK_ALIGN = controls2c.wxLC_MASK_ALIGN
|
||||||
wxLC_MASK_SORT = controls2c.wxLC_MASK_SORT
|
wxLC_MASK_SORT = controls2c.wxLC_MASK_SORT
|
||||||
|
wxLC_USER_TEXT = controls2c.wxLC_USER_TEXT
|
||||||
wxLIST_MASK_STATE = controls2c.wxLIST_MASK_STATE
|
wxLIST_MASK_STATE = controls2c.wxLIST_MASK_STATE
|
||||||
wxLIST_MASK_TEXT = controls2c.wxLIST_MASK_TEXT
|
wxLIST_MASK_TEXT = controls2c.wxLIST_MASK_TEXT
|
||||||
wxLIST_MASK_IMAGE = controls2c.wxLIST_MASK_IMAGE
|
wxLIST_MASK_IMAGE = controls2c.wxLIST_MASK_IMAGE
|
||||||
|
@@ -1,3 +1,39 @@
|
|||||||
*.py
|
|
||||||
*.pyc
|
*.pyc
|
||||||
*.pyd
|
*.pyd
|
||||||
|
__init__.py
|
||||||
|
__version__.py
|
||||||
|
calendar.py
|
||||||
|
clip_dnd.py
|
||||||
|
cmndlgs.py
|
||||||
|
controls.py
|
||||||
|
controls2.py
|
||||||
|
events.py
|
||||||
|
filesys.py
|
||||||
|
frames.py
|
||||||
|
gdi.py
|
||||||
|
glcanvas.py
|
||||||
|
grid.py
|
||||||
|
help.py
|
||||||
|
html.py
|
||||||
|
htmlhelp.py
|
||||||
|
image.py
|
||||||
|
mdi.py
|
||||||
|
misc.py
|
||||||
|
misc2.py
|
||||||
|
ogl.py
|
||||||
|
oglbasic.py
|
||||||
|
oglcanvas.py
|
||||||
|
oglshapes.py
|
||||||
|
oglshapes2.py
|
||||||
|
printfw.py
|
||||||
|
sizers.py
|
||||||
|
stattool.py
|
||||||
|
stc.py
|
||||||
|
stc_.py
|
||||||
|
streams.py
|
||||||
|
utils.py
|
||||||
|
windows.py
|
||||||
|
windows2.py
|
||||||
|
windows3.py
|
||||||
|
wx.py
|
||||||
|
xrc.py
|
||||||
|
@@ -34,53 +34,99 @@ class wxColumnSorterMixin:
|
|||||||
objects representing the values in each column. These values
|
objects representing the values in each column. These values
|
||||||
are compared in the column sorter to determine sort order.
|
are compared in the column sorter to determine sort order.
|
||||||
|
|
||||||
|
Interesting methods to override are GetColumnSorter,
|
||||||
|
GetSecondarySortValues, and GetSortImages. See below for details.
|
||||||
"""
|
"""
|
||||||
|
|
||||||
def __init__(self, numColumns):
|
def __init__(self, numColumns):
|
||||||
self._colSortFlag = [0] * numColumns
|
self._colSortFlag = [0] * numColumns
|
||||||
self._col = 0
|
self._col = -1
|
||||||
self._colSortFlag[self._col] = 1
|
|
||||||
|
|
||||||
list = self.GetListCtrl()
|
list = self.GetListCtrl()
|
||||||
if not list:
|
if not list:
|
||||||
raise ValueError, "No wxListCtrl available"
|
raise ValueError, "No wxListCtrl available"
|
||||||
EVT_LIST_COL_CLICK(list, list.GetId(), self.OnColClick)
|
EVT_LIST_COL_CLICK(list, list.GetId(), self.__OnColClick)
|
||||||
|
|
||||||
|
|
||||||
def SortListItems(self, col=-1, ascending=1):
|
def SortListItems(self, col=-1, ascending=1):
|
||||||
"""Sort the list on demand. Can also be used to set the sort column and order."""
|
"""Sort the list on demand. Can also be used to set the sort column and order."""
|
||||||
|
oldCol = self._col
|
||||||
if col != -1:
|
if col != -1:
|
||||||
self._col = col
|
self._col = col
|
||||||
self._colSortFlag[col] = ascending
|
self._colSortFlag[col] = ascending
|
||||||
self.GetListCtrl().SortItems(self.ColumnSorter)
|
self.GetListCtrl().SortItems(self.GetColumnSorter())
|
||||||
|
self.__updateImages(oldCol)
|
||||||
|
|
||||||
def OnColClick(self, evt):
|
|
||||||
self._col = col = evt.m_col
|
|
||||||
self._colSortFlag[col] = not self._colSortFlag[col]
|
|
||||||
self.GetListCtrl().SortItems(self.ColumnSorter)
|
|
||||||
|
|
||||||
|
|
||||||
def ColumnSorter(self, key1, key2):
|
|
||||||
col = self._col
|
|
||||||
sortFlag = self._colSortFlag[col]
|
|
||||||
item1 = self.itemDataMap[key1][col]
|
|
||||||
item2 = self.itemDataMap[key2][col]
|
|
||||||
if item1 == item2: return 0
|
|
||||||
if sortFlag:
|
|
||||||
if item1 < item2: return -1
|
|
||||||
else: return 1
|
|
||||||
else:
|
|
||||||
if item1 > item2: return -1
|
|
||||||
else: return 1
|
|
||||||
|
|
||||||
|
|
||||||
def GetColumnWidths(self):
|
def GetColumnWidths(self):
|
||||||
|
"""
|
||||||
|
Returns a list of column widths. Can be used to help restore the current
|
||||||
|
view later.
|
||||||
|
"""
|
||||||
list = self.GetListCtrl()
|
list = self.GetListCtrl()
|
||||||
rv = []
|
rv = []
|
||||||
for x in range(len(self._colSortFlag)):
|
for x in range(len(self._colSortFlag)):
|
||||||
rv.append(list.GetColumnWidth(x))
|
rv.append(list.GetColumnWidth(x))
|
||||||
return rv
|
return rv
|
||||||
|
|
||||||
|
|
||||||
|
def GetSortImages(self):
|
||||||
|
"""
|
||||||
|
Returns a tuple of image list indexesthe indexes in the image list for an image to be put on the column
|
||||||
|
header when sorting in descending order.
|
||||||
|
"""
|
||||||
|
return (-1, -1) # (decending, ascending) image IDs
|
||||||
|
|
||||||
|
|
||||||
|
def GetColumnSorter(self):
|
||||||
|
"""Returns a callable object to be used for comparing column values when sorting."""
|
||||||
|
return self.__ColumnSorter
|
||||||
|
|
||||||
|
|
||||||
|
def GetSecondarySortValues(self, col, key1, key2):
|
||||||
|
"""Returns a tuple of 2 values to use for secondary sort values when the
|
||||||
|
items in the selected column match equal. The default just returns the
|
||||||
|
item data values."""
|
||||||
|
return (key1, key2)
|
||||||
|
|
||||||
|
|
||||||
|
def __OnColClick(self, evt):
|
||||||
|
oldCol = self._col
|
||||||
|
self._col = col = evt.GetColumn()
|
||||||
|
self._colSortFlag[col] = not self._colSortFlag[col]
|
||||||
|
self.GetListCtrl().SortItems(self.GetColumnSorter())
|
||||||
|
self.__updateImages(oldCol)
|
||||||
|
evt.Skip()
|
||||||
|
|
||||||
|
|
||||||
|
def __ColumnSorter(self, key1, key2):
|
||||||
|
col = self._col
|
||||||
|
ascending = self._colSortFlag[col]
|
||||||
|
item1 = self.itemDataMap[key1][col]
|
||||||
|
item2 = self.itemDataMap[key2][col]
|
||||||
|
|
||||||
|
cmpVal = cmp(item1, item2)
|
||||||
|
|
||||||
|
# If the items are equal then pick something else to make the sort value unique
|
||||||
|
if cmpVal == 0:
|
||||||
|
cmpVal = apply(cmp, self.GetSecondarySortValues(col, key1, key2))
|
||||||
|
|
||||||
|
if ascending:
|
||||||
|
return cmpVal
|
||||||
|
else:
|
||||||
|
return -cmpVal
|
||||||
|
|
||||||
|
|
||||||
|
def __updateImages(self, oldCol):
|
||||||
|
sortImages = self.GetSortImages()
|
||||||
|
if self._col != -1 and sortImages[0] != -1:
|
||||||
|
img = sortImages[self._colSortFlag[self._col]]
|
||||||
|
list = self.GetListCtrl()
|
||||||
|
if oldCol != -1:
|
||||||
|
list.ClearColumnImage(oldCol)
|
||||||
|
list.SetColumnImage(self._col, img)
|
||||||
|
|
||||||
|
|
||||||
#----------------------------------------------------------------------------
|
#----------------------------------------------------------------------------
|
||||||
|
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user