in Lilypad/Config.cpp [666:703]
void Populate(int port, int slot) {
if (!hWnds[port][slot]) return;
HWND hWnd = GetDlgItem(hWnds[port][slot], IDC_LIST);
ListView_DeleteAllItems(hWnd);
int i, j;
int multipleBinding = config.multipleBinding;
config.multipleBinding = 1;
for (j=0; j<dm->numDevices; j++) {
Device *dev = dm->devices[j];
if (!dev->enabled) continue;
for (i=0; i<dev->pads[port][slot].numBindings; i++) {
ListBoundCommand(port, slot, dev, dev->pads[port][slot].bindings+i);
}
for (i=0; i<dev->pads[port][slot].numFFBindings; i++) {
ListBoundEffect(port, slot, dev, dev->pads[port][slot].ffBindings+i);
}
}
config.multipleBinding = multipleBinding;
hWnd = GetDlgItem(hWnds[port][slot], IDC_FORCEFEEDBACK);
SendMessage(hWnd, CB_RESETCONTENT, 0, 0);
int added = 0;
for (i=0; i<dm->numDevices; i++) {
Device *dev = dm->devices[i];
if (dev->enabled && dev->numFFAxes && dev->numFFEffectTypes) {
SendMessage(hWnd, CB_INSERTSTRING, added, (LPARAM)dev->displayName);
SendMessage(hWnd, CB_SETITEMDATA, added, i);
added++;
}
}
SendMessage(hWnd, CB_SETCURSEL, 0, 0);
EnableWindow(hWnd, added!=0);
EnableWindow(GetDlgItem(hWnds[port][slot], ID_BIG_MOTOR), added!=0);
EnableWindow(GetDlgItem(hWnds[port][slot], ID_SMALL_MOTOR), added!=0);
SelChanged(port, slot);
}