rem: if (WMGetArrayItemCount(table->selectedRows) > 0 && !table->canSelectMultiRows) { int r = (int)WMGetFromArray(table->selectedRows, 0);  WMDeleteFromArray(table->selectedRows, 0);  drawFullRow(table, r);  WMPostNotificationName(WMTableViewRowWasUnselectedNotification, table, (void*)r); }
context: static void setRowSelected(WMTableView *table, unsigned row, Bool flag){    int repaint = 0;        if (WMGetArrayItemCount(table->selectedRows) > 0 	&& !table->canSelectMultiRows) {	int r = (int)WMGetFromArray(table->selectedRows, 0);		WMDeleteFromArray(table->selectedRows, 0);		drawFullRow(table, r);		WMPostNotificationName(WMTableViewRowWasUnselectedNotification,			       table, (void*)r);    }        if (WMFindInArray(table->selectedRows, NULL, (void*)row) != WANotFound) {	if (!flag) {	    WMRemoveFromArray(table->selectedRows, (void*)row);	    WMPostNotificationName(WMTableViewRowWasUnselectedNotification,				   table, (void*)row);	    repaint = 1;	}    } else {	if (flag) {	    WMAddToArray(table->selectedRows, (void*)row);	    WMPostNotificationName(WMTableViewRowWasSelectedNotification,				   table, (void*)row);	    	    repaint = 1;	}    }    if (repaint) {		drawFullRow(table, row);    }}