Mercurial > dwindows
comparison gtk/dw.c @ 1503:79c99c612725
Allow passing NULL to dw_container_change/set_item() on GTK2.
author | bsmith@81767d24-ef19-dc11-ae90-00e081727c95 |
---|---|
date | Mon, 26 Dec 2011 21:40:35 +0000 |
parents | d77b8cf25f04 |
children | fcdd9e3c735a |
comparison
equal
deleted
inserted
replaced
1502:dc41efe8a53f | 1503:79c99c612725 |
---|---|
7143 * Internal representation of dw_container_set_item() extracted so we can pass | 7143 * Internal representation of dw_container_set_item() extracted so we can pass |
7144 * two data pointers; icon and text for dw_filesystem_set_item(). | 7144 * two data pointers; icon and text for dw_filesystem_set_item(). |
7145 */ | 7145 */ |
7146 void _dw_container_set_item(HWND handle, void *pointer, int column, int row, void *data, char *text) | 7146 void _dw_container_set_item(HWND handle, void *pointer, int column, int row, void *data, char *text) |
7147 { | 7147 { |
7148 char numbuf[11], textbuffer[101]; | 7148 char numbuf[11] = {0}, textbuffer[101] = {0}; |
7149 int flag = 0; | 7149 int flag = 0; |
7150 GtkWidget *clist; | 7150 GtkWidget *clist; |
7151 int _locked_by_me = FALSE; | 7151 int _locked_by_me = FALSE; |
7152 | 7152 |
7153 DW_MUTEX_LOCK; | 7153 DW_MUTEX_LOCK; |
7165 row += GPOINTER_TO_INT(gtk_object_get_data(GTK_OBJECT(clist), "_dw_insertpos")); | 7165 row += GPOINTER_TO_INT(gtk_object_get_data(GTK_OBJECT(clist), "_dw_insertpos")); |
7166 } | 7166 } |
7167 | 7167 |
7168 if(flag & DW_CFA_BITMAPORICON) | 7168 if(flag & DW_CFA_BITMAPORICON) |
7169 { | 7169 { |
7170 HICN hicon = *((HICN *)data); | |
7171 GdkBitmap *bitmap = NULL; | 7170 GdkBitmap *bitmap = NULL; |
7172 GdkPixmap *pixmap = _find_pixmap(&bitmap, hicon, clist, NULL, NULL); | 7171 GdkPixmap *pixmap = NULL; |
7173 | 7172 |
7173 if(data) | |
7174 { | |
7175 HICN hicon = *((HICN *)data); | |
7176 pixmap = _find_pixmap(&bitmap, hicon, clist, NULL, NULL); | |
7177 } | |
7174 gtk_clist_set_pixmap(GTK_CLIST(clist), row, column, pixmap ? pixmap : _dw_tmppixmap, pixmap ? bitmap : _dw_tmpbitmap); | 7178 gtk_clist_set_pixmap(GTK_CLIST(clist), row, column, pixmap ? pixmap : _dw_tmppixmap, pixmap ? bitmap : _dw_tmpbitmap); |
7175 } | 7179 } |
7176 else if(flag & DW_CFA_STRINGANDICON) | 7180 else if(flag & DW_CFA_STRINGANDICON) |
7177 { | 7181 { |
7178 HICN hicon = *((HICN *)data); | |
7179 GdkBitmap *bitmap = NULL; | 7182 GdkBitmap *bitmap = NULL; |
7180 GdkPixmap *pixmap = _find_pixmap(&bitmap, hicon, clist, NULL, NULL); | 7183 GdkPixmap *pixmap = NULL; |
7181 | 7184 |
7182 gtk_clist_set_pixtext(GTK_CLIST(clist), row, column, text, 2, pixmap ? pixmap : _dw_tmppixmap, pixmap ? bitmap : _dw_tmpbitmap); | 7185 if(data) |
7186 { | |
7187 HICN hicon = *((HICN *)data); | |
7188 pixmap = _find_pixmap(&bitmap, hicon, clist, NULL, NULL); | |
7189 } | |
7190 gtk_clist_set_pixtext(GTK_CLIST(clist), row, column, text ? text : textbuffer, 2, pixmap ? pixmap : _dw_tmppixmap, pixmap ? bitmap : _dw_tmpbitmap); | |
7183 } | 7191 } |
7184 else if(flag & DW_CFA_STRING) | 7192 else if(flag & DW_CFA_STRING) |
7185 { | 7193 { |
7186 char *tmp = *((char **)data); | 7194 char *tmp = data ? *((char **)data) : textbuffer; |
7187 gtk_clist_set_text(GTK_CLIST(clist), row, column, tmp); | 7195 gtk_clist_set_text(GTK_CLIST(clist), row, column, tmp); |
7188 } | 7196 } |
7189 else if(flag & DW_CFA_ULONG) | 7197 else if(flag & DW_CFA_ULONG) |
7190 { | 7198 { |
7191 ULONG tmp = *((ULONG *)data); | 7199 if(data) |
7192 | 7200 { |
7193 snprintf(textbuffer, 100, "%lu", tmp); | 7201 ULONG tmp = *((ULONG *)data); |
7194 | 7202 |
7203 snprintf(textbuffer, 100, "%lu", tmp); | |
7204 } | |
7195 gtk_clist_set_text(GTK_CLIST(clist), row, column, textbuffer); | 7205 gtk_clist_set_text(GTK_CLIST(clist), row, column, textbuffer); |
7196 } | 7206 } |
7197 else if(flag & DW_CFA_DATE) | 7207 else if(flag & DW_CFA_DATE) |
7198 { | 7208 { |
7199 struct tm curtm; | 7209 if(data) |
7200 CDATE cdate = *((CDATE *)data); | 7210 { |
7201 | 7211 struct tm curtm; |
7202 memset( &curtm, 0, sizeof(curtm) ); | 7212 CDATE cdate = *((CDATE *)data); |
7203 curtm.tm_mday = cdate.day; | 7213 |
7204 curtm.tm_mon = cdate.month - 1; | 7214 memset( &curtm, 0, sizeof(curtm) ); |
7205 curtm.tm_year = cdate.year - 1900; | 7215 curtm.tm_mday = cdate.day; |
7206 | 7216 curtm.tm_mon = cdate.month - 1; |
7207 strftime(textbuffer, 100, "%x", &curtm); | 7217 curtm.tm_year = cdate.year - 1900; |
7208 | 7218 |
7219 strftime(textbuffer, 100, "%x", &curtm); | |
7220 } | |
7209 gtk_clist_set_text(GTK_CLIST(clist), row, column, textbuffer); | 7221 gtk_clist_set_text(GTK_CLIST(clist), row, column, textbuffer); |
7210 } | 7222 } |
7211 else if(flag & DW_CFA_TIME) | 7223 else if(flag & DW_CFA_TIME) |
7212 { | 7224 { |
7213 struct tm curtm; | 7225 if(data) |
7214 CTIME ctime = *((CTIME *)data); | 7226 { |
7215 | 7227 struct tm curtm; |
7216 memset( &curtm, 0, sizeof(curtm) ); | 7228 CTIME ctime = *((CTIME *)data); |
7217 curtm.tm_hour = ctime.hours; | 7229 |
7218 curtm.tm_min = ctime.minutes; | 7230 memset( &curtm, 0, sizeof(curtm) ); |
7219 curtm.tm_sec = ctime.seconds; | 7231 curtm.tm_hour = ctime.hours; |
7220 | 7232 curtm.tm_min = ctime.minutes; |
7221 strftime(textbuffer, 100, "%X", &curtm); | 7233 curtm.tm_sec = ctime.seconds; |
7222 | 7234 |
7235 strftime(textbuffer, 100, "%X", &curtm); | |
7236 } | |
7223 gtk_clist_set_text(GTK_CLIST(clist), row, column, textbuffer); | 7237 gtk_clist_set_text(GTK_CLIST(clist), row, column, textbuffer); |
7224 } | 7238 } |
7225 if(!pointer) | 7239 if(!pointer) |
7226 _update_clist_rows(clist); | 7240 _update_clist_rows(clist); |
7227 DW_MUTEX_UNLOCK; | 7241 DW_MUTEX_UNLOCK; |