/usr/include/wx-3.0/wx/wxPython/i_files/_listbox.i is in python-wxgtk3.0-dev 3.0.2.0+dfsg-4.
This file is owned by root:root, with mode 0o644.
The actual contents of the file can be viewed below.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255 256 257 258 259 260 261 262 | /////////////////////////////////////////////////////////////////////////////
// Name: _listbox.i
// Purpose: SWIG interface defs for wxListBox and wxCheckListBox
//
// Author: Robin Dunn
//
// Created: 10-June-1998
// RCS-ID: $Id$
// Copyright: (c) 2003 by Total Control Software
// Licence: wxWindows license
/////////////////////////////////////////////////////////////////////////////
// Not a %module
//---------------------------------------------------------------------------
%{
#include <wx/checklst.h>
%}
MAKE_CONST_WXSTRING(ListBoxNameStr);
//---------------------------------------------------------------------------
%newgroup
MustHaveApp(wxListBox);
class wxListBox : public wxControlWithItems
{
public:
%pythonAppend wxListBox "self._setOORInfo(self)"
%pythonAppend wxListBox() ""
wxListBox(wxWindow* parent,
wxWindowID id = -1,
const wxPoint& pos = wxDefaultPosition,
const wxSize& size = wxDefaultSize,
const wxArrayString& choices = wxPyEmptyStringArray,
long style = 0,
const wxValidator& validator = wxDefaultValidator,
const wxString& name = wxPyListBoxNameStr);
// wxListBox(wxWindow* parent,
// wxWindowID id = -1,
// const wxPoint& pos = wxDefaultPosition,
// const wxSize& size = wxDefaultSize,
// int n = 0,
// const wxString choices[] = NULL,
// long style = 0,
// const wxValidator& validator = wxDefaultValidator,
// const wxString& name = wxPyListBoxNameStr);
%RenameCtor(PreListBox, wxListBox());
bool Create(wxWindow* parent,
wxWindowID id = -1,
const wxPoint& pos = wxDefaultPosition,
const wxSize& size = wxDefaultSize,
const wxArrayString& choices = wxPyEmptyStringArray,
long style = 0,
const wxValidator& validator = wxDefaultValidator,
const wxString& name = wxPyListBoxNameStr);
// bool Create(wxWindow *parent,
// wxWindowID id = -1,
// const wxPoint& pos = wxDefaultPosition,
// const wxSize& size = wxDefaultSize,
// int n = 0,
// const wxString choices[] = NULL,
// long style = 0,
// const wxValidator& validator = wxDefaultValidator,
// const wxString& name = wxPyListBoxNameStr);
// all generic methods are in wxControlWithItems...
%extend
{
void Insert(const wxString& item, int pos, PyObject* clientData = NULL)
{
if (clientData)
{
wxPyClientData* data = new wxPyClientData(clientData);
self->Insert(item, pos, data);
}
else
self->Insert(item, pos);
}
}
void InsertItems(const wxArrayString& items, unsigned int pos);
void Set(const wxArrayString& items/*, void **clientData = NULL */);
// multiple selection logic
virtual bool IsSelected(int n) const;
virtual void SetSelection(int n, bool select = true);
virtual void Select(int n);
void Deselect(int n);
void DeselectAll(int itemToLeaveSelected = -1);
virtual bool SetStringSelection(const wxString& s, bool select = true);
// works for single as well as multiple selection listboxes (unlike
// GetSelection which only works for listboxes with single selection)
//virtual int GetSelections(wxArrayInt& aSelections) const;
%extend {
PyObject* GetSelections() {
wxPyBlock_t blocked = wxPyBeginBlockThreads();
wxArrayInt lst;
self->GetSelections(lst);
PyObject *tup = PyTuple_New(lst.GetCount());
for (size_t i=0; i<lst.GetCount(); i++)
{
PyTuple_SetItem(tup, i, PyInt_FromLong(lst[i]));
}
wxPyEndBlockThreads(blocked);
return tup;
}
}
// set the specified item at the first visible item or scroll to max
// range.
void SetFirstItem(int n);
%Rename(SetFirstItemStr, void, SetFirstItem(const wxString& s));
// ensures that the given item is visible scrolling the listbox
// if necessary
virtual void EnsureVisible(int n);
// a combination of Append() and EnsureVisible(): appends the item to the
// listbox and ensures that it is visible i.e. not scrolled out of view
void AppendAndEnsureVisible(const wxString& s);
// return the index of the item at this position or wxNOT_FOUND
int HitTest(const wxPoint& pt) const;
%extend
{
void SetItemForegroundColour(int item, const wxColour& c)
{
%#ifdef __WXMSW__
if (self->GetWindowStyle() & wxLB_OWNERDRAW)
self->GetItem(item)->SetTextColour(c);
%#endif
}
void SetItemBackgroundColour(int item, const wxColour& c)
{
%#ifdef __WXMSW__
if (self->GetWindowStyle() & wxLB_OWNERDRAW)
self->GetItem(item)->SetBackgroundColour(c);
%#endif
}
void SetItemFont(int item, const wxFont& f)
{
%#ifdef __WXMSW__
if (self->GetWindowStyle() & wxLB_OWNERDRAW)
self->GetItem(item)->SetFont(f);
%#endif
}
}
static wxVisualAttributes
GetClassDefaultAttributes(wxWindowVariant variant = wxWINDOW_VARIANT_NORMAL);
%property(Selections, GetSelections, doc="See `GetSelections`");
};
//---------------------------------------------------------------------------
%newgroup
MustHaveApp(wxCheckListBox);
// wxCheckListBox: a listbox whose items may be checked
class wxCheckListBox : public wxListBox
{
public:
%pythonAppend wxCheckListBox "self._setOORInfo(self)"
%pythonAppend wxCheckListBox() ""
wxCheckListBox(wxWindow *parent,
wxWindowID id = -1,
const wxPoint& pos = wxDefaultPosition,
const wxSize& size = wxDefaultSize,
const wxArrayString& choices = wxPyEmptyStringArray,
long style = 0,
const wxValidator& validator = wxDefaultValidator,
const wxString& name = wxPyListBoxNameStr);
%RenameCtor(PreCheckListBox, wxCheckListBox());
bool Create(wxWindow *parent,
wxWindowID id = -1,
const wxPoint& pos = wxDefaultPosition,
const wxSize& size = wxDefaultSize,
const wxArrayString& choices = wxPyEmptyStringArray,
long style = 0,
const wxValidator& validator = wxDefaultValidator,
const wxString& name = wxPyListBoxNameStr);
bool IsChecked(unsigned int index);
void Check(unsigned int index, int check = true);
// #if defined(__WXMSW__) || defined(__WXGTK__)
// int GetItemHeight();
// #else
// %pythoncode {
// def GetItemHeight(self):
// raise NotImplementedError
// }
// #endif
%pythoncode {
def GetChecked(self):
"""
GetChecked(self)
Return a tuple of integers corresponding to the checked items in
the control, based on `IsChecked`.
"""
return tuple([i for i in range(self.Count) if self.IsChecked(i)])
def GetCheckedStrings(self):
"""
GetCheckedStrings(self)
Return a tuple of strings corresponding to the checked
items of the control, based on `GetChecked`.
"""
return tuple([self.GetString(i) for i in self.GetChecked()])
def SetChecked(self, indexes):
"""
SetChecked(self, indexes)
Sets the checked state of items if the index of the item is
found in the indexes sequence.
"""
for i in indexes:
assert 0 <= i < self.Count, "Index (%s) out of range" % i
for i in range(self.Count):
self.Check(i, i in indexes)
def SetCheckedStrings(self, strings):
"""
SetCheckedStrings(self, indexes)
Sets the checked state of items if the item's string is found
in the strings sequence.
"""
for s in strings:
assert s in self.GetStrings(), "String ('%s') not found" % s
for i in range(self.Count):
self.Check(i, self.GetString(i) in strings)
Checked = property(GetChecked,SetChecked)
CheckedStrings = property(GetCheckedStrings,SetCheckedStrings)
}
};
//---------------------------------------------------------------------------
|