comparison mac/dw.m @ 1502:dc41efe8a53f

Allow passing NULL to dw_container_change/set_item() APIs on Mac.
author bsmith@81767d24-ef19-dc11-ae90-00e081727c95
date Mon, 26 Dec 2011 21:27:59 +0000
parents f8b4d6075cac
children def1ca619ba2
comparison
equal deleted inserted replaced
1501:7060e258e383 1502:dc41efe8a53f
5837 if(pointer) 5837 if(pointer)
5838 { 5838 {
5839 lastadd = [cont lastAddPoint]; 5839 lastadd = [cont lastAddPoint];
5840 } 5840 }
5841 5841
5842 if(!data) 5842 if(data)
5843 { 5843 {
5844 DW_MUTEX_UNLOCK; 5844 if(type & DW_CFA_BITMAPORICON)
5845 return; 5845 {
5846 } 5846 object = *((NSImage **)data);
5847 if(type & DW_CFA_BITMAPORICON) 5847 }
5848 { 5848 else if(type & DW_CFA_STRING)
5849 object = *((NSImage **)data); 5849 {
5850 } 5850 char *str = *((char **)data);
5851 else if(type & DW_CFA_STRING) 5851 object = [ NSString stringWithUTF8String:str ];
5852 {
5853 char *str = *((char **)data);
5854 object = [ NSString stringWithUTF8String:str ];
5855 }
5856 else
5857 {
5858 char textbuffer[101] = {0};
5859
5860 if(type & DW_CFA_ULONG)
5861 {
5862 ULONG tmp = *((ULONG *)data);
5863
5864 snprintf(textbuffer, 100, "%lu", tmp);
5865 }
5866 else if(type & DW_CFA_DATE)
5867 {
5868 struct tm curtm;
5869 CDATE cdate = *((CDATE *)data);
5870
5871 memset( &curtm, 0, sizeof(curtm) );
5872 curtm.tm_mday = cdate.day;
5873 curtm.tm_mon = cdate.month - 1;
5874 curtm.tm_year = cdate.year - 1900;
5875
5876 strftime(textbuffer, 100, "%x", &curtm);
5877 }
5878 else if(type & DW_CFA_TIME)
5879 {
5880 struct tm curtm;
5881 CTIME ctime = *((CTIME *)data);
5882
5883 memset( &curtm, 0, sizeof(curtm) );
5884 curtm.tm_hour = ctime.hours;
5885 curtm.tm_min = ctime.minutes;
5886 curtm.tm_sec = ctime.seconds;
5887
5888 strftime(textbuffer, 100, "%X", &curtm);
5889 } 5852 }
5890 else 5853 else
5891 { 5854 {
5892 DW_MUTEX_UNLOCK; 5855 char textbuffer[101] = {0};
5893 return; 5856
5894 } 5857 if(type & DW_CFA_ULONG)
5895 object = [ NSString stringWithUTF8String:textbuffer ]; 5858 {
5859 ULONG tmp = *((ULONG *)data);
5860
5861 snprintf(textbuffer, 100, "%lu", tmp);
5862 }
5863 else if(type & DW_CFA_DATE)
5864 {
5865 struct tm curtm;
5866 CDATE cdate = *((CDATE *)data);
5867
5868 memset( &curtm, 0, sizeof(curtm) );
5869 curtm.tm_mday = cdate.day;
5870 curtm.tm_mon = cdate.month - 1;
5871 curtm.tm_year = cdate.year - 1900;
5872
5873 strftime(textbuffer, 100, "%x", &curtm);
5874 }
5875 else if(type & DW_CFA_TIME)
5876 {
5877 struct tm curtm;
5878 CTIME ctime = *((CTIME *)data);
5879
5880 memset( &curtm, 0, sizeof(curtm) );
5881 curtm.tm_hour = ctime.hours;
5882 curtm.tm_min = ctime.minutes;
5883 curtm.tm_sec = ctime.seconds;
5884
5885 strftime(textbuffer, 100, "%X", &curtm);
5886 }
5887 if(textbuffer[0])
5888 object = [ NSString stringWithUTF8String:textbuffer ];
5889 }
5896 } 5890 }
5897 5891
5898 [cont editCell:object at:(row+lastadd) and:column]; 5892 [cont editCell:object at:(row+lastadd) and:column];
5899 [cont setNeedsDisplay:YES]; 5893 [cont setNeedsDisplay:YES];
5900 DW_MUTEX_UNLOCK; 5894 DW_MUTEX_UNLOCK;