Mercurial > dwindows
comparison os2/dw.c @ 70:5e7a4d93d8d7
Implemented dw_container_optimize() on OS/2.
author | bsmith@81767d24-ef19-dc11-ae90-00e081727c95 |
---|---|
date | Sun, 10 Feb 2002 18:06:50 +0000 |
parents | 9510897c0b03 |
children | ab77a22a2a36 |
comparison
equal
deleted
inserted
replaced
69:9510897c0b03 | 70:5e7a4d93d8d7 |
---|---|
5259 | 5259 |
5260 memcpy(tempflags, flags, count * sizeof(ULONG)); | 5260 memcpy(tempflags, flags, count * sizeof(ULONG)); |
5261 tempflags[count] = 0; | 5261 tempflags[count] = 0; |
5262 | 5262 |
5263 blah->data = tempflags; | 5263 blah->data = tempflags; |
5264 blah->flags = separator; | |
5264 | 5265 |
5265 if(oldflags) | 5266 if(oldflags) |
5266 free(oldflags); | 5267 free(oldflags); |
5267 | 5268 |
5268 while((first = (PFIELDINFO)WinSendMsg(handle, CM_QUERYDETAILFIELDINFO, 0, MPFROMSHORT(CMA_FIRST))) != NULL) | 5269 while((first = (PFIELDINFO)WinSendMsg(handle, CM_QUERYDETAILFIELDINFO, 0, MPFROMSHORT(CMA_FIRST))) != NULL) |
5806 * Parameters: | 5807 * Parameters: |
5807 * handle: Handle to the window (widget) to be optimized. | 5808 * handle: Handle to the window (widget) to be optimized. |
5808 */ | 5809 */ |
5809 void dw_container_optimize(HWND handle) | 5810 void dw_container_optimize(HWND handle) |
5810 { | 5811 { |
5812 WindowData *blah = (WindowData *)WinQueryWindowPtr(handle, QWP_USER); | |
5813 RECTL item; | |
5814 PRECORDCORE pCore = NULL; | |
5815 int max = 0; | |
5816 | |
5817 if(blah && !blah->flags) | |
5818 return; | |
5819 | |
5820 pCore = WinSendMsg(handle, CM_QUERYRECORD, (MPARAM)0L, MPFROM2SHORT(CMA_FIRST, CMA_ITEMORDER)); | |
5821 while(pCore) | |
5822 { | |
5823 QUERYRECORDRECT qrr; | |
5824 int vector; | |
5825 | |
5826 qrr.cb = sizeof(QUERYRECORDRECT); | |
5827 qrr.pRecord = pCore; | |
5828 qrr.fRightSplitWindow = 0; | |
5829 qrr.fsExtent = CMA_TEXT; | |
5830 | |
5831 WinSendMsg(handle, CM_QUERYRECORDRECT, (MPARAM)&item, (MPARAM)&qrr); | |
5832 | |
5833 vector = item.xRight - item.xLeft; | |
5834 | |
5835 if(vector > max) | |
5836 max = vector; | |
5837 | |
5838 pCore = WinSendMsg(handle, CM_QUERYRECORD, (MPARAM)pCore, MPFROM2SHORT(CMA_NEXT, CMA_ITEMORDER)); | |
5839 } | |
5840 | |
5841 if(max) | |
5842 { | |
5843 CNRINFO cnri; | |
5844 | |
5845 cnri.cb = sizeof(CNRINFO); | |
5846 cnri.xVertSplitbar = max; | |
5847 | |
5848 WinSendMsg(handle, CM_SETCNRINFO, MPFROMP(&cnri), MPFROMLONG(CMA_XVERTSPLITBAR)); | |
5849 } | |
5811 } | 5850 } |
5812 | 5851 |
5813 /* | 5852 /* |
5814 * Creates a rendering context widget (window) to be packed. | 5853 * Creates a rendering context widget (window) to be packed. |
5815 * Parameters: | 5854 * Parameters: |