Mercurial > dwindows
comparison gtk3/dw.c @ 1501:7060e258e383
Allow passing NULL to the dw_container_change/set_item() APIs on GTK3.
author | bsmith@81767d24-ef19-dc11-ae90-00e081727c95 |
---|---|
date | Mon, 26 Dec 2011 21:20:54 +0000 |
parents | 97e5e8688fe1 |
children | fcdd9e3c735a |
comparison
equal
deleted
inserted
replaced
1500:97002721c4ca | 1501:7060e258e383 |
---|---|
5774 * Internal representation of dw_container_set_item() extracted so we can pass | 5774 * Internal representation of dw_container_set_item() extracted so we can pass |
5775 * two data pointers; icon and text for dw_filesystem_set_item(). | 5775 * two data pointers; icon and text for dw_filesystem_set_item(). |
5776 */ | 5776 */ |
5777 void _dw_container_set_item(HWND handle, void *pointer, int column, int row, void *data) | 5777 void _dw_container_set_item(HWND handle, void *pointer, int column, int row, void *data) |
5778 { | 5778 { |
5779 char numbuf[21], textbuffer[101]; | 5779 char numbuf[21], textbuffer[101] = {0}; |
5780 int flag = 0; | 5780 int flag = 0; |
5781 GtkWidget *cont; | 5781 GtkWidget *cont; |
5782 GtkListStore *store = NULL; | 5782 GtkListStore *store = NULL; |
5783 int _locked_by_me = FALSE; | 5783 int _locked_by_me = FALSE; |
5784 | 5784 |
5803 if(gtk_tree_model_iter_nth_child(GTK_TREE_MODEL(store), &iter, NULL, row)) | 5803 if(gtk_tree_model_iter_nth_child(GTK_TREE_MODEL(store), &iter, NULL, row)) |
5804 { | 5804 { |
5805 if(flag & DW_CFA_STRINGANDICON) | 5805 if(flag & DW_CFA_STRINGANDICON) |
5806 { | 5806 { |
5807 void **thisdata = (void **)data; | 5807 void **thisdata = (void **)data; |
5808 HICN hicon = *((HICN *)thisdata[0]); | 5808 HICN hicon = data ? *((HICN *)thisdata[0]) : 0; |
5809 char *tmp = (char *)thisdata[1]; | 5809 char *tmp = data ? (char *)thisdata[1] : NULL; |
5810 GdkPixbuf *pixbuf = _find_pixbuf(hicon, NULL, NULL); | 5810 GdkPixbuf *pixbuf = hicon ? _find_pixbuf(hicon, NULL, NULL) : NULL; |
5811 | 5811 |
5812 gtk_list_store_set(store, &iter, 1, pixbuf, -1); | 5812 gtk_list_store_set(store, &iter, 1, pixbuf, -1); |
5813 gtk_list_store_set(store, &iter, 2, tmp, -1); | 5813 gtk_list_store_set(store, &iter, 2, tmp, -1); |
5814 } | 5814 } |
5815 else if(flag & DW_CFA_BITMAPORICON) | 5815 else if(flag & DW_CFA_BITMAPORICON) |
5816 { | 5816 { |
5817 HICN hicon = *((HICN *)data); | 5817 HICN hicon = data ? *((HICN *)data) : 0; |
5818 GdkPixbuf *pixbuf = _find_pixbuf(hicon, NULL, NULL); | 5818 GdkPixbuf *pixbuf = hicon ? _find_pixbuf(hicon, NULL, NULL) : NULL; |
5819 | 5819 |
5820 gtk_list_store_set(store, &iter, column + 2, pixbuf, -1); | 5820 gtk_list_store_set(store, &iter, column + 2, pixbuf, -1); |
5821 } | 5821 } |
5822 else if(flag & DW_CFA_STRING) | 5822 else if(flag & DW_CFA_STRING) |
5823 { | 5823 { |
5824 char *tmp = *((char **)data); | 5824 char *tmp = data ? *((char **)data) : NULL; |
5825 gtk_list_store_set(store, &iter, column + 2, tmp, -1); | 5825 gtk_list_store_set(store, &iter, column + 2, tmp, -1); |
5826 } | 5826 } |
5827 else if(flag & DW_CFA_ULONG) | 5827 else if(flag & DW_CFA_ULONG) |
5828 { | 5828 { |
5829 ULONG tmp = *((ULONG *)data); | 5829 ULONG tmp = data ? *((ULONG *)data): 0; |
5830 | 5830 |
5831 gtk_list_store_set(store, &iter, column + 2, tmp, -1); | 5831 gtk_list_store_set(store, &iter, column + 2, tmp, -1); |
5832 } | 5832 } |
5833 else if(flag & DW_CFA_DATE) | 5833 else if(flag & DW_CFA_DATE) |
5834 { | 5834 { |
5835 struct tm curtm; | 5835 if(data) |
5836 CDATE cdate = *((CDATE *)data); | 5836 { |
5837 | 5837 struct tm curtm; |
5838 memset( &curtm, 0, sizeof(curtm) ); | 5838 CDATE cdate = *((CDATE *)data); |
5839 curtm.tm_mday = cdate.day; | 5839 |
5840 curtm.tm_mon = cdate.month - 1; | 5840 memset( &curtm, 0, sizeof(curtm) ); |
5841 curtm.tm_year = cdate.year - 1900; | 5841 curtm.tm_mday = cdate.day; |
5842 | 5842 curtm.tm_mon = cdate.month - 1; |
5843 strftime(textbuffer, 100, "%x", &curtm); | 5843 curtm.tm_year = cdate.year - 1900; |
5844 | 5844 |
5845 strftime(textbuffer, 100, "%x", &curtm); | |
5846 } | |
5845 gtk_list_store_set(store, &iter, column + 2, textbuffer, -1); | 5847 gtk_list_store_set(store, &iter, column + 2, textbuffer, -1); |
5846 } | 5848 } |
5847 else if(flag & DW_CFA_TIME) | 5849 else if(flag & DW_CFA_TIME) |
5848 { | 5850 { |
5849 struct tm curtm; | 5851 if(data) |
5850 CTIME ctime = *((CTIME *)data); | 5852 { |
5851 | 5853 struct tm curtm; |
5852 memset( &curtm, 0, sizeof(curtm) ); | 5854 CTIME ctime = *((CTIME *)data); |
5853 curtm.tm_hour = ctime.hours; | 5855 |
5854 curtm.tm_min = ctime.minutes; | 5856 memset( &curtm, 0, sizeof(curtm) ); |
5855 curtm.tm_sec = ctime.seconds; | 5857 curtm.tm_hour = ctime.hours; |
5856 | 5858 curtm.tm_min = ctime.minutes; |
5857 strftime(textbuffer, 100, "%X", &curtm); | 5859 curtm.tm_sec = ctime.seconds; |
5858 | 5860 |
5861 strftime(textbuffer, 100, "%X", &curtm); | |
5862 } | |
5859 gtk_list_store_set(store, &iter, column + 2, textbuffer, -1); | 5863 gtk_list_store_set(store, &iter, column + 2, textbuffer, -1); |
5860 } | 5864 } |
5861 } | 5865 } |
5862 } | 5866 } |
5863 DW_MUTEX_UNLOCK; | 5867 DW_MUTEX_UNLOCK; |