Changeset 24 in dev


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

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

Location:
ProjectEditor
Files:
2 added
37 edited

Legend:

Unmodified
Added
Removed
  • ProjectEditor/Backup.cpp

    r22 r24  
    5555            //ファイルを保存
    5656            sprintf(temporary,"%sdocument%02d.txt",szBackupDirPath,iNum);
    57             WriteBuffer(temporary,MdiInfo[WndNum].pmti->buffer,lstrlen(MdiInfo[WndNum].pmti->buffer));
     57            WriteBuffer(temporary,MdiInfo[WndNum].pMdiTextEdit->buffer,lstrlen(MdiInfo[WndNum].pMdiTextEdit->buffer));
    5858
    5959            //情報を追加
     
    142142        COLORREF TabColor;
    143143        TabColor=pobj_nv->pobj_ExtLink->GetTabColorFromFilePath(MdiInfo[WndNum].path);
    144         pobj_MainTab->delete_item(szOldTitle,0);
    145         pobj_MainTab->insert(MdiInfo[WndNum].title,0,TabColor);
    146 
    147         MdiInfo[WndNum].pmti->bModify=1;
     144        pobj_MainTab->DeleteItem( szOldTitle, false );
     145        pobj_MainTab->InsertItem( MdiInfo[WndNum].title, false, TabColor );
     146
     147        MdiInfo[WndNum].pMdiTextEdit->Modify();
    148148
    149149
  • ProjectEditor/Caret.cpp

    r3 r24  
    123123
    124124    pCharRange->cpMin=GetBufferIndexFromCaretPos(
    125         MdiInfo[WndNum].pmti->buffer,
    126         MdiInfo[WndNum].pmti->StartCaretPos.x,
    127         MdiInfo[WndNum].pmti->StartCaretPos.y);
    128 
    129     if(MdiInfo[WndNum].pmti->StartCaretPos.x==MdiInfo[WndNum].pmti->EndCaretPos.x&&
    130         MdiInfo[WndNum].pmti->StartCaretPos.y==MdiInfo[WndNum].pmti->EndCaretPos.y){
     125        MdiInfo[WndNum].pMdiTextEdit->buffer,
     126        MdiInfo[WndNum].pMdiTextEdit->StartCaretPos.x,
     127        MdiInfo[WndNum].pMdiTextEdit->StartCaretPos.y);
     128
     129    if(MdiInfo[WndNum].pMdiTextEdit->StartCaretPos.x==MdiInfo[WndNum].pMdiTextEdit->EndCaretPos.x&&
     130        MdiInfo[WndNum].pMdiTextEdit->StartCaretPos.y==MdiInfo[WndNum].pMdiTextEdit->EndCaretPos.y){
    131131        //選択されていないとき
    132132        pCharRange->cpMax=pCharRange->cpMin;
     
    134134    else{
    135135        pCharRange->cpMax=GetBufferIndexFromCaretPos(
    136             MdiInfo[WndNum].pmti->buffer,
    137             MdiInfo[WndNum].pmti->EndCaretPos.x,
    138             MdiInfo[WndNum].pmti->EndCaretPos.y);
     136            MdiInfo[WndNum].pMdiTextEdit->buffer,
     137            MdiInfo[WndNum].pMdiTextEdit->EndCaretPos.x,
     138            MdiInfo[WndNum].pMdiTextEdit->EndCaretPos.y);
    139139    }
    140140
     
    150150
    151151    memcpy(buffer,
    152         MdiInfo[WndNum].pmti->buffer+pCharRange->cpMin,
     152        MdiInfo[WndNum].pMdiTextEdit->buffer+pCharRange->cpMin,
    153153        pCharRange->cpMax-pCharRange->cpMin);
    154154    buffer[pCharRange->cpMax-pCharRange->cpMin]=0;
     
    159159
    160160    HWND hEdit;
    161     hEdit=MdiInfo[WndNum].pmti->hEdit;
     161    hEdit=MdiInfo[WndNum].pMdiTextEdit->hEdit;
    162162
    163163    //垂直スクロールバーの位置
     
    195195
    196196    GetCaretPosFromBufferIndex(
    197         MdiInfo[WndNum].pmti->buffer,
     197        MdiInfo[WndNum].pMdiTextEdit->buffer,
    198198        StartIndex,
    199         &MdiInfo[WndNum].pmti->StartCaretPos);
     199        &MdiInfo[WndNum].pMdiTextEdit->StartCaretPos);
    200200
    201201    GetCaretPosFromBufferIndex(
    202         MdiInfo[WndNum].pmti->buffer,
     202        MdiInfo[WndNum].pMdiTextEdit->buffer,
    203203        EndIndex,
    204         &MdiInfo[WndNum].pmti->EndCaretPos);
     204        &MdiInfo[WndNum].pMdiTextEdit->EndCaretPos);
    205205
    206206    HWND hEdit;
     
    222222    int iStartPos;
    223223    iStartPos=code_pos;
    224     while(MdiInfo[WndNum].pmti->buffer[iStartPos]!='\n'&&iStartPos>0) iStartPos--;
    225     if(MdiInfo[WndNum].pmti->buffer[iStartPos]=='\n') iStartPos++;
     224    while(MdiInfo[WndNum].pMdiTextEdit->buffer[iStartPos]!='\n'&&iStartPos>0) iStartPos--;
     225    if(MdiInfo[WndNum].pMdiTextEdit->buffer[iStartPos]=='\n') iStartPos++;
    226226
    227227    int iEndPos;
    228228    iEndPos=code_pos;
    229     while(MdiInfo[WndNum].pmti->buffer[iEndPos]!='\r'&&MdiInfo[WndNum].pmti->buffer[iEndPos]!='\0') iEndPos++;
     229    while(MdiInfo[WndNum].pMdiTextEdit->buffer[iEndPos]!='\r'&&MdiInfo[WndNum].pMdiTextEdit->buffer[iEndPos]!='\0') iEndPos++;
    230230
    231231    TextEdit_SetSel(WndNum,iStartPos,iEndPos,bShowCenter);
     
    239239    GetCaretPos(&OldPos);
    240240
    241     x=MdiInfo[WndNum].pmti->StartCaretPos.x;
    242     y=MdiInfo[WndNum].pmti->StartCaretPos.y;
     241    x=MdiInfo[WndNum].pMdiTextEdit->StartCaretPos.x;
     242    y=MdiInfo[WndNum].pMdiTextEdit->StartCaretPos.y;
    243243    GetScrollBaseCaretPos(WndNum,&x,&y);
    244244
    245245    //エディタ画面左端のコントロールタブ
    246246    int iControlTabSpace;
    247     iControlTabSpace=MdiInfo[WndNum].pmti->iWidth_ControlTabSpace;
     247    iControlTabSpace=MdiInfo[WndNum].pMdiTextEdit->iWidth_ControlTabSpace;
    248248
    249249    //コントロールタブ上にカーソルがきたときに、非表示にする
    250     if(OldPos.x>=iControlTabSpace&&x<0) HideCaret(MdiInfo[WndNum].pmti->hEdit);
    251     else if(OldPos.x<iControlTabSpace&&x>=0) ShowCaret(MdiInfo[WndNum].pmti->hEdit);
     250    if(OldPos.x>=iControlTabSpace&&x<0) HideCaret(MdiInfo[WndNum].pMdiTextEdit->hEdit);
     251    else if(OldPos.x<iControlTabSpace&&x>=0) ShowCaret(MdiInfo[WndNum].pMdiTextEdit->hEdit);
    252252
    253253    SetCaretPos(
     
    263263    if(IS_DOCUMENT_TEXT(MdiInfo[WndNum].DocType)){
    264264        int start,end;
    265         if(MdiInfo[WndNum].pmti->StartCaretPos.x==MdiInfo[WndNum].pmti->EndCaretPos.x&&
    266             MdiInfo[WndNum].pmti->StartCaretPos.y==MdiInfo[WndNum].pmti->EndCaretPos.y){
     265        if(MdiInfo[WndNum].pMdiTextEdit->StartCaretPos.x==MdiInfo[WndNum].pMdiTextEdit->EndCaretPos.x&&
     266            MdiInfo[WndNum].pMdiTextEdit->StartCaretPos.y==MdiInfo[WndNum].pMdiTextEdit->EndCaretPos.y){
    267267            //文字列を選択中でないとき
    268268
    269269            int sw=0;
    270270            if(bInputAndReset){
    271                 if(MdiInfo[WndNum].pmti->StartCaretPos.x>1){
    272                     MdiInfo[WndNum].pmti->StartCaretPos.x-=2;
     271                if(MdiInfo[WndNum].pMdiTextEdit->StartCaretPos.x>1){
     272                    MdiInfo[WndNum].pMdiTextEdit->StartCaretPos.x-=2;
    273273                    sw=1;
    274274                }
     
    276276
    277277            TextEdit_GetWordCaret(
    278                 MdiInfo[WndNum].pmti->hEdit,
     278                MdiInfo[WndNum].pMdiTextEdit->hEdit,
    279279                WndNum,
    280                 &MdiInfo[WndNum].pmti->StartCaretPos,
     280                &MdiInfo[WndNum].pMdiTextEdit->StartCaretPos,
    281281                &start,&end,
    282282                WORDCARET_BEFORE);
    283283
    284             if(sw) MdiInfo[WndNum].pmti->StartCaretPos.x+=2;
     284            if(sw) MdiInfo[WndNum].pMdiTextEdit->StartCaretPos.x+=2;
    285285
    286286            //半角文字列を選択時の全角とのズレを修正
    287287            POINT pos;
    288             GetCaretPosFromBufferIndex(MdiInfo[WndNum].pmti->buffer,start,&pos);
    289             start=GetBufferIndexFromCaretPos(MdiInfo[WndNum].pmti->buffer,pos.x,pos.y);
    290             GetCaretPosFromBufferIndex(MdiInfo[WndNum].pmti->buffer,end,&pos);
    291             end=GetBufferIndexFromCaretPos(MdiInfo[WndNum].pmti->buffer,pos.x,pos.y);
     288            GetCaretPosFromBufferIndex(MdiInfo[WndNum].pMdiTextEdit->buffer,start,&pos);
     289            start=GetBufferIndexFromCaretPos(MdiInfo[WndNum].pMdiTextEdit->buffer,pos.x,pos.y);
     290            GetCaretPosFromBufferIndex(MdiInfo[WndNum].pMdiTextEdit->buffer,end,&pos);
     291            end=GetBufferIndexFromCaretPos(MdiInfo[WndNum].pMdiTextEdit->buffer,pos.x,pos.y);
    292292        }
    293293        else{
    294294            //文字列を選択中のとき
    295295            start=GetBufferIndexFromCaretPos(
    296                 MdiInfo[WndNum].pmti->buffer,
    297                 MdiInfo[WndNum].pmti->StartCaretPos.x,
    298                 MdiInfo[WndNum].pmti->StartCaretPos.y);
     296                MdiInfo[WndNum].pMdiTextEdit->buffer,
     297                MdiInfo[WndNum].pMdiTextEdit->StartCaretPos.x,
     298                MdiInfo[WndNum].pMdiTextEdit->StartCaretPos.y);
    299299            end=GetBufferIndexFromCaretPos(
    300                 MdiInfo[WndNum].pmti->buffer,
    301                 MdiInfo[WndNum].pmti->EndCaretPos.x,
    302                 MdiInfo[WndNum].pmti->EndCaretPos.y);
     300                MdiInfo[WndNum].pMdiTextEdit->buffer,
     301                MdiInfo[WndNum].pMdiTextEdit->EndCaretPos.x,
     302                MdiInfo[WndNum].pMdiTextEdit->EndCaretPos.y);
    303303        }
    304304
     
    315315        if(length<0) length=0;
    316316        pTemp=(char *)HeapAlloc(hHeap,0,length+1024);
    317         memcpy(pTemp,MdiInfo[WndNum].pmti->buffer+start,length);
     317        memcpy(pTemp,MdiInfo[WndNum].pMdiTextEdit->buffer+start,length);
    318318        pTemp[length]=0;
    319319
     
    359359        char *pTemp,temporary[VN_SIZE];
    360360
    361         i=GetBufferIndexFromCaretPos(MdiInfo[WndNum].pmti->buffer,
    362             MdiInfo[WndNum].pmti->StartCaretPos.x,
    363             MdiInfo[WndNum].pmti->StartCaretPos.y);
     361        i=GetBufferIndexFromCaretPos(MdiInfo[WndNum].pMdiTextEdit->buffer,
     362            MdiInfo[WndNum].pMdiTextEdit->StartCaretPos.x,
     363            MdiInfo[WndNum].pMdiTextEdit->StartCaretPos.y);
    364364
    365365        if(i<ComplementWndInfo.iPos||ComplementWndInfo.iPos+ComplementWndInfo.iLength<i){
     
    384384            pTemp=(char *)HeapAlloc(hHeap,0,ComplementWndInfo.iLength+1);
    385385            memcpy(pTemp,
    386                 MdiInfo[WndNum].pmti->buffer+ComplementWndInfo.iPos,
     386                MdiInfo[WndNum].pMdiTextEdit->buffer+ComplementWndInfo.iPos,
    387387                ComplementWndInfo.iLength);
    388388            pTemp[ComplementWndInfo.iLength]=0;
     
    437437            pTemp=(char *)HeapAlloc(hHeap,0,ComplementWndInfo.iLength+1);
    438438            memcpy(pTemp,
    439                 MdiInfo[WndNum].pmti->buffer+ComplementWndInfo.iPos,
     439                MdiInfo[WndNum].pMdiTextEdit->buffer+ComplementWndInfo.iPos,
    440440                ComplementWndInfo.iLength);
    441441            pTemp[ComplementWndInfo.iLength]=0;
     
    468468
    469469    HWND hEdit;
    470     hEdit=MdiInfo[WndNum].pmti->hEdit;
    471 
    472     x=MdiInfo[WndNum].pmti->StartCaretPos.x;
    473     y=MdiInfo[WndNum].pmti->StartCaretPos.y;
     470    hEdit=MdiInfo[WndNum].pMdiTextEdit->hEdit;
     471
     472    x=MdiInfo[WndNum].pMdiTextEdit->StartCaretPos.x;
     473    y=MdiInfo[WndNum].pMdiTextEdit->StartCaretPos.y;
    474474    GetScrollBaseCaretPos(WndNum,&x,&y);
    475475
     
    544544    if(loose_y<0) loose_y=0;
    545545
    546     pBuf=MdiInfo[WndNum].pmti->buffer;
     546    pBuf=MdiInfo[WndNum].pMdiTextEdit->buffer;
    547547
    548548    // 行の確認
     
    668668
    669669    POINT *pCaretPos;
    670     pCaretPos=&MdiInfo[WndNum].pmti->StartCaretPos;
     670    pCaretPos=&MdiInfo[WndNum].pMdiTextEdit->StartCaretPos;
    671671
    672672    if(pCaretPos->x==0&&pCaretPos->y==0){
     
    675675    }
    676676
    677     pBuf=MdiInfo[WndNum].pmti->buffer;
     677    pBuf=MdiInfo[WndNum].pMdiTextEdit->buffer;
    678678
    679679    i=GetBufferIndexFromCaretPos(pBuf,
     
    721721    char *pBuf;
    722722
    723     pBuf=MdiInfo[WndNum].pmti->buffer;
     723    pBuf=MdiInfo[WndNum].pMdiTextEdit->buffer;
    724724
    725725    i=GetBufferIndexFromCaretPos(pBuf,
     
    779779
    780780    //上下のキャレット移動時には、左右方向の位置を保持する
    781     if(MdiInfo[WndNum].pmti->Temp_UpDown_CaretXPos==-1)
    782         MdiInfo[WndNum].pmti->Temp_UpDown_CaretXPos=pCaretPos->x;
     781    if(MdiInfo[WndNum].pMdiTextEdit->Temp_UpDown_CaretXPos==-1)
     782        MdiInfo[WndNum].pMdiTextEdit->Temp_UpDown_CaretXPos=pCaretPos->x;
    783783
    784784    pCaretPos->y--;
    785785
    786786    CaretPos_LooseToNatural(WndNum,
    787         MdiInfo[WndNum].pmti->Temp_UpDown_CaretXPos,
     787        MdiInfo[WndNum].pMdiTextEdit->Temp_UpDown_CaretXPos,
    788788        pCaretPos->y,
    789789        pCaretPos);
     
    796796
    797797    //上下のキャレット移動時には、左右方向の位置を保持する
    798     if(MdiInfo[WndNum].pmti->Temp_UpDown_CaretXPos==-1)
    799         MdiInfo[WndNum].pmti->Temp_UpDown_CaretXPos=pCaretPos->x;
     798    if(MdiInfo[WndNum].pMdiTextEdit->Temp_UpDown_CaretXPos==-1)
     799        MdiInfo[WndNum].pMdiTextEdit->Temp_UpDown_CaretXPos=pCaretPos->x;
    800800
    801801    pCaretPos->y++;
    802802
    803803    CaretPos_LooseToNatural(WndNum,
    804         MdiInfo[WndNum].pmti->Temp_UpDown_CaretXPos,
     804        MdiInfo[WndNum].pMdiTextEdit->Temp_UpDown_CaretXPos,
    805805        pCaretPos->y,
    806806        pCaretPos);
     
    818818
    819819    //上下のキャレット移動時には、左右方向の位置を保持する
    820     if(MdiInfo[WndNum].pmti->Temp_UpDown_CaretXPos==-1)
    821         MdiInfo[WndNum].pmti->Temp_UpDown_CaretXPos=pCaretPos->x;
     820    if(MdiInfo[WndNum].pMdiTextEdit->Temp_UpDown_CaretXPos==-1)
     821        MdiInfo[WndNum].pMdiTextEdit->Temp_UpDown_CaretXPos=pCaretPos->x;
    822822
    823823    SCROLLINFO si;
    824824    si.cbSize=sizeof(SCROLLINFO);
    825825    si.fMask=SIF_PAGE;
    826     GetScrollInfo(MdiInfo[WndNum].pmti->hEdit,SB_VERT,&si);
     826    GetScrollInfo(MdiInfo[WndNum].pMdiTextEdit->hEdit,SB_VERT,&si);
    827827    pCaretPos->y-=si.nPage;
    828828    if(pCaretPos->y<0) pCaretPos->y=0;
    829829
    830830    CaretPos_LooseToNatural(WndNum,
    831         MdiInfo[WndNum].pmti->Temp_UpDown_CaretXPos,
     831        MdiInfo[WndNum].pMdiTextEdit->Temp_UpDown_CaretXPos,
    832832        pCaretPos->y,
    833833        pCaretPos);
     
    840840
    841841    //上下のキャレット移動時には、左右方向の位置を保持する
    842     if(MdiInfo[WndNum].pmti->Temp_UpDown_CaretXPos==-1)
    843         MdiInfo[WndNum].pmti->Temp_UpDown_CaretXPos=pCaretPos->x;
     842    if(MdiInfo[WndNum].pMdiTextEdit->Temp_UpDown_CaretXPos==-1)
     843        MdiInfo[WndNum].pMdiTextEdit->Temp_UpDown_CaretXPos=pCaretPos->x;
    844844
    845845    SCROLLINFO si;
    846846    si.cbSize=sizeof(SCROLLINFO);
    847847    si.fMask=SIF_PAGE;
    848     GetScrollInfo(MdiInfo[WndNum].pmti->hEdit,SB_VERT,&si);
     848    GetScrollInfo(MdiInfo[WndNum].pMdiTextEdit->hEdit,SB_VERT,&si);
    849849    pCaretPos->y+=si.nPage;
    850850
    851851    CaretPos_LooseToNatural(WndNum,
    852         MdiInfo[WndNum].pmti->Temp_UpDown_CaretXPos,
     852        MdiInfo[WndNum].pMdiTextEdit->Temp_UpDown_CaretXPos,
    853853        pCaretPos->y,
    854854        pCaretPos);
  • ProjectEditor/ClassTree.cpp

    r3 r24  
    335335    if(hChild){
    336336        //すでに指定されたファイルが開かれている場合
    337         pBuf=MdiInfo[WndNum].pmti->buffer;
     337        pBuf=MdiInfo[WndNum].pMdiTextEdit->buffer;
    338338    }
    339339    else{
  • ProjectEditor/CodeFormatter.cpp

    r3 r24  
    3636
    3737    char *pBuf;
    38     pBuf=MdiInfo[WndNum].pmti->buffer;
     38    pBuf=MdiInfo[WndNum].pMdiTextEdit->buffer;
    3939
    4040    //カーソルバッファ位置を取得
    4141    int i,i2;
    4242    i=GetBufferIndexFromCaretPos(pBuf,
    43         MdiInfo[WndNum].pmti->StartCaretPos.x,
    44         MdiInfo[WndNum].pmti->StartCaretPos.y);
    45     int StartX=MdiInfo[WndNum].pmti->StartCaretPos.x;
     43        MdiInfo[WndNum].pMdiTextEdit->StartCaretPos.x,
     44        MdiInfo[WndNum].pMdiTextEdit->StartCaretPos.y);
     45    int StartX=MdiInfo[WndNum].pMdiTextEdit->StartCaretPos.x;
    4646
    4747    //現在の行のインデントをコピー(iFirstIndent_Speciallyにタブ数を格納)
  • ProjectEditor/Common.h

    r22 r24  
    2323#include "menu.h"
    2424#include "LuxCtrl.h"
     25#include "MdiTextEdit.h"
    2526#include "BREGEXP.H"
    2627#include "../BasicCompiler32/CommandValue.h"
     
    380381};
    381382
    382 struct MDITEXTEDITINFO{
    383     HWND hEdit;
    384 
    385     //Web検索ウィンドウ
    386     CWebResult *pobj_WebResult;
    387 
    388     //ルーラーウィンドウ
    389     CRuler *pobj_Ruler;
    390 
    391     //アイコン
    392     HICON hIcon;
    393 
    394     char *buffer;
    395     COLORREF *pColorRef;
    396     int iUnderStart;
    397     int iUnderEnd;
    398 
    399     POINT StartCaretPos;
    400     POINT EndCaretPos;
    401     int Temp_UpDown_CaretXPos;
    402     BOOL bAutoScroll;
    403 
    404     //コントロールタブスペースの幅と行番号の文字数
    405     int iWidth_ControlTabSpace;
    406     int iLineNumberTextCount;
    407 
    408     int iCharCode;
    409     int iLfCode;
    410 
    411     BOOL bModify;
    412 };
    413 
    414383struct MDIINFO{
    415384    HWND hwnd;
     
    422391        MDIMENUINFO *MdiMenuInfo;
    423392        MDIICONEDITINFO *MdiIconEditInfo;
    424         MDITEXTEDITINFO *pmti;
     393        CMdiTextEdit *pMdiTextEdit;
    425394    };
    426395
    427396    char *IndentStr;
    428     TEXTEDIT_UNDOSTATE *edit_undo;
    429397};
    430398extern MDIINFO MdiInfo[MAX_WNDNUM];
     
    958926void TextEdit_RedoCommand(int WndNum);
    959927void TextEdit_NoticeChanging(int WndNum,int Command,char *KeyStr,char *DelStr,CHARRANGE *Range,CHARRANGE *DelRange);
    960 void TextEdit_DeleteUndoData(int WndNum,int pos);
     928void TextEdit_DeleteUndoData(TEXTEDIT_UNDOSTATE *pUndoState,int pos);
    961929
    962930//Search.cpp
  • ProjectEditor/Complement.cpp

    r3 r24  
    384384    //エディタ画面左端のコントロールタブ
    385385    int iControlTabSpace;
    386     iControlTabSpace=MdiInfo[WndNum].pmti->iWidth_ControlTabSpace;
     386    iControlTabSpace=MdiInfo[WndNum].pMdiTextEdit->iWidth_ControlTabSpace;
    387387
    388388    extern MDIINFO MdiInfo[MAX_WNDNUM];
    389389    extern int font_width,font_height;
    390390    POINT pos;
    391     pos=MdiInfo[WndNum].pmti->StartCaretPos;
     391    pos=MdiInfo[WndNum].pMdiTextEdit->StartCaretPos;
    392392    GetScrollBaseCaretPos(WndNum,(int *)&pos.x,(int *)&pos.y);
    393393
     
    395395    pos.y=(pos.y+1)*font_height;
    396396
    397     ClientToScreen(MdiInfo[WndNum].pmti->hEdit,&pos);
     397    ClientToScreen(MdiInfo[WndNum].pMdiTextEdit->hEdit,&pos);
    398398
    399399    extern HINSTANCE hInst;
     
    621621            //フォーカスをエディタに戻す
    622622            WndNum=GetWndNum(GetWindow(hClient,GW_CHILD));
    623             SetFocus(MdiInfo[WndNum].pmti->hEdit);
     623            SetFocus(MdiInfo[WndNum].pMdiTextEdit->hEdit);
    624624            return 0;
    625625        case WM_KEYDOWN:
     
    633633            //フォーカスをエディタに戻す
    634634            WndNum=GetWndNum(GetWindow(hClient,GW_CHILD));
    635             SetFocus(MdiInfo[WndNum].pmti->hEdit);
     635            SetFocus(MdiInfo[WndNum].pMdiTextEdit->hEdit);
    636636
    637637            LVHITTESTINFO lvHitTest;
     
    659659
    660660                    for(i=ComplementWndInfo.iPos-1;;i--){
    661                         if(MdiInfo[WndNum].pmti->buffer[i]!='\t'){
     661                        if(MdiInfo[WndNum].pMdiTextEdit->buffer[i]!='\t'){
    662662                            i++;
    663663                            break;
     
    665665                    }
    666666
    667                     GetCaretPosFromBufferIndex(MdiInfo[WndNum].pmti->buffer,
     667                    GetCaretPosFromBufferIndex(MdiInfo[WndNum].pMdiTextEdit->buffer,
    668668                        i,
    669                         &MdiInfo[WndNum].pmti->StartCaretPos);
     669                        &MdiInfo[WndNum].pMdiTextEdit->StartCaretPos);
    670670
    671671                    //インデント
     
    684684                    //クラスメンバ補完
    685685
    686                     GetCaretPosFromBufferIndex(MdiInfo[WndNum].pmti->buffer,
     686                    GetCaretPosFromBufferIndex(MdiInfo[WndNum].pMdiTextEdit->buffer,
    687687                        ComplementWndInfo.iPos,
    688                         &MdiInfo[WndNum].pmti->StartCaretPos);
     688                        &MdiInfo[WndNum].pMdiTextEdit->StartCaretPos);
    689689
    690690                    //リプレース前に補完機能を破棄する
  • ProjectEditor/Debugger.cpp

    r22 r24  
    252252
    253253        char temporary[MAX_PATH];
    254         sprintf(temporary,"\"%s\",%d",MdiInfo[WndNum].path,MdiInfo[WndNum].pmti->StartCaretPos.y);
     254        sprintf(temporary,"\"%s\",%d",MdiInfo[WndNum].path,MdiInfo[WndNum].pMdiTextEdit->StartCaretPos.y);
    255255
    256256        char temp2[MAX_PATH];
     
    436436        if(lstrcmpi(MdiInfo[WndNum].path,ppItem[i]->lpszFileName)==0){
    437437            for(i2=0;i2<ppItem[i]->num;i2++){
    438                 if(MdiInfo[WndNum].pmti->StartCaretPos.y==ppItem[i]->piLine[i2]){
     438                if(MdiInfo[WndNum].pMdiTextEdit->StartCaretPos.y==ppItem[i]->piLine[i2]){
    439439                    sw=1;
    440440                    break;
     
    447447    if(sw==0){
    448448        //ブレークポイントを追加
    449         insert(MdiInfo[WndNum].path,MdiInfo[WndNum].pmti->StartCaretPos.y);
     449        insert(MdiInfo[WndNum].path,MdiInfo[WndNum].pMdiTextEdit->StartCaretPos.y);
    450450    }
    451451    else{
    452452        //ブレークポイントを削除
    453         remove(MdiInfo[WndNum].path,MdiInfo[WndNum].pmti->StartCaretPos.y);
     453        remove(MdiInfo[WndNum].path,MdiInfo[WndNum].pMdiTextEdit->StartCaretPos.y);
    454454    }
    455455
     
    462462
    463463    //エディタを再描画
    464     InvalidateRect(MdiInfo[WndNum].pmti->hEdit,NULL,0);
     464    InvalidateRect(MdiInfo[WndNum].pMdiTextEdit->hEdit,NULL,0);
    465465}
    466466void CDBBreakPoint::SaveToTempFile(void){
  • ProjectEditor/DocumentAdvice.cpp

    r3 r24  
    201201            else{
    202202                //エディタから読み取る
    203                 FileSize=lstrlen(MdiInfo[i3].pmti->buffer);
     203                FileSize=lstrlen(MdiInfo[i3].pMdiTextEdit->buffer);
    204204
    205205                temp3=(char *)HeapAlloc(hHeap,0,FileSize+MEM_SPACE);
    206                 memcpy(temp3,MdiInfo[i3].pmti->buffer,FileSize);
     206                memcpy(temp3,MdiInfo[i3].pMdiTextEdit->buffer,FileSize);
    207207                temp3[FileSize]=0;
    208208            }
  • ProjectEditor/DrawBuffer.cpp

    r3 r24  
    283283    int iControlTabSpace;
    284284    int iLineNumberTextCount;
    285     iControlTabSpace=MdiInfo[WndNum].pmti->iWidth_ControlTabSpace;
    286     iLineNumberTextCount=MdiInfo[WndNum].pmti->iLineNumberTextCount;
     285    iControlTabSpace=MdiInfo[WndNum].pMdiTextEdit->iWidth_ControlTabSpace;
     286    iLineNumberTextCount=MdiInfo[WndNum].pMdiTextEdit->iLineNumberTextCount;
    287287
    288288    //一ページ中に表示できる行数を取得
     
    301301
    302302    //テキストバッファをコード内で参照しやすいようにポインタ変数を利用する
    303     pBuf=MdiInfo[WndNum].pmti->buffer;
     303    pBuf=MdiInfo[WndNum].pMdiTextEdit->buffer;
    304304
    305305    //選択範囲を取得
     
    335335        if(pBuf[i]=='\0'){
    336336            if(0<=y&&y<=OnePage_CharHeight){
    337                 if(MdiInfo[WndNum].pmti->StartCaretPos.y==y-BaseY){
     337                if(MdiInfo[WndNum].pMdiTextEdit->StartCaretPos.y==y-BaseY){
    338338                    ////////////////////////////////////
    339339                    // カーソル行では余白を塗りつぶす
     
    375375            /////////////////
    376376
    377             if(MdiInfo[WndNum].pmti->StartCaretPos.y==y-BaseY){
     377            if(MdiInfo[WndNum].pMdiTextEdit->StartCaretPos.y==y-BaseY){
    378378                ///////////////////////////////////////////////////////////
    379379                //改行コードよりも右側は白いブラシで塗りつぶす(カーソル行用)
     
    446446
    447447        //ハイパーリンク用下線
    448         if(MdiInfo[WndNum].pmti->iUnderStart<=i&&i<MdiInfo[WndNum].pmti->iUnderEnd)
     448        if(MdiInfo[WndNum].pMdiTextEdit->iUnderStart<=i&&i<MdiInfo[WndNum].pMdiTextEdit->iUnderEnd)
    449449            bHyperLinkUnderBar=1;
    450450        else bHyperLinkUnderBar=0;
     
    463463            else{
    464464                //通常カラー
    465                 NextColor=MdiInfo[WndNum].pmti->pColorRef[i];
     465                NextColor=MdiInfo[WndNum].pMdiTextEdit->pColorRef[i];
    466466            }
    467467
     
    472472            }
    473473            else{
    474                 if(MdiInfo[WndNum].pmti->StartCaretPos.y==y-BaseY){
     474                if(MdiInfo[WndNum].pMdiTextEdit->StartCaretPos.y==y-BaseY){
    475475                    //カーソル行
    476476                    NextBackColor=CaretBackColor;
     
    523523
    524524
    525                 if(MdiInfo[WndNum].pmti->StartCaretPos.y==y-BaseY){
     525                if(MdiInfo[WndNum].pMdiTextEdit->StartCaretPos.y==y-BaseY){
    526526                    ///////////////////////////////////////////////////////////
    527527                    //改行コードよりも右側は白いブラシで塗りつぶす(カーソル行用)
  • ProjectEditor/FileOperation.cpp

    r22 r24  
    423423        //文字コードを復元
    424424        char *pBuf;
    425         pBuf=nkf.RestoreBuffer(MdiInfo[WndNum].pmti->buffer,MdiInfo[WndNum].pmti->iCharCode);
     425        pBuf=nkf.RestoreBuffer(MdiInfo[WndNum].pMdiTextEdit->buffer,MdiInfo[WndNum].pMdiTextEdit->iCharCode);
    426426
    427427        //改行コードを復元
    428         if(MdiInfo[WndNum].pmti->iLfCode==LFCODE_LF) nkf.ToLF(pBuf);
    429         else if(MdiInfo[WndNum].pmti->iLfCode==LFCODE_CR) nkf.ToCR(pBuf);
     428        if(MdiInfo[WndNum].pMdiTextEdit->iLfCode==LFCODE_LF) nkf.ToLF(pBuf);
     429        else if(MdiInfo[WndNum].pMdiTextEdit->iLfCode==LFCODE_CR) nkf.ToCR(pBuf);
    430430
    431431
     
    446446        HeapDefaultFree(pBuf);
    447447
    448         //変更フラグに0をセット
    449         MdiInfo[WndNum].pmti->bModify=0;
     448        //変更フラグをオフにする
     449        MdiInfo[WndNum].pMdiTextEdit->UnModify();
    450450    }
    451451    else if(MdiInfo[WndNum].DocType==WNDTYPE_ICONEDIT){
     
    496496        COLORREF color;
    497497        color=pobj_MainTab->GetItemColor(szOldTitle);
    498         pobj_MainTab->delete_item(szOldTitle,0);
    499         pobj_MainTab->insert(MdiInfo[WndNum].title,0,color);
     498        pobj_MainTab->DeleteItem( szOldTitle, false );
     499        pobj_MainTab->InsertItem( MdiInfo[WndNum].title, false, color );
    500500    }
    501501    else{
    502         pobj_MainTab->reset_item(szOldTitle,MdiInfo[WndNum].title);
     502        pobj_MainTab->RenameItem( szOldTitle, MdiInfo[WndNum].title );
    503503    }
    504504
  • ProjectEditor/IconEditor.cpp

    r21 r24  
    383383            else MdiInfo[i].path=(char *)GlobalAlloc(GPTR,1);
    384384
    385             MdiInfo[i].edit_undo=(TEXTEDIT_UNDOSTATE *)GlobalAlloc(GPTR,sizeof(TEXTEDIT_UNDOSTATE));
    386             MdiInfo[i].edit_undo->NowPos=0;
    387 
    388385            MdiInfo[i].MdiIconEditInfo=(MDIICONEDITINFO *)HeapAlloc(hHeap,0,sizeof(MDIICONEDITINFO));
    389386            MdiInfo[i].MdiIconEditInfo->hMain=hMain;
     
    442439
    443440    //タブに追加
    444     pobj_MainTab->insert(str,1);
     441    pobj_MainTab->InsertItem( str, true );
    445442
    446443    SetStatusText(NULL);
  • ProjectEditor/MenuProc.cpp

    r3 r24  
    297297
    298298    //タブに追加
    299     pobj_MainTab->insert(pMenuInfo->IdName,1);
     299    pobj_MainTab->InsertItem( pMenuInfo->IdName, true );
    300300
    301301    SetFocus(hListWnd);
  • ProjectEditor/MessageCallOperation.cpp

    r3 r24  
    135135    WndNum=GetWndNum(hChild);
    136136
    137     pBuf=MdiInfo[WndNum].pmti->buffer;
     137    pBuf=MdiInfo[WndNum].pMdiTextEdit->buffer;
    138138
    139139    for(i=0;;i++){
     
    190190        TextEdit_SetSel(WndNum,i+2,i+i2);
    191191    }
    192     SetFocus(MdiInfo[WndNum].pmti->hEdit);
     192    SetFocus(MdiInfo[WndNum].pMdiTextEdit->hEdit);
    193193}
    194194void InsertEventToList(HWND hList,int ItemNum,char *EventName,char *MessageName,char *OutLine){
  • ProjectEditor/NonVolatile.cpp

    r3 r24  
    332332    //ドキュメントを保存したときにタブを先頭に再配置するかどうか
    333333    if(!GetWholeValue("IsSaveTabToHead",&bSaveTabToHead)){
    334 #ifdef THETEXT
    335334        bSaveTabToHead=0;
    336 #else
    337         bSaveTabToHead=1;
    338 #endif
    339335    }
    340336
     
    608604    height_ClipCompileView=130;
    609605    width_WebSearchView=230;
    610 #ifdef THETEXT
    611606    bSaveTabToHead=0;
    612 #else
    613     bSaveTabToHead=1;
    614 #endif
    615607
    616608    BackNum_PairStatementComplement=100;
  • ProjectEditor/ParameterHint.cpp

    r3 r24  
    4949        else{
    5050            //エディタから読み込む
    51             pBuf=(char *)HeapAlloc(hHeap,0,lstrlen(MdiInfo[i].pmti->buffer)+1);
    52             lstrcpy(pBuf,MdiInfo[i].pmti->buffer);
     51            pBuf=(char *)HeapAlloc(hHeap,0,lstrlen(MdiInfo[i].pMdiTextEdit->buffer)+1);
     52            lstrcpy(pBuf,MdiInfo[i].pMdiTextEdit->buffer);
    5353        }
    5454    }
     
    6060        WndNum=GetWndNum(GetWindow(hClient,GW_CHILD));
    6161
    62         pBuf=(char *)HeapAlloc(hHeap,0,lstrlen(MdiInfo[WndNum].pmti->buffer)+1);
    63         lstrcpy(pBuf,MdiInfo[WndNum].pmti->buffer);
     62        pBuf=(char *)HeapAlloc(hHeap,0,lstrlen(MdiInfo[WndNum].pMdiTextEdit->buffer)+1);
     63        lstrcpy(pBuf,MdiInfo[WndNum].pMdiTextEdit->buffer);
    6464    }
    6565
     
    686686    char temp2[8192];
    687687
    688     pBuf=MdiInfo[WndNum].pmti->buffer;
     688    pBuf=MdiInfo[WndNum].pMdiTextEdit->buffer;
    689689
    690690    //キャレットが示すバッファインデックスを取得
    691691    iPos=GetBufferIndexFromCaretPos(
    692692        pBuf,
    693         MdiInfo[WndNum].pmti->StartCaretPos.x,
    694         MdiInfo[WndNum].pmti->StartCaretPos.y);
     693        MdiInfo[WndNum].pMdiTextEdit->StartCaretPos.x,
     694        MdiInfo[WndNum].pMdiTextEdit->StartCaretPos.y);
    695695
    696696    static int Before_StartCaretY;
    697697    BOOL Before_StartCaretSwitch=0;
    698     if(MdiInfo[WndNum].pmti->StartCaretPos.y!=Before_StartCaretY){
    699         Before_StartCaretY=MdiInfo[WndNum].pmti->StartCaretPos.y;
     698    if(MdiInfo[WndNum].pMdiTextEdit->StartCaretPos.y!=Before_StartCaretY){
     699        Before_StartCaretY=MdiInfo[WndNum].pMdiTextEdit->StartCaretPos.y;
    700700        Before_StartCaretSwitch=1;
    701701    }
     
    967967            else{
    968968                if(MethodCheckInfo.hWnd){
    969                     UpdateWindow(MdiInfo[WndNum].pmti->hEdit);  //ちらつき防止
     969                    UpdateWindow(MdiInfo[WndNum].pMdiTextEdit->hEdit);  //ちらつき防止
    970970
    971971                    DestroyWindow(MethodCheckInfo.hWnd);
     
    12581258        GetWindowRect(MdiInfo[i].hwnd,&rect);
    12591259        GetCaretPos(&pos);
    1260         ClientToScreen(MdiInfo[i].pmti->hEdit,&pos);
     1260        ClientToScreen(MdiInfo[i].pMdiTextEdit->hEdit,&pos);
    12611261        rect.left=pos.x-20;
    12621262        rect.top=pos.y-pobj_nv->lf.lfHeight;
  • ProjectEditor/Print.cpp

    r3 r24  
    9191
    9292    char *buffer;
    93     buffer=MdiInfo[WndNum].pmti->buffer;
     93    buffer=MdiInfo[WndNum].pMdiTextEdit->buffer;
    9494    int i=0,i2=0,iPage=0;
    9595    for(i=0,i2=0;;i++,i2++){
  • ProjectEditor/ProjectControl.cpp

    r3 r24  
    137137                            //ResetScrollbarが再描画時に呼び出されるので、再描画する
    138138                            WndNum=GetWndNum(hChild);
    139                             InvalidateRect(MdiInfo[WndNum].pmti->hEdit,NULL,0);
    140                             UpdateWindow(MdiInfo[WndNum].pmti->hEdit);
     139                            InvalidateRect(MdiInfo[WndNum].pMdiTextEdit->hEdit,NULL,0);
     140                            UpdateWindow(MdiInfo[WndNum].pMdiTextEdit->hEdit);
    141141                            TextEdit_SelectOneLine(WndNum,pobj_ClassTreeView->pProcInfo[i].code_pos,TRUE);
    142142
     
    14911491
    14921492                            //ResetScrollbarが再描画時に呼び出されるので、再描画する
    1493                             InvalidateRect(MdiInfo[WndNum].pmti->hEdit,NULL,0);
    1494                             UpdateWindow(MdiInfo[WndNum].pmti->hEdit);
     1493                            InvalidateRect(MdiInfo[WndNum].pMdiTextEdit->hEdit,NULL,0);
     1494                            UpdateWindow(MdiInfo[WndNum].pMdiTextEdit->hEdit);
    14951495
    14961496                            if(temp2[i2]=='\0') goto EndToSetWorkFile;
     
    15201520                            si.fMask=SIF_POS;
    15211521                            si.nPos=pos.x;
    1522                             SetScrollInfo(MdiInfo[WndNum].pmti->hEdit,SB_HORZ,&si,1);
     1522                            SetScrollInfo(MdiInfo[WndNum].pMdiTextEdit->hEdit,SB_HORZ,&si,1);
    15231523                            si.nPos=pos.y;
    1524                             SetScrollInfo(MdiInfo[WndNum].pmti->hEdit,SB_VERT,&si,1);
     1524                            SetScrollInfo(MdiInfo[WndNum].pMdiTextEdit->hEdit,SB_VERT,&si,1);
    15251525
    15261526                            if(temp2[i2]=='\0') goto EndToSetWorkFile;
     
    18021802        sw=0;
    18031803        if(IS_DOCUMENT_TEXT(MdiInfo[WndNum].DocType)){
    1804             if(MdiInfo[WndNum].pmti->bModify){
     1804            if( MdiInfo[WndNum].pMdiTextEdit->IsModified() ){
    18051805                for(i=0;i<ProjectInfo.pobj_DBFileInfo->iNum;i++){
    18061806                    ProjectInfo.pobj_DBFileInfo->ppobj_FileInfo[i]->GetFullPath(temporary);
     
    18591859                ProjectInfo.pobj_DBFileInfo->ppobj_FileInfo[i]->GetFullPath(temporary);
    18601860                if(lstrcmpi(MdiInfo[WndNum].path,temporary)==0){
    1861                     MdiInfo[WndNum].pmti->bModify=0;
     1861
     1862                    //変更フラグをオフにする
     1863                    MdiInfo[WndNum].pMdiTextEdit->UnModify();
     1864
    18621865                    SendMessage(hCloseChild,WM_CLOSE,0,0);
    18631866                    break;
     
    19931996                    si.cbSize=sizeof(SCROLLINFO);
    19941997                    si.fMask=SIF_POS;
    1995                     GetScrollInfo(MdiInfo[WndNum].pmti->hEdit,SB_HORZ,&si);
     1998                    GetScrollInfo(MdiInfo[WndNum].pMdiTextEdit->hEdit,SB_HORZ,&si);
    19961999                    pos.x=si.nPos;
    1997                     GetScrollInfo(MdiInfo[WndNum].pmti->hEdit,SB_VERT,&si);
     2000                    GetScrollInfo(MdiInfo[WndNum].pMdiTextEdit->hEdit,SB_VERT,&si);
    19982001                    pos.y=si.nPos;
    19992002
     
    21022105        WndNum=GetWndNum(hChild);
    21032106        if(IS_DOCUMENT_TEXT(MdiInfo[WndNum].DocType)){
    2104             if(MdiInfo[WndNum].pmti->bModify){
     2107            if( MdiInfo[WndNum].pMdiTextEdit->IsModified() ){
    21052108                for(i=0;i<ProjectInfo.pobj_DBFileInfo->iNum;i++){
    21062109                    ProjectInfo.pobj_DBFileInfo->ppobj_FileInfo[i]->GetFullPath(temporary);
  • ProjectEditor/ProjectEditor.cpp

    r22 r24  
    135135        if(IS_DOCUMENT_TEXT(MdiInfo[WndNum].DocType)){
    136136            //コントロールタブスペースの幅と行番号の文字数を更新
    137             MdiInfo[WndNum].pmti->iWidth_ControlTabSpace=
    138                 GetControlTabSpace(WndNum,&MdiInfo[WndNum].pmti->iLineNumberTextCount);
    139 
    140             InvalidateRect(MdiInfo[WndNum].pmti->hEdit,NULL,0);
    141             InvalidateRect(MdiInfo[WndNum].pmti->pobj_Ruler->hRulerWnd,NULL,0);
     137            MdiInfo[WndNum].pMdiTextEdit->iWidth_ControlTabSpace=
     138                GetControlTabSpace(WndNum,&MdiInfo[WndNum].pMdiTextEdit->iLineNumberTextCount);
     139
     140            InvalidateRect(MdiInfo[WndNum].pMdiTextEdit->hEdit,NULL,0);
     141            InvalidateRect(MdiInfo[WndNum].pMdiTextEdit->pobj_Ruler->hRulerWnd,NULL,0);
    142142
    143143            SendTextEditResizeEvent(MdiInfo[WndNum].hwnd);
     
    160160    sw=0;
    161161    if(IS_DOCUMENT_TEXT(MdiInfo[WndNum].DocType)){
    162         if(MdiInfo[WndNum].pmti->bModify) sw=1;
     162        if( MdiInfo[WndNum].pMdiTextEdit->IsModified() ) sw=1;
    163163    }
    164164    else if(MdiInfo[WndNum].DocType==WNDTYPE_ICONEDIT){
     
    205205
    206206        //サイズ
    207         BufSize=(double)lstrlen(MdiInfo[WndNum].pmti->buffer);
     207        BufSize=(double)lstrlen(MdiInfo[WndNum].pMdiTextEdit->buffer);
    208208        if(IsWindow(hChild)){
    209209            if(BufSize<1024) sprintf(temporary,"%s: %.0fByte",STRING_SIZE,BufSize);
     
    225225            //日本語
    226226            sprintf(temporary,"%d 行、%d 列",
    227                 MdiInfo[WndNum].pmti->StartCaretPos.y+1,
    228                 MdiInfo[WndNum].pmti->StartCaretPos.x+1);
     227                MdiInfo[WndNum].pMdiTextEdit->StartCaretPos.y+1,
     228                MdiInfo[WndNum].pMdiTextEdit->StartCaretPos.x+1);
    229229#else
    230230            //英語
    231231            sprintf(temporary,"%d : %d",
    232                 MdiInfo[WndNum].pmti->StartCaretPos.y+1,
    233                 MdiInfo[WndNum].pmti->StartCaretPos.x+1);
     232                MdiInfo[WndNum].pMdiTextEdit->StartCaretPos.y+1,
     233                MdiInfo[WndNum].pMdiTextEdit->StartCaretPos.x+1);
    234234#endif
    235235        }
     
    238238
    239239        //文字コード
    240         nkf.GetCharCodeName(MdiInfo[WndNum].pmti->iCharCode,temporary);
     240        nkf.GetCharCodeName(MdiInfo[WndNum].pMdiTextEdit->iCharCode,temporary);
    241241        SendMessage(hStatusBar,SB_SETTEXT,3,(LPARAM)temporary);
    242242
    243243        //文字コード
    244         nkf.GetLfCodeName(MdiInfo[WndNum].pmti->iLfCode,temporary);
     244        nkf.GetLfCodeName(MdiInfo[WndNum].pMdiTextEdit->iLfCode,temporary);
    245245        SendMessage(hStatusBar,SB_SETTEXT,4,(LPARAM)temporary);
    246246    }
     
    310310    }
    311311    else if(IS_DOCUMENT_TEXT(MdiInfo[i].DocType)){
    312         i2=MdiInfo[i].edit_undo->NowPos-1;
     312        i2=MdiInfo[i].pMdiTextEdit->pTextEditUndoState->NowPos-1;
    313313        if(i2==-1) i2=MAX_UNDONUM-1;
    314         if(!MdiInfo[i].edit_undo->Command[i2]){
     314        if(!MdiInfo[i].pMdiTextEdit->pTextEditUndoState->Command[i2]){
    315315            pobj_MainMenu->EnableItem(IDM_UNDO,MF_BYCOMMAND|MF_GRAYED);
    316316            EnableMenuItem(hEditMenu,IDM_UNDO,MF_BYCOMMAND|MF_GRAYED);
     
    322322            pobj_StandardToolbar->EnableItem(IDM_UNDO,1);
    323323        }
    324         if(!MdiInfo[i].edit_undo->Command[MdiInfo[i].edit_undo->NowPos]){
     324        if(!MdiInfo[i].pMdiTextEdit->pTextEditUndoState->Command[MdiInfo[i].pMdiTextEdit->pTextEditUndoState->NowPos]){
    325325            pobj_MainMenu->EnableItem(IDM_REDO,MF_BYCOMMAND|MF_GRAYED);
    326326            EnableMenuItem(hEditMenu,IDM_REDO,MF_BYCOMMAND|MF_GRAYED);
     
    461461        hChild=GetWindow(hChild,GW_CHILD);
    462462        if(!(
    463             MdiInfo[WndNum].pmti->StartCaretPos.x==MdiInfo[WndNum].pmti->EndCaretPos.x&&
    464             MdiInfo[WndNum].pmti->StartCaretPos.y==MdiInfo[WndNum].pmti->EndCaretPos.y
     463            MdiInfo[WndNum].pMdiTextEdit->StartCaretPos.x==MdiInfo[WndNum].pMdiTextEdit->EndCaretPos.x&&
     464            MdiInfo[WndNum].pMdiTextEdit->StartCaretPos.y==MdiInfo[WndNum].pMdiTextEdit->EndCaretPos.y
    465465            )){
    466466            MenuMsg=MF_BYCOMMAND|MF_ENABLED;
     
    901901            }
    902902
    903             MdiInfo[i].pmti=(MDITEXTEDITINFO *)HeapAlloc(hHeap,0,sizeof(MDITEXTEDITINFO));
    904 
    905             MdiInfo[i].pmti->hEdit=hEdit;
    906             MdiInfo[i].pmti->pobj_WebResult=new CWebResult(hChild);
    907             MdiInfo[i].pmti->pobj_Ruler=new CRuler(hChild,i);
    908             MdiInfo[i].pmti->hIcon=shfi.hIcon;
    909             MdiInfo[i].pmti->buffer=buffer;
    910             MdiInfo[i].pmti->pColorRef=(COLORREF *)HeapAlloc(hHeap,HEAP_ZERO_MEMORY,sizeof(COLORREF)*lstrlen(buffer));
    911             MdiInfo[i].pmti->iUnderStart=-1;
    912             MdiInfo[i].pmti->iUnderEnd=-1;
    913             MdiInfo[i].pmti->StartCaretPos.x=0;
    914             MdiInfo[i].pmti->StartCaretPos.y=0;
    915             MdiInfo[i].pmti->EndCaretPos.x=0;
    916             MdiInfo[i].pmti->EndCaretPos.y=0;
    917             MdiInfo[i].pmti->Temp_UpDown_CaretXPos=-1;
    918             MdiInfo[i].pmti->bAutoScroll=0;
    919             MdiInfo[i].pmti->iWidth_ControlTabSpace=
    920                 GetControlTabSpace(i,&MdiInfo[i].pmti->iLineNumberTextCount);
    921             MdiInfo[i].pmti->iCharCode=iCharCode;
    922             MdiInfo[i].pmti->iLfCode=iLfCode;
    923             MdiInfo[i].pmti->bModify=0;
     903            MdiInfo[i].pMdiTextEdit = new CMdiTextEdit( &MdiInfo[i] );
     904
     905            MdiInfo[i].pMdiTextEdit->hEdit=hEdit;
     906            MdiInfo[i].pMdiTextEdit->pobj_WebResult=new CWebResult(hChild);
     907            MdiInfo[i].pMdiTextEdit->pobj_Ruler=new CRuler(hChild,i);
     908            MdiInfo[i].pMdiTextEdit->hIcon=shfi.hIcon;
     909            MdiInfo[i].pMdiTextEdit->buffer=buffer;
     910            MdiInfo[i].pMdiTextEdit->pColorRef=(COLORREF *)HeapAlloc(hHeap,HEAP_ZERO_MEMORY,sizeof(COLORREF)*lstrlen(buffer));
     911            MdiInfo[i].pMdiTextEdit->iUnderStart=-1;
     912            MdiInfo[i].pMdiTextEdit->iUnderEnd=-1;
     913            MdiInfo[i].pMdiTextEdit->StartCaretPos.x=0;
     914            MdiInfo[i].pMdiTextEdit->StartCaretPos.y=0;
     915            MdiInfo[i].pMdiTextEdit->EndCaretPos.x=0;
     916            MdiInfo[i].pMdiTextEdit->EndCaretPos.y=0;
     917            MdiInfo[i].pMdiTextEdit->Temp_UpDown_CaretXPos=-1;
     918            MdiInfo[i].pMdiTextEdit->bAutoScroll=0;
     919            MdiInfo[i].pMdiTextEdit->iWidth_ControlTabSpace=
     920                GetControlTabSpace(i,&MdiInfo[i].pMdiTextEdit->iLineNumberTextCount);
     921            MdiInfo[i].pMdiTextEdit->iCharCode=iCharCode;
     922            MdiInfo[i].pMdiTextEdit->iLfCode=iLfCode;
    924923
    925924            MdiInfo[i].IndentStr=0;
    926 
    927             MdiInfo[i].edit_undo=(TEXTEDIT_UNDOSTATE *)GlobalAlloc(GPTR,sizeof(TEXTEDIT_UNDOSTATE));
    928             MdiInfo[i].edit_undo->NowPos=0;
    929925
    930926            int flag;
     
    945941
    946942    //タブに追加
    947     pobj_MainTab->insert(str,1,TabColor);
     943    pobj_MainTab->InsertItem( str, true, TabColor );
    948944
    949945    SetFocus(hEdit);
     
    10181014
    10191015    //タブコントロールからアイテムを消去
    1020     if(pobj_MainTab) pobj_MainTab->delete_item(MdiInfo[WndNum].title,1);
     1016    if(pobj_MainTab) pobj_MainTab->DeleteItem( MdiInfo[WndNum].title, true );
    10211017
    10221018
     
    10361032        }
    10371033
    1038         for(i2=0;i2<MAX_UNDONUM;i2++){
    1039             if(MdiInfo[WndNum].edit_undo->Command[i2])
    1040                 TextEdit_DeleteUndoData(WndNum,i2);
    1041         }
    1042         GlobalFree(MdiInfo[WndNum].edit_undo);
    1043 
    1044         HeapDefaultFree(MdiInfo[WndNum].pmti->buffer);
    1045         HeapDefaultFree(MdiInfo[WndNum].pmti->pColorRef);
     1034        HeapDefaultFree(MdiInfo[WndNum].pMdiTextEdit->buffer);
     1035        HeapDefaultFree(MdiInfo[WndNum].pMdiTextEdit->pColorRef);
    10461036
    10471037        if(MdiInfo[WndNum].IndentStr) HeapDefaultFree(MdiInfo[WndNum].IndentStr);
    10481038
    10491039        //エディットコントロールを破棄
    1050         DestroyWindow(MdiInfo[WndNum].pmti->hEdit);
     1040        DestroyWindow(MdiInfo[WndNum].pMdiTextEdit->hEdit);
    10511041
    10521042        //Web検索ウィンドウを破棄
    1053         delete MdiInfo[WndNum].pmti->pobj_WebResult;
    1054         MdiInfo[WndNum].pmti->pobj_WebResult=0;
     1043        delete MdiInfo[WndNum].pMdiTextEdit->pobj_WebResult;
     1044        MdiInfo[WndNum].pMdiTextEdit->pobj_WebResult=0;
    10551045
    10561046        //ルーラーウィンドウを破棄
    1057         delete MdiInfo[WndNum].pmti->pobj_Ruler;
    1058         MdiInfo[WndNum].pmti->pobj_Ruler=0;
     1047        delete MdiInfo[WndNum].pMdiTextEdit->pobj_Ruler;
     1048        MdiInfo[WndNum].pMdiTextEdit->pobj_Ruler=0;
    10591049
    10601050        //アイコンを破棄
    1061         if(MdiInfo[WndNum].pmti->hIcon) DestroyIcon(MdiInfo[WndNum].pmti->hIcon);
    1062 
    1063         HeapDefaultFree(MdiInfo[WndNum].pmti);
    1064         MdiInfo[WndNum].pmti=0;
     1051        if(MdiInfo[WndNum].pMdiTextEdit->hIcon) DestroyIcon(MdiInfo[WndNum].pMdiTextEdit->hIcon);
     1052
     1053        delete MdiInfo[WndNum].pMdiTextEdit;
     1054        MdiInfo[WndNum].pMdiTextEdit=0;
    10651055    }
    10661056    else if(MdiInfo[WndNum].DocType==WNDTYPE_RAD){
     
    11221112    if(pobj_nv->bEditor_Ruler){
    11231113        //ルーラー
    1124         MdiInfo[WndNum].pmti->pobj_Ruler->resize(
     1114        MdiInfo[WndNum].pMdiTextEdit->pobj_Ruler->resize(
    11251115            0,
    11261116            0,
     
    11301120        iHeightRuler=HEIGHT_RULER;
    11311121
    1132         ShowWindow(MdiInfo[WndNum].pmti->pobj_Ruler->hRulerWnd,SW_SHOW);
     1122        ShowWindow(MdiInfo[WndNum].pMdiTextEdit->pobj_Ruler->hRulerWnd,SW_SHOW);
    11331123    }
    11341124    else{
    11351125        iHeightRuler=0;
    11361126
    1137         ShowWindow(MdiInfo[WndNum].pmti->pobj_Ruler->hRulerWnd,SW_HIDE);
     1127        ShowWindow(MdiInfo[WndNum].pMdiTextEdit->pobj_Ruler->hRulerWnd,SW_HIDE);
    11381128    }
    11391129
    11401130    //エディットウィンドウ
    1141     MoveWindow(MdiInfo[WndNum].pmti->hEdit,
     1131    MoveWindow(MdiInfo[WndNum].pMdiTextEdit->hEdit,
    11421132        0,
    11431133        iHeightRuler,
     
    11471137
    11481138    //Web検索ウィンドウ
    1149     MdiInfo[WndNum].pmti->pobj_WebResult->resize(
     1139    MdiInfo[WndNum].pMdiTextEdit->pobj_WebResult->resize(
    11501140        0,
    11511141        cy-WebResultWndHeight,
     
    16871677                        hGlobal=(char *)GlobalAlloc(GMEM_MOVEABLE,CharRange.cpMax-CharRange.cpMin+1);
    16881678                        pTemp=(char *)GlobalLock(hGlobal);
    1689                         memcpy(pTemp,MdiInfo[WndNum].pmti->buffer+CharRange.cpMin,CharRange.cpMax-CharRange.cpMin);
     1679                        memcpy(pTemp,MdiInfo[WndNum].pMdiTextEdit->buffer+CharRange.cpMin,CharRange.cpMax-CharRange.cpMin);
    16901680                        pTemp[CharRange.cpMax-CharRange.cpMin]=0;
    16911681                        GlobalUnlock(hGlobal);
     
    17431733                        hGlobal=(char *)GlobalAlloc(GMEM_MOVEABLE,CharRange.cpMax-CharRange.cpMin+1);
    17441734                        pTemp=(char *)GlobalLock(hGlobal);
    1745                         memcpy(pTemp,MdiInfo[WndNum].pmti->buffer+CharRange.cpMin,CharRange.cpMax-CharRange.cpMin);
     1735                        memcpy(pTemp,MdiInfo[WndNum].pMdiTextEdit->buffer+CharRange.cpMin,CharRange.cpMax-CharRange.cpMin);
    17461736                        pTemp[CharRange.cpMax-CharRange.cpMin]=0;
    17471737                        GlobalUnlock(hGlobal);
     
    18531843                        hEdit=GetWindow(hChild,GW_CHILD);
    18541844
    1855                         MdiInfo[WndNum].pmti->StartCaretPos.x=0;
    1856                         MdiInfo[WndNum].pmti->StartCaretPos.y=0;
     1845                        MdiInfo[WndNum].pMdiTextEdit->StartCaretPos.x=0;
     1846                        MdiInfo[WndNum].pMdiTextEdit->StartCaretPos.y=0;
    18571847
    18581848                        GetCaretPosFromBufferIndex(
    1859                             MdiInfo[WndNum].pmti->buffer,
    1860                             lstrlen(MdiInfo[WndNum].pmti->buffer),
    1861                             &MdiInfo[WndNum].pmti->EndCaretPos);
     1849                            MdiInfo[WndNum].pMdiTextEdit->buffer,
     1850                            lstrlen(MdiInfo[WndNum].pMdiTextEdit->buffer),
     1851                            &MdiInfo[WndNum].pMdiTextEdit->EndCaretPos);
    18621852
    18631853                        InvalidateRect(hEdit,NULL,0);
     
    24432433
    24442434                    //閉じる
    2445                     MdiInfo[WndNum].pmti->bModify=0;
     2435                    MdiInfo[WndNum].pMdiTextEdit->UnModify();
    24462436                    SendMessage(MdiInfo[WndNum].hwnd,WM_CLOSE,0,0);
    24472437
     
    25522542            UpdateWindow(hChild);
    25532543
    2554             pTemp=MdiInfo[WndNum].pmti->buffer;
     2544            pTemp=MdiInfo[WndNum].pMdiTextEdit->buffer;
    25552545
    25562546            //行の先頭インデックスを取得(取得する行の番号はwParamで渡される)
  • ProjectEditor/ProjectEditor.sln

    r3 r24  
    1111        TheText_Debug|Win32 = TheText_Debug|Win32
    1212        TheText_Release|Win32 = TheText_Release|Win32
    13         TheText_Share_Debug|Win32 = TheText_Share_Debug|Win32
    14         TheText_Share_Release|Win32 = TheText_Share_Release|Win32
    1513    EndGlobalSection
    1614    GlobalSection(ProjectConfigurationPlatforms) = postSolution
     
    2523        {DC1B787E-510F-4F7D-8F9A-182600904D83}.TheText_Release|Win32.ActiveCfg = TheText_Release|Win32
    2624        {DC1B787E-510F-4F7D-8F9A-182600904D83}.TheText_Release|Win32.Build.0 = TheText_Release|Win32
    27         {DC1B787E-510F-4F7D-8F9A-182600904D83}.TheText_Share_Debug|Win32.ActiveCfg = TheText_Share_Debug|Win32
    28         {DC1B787E-510F-4F7D-8F9A-182600904D83}.TheText_Share_Debug|Win32.Build.0 = TheText_Share_Debug|Win32
    29         {DC1B787E-510F-4F7D-8F9A-182600904D83}.TheText_Share_Release|Win32.ActiveCfg = TheText_Share_Release|Win32
    30         {DC1B787E-510F-4F7D-8F9A-182600904D83}.TheText_Share_Release|Win32.Build.0 = TheText_Share_Release|Win32
    3125    EndGlobalSection
    3226    GlobalSection(SolutionProperties) = preSolution
  • ProjectEditor/ProjectEditor.vcproj

    r3 r24  
    37973797                            />
    37983798                        </FileConfiguration>
     3799                    </File>
     3800                </Filter>
     3801                <Filter
     3802                    Name="MDIクライアント管理クラス"
     3803                    >
     3804                    <File
     3805                        RelativePath=".\MdiTextEdit.cpp"
     3806                        >
     3807                    </File>
     3808                    <File
     3809                        RelativePath=".\MdiTextEdit.h"
     3810                        >
    37993811                    </File>
    38003812                </Filter>
  • ProjectEditor/RadProc.cpp

    r3 r24  
    146146
    147147    //タブに追加
    148     pobj_MainTab->insert(pWindowInfo->name,1);
     148    pobj_MainTab->InsertItem( pWindowInfo->name, true );
    149149
    150150    //メニュー状態を設定
  • 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
  • ProjectEditor/Ruler.cpp

    r3 r24  
    5757
    5858    int iControlTabSpace;
    59     iControlTabSpace=MdiInfo[m_WndNum].pmti->iWidth_ControlTabSpace;
     59    iControlTabSpace=MdiInfo[m_WndNum].pMdiTextEdit->iWidth_ControlTabSpace;
    6060
    6161    HBRUSH hBrush,hOldBrush;
  • ProjectEditor/Search.cpp

    r3 r24  
    3535    hEdit=GetWindow(GetWindow(hClient,GW_CHILD),GW_CHILD);
    3636
    37     i=lstrlen(MdiInfo[WndNum].pmti->buffer)+1;
     37    i=lstrlen(MdiInfo[WndNum].pMdiTextEdit->buffer)+1;
    3838
    3939    buffer=(char *)HeapAlloc(hHeap,0,i);
    40     lstrcpy(buffer,MdiInfo[WndNum].pmti->buffer);
     40    lstrcpy(buffer,MdiInfo[WndNum].pMdiTextEdit->buffer);
    4141
    4242    LineStr=(char *)HeapAlloc(hHeap,0,i+64);
     
    106106
    107107                    char *pBuf;
    108                     pBuf=MdiInfo[WndNum].pmti->buffer;
     108                    pBuf=MdiInfo[WndNum].pMdiTextEdit->buffer;
    109109
    110110                    //行の末端位置を取得
     
    146146    if(WndNum==-1) return 0;
    147147
    148     pBuf=MdiInfo[WndNum].pmti->buffer;
     148    pBuf=MdiInfo[WndNum].pMdiTextEdit->buffer;
    149149
    150150    TextEdit_GetSel(WndNum,&CharRange);
     
    241241            pTemp=(char *)HeapAlloc(hHeap,0,CharRange.cpMax-CharRange.cpMin+1);
    242242            memcpy(pTemp,
    243                 MdiInfo[WndNum].pmti->buffer+CharRange.cpMin,
     243                MdiInfo[WndNum].pMdiTextEdit->buffer+CharRange.cpMin,
    244244                CharRange.cpMax-CharRange.cpMin);
    245245            pTemp[CharRange.cpMax-CharRange.cpMin]=0;
     
    329329            pTemp=(char *)HeapAlloc(hHeap,0,CharRange.cpMax-CharRange.cpMin+1);
    330330            memcpy(pTemp,
    331                 MdiInfo[WndNum].pmti->buffer+CharRange.cpMin,
     331                MdiInfo[WndNum].pMdiTextEdit->buffer+CharRange.cpMin,
    332332                CharRange.cpMax-CharRange.cpMin);
    333333            pTemp[CharRange.cpMax-CharRange.cpMin]=0;
     
    394394                    pTemp=(char *)HeapAlloc(hHeap,0,CharRange.cpMax-CharRange.cpMin+1);
    395395                    memcpy(pTemp,
    396                         MdiInfo[WndNum].pmti->buffer+CharRange.cpMin,
     396                        MdiInfo[WndNum].pMdiTextEdit->buffer+CharRange.cpMin,
    397397                        CharRange.cpMax-CharRange.cpMin);
    398398                    pTemp[CharRange.cpMax-CharRange.cpMin]=0;
     
    468468                            pTemp=(char *)HeapAlloc(hHeap,0,CharRange.cpMax-CharRange.cpMin+1);
    469469                            memcpy(pTemp,
    470                                 MdiInfo[WndNum].pmti->buffer+CharRange.cpMin,
     470                                MdiInfo[WndNum].pMdiTextEdit->buffer+CharRange.cpMin,
    471471                                CharRange.cpMax-CharRange.cpMin);
    472472                            pTemp[CharRange.cpMax-CharRange.cpMin]=0;
  • ProjectEditor/StringCount.cpp

    r3 r24  
    2323        else{
    2424            //すべての範囲
    25             pBuf=(char *)HeapAlloc(hHeap,0,lstrlen(MdiInfo[WndNum].pmti->buffer)+1);
    26             lstrcpy(pBuf,MdiInfo[WndNum].pmti->buffer);
     25            pBuf=(char *)HeapAlloc(hHeap,0,lstrlen(MdiInfo[WndNum].pMdiTextEdit->buffer)+1);
     26            lstrcpy(pBuf,MdiInfo[WndNum].pMdiTextEdit->buffer);
    2727        }
    2828
  • ProjectEditor/SubOperation.cpp

    r22 r24  
    817817                if(IS_DOCUMENT_TEXT(MdiInfo[i].DocType)){
    818818                    SetTextEditWordColor(i);
    819                     InvalidateRect(MdiInfo[i].pmti->hEdit,NULL,0);
     819                    InvalidateRect(MdiInfo[i].pMdiTextEdit->hEdit,NULL,0);
    820820                }
    821821            }
     
    14031403        }
    14041404        else{
    1405             if(MdiInfo[WndNum].pmti->bModify){
     1405            if( MdiInfo[WndNum].pMdiTextEdit->IsModified() ){
    14061406                if(!SaveDocument(hChild,NULL)) return 0;
    14071407            }
  • ProjectEditor/TabCtrl.cpp

    r3 r24  
    7373
    7474
    75 int CMainTab::search(char *lpszText){
     75int CMainTab::SearchItemIndex( const char *lpszText ){
    7676    int i2,i3;
    7777    char temporary[MAX_PATH];
     
    8686    for(i2=0;i2<i3;i2++){
    8787        TabCtrl_GetItem(hTab,i2,&tcItem);
     88
     89        //アスタリスクを取り除いて評価する
     90        if( tcItem.pszText[ lstrlen( tcItem.pszText ) -1 ] == '*' ){
     91            tcItem.pszText[ lstrlen( tcItem.pszText ) -1 ] = 0;
     92        }
     93
    8894        if(lstrcmpi(lpszText,tcItem.pszText)==0) break;
    8995    }
     
    9197
    9298    return i2;
     99}
     100void CMainTab::SetItemText( int index, const char *ItemText ){
     101    TC_ITEM tcItem;
     102    tcItem.mask=TCIF_TEXT;
     103    tcItem.pszText=(LPSTR)ItemText;
     104    tcItem.cchTextMax=MAX_PATH;
     105
     106    TabCtrl_SetItem(hTab,index,&tcItem);
     107}
     108void CMainTab::GetItemText( int index, char *ItemText ){
     109    TC_ITEM tcItem;
     110    tcItem.mask = TCIF_TEXT;
     111    tcItem.pszText = ItemText;
     112    tcItem.cchTextMax = MAX_PATH;
     113    TabCtrl_GetItem( hTab, index, &tcItem );
     114}
     115bool CMainTab::IsModified( int index ){
     116    //アスタリスク表示かどうかを判断する
     117
     118    //アイテム文字列を取得
     119    char ItemText[MAX_PATH];
     120    GetItemText( index, ItemText );
     121
     122    if( ItemText[ lstrlen( ItemText ) -1 ] == '*' ){
     123        //アスタリスクがあったとき
     124        return true;
     125    }
     126
     127    //その他
     128    return false;
    93129}
    94130
     
    126162}
    127163
    128 void CMainTab::insert(char *lpszText,BOOL bResize,COLORREF color){
     164void CMainTab::InsertItem( const char *lpszText, bool isResize, COLORREF color ){
    129165    int sw=0;
    130166    if(TabCtrl_GetItemCount(hTab)==0) sw=1;
     
    134170    TC_ITEM tcItem;
    135171    tcItem.mask=TCIF_TEXT|TCIF_PARAM;
    136     tcItem.pszText=lpszText;
     172    tcItem.pszText=(LPSTR)lpszText;
    137173    tcItem.lParam=color;
    138174    TabCtrl_InsertItem(hTab,0,&tcItem);
    139175    TabCtrl_SetCurSel(hTab,0);
    140176
    141     if(bResize){
     177    if(isResize){
    142178        if(sw) ResizeOwnerWnd();
    143179    }
    144180}
    145181
    146 void CMainTab::delete_item(char *lpszText,BOOL bResize){
     182void CMainTab::DeleteItem( const char *lpszText, bool isResize ){
    147183    int i2;
    148     i2=search(lpszText);
     184    i2=SearchItemIndex(lpszText);
    149185    if(i2==-1) return;
    150186
    151187    TabCtrl_DeleteItem(hTab,i2);
    152188
    153     if(bResize){
     189    if(isResize){
    154190        if(TabCtrl_GetItemCount(hTab)==0) ResizeOwnerWnd();
    155191    }
    156192}
    157193
    158 void CMainTab::reset_item(char *lpszOldText,char *lpszNewText){
     194void CMainTab::RenameItem( const char *lpszOldText, const char *lpszNewText ){
    159195    int i2;
    160     i2=search(lpszOldText);
     196    i2=SearchItemIndex(lpszOldText);
    161197    if(i2==-1) return;
    162198
    163     TC_ITEM tcItem;
    164     tcItem.mask=TCIF_TEXT;
    165     tcItem.pszText=lpszNewText;
    166     tcItem.cchTextMax=MAX_PATH;
    167 
    168     TabCtrl_SetItem(hTab,i2,&tcItem);
    169 }
    170 
    171 COLORREF CMainTab::GetItemColor(char *lpszText){
    172     int i2,i3;
     199    SetItemText( i2, lpszNewText );
     200}
     201
     202void CMainTab::NofityModifyDocument( const char *ItemText ){
     203    //ドキュメントが変更されたとき、アスタリスクを付けて表示する
     204
     205    //インデックスを取得
     206    int index = SearchItemIndex( ItemText );
     207    if( index == -1 ) return;
     208
     209    //既にアスタリスク表示されていた場合は抜ける
     210    if( IsModified( index ) ) return;
     211
     212    //アスタリスクを付加
    173213    char temporary[MAX_PATH];
    174 
    175     i3=TabCtrl_GetItemCount(hTab);
    176 
    177     TC_ITEM tcItem;
    178     tcItem.mask=TCIF_TEXT|TCIF_PARAM;
    179     tcItem.pszText=temporary;
    180     tcItem.cchTextMax=MAX_PATH;
    181 
    182     for(i2=0;i2<i3;i2++){
    183         TabCtrl_GetItem(hTab,i2,&tcItem);
    184         if(lstrcmpi(lpszText,tcItem.pszText)==0) return tcItem.lParam;
    185     }
    186     return -1;
     214    lstrcpy( temporary, ItemText );
     215    lstrcat( temporary, "*" );
     216
     217    //タブアイテムを更新
     218    SetItemText( index, temporary );
     219}
     220void CMainTab::NofityUnModifyDocument( const char *ItemText ){
     221    //ドキュメントが保存されたとき、アスタリスクを非表示にする
     222
     223    //インデックスを取得
     224    int index = SearchItemIndex( ItemText );
     225    if( index == -1 ) return;
     226
     227    //既にアスタリスクが非表示の場合は抜ける
     228    if( ! IsModified( index ) ) return;
     229
     230    //タブアイテムを更新
     231    SetItemText( index, ItemText );
     232}
     233
     234COLORREF CMainTab::GetItemColor( char *ItemText ){
     235    //インデックスを取得
     236    int index = SearchItemIndex( ItemText );
     237    if( index == -1 ) return -1;
     238
     239    TC_ITEM tcItem;
     240    tcItem.mask = TCIF_PARAM;
     241    TabCtrl_GetItem( hTab, index, &tcItem );
     242    return tcItem.lParam;
    187243}
    188244
     
    207263void CMainTab::MdiActiveEvent(char *lpszText){
    208264    int i2;
    209     i2=search(lpszText);
     265    i2=SearchItemIndex(lpszText);
    210266    if(i2==-1) return;
    211267
  • ProjectEditor/TabCtrl.h

    r3 r24  
    44    HFONT hBoldFont;
    55
    6     int search(char *lpszText);
     6    //アイテム文字列を元にインデックスを取得する
     7    int SearchItemIndex( const char *lpszText );
     8
     9    //アイテム文字列を変更する
     10    void SetItemText( int index, const char *ItemText );
     11
     12    //アイテム文字列を取得する
     13    void GetItemText( int index, char *ItemText );
     14
     15    //アスタリスク表示かどうかを調べる(true/変更あり, false/変更なし)
     16    bool IsModified( int index );
    717
    818public:
     
    1222    ~CMainTab();
    1323
    14     void insert(char *lpszText,BOOL bResize,COLORREF color=-1);
    15     void delete_item(char *lpszText,BOOL bResize);
    16     void reset_item(char *lpszOldText,char *lpszNewText);
     24    //アイテムを挿入
     25    void InsertItem( const char *lpszText, bool isResize, COLORREF color = -1 );
    1726
    18     COLORREF GetItemColor(char *lpszText);
     27    //アイテムを削除
     28    void DeleteItem( const char *lpszText, bool isResize );
     29
     30    //アイテムの名前を変更
     31    void RenameItem( const char *lpszOldText, const char *lpszNewText );
     32
     33    //変更あり通知
     34    void NofityModifyDocument( const char *ItemText );
     35
     36    //変更なし通知
     37    void NofityUnModifyDocument( const char *ItemText );
     38
     39    COLORREF GetItemColor( char *ItemText );
    1940
    2041    void SelChangeEvent();
  • ProjectEditor/TextEditor.cpp

    r22 r24  
    1010
    1111        char *pBuf;
    12         pBuf=MdiInfo[WndNum].pmti->buffer;
     12        pBuf=MdiInfo[WndNum].pMdiTextEdit->buffer;
    1313
    1414        int i,iNum=1,x=0;
     
    8585    char *pBuf;
    8686
    87     pBuf=MdiInfo[WndNum].pmti->buffer;
     87    pBuf=MdiInfo[WndNum].pMdiTextEdit->buffer;
    8888
    8989    if(MdiInfo[WndNum].DocType==WNDTYPE_TEXT){
     
    9191        for(i=0;;i++){
    9292            if(pBuf[i]=='\0') break;
    93             MdiInfo[WndNum].pmti->pColorRef[i]=tci.rgbDefault;
     93            MdiInfo[WndNum].pMdiTextEdit->pColorRef[i]=tci.rgbDefault;
    9494        }
    9595        return;
     
    120120            if(bResult){
    121121                for(i3=i-i2;i3<i;i3++){
    122                     MdiInfo[WndNum].pmti->pColorRef[i3]=tci.rgbStatement;
     122                    MdiInfo[WndNum].pMdiTextEdit->pColorRef[i3]=tci.rgbStatement;
    123123                }
    124124            }
    125125            else{
    126126                for(i3=i-i2;i3<i;i3++){
    127                     MdiInfo[WndNum].pmti->pColorRef[i3]=tci.rgbDefault;
     127                    MdiInfo[WndNum].pMdiTextEdit->pColorRef[i3]=tci.rgbDefault;
    128128                }
    129129            }
     
    134134            if(IsStr||pBuf[i]=='\"'&&IsStr==0){
    135135                //文字列カラー(""で囲まれる範囲)
    136                 MdiInfo[WndNum].pmti->pColorRef[i]=tci.rgbString;
     136                MdiInfo[WndNum].pMdiTextEdit->pColorRef[i]=tci.rgbString;
    137137            }
    138138            else{
    139139                //通常カラー
    140                 MdiInfo[WndNum].pmti->pColorRef[i]=tci.rgbDefault;
     140                MdiInfo[WndNum].pMdiTextEdit->pColorRef[i]=tci.rgbDefault;
    141141            }
    142142        }
     
    156156    //エディタ画面左端のコントロールタブ
    157157    int iControlTabSpace;
    158     iControlTabSpace=MdiInfo[WndNum].pmti->iWidth_ControlTabSpace;
     158    iControlTabSpace=MdiInfo[WndNum].pMdiTextEdit->iWidth_ControlTabSpace;
    159159
    160160    HWND hEdit;
     
    181181
    182182    //ルーラーを再描画
    183     InvalidateRect(MdiInfo[WndNum].pmti->pobj_Ruler->hRulerWnd,NULL,0);
    184     UpdateWindow(MdiInfo[WndNum].pmti->pobj_Ruler->hRulerWnd);
     183    InvalidateRect(MdiInfo[WndNum].pMdiTextEdit->pobj_Ruler->hRulerWnd,NULL,0);
     184    UpdateWindow(MdiInfo[WndNum].pMdiTextEdit->pobj_Ruler->hRulerWnd);
    185185}
    186186
     
    217217    char *pBuf;
    218218
    219     pBuf=MdiInfo[WndNum].pmti->buffer;
     219    pBuf=MdiInfo[WndNum].pMdiTextEdit->buffer;
    220220
    221221    //ダブルクリック位置を取得(バッファインデックス)
     
    330330
    331331    i=GetBufferIndexFromCaretPos(
    332         MdiInfo[WndNum].pmti->buffer,
    333         MdiInfo[WndNum].pmti->StartCaretPos.x,
    334         MdiInfo[WndNum].pmti->StartCaretPos.y);
     332        MdiInfo[WndNum].pMdiTextEdit->buffer,
     333        MdiInfo[WndNum].pMdiTextEdit->StartCaretPos.x,
     334        MdiInfo[WndNum].pMdiTextEdit->StartCaretPos.y);
    335335    GetCaretPosFromBufferIndex(
    336         MdiInfo[WndNum].pmti->buffer,
     336        MdiInfo[WndNum].pMdiTextEdit->buffer,
    337337        i-lstrlen(MdiInfo[WndNum].IndentStr),
    338         &MdiInfo[WndNum].pmti->StartCaretPos);
     338        &MdiInfo[WndNum].pMdiTextEdit->StartCaretPos);
    339339
    340340    TextEdit_Replace(WndNum,"",1);
  • ProjectEditor/TextEditor_EventProc.cpp

    r3 r24  
    226226
    227227            int iControlTabSpace;
    228             iControlTabSpace=MdiInfo[WndNum].pmti->iWidth_ControlTabSpace;
     228            iControlTabSpace=MdiInfo[WndNum].pMdiTextEdit->iWidth_ControlTabSpace;
    229229
    230230            i=max(-si.nPos,min(i,si.nMax-((rect.right-iControlTabSpace)/font_width)-si.nPos));
     
    238238
    239239            //ルーラーを再描画
    240             InvalidateRect(MdiInfo[WndNum].pmti->pobj_Ruler->hRulerWnd,NULL,0);
    241             UpdateWindow(MdiInfo[WndNum].pmti->pobj_Ruler->hRulerWnd);
     240            InvalidateRect(MdiInfo[WndNum].pMdiTextEdit->pobj_Ruler->hRulerWnd,NULL,0);
     241            UpdateWindow(MdiInfo[WndNum].pMdiTextEdit->pobj_Ruler->hRulerWnd);
    242242
    243243            return 0;
     
    259259                WS_CHILD|WS_VISIBLE,
    260260                0,0,0,0,
    261                 MdiInfo[wParam].pmti->pobj_WebResult->hwnd,0,hInst,0);
     261                MdiInfo[wParam].pMdiTextEdit->pobj_WebResult->hwnd,0,hInst,0);
    262262
    263263            SetWindowLong(hOneTabWnd,GWL_USERDATA,(long)lParam);
  • ProjectEditor/TextEditor_ImeEvent.cpp

    r3 r24  
    99
    1010    int iControlTabSpace;
    11     iControlTabSpace=MdiInfo[WndNum].pmti->iWidth_ControlTabSpace;
     11    iControlTabSpace=MdiInfo[WndNum].pMdiTextEdit->iWidth_ControlTabSpace;
    1212
    1313    HIMC hIMC;
     
    1818    COMPOSITIONFORM CompForm;
    1919    CompForm.dwStyle=CFS_POINT;
    20     pos=MdiInfo[WndNum].pmti->StartCaretPos;
     20    pos=MdiInfo[WndNum].pMdiTextEdit->StartCaretPos;
    2121    GetScrollBaseCaretPos(WndNum,(int *)&pos.x,(int *)&pos.y);
    2222    CompForm.ptCurrentPos.x=pos.x*font_width+iControlTabSpace;
     
    3636
    3737        int iControlTabSpace;
    38         iControlTabSpace=MdiInfo[WndNum].pmti->iWidth_ControlTabSpace;
     38        iControlTabSpace=MdiInfo[WndNum].pMdiTextEdit->iWidth_ControlTabSpace;
    3939
    4040        ////////////////////
     
    6060        COMPOSITIONFORM CompForm;
    6161        CompForm.dwStyle=CFS_POINT;
    62         pos=MdiInfo[WndNum].pmti->StartCaretPos;
     62        pos=MdiInfo[WndNum].pMdiTextEdit->StartCaretPos;
    6363        GetScrollBaseCaretPos(WndNum,(int *)&pos.x,(int *)&pos.y);
    6464        CompForm.ptCurrentPos.x=pos.x*font_width+iControlTabSpace;
  • ProjectEditor/TextEditor_KeyEvent.cpp

    r22 r24  
    1212        WndNum=GetWndNum(GetParent(hwnd));
    1313
    14         if(MdiInfo[WndNum].pmti->iUnderStart!=-1){
     14        if(MdiInfo[WndNum].pMdiTextEdit->iUnderStart!=-1){
    1515            //ハイパーリンク下線の表示を解除
    16             MdiInfo[WndNum].pmti->iUnderStart=-1;
    17             MdiInfo[WndNum].pmti->iUnderEnd=-1;
     16            MdiInfo[WndNum].pMdiTextEdit->iUnderStart=-1;
     17            MdiInfo[WndNum].pMdiTextEdit->iUnderEnd=-1;
    1818
    1919            //再描画
     
    147147    char *pBuf;
    148148
    149     pBuf=MdiInfo[WndNum].pmti->buffer;
     149    pBuf=MdiInfo[WndNum].pMdiTextEdit->buffer;
    150150    for(i=iPos;i>0;i--){
    151151        if(pBuf[i-1]=='\r'&&pBuf[i]=='\n') return i+1;
     
    235235            }
    236236
    237             pBuf=MdiInfo[WndNum].pmti->buffer;
     237            pBuf=MdiInfo[WndNum].pMdiTextEdit->buffer;
    238238
    239239            int StartX;
     
    241241            //リプレイス前のカーソルバッファ位置を取得
    242242            i=GetBufferIndexFromCaretPos(pBuf,
    243                 MdiInfo[WndNum].pmti->StartCaretPos.x,
    244                 MdiInfo[WndNum].pmti->StartCaretPos.y);
    245             StartX=MdiInfo[WndNum].pmti->StartCaretPos.x;
     243                MdiInfo[WndNum].pMdiTextEdit->StartCaretPos.x,
     244                MdiInfo[WndNum].pMdiTextEdit->StartCaretPos.y);
     245            StartX=MdiInfo[WndNum].pMdiTextEdit->StartCaretPos.x;
    246246
    247247            //リプレイス
    248248            TextEdit_ReplaceUpdateUndoData(WndNum,temporary,0,1);
    249             pBuf=MdiInfo[WndNum].pmti->buffer;
     249            pBuf=MdiInfo[WndNum].pMdiTextEdit->buffer;
    250250
    251251            //リプレイス後のカーソル行のインデントをi3に取得
     
    290290            */
    291291            i=GetBufferIndexFromCaretPos(pBuf,
    292                 MdiInfo[WndNum].pmti->StartCaretPos.x,
    293                 MdiInfo[WndNum].pmti->StartCaretPos.y);
     292                MdiInfo[WndNum].pMdiTextEdit->StartCaretPos.x,
     293                MdiInfo[WndNum].pMdiTextEdit->StartCaretPos.y);
    294294            if(pBuf[i]=='\r'&&
    295295                pBuf[i+1]=='\n'){
     
    322322    }
    323323    else if(nVirtualKey==VK_TAB){
    324         pBuf=MdiInfo[WndNum].pmti->buffer;
     324        pBuf=MdiInfo[WndNum].pMdiTextEdit->buffer;
    325325
    326326        TextEdit_GetSel(WndNum,&CharRange);
     
    409409            //リプレイス
    410410            TextEdit_ReplaceUpdateUndoData(WndNum,pTemp,0,0);
    411             pBuf=MdiInfo[WndNum].pmti->buffer;
     411            pBuf=MdiInfo[WndNum].pMdiTextEdit->buffer;
    412412
    413413            HeapDefaultFree(pTemp);
     
    496496            case VK_LEFT:
    497497                //上下キャレット移動時の左右位置保持機能を解除
    498                 MdiInfo[WndNum].pmti->Temp_UpDown_CaretXPos=-1;
    499 
    500                 if((MdiInfo[WndNum].pmti->StartCaretPos.x==MdiInfo[WndNum].pmti->EndCaretPos.x&&
    501                     MdiInfo[WndNum].pmti->StartCaretPos.y==MdiInfo[WndNum].pmti->EndCaretPos.y)||
     498                MdiInfo[WndNum].pMdiTextEdit->Temp_UpDown_CaretXPos=-1;
     499
     500                if((MdiInfo[WndNum].pMdiTextEdit->StartCaretPos.x==MdiInfo[WndNum].pMdiTextEdit->EndCaretPos.x&&
     501                    MdiInfo[WndNum].pMdiTextEdit->StartCaretPos.y==MdiInfo[WndNum].pMdiTextEdit->EndCaretPos.y)||
    502502                    GetKeyState(VK_SHIFT)&0x8000){
    503503                    //選択中でないとき、またはシフトキーが押されているとき
     
    506506                else{
    507507                    //選択中のとき
    508                     if(MdiInfo[WndNum].pmti->StartCaretPos.y<MdiInfo[WndNum].pmti->EndCaretPos.y)
    509                         MdiInfo[WndNum].pmti->EndCaretPos=MdiInfo[WndNum].pmti->StartCaretPos;
    510                     else if(MdiInfo[WndNum].pmti->StartCaretPos.y>MdiInfo[WndNum].pmti->EndCaretPos.y)
    511                         MdiInfo[WndNum].pmti->StartCaretPos=MdiInfo[WndNum].pmti->EndCaretPos;
     508                    if(MdiInfo[WndNum].pMdiTextEdit->StartCaretPos.y<MdiInfo[WndNum].pMdiTextEdit->EndCaretPos.y)
     509                        MdiInfo[WndNum].pMdiTextEdit->EndCaretPos=MdiInfo[WndNum].pMdiTextEdit->StartCaretPos;
     510                    else if(MdiInfo[WndNum].pMdiTextEdit->StartCaretPos.y>MdiInfo[WndNum].pMdiTextEdit->EndCaretPos.y)
     511                        MdiInfo[WndNum].pMdiTextEdit->StartCaretPos=MdiInfo[WndNum].pMdiTextEdit->EndCaretPos;
    512512                    else{
    513                         if(MdiInfo[WndNum].pmti->StartCaretPos.x<MdiInfo[WndNum].pmti->EndCaretPos.x)
    514                             MdiInfo[WndNum].pmti->EndCaretPos=MdiInfo[WndNum].pmti->StartCaretPos;
     513                        if(MdiInfo[WndNum].pMdiTextEdit->StartCaretPos.x<MdiInfo[WndNum].pMdiTextEdit->EndCaretPos.x)
     514                            MdiInfo[WndNum].pMdiTextEdit->EndCaretPos=MdiInfo[WndNum].pMdiTextEdit->StartCaretPos;
    515515                        else
    516                             MdiInfo[WndNum].pmti->StartCaretPos=MdiInfo[WndNum].pmti->EndCaretPos;
     516                            MdiInfo[WndNum].pMdiTextEdit->StartCaretPos=MdiInfo[WndNum].pMdiTextEdit->EndCaretPos;
    517517                    }
    518518                }
     
    520520            case VK_RIGHT:
    521521                //上下キャレット移動時の左右位置保持機能を解除
    522                 MdiInfo[WndNum].pmti->Temp_UpDown_CaretXPos=-1;
    523 
    524                 if((MdiInfo[WndNum].pmti->StartCaretPos.x==MdiInfo[WndNum].pmti->EndCaretPos.x&&
    525                     MdiInfo[WndNum].pmti->StartCaretPos.y==MdiInfo[WndNum].pmti->EndCaretPos.y)||
     522                MdiInfo[WndNum].pMdiTextEdit->Temp_UpDown_CaretXPos=-1;
     523
     524                if((MdiInfo[WndNum].pMdiTextEdit->StartCaretPos.x==MdiInfo[WndNum].pMdiTextEdit->EndCaretPos.x&&
     525                    MdiInfo[WndNum].pMdiTextEdit->StartCaretPos.y==MdiInfo[WndNum].pMdiTextEdit->EndCaretPos.y)||
    526526                    GetKeyState(VK_SHIFT)&0x8000){
    527527                    //選択中でないとき、またはシフトキーが押されているとき
    528528                    GetNaturalCaretPos_Right(WndNum,
    529                         &MdiInfo[WndNum].pmti->StartCaretPos);
     529                        &MdiInfo[WndNum].pMdiTextEdit->StartCaretPos);
    530530                }
    531531                else{
    532532                    //選択中のとき
    533                     if(MdiInfo[WndNum].pmti->StartCaretPos.y<MdiInfo[WndNum].pmti->EndCaretPos.y)
    534                         MdiInfo[WndNum].pmti->StartCaretPos=MdiInfo[WndNum].pmti->EndCaretPos;
    535                     else if(MdiInfo[WndNum].pmti->StartCaretPos.y>MdiInfo[WndNum].pmti->EndCaretPos.y)
    536                         MdiInfo[WndNum].pmti->EndCaretPos=MdiInfo[WndNum].pmti->StartCaretPos;
     533                    if(MdiInfo[WndNum].pMdiTextEdit->StartCaretPos.y<MdiInfo[WndNum].pMdiTextEdit->EndCaretPos.y)
     534                        MdiInfo[WndNum].pMdiTextEdit->StartCaretPos=MdiInfo[WndNum].pMdiTextEdit->EndCaretPos;
     535                    else if(MdiInfo[WndNum].pMdiTextEdit->StartCaretPos.y>MdiInfo[WndNum].pMdiTextEdit->EndCaretPos.y)
     536                        MdiInfo[WndNum].pMdiTextEdit->EndCaretPos=MdiInfo[WndNum].pMdiTextEdit->StartCaretPos;
    537537                    else{
    538                         if(MdiInfo[WndNum].pmti->StartCaretPos.x<MdiInfo[WndNum].pmti->EndCaretPos.x)
    539                             MdiInfo[WndNum].pmti->StartCaretPos=MdiInfo[WndNum].pmti->EndCaretPos;
     538                        if(MdiInfo[WndNum].pMdiTextEdit->StartCaretPos.x<MdiInfo[WndNum].pMdiTextEdit->EndCaretPos.x)
     539                            MdiInfo[WndNum].pMdiTextEdit->StartCaretPos=MdiInfo[WndNum].pMdiTextEdit->EndCaretPos;
    540540                        else
    541                             MdiInfo[WndNum].pmti->EndCaretPos=MdiInfo[WndNum].pmti->StartCaretPos;
     541                            MdiInfo[WndNum].pMdiTextEdit->EndCaretPos=MdiInfo[WndNum].pMdiTextEdit->StartCaretPos;
    542542                    }
    543543                }
     
    545545            case VK_UP:
    546546                if((GetKeyState(VK_CONTROL)&0x8000)&&
    547                     MdiInfo[WndNum].pmti->StartCaretPos.x!=0){
     547                    MdiInfo[WndNum].pMdiTextEdit->StartCaretPos.x!=0){
    548548                    //行の先頭へキャレットを移動
    549                     MdiInfo[WndNum].pmti->StartCaretPos.x=0;
     549                    MdiInfo[WndNum].pMdiTextEdit->StartCaretPos.x=0;
    550550
    551551                    //上下キャレット移動時の左右位置保持機能を解除
    552                     MdiInfo[WndNum].pmti->Temp_UpDown_CaretXPos=-1;
     552                    MdiInfo[WndNum].pMdiTextEdit->Temp_UpDown_CaretXPos=-1;
    553553                }
    554554                else{
    555                     if((MdiInfo[WndNum].pmti->StartCaretPos.x==MdiInfo[WndNum].pmti->EndCaretPos.x&&
    556                         MdiInfo[WndNum].pmti->StartCaretPos.y==MdiInfo[WndNum].pmti->EndCaretPos.y)||
     555                    if((MdiInfo[WndNum].pMdiTextEdit->StartCaretPos.x==MdiInfo[WndNum].pMdiTextEdit->EndCaretPos.x&&
     556                        MdiInfo[WndNum].pMdiTextEdit->StartCaretPos.y==MdiInfo[WndNum].pMdiTextEdit->EndCaretPos.y)||
    557557                        GetKeyState(VK_SHIFT)&0x8000){
    558558                        //選択中でないとき、またはシフトキーが押されているとき
    559559                        GetNaturalCaretPos_Up(WndNum,
    560                             &MdiInfo[WndNum].pmti->StartCaretPos);
     560                            &MdiInfo[WndNum].pMdiTextEdit->StartCaretPos);
    561561                    }
    562562                    else{
    563563                        //選択中のとき
    564                         if(MdiInfo[WndNum].pmti->StartCaretPos.y<MdiInfo[WndNum].pmti->EndCaretPos.y)
    565                             MdiInfo[WndNum].pmti->EndCaretPos=MdiInfo[WndNum].pmti->StartCaretPos;
    566                         else if(MdiInfo[WndNum].pmti->StartCaretPos.y>MdiInfo[WndNum].pmti->EndCaretPos.y)
    567                             MdiInfo[WndNum].pmti->StartCaretPos=MdiInfo[WndNum].pmti->EndCaretPos;
     564                        if(MdiInfo[WndNum].pMdiTextEdit->StartCaretPos.y<MdiInfo[WndNum].pMdiTextEdit->EndCaretPos.y)
     565                            MdiInfo[WndNum].pMdiTextEdit->EndCaretPos=MdiInfo[WndNum].pMdiTextEdit->StartCaretPos;
     566                        else if(MdiInfo[WndNum].pMdiTextEdit->StartCaretPos.y>MdiInfo[WndNum].pMdiTextEdit->EndCaretPos.y)
     567                            MdiInfo[WndNum].pMdiTextEdit->StartCaretPos=MdiInfo[WndNum].pMdiTextEdit->EndCaretPos;
    568568                        else{
    569                             if(MdiInfo[WndNum].pmti->StartCaretPos.x<MdiInfo[WndNum].pmti->EndCaretPos.x)
    570                                 MdiInfo[WndNum].pmti->EndCaretPos=MdiInfo[WndNum].pmti->StartCaretPos;
     569                            if(MdiInfo[WndNum].pMdiTextEdit->StartCaretPos.x<MdiInfo[WndNum].pMdiTextEdit->EndCaretPos.x)
     570                                MdiInfo[WndNum].pMdiTextEdit->EndCaretPos=MdiInfo[WndNum].pMdiTextEdit->StartCaretPos;
    571571                            else
    572                                 MdiInfo[WndNum].pmti->StartCaretPos=MdiInfo[WndNum].pmti->EndCaretPos;
     572                                MdiInfo[WndNum].pMdiTextEdit->StartCaretPos=MdiInfo[WndNum].pMdiTextEdit->EndCaretPos;
    573573                        }
    574574
    575575                        GetNaturalCaretPos_Up(WndNum,
    576                             &MdiInfo[WndNum].pmti->StartCaretPos);
     576                            &MdiInfo[WndNum].pMdiTextEdit->StartCaretPos);
    577577                    }
    578578                }
    579579                break;
    580580            case VK_DOWN:
    581                 i2=MdiInfo[WndNum].pmti->StartCaretPos.y;
    582                 if((MdiInfo[WndNum].pmti->StartCaretPos.x==MdiInfo[WndNum].pmti->EndCaretPos.x&&
    583                     MdiInfo[WndNum].pmti->StartCaretPos.y==MdiInfo[WndNum].pmti->EndCaretPos.y)||
     581                i2=MdiInfo[WndNum].pMdiTextEdit->StartCaretPos.y;
     582                if((MdiInfo[WndNum].pMdiTextEdit->StartCaretPos.x==MdiInfo[WndNum].pMdiTextEdit->EndCaretPos.x&&
     583                    MdiInfo[WndNum].pMdiTextEdit->StartCaretPos.y==MdiInfo[WndNum].pMdiTextEdit->EndCaretPos.y)||
    584584                    GetKeyState(VK_SHIFT)&0x8000){
    585585                    //選択中でないとき、またはシフトキーが押されているとき
    586586                    GetNaturalCaretPos_Down(WndNum,
    587                         &MdiInfo[WndNum].pmti->StartCaretPos);
     587                        &MdiInfo[WndNum].pMdiTextEdit->StartCaretPos);
    588588                }
    589589                else{
    590590                    //選択中のとき
    591                     if(MdiInfo[WndNum].pmti->StartCaretPos.y<MdiInfo[WndNum].pmti->EndCaretPos.y)
    592                         MdiInfo[WndNum].pmti->StartCaretPos=MdiInfo[WndNum].pmti->EndCaretPos;
    593                     else if(MdiInfo[WndNum].pmti->StartCaretPos.y>MdiInfo[WndNum].pmti->EndCaretPos.y)
    594                         MdiInfo[WndNum].pmti->EndCaretPos=MdiInfo[WndNum].pmti->StartCaretPos;
     591                    if(MdiInfo[WndNum].pMdiTextEdit->StartCaretPos.y<MdiInfo[WndNum].pMdiTextEdit->EndCaretPos.y)
     592                        MdiInfo[WndNum].pMdiTextEdit->StartCaretPos=MdiInfo[WndNum].pMdiTextEdit->EndCaretPos;
     593                    else if(MdiInfo[WndNum].pMdiTextEdit->StartCaretPos.y>MdiInfo[WndNum].pMdiTextEdit->EndCaretPos.y)
     594                        MdiInfo[WndNum].pMdiTextEdit->EndCaretPos=MdiInfo[WndNum].pMdiTextEdit->StartCaretPos;
    595595                    else{
    596                         if(MdiInfo[WndNum].pmti->StartCaretPos.x<MdiInfo[WndNum].pmti->EndCaretPos.x)
    597                             MdiInfo[WndNum].pmti->StartCaretPos=MdiInfo[WndNum].pmti->EndCaretPos;
     596                        if(MdiInfo[WndNum].pMdiTextEdit->StartCaretPos.x<MdiInfo[WndNum].pMdiTextEdit->EndCaretPos.x)
     597                            MdiInfo[WndNum].pMdiTextEdit->StartCaretPos=MdiInfo[WndNum].pMdiTextEdit->EndCaretPos;
    598598                        else
    599                             MdiInfo[WndNum].pmti->EndCaretPos=MdiInfo[WndNum].pmti->StartCaretPos;
     599                            MdiInfo[WndNum].pMdiTextEdit->EndCaretPos=MdiInfo[WndNum].pMdiTextEdit->StartCaretPos;
    600600                    }
    601601
    602602                    GetNaturalCaretPos_Down(WndNum,
    603                         &MdiInfo[WndNum].pmti->StartCaretPos);
     603                        &MdiInfo[WndNum].pMdiTextEdit->StartCaretPos);
    604604                }
    605605
    606606                if(GetKeyState(VK_CONTROL)&0x8000){
    607                     if(i2!=MdiInfo[WndNum].pmti->StartCaretPos.y){
     607                    if(i2!=MdiInfo[WndNum].pMdiTextEdit->StartCaretPos.y){
    608608                        //行の先頭へキャレットを移動
    609                         MdiInfo[WndNum].pmti->StartCaretPos.x=0;
     609                        MdiInfo[WndNum].pMdiTextEdit->StartCaretPos.x=0;
    610610                    }
    611611                    else{
     
    613613                        CaretPos_LooseToNatural(WndNum,
    614614                            INT_MAX,
    615                             MdiInfo[WndNum].pmti->StartCaretPos.y,
    616                             &MdiInfo[WndNum].pmti->StartCaretPos);
     615                            MdiInfo[WndNum].pMdiTextEdit->StartCaretPos.y,
     616                            &MdiInfo[WndNum].pMdiTextEdit->StartCaretPos);
    617617                    }
    618618
    619619                    //上下キャレット移動時の左右位置保持機能を解除
    620                     MdiInfo[WndNum].pmti->Temp_UpDown_CaretXPos=-1;
     620                    MdiInfo[WndNum].pMdiTextEdit->Temp_UpDown_CaretXPos=-1;
    621621                }
    622622                break;
    623623            case VK_PRIOR:
    624624                GetNaturalCaretPos_PageUp(WndNum,
    625                     &MdiInfo[WndNum].pmti->StartCaretPos);
     625                    &MdiInfo[WndNum].pMdiTextEdit->StartCaretPos);
    626626                break;
    627627            case VK_NEXT:
    628628                GetNaturalCaretPos_PageDown(WndNum,
    629                     &MdiInfo[WndNum].pmti->StartCaretPos);
     629                    &MdiInfo[WndNum].pMdiTextEdit->StartCaretPos);
    630630                break;
    631631        }
     
    633633        if(!(GetKeyState(VK_SHIFT)&0x8000)){
    634634            //シフトキーが押されていない、通常時
    635             MdiInfo[WndNum].pmti->EndCaretPos=MdiInfo[WndNum].pmti->StartCaretPos;
     635            MdiInfo[WndNum].pMdiTextEdit->EndCaretPos=MdiInfo[WndNum].pMdiTextEdit->StartCaretPos;
    636636        }
    637637
     
    660660
    661661        //上下キャレット移動時の左右位置保持機能を解除
    662         MdiInfo[WndNum].pmti->Temp_UpDown_CaretXPos=-1;
     662        MdiInfo[WndNum].pMdiTextEdit->Temp_UpDown_CaretXPos=-1;
    663663
    664664        if(GetKeyState(VK_CONTROL)&0x8000){
    665665            //ファイルの先頭または末端へキャレットを移動
    666666            if(nVirtualKey==VK_HOME){
    667                 MdiInfo[WndNum].pmti->StartCaretPos.x=0;
    668                 MdiInfo[WndNum].pmti->StartCaretPos.y=0;
     667                MdiInfo[WndNum].pMdiTextEdit->StartCaretPos.x=0;
     668                MdiInfo[WndNum].pMdiTextEdit->StartCaretPos.y=0;
    669669            }
    670670            else if(nVirtualKey==VK_END){
     
    673673                    INT_MAX,
    674674                    INT_MAX,
    675                     &MdiInfo[WndNum].pmti->StartCaretPos);
     675                    &MdiInfo[WndNum].pMdiTextEdit->StartCaretPos);
    676676            }
    677677        }
    678678        else{
    679679            //行の先頭または末端へキャレットを移動
    680             if(nVirtualKey==VK_HOME) MdiInfo[WndNum].pmti->StartCaretPos.x=0;
     680            if(nVirtualKey==VK_HOME) MdiInfo[WndNum].pMdiTextEdit->StartCaretPos.x=0;
    681681            else if(nVirtualKey==VK_END){
    682682                //存在するキャレット位置に変換
    683683                CaretPos_LooseToNatural(WndNum,
    684684                    INT_MAX,
    685                     MdiInfo[WndNum].pmti->StartCaretPos.y,
    686                     &MdiInfo[WndNum].pmti->StartCaretPos);
     685                    MdiInfo[WndNum].pMdiTextEdit->StartCaretPos.y,
     686                    &MdiInfo[WndNum].pMdiTextEdit->StartCaretPos);
    687687            }
    688688        }
     
    690690        if(!(GetKeyState(VK_SHIFT)&0x8000)){
    691691            //シフトキーが押されていない、通常時
    692             MdiInfo[WndNum].pmti->EndCaretPos=MdiInfo[WndNum].pmti->StartCaretPos;
     692            MdiInfo[WndNum].pMdiTextEdit->EndCaretPos=MdiInfo[WndNum].pMdiTextEdit->StartCaretPos;
    693693        }
    694694
     
    709709        TextEdit_GetSel(WndNum,&CharRange);
    710710
    711         pBuf=MdiInfo[WndNum].pmti->buffer;
     711        pBuf=MdiInfo[WndNum].pMdiTextEdit->buffer;
    712712
    713713        //キャレットがファイルの終端にあるとき
     
    731731
    732732            GetCaretPosFromBufferIndex(
    733                 MdiInfo[WndNum].pmti->buffer,
     733                MdiInfo[WndNum].pMdiTextEdit->buffer,
    734734                CharRange.cpMax,
    735                 &MdiInfo[WndNum].pmti->EndCaretPos);
     735                &MdiInfo[WndNum].pMdiTextEdit->EndCaretPos);
    736736        }
    737737
     
    753753
    754754                i=GetBufferIndexFromCaretPos(
    755                     MdiInfo[WndNum].pmti->buffer,
    756                     MdiInfo[WndNum].pmti->StartCaretPos.x,
    757                     MdiInfo[WndNum].pmti->StartCaretPos.y);
     755                    MdiInfo[WndNum].pMdiTextEdit->buffer,
     756                    MdiInfo[WndNum].pMdiTextEdit->StartCaretPos.x,
     757                    MdiInfo[WndNum].pMdiTextEdit->StartCaretPos.y);
    758758                GetCaretPosFromBufferIndex(
    759                     MdiInfo[WndNum].pmti->buffer,
     759                    MdiInfo[WndNum].pMdiTextEdit->buffer,
    760760                    i-1,
    761                     &MdiInfo[WndNum].pmti->StartCaretPos);
     761                    &MdiInfo[WndNum].pMdiTextEdit->StartCaretPos);
    762762                TextEdit_Replace(WndNum,"",1);
    763763            }
     
    789789
    790790    char *pBuf;
    791     pBuf=MdiInfo[WndNum].pmti->buffer;
     791    pBuf=MdiInfo[WndNum].pMdiTextEdit->buffer;
    792792
    793793
     
    823823
    824824        i=GetBufferIndexFromCaretPos(pBuf,
    825             MdiInfo[WndNum].pmti->StartCaretPos.x,
    826             MdiInfo[WndNum].pmti->StartCaretPos.y);
     825            MdiInfo[WndNum].pMdiTextEdit->StartCaretPos.x,
     826            MdiInfo[WndNum].pMdiTextEdit->StartCaretPos.y);
    827827
    828828        i2=i-2;
     
    961961
    962962    char *pBuf;
    963     pBuf=MdiInfo[WndNum].pmti->buffer;
     963    pBuf=MdiInfo[WndNum].pMdiTextEdit->buffer;
    964964
    965965
     
    972972 
    973973        i=GetBufferIndexFromCaretPos(pBuf,
    974             MdiInfo[WndNum].pmti->StartCaretPos.x,
    975             MdiInfo[WndNum].pmti->StartCaretPos.y);
     974            MdiInfo[WndNum].pMdiTextEdit->StartCaretPos.x,
     975            MdiInfo[WndNum].pMdiTextEdit->StartCaretPos.y);
    976976
    977977        if(GetNowTagInfo(pBuf,i-1)){
  • ProjectEditor/TextEditor_MouseEvent.cpp

    r3 r24  
    1010    if((GetKeyState(VK_CONTROL)&0x8000)&&pobj_nv->bCtrlKeyHyperLink){
    1111        //Ctrlキーが押されているとき
    12         if(MdiInfo[WndNum].pmti->iUnderStart!=-1){
     12        if(MdiInfo[WndNum].pMdiTextEdit->iUnderStart!=-1){
    1313            //単語が選択可能なとき
    1414
    1515            //半角文字列を選択時の全角とのズレを修正
    1616            int start,end;
    17             start=MdiInfo[WndNum].pmti->iUnderStart;
    18             end=MdiInfo[WndNum].pmti->iUnderEnd;
    19             GetCaretPosFromBufferIndex(MdiInfo[WndNum].pmti->buffer,start,&pos);
    20             start=GetBufferIndexFromCaretPos(MdiInfo[WndNum].pmti->buffer,pos.x,pos.y);
    21             GetCaretPosFromBufferIndex(MdiInfo[WndNum].pmti->buffer,end,&pos);
    22             end=GetBufferIndexFromCaretPos(MdiInfo[WndNum].pmti->buffer,pos.x,pos.y);
     17            start=MdiInfo[WndNum].pMdiTextEdit->iUnderStart;
     18            end=MdiInfo[WndNum].pMdiTextEdit->iUnderEnd;
     19            GetCaretPosFromBufferIndex(MdiInfo[WndNum].pMdiTextEdit->buffer,start,&pos);
     20            start=GetBufferIndexFromCaretPos(MdiInfo[WndNum].pMdiTextEdit->buffer,pos.x,pos.y);
     21            GetCaretPosFromBufferIndex(MdiInfo[WndNum].pMdiTextEdit->buffer,end,&pos);
     22            end=GetBufferIndexFromCaretPos(MdiInfo[WndNum].pMdiTextEdit->buffer,pos.x,pos.y);
    2323
    2424            int length;
     
    3030            memcpy(
    3131                pTemp,
    32                 MdiInfo[WndNum].pmti->buffer+start,
     32                MdiInfo[WndNum].pMdiTextEdit->buffer+start,
    3333                length);
    3434            pTemp[length]=0;
     
    5151
    5252    int iControlTabSpace;
    53     iControlTabSpace=MdiInfo[WndNum].pmti->iWidth_ControlTabSpace;
     53    iControlTabSpace=MdiInfo[WndNum].pMdiTextEdit->iWidth_ControlTabSpace;
    5454
    5555    if(MdiInfo[WndNum].IndentStr){
     
    5858    }
    5959
    60     MdiInfo[WndNum].pmti->bAutoScroll=0;
     60    MdiInfo[WndNum].pMdiTextEdit->bAutoScroll=0;
    6161
    6262    //上下キャレット移動時の左右位置保持機能を解除
    63     MdiInfo[WndNum].pmti->Temp_UpDown_CaretXPos=-1;
     63    MdiInfo[WndNum].pMdiTextEdit->Temp_UpDown_CaretXPos=-1;
    6464
    6565    if(0<=(pMousePos->x) && (pMousePos->x)<iControlTabSpace){
     
    7272            0,
    7373            pMousePos->y,
    74             &MdiInfo[WndNum].pmti->StartCaretPos);
    75         MdiInfo[WndNum].pmti->EndCaretPos=MdiInfo[WndNum].pmti->StartCaretPos;
     74            &MdiInfo[WndNum].pMdiTextEdit->StartCaretPos);
     75        MdiInfo[WndNum].pMdiTextEdit->EndCaretPos=MdiInfo[WndNum].pMdiTextEdit->StartCaretPos;
    7676
    7777        ////////////
     
    8080
    8181        char *pBuf;
    82         pBuf=MdiInfo[WndNum].pmti->buffer;
     82        pBuf=MdiInfo[WndNum].pMdiTextEdit->buffer;
    8383        CHARRANGE CharRange;
    8484        TextEdit_GetSel(WndNum,&CharRange);
     
    9999            pMousePos->x-iControlTabSpace,
    100100            pMousePos->y,
    101             &MdiInfo[WndNum].pmti->StartCaretPos);
     101            &MdiInfo[WndNum].pMdiTextEdit->StartCaretPos);
    102102
    103103        if(!(GetKeyState(VK_SHIFT)&0x8000)){
    104104            //シフトキーが押されていない、通常時
    105             MdiInfo[WndNum].pmti->EndCaretPos=MdiInfo[WndNum].pmti->StartCaretPos;
     105            MdiInfo[WndNum].pMdiTextEdit->EndCaretPos=MdiInfo[WndNum].pMdiTextEdit->StartCaretPos;
    106106        }
    107107
     
    121121
    122122    int iControlTabSpace;
    123     iControlTabSpace=MdiInfo[WndNum].pmti->iWidth_ControlTabSpace;
     123    iControlTabSpace=MdiInfo[WndNum].pMdiTextEdit->iWidth_ControlTabSpace;
    124124
    125125    if(0<=(pMousePos->x) && (pMousePos->x)<iControlTabSpace){
     
    138138
    139139        //オートスクロールスレッドを停止
    140         MdiInfo[WndNum].pmti->bAutoScroll=0;
     140        MdiInfo[WndNum].pMdiTextEdit->bAutoScroll=0;
    141141
    142142        //編集メニューをリセット
     
    159159    //エディタ画面左端のコントロールタブ
    160160    int iControlTabSpace;
    161     iControlTabSpace=MdiInfo[WndNum].pmti->iWidth_ControlTabSpace;
    162 
    163 
    164     while(MdiInfo[WndNum].pmti->bAutoScroll){
     161    iControlTabSpace=MdiInfo[WndNum].pMdiTextEdit->iWidth_ControlTabSpace;
     162
     163
     164    while(MdiInfo[WndNum].pMdiTextEdit->bAutoScroll){
    165165        GetCursorPos(&pos);
    166166        ScreenToClient(hwnd,&pos);
     
    175175            pos.x,
    176176            pos.y,
    177             &MdiInfo[WndNum].pmti->StartCaretPos);
     177            &MdiInfo[WndNum].pMdiTextEdit->StartCaretPos);
    178178
    179179        if(!TextEdit_ScrollCaret(WndNum,1))
     
    194194
    195195    int iControlTabSpace;
    196     iControlTabSpace=MdiInfo[WndNum].pmti->iWidth_ControlTabSpace;
     196    iControlTabSpace=MdiInfo[WndNum].pMdiTextEdit->iWidth_ControlTabSpace;
    197197
    198198    if(GetCapture()==hwnd){
     
    214214            ////////////////////////////
    215215
    216             if(MdiInfo[WndNum].pmti->bAutoScroll){
     216            if(MdiInfo[WndNum].pMdiTextEdit->bAutoScroll){
    217217                //すでにオートスクロールスレッドが作動中のときは抜け出す
    218218                return;
     
    220220
    221221            //オートスクロールスレッドを起動
    222             MdiInfo[WndNum].pmti->bAutoScroll=1;
     222            MdiInfo[WndNum].pMdiTextEdit->bAutoScroll=1;
    223223
    224224            _beginthread((void (__cdecl *)(void *))AutoScrollThread,0,(void *)hwnd);
     
    226226            return;
    227227        }
    228         else if(MdiInfo[WndNum].pmti->bAutoScroll){
     228        else if(MdiInfo[WndNum].pMdiTextEdit->bAutoScroll){
    229229            //オートスクロールを解除
    230             MdiInfo[WndNum].pmti->bAutoScroll=0;
     230            MdiInfo[WndNum].pMdiTextEdit->bAutoScroll=0;
    231231        }
    232232
     
    242242            &pos);
    243243
    244         if(pos.x!=MdiInfo[WndNum].pmti->StartCaretPos.x||pos.y!=MdiInfo[WndNum].pmti->StartCaretPos.y){
    245             MdiInfo[WndNum].pmti->StartCaretPos=pos;
     244        if(pos.x!=MdiInfo[WndNum].pMdiTextEdit->StartCaretPos.x||pos.y!=MdiInfo[WndNum].pMdiTextEdit->StartCaretPos.y){
     245            MdiInfo[WndNum].pMdiTextEdit->StartCaretPos=pos;
    246246
    247247            InvalidateRect(hwnd,NULL,0);
     
    270270
    271271                TextEdit_GetWordCaret(
    272                     MdiInfo[WndNum].pmti->hEdit,
     272                    MdiInfo[WndNum].pMdiTextEdit->hEdit,
    273273                    WndNum,
    274274                    &pos,
    275                     &MdiInfo[WndNum].pmti->iUnderStart,&MdiInfo[WndNum].pmti->iUnderEnd,
     275                    &MdiInfo[WndNum].pMdiTextEdit->iUnderStart,&MdiInfo[WndNum].pMdiTextEdit->iUnderEnd,
    276276                    WORDCARET_AFTER);
    277277
     
    282282            }
    283283            else{
    284                 if(MdiInfo[WndNum].pmti->iUnderStart!=-1){
    285                     MdiInfo[WndNum].pmti->iUnderStart=-1;
    286                     MdiInfo[WndNum].pmti->iUnderEnd=-1;
     284                if(MdiInfo[WndNum].pMdiTextEdit->iUnderStart!=-1){
     285                    MdiInfo[WndNum].pMdiTextEdit->iUnderStart=-1;
     286                    MdiInfo[WndNum].pMdiTextEdit->iUnderEnd=-1;
    287287
    288288                    InvalidateRect(hwnd,NULL,0);
     
    300300
    301301    int start,end;
    302     TextEdit_GetWordCaret(hwnd,WndNum,&MdiInfo[WndNum].pmti->StartCaretPos,&start,&end,WORDCARET_AFTER);
     302    TextEdit_GetWordCaret(hwnd,WndNum,&MdiInfo[WndNum].pMdiTextEdit->StartCaretPos,&start,&end,WORDCARET_AFTER);
    303303
    304304    //セレクト
     
    314314
    315315    int iControlTabSpace;
    316     iControlTabSpace=MdiInfo[WndNum].pmti->iWidth_ControlTabSpace;
     316    iControlTabSpace=MdiInfo[WndNum].pMdiTextEdit->iWidth_ControlTabSpace;
    317317
    318318    if(0<=(pMousePos->x) && (pMousePos->x)<iControlTabSpace){
  • ProjectEditor/TextEditor_UndoRedo.cpp

    r3 r24  
    99    if(MdiInfo[WndNum].IndentStr) CancelBeforeAutoIndent(WndNum);
    1010
    11     pUndoState=MdiInfo[WndNum].edit_undo;
     11    pUndoState=MdiInfo[WndNum].pMdiTextEdit->pTextEditUndoState;
    1212    i=pUndoState->NowPos-1;
    1313    if(i==-1) i=MAX_UNDONUM-1;
     
    1919
    2020    //選択範囲をセット
    21     GetCaretPosFromBufferIndex(MdiInfo[WndNum].pmti->buffer,
     21    GetCaretPosFromBufferIndex(MdiInfo[WndNum].pMdiTextEdit->buffer,
    2222        pUndoState->Range[pUndoState->NowPos].cpMin,
    23         &MdiInfo[WndNum].pmti->StartCaretPos);
    24     GetCaretPosFromBufferIndex(MdiInfo[WndNum].pmti->buffer,
     23        &MdiInfo[WndNum].pMdiTextEdit->StartCaretPos);
     24    GetCaretPosFromBufferIndex(MdiInfo[WndNum].pMdiTextEdit->buffer,
    2525        pUndoState->Range[pUndoState->NowPos].cpMax,
    26         &MdiInfo[WndNum].pmti->EndCaretPos);
     26        &MdiInfo[WndNum].pMdiTextEdit->EndCaretPos);
    2727
    2828    switch(pUndoState->Command[pUndoState->NowPos]){
     
    4141    //元に戻す、やり直しメニューをリセット
    4242    ResetState_UndoMenu();
     43
     44    //変更を通知
     45    MdiInfo[WndNum].pMdiTextEdit->NofityUndoRedoToModify();
    4346}
    4447void TextEdit_RedoCommand(int WndNum){
     
    4649    TEXTEDIT_UNDOSTATE *pUndoState;
    4750
    48     pUndoState=MdiInfo[WndNum].edit_undo;
     51    pUndoState=MdiInfo[WndNum].pMdiTextEdit->pTextEditUndoState;
    4952    if(!pUndoState->Command[pUndoState->NowPos]){
    5053        MessageBeep(0);
     
    5659        case TEXTEDIT_UNDO_PASTE:
    5760            //選択範囲をセット
    58             GetCaretPosFromBufferIndex(MdiInfo[WndNum].pmti->buffer,
     61            GetCaretPosFromBufferIndex(MdiInfo[WndNum].pMdiTextEdit->buffer,
    5962                pUndoState->Range[pUndoState->NowPos].cpMin,
    60                 &MdiInfo[WndNum].pmti->StartCaretPos);
    61             GetCaretPosFromBufferIndex(MdiInfo[WndNum].pmti->buffer,
     63                &MdiInfo[WndNum].pMdiTextEdit->StartCaretPos);
     64            GetCaretPosFromBufferIndex(MdiInfo[WndNum].pMdiTextEdit->buffer,
    6265                pUndoState->Range[pUndoState->NowPos].cpMin,
    63                 &MdiInfo[WndNum].pmti->EndCaretPos);
     66                &MdiInfo[WndNum].pMdiTextEdit->EndCaretPos);
    6467
    6568            TextEdit_Replace(WndNum,pUndoState->KeyStr[pUndoState->NowPos],1);
     
    6770        case TEXTEDIT_UNDO_SELKEY:
    6871            //選択範囲をセット
    69             GetCaretPosFromBufferIndex(MdiInfo[WndNum].pmti->buffer,
     72            GetCaretPosFromBufferIndex(MdiInfo[WndNum].pMdiTextEdit->buffer,
    7073                pUndoState->DelRange[pUndoState->NowPos].cpMin,
    71                 &MdiInfo[WndNum].pmti->StartCaretPos);
    72             GetCaretPosFromBufferIndex(MdiInfo[WndNum].pmti->buffer,
     74                &MdiInfo[WndNum].pMdiTextEdit->StartCaretPos);
     75            GetCaretPosFromBufferIndex(MdiInfo[WndNum].pMdiTextEdit->buffer,
    7376                pUndoState->DelRange[pUndoState->NowPos].cpMax,
    74                 &MdiInfo[WndNum].pmti->EndCaretPos);
     77                &MdiInfo[WndNum].pMdiTextEdit->EndCaretPos);
    7578
    7679            TextEdit_Replace(WndNum,pUndoState->KeyStr[pUndoState->NowPos],1);
     
    8689    //元に戻す、やり直しメニューをリセット
    8790    ResetState_UndoMenu();
     91
     92    //変更を通知
     93    MdiInfo[WndNum].pMdiTextEdit->NofityUndoRedoToModify();
    8894}
    8995
     
    102108    TEXTEDIT_UNDOSTATE *pUndoState;
    103109
    104     pUndoState=MdiInfo[WndNum].edit_undo;
     110    pUndoState=MdiInfo[WndNum].pMdiTextEdit->pTextEditUndoState;
    105111
    106112    //Redoされた場合の不要なデータを削除する
     
    108114        if(i==MAX_UNDONUM) i=0;
    109115        if(pUndoState->Command[i]==0) break;
    110         TextEdit_DeleteUndoData(WndNum,i);
     116        TextEdit_DeleteUndoData(pUndoState,i);
    111117    }
    112118
     
    141147    if(pUndoState->Command[pUndoState->NowPos]){
    142148        //一番古い情報を切り捨てる
    143         TextEdit_DeleteUndoData(WndNum,pUndoState->NowPos);
     149        TextEdit_DeleteUndoData(pUndoState,pUndoState->NowPos);
    144150    }
    145151
     
    148154}
    149155
    150 void TextEdit_DeleteUndoData(int WndNum,int pos){
    151     extern MDIINFO MdiInfo[MAX_WNDNUM];
    152     TEXTEDIT_UNDOSTATE *pUndoState;
    153 
    154     pUndoState=MdiInfo[WndNum].edit_undo;
     156void TextEdit_DeleteUndoData(TEXTEDIT_UNDOSTATE *pUndoState,int pos){
    155157    if(pUndoState->KeyStr[pos]) HeapDefaultFree(pUndoState->KeyStr[pos]);
    156158    if(pUndoState->DelStr[pos]) HeapDefaultFree(pUndoState->DelStr[pos]);
  • ProjectEditor/WebSearch.cpp

    r3 r24  
    321321    iWindowWidth=size.cx+20;
    322322
    323     if(MdiInfo[WndNum].pmti==0) return;
    324     hTabWnd=(HWND)SendMessage(MdiInfo[WndNum].pmti->hEdit,WM_SEARCH_TAB_CREATE,(WPARAM)WndNum,(LPARAM)this);
     323    if(MdiInfo[WndNum].pMdiTextEdit==0) return;
     324    hTabWnd=(HWND)SendMessage(MdiInfo[WndNum].pMdiTextEdit->hEdit,WM_SEARCH_TAB_CREATE,(WPARAM)WndNum,(LPARAM)this);
    325325}
    326326COneTab::~COneTab(){
     
    333333    }
    334334
    335     if(MdiInfo[m_WndNum].pmti)
    336         SendMessage(MdiInfo[m_WndNum].pmti->hEdit,WM_SEARCH_TAB_CLOSE,0,(LPARAM)hTabWnd);
     335    if(MdiInfo[m_WndNum].pMdiTextEdit)
     336        SendMessage(MdiInfo[m_WndNum].pMdiTextEdit->hEdit,WM_SEARCH_TAB_CLOSE,0,(LPARAM)hTabWnd);
    337337}
    338338
     
    483483    COneTab *pobj_temp_OneTab;
    484484    pobj_temp_OneTab=new COneTab(WndNum,lpszSearchText);
    485     if(MdiInfo[WndNum].pmti==0){
     485    if(MdiInfo[WndNum].pMdiTextEdit==0){
    486486        delete pobj_temp_OneTab;
    487487        return;
     
    577577        goto exit;
    578578    }
    579     if(MdiInfo[WndNum].pmti==0){
     579    if(MdiInfo[WndNum].pMdiTextEdit==0){
    580580        goto exit;
    581581    }
    582582
    583583    //重複チェック
    584     if(MdiInfo[WndNum].pmti->pobj_WebResult->DuplicateCheck(str)){
     584    if(MdiInfo[WndNum].pMdiTextEdit->pobj_WebResult->DuplicateCheck(str)){
    585585        goto exit;
    586586    }
     
    589589
    590590    extern MDIINFO MdiInfo[MAX_WNDNUM];
    591     MdiInfo[WndNum].pmti->pobj_WebResult->add(WndNum,str);
     591    MdiInfo[WndNum].pMdiTextEdit->pobj_WebResult->add(WndNum,str);
    592592
    593593exit:
  • ProjectEditor/nkf_class.cpp

    r3 r24  
    174174            SendMessage(hList,LB_ADDSTRING,0,(long)"JIS");
    175175            SendMessage(hList,LB_ADDSTRING,0,(long)"UTF-8");
    176             SendMessage(hList,LB_SETCURSEL,MdiInfo[WndNum].pmti->iCharCode,0);
     176            SendMessage(hList,LB_SETCURSEL,MdiInfo[WndNum].pMdiTextEdit->iCharCode,0);
    177177
    178178            hList=GetDlgItem(hwnd,IDC_LIST_LFCODE);
     
    180180            SendMessage(hList,LB_ADDSTRING,0,(long)"LF(Unix)");
    181181            SendMessage(hList,LB_ADDSTRING,0,(long)"CR(Macintosh)");
    182             SendMessage(hList,LB_SETCURSEL,MdiInfo[WndNum].pmti->iLfCode,0);
     182            SendMessage(hList,LB_SETCURSEL,MdiInfo[WndNum].pMdiTextEdit->iLfCode,0);
    183183            break;
    184184        case WM_COMMAND:
     
    186186                case IDOK:
    187187                    //文字コードを取得
    188                     MdiInfo[WndNum].pmti->iCharCode=
     188                    MdiInfo[WndNum].pMdiTextEdit->iCharCode=
    189189                        (int)SendDlgItemMessage(hwnd,IDC_LIST_CHARCODE,LB_GETCURSEL,0,0);
    190190
    191191                    //改行コードを取得
    192                     MdiInfo[WndNum].pmti->iLfCode=
     192                    MdiInfo[WndNum].pMdiTextEdit->iLfCode=
    193193                        (int)SendDlgItemMessage(hwnd,IDC_LIST_LFCODE,LB_GETCURSEL,0,0);
    194194
  • ProjectEditor/rebar.cpp

    r3 r24  
    290290
    291291#ifdef THETEXT
    292     //ファイル選択コンボボックス
    293     psr[num].RebarID=ID_DOCCOMBO;
    294     psr[num].RebarLength=150;
    295     psr[num].IsBandBreak=0;
    296     num++;
    297292
    298293    //スタンダードツールバー
     
    308303    num++;
    309304#else
    310     //ファイル選択コンボボックス
    311     psr[num].RebarID=ID_DOCCOMBO;
    312     psr[num].RebarLength=150;
    313     psr[num].IsBandBreak=0;
    314     num++;
    315305
    316306    //スタンダードツールバー
Note: See TracChangeset for help on using the changeset viewer.