Changeset 758


Ignore:
Timestamp:
Aug 4, 2007, 3:21:47 AM (13 years ago)
Author:
Steven Levine
Message:

DirSizeProc?; correct sizing and positioning to be deterministic

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/dll/dirsize.c

    r751 r758  
    2525  22 Mar 07 GKY Use QWL_USER
    2626  23 Jul 07 SHL Sync with naming standards
     27  03 Aug 07 SHL DirSizeProc; correct sizing and positioning to be deterministic
    2728
    2829***********************************************************************/
     
    470471        break;
    471472      }
    472       dirsize->pchStopFlag = (CHAR *) & pState->chStopFlag;
     473      dirsize->pchStopFlag = (CHAR *)&pState->chStopFlag;
    473474      dirsize->pszFileName = pState->szDirName;
    474475      dirsize->hwndCnr = WinWindowFromID(hwnd, DSZ_CNR);
     
    597598
    598599      if (oi->idItem == CMA_TEXT) {
    599         cnd = (CNRDRAWITEMINFO *) oi->hItem;
     600
     601        cnd = (CNRDRAWITEMINFO *)oi->hItem;
     602
    600603        if (cnd) {
    601           pci = (PCNRITEM) cnd->pRecord;
     604          pci = (PCNRITEM)cnd->pRecord;
     605
    602606          if (pci) {
    603 
    604             POINTL aptl[TXTBOX_COUNT], ptl;
    605             CHAR *p;
    606             LONG clr, x;
    607 
     607            POINTL aptl[TXTBOX_COUNT];
     608            POINTL ptl;
     609            PSZ p;
     610            LONG clr;
     611            LONG x;
     612            LONG yBottom;
     613            INT boxHeight;
    608614            p = strchr(pci->pszFileName, '\r');
    609615            if (p) {
     
    617623              GpiSetBackMix(oi->hps, BM_LEAVEALONE);
    618624              GpiSetMix(oi->hps, FM_OVERPAINT);
    619               *p = 0;
     625
     626              *p = 0;                   // Make 1 line high
     627
     628              // Calculate nominal graph box height based on font size
    620629              GpiQueryTextBox(oi->hps, strlen(pci->pszFileName),
    621630                              pci->pszFileName, TXTBOX_COUNT, aptl);
     631              boxHeight = aptl[TXTBOX_TOPRIGHT].y - aptl[TXTBOX_BOTTOMRIGHT].y;
     632              boxHeight -= 6;
     633
     634              // Calculate nominal baseline of graph box
     635              // rclItem.yBottom is at center of icon because it is
     636              yBottom = oi->rclItem.yBottom - boxHeight + 3;
     637
     638              // Place text above graph box with a bit of whitespace between
    622639              ptl.x = oi->rclItem.xLeft;
    623               ptl.y = (oi->rclItem.yTop - aptl[TXTBOX_TOPRIGHT].y);
    624               GpiMove(oi->hps, &ptl);
    625               GpiCharString(oi->hps, strlen(pci->pszFileName),
    626                             pci->pszFileName);
    627               *p = '\r';
     640              ptl.y = yBottom + boxHeight + 8;          // 03 Aug 07 SHL
     641              // GpiMove(oi->hps, &ptl);
     642              GpiCharStringAt(oi->hps, &ptl, strlen(pci->pszFileName),
     643                              pci->pszFileName);
     644
     645              *p = '\r';                // Restore
    628646
    629647              /* draw the graph box */
    630               GpiQueryTextBox(oi->hps, 1, "#", TXTBOX_COUNT, aptl);
     648              // GpiQueryTextBox(oi->hps, 1, "#", TXTBOX_COUNT, aptl);  // 03 Aug 07 SHL
    631649              /* draw black outline */
    632650              GpiSetColor(oi->hps, CLR_BLACK);
    633651              ptl.x = oi->rclItem.xLeft;
    634               ptl.y = oi->rclItem.yBottom + 2;
     652              ptl.y = yBottom + 2;
    635653              GpiMove(oi->hps, &ptl);
    636654              ptl.x = oi->rclItem.xLeft + 101;
    637               ptl.y = (oi->rclItem.yBottom + aptl[TXTBOX_TOPRIGHT].y);
     655              ptl.y = yBottom + boxHeight;
    638656              GpiBox(oi->hps, DRO_OUTLINE, &ptl, 0, 0);
    639657              /* fill with gray */
    640658              GpiSetColor(oi->hps, CLR_PALEGRAY);
    641659              ptl.x = oi->rclItem.xLeft + 1;
    642               ptl.y = oi->rclItem.yBottom + 3;
     660              ptl.y = yBottom + 3;
    643661              GpiMove(oi->hps, &ptl);
    644662              ptl.x = oi->rclItem.xLeft + 100;
    645               ptl.y = (oi->rclItem.yBottom + aptl[TXTBOX_TOPRIGHT].y) - 1;
     663              ptl.y = yBottom + boxHeight - 1;
    646664              GpiBox(oi->hps, DRO_OUTLINEFILL, &ptl, 0, 0);
    647665
     
    649667              GpiSetColor(oi->hps, CLR_DARKGRAY);
    650668              ptl.x = oi->rclItem.xLeft + 1;
    651               ptl.y = oi->rclItem.yBottom + 3;
     669              ptl.y = yBottom + 3;
    652670              GpiMove(oi->hps, &ptl);
    653671              ptl.x = oi->rclItem.xLeft + 100;
    654672              GpiLine(oi->hps, &ptl);
    655               ptl.y = (oi->rclItem.yBottom + aptl[TXTBOX_TOPRIGHT].y) - 1;
     673              ptl.y = yBottom + boxHeight - 1;
    656674              GpiLine(oi->hps, &ptl);
    657675
     
    660678              ptl.x = oi->rclItem.xLeft + 1;
    661679              GpiLine(oi->hps, &ptl);
    662               ptl.y = oi->rclItem.yBottom + 3;
     680              ptl.y = yBottom + 3;
    663681              GpiLine(oi->hps, &ptl);
    664682
     
    666684              GpiSetColor(oi->hps, CLR_DARKGRAY);
    667685              ptl.x = oi->rclItem.xLeft + 2;
    668               ptl.y = oi->rclItem.yBottom;
     686              ptl.y = yBottom + boxHeight;
    669687              GpiMove(oi->hps, &ptl);
    670688              ptl.x = oi->rclItem.xLeft + 103;
    671689              GpiLine(oi->hps, &ptl);
    672               ptl.y = (oi->rclItem.yBottom + aptl[TXTBOX_TOPRIGHT].y) - 2;
     690              ptl.y = yBottom + boxHeight - 2;
    673691              GpiLine(oi->hps, &ptl);
    674692              ptl.x--;
    675693              GpiMove(oi->hps, &ptl);
    676               ptl.y = oi->rclItem.yBottom + 1;
     694              ptl.y = yBottom + 1;
    677695              GpiLine(oi->hps, &ptl);
    678696              ptl.x = oi->rclItem.xLeft + 2;
     
    686704                  GpiSetColor(oi->hps, CLR_RED);
    687705                ptl.x = oi->rclItem.xLeft + 1;
    688                 ptl.y = oi->rclItem.yBottom + 3;
     706                ptl.y = yBottom + 3;
    689707                GpiMove(oi->hps, &ptl);
    690708                ptl.x = oi->rclItem.xLeft + pci->flags;
    691                 ptl.y = (oi->rclItem.yBottom + aptl[TXTBOX_TOPRIGHT].y) - 1;
     709                ptl.y = yBottom + boxHeight - 1;
    692710                GpiBox(oi->hps, DRO_OUTLINEFILL, &ptl, 0, 0);
    693711
     
    699717                if (pci->flags > 5) {
    700718                  ptl.x = oi->rclItem.xLeft + 1;
    701                   ptl.y = oi->rclItem.yBottom + 3;
     719                  ptl.y = yBottom + 3;
    702720                  GpiMove(oi->hps, &ptl);
    703                   ptl.y = (oi->rclItem.yBottom + aptl[TXTBOX_TOPRIGHT].y) - 1;
     721                  ptl.y = yBottom + boxHeight - 1;
    704722                  GpiLine(oi->hps, &ptl);
    705723                }
    706724                else {
    707                   ptl.y = (oi->rclItem.yBottom + aptl[TXTBOX_TOPRIGHT].y) - 1;
     725                  ptl.y = yBottom + boxHeight - 1;
    708726                  GpiMove(oi->hps, &ptl);
    709727                }
     
    713731                  GpiSetColor(oi->hps, CLR_DARKRED);
    714732                  ptl.x = oi->rclItem.xLeft + 2;
    715                   ptl.y = oi->rclItem.yBottom + 3;
     733                  ptl.y = yBottom + 3;
    716734                  GpiMove(oi->hps, &ptl);
    717735                  ptl.x = oi->rclItem.xLeft + pci->flags;
     
    728746                  GpiSetColor(oi->hps, CLR_BLACK);
    729747                }
    730                 ptl.x = (oi->rclItem.xLeft + 1) + (x * 10);
    731                 ptl.y = oi->rclItem.yBottom + aptl[TXTBOX_TOPRIGHT].y - 1;
     748                ptl.x = oi->rclItem.xLeft + 1 + x * 10;
     749                ptl.y = yBottom + boxHeight - 1;
    732750                GpiMove(oi->hps, &ptl);
    733751                switch (x) {
     
    749767                }
    750768                GpiLine(oi->hps, &ptl);
    751               }
     769              } // for x
    752770              return MRFROMLONG(TRUE);
    753771            }
     
    756774      }
    757775    }
    758     return FALSE;
     776    return FALSE;                       // Let PM draw
    759777
    760778  case WM_CONTROL:
Note: See TracChangeset for help on using the changeset viewer.