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: