Ignore:
Timestamp:
Jun 28, 1999, 5:46:28 PM (26 years ago)
Author:
cbratschi
Message:

bug fixes (unicode) and improvements

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/comctl32/status.c

    r164 r236  
    1 /* $Id: status.c,v 1.5 1999-06-23 19:45:01 achimha Exp $ */
     1/* $Id: status.c,v 1.6 1999-06-28 15:46:26 cbratschi Exp $ */
    22/*
    33 * Interface code to StatusWindow widget/control
     
    192192    else {
    193193        for (i = 0; i < infoPtr->numParts; i++) {
    194             if (infoPtr->parts[i].style & SBT_OWNERDRAW) {
     194            if (infoPtr->parts[i].style & SBT_OWNERDRAW) {
    195195                DRAWITEMSTRUCT dis;
    196196
     
    441441
    442442        if (ti.lpszText)
    443             lstrcpynA ((LPSTR)lParam, ti.lpszText, HIWORD(wParam));
     443            lstrcpynA ((LPSTR)lParam, ti.lpszText, MIN(HIWORD(wParam),lstrlenA(ti.lpszText)));
    444444    }
    445445
     
    461461
    462462        if (ti.lpszText)
    463             lstrcpynW ((LPWSTR)lParam, ti.lpszText, HIWORD(wParam));
     463            lstrcpynW ((LPWSTR)lParam, ti.lpszText, MIN(HIWORD(wParam),lstrlenW(ti.lpszText)));
    464464    }
    465465
     
    571571    if (oldNumParts > self->numParts) {
    572572        for (i = self->numParts ; i < oldNumParts; i++) {
    573             if (self->parts[i].text && !(self->parts[i].style & SBT_OWNERDRAW))
     573            if (self->parts[i].text && !(self->parts[i].style & SBT_OWNERDRAW))
    574574                COMCTL32_Free (self->parts[i].text);
    575575        }
     
    635635    STATUSWINDOWINFO *self = STATUSBAR_GetInfoPtr (hwnd);
    636636    STATUSWINDOWPART *part;
    637     int part_num;
    638     int style;
     637    int part_num;
     638    int style;
    639639    LPSTR text;
    640     int len;
     640    int len;
    641641    HDC hdc;
    642642
     
    646646
    647647    if ((self->simple) || (self->parts==NULL) || (part_num==255))
    648         part = &self->part0;
     648        part = &self->part0;
    649649    else
    650         part = &self->parts[part_num];
     650        part = &self->parts[part_num];
    651651    if (!part) return FALSE;
    652652
    653653    if (!(part->style & SBT_OWNERDRAW) && part->text)
    654         COMCTL32_Free (part->text);
     654        COMCTL32_Free (part->text);
    655655    part->text = 0;
    656656
    657657    if (style & SBT_OWNERDRAW) {
    658         part->text = (LPWSTR)text;
     658        part->text = (LPWSTR)text;
    659659    }
    660660    else {
    661         /* duplicate string */
    662         if (text && (len = lstrlenA(text))) {
    663             part->text = COMCTL32_Alloc ((len+1)*sizeof(WCHAR));
    664             lstrcpyAtoW (part->text, text);
    665         }
     661        /* duplicate string */
     662        if (text && (len = lstrlenA(text))) {
     663            part->text = COMCTL32_Alloc ((len+1)*sizeof(WCHAR));
     664            lstrcpyAtoW (part->text, text);
     665        }
    666666    }
    667667    part->style = style;
     
    689689
    690690    if ((self->simple) || (self->parts==NULL) || (part_num==255))
    691         part = &self->part0;
     691        part = &self->part0;
    692692    else
    693         part = &self->parts[part_num];
     693        part = &self->parts[part_num];
    694694    if (!part) return FALSE;
    695695
    696696    if (!(part->style & SBT_OWNERDRAW) && part->text)
    697         COMCTL32_Free (part->text);
     697        COMCTL32_Free (part->text);
    698698    part->text = 0;
    699699
    700700    if (style & SBT_OWNERDRAW) {
    701         part->text = text;
     701        part->text = text;
    702702    }
    703703    else {
    704         /* duplicate string */
    705         if (text && (len = lstrlenW(text))) {
    706             part->text = COMCTL32_Alloc ((len+1)*sizeof(WCHAR));
    707             lstrcpyW(part->text, text);
    708         }
     704        /* duplicate string */
     705        if (text && (len = lstrlenW(text))) {
     706            part->text = COMCTL32_Alloc ((len+1)*sizeof(WCHAR));
     707            lstrcpyW(part->text, text);
     708        }
    709709    }
    710710    part->style = style;
     
    896896{
    897897    STATUSWINDOWINFO *self = STATUSBAR_GetInfoPtr (hwnd);
    898     int i;
     898    int i;
    899899
    900900    for (i = 0; i < self->numParts; i++) {
    901         if (self->parts[i].text && !(self->parts[i].style & SBT_OWNERDRAW))
    902             COMCTL32_Free (self->parts[i].text);
     901        if (self->parts[i].text && !(self->parts[i].style & SBT_OWNERDRAW))
     902            COMCTL32_Free (self->parts[i].text);
    903903    }
    904904    if (self->part0.text && !(self->part0.style & SBT_OWNERDRAW))
    905         COMCTL32_Free (self->part0.text);
     905        COMCTL32_Free (self->part0.text);
    906906    COMCTL32_Free (self->parts);
    907907
    908908    /* delete default font */
    909909    if (self->hDefaultFont)
    910         DeleteObject (self->hDefaultFont);
     910        DeleteObject (self->hDefaultFont);
    911911
    912912    /* delete tool tip control */
    913913    if (self->hwndToolTip)
    914         DestroyWindow (self->hwndToolTip);
     914        DestroyWindow (self->hwndToolTip);
    915915
    916916    COMCTL32_Free (self);
Note: See TracChangeset for help on using the changeset viewer.