Changeset 24 in dev for ProjectEditor/Replace.cpp


Ignore:
Timestamp:
Dec 30, 2006, 10:18:01 AM (17 years ago)
Author:
dai_9181
Message:

保存されていないドキュメントのタブに(*)をつける機能に対応。
MDITEXTEDITINFOをCMdiTextEditに変更。今後、オブジェクト指向化を進める。

File:
1 edited

Legend:

Unmodified
Added
Removed
  • ProjectEditor/Replace.cpp

    r22 r24  
    88    CHARRANGE Range,cr2;
    99
    10     pBuf=MdiInfo[WndNum].pmti->buffer;
     10    pBuf=MdiInfo[WndNum].pMdiTextEdit->buffer;
    1111
    1212    //行の先頭位置を取得
     
    3030    //初期化(すべて黒色に戻す)
    3131    for(i=Range.cpMin;i<Range.cpMax;i++){
    32         MdiInfo[WndNum].pmti->pColorRef[i]=tci.rgbDefault;
     32        MdiInfo[WndNum].pMdiTextEdit->pColorRef[i]=tci.rgbDefault;
    3333    }
    3434
     
    5959            if(bResult){
    6060                for(i2=cr2.cpMin;i2<cr2.cpMax;i2++){
    61                     MdiInfo[WndNum].pmti->pColorRef[i2]=tci.rgbStatement;
     61                    MdiInfo[WndNum].pMdiTextEdit->pColorRef[i2]=tci.rgbStatement;
    6262                }
    6363            }
     
    6565        if(IsStr||pBuf[i]=='\"'&&IsStr==0){
    6666            //文字列カラー(""で囲まれる範囲)
    67             MdiInfo[WndNum].pmti->pColorRef[i]=tci.rgbString;
     67            MdiInfo[WndNum].pMdiTextEdit->pColorRef[i]=tci.rgbString;
    6868        }
    6969        if(pBuf[i]=='\0') break;
     
    9090    //バッファ長を取得
    9191    int length;
    92     length=lstrlen(MdiInfo[WndNum].pmti->buffer);
     92    length=lstrlen(MdiInfo[WndNum].pMdiTextEdit->buffer);
    9393
    9494    int delta;
     
    9999        ////////////////////
    100100
    101         MdiInfo[WndNum].pmti->buffer=(char *)HeapReAlloc(hHeap,
     101        MdiInfo[WndNum].pMdiTextEdit->buffer=(char *)HeapReAlloc(hHeap,
    102102            0,
    103             MdiInfo[WndNum].pmti->buffer,
     103            MdiInfo[WndNum].pMdiTextEdit->buffer,
    104104            length+1+delta);
    105105
    106         MdiInfo[WndNum].pmti->pColorRef=(COLORREF *)HeapReAlloc(hHeap,
     106        MdiInfo[WndNum].pMdiTextEdit->pColorRef=(COLORREF *)HeapReAlloc(hHeap,
    107107            0,
    108             MdiInfo[WndNum].pmti->pColorRef,
     108            MdiInfo[WndNum].pMdiTextEdit->pColorRef,
    109109            (length+1+delta)*sizeof(COLORREF));
    110110    }
     
    115115        ProjectInfo.pobj_DBBreakPoint->replace(
    116116            MdiInfo[WndNum].path,
    117             MdiInfo[WndNum].pmti->buffer,
     117            MdiInfo[WndNum].pMdiTextEdit->buffer,
    118118            &DelRange,
    119119            &Range,
     
    124124        pobj_DBBreakPoint->replace(
    125125            MdiInfo[WndNum].path,
    126             MdiInfo[WndNum].pmti->buffer,
     126            MdiInfo[WndNum].pMdiTextEdit->buffer,
    127127            &DelRange,
    128128            &Range,
     
    132132
    133133    //文字列バッファをスライドして、挿入
    134     SlideString(MdiInfo[WndNum].pmti->buffer+DelRange.cpMax,
     134    SlideString(MdiInfo[WndNum].pMdiTextEdit->buffer+DelRange.cpMax,
    135135        delta);
    136     memcpy(MdiInfo[WndNum].pmti->buffer+Range.cpMin,str,lstrlen(str));
     136    memcpy(MdiInfo[WndNum].pMdiTextEdit->buffer+Range.cpMin,str,lstrlen(str));
    137137
    138138    //文字カラーバッファをスライド
    139     SlideBuffer(((char *)MdiInfo[WndNum].pmti->pColorRef)+DelRange.cpMax*sizeof(COLORREF),
     139    SlideBuffer(((char *)MdiInfo[WndNum].pMdiTextEdit->pColorRef)+DelRange.cpMax*sizeof(COLORREF),
    140140        (length-DelRange.cpMax) * sizeof(COLORREF),
    141141        delta*sizeof(COLORREF));
     
    144144
    145145    //新しいキャレット位置に変更
    146     GetCaretPosFromBufferIndex(MdiInfo[WndNum].pmti->buffer,
     146    GetCaretPosFromBufferIndex(MdiInfo[WndNum].pMdiTextEdit->buffer,
    147147        Range.cpMax,
    148         &MdiInfo[WndNum].pmti->StartCaretPos);
    149     MdiInfo[WndNum].pmti->EndCaretPos=MdiInfo[WndNum].pmti->StartCaretPos;
     148        &MdiInfo[WndNum].pMdiTextEdit->StartCaretPos);
     149    MdiInfo[WndNum].pMdiTextEdit->EndCaretPos=MdiInfo[WndNum].pMdiTextEdit->StartCaretPos;
    150150
    151151    //コントロールタブスペースの幅と行番号の文字数を更新
    152     MdiInfo[WndNum].pmti->iWidth_ControlTabSpace=
    153         GetControlTabSpace(WndNum,&MdiInfo[WndNum].pmti->iLineNumberTextCount);
     152    MdiInfo[WndNum].pMdiTextEdit->iWidth_ControlTabSpace=
     153        GetControlTabSpace(WndNum,&MdiInfo[WndNum].pMdiTextEdit->iLineNumberTextCount);
    154154
    155155    if(bRedraw){
     
    159159
    160160        if(!TextEdit_ScrollCaret(WndNum,0)){
    161             UpdateWindow(MdiInfo[WndNum].pmti->hEdit);  //ちらつき防止
    162             InvalidateRect(MdiInfo[WndNum].pmti->hEdit,NULL,0);
     161            UpdateWindow(MdiInfo[WndNum].pMdiTextEdit->hEdit);  //ちらつき防止
     162            InvalidateRect(MdiInfo[WndNum].pMdiTextEdit->hEdit,NULL,0);
    163163        }
    164164
     
    167167
    168168    //上下キャレット移動時の左右位置保持機能を解除
    169     MdiInfo[WndNum].pmti->Temp_UpDown_CaretXPos=-1;
     169    MdiInfo[WndNum].pMdiTextEdit->Temp_UpDown_CaretXPos=-1;
    170170
    171171    //編集メニューをリセット
    172172    ResetState_EditMenu();
    173173
    174     //変更フラグをセット
    175     MdiInfo[WndNum].pmti->bModify=1;
     174    if( ! MdiInfo[WndNum].pMdiTextEdit->IsModified() ){
     175        //変更フラグをセット
     176        MdiInfo[WndNum].pMdiTextEdit->Modify();
     177    }
    176178
    177179
     
    245247#endif
    246248        char *pBuf;
    247         pBuf=MdiInfo[WndNum].pmti->buffer;
     249        pBuf=MdiInfo[WndNum].pMdiTextEdit->buffer;
    248250
    249251        //行全体を選択(min)
     
    270272    buffer=(char *)HeapAlloc(hHeap,0,length*3+1024);
    271273    temporary=(char *)HeapAlloc(hHeap,0,length*3+1024);
    272     memcpy(buffer,MdiInfo[WndNum].pmti->buffer+CharRange.cpMin,length);
     274    memcpy(buffer,MdiInfo[WndNum].pMdiTextEdit->buffer+CharRange.cpMin,length);
    273275    buffer[length]=0;
    274276
Note: See TracChangeset for help on using the changeset viewer.