comparison win/dw.c @ 1322:3f1ac800bf65

Initial fix for being able to do container string comparisons instead of pointer on all platforms. Improved on the GTK2 change earlier... where it would do both comparisons with string enabled.
author bsmith@81767d24-ef19-dc11-ae90-00e081727c95
date Sun, 06 Nov 2011 12:13:13 +0000
parents c969db49606e
children 4c12170f003f
comparison
equal deleted inserted replaced
1321:7630404386be 1322:3f1ac800bf65
8489 * text: Text usually returned by dw_container_query(). 8489 * text: Text usually returned by dw_container_query().
8490 */ 8490 */
8491 void API dw_container_cursor(HWND handle, char *text) 8491 void API dw_container_cursor(HWND handle, char *text)
8492 { 8492 {
8493 int index = ListView_GetNextItem(handle, -1, LVNI_ALL); 8493 int index = ListView_GetNextItem(handle, -1, LVNI_ALL);
8494 int textcomp = DW_POINTER_TO_INT(dw_window_get_data(handle, "_dw_textcomp"));
8494 8495
8495 while ( index != -1 ) 8496 while ( index != -1 )
8496 { 8497 {
8497 LV_ITEM lvi; 8498 LV_ITEM lvi;
8498 8499
8501 lvi.iItem = index; 8502 lvi.iItem = index;
8502 lvi.mask = LVIF_PARAM; 8503 lvi.mask = LVIF_PARAM;
8503 8504
8504 ListView_GetItem( handle, &lvi ); 8505 ListView_GetItem( handle, &lvi );
8505 8506
8506 if ( strcmp( (char *)lvi.lParam, text ) == 0 ) 8507 if ( (textcomp && lvi.lParam && strcmp( (char *)lvi.lParam, text ) == 0) || (!textcomp && (char *)lvi.lParam == text) )
8507 { 8508 {
8508 8509
8509 ListView_SetItemState( handle, index, LVIS_FOCUSED | LVIS_SELECTED, LVIS_FOCUSED | LVIS_SELECTED ); 8510 ListView_SetItemState( handle, index, LVIS_FOCUSED | LVIS_SELECTED, LVIS_FOCUSED | LVIS_SELECTED );
8510 ListView_EnsureVisible( handle, index, TRUE ); 8511 ListView_EnsureVisible( handle, index, TRUE );
8511 return; 8512 return;
8522 * text: Text usually returned by dw_container_query(). 8523 * text: Text usually returned by dw_container_query().
8523 */ 8524 */
8524 void API dw_container_delete_row(HWND handle, char *text) 8525 void API dw_container_delete_row(HWND handle, char *text)
8525 { 8526 {
8526 int index = ListView_GetNextItem(handle, -1, LVNI_ALL); 8527 int index = ListView_GetNextItem(handle, -1, LVNI_ALL);
8528 int textcomp = DW_POINTER_TO_INT(dw_window_get_data(handle, "_dw_textcomp"));
8527 8529
8528 while(index != -1) 8530 while(index != -1)
8529 { 8531 {
8530 LV_ITEM lvi; 8532 LV_ITEM lvi;
8531 8533
8534 lvi.iItem = index; 8536 lvi.iItem = index;
8535 lvi.mask = LVIF_PARAM; 8537 lvi.mask = LVIF_PARAM;
8536 8538
8537 ListView_GetItem(handle, &lvi); 8539 ListView_GetItem(handle, &lvi);
8538 8540
8539 if ( strcmp( (char *)lvi.lParam, text ) == 0 ) 8541 if ( (textcomp && lvi.lParam && strcmp( (char *)lvi.lParam, text ) == 0) || (!textcomp && (char *)lvi.lParam == text) )
8540 { 8542 {
8541 int _index = (int)dw_window_get_data(handle, "_dw_index"); 8543 int _index = (int)dw_window_get_data(handle, "_dw_index");
8542 8544
8543 if(index < _index) 8545 if(index < _index)
8544 dw_window_set_data(handle, "_dw_index", (void *)(_index - 1)); 8546 dw_window_set_data(handle, "_dw_index", (void *)(_index - 1));