Changeset 629 in dev for trunk/ab5.0/abdev/abdev/TextEditor_KeyEvent.cpp
- Timestamp:
- Jun 2, 2008, 11:50:24 PM (15 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/ab5.0/abdev/abdev/TextEditor_KeyEvent.cpp
r625 r629 14 14 WndNum=GetWndNum(GetParent(hwnd)); 15 15 16 if(MdiInfo[WndNum] .pMdiTextEdit->iUnderStart!=-1){16 if(MdiInfo[WndNum]->pMdiTextEdit->iUnderStart!=-1){ 17 17 //ハイパーリンク下線の表示を解除 18 MdiInfo[WndNum] .pMdiTextEdit->iUnderStart=-1;19 MdiInfo[WndNum] .pMdiTextEdit->iUnderEnd=-1;18 MdiInfo[WndNum]->pMdiTextEdit->iUnderStart=-1; 19 MdiInfo[WndNum]->pMdiTextEdit->iUnderEnd=-1; 20 20 21 21 //再描画 … … 159 159 char *pBuf; 160 160 161 pBuf=MdiInfo[WndNum] .pMdiTextEdit->buffer;161 pBuf=MdiInfo[WndNum]->pMdiTextEdit->buffer; 162 162 for(i=iPos;i>0;i--){ 163 163 if(pBuf[i-1]=='\r'&&pBuf[i]=='\n') return i+1; … … 242 242 hide_caret_switch=1; 243 243 244 if(MdiInfo[WndNum] .IndentStr){244 if(MdiInfo[WndNum]->IndentStr){ 245 245 //以前の自動インデントを消去する 246 246 CancelBeforeAutoIndent(WndNum); 247 247 } 248 248 249 pBuf=MdiInfo[WndNum] .pMdiTextEdit->buffer;249 pBuf=MdiInfo[WndNum]->pMdiTextEdit->buffer; 250 250 251 251 int StartX; … … 253 253 //リプレイス前のカーソルバッファ位置を取得 254 254 i=GetBufferIndexFromCaretPos(pBuf, 255 MdiInfo[WndNum] .pMdiTextEdit->StartCaretPos.x,256 MdiInfo[WndNum] .pMdiTextEdit->StartCaretPos.y);257 StartX=MdiInfo[WndNum] .pMdiTextEdit->StartCaretPos.x;255 MdiInfo[WndNum]->pMdiTextEdit->StartCaretPos.x, 256 MdiInfo[WndNum]->pMdiTextEdit->StartCaretPos.y); 257 StartX=MdiInfo[WndNum]->pMdiTextEdit->StartCaretPos.x; 258 258 259 259 //リプレイス 260 260 TextEdit_ReplaceUpdateUndoData(WndNum,temporary,0,1); 261 pBuf=MdiInfo[WndNum] .pMdiTextEdit->buffer;261 pBuf=MdiInfo[WndNum]->pMdiTextEdit->buffer; 262 262 263 263 //リプレイス後のカーソル行のインデントをi3に取得 … … 281 281 } 282 282 283 if(MdiInfo[WndNum] .DocType==WNDTYPE_BASIC){283 if(MdiInfo[WndNum]->DocType==WNDTYPE_BASIC){ 284 284 //インデント追加のコマンドかどうかを判断 285 285 if(IsIndentAdditionCommand_FromBuffer(pBuf+i+i2)) i2++; … … 302 302 */ 303 303 i=GetBufferIndexFromCaretPos(pBuf, 304 MdiInfo[WndNum] .pMdiTextEdit->StartCaretPos.x,305 MdiInfo[WndNum] .pMdiTextEdit->StartCaretPos.y);304 MdiInfo[WndNum]->pMdiTextEdit->StartCaretPos.x, 305 MdiInfo[WndNum]->pMdiTextEdit->StartCaretPos.y); 306 306 if(pBuf[i]=='\r'&& 307 307 pBuf[i+1]=='\n'){ 308 308 //自動インデントを開始する(「\t\tⅠ」のような場合) 309 MdiInfo[WndNum] .IndentStr=(char *)HeapAlloc(hHeap,0,i2+1);310 memset(MdiInfo[WndNum] .IndentStr,'\t',i2);311 MdiInfo[WndNum] .IndentStr[i2]=0;312 TextEdit_Replace(WndNum,MdiInfo[WndNum] .IndentStr,1);309 MdiInfo[WndNum]->IndentStr=(char *)HeapAlloc(hHeap,0,i2+1); 310 memset(MdiInfo[WndNum]->IndentStr,'\t',i2); 311 MdiInfo[WndNum]->IndentStr[i2]=0; 312 TextEdit_Replace(WndNum,MdiInfo[WndNum]->IndentStr,1); 313 313 } 314 314 else{ … … 334 334 } 335 335 else if(nVirtualKey==VK_TAB){ 336 pBuf=MdiInfo[WndNum] .pMdiTextEdit->buffer;336 pBuf=MdiInfo[WndNum]->pMdiTextEdit->buffer; 337 337 338 338 TextEdit_GetSel(WndNum,&CharRange); … … 421 421 //リプレイス 422 422 TextEdit_ReplaceUpdateUndoData(WndNum,pTemp,0,0); 423 pBuf=MdiInfo[WndNum] .pMdiTextEdit->buffer;423 pBuf=MdiInfo[WndNum]->pMdiTextEdit->buffer; 424 424 425 425 HeapDefaultFree(pTemp); … … 474 474 //////////////////////////////////////////// 475 475 476 if(MdiInfo[WndNum] .DocType==WNDTYPE_BASIC)476 if(MdiInfo[WndNum]->DocType==WNDTYPE_BASIC) 477 477 TextEditEvent_StartAnalysis_Basic(hwnd,WndNum,nVirtualKey); 478 else if(MdiInfo[WndNum] .DocType==WNDTYPE_HTML){478 else if(MdiInfo[WndNum]->DocType==WNDTYPE_HTML){ 479 479 TextEditEvent_StartAnalysis_Html(hwnd,WndNum,nVirtualKey); 480 480 } … … 490 490 491 491 if(nVirtualKey==VK_LEFT||nVirtualKey==VK_UP||nVirtualKey==VK_RIGHT||nVirtualKey==VK_DOWN||nVirtualKey==VK_PRIOR||nVirtualKey==VK_NEXT){ 492 if(MdiInfo[WndNum] .IndentStr){492 if(MdiInfo[WndNum]->IndentStr){ 493 493 //自動インデント中のインデントを無効にする 494 494 CancelBeforeAutoIndent(WndNum); … … 508 508 case VK_LEFT: 509 509 //上下キャレット移動時の左右位置保持機能を解除 510 MdiInfo[WndNum] .pMdiTextEdit->Temp_UpDown_CaretXPos=-1;511 512 if((MdiInfo[WndNum] .pMdiTextEdit->StartCaretPos.x==MdiInfo[WndNum].pMdiTextEdit->EndCaretPos.x&&513 MdiInfo[WndNum] .pMdiTextEdit->StartCaretPos.y==MdiInfo[WndNum].pMdiTextEdit->EndCaretPos.y)||510 MdiInfo[WndNum]->pMdiTextEdit->Temp_UpDown_CaretXPos=-1; 511 512 if((MdiInfo[WndNum]->pMdiTextEdit->StartCaretPos.x==MdiInfo[WndNum]->pMdiTextEdit->EndCaretPos.x&& 513 MdiInfo[WndNum]->pMdiTextEdit->StartCaretPos.y==MdiInfo[WndNum]->pMdiTextEdit->EndCaretPos.y)|| 514 514 GetKeyState(VK_SHIFT)&0x8000){ 515 515 //選択中でないとき、またはシフトキーが押されているとき … … 518 518 else{ 519 519 //選択中のとき 520 if(MdiInfo[WndNum] .pMdiTextEdit->StartCaretPos.y<MdiInfo[WndNum].pMdiTextEdit->EndCaretPos.y)521 MdiInfo[WndNum] .pMdiTextEdit->EndCaretPos=MdiInfo[WndNum].pMdiTextEdit->StartCaretPos;522 else if(MdiInfo[WndNum] .pMdiTextEdit->StartCaretPos.y>MdiInfo[WndNum].pMdiTextEdit->EndCaretPos.y)523 MdiInfo[WndNum] .pMdiTextEdit->StartCaretPos=MdiInfo[WndNum].pMdiTextEdit->EndCaretPos;520 if(MdiInfo[WndNum]->pMdiTextEdit->StartCaretPos.y<MdiInfo[WndNum]->pMdiTextEdit->EndCaretPos.y) 521 MdiInfo[WndNum]->pMdiTextEdit->EndCaretPos=MdiInfo[WndNum]->pMdiTextEdit->StartCaretPos; 522 else if(MdiInfo[WndNum]->pMdiTextEdit->StartCaretPos.y>MdiInfo[WndNum]->pMdiTextEdit->EndCaretPos.y) 523 MdiInfo[WndNum]->pMdiTextEdit->StartCaretPos=MdiInfo[WndNum]->pMdiTextEdit->EndCaretPos; 524 524 else{ 525 if(MdiInfo[WndNum] .pMdiTextEdit->StartCaretPos.x<MdiInfo[WndNum].pMdiTextEdit->EndCaretPos.x)526 MdiInfo[WndNum] .pMdiTextEdit->EndCaretPos=MdiInfo[WndNum].pMdiTextEdit->StartCaretPos;525 if(MdiInfo[WndNum]->pMdiTextEdit->StartCaretPos.x<MdiInfo[WndNum]->pMdiTextEdit->EndCaretPos.x) 526 MdiInfo[WndNum]->pMdiTextEdit->EndCaretPos=MdiInfo[WndNum]->pMdiTextEdit->StartCaretPos; 527 527 else 528 MdiInfo[WndNum] .pMdiTextEdit->StartCaretPos=MdiInfo[WndNum].pMdiTextEdit->EndCaretPos;528 MdiInfo[WndNum]->pMdiTextEdit->StartCaretPos=MdiInfo[WndNum]->pMdiTextEdit->EndCaretPos; 529 529 } 530 530 } … … 532 532 case VK_RIGHT: 533 533 //上下キャレット移動時の左右位置保持機能を解除 534 MdiInfo[WndNum] .pMdiTextEdit->Temp_UpDown_CaretXPos=-1;535 536 if((MdiInfo[WndNum] .pMdiTextEdit->StartCaretPos.x==MdiInfo[WndNum].pMdiTextEdit->EndCaretPos.x&&537 MdiInfo[WndNum] .pMdiTextEdit->StartCaretPos.y==MdiInfo[WndNum].pMdiTextEdit->EndCaretPos.y)||534 MdiInfo[WndNum]->pMdiTextEdit->Temp_UpDown_CaretXPos=-1; 535 536 if((MdiInfo[WndNum]->pMdiTextEdit->StartCaretPos.x==MdiInfo[WndNum]->pMdiTextEdit->EndCaretPos.x&& 537 MdiInfo[WndNum]->pMdiTextEdit->StartCaretPos.y==MdiInfo[WndNum]->pMdiTextEdit->EndCaretPos.y)|| 538 538 GetKeyState(VK_SHIFT)&0x8000){ 539 539 //選択中でないとき、またはシフトキーが押されているとき 540 540 GetNaturalCaretPos_Right(WndNum, 541 &MdiInfo[WndNum] .pMdiTextEdit->StartCaretPos);541 &MdiInfo[WndNum]->pMdiTextEdit->StartCaretPos); 542 542 } 543 543 else{ 544 544 //選択中のとき 545 if(MdiInfo[WndNum] .pMdiTextEdit->StartCaretPos.y<MdiInfo[WndNum].pMdiTextEdit->EndCaretPos.y)546 MdiInfo[WndNum] .pMdiTextEdit->StartCaretPos=MdiInfo[WndNum].pMdiTextEdit->EndCaretPos;547 else if(MdiInfo[WndNum] .pMdiTextEdit->StartCaretPos.y>MdiInfo[WndNum].pMdiTextEdit->EndCaretPos.y)548 MdiInfo[WndNum] .pMdiTextEdit->EndCaretPos=MdiInfo[WndNum].pMdiTextEdit->StartCaretPos;545 if(MdiInfo[WndNum]->pMdiTextEdit->StartCaretPos.y<MdiInfo[WndNum]->pMdiTextEdit->EndCaretPos.y) 546 MdiInfo[WndNum]->pMdiTextEdit->StartCaretPos=MdiInfo[WndNum]->pMdiTextEdit->EndCaretPos; 547 else if(MdiInfo[WndNum]->pMdiTextEdit->StartCaretPos.y>MdiInfo[WndNum]->pMdiTextEdit->EndCaretPos.y) 548 MdiInfo[WndNum]->pMdiTextEdit->EndCaretPos=MdiInfo[WndNum]->pMdiTextEdit->StartCaretPos; 549 549 else{ 550 if(MdiInfo[WndNum] .pMdiTextEdit->StartCaretPos.x<MdiInfo[WndNum].pMdiTextEdit->EndCaretPos.x)551 MdiInfo[WndNum] .pMdiTextEdit->StartCaretPos=MdiInfo[WndNum].pMdiTextEdit->EndCaretPos;550 if(MdiInfo[WndNum]->pMdiTextEdit->StartCaretPos.x<MdiInfo[WndNum]->pMdiTextEdit->EndCaretPos.x) 551 MdiInfo[WndNum]->pMdiTextEdit->StartCaretPos=MdiInfo[WndNum]->pMdiTextEdit->EndCaretPos; 552 552 else 553 MdiInfo[WndNum] .pMdiTextEdit->EndCaretPos=MdiInfo[WndNum].pMdiTextEdit->StartCaretPos;553 MdiInfo[WndNum]->pMdiTextEdit->EndCaretPos=MdiInfo[WndNum]->pMdiTextEdit->StartCaretPos; 554 554 } 555 555 } … … 557 557 case VK_UP: 558 558 if((GetKeyState(VK_CONTROL)&0x8000)&& 559 MdiInfo[WndNum] .pMdiTextEdit->StartCaretPos.x!=0){559 MdiInfo[WndNum]->pMdiTextEdit->StartCaretPos.x!=0){ 560 560 //行の先頭へキャレットを移動 561 MdiInfo[WndNum] .pMdiTextEdit->StartCaretPos.x=0;561 MdiInfo[WndNum]->pMdiTextEdit->StartCaretPos.x=0; 562 562 563 563 //上下キャレット移動時の左右位置保持機能を解除 564 MdiInfo[WndNum] .pMdiTextEdit->Temp_UpDown_CaretXPos=-1;564 MdiInfo[WndNum]->pMdiTextEdit->Temp_UpDown_CaretXPos=-1; 565 565 } 566 566 else{ 567 if((MdiInfo[WndNum] .pMdiTextEdit->StartCaretPos.x==MdiInfo[WndNum].pMdiTextEdit->EndCaretPos.x&&568 MdiInfo[WndNum] .pMdiTextEdit->StartCaretPos.y==MdiInfo[WndNum].pMdiTextEdit->EndCaretPos.y)||567 if((MdiInfo[WndNum]->pMdiTextEdit->StartCaretPos.x==MdiInfo[WndNum]->pMdiTextEdit->EndCaretPos.x&& 568 MdiInfo[WndNum]->pMdiTextEdit->StartCaretPos.y==MdiInfo[WndNum]->pMdiTextEdit->EndCaretPos.y)|| 569 569 GetKeyState(VK_SHIFT)&0x8000){ 570 570 //選択中でないとき、またはシフトキーが押されているとき 571 571 GetNaturalCaretPos_Up(WndNum, 572 &MdiInfo[WndNum] .pMdiTextEdit->StartCaretPos);572 &MdiInfo[WndNum]->pMdiTextEdit->StartCaretPos); 573 573 } 574 574 else{ 575 575 //選択中のとき 576 if(MdiInfo[WndNum] .pMdiTextEdit->StartCaretPos.y<MdiInfo[WndNum].pMdiTextEdit->EndCaretPos.y)577 MdiInfo[WndNum] .pMdiTextEdit->EndCaretPos=MdiInfo[WndNum].pMdiTextEdit->StartCaretPos;578 else if(MdiInfo[WndNum] .pMdiTextEdit->StartCaretPos.y>MdiInfo[WndNum].pMdiTextEdit->EndCaretPos.y)579 MdiInfo[WndNum] .pMdiTextEdit->StartCaretPos=MdiInfo[WndNum].pMdiTextEdit->EndCaretPos;576 if(MdiInfo[WndNum]->pMdiTextEdit->StartCaretPos.y<MdiInfo[WndNum]->pMdiTextEdit->EndCaretPos.y) 577 MdiInfo[WndNum]->pMdiTextEdit->EndCaretPos=MdiInfo[WndNum]->pMdiTextEdit->StartCaretPos; 578 else if(MdiInfo[WndNum]->pMdiTextEdit->StartCaretPos.y>MdiInfo[WndNum]->pMdiTextEdit->EndCaretPos.y) 579 MdiInfo[WndNum]->pMdiTextEdit->StartCaretPos=MdiInfo[WndNum]->pMdiTextEdit->EndCaretPos; 580 580 else{ 581 if(MdiInfo[WndNum] .pMdiTextEdit->StartCaretPos.x<MdiInfo[WndNum].pMdiTextEdit->EndCaretPos.x)582 MdiInfo[WndNum] .pMdiTextEdit->EndCaretPos=MdiInfo[WndNum].pMdiTextEdit->StartCaretPos;581 if(MdiInfo[WndNum]->pMdiTextEdit->StartCaretPos.x<MdiInfo[WndNum]->pMdiTextEdit->EndCaretPos.x) 582 MdiInfo[WndNum]->pMdiTextEdit->EndCaretPos=MdiInfo[WndNum]->pMdiTextEdit->StartCaretPos; 583 583 else 584 MdiInfo[WndNum] .pMdiTextEdit->StartCaretPos=MdiInfo[WndNum].pMdiTextEdit->EndCaretPos;584 MdiInfo[WndNum]->pMdiTextEdit->StartCaretPos=MdiInfo[WndNum]->pMdiTextEdit->EndCaretPos; 585 585 } 586 586 587 587 GetNaturalCaretPos_Up(WndNum, 588 &MdiInfo[WndNum] .pMdiTextEdit->StartCaretPos);588 &MdiInfo[WndNum]->pMdiTextEdit->StartCaretPos); 589 589 } 590 590 } 591 591 break; 592 592 case VK_DOWN: 593 i2=MdiInfo[WndNum] .pMdiTextEdit->StartCaretPos.y;594 if((MdiInfo[WndNum] .pMdiTextEdit->StartCaretPos.x==MdiInfo[WndNum].pMdiTextEdit->EndCaretPos.x&&595 MdiInfo[WndNum] .pMdiTextEdit->StartCaretPos.y==MdiInfo[WndNum].pMdiTextEdit->EndCaretPos.y)||593 i2=MdiInfo[WndNum]->pMdiTextEdit->StartCaretPos.y; 594 if((MdiInfo[WndNum]->pMdiTextEdit->StartCaretPos.x==MdiInfo[WndNum]->pMdiTextEdit->EndCaretPos.x&& 595 MdiInfo[WndNum]->pMdiTextEdit->StartCaretPos.y==MdiInfo[WndNum]->pMdiTextEdit->EndCaretPos.y)|| 596 596 GetKeyState(VK_SHIFT)&0x8000){ 597 597 //選択中でないとき、またはシフトキーが押されているとき 598 598 GetNaturalCaretPos_Down(WndNum, 599 &MdiInfo[WndNum] .pMdiTextEdit->StartCaretPos);599 &MdiInfo[WndNum]->pMdiTextEdit->StartCaretPos); 600 600 } 601 601 else{ 602 602 //選択中のとき 603 if(MdiInfo[WndNum] .pMdiTextEdit->StartCaretPos.y<MdiInfo[WndNum].pMdiTextEdit->EndCaretPos.y)604 MdiInfo[WndNum] .pMdiTextEdit->StartCaretPos=MdiInfo[WndNum].pMdiTextEdit->EndCaretPos;605 else if(MdiInfo[WndNum] .pMdiTextEdit->StartCaretPos.y>MdiInfo[WndNum].pMdiTextEdit->EndCaretPos.y)606 MdiInfo[WndNum] .pMdiTextEdit->EndCaretPos=MdiInfo[WndNum].pMdiTextEdit->StartCaretPos;603 if(MdiInfo[WndNum]->pMdiTextEdit->StartCaretPos.y<MdiInfo[WndNum]->pMdiTextEdit->EndCaretPos.y) 604 MdiInfo[WndNum]->pMdiTextEdit->StartCaretPos=MdiInfo[WndNum]->pMdiTextEdit->EndCaretPos; 605 else if(MdiInfo[WndNum]->pMdiTextEdit->StartCaretPos.y>MdiInfo[WndNum]->pMdiTextEdit->EndCaretPos.y) 606 MdiInfo[WndNum]->pMdiTextEdit->EndCaretPos=MdiInfo[WndNum]->pMdiTextEdit->StartCaretPos; 607 607 else{ 608 if(MdiInfo[WndNum] .pMdiTextEdit->StartCaretPos.x<MdiInfo[WndNum].pMdiTextEdit->EndCaretPos.x)609 MdiInfo[WndNum] .pMdiTextEdit->StartCaretPos=MdiInfo[WndNum].pMdiTextEdit->EndCaretPos;608 if(MdiInfo[WndNum]->pMdiTextEdit->StartCaretPos.x<MdiInfo[WndNum]->pMdiTextEdit->EndCaretPos.x) 609 MdiInfo[WndNum]->pMdiTextEdit->StartCaretPos=MdiInfo[WndNum]->pMdiTextEdit->EndCaretPos; 610 610 else 611 MdiInfo[WndNum] .pMdiTextEdit->EndCaretPos=MdiInfo[WndNum].pMdiTextEdit->StartCaretPos;611 MdiInfo[WndNum]->pMdiTextEdit->EndCaretPos=MdiInfo[WndNum]->pMdiTextEdit->StartCaretPos; 612 612 } 613 613 614 614 GetNaturalCaretPos_Down(WndNum, 615 &MdiInfo[WndNum] .pMdiTextEdit->StartCaretPos);615 &MdiInfo[WndNum]->pMdiTextEdit->StartCaretPos); 616 616 } 617 617 618 618 if(GetKeyState(VK_CONTROL)&0x8000){ 619 if(i2!=MdiInfo[WndNum] .pMdiTextEdit->StartCaretPos.y){619 if(i2!=MdiInfo[WndNum]->pMdiTextEdit->StartCaretPos.y){ 620 620 //行の先頭へキャレットを移動 621 MdiInfo[WndNum] .pMdiTextEdit->StartCaretPos.x=0;621 MdiInfo[WndNum]->pMdiTextEdit->StartCaretPos.x=0; 622 622 } 623 623 else{ … … 625 625 CaretPos_LooseToNatural(WndNum, 626 626 INT_MAX, 627 MdiInfo[WndNum] .pMdiTextEdit->StartCaretPos.y,628 &MdiInfo[WndNum] .pMdiTextEdit->StartCaretPos);627 MdiInfo[WndNum]->pMdiTextEdit->StartCaretPos.y, 628 &MdiInfo[WndNum]->pMdiTextEdit->StartCaretPos); 629 629 } 630 630 631 631 //上下キャレット移動時の左右位置保持機能を解除 632 MdiInfo[WndNum] .pMdiTextEdit->Temp_UpDown_CaretXPos=-1;632 MdiInfo[WndNum]->pMdiTextEdit->Temp_UpDown_CaretXPos=-1; 633 633 } 634 634 break; 635 635 case VK_PRIOR: 636 636 GetNaturalCaretPos_PageUp(WndNum, 637 &MdiInfo[WndNum] .pMdiTextEdit->StartCaretPos);637 &MdiInfo[WndNum]->pMdiTextEdit->StartCaretPos); 638 638 break; 639 639 case VK_NEXT: 640 640 GetNaturalCaretPos_PageDown(WndNum, 641 &MdiInfo[WndNum] .pMdiTextEdit->StartCaretPos);641 &MdiInfo[WndNum]->pMdiTextEdit->StartCaretPos); 642 642 break; 643 643 } … … 645 645 if(!(GetKeyState(VK_SHIFT)&0x8000)){ 646 646 //シフトキーが押されていない、通常時 647 MdiInfo[WndNum] .pMdiTextEdit->EndCaretPos=MdiInfo[WndNum].pMdiTextEdit->StartCaretPos;647 MdiInfo[WndNum]->pMdiTextEdit->EndCaretPos=MdiInfo[WndNum]->pMdiTextEdit->StartCaretPos; 648 648 } 649 649 … … 672 672 673 673 //上下キャレット移動時の左右位置保持機能を解除 674 MdiInfo[WndNum] .pMdiTextEdit->Temp_UpDown_CaretXPos=-1;674 MdiInfo[WndNum]->pMdiTextEdit->Temp_UpDown_CaretXPos=-1; 675 675 676 676 if(GetKeyState(VK_CONTROL)&0x8000){ 677 677 //ファイルの先頭または末端へキャレットを移動 678 678 if(nVirtualKey==VK_HOME){ 679 MdiInfo[WndNum] .pMdiTextEdit->StartCaretPos.x=0;680 MdiInfo[WndNum] .pMdiTextEdit->StartCaretPos.y=0;679 MdiInfo[WndNum]->pMdiTextEdit->StartCaretPos.x=0; 680 MdiInfo[WndNum]->pMdiTextEdit->StartCaretPos.y=0; 681 681 } 682 682 else if(nVirtualKey==VK_END){ … … 685 685 INT_MAX, 686 686 INT_MAX, 687 &MdiInfo[WndNum] .pMdiTextEdit->StartCaretPos);687 &MdiInfo[WndNum]->pMdiTextEdit->StartCaretPos); 688 688 } 689 689 } 690 690 else{ 691 691 //行の先頭または末端へキャレットを移動 692 if(nVirtualKey==VK_HOME) MdiInfo[WndNum] .pMdiTextEdit->StartCaretPos.x=0;692 if(nVirtualKey==VK_HOME) MdiInfo[WndNum]->pMdiTextEdit->StartCaretPos.x=0; 693 693 else if(nVirtualKey==VK_END){ 694 694 //存在するキャレット位置に変換 695 695 CaretPos_LooseToNatural(WndNum, 696 696 INT_MAX, 697 MdiInfo[WndNum] .pMdiTextEdit->StartCaretPos.y,698 &MdiInfo[WndNum] .pMdiTextEdit->StartCaretPos);697 MdiInfo[WndNum]->pMdiTextEdit->StartCaretPos.y, 698 &MdiInfo[WndNum]->pMdiTextEdit->StartCaretPos); 699 699 } 700 700 } … … 702 702 if(!(GetKeyState(VK_SHIFT)&0x8000)){ 703 703 //シフトキーが押されていない、通常時 704 MdiInfo[WndNum] .pMdiTextEdit->EndCaretPos=MdiInfo[WndNum].pMdiTextEdit->StartCaretPos;704 MdiInfo[WndNum]->pMdiTextEdit->EndCaretPos=MdiInfo[WndNum]->pMdiTextEdit->StartCaretPos; 705 705 } 706 706 … … 721 721 TextEdit_GetSel(WndNum,&CharRange); 722 722 723 pBuf=MdiInfo[WndNum] .pMdiTextEdit->buffer;723 pBuf=MdiInfo[WndNum]->pMdiTextEdit->buffer; 724 724 725 725 //キャレットがファイルの終端にあるとき … … 727 727 728 728 if(CharRange.cpMin==CharRange.cpMax){ 729 if(MdiInfo[WndNum] .IndentStr){729 if(MdiInfo[WndNum]->IndentStr){ 730 730 //自動インデントを有効にする 731 731 char temporary[1024]; 732 lstrcpy(temporary,MdiInfo[WndNum] .IndentStr);732 lstrcpy(temporary,MdiInfo[WndNum]->IndentStr); 733 733 734 734 CancelBeforeAutoIndent(WndNum); … … 743 743 744 744 GetCaretPosFromBufferIndex( 745 MdiInfo[WndNum] .pMdiTextEdit->buffer,745 MdiInfo[WndNum]->pMdiTextEdit->buffer, 746 746 CharRange.cpMax, 747 &MdiInfo[WndNum] .pMdiTextEdit->EndCaretPos);747 &MdiInfo[WndNum]->pMdiTextEdit->EndCaretPos); 748 748 } 749 749 … … 755 755 ///////////////// 756 756 757 if(MdiInfo[WndNum] .IndentStr){757 if(MdiInfo[WndNum]->IndentStr){ 758 758 //自動インデント中のインデントの場合、インデントの1文字を削除する 759 if(lstrlen(MdiInfo[WndNum] .IndentStr)==1){759 if(lstrlen(MdiInfo[WndNum]->IndentStr)==1){ 760 760 //1文字しか残っていない場合は自動インデントそのものを消去する 761 761 CancelBeforeAutoIndent(WndNum); 762 762 } 763 763 else{ 764 MdiInfo[WndNum] .IndentStr[lstrlen(MdiInfo[WndNum].IndentStr)-1]=0;764 MdiInfo[WndNum]->IndentStr[lstrlen(MdiInfo[WndNum]->IndentStr)-1]=0; 765 765 766 766 i=GetBufferIndexFromCaretPos( 767 MdiInfo[WndNum] .pMdiTextEdit->buffer,768 MdiInfo[WndNum] .pMdiTextEdit->StartCaretPos.x,769 MdiInfo[WndNum] .pMdiTextEdit->StartCaretPos.y);767 MdiInfo[WndNum]->pMdiTextEdit->buffer, 768 MdiInfo[WndNum]->pMdiTextEdit->StartCaretPos.x, 769 MdiInfo[WndNum]->pMdiTextEdit->StartCaretPos.y); 770 770 GetCaretPosFromBufferIndex( 771 MdiInfo[WndNum] .pMdiTextEdit->buffer,771 MdiInfo[WndNum]->pMdiTextEdit->buffer, 772 772 i-1, 773 &MdiInfo[WndNum] .pMdiTextEdit->StartCaretPos);773 &MdiInfo[WndNum]->pMdiTextEdit->StartCaretPos); 774 774 TextEdit_Replace(WndNum,"",1); 775 775 } … … 801 801 802 802 char *pBuf; 803 pBuf=MdiInfo[WndNum] .pMdiTextEdit->buffer;803 pBuf=MdiInfo[WndNum]->pMdiTextEdit->buffer; 804 804 805 805 … … 836 836 837 837 i=GetBufferIndexFromCaretPos(pBuf, 838 MdiInfo[WndNum] .pMdiTextEdit->StartCaretPos.x,839 MdiInfo[WndNum] .pMdiTextEdit->StartCaretPos.y);838 MdiInfo[WndNum]->pMdiTextEdit->StartCaretPos.x, 839 MdiInfo[WndNum]->pMdiTextEdit->StartCaretPos.y); 840 840 841 841 i2=i-2; … … 974 974 975 975 char *pBuf; 976 pBuf=MdiInfo[WndNum] .pMdiTextEdit->buffer;976 pBuf=MdiInfo[WndNum]->pMdiTextEdit->buffer; 977 977 978 978 … … 985 985 986 986 i=GetBufferIndexFromCaretPos(pBuf, 987 MdiInfo[WndNum] .pMdiTextEdit->StartCaretPos.x,988 MdiInfo[WndNum] .pMdiTextEdit->StartCaretPos.y);987 MdiInfo[WndNum]->pMdiTextEdit->StartCaretPos.x, 988 MdiInfo[WndNum]->pMdiTextEdit->StartCaretPos.y); 989 989 990 990 if(GetNowTagInfo(pBuf,i-1)){
Note: See TracChangeset
for help on using the changeset viewer.