Mercurial > dwindows
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; |